刘磊
2025-06-25 2de09bec5cc05bf875543fa8956167ca7db73021
合并
已添加113个文件
已修改83个文件
已删除51个文件
已重命名248个文件
已复制44个文件
12582 ■■■■■ 文件已修改
项目代码/DP/.babelrc 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/.env.dev 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/.env.production 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/.env.test 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/.gitignore 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/LICENSE 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/README.md 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/public/favicon.ico 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/App.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/css/index.scss 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/css/modules/reset.scss 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/css/modules/variables.scss 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/css/public.scss 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/css/theme/fonts/element-icons.ttf 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/css/theme/fonts/element-icons.woff 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/css/variable.scss 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/iconfont/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/iconfont/iconfont.woff 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/iconfont/iconfont.woff2 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/2.mp4 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/3DScreen.jpg 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/3DScreen.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/center_map.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/frame.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/guang.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/gysp.mp4 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/headers/juxing1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/headers/juxing2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/left_top_hong.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/left_top_huang.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/left_top_lan.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/left_top_lv.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/pageBg.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/titles/you.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/titles/zuo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/top.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/xieyou.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/xiezuo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/assets/img/zuo_xuxian.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/components/echart/centerLeft1Chart/chart.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/components/echart/centerLeft1Chart/index.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/components/echart/index.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/components/item-wrap/item-wrap.vue 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/components/kong.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/components/message/message.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/components/reacquire/reacquire.vue 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/components/scale-screen/scale-screen.vue 253 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/home.scss 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/home.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/center-bottom.vue 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/center-map.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/index.vue 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/left-bottom.vue 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/left-center-right.vue 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/left-center.vue 256 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/left-top.vue 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/pass-two.vue 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/plan.vue 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/right-bottom.vue 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/right-center.vue 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/right-top.vue 299 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/station-four.vue 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/station-one.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/station-three.vue 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/indexs/station-two.vue 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/setting.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/DP/src/views/tjfx/tjfx.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/App.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/static/image/return.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/apk/__UNI__6F62323_cm.apk 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/apk/__UNI__C94AE9A_cm.apk 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/apk/apkurl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/certdata 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/cloudcertificate/certini 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/cloudcertificate/package.keystore 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/__uniapperror.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/__uniappsuccess.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsA.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsC.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsD.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsE.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/Test.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/appoint.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/binding.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/boxing1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/boxing2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callA.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callC.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callD.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callE.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/cancel.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/changebox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/changebox1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/check1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/check2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/exp.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/forklift.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/forkliftB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/in1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/inorder.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/lend.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/login.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ortherbox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out3.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out4.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out5.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/qualityIn.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/qualityOut.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/return.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/returnbox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/zj.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/zjjg.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/uni.ttf 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/LDY_PDA/unpackage/dist/build/app-plus/static/image/return.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/common/demo.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/tki-qrcode/tki-qrcode.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-badge/uni-badge.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-calendar/uni-calendar-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-calendar/uni-calendar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-card/uni-card.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-collapse-item/uni-collapse-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-collapse/uni-collapse.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-combox/uni-combox.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-countdown/uni-countdown.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-drawer/uni-drawer.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-fab/uni-fab.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-fav/uni-fav.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-goods-nav/uni-goods-nav.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-grid-item/uni-grid-item copy.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-grid-item/uni-grid-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-grid/uni-grid.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-icons/uni-icons.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-indexed-list/uni-indexed-list-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-indexed-list/uni-indexed-list.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-link/uni-link.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-list-item/uni-list-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-list/uni-list.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-list/uni-refresh.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-list/uni-refresh.wxs 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-load-more/uni-load-more.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-nav-bar/uni-nav-bar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-notice-bar/uni-notice-bar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-number-box/uni-number-box.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-pagination/uni-pagination.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-popup/uni-popup-dialog.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-popup/uni-popup-message.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-popup/uni-popup-share.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-popup/uni-popup.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-rate/uni-rate.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-search-bar/uni-search-bar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-section/uni-section.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-segmented-control/uni-segmented-control.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-status-bar/uni-status-bar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-steps/uni-steps.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-swipe-action-item/index.wxs 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-swipe-action-item/uni-swipe-action-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-swipe-action/uni-swipe-action.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-swiper-dot/uni-swiper-dot.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-tag/uni-tag.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-title/uni-title.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/uni-transition/uni-transition.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/watch-login/watch-button.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/watch-login/watch-input.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/wyb-popup/wyb-popup.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/components/xfl-select/xfl-select.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Check/Check.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Inbound/ClboundInfo.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Inbound/InboundBoxing.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Inbound/InboundEmpty.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Inbound/InboundInfo.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Inbound/InboundOrderBoxing.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Inbound/InoutboundBoxing.vue 479 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Inbound/ZDPInbound.vue 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Outbound/OutboundCall.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Outbound/OutboundCheck.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Outbound/OutboundCompleted.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Outbound/OutbundCZStraight.vue 620 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Outbound/OutbundZdpStraight.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Outbound/YxOutboundCall.vue 688 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/Outbound/ZDPxp.vue 694 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/index/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/pages/index/main.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/ReceivingGoodsA.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/ReceivingGoodsB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/ReceivingGoodsC.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/ReceivingGoodsD.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/ReceivingGoodsE.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/Test.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/appoint.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/binding.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/boxing1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/boxing2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/callA.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/callB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/callC.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/callD.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/callE.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/cancel.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/changebox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/changebox1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/check1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/check2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/exp.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/forklift.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/forkliftB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/in1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/inorder.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/lend.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/login.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/ortherbox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/out1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/out2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/out3.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/out4.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/out5.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/qualityIn.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/qualityOut.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/return.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/returnbox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/zdp.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/zj.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/image/zjjg.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/static/uni.ttf 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uni.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/apk/apkurl 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/certdata 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/cloudcertificate/certini 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/cloudcertificate/package.keystore 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/__uniapperror.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/__uniappsuccess.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsA.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsC.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsD.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsE.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/Test.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/appoint.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/binding.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/boxing1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/boxing2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callA.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callC.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callD.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callE.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/cancel.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/changebox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/changebox1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/check1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/check2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/exp.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/forklift.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/forkliftB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/in1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/inorder.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/lend.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/login.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ortherbox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out3.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out4.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out5.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/qualityIn.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/qualityOut.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/return.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/returnbox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/zdp.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/zj.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/zjjg.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/cache/wgt/__UNI__C823906/static/uni.ttf 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/__uniapperror.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/__uniappsuccess.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsA.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsC.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsD.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsE.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/Test.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/appoint.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/binding.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/boxing1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/boxing2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/callA.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/callB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/callC.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/callD.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/callE.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/cancel.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/changebox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/changebox1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/check1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/check2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/exp.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/forklift.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/forkliftB.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/in1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/inorder.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/lend.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/login.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/ortherbox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/out1.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/out2.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/out3.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/out4.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/out5.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/qualityIn.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/qualityOut.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/return.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/returnbox.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/zdp.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/zj.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/image/zjjg.png 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/dist/build/app-plus/static/uni.ttf 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/unpackage/release/__UNI__6F62323.wgt 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/LICENSE 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/README.md 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-action-sheet/u-action-sheet.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-alert-tips/u-alert-tips.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-avatar/u-avatar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-back-top/u-back-top.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-badge/u-badge.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-button/u-button.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-calendar/u-calendar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-car-keyboard/u-car-keyboard.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-card/u-card.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-cell-group/u-cell-group.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-cell-item/u-cell-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-checkbox-group/u-checkbox-group.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-checkbox/u-checkbox.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-circle-progress/u-circle-progress.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-col/u-col.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-collapse-item/u-collapse-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-collapse/u-collapse.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-column-notice/u-column-notice.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-count-down/u-count-down.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-count-to/u-count-to.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-divider/u-divider.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-dropdown-item/u-dropdown-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-dropdown/u-dropdown.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-empty/u-empty.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-field/u-field.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-form-item/u-form-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-form/u-form.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-full-screen/u-full-screen.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-gap/u-gap.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-grid-item/u-grid-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-grid/u-grid.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-icon/u-icon.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-image/u-image.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-index-anchor/u-index-anchor.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-index-list/u-index-list.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-input/u-input.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-keyboard/u-keyboard.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-lazy-load/u-lazy-load.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-line-progress/u-line-progress.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-line/u-line.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-link/u-link.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-loading-page/u-loading-page.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-loading/u-loading.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-loadmore/u-loadmore.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-mask/u-mask.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-message-input/u-message-input.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-modal/u-modal.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-navbar/u-navbar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-no-network/u-no-network.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-notice-bar/u-notice-bar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-number-box/u-number-box.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-number-keyboard/u-number-keyboard.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-parse/libs/handler.wxs 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-parse/libs/trees.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-parse/u-parse.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-picker/u-picker.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-popup/u-popup.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-radio-group/u-radio-group.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-radio/u-radio.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-rate/u-rate.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-read-more/u-read-more.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-row-notice/u-row-notice.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-row/u-row.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-search/u-search.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-section/u-section.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-select/u-select.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-skeleton/u-skeleton.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-slider/u-slider.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-steps/u-steps.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-sticky/u-sticky.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-subsection/u-subsection.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-swipe-action/u-swipe-action.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-swiper/u-swiper.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-switch/u-switch.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-tabbar/u-tabbar.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-table/u-table.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-tabs/u-tabs.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-tag/u-tag.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-td/u-td.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-th/u-th.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-time-line-item/u-time-line-item.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-time-line/u-time-line.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-toast/u-toast.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-top-tips/u-top-tips.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-tr/u-tr.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-upload/u-upload.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-verification-code/u-verification-code.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/components/u-waterfall/u-waterfall.vue 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/index.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/libs/css/color.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/libs/css/common.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/libs/css/style.components.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/libs/css/style.h5.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/libs/css/style.mp.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/libs/css/style.nvue.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/libs/css/style.vue.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/PDA/uview-ui/theme.scss 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Release/net6.0/WIDESEAWCS_BasicInfoRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Dt_StationManagerService.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Partial/Method.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Release/net6.0/WIDESEAWCS_BasicInfoService.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Release/net6.0/WIDESEAWCS_DTO.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Release/net6.0/WIDESEAWCS_IBasicInfoRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IDt_StationManagerService.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Release/net6.0/WIDESEAWCS_IBasicInfoService.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IProcessService/obj/Release/net6.0/WIDESEAWCS_IProcessService.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Release/net6.0/WIDESEAWCS_ISystemRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Release/net6.0/WIDESEAWCS_ISystemServices.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Release/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Release/net6.0/WIDESEAWCS_ITaskInfoService.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/Release/net6.0/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/Release/net6.0/WIDESEAWCS_ITaskInfo_HtyService.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Release/net6.0/WIDESEAWCS_Model.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Release/net6.0/WIDESEAWCS_IProcessRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Release/net6.0/WIDESEAWCS_ProcessRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessService/obj/Release/net6.0/WIDESEAWCS_ProcessService.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Release/net6.0/WIDESEAWCS_QuartzJob.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Log/全局异常错误日志_1743004371.log 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Release/net6.0/WIDESEAWCS_SignalR.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Release/net6.0/WIDESEAWCS_SystemRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Release/net6.0/WIDESEAWCS_SystemServices.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Release/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Release/net6.0/WIDESEAWCS_TaskInfoService.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/Release/net6.0/WIDESEAWCS_TaskInfo_HtyRepository.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/Release/net6.0/WIDESEAWCS_TaskInfo_HtyService.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Release/net6.0/WIDESEAWCS_Tasks.csproj.CopyComplete 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/HandTask/ManualOutboundTask.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/taskinfo/Dt_Task_Hty.jsx 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/Home.vue 283 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_SelectionStandards.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_CZInfo_mes.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_CZInfo_mes_hty.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_InWheels_mes_hty.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_InZdp_mes.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_InZdp_mes_hty.vue 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/outbound/Dt_OutWheels_hty.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/outbound/Dt_OutZdp_hty.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_WheelsStock.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_WheelsStock_Old.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_WheelsStock_hty.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_ZdpStock.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_ZdpStock_hty.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/SelectionWheels.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v7.bin 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v7.bin 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/DesignTimeBuild/.dtbcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Common/AGVInterface/Respon/AGVResponBase.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Common/AGVTask/agvTask.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Common/LevelChange/CheckTaskChangeHelper.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Const/ConfigConst.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/UtilConvert.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/ToAPP/IToAPPService.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/WCS/IWCSService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/新文件夹/IToCheckService.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IDt_CZInfo_mesService.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IDt_WheelsStockService.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/Task/IDt_Task_HtyRepository.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_Task_HtyService.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task_Hty.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/Dt_CZInfo_mes.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/Dt_InWheels_mes_hty.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/Partial/UntieStation.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/Partial/agvCallback.cs 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/Partial/genAgvSchedulingTask.cs 97 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/ToAGVService.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveZDPInfo.cs 142 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/ToAPPService.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ZY/Partial/getZDPInfo.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_SelectionStandardsService.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/Dt_CZInfo_mesService.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/Dt_CZInfo_mes_htyService.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs 671 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_Task_HtyService.cs 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/APP/ToAPPController.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/Dt_CZInfo_mesController.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/Dt_WheelsStockController.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task_HtyController.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/WCS/WCSController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ÏîÄ¿´úÂë/DP/.babelrc
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
{
    "presets": [["es2015", { "modules": false }]],
    "plugins": [
      [
        "component",
        {
          "libraryName": "element-ui",
          "styleLibraryName": "theme-chalk"
        }
      ]
    ]
  }
ÏîÄ¿´úÂë/DP/.env.dev
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
# å¼€å‘环境,开发时正常都用这个
NODE_ENV = development
# å½“前环境,开发环境,可以随便修改,配合打包处配置与此文件名字
VUE_APP_URL_ENV = development
# æ‰“包后文件夹名字
VUE_APP_outputDir = development
ÏîÄ¿´úÂë/DP/.env.production
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
# æ­£å¼çŽ¯å¢ƒï¼Œæ‰“åŒ…éƒ½ç”¨è¿™ä¸ªæ­£å¸¸çš„å°±è¡Œï¼Œä¸ç”¨æ”¹
NODE_ENV = production
# å½“前环境,正式包,test正式包,可以随便修改,配合打包处配置与此文件名字   å¯ä»¥æ”¹
VUE_APP_URL_ENV = production
# æ‰“包后文件夹名字
VUE_APP_outputDir = dist-production
ÏîÄ¿´úÂë/DP/.env.test
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
# çœ‹ .env.development é‡Œé¢çš„æ³¨é‡Š
NODE_ENV = production
VUE_APP_URL_ENV = test
VUE_APP_outputDir = dist-test
ÏîÄ¿´úÂë/DP/.gitignore
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
.DS_Store
node_modules
/dist
/dist-*
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
ÏîÄ¿´úÂë/DP/LICENSE
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 daidai
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
ÏîÄ¿´úÂë/DP/README.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,238 @@
## é¡¹ç›®æè¿°
根据奔跑吧面条的**[vue-big-screen](https://gitee.com/MTrun/big-screen-vue-datav)**开源框架基础上进行修改。
- é¡¹ç›®éœ€è¦å…¨å±å±•示(按 F11)。
- é¡¹ç›®éƒ¨åˆ†åŒºåŸŸä½¿ç”¨äº†å…¨å±€æ³¨å†Œæ–¹å¼ï¼Œå¢žåŠ äº†æ‰“åŒ…ä½“ç§¯ï¼Œåœ¨å®žé™…è¿ç”¨ä¸­è¯·ä½¿ç”¨ **按需引入**。
- é¡¹ç›®çŽ¯å¢ƒï¼šVue-cli、DataV、Echarts、Webpack、Npm、Node,axios,mock。
- è¯·æ‹‰å– master åˆ†æ”¯çš„代码,其余分支是开发分支。
- åœ¨é¡¹ç›®public目录下存放地图数据合集,根据地市编存放。
友情链接:
1. [Vue å®˜æ–¹æ–‡æ¡£](https://gitee.com/link?target=https%3A%2F%2Fcn.vuejs.org%2Fv2%2Fguide%2Finstance.html)
2. [DataV å®˜æ–¹æ–‡æ¡£](https://gitee.com/link?target=http%3A%2F%2Fdatav.jiaminghi.com%2Fguide%2F)
3. [echarts å®žä¾‹](https://gitee.com/link?target=https%3A%2F%2Fecharts.apache.org%2Fexamples%2Fzh%2Findex.html),[echarts API æ–‡æ¡£](https://gitee.com/link?target=https%3A%2F%2Fecharts.apache.org%2Fzh%2Fapi.html%23echarts)
4. [mock.js官网](http://mockjs.com/examples.html)
5. [axios官网](https://axios-http.com/)
**项目展示**
![项目展示](https://www.daidaibg.com/bigscreen/a-img/home.png)
### é¡¹ç›®é¢„览地址
[https://www.daidaibg.com/bigscreen](https://www.daidaibg.com/bigscreen)
### é¡¹ç›®ä»“库地址
**github地址**
[https://github.com/daidaibg/IofTV-Screen](https://github.com/daidaibg/IofTV-Screen)
**Gitee地址**
[https://gitee.com/daidaibg/IofTV-Screen](https://gitee.com/daidaibg/IofTV-Screen)
### vue3+vite版本地址
**github地址**
[https://github.com/daidaibg/IofTV-Screen-Vue3](https://github.com/daidaibg/IofTV-Screen-Vue3)
**Gitee地址**
[https://gitee.com/daidaibg/IofTV-Screen-Vue3](https://gitee.com/daidaibg/IofTV-Screen-Vue3)
### 1.1.0版本开始采用自适应组件方式,不再使用mixin方式。
###  æ»šåŠ¨è®¾ç½®ï¼Œè‡ªé€‚åº”è®¾ç½®
项目中可以进行滚动配置,内容是否滚动
点击右上角设置按钮
![设置](https://www.daidaibg.com/bigscreen/a-img/setting.png)
可以进行以下配置,可以自行代码中进行修改或增加配置
![在这里插入图片描述](https://www.daidaibg.com/bigscreen/a-img/setting2.png)
##  2、主要文件介绍
| æ–‡ä»¶              | ä½œç”¨/功能                                                    |
| ----------------- | ------------------------------------------------------------ |
| main.js           | ä¸»ç›®å½•文件,引入 Echart/DataV ç­‰æ–‡ä»¶                         |
| utils             | å·¥å…·å‡½æ•°ä¸Ž mixins å‡½æ•°ç­‰                                     |
| views/ home.vue   | é¡¹ç›®ä¸»ç»“æž„                                                   |
| views/其余文件    | ç•Œé¢å„个区域组件(按照位置来命名)                           |
| assets            | é™æ€èµ„源目录,放置 logo ä¸ŽèƒŒæ™¯å›¾ç‰‡                           |
| assets / css/     | é€šç”¨ CSS æ–‡ä»¶ï¼Œå…¨å±€é¡¹ç›®å¿«æ·æ ·å¼è°ƒèŠ‚                          |
| components/echart | æ‰€æœ‰ echart å›¾è¡¨ï¼ˆæŒ‰ç…§ä½ç½®æ¥å‘½åï¼‰                           |
| common/...        | å…¨å±€å°è£…çš„ ECharts å’Œ flexible æ’件代码(适配屏幕尺寸,可定制化修改) |
| api/api.js        | æŽ¥å£å°è£…文件                                                 |
| mock              | æ¨¡æ‹Ÿæ•°æ®æŽ¥å£åœ°å€                                             |
###
## ä½¿ç”¨ä»‹ç»
### å®‰è£…
```npm
npm install
```
### å¯åЍ
```npm
npm start
```
[接下来跟面条的差不多还是看面条的文档吧](https://gitee.com/MTrun/big-screen-vue-datav/tree/master#%E4%B8%89%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D)
https://gitee.com/MTrun/big-screen-vue-datav/tree/master#%E4%B8%89%E4%BD%BF%E7%94%A8%E4%BB%8B%E7%BB%8D
### å–消mock模拟数据
```javascript
// src\main.js文件
把下面这句话注释掉就可以了。
require('./mock/mock')//是否使用mock
```
## è‡ªé€‚应缩放组件
### æ³¨æ„
采用Scale方式,会自动给组件父元素添加overflow:hidden
### ä½¿ç”¨
```vue
<template>
  <scale-screen width="1920" height="1080">
    <div>
      <v-chart>....</v-chart>
      <v-chart>....</v-chart>
      <v-chart>....</v-chart>
      <v-chart>....</v-chart>
      <v-chart>....</v-chart>
    </div>
  </scale-screen>
</template>
<script>
import ScaleScreen from 'scale-screen'
export default {
  name:'Demo',
  components:{
    VScaleScreen
  }
}
</script>
```
### API
| å±žæ€§         | è¯´æ˜Ž                                                         | ç±»åž‹                             | é»˜è®¤å€¼ |
| ------------ | ------------------------------------------------------------ | -------------------------------- | ------ |
| selfAdaption | æ˜¯å¦è¿›è¡Œè‡ªé€‚应                                               | Boolean                          | true   |
| width        | å¤§å±å®½åº¦                                                     | `Number` or `String`             | 1920   |
| height       | å¤§å±é«˜åº¦                                                     | `Number` or `String`             | 1080   |
| autoScale    | è‡ªé€‚应配置,配置为boolean类型时,为启动或者关闭自适应,配置为对象时,若x为true,x轴产生边距,y为true时,y轴产生边距,启用fullScreen时此配置失效 | Boolean or {x:boolean,y:boolean} | true   |
| delay        | çª—口变化防抖延迟时间                                         | Number                           | 500    |
| fullScreen   | å…¨å±è‡ªé€‚应,启用此配置项时会存在拉伸效果,同时autoScale失效,非必要情况下不建议开启 | Boolean                          | false  |
| boxStyle     | ä¿®æ”¹å®¹å™¨æ ·å¼ï¼Œå¦‚居中展示时侧边背景色,符合Vue双向绑定style标准格式 | Object                           | null   |
| wrapperStyle | ä¿®æ”¹è‡ªé€‚应区域样式,符合Vue双向绑定style标准格式             | Object                           | null   |
## å…¬ç”¨ç»„ä»¶
封装了除面条外个别用到的组件
### 5.1 message消息提示
因为刚开始没想着用第三方提示库,自己简单封装了一个。
注:组件内部目前只有warning,类型,如果需要其他类型自己组件内添加。
因在main.js注册全局可以直接使用,不需要引入
```js
  this.$Message({
      text: res.msg,
      type: 'warning'
  })
//也可以这样
this.$Message.warning(res.msg)
```
| å‚æ•° |   æè¿°   | é»˜è®¤å€¼  |  ç±»åž‹  | å¯é€‰å€¼  |
| :--: | :------: | :-----: | :----: | :-----: |
| text | æç¤ºæ–‡å­— |    -    | string |    -    |
| type | å¼¹çª—类型 | warning | string | warning |
### 5.2 å¤–边框
因为我的项目外边框几乎一样,还有title,所以封装了此组件。
根据自己需求更改,更换外边框(src\components\item-wrap\item-wrap.vue)下更换。
```vue
<ItemWrap
    title="我是title"
    >
       <div>我是谁?</div>
</ItemWrap>
```
| å‚æ•°  | æè¿° | é»˜è®¤å€¼ |  ç±»åž‹  | å¯é€‰å€¼ |
| :---: | :--: | :----: | :----: | :----: |
| title | æ ‡å¤´ |   -    | string |   -    |
## ä¸­é—´åœ°å›¾
### å—海显隐控制
 æ ¹æ®éœ€æ±‚来,**修改此值请刷新页面**
```indexs/center-map.vue``` æ–‡ä»¶ä¸­```isSouthChinaSea```变量 é»˜è®¤ä¸æ˜¾ç¤ºå—æµ·(false),为```true```的时候显示南海
```
isSouthChinaSea:false,//默认不显示南海,改为true可显示南海
```
## å…¨å±€å‚æ•°
### filter
监测数据项统一过滤,保留两位小数。
```vue
{{10.23123|montionFilter }}
```
##  å¤§å±äº¤æµåé¦ˆï¼ˆé¢æ¡çš„群)
### å¤§å±QQ群
QQ群号:713105837
### å¤§å±äºŒç»´ç 
QQ群二维码:
![输入图片说明](https://gitee.com/MTrun/big-screen-vue-datav/raw/master/public/image.png)
ÏîÄ¿´úÂë/DP/public/favicon.ico
ÏîÄ¿´úÂë/DP/src/App.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
<!--
 * @Author: daidai
 * @Date: 2022-01-12 14:06:47
 * @LastEditors: daidai
 * @LastEditTime: 2022-03-01 17:55:49
 * @FilePath: \web-pc\src\pages\big-screen\App.vue
-->
<template>
  <div id="app">
    <router-view/>
  </div>
</template>
<style lang="scss" scoped>
#app {
  width: 100vw;
  height: 100vh;
  background-color: #03050C;
  // overflow: hidden;
}
</style>
ÏîÄ¿´úÂë/DP/src/assets/css/index.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,361 @@
@import "./modules/reset.scss";
@import "./modules/variables.scss";
@import './theme/index.css';
@import '../iconfont//iconfont.css';
[class*=" blq-icon-"],
[class^=blq-icon-] {
  font-family: iconfont !important;
  speak: none;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: middle;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale
}
*,
:after,
:before {
  box-sizing: content-box;
}
.clearfix {
  &::after {
    content: "";
    display: table;
    height: 0;
    line-height: 0;
    visibility: hidden;
    clear: both;
  }
}
.contents {
  width: 100%;
  display: flex;
  min-height: calc(100% - 60px);
  justify-content: space-between;
}
.beautify-scroll-def {
  overflow-y: auto;
  &::-webkit-scrollbar-thumb {
    //滚动条的设置
    background-color: rgba(14, 59, 150, 0);
    background-clip: padding-box;
    border-radius: 4px;
  }
  &:hover {
    &::-webkit-scrollbar-thumb {
      //滚动条的设置
      background-color: rgba(14, 59, 150, 0.5);
      background-clip: padding-box;
      border-radius: 4px;
    }
  }
  &::-webkit-scrollbar-track-piece {
    //滚动条凹槽的颜色,还可以设置边框属性
    background-color: transparent;
  }
  &::-webkit-scrollbar {
    //滚动条的宽度
    width: 8px;
    height: 8px;
  }
  &::-webkit-scrollbar-thumb:hover {
    background-color: rgba(14, 59, 150, .8);
  }
}
.orderNum {
  // min-width: 22px;
  // height: 22px;
  // background: #00b8ff;
  // border-radius: 50%;
  // text-align: center;
  // line-height: 22px;
  // font-size: 13px;
  // font-weight: 900;
  // color: #0f2854;
  color: #00b8ff;
}
.yh-big-input {
  width: 253px;
  height: 14px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, .53);
  border-radius: 4px;
  color: #fff;
  padding: 6px 10px;
  font-size: 14px;
  transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
  &:focus {
    outline: none;
    border-color: #31abe3;
  }
}
.yh-big-el-input {
  width: 253px;
  font-size: 14px;
  .el-input__inner {
    padding: 6px 10px;
    border: 1px solid rgba(255, 255, 255, .53);
    background-color: transparent;
    font-size: 14px;
    line-height: 1;
    color: #fff;
    &:hover{
      border-color: rgba(255, 255, 255, .8);
    }
    &:focus {
      outline: none;
      border-color: #31abe3;
    }
  }
}
.yh-big-button {
  width: 53px;
  height: 26px;
  background: #00b1d6;
  border-radius: 4px;
  // border-color: #00b1d6;
  border-width: 1px;
  border: none;
  cursor: pointer;
  color: #fff;
  font-size: 15px;
  &:hover,
  &:focus {
    // border-color: #0597b4;
    background: #0597b4;
  }
}
//浮动
.float-r {
  float: right;
}
//浮动
.float-l {
  float: left;
}
// å­—体加粗
.fw-b {
  font-weight: bold;
}
//文章一行显示,多余省略号显示
.title-item {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
//表格样式重置
.ve-table {
  $border-color: #525371;
  // $border-color: rgba(255, 255, 255, .43);
  box-sizing: border-box;
  .ve-table-container {
    &::-webkit-scrollbar-track-piece {
      //滚动条凹槽的颜色,还可以设置边框属性
      background-color: transparent;
    }
    &::-webkit-scrollbar {
      //滚动条的宽度
      width: 8px;
      height: 8px;
    }
    &::-webkit-scrollbar-thumb {
      //滚动条的设置
      background-color: rgba(14, 59, 150, 0.5);
      background-clip: padding-box;
      border-radius: 4px;
    }
    &::-webkit-scrollbar-thumb:hover {
      background-color: rgba(14, 59, 150, .8);
    }
    .ve-table-content {
      &::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0px;
        width: 1px;
        height: 100%;
        background-color: $border-color;
        z-index: 20;
      }
    }
  }
  &.ve-table-border-around {
    border-color: $border-color;
  }
  .ve-table-container table.ve-table-content thead.ve-table-header tr.ve-table-header-tr {
    height: 34px;
    box-sizing: border-box;
    th.ve-table-header-th {
      background: #04004E;
      color: #FFF;
      border-color: $border-color;
      box-sizing: border-box;
      line-height: 1;
    }
  }
  .ve-table-container table.ve-table-content tbody.ve-table-body {
    tr.ve-table-body-tr td.ve-table-body-td,
    tr.ve-table-expand-tr td.ve-table-body-td,
    tr.ve-table-body-tr td.ve-table-expand-td,
    tr.ve-table-expand-tr td.ve-table-expand-td {
      background: transparent;
      color: #FFF;
      border-color: $border-color;
      box-sizing: border-box;
    }
    tr.ve-table-body-tr,
    tr.ve-table-expand-tr {
      height: 34px;
      box-sizing: border-box;
    }
    &.ve-table-row-hover tr.ve-table-body-tr:hover td {
      background-color: rgba(0, 0, 0, .22);
      box-sizing: border-box;
    }
  }
  .ve-table-container .ve-table-border-x th,
  .ve-table-container .ve-table-border-x td {
    border-color: $border-color;
    box-sizing: border-box;
  }
}
//颜色
@each $colorkey,
$color in $colors {
  .text-#{$colorkey} {
    color: $color;
  }
  .bg-#{$colorkey} {
    background-color: $color;
  }
}
//对齐
@each $var in (left, center, right) {
  .text-#{$var} {
    text-align: $var !important;
  }
}
//flex
@each $key,
$value in $flex-jc {
  .jc-#{$key} {
    justify-content: $value;
  }
}
@each $key,
$value in $flex-ai {
  .ai-#{$key} {
    align-items: $value;
  }
}
//字体
@each $fontkey,
$fontvalue in $font-sizes {
  .fs-#{$fontkey} {
    font-size: $fontvalue * $base-font-size;
  }
}
//.mt-1 => margin top
//spacing
@each $typekey,
$type in $spacing-types {
  //.m-1
  @each $sizekey,
  $size in $spacing-sizes {
    .#{$typekey}-#{$sizekey} {
      #{$type}: $size * $spacing-base-size;
    }
  }
  //.mx-1
  @each $sizekey,
  $size in $spacing-sizes {
    .#{$typekey}x-#{$sizekey} {
      #{$type}-left: $size * $spacing-base-size;
      #{$type}-right: $size * $spacing-base-size;
    }
    .#{$typekey}y-#{$sizekey} {
      #{$type}-top: $size * $spacing-base-size;
      #{$type}-bottom: $size * $spacing-base-size;
    }
  }
  //.mt-1
  @each $directionkey,
  $direction in $spacing-directions {
    @each $sizekey,
    $size in $spacing-sizes {
      .#{$typekey}#{$directionkey}-#{$sizekey} {
        #{$type}-#{$direction}: $size * $spacing-base-size;
      }
    }
  }
  .#{$typekey} {
    #{$type}: 0;
  }
}
ÏîÄ¿´úÂë/DP/src/assets/css/modules/reset.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,200 @@
/**
 * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
 * http://cssreset.com
 */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video,
input {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font-weight: normal;
  vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
menu,
nav,
section {
  display: block;
}
body {
  line-height: 1;
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
/* custom */
a {
  color: #7e8c8d;
  -webkit-backface-visibility: hidden;
  text-decoration: none;
}
li {
  list-style: none;
}
body {
  -webkit-text-size-adjust: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.olControlScaleLineBottom {
  display: none;
}
.olControlScaleLineTop {
  color: #000 !important;
  border-bottom: solid 3px #000 !important;
  border-left: solid 2px #000 !important;
  border-right: solid 2px #000 !important;
  background-color: rgba(255, 255, 255, .4);
  font-size: 10px;
  text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
}
.olControlScaleLine {
  z-index: 900 !important;
}
/*清除浮动*/
.clearfix:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}
.clearfix {display: inline-block;}
/* ç‚¹å‡»æœç´¢æ¡†èŽ·å–ç„¦ç‚¹ placeholder消失-开始 */
/* WebKit browsers */
// input:focus::-webkit-input-placeholder {
//   color: transparent;
// }
// /* Mozilla Firefox 4 to 18 */
// input:focus:-moz-placeholder {
//   color: transparent;
// }
// /* Mozilla Firefox 19+ */
// input:focus::-moz-placeholder {
//   color: transparent;
// }
// /* Internet Explorer 10+ */
// input:focus:-ms-input-placeholder {
//   color: transparent;
// }
/* ç‚¹å‡»æœç´¢æ¡†èŽ·å–ç„¦ç‚¹ placeholder消失-结束 */
ÏîÄ¿´úÂë/DP/src/assets/css/modules/variables.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
// é¢œè‰²
$colors: (
  "primary": #1A5CD7,
  "info-1": #4394e4,
  "info": #4b67af,
  "white": #ffffff,
  "light": #f9f9f9,
  "grey-1": #999999,
  "grey": #666666,
  "dark-1": #5f5f5f,
  "dark": #222222,
  "black-1": #171823,
  "black": #000000,
  "icon": #5cd9e8
);
// å­—体大小
$base-font-size: 0.2rem;
$font-sizes: (
  xxs: 0.1,
  //8px
    xs: 0.125,
  //10px
    sm: 0.2875,
  //12px
    md: 0.1625,
  //13px
    lg: 0.175,
  //14px
    xl: 0.2,
  //16px
    xxl: 0.225,
  //18px
    xxxl: 0.25 //20px,,,,
);
// å®½é«˜
.w-100 {
  width: 100%;
}
.h-100 {
  height: 100%;
}
//flex
.flex {
  display: flex;
}
.flex-column {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-nowrap {
  flex-wrap: nowrap;
}
$flex-jc: (
  start: flex-start,
  end: flex-end,
  center: center,
  between: space-between,
  around: space-around,
  evenly: space-evenly,
);
$flex-ai: (
  start: flex-start,
  end: flex-end,
  center: center,
  stretch: stretch,
);
.flex-1 {
  flex: 1;
}
//.mt-1 => margin top
//spacing
$spacing-types: (
  m: margin,
  p: padding,
);
$spacing-directions: (
  t: top,
  r: right,
  b: bottom,
  l: left,
);
$spacing-base-size: 0.5rem;
$spacing-sizes: (
  0: 0,
  1: 0.5,
  2: 1,
  3: 1.5,
  4: 2,
  5: 2.5,
);
ÏîÄ¿´úÂë/DP/src/assets/css/public.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,156 @@
.flex {
    display: flex;
}
.flex-direction {
    flex-direction: column;
}
.flex-wrap {
    flex-wrap: wrap;
}
.align-start {
    align-items: flex-start;
}
.align-end {
    align-items: flex-end;
}
.align-center {
    align-items: center;
}
.align-stretch {
    align-items: stretch;
}
.self-start {
    align-self: flex-start;
}
.self-center {
    align-self: flex-center;
}
.self-end {
    align-self: flex-end;
}
.self-stretch {
    align-self: stretch;
}
.align-stretch {
    align-items: stretch;
}
.justify-start {
    justify-content: flex-start;
}
.justify-end {
    justify-content: flex-end;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}
.justify-around {
    justify-content: space-around;
}
@for $i from 0 through 12 {
  .rdx-flex-#{$i} {
    flex: $i;
  }
}
@for $i from 9 to 50 {
  .rdx-font-#{$i} {
    font-size: $i + px;
  }
}
@for $i from 2 to 50 {
  .rdx-radius-#{$i} {
    border-radius: $i + px;
  }
}
@for $i from 10 to 50 {
  .rdx-line-height-#{$i} {
    line-height: $i + px;
  }
}
// å®šä¹‰å†…外边距,历遍1-80
@for $i from 0 through 80 {
  // åªè¦åŒæ•°å’Œèƒ½è¢«5除尽的数
  @if $i % 2 == 0 or $i % 5 == 0 {
    // å¾—出:u-margin-30或者u-m-30
    .rdx-m-#{$i} {
      margin: $i + px !important;
    }
    // å¾—出:u-padding-30或者u-p-30
    .rdx-p-#{$i} {
      padding: $i + px !important;
    }
    @each $short, $long in l left, t top, r right, b bottom {
      // ç¼©å†™ç‰ˆï¼Œç»“果如: u-m-l-30
      // å®šä¹‰å¤–边距
      .rdx-m-#{$short}-#{$i} {
        margin-#{$long}: $i + px !important;
      }
      // å®šä¹‰å†…边距
      .rdx-p-#{$short}-#{$i} {
        padding-#{$long}: $i + px !important;
      }
     //自定义左右内边距
      .rdx-p-lr-#{$i} {
        padding-left:$i + px !important;
        padding-right:$i + px !important;
      }
      //自定义上下内边距
       .rdx-p-tb-#{$i} {
              padding-top:$i + px !important;
              padding-bottom:$i + px !important;
       }
    }
  }
}
i{font-style: normal;}
.position-re{position: relative;}
.position-ab{position: absolute; z-index: 9;}
.position-fixed{position: fixed; background: rgba(92, 116, 143, 0.45); width: 100%; height: 100%; left: 0px; top: 0px; z-index: 10;}
.round{border-radius: 50%;}
.font-strong{font-weight: bold;}
.color-del{color:$del-color}
.color-primary{color: $primary-color;}
.color-remark{color: #666666;}
.color-9{color: #999999;}
.color-green{color: #38a800;}
.bg-white{background-color: white;}
.line-bottom{border-bottom: 1px solid #eeeeee;}
.button-pointer{cursor: pointer;}
.box-shadow-item{box-shadow: 0px 0px 4px 0px rgba(45, 45, 46, 0.1);}
.search-form .search-form-item label {text-align: right; padding-right: 6px;}
.break-all{
  word-break: break-all;
}
.blocks{
  width: 100%;
  height: 100%;
}
.cursor-pointer{
  cursor: pointer;
}
ÏîÄ¿´úÂë/DP/src/assets/css/theme/fonts/element-icons.ttf
Binary files differ
ÏîÄ¿´úÂë/DP/src/assets/css/theme/fonts/element-icons.woff
Binary files differ
ÏîÄ¿´úÂë/DP/src/assets/css/variable.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
// é¢œè‰²
$primary-color: #1890ff;
$primary-color-hl: rgb(41, 52, 67);
$default-color: #006569;
$link: #1890ff;
$active-color: rgb(0, 101, 105);
$del-color: #ff1839;
$content-background: #f3f5fa;
$table-header-background: #d8eaff;
$primary-color-rgba: rgba($color: $primary-color,
  $alpha: 0.1,
);
//表格上面button按钮颜色
$table-header-button: #18d1ff;
// é˜´å½±
$primary-shadow: 0 2px 4px rgba(0, 0, 0, 0.12),
0 0 6px rgba(0, 0, 0, 0.04);
$primary-shadow-light: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
$baidu-shadow: 1px 2px 1px rgba(0, 0, 0, 0.15);
$gaode-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.2),
0 2px 6px 0 rgba(0, 0, 0, 0.19);
// box-shadow: 0 2px 6px 0 rgb(114 124 245 / 50%);
$primary-border: $primary-color solid 1px;
$tool-top: 20px;
//header çš„高度
$index-height: 60px;
$index-content-height: calc(100% - 60px);
$index-tags-height: 36px;
// å®½åº¦ä¾§è¾¹æ 
$aside-width: 200px;
$content-padding: 16px;
$default-zindex: 99;
/*文本格式化,超出范围,显示省略号*/
@mixin text-overflow($num: 1) {
  word-break: break-all;
  text-overflow: ellipsis;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: $num;
  -webkit-box-orient: vertical;
}
ÏîÄ¿´úÂë/DP/src/assets/iconfont/iconfont.ttf
Binary files differ
ÏîÄ¿´úÂë/DP/src/assets/iconfont/iconfont.woff
Binary files differ
ÏîÄ¿´úÂë/DP/src/assets/iconfont/iconfont.woff2
Binary files differ
ÏîÄ¿´úÂë/DP/src/assets/img/2.mp4
Binary files differ
ÏîÄ¿´úÂë/DP/src/assets/img/3DScreen.jpg
ÏîÄ¿´úÂë/DP/src/assets/img/3DScreen.png
ÏîÄ¿´úÂë/DP/src/assets/img/center_map.png
ÏîÄ¿´úÂë/DP/src/assets/img/frame.png
ÏîÄ¿´úÂë/DP/src/assets/img/guang.png
ÏîÄ¿´úÂë/DP/src/assets/img/gysp.mp4
Binary files differ
ÏîÄ¿´úÂë/DP/src/assets/img/headers/juxing1.png
ÏîÄ¿´úÂë/DP/src/assets/img/headers/juxing2.png
ÏîÄ¿´úÂë/DP/src/assets/img/left_top_hong.png
ÏîÄ¿´úÂë/DP/src/assets/img/left_top_huang.png
ÏîÄ¿´úÂë/DP/src/assets/img/left_top_lan.png
ÏîÄ¿´úÂë/DP/src/assets/img/left_top_lv.png
ÏîÄ¿´úÂë/DP/src/assets/img/pageBg.png
ÏîÄ¿´úÂë/DP/src/assets/img/titles/you.png
ÏîÄ¿´úÂë/DP/src/assets/img/titles/zuo.png
ÏîÄ¿´úÂë/DP/src/assets/img/top.png
ÏîÄ¿´úÂë/DP/src/assets/img/xieyou.png
ÏîÄ¿´úÂë/DP/src/assets/img/xiezuo.png
ÏîÄ¿´úÂë/DP/src/assets/img/zuo_xuxian.png
ÏîÄ¿´úÂë/DP/src/components/echart/centerLeft1Chart/chart.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
<template>
  <div>
    <Echart
      :options="options"
      id="centreLeft1Chart"
      height="220px"
      width="360px"
    ></Echart>
  </div>
</template>
<script>
import * as echarts from 'echarts';
export default {
  data () {
    return {
      options: {},
    };
  },
  components: {
    echarts,
  },
  props: {
    cdata: {
      type: Object,
      default: () => ({})
    },
  },
  watch: {
    cdata: {
      handler (newData) {
        this.options = {
          color: [
            "#37a2da",
            "#32c5e9",
            "#9fe6b8",
            "#ffdb5c",
            "#ff9f7f",
            "#fb7293",
            "#e7bcf3",
            "#8378ea"
          ],
          legend:{
            textStyle:{
              color:"#ffffff",
              fontSize:18
            }
          },
          tooltip: {
            trigger: "item",
            formatter: "{a} <br/>{b} : {c} ({d}%)"
          },
          toolbox: {
            show: true
          },
          calculable: true,
          legend: {
            orient: "horizontal",
            icon: "circle",
            bottom: 0,
            x: "center",
            data: newData.xData,
            textStyle: {
              color: "#fff"
            }
          },
          series: [
            {
              name: "通过率统计",
              type: "pie",
              radius: [20, 60],
              roseType: "area",
              center: ["50%", "50%"],
              data: newData.seriesData
            }
          ]
        }
      },
      immediate: true,
      deep: true
    }
  }
};
</script>
<style lang="scss" scoped>
</style>
ÏîÄ¿´úÂë/DP/src/components/echart/centerLeft1Chart/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
<template>
    <div>
      <Chart :cdata="cdata" />
    </div>
  </template>
  <script>
  import Chart from './chart.vue';
  import axios from 'axios';
  export default {
    data () {
      return {
        cdata: {
          xData: ["空托", "实托", "待检", "合格", "检修中"],
          seriesData: []
        }
      }
    },
    components: {
      Chart,
    },
    mounted () {
      this.changeTiming()
    },
    methods: {
      changeTiming() {
          this.changeNumber()
        setInterval(() => {
          this.changeNumber()
        }, 3000)
      },
      changeNumber() {
        axios.post("http://192.168.12.189:8098/api/VV_Container/GetContainerMessage", {
          MainData: {
            AGVName: "负极"
          }
        }).then((res) => {
          let GetLocationEmptyOrStored = [
            {value:res.empty+1,name:'空托'},
            {value:res.full+1,name:"实托"},
            {value:res.waitCheck+1,name:"待检"},
            {value:res.qualified+1,name:"合格"},
            {value:res.checkIng+1,name:"检修中"}
          ]
          this.cdata.seriesData = GetLocationEmptyOrStored
        }).catch((res) => {
          console.log(res)
        })
      }
    }
  }
  </script>
  <style lang="scss" scoped>
  </style>
ÏîÄ¿´úÂë/DP/src/components/echart/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
<!--
 * @Author: daidai
 * @Date: 2022-02-28 16:29:08
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-09-27 15:05:45
 * @FilePath: \web-pc\src\pages\big-screen\components\echart\index.vue
-->
<template>
  <div :id="id" :class="className" :style="{ height: height, width: width }" />
</template>
<script>
import * as echarts from 'echarts';
export default {
  name: 'echart',
  props: {
    className: {
      type: String,
      default: 'chart'
    },
    id: {
      type: String,
      default: 'chart'
    },
    width: {
      type: String,
      default: '100%'
    },
    height: {
      type: String,
      default: '100%'
    },
    options: {
      type: Object,
      default: ()=>({})
    }
  },
  data () {
    return {
      chart: null
    }
  },
  watch: {
    options: {
      handler (options) {
        // è®¾ç½®true清空echart缓存
        this.chart.setOption(options, true)
      },
      deep: true
    }
  },
  mounted () {
    this.initChart();
  },
  beforeDestroy () {
    this.chart.dispose()
    this.chart = null
  },
  methods: {
    initChart () {
      // åˆå§‹åŒ–echart
      this.chart = echarts.init(this.$el)
      this.chart.setOption(this.options, true)
    }
  }
}
</script>
<style>
</style>
ÏîÄ¿´úÂë/DP/src/components/item-wrap/item-wrap.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
<!--
 * @Author: daidai
 * @Date: 2022-03-01 09:16:22
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-09-29 15:12:34
 * @FilePath: \web-pc\src\pages\big-screen\components\item-wrap\item-wrap.vue
-->
<template>
  <dv-border-box-13 class="lr_titles">
    <div class="item_title" v-if="title !== ''">
      <div class="zuo"></div>
      <span class="title-inner"> &nbsp;&nbsp;{{ title }}&nbsp;&nbsp; </span>
      <div class="you"></div>
    </div>
    <div
      :class="title !== '' ? 'item_title_content' : 'item_title_content_def'"
    >
      <slot></slot>
    </div>
  </dv-border-box-13>
</template>
<script>
export default {
  data() {
    return {};
  },
  props: {
    title: {
      type: String,
      default: () => "",
    },
  },
  created() {},
  mounted() {},
  methods: {},
};
</script>
<style lang='scss' scoped>
$item-title-height: 38px;
$item_title_content-height: calc(100% - 38px);
.lr_titles {
  box-sizing: border-box;
:deep(.border-box-content)  {
    box-sizing: border-box;
    padding: 6px 16px 0px;
  }
  .item_title {
    height: $item-title-height;
    line-height: $item-title-height;
    width: 100%;
    color: #31abe3;
    text-align: center;
    // background: linear-gradient(to right, transparent, #0f0756, transparent);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    .zuo,
    .you {
      width: 58px;
      height: 14px;
      background-image: url("../../assets/img/titles/zuo.png");
    }
    .you {
      transform: rotate(180deg);
    }
    .title-inner {
      font-weight: 900;
      letter-spacing: 2px;
      background: linear-gradient(
        92deg,
        #0072ff 0%,
        #00eaff 48.8525390625%,
        #01aaff 100%
      );
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
    }
  }
  .item_title_content {
    height: $item_title_content-height;
  }
  .item_title_content_def {
    width: 100%;
    height: 100%;
  }
}
</style>
ÏîÄ¿´úÂë/DP/src/components/kong.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
<template>
  <div class='kong'>
      <slot></slot>
  </div>
</template>
<script>
export default {
  components: {},
  data() {
    return {
    };
  },
  props:{
    data:{
      type:Array,
      default:()=>[]
    }
  },
  computed: {},
  methods: {
    init(){
    },
  },
  created() {
  },
  mounted() {
  },
  beforeDestroy() {
  },
}
</script>
<style lang='scss' scoped>
.kong{
    width: 100%;
    height: 100%;
}
</style>
ÏîÄ¿´úÂë/DP/src/components/message/message.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
<!--
 * @Author: daidai
 * @Date: 2022-03-02 17:07:40
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-04-26 11:41:27
 * @FilePath: \web-pc\src\pages\big-screen\components\message\message.vue
-->
<template>
  <div class="messages" v-if="visible">
    <svg fill="none" viewBox="0 0 16 16" width="1em" height="1em" class="message-icon">
      <path fill="currentColor" d="M15 8A7 7 0 101 8a7 7 0 0014 0zM8.5 4v5.5h-1V4h1zm-1.1 7h1.2v1.2H7.4V11z"
        fill-opacity="0.9" v-if="'warning'==type"></path>
    </svg>
    {{ text }}
  </div>
</template>
<script>
export default {
  data() {
    return {
      visible: false,
      text: "",
      type:'warning'
    };
  },
  props: {},
  created() { },
  mounted() { },
  methods: {
    init(param) {
      clearTimeout(this.timer);
      this.visible = true;
      this.text = param.text || "";
      this.type = param.type || "success";
      this.timer = setTimeout(() => {
        this.visible = false;
        clearTimeout(this.timer);
      }, 2000);
    },
  },
};
</script>
<style lang='scss' scoped>
.messages {
  position: fixed;
  min-width: 200px;
  top: 160px;
  left: 50%;
  transform: translate(-50%, 0);
  border: solid 1px #4b4b4b;
  //   box-shadow: 0 16px 24px rgba(0, 0, 0, 0.14), 0 6px 30px rgba(0, 0, 0, 12%),
  //     0 8px 10px rgba(0, 0, 0, 20%), inset 0 0.5px 0 #5e5e5e,
  //     inset 0.5px 0 0 #5e5e5e, inset 0 -0.5px 0 #5e5e5e, inset -0.5px 0 0 #5e5e5e;
  width: fit-content;
  border-radius: 6px;
  display: flex;
  align-items: center;
  z-index: 999;
  color: rgba(255, 255, 255, 0.9);
  background-color: #242424;
  line-height: 22px;
  font-size: 14px;
  padding: 13px 16px;
  .message-icon {
    color: #cf6e2d;
    font-size: 20px;
    margin-right: 8px;
    fill: currentColor;
  }
}
</style>
ÏîÄ¿´úÂë/DP/src/components/reacquire/reacquire.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
<template>
    <div class='reacquire flex justify-center  blocks  cursor-pointer' :style="{ lineHeight: lineHeight }"
        @click="getData">
        <span>
             é‡æ–°èŽ·å–
        </span>
    </div>
</template>
<script>
export default {
    components: {},
    props: {
        lineHeight: {
            type: String,
            default: '200px'
        }
    },
    data() {
        return {
        };
    },
    computed: {},
    methods: {
        init() {
        },
        getData(e){
            this.$emit("onclick",e)
        }
    },
    created() {
    },
    mounted() {
    },
    beforeDestroy() {
    },
}
</script>
<style lang='scss' scoped>
.reacquire {
    user-select:none;
    color: rgb(168, 168, 168);
    span:hover{
        color:$primary-color ;
        text-decoration: underline;
    }
}
.blocks {
    width: 100%;
    height: 100%;
}
.cursor-pointer {
    cursor: pointer;
}
</style>
ÏîÄ¿´úÂë/DP/src/components/scale-screen/scale-screen.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,253 @@
<!--
 * @Author: wei
 * @description: å¤§å±è‡ªé€‚应容器组件
 * @LastEditTime: 2022-09-09 16:42:40
-->
<template>
  <!-- <section class="screen-box" :style="boxStyle"> -->
  <div class="screen-wrapper" ref="screenWrapper" :style="wrapperStyle">
    <slot></slot>
  </div>
  <!-- </section> -->
</template>
<script>
/**
 * é˜²æŠ–函数
 * @param {T} fn
 * @param {number} delay
 * @return
 */
function debounce(fn, delay) {
  let timer = null;
  return function (...args) {
    timer = setTimeout(
      () => {
        typeof fn === "function" && fn.apply(null, args);
        clearTimeout(timer);
      },
      delay > 0 ? delay : 100
    );
  };
}
export default {
  name: "VScaleScreen",
  props: {
    width: {
      type: [String, Number],
      default: 1920,
    },
    height: {
      type: [String, Number],
      default: 1080,
    },
    fullScreen: {
      type: Boolean,
      default: false,
    },
    autoScale: {
      type: [Object, Boolean],
      default: true,
    },
    selfAdaption: {
      type: Boolean,
      default: true,
    },
    delay: {
      type: Number,
      default: 500,
    },
    boxStyle: {
      type: Object,
      default: () => ({}),
    },
    wrapperStyle: {
      type: Object,
      default: () => ({}),
    },
  },
  data() {
    return {
      currentWidth: 0,
      currentHeight: 0,
      originalWidth: 0,
      originalHeight: 0,
      onResize: null,
      observer: null,
    };
  },
  watch: {
    selfAdaption(val) {
      if (val) {
        this.resize();
        this.addListener();
      } else {
        this.clearListener();
        this.clearStyle();
      }
    },
  },
  computed: {
    screenWrapper() {
      return this.$refs["screenWrapper"];
    },
  },
  methods: {
    initSize() {
      return new Promise((resolve, reject) => {
        // console.log("初始化样式");
        //给父元素设置 overflow:hidden
        this.screenWrapper.parentNode.style.overflow = "hidden";
        this.screenWrapper.parentNode.scrollLeft = 0;
        this.screenWrapper.parentNode.scrollTop = 0;
        this.$nextTick(() => {
          // region èŽ·å–å¤§å±çœŸå®žå°ºå¯¸
          if (this.width && this.height) {
            this.currentWidth = this.width;
            this.currentHeight = this.height;
          } else {
            this.currentWidth = this.screenWrapper.clientWidth;
            this.currentHeight = this.screenWrapper.clientHeight;
          }
          // endregion
          // region èŽ·å–ç”»å¸ƒå°ºå¯¸
          if (!this.originalHeight || !this.originalWidth) {
            this.originalWidth = window.screen.width;
            this.originalHeight = window.screen.height;
          }
          // endregion
          resolve();
        });
      });
    },
    updateSize() {
      if (this.currentWidth && this.currentHeight) {
        this.screenWrapper.style.width = `${this.currentWidth}px`;
        this.screenWrapper.style.height = `${this.currentHeight}px`;
      } else {
        this.screenWrapper.style.width = `${this.originalWidth}px`;
        this.screenWrapper.style.height = `${this.originalHeight}px`;
      }
    },
    handleAutoScale(scale) {
      if (!this.autoScale) return;
      const screenWrapper = this.screenWrapper;
      const domWidth = screenWrapper.clientWidth;
      const domHeight = screenWrapper.clientHeight;
      const currentWidth = document.body.clientWidth;
      const currentHeight = document.body.clientHeight;
      screenWrapper.style.transform = `scale(${scale},${scale}) `;
      let mx = Math.max((currentWidth - domWidth * scale) / 2, 0);
      let my = Math.max((currentHeight - domHeight * scale) / 2, 0);
      if (typeof this.autoScale === "object") {
        // @ts-ignore
        !this.autoScale.x && (mx = 0);
        // @ts-ignore
        !this.autoScale.y && (my = 0);
      }
      // console.log({
      //   mx,
      //   my,
      //   currentWidth,
      //   currentHeight,
      //   domWidth,
      //   domHeight,
      //   scale,
      // });
      this.screenWrapper.style.margin = `${my}px ${mx}px`;
    },
    updateScale() {
      const screenWrapper = this.screenWrapper;
      // èŽ·å–çœŸå®žè§†å£å°ºå¯¸
      const currentWidth = document.body.clientWidth;
      const currentHeight = document.body.clientHeight;
      // èŽ·å–å¤§å±æœ€ç»ˆçš„å®½é«˜onResize
      const realWidth = this.currentWidth || this.originalWidth;
      const realHeight = this.currentHeight || this.originalHeight;
      // è®¡ç®—缩放比例
      const widthScale = currentWidth / realWidth;
      const heightScale = currentHeight / realHeight;
      // console.log({currentWidth, currentHeight,realWidth,realHeight});
      // è‹¥è¦é“ºæ»¡å…¨å±ï¼Œåˆ™æŒ‰ç…§å„自比例缩放
      if (this.fullScreen) {
        screenWrapper.style.transform = `scale(${widthScale},${heightScale})`;
        return false;
      }
      // æŒ‰ç…§å®½é«˜æœ€å°æ¯”例进行缩放
      const scale = Math.min(widthScale, heightScale);
      this.handleAutoScale(scale);
    },
    initMutationObserver() {
      const screenWrapper = this.screenWrapper;
      const observer = (this.observer = new MutationObserver(() => {
        this.onResize();
      }));
      observer.observe(screenWrapper, {
        attributes: true,
        attributeFilter: ["style"],
        attributeOldValue: true,
      });
    },
    clearListener() {
      window.removeEventListener("resize", this.onResize);
    },
    addListener() {
      window.addEventListener("resize", this.onResize);
    },
    clearStyle() {
      // console.log("清除");
      const screenWrapper = this.screenWrapper;
      screenWrapper.parentNode.style.overflow = "auto";
      screenWrapper.style = "";
    },
    async resize() {
      if (!this.selfAdaption) {
        return;
      }
      await this.initSize();
      this.updateSize();
      this.updateScale();
    },
  },
  mounted() {
    this.onResize = debounce(() => {
      this.resize();
    }, this.delay);
    this.$nextTick(() => {
      if (this.selfAdaption) {
        this.resize();
        this.addListener();
      }
    });
  },
  beforeDestroy() {
    this.clearListener();
    // this.observer.disconnect()
  },
};
//
</script>
<style scoped>
.screen-box {
  overflow: hidden;
  background-size: 100% 100%;
  background: #000;
  width: 100vw;
  height: 100vh;
}
.screen-wrapper {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 500ms;
  position: relative;
  overflow: hidden;
  z-index: 100;
  transform-origin: left top;
}
</style>
ÏîÄ¿´úÂë/DP/src/views/home.scss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,261 @@
.scale-wrap {
    color: #d3d6dd;
    width: 1920px;
    height: 1080px;
    overflow: hidden;
    // &.pageisScale {
    //     position: absolute;
    //     top: 50%;
    //     left: 50%;
    //     transform: translate(-50%, -50%);
    //     transform-origin: left top;
    // }
    .bg {
        width: 100%;
        height: 100%;
        padding: 16px 16px 10px 16px;
        box-sizing: border-box;
        background-image: url("../assets/img/pageBg.png");
        background-size: cover;
        background-position: center center;
    }
    .host-body {
        height: 100%;
        .title_wrap {
            height: 60px;
            background-image: url("../assets/img/top.png");
            background-size: cover;
            background-position: center center;
            position: relative;
            margin-bottom: 4px;
            .guang {
                position: absolute;
                bottom: -26px;
                background-image: url("../assets/img/guang.png");
                background-position: 80px center;
                width: 100%;
                height: 56px;
            }
            .zuojuxing,
            .youjuxing {
                position: absolute;
                top: -2px;
                width: 140px;
                height: 6px;
                background-image: url("../assets/img/headers/juxing1.png");
            }
            .zuojuxing {
                left: 11%;
            }
            .youjuxing {
                right: 11%;
                transform: rotate(180deg);
            }
            .timers {
                position: absolute;
                right: 0;
                top: 30px;
                font-size: 18px;
                display: flex;
                align-items: center;
                .blq-icon-shezhi02 {
                    cursor: pointer;
                }
            }
        }
        .title {
            position: relative;
            // width: 500px;
            text-align: center;
            background-size: cover;
            color: transparent;
            height: 60px;
            line-height: 46px;
            .title-text {
                font-size: 38px;
                font-weight: 900;
                letter-spacing: 6px;
                width: 100%;
                background: linear-gradient(92deg, #0072FF 0%, #00EAFF 48.8525390625%, #01AAFF 100%);
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
            }
        }
    }
}
.scale-wrap {
    .pagetab {
        position: absolute;
        top: -35px;
        display: flex;
        .item {
            width: 130px;
            height: 36px;
            border-radius: 18px 0px 0px 18px;
            color: #00FBF8;
            text-indent: 26px;
            line-height: 36px;
            font-size: 16px;
            margin-right: 20px;
            background: linear-gradient(to right, rgba(76, 245, 255, .5), rgba(76, 245, 255, 0));
        }
    }
}
.setting {
    position: fixed;
    width: 100%;
    height: 100%;
    z-index: 999;
    top: 0;
    left: 0;
    .left_shu {
        color: #000;
        font-weight: 900;
        position: relative;
        text-indent: 10px;
        padding:16px 0 10px 0 ;
        &::before {
            display: block;
            content: " ";
            height: 16px;
            width: 4px;
            border-radius: 2px;
            background: #0072FF;
            position: absolute;
            left: 0px;
        }
    }
    .setting_dislog {
        background-color: rgba($color: #000000, $alpha: .5);
        position: absolute;
        width: 100%;
        height: 100%;
        z-index: 0;
        right: 0;
        top: 0;
    }
    .setting_inner {
        box-sizing: border-box;
        background: #FFF;
        width: 340px;
        height: 100%;
        position: absolute;
        right: 0px;
        top: 0;
        z-index: 1;
        color: #000000;
        box-shadow: 0 8px 10px -5px rgba(0, 0, 0, .2), 0 16px 24px 2px rgba(0, 0, 0, .14), 0 6px 30px 5px rgba(0, 0, 0, .12);
        .setting_header {
            font-size: 20px;
            color: rgb(0, 0, 0);
            font-weight: 900;
            text-align: center;
            line-height: 40px;
        }
        .setting_body {
            padding: 0px 16px;
            box-sizing: border-box;
            position: relative;
        }
        .setting_item {
            font-size: 14px;
            line-height: 1.5;
            // display: flex;
            .setting_label {
                color: #555454;
            }
            .setting_label_tip{
                font-size: 12px;
                color: #838282;
            }
        }
    }
    .setting_inner {
        animation: rtl-drawer-out .3s;
    }
}
.settingShow {
    .setting_inner {
        animation: rtl-drawer-in .3s 1ms;
    }
}
.yh-setting-fade-enter-active {
    animation: yh-setting-fade-in .3s;
}
.yh-setting-fade-leave-active {
    animation: yh-setting-fade-out .3s;
}
@keyframes yh-setting-fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
@keyframes yh-setting-fade-out {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}
@keyframes rtl-drawer-in {
    0% {
        transform: translate(100%, 0)
    }
    100% {
        -webkit-transform: translate(0, 0);
        transform: translate(0, 0)
    }
}
@keyframes rtl-drawer-out {
    0% {
        transform: translate(0, 0)
    }
    100% {
        transform: translate(100%, 0)
    }
}
ÏîÄ¿´úÂë/DP/src/views/home.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
<!--
 * @Author: daidai
 * @Date: 2022-01-12 14:23:32
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-09-09 14:47:24
 * @FilePath: \web-pc\src\pages\big-screen\view\home.vue
-->
<template>
  <!-- <div id="index" ref="appRef" class="index_home" :class="{ pageisScale: isScale }"> -->
  <ScaleScreen
    :width="1920"
    :height="1080"
    class="scale-wrap"
    :selfAdaption="$store.state.setting.isScale"
  >
    <div class="bg">
      <dv-loading v-if="loading">Loading...</dv-loading>
      <div v-else class="host-body">
        <!-- å¤´éƒ¨ s -->
        <div class="d-flex jc-center title_wrap">
          <div class="zuojuxing"></div>
          <div class="youjuxing"></div>
          <div class="guang"></div>
          <div class="d-flex jc-center">
            <div class="title">
              <span class="title-text">轮对压装智能选配系统</span>
            </div>
          </div>
          <div class="timers">
            {{ dateYear }} {{ dateWeek }} {{ dateDay }}
            <i
              class="blq-icon-shezhi02"
              style="margin-left: 10px"
              @click="showSetting"
            ></i>
          </div>
        </div>
        <!-- å¤´éƒ¨ e-->
        <!-- å†…容  s-->
        <router-view></router-view>
        <!-- å†…容 e -->
      </div>
    </div>
    <Setting ref="setting" />
  </ScaleScreen>
  <!-- </div> -->
</template>
<script>
import { formatTime } from "../utils/index.js";
import Setting from "./setting.vue";
import ScaleScreen from "@/components/scale-screen/scale-screen.vue";
export default {
  components: { Setting, ScaleScreen },
  data() {
    return {
      timing: null,
      loading: true,
      dateDay: null,
      dateYear: null,
      dateWeek: null,
      weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
    };
  },
  filters: {
    numsFilter(msg) {
      return msg || 0;
    },
  },
  computed: {},
  created() {},
  mounted() {
    this.timeFn();
    this.cancelLoading();
  },
  beforeDestroy() {
    clearInterval(this.timing);
  },
  methods: {
    showSetting() {
      this.$refs.setting.init();
    },
    timeFn() {
      this.timing = setInterval(() => {
        this.dateDay = formatTime(new Date(), "HH: mm: ss");
        this.dateYear = formatTime(new Date(), "yyyy-MM-dd");
        this.dateWeek = this.weekday[new Date().getDay()];
      }, 1000);
    },
    cancelLoading() {
      let timer = setTimeout(() => {
        this.loading = false;
        clearTimeout(timer);
      }, 500);
    },
  },
};
</script>
<style lang="scss">
@import "./home.scss";
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/center-bottom.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,264 @@
<template>
  <div class="center_bottom">
    <Echart
      :options="options"
      id="bottomLeftChart"
      class="echarts_bottom"
    ></Echart>
  </div>
</template>
<script>
// import { currentGET } from "api/modules";
import { graphic } from "echarts";
import {Timefault} from "@/api/http.js"
import axios from 'axios'
export default {
  data() {
    return {
      options: {
        tooltip: {
          trigger: "axis",
          backgroundColor: "rgba(0,0,0,.6)",
          borderColor: "rgba(147, 235, 248, .8)",
          textStyle: {
            color: "#FFF",
          },
          formatter: function (params) {
            // æ·»åŠ å•ä½
            var result = params[0].name + "<br>";
            params.forEach(function (item) {
              if (item.value) {
                  result +=
                    item.marker +
                    " " +
                    "合格产量" +
                    " : " +
                    item.value +
                    "托</br>";
              } else {
                result += item.marker + " " + item.seriesName + " :  - </br>";
              }
            });
            return result;
          },
        },
        legend: {
          data: ["单位:托"],
          textStyle: {
            color: "#B4B4B4",
          },
          top: "-5",
        },
        grid: {
          left: "50px",
          right: "40px",
          bottom: "30px",
          top: "20px",
        },
        xAxis: {
          data: ['8/12','8/13','8/14','8/15','8/16','8/17','8/18'],
          axisLine: {
            lineStyle: {
              color: "#B4B4B4",
            },
          },
          axisTick: {
            show: false,
          },
        },
        yAxis: [
          {
            splitLine: { show: true },
            axisLine: {
              lineStyle: {
                color: "#B4B4B4",
              },
            },
            axisLabel: {
              formatter: "{value}",
            },
          },
        ],
        series: [
          {
            name: "单位:托",
            type: "bar",
            barWidth: 20,
            itemStyle: {
              normal: {
                borderRadius: 5,
                  color: new graphic.LinearGradient(0, 0, 0, 1, [
                    { offset: 0, color: "#956FD4" },
                    { offset: 1, color: "#3EACE5" },
                  ]),
                  // label: {
                  //     show: true, //开启显示
                  //     position: 'top', //在上方显示
                  //     textStyle: { //数值样式
                  //     color: '#bdbae2',
                  //     fontSize: 10
                  //   }
                  // }
              }
            },
            data: ['200','180','190','185','190','188','195'],
          },
        ],
      },
    };
  },
  props: {},
  mounted() {
    this.getData();
    this.changeTiming();
  },
  beforeDestroy() {
    this.clearData()
  },
  methods: {
    clearData() {
      if (this.timer) {
        clearInterval(this.timer)
        this.timer = null
      }
    },
    changeTiming() {
      this.timer=setInterval(() => {
        this.getData();
      }, 30000);
    },
    getData() {
      // this.numberData.forEach((item, index) => {
      //   item.number.number[0] += ++index
      //   item.number = { ...item.number }
      // })
      axios.post("http://192.168.12.189:8098/api/Dt_taskinfo/GetDateTimeData", null)
      .then((res) => {
        this.init(res);
      }).catch((res) => {
      })
    },
    // async getData() {
    //   this.pageflag = true;
    //   let rep = await Timefault((a)=>{
    //       console.log(a);
    //     });
    //    this.init(rep);
    //   currentGET("big6", { companyName: this.companyName }).then((res) => {
    //     console.log("故障时长统计", res);
    //     // if (res.success) {
    //     //   this.init(res.data);
    //     //   console.log("测试2",res.data);
    //     // } else {
    //     //   this.pageflag = false;
    //     //   this.$Message({
    //     //     text: res.msg,
    //     //     type: "warning",
    //     //   });
    //     // }
    //   });
    // },
    init(val) {
      this.options = {
        tooltip: {
          trigger: "axis",
          backgroundColor: "rgba(0,0,0,.6)",
          borderColor: "rgba(147, 235, 248, .8)",
          textStyle: {
            color: "#FFF",
          },
          formatter: function (params) {
            // æ·»åŠ å•ä½
            var result = params[0].name + "<br>";
            params.forEach(function (item) {
              if (item.value) {
                  result +=
                    item.marker +
                    " " +
                    "合格产量" +
                    " : " +
                    item.value +
                    "托</br>";
              } else {
                result += item.marker + " " + item.seriesName + " :  - </br>";
              }
            });
            return result;
          },
        },
        legend: {
          data: ["单位:托"],
          textStyle: {
            color: "#B4B4B4",
          },
          top: "-5",
        },
        grid: {
          left: "50px",
          right: "40px",
          bottom: "30px",
          top: "20px",
        },
        xAxis: {
          data: [val[6].datetime,val[5].datetime,val[4].datetime,val[3].datetime,
                val[2].datetime,val[1].datetime,val[0].datetime],
          axisLine: {
            lineStyle: {
              color: "#B4B4B4",
            },
          },
          axisTick: {
            show: false,
          },
        },
        yAxis: [
          {
            min: 0, // åˆ»åº¦æœ€å°å€¼
            splitLine: { show: true },
            axisLine: {
              lineStyle: {
                color: "#B4B4B4",
              },
            },
            axisLabel: {
              formatter: "{value}",
            },
          }
        ],
        series: [
          {
            name: "单位:托",
            type: "bar",
            barWidth: 20,
            itemStyle: {
              borderRadius: 5,
              color: new graphic.LinearGradient(0, 0, 0, 1, [
                { offset: 0, color: "#956FD4" },
                { offset: 1, color: "#3EACE5" },
              ]),
            },
            data: [val[6].qty,val[5].qty,val[4].qty,val[3].qty,
                  val[2].qty,val[1].qty,val[0].qty],
          },
        ],
      };
    },
  },
};
</script>
<style lang="scss" scoped>
.center_bottom {
  width: 100%;
  height: 100%;
  .echarts_bottom {
    width: 100%;
    height: 100%;
  }
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/center-map.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,123 @@
<template>
  <div class="centermap">
    <div class="mapwrap">
      <dv-border-box-13>
        <video
          ref="videoPlayer"
          class="screen-video"
          src="../../assets/img/2.mp4"
          loop
          autoplay
          preload="auto"
          muted
          @click="unmuteVideo"
        >
          æ‚¨çš„æµè§ˆå™¨ä¸æ”¯æŒè§†é¢‘播放。
        </video>
        <div v-if="isMuted" class="mute-hint" @click="unmuteVideo">
          <span>点击取消静音(5秒后自动播放声音)</span>
        </div>
      </dv-border-box-13>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      isMuted: false,
      unmuteTimeout: null // å­˜å‚¨å®šæ—¶å™¨ä»¥ä¾¿æ¸…理
    };
  },
  mounted() {
    this.initVideo();
    this.adjustVideoSize();
    window.addEventListener('resize', this.adjustVideoSize);
    // 5秒后自动取消静音
    this.unmuteTimeout = setTimeout(() => {
      this.unmuteVideo();
    }, 5000);
  },
  beforeDestroy() {
    window.removeEventListener('resize', this.adjustVideoSize);
    if (this.unmuteTimeout) {
      clearTimeout(this.unmuteTimeout); // æ¸…除定时器避免内存泄漏
    }
  },
  methods: {
    initVideo() {
      const video = this.$refs.videoPlayer;
      if (video) {
        video.addEventListener('ended', () => {
          video.currentTime = 0;
          video.play();
        });
      }
      document.addEventListener('click', this.unmuteVideo, { once: true });
    },
    unmuteVideo() {
      const video = this.$refs.videoPlayer;
      if (video) {
        video.muted = false;
        video.volume = 1.0;
        this.isMuted = false;
      }
    },
    adjustVideoSize() {
      const video = this.$refs.videoPlayer;
      if (video) {
        video.style.width = '100%';
        video.style.height = '100%';
        video.style.objectFit = 'cover';
      }
    }
  }
};
</script>
<style scoped>
/* æ ·å¼ä¿æŒä¸å˜ */
.centermap {
  width: 100%;
  height: 100%;
  .mapwrap {
    height: 960px;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    margin-top: 10px;
    & > dv-border-box-13 {
      width: 100%;
      height: 100%;
      position: relative;
      overflow: hidden;
    }
  }
}
.screen-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mute-hint {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,0.7);
  color: white;
  padding: 10px 20px;
  border-radius: 5px;
  cursor: pointer;
  z-index: 10;
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,182 @@
<!--
 * @Author: daidai
 * @Date: 2022-03-04 09:23:59
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-05-07 11:05:02
 * @FilePath: \web-pc\src\pages\big-screen\view\indexs\index.vue
-->
<template>
  <div class="contents">
    <div class="contetn_center">
      <CenterMap class="contetn_center_top" />
    </div>
    <div class="contetn_left">
      <div class="pagetab">
        <!-- <div class="item">实时监测</div> -->
      </div>
      <!-- <ItemWrap class="contetn_left-top contetn_lr-item" title="故障--种类频率">
        <LeftCenter />
      </ItemWrap> -->
      <ItemWrap
        class="contetn_left-bottom contetn_lr-item"
        title="库位信息"
      >
      <stationone/>
      </ItemWrap>
      <ItemWrap
        class="contetn_left-bottom contetn_lr-item2"
        title="库存信息"
      >
      <stationtwo/>
      </ItemWrap>
      <!-- <ItemWrap
        class="contetn_left-bottom contetn_lr-item"
        title="总体出入库信息"
      >
      <stationthree/>
      </ItemWrap> -->
    </div>
  </div>
</template>
<script>
import LeftTop from './left-top.vue'
import LeftCenter from "./left-center.vue";
import LeftBottom from "./left-bottom.vue";
import CenterMap from "./center-map.vue";
import CenterBottom from "./center-bottom.vue";
import RightTop from "./right-top.vue";
import RightCenter from "./right-center.vue";
import RightBottom from "./right-bottom.vue";
import LeftCenterRight from "./left-center-right.vue";
import stationone from './station-one.vue'
import stationtwo from './station-two.vue'
import stationthree from './station-three.vue'
import passtwo from './pass-two.vue'
import plan from './plan.vue'
export default {
  components: {
    LeftTop,
    LeftCenter,
    LeftCenterRight,
    LeftBottom,
    CenterMap,
    RightTop,
    RightCenter,
    RightBottom,
    CenterBottom,
    stationone,
    stationtwo,
    stationthree,
    passtwo,
    plan
  },
  data() {
    return {
    };
  },
  filters: {
    numsFilter(msg) {
      return msg || 0;
    },
  },
  created() {
  },
  mounted() {},
  methods: {
  },
};
</script>
<style lang="scss" scoped>
// å†…容
.contents {
  .contetn_left,
  .contetn_right {
    width: 475px;
    box-sizing: border-box;
    // padding: 16px 0;
  }
  .contetn_center {
    width: 1400px;
  }
  //左右两侧 ä¸‰ä¸ªå—
  .contetn_lr-item {
    height: 310px;
  }
  .contetn_lr-item2 {
    height: 620px;
  }
  .contetn_center_top {
    width: 100%;
  }
  // ä¸­é—´
  .contetn_center {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
  }
  .contetn_center-bottom {
    height: 315px;
  }
  //左边 å³è¾¹ ç»“构一样
  .contetn_left,
  .contetn_right {
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    position: relative;
  }
}
.labels {
        flex-shrink: 0;
        font-size: 24px;
        color: rgba(255, 255, 255, 0.6);
        float: left;
        margin-right: 11.5%;
      }
      .labelsd {
        flex-shrink: 0;
        font-size: 24px;
        color: rgba(255, 255, 255, 0.6);
        float: left;
        margin-left: 6%;
      }
@keyframes rotating {
    0% {
        -webkit-transform: rotate(0) scale(1);
        transform: rotate(0) scale(1);
    }
    50% {
        -webkit-transform: rotate(180deg) scale(1.1);
        transform: rotate(180deg) scale(1.1);
    }
    100% {
        -webkit-transform: rotate(360deg) scale(1);
        transform: rotate(360deg) scale(1);
    }
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/left-bottom.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,278 @@
<!--
 * @Author: daidai
 * @Date: 2022-03-01 09:43:37
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-09-09 11:40:22
 * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-bottom.vue
-->
<template>
  <div
    v-if="pageflag"
    class="left_boottom_wrap beautify-scroll-def"
    :class="{ 'overflow-y-auto': !sbtxSwiperFlag }"
  >
    <component :is="components" :data="list" :class-option="defaultOption">
      <ul class="left_boottom">
        <li class="left_boottom_item" v-for="(item, i) in list" :key="i">
          <div class="inner_right">
            <div class="dibu"></div>
            <div class="flex" style="width: 100%;">
              <div class="info">
                <!-- <span class="labels">设备ID:</span> -->
                <span class="contents zhuyao doudong wangguan">
                  {{ item.alarmposition }}</span
                >
              </div>
              <div class="info" style="margin-left: 8%;">
              <!-- <span class="labels">地址:</span> -->
              <span class="contents ciyao" style="font-size: 10px;width: 30px;">
                {{ item.devicename }}</span
              >
            </div>
              <div class="info" style="margin-left: 7%;">
              <!-- <span class="labels">地址:</span> -->
              <span class="contents ciyao" style="font-size: 10px;width: 180px;">
                {{ item.alarmname }}</span
              >
            </div>
            <div class="info">
                <!-- <span class="labels">时间:</span> -->
                <span class="contents " style="font-size: 10px;width: 180px;">
                  {{ item.starttime }}</span
                >
              </div>
            </div>
              <!-- <span
                class="types doudong"
                :class="{
                  typeRed: item.onlineState == 0,
                  typeGreen: item.onlineState == 1,
                }"
                >{{ item.onlineState == 1 ? "上线" : "下线" }}</span
              > -->
          </div>
        </li>
      </ul>
    </component>
  </div>
  <Reacquire v-else @onclick="getData" style="line-height: 200px" />
</template>
<script>
// import { currentGET } from "api";
import {FaultInformation} from "@/api/http.js"
import vueSeamlessScroll from "vue-seamless-scroll"; // vue2引入方式
import Kong from "../../components/kong.vue";
export default {
  components: { vueSeamlessScroll, Kong },
  data() {
    return {
      list: [],
      pageflag: true,
      components: vueSeamlessScroll,
      defaultOption: {
        ...this.$store.state.setting.defaultOption,
        singleHeight: 240,
        limitMoveNum: 5,
        step: 0,
      },
    };
  },
  computed: {
    sbtxSwiperFlag() {
      let sbtxSwiper = this.$store.state.setting.sbtxSwiper;
      if (sbtxSwiper) {
        this.components = vueSeamlessScroll;
      } else {
        this.components = Kong;
      }
      return sbtxSwiper;
    },
  },
  created() {
  },
  mounted() {
    this.getData();
    this.changeTiming();
  },
  methods: {
    changeTiming() {
      setInterval(() => {
        this.getData();
      }, 5000);
    },
    addressHandle(item) {
      let name = item.provinceName;
      if (item.cityName) {
        name += "/" + item.cityName;
        if (item.countyName) {
          name += "/" + item.countyName;
        }
      }
      return name;
    },
    async getData() {
      this.pageflag = true;
    // this.pageflag =false
      // currentGET("big3", { limitNum: 20 }).then((res) => {
      //   console.log("设备提醒", res);
      //   if (res.success) {
      //     this.countUserNumData = res.data;
      //     this.list = res.data.list;
      //     let timer = setTimeout(() => {
      //       clearTimeout(timer);
      //       this.defaultOption.step =
      //         this.$store.state.setting.defaultOption.step;
      //     }, this.$store.state.setting.defaultOption.waitTime);
      //   } else {
      //     this.pageflag = false;
      //     this.$Message({
      //       text: res.msg,
      //       type: "warning",
      //     });
      //   }
      // });
      let rep = await FaultInformation((a)=>{
          console.log(a);
        });
       this.list=rep;
                let timer = setTimeout(() => {
            clearTimeout(timer);
            this.defaultOption.step =
              this.$store.state.setting.defaultOption.step;
          }, this.$store.state.setting.defaultOption.waitTime);
    },
  },
};
</script>
<style lang='scss' scoped>
.left_boottom_wrap {
  overflow: hidden;
  width: 100%;
  height: 230px;
}
.doudong {
  //  vertical-align:middle;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  backface-visibility: hidden;
}
.overflow-y-auto {
  overflow-y: auto;
}
.left_boottom {
  width: 100%;
  height: 100%;
  .left_boottom_item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    font-size: 14px;
    margin: 10px 0;
    .orderNum {
      margin: 0 16px 0 -20px;
    }
    .info {
      margin-right: 8%;
      display: flex;
      align-items: center;
      color: #fff;
      .labels {
        flex-shrink: 0;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.6);
      }
      .zhuyao {
        color: $primary-color;
        font-size: 15px;
      }
      .ciyao {
        color: rgba(255, 255, 255, 0.8);
      }
      .warning {
        color: #e6a23c;
        font-size: 15px;
      }
    }
    .inner_right {
      position: relative;
      height: 100%;
      width: 650px;
      flex-shrink: 0;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      .dibu {
        position: absolute;
        height: 2px;
        width: 104%;
        background-image: url("../../assets/img/zuo_xuxian.png");
        bottom: -10px;
        left: -2%;
        background-size: cover;
      }
      .addresswrap {
        width: 200px;
        display: flex;
        margin-top: 8px;
      }
    }
    .wangguan {
      color: #1890ff;
      font-weight: 900;
      font-size: 15px;
      width: 80px;
      flex-shrink: 0;
    }
    .time {
      font-size: 12px;
      // color: rgba(211, 210, 210,.8);
      color: #fff;
    }
    .address {
      font-size: 12px;
      cursor: pointer;
      // @include text-overflow(1);
    }
    .types {
      width: 30px;
      flex-shrink: 0;
    }
    .typeRed {
      color: #fc1a1a;
    }
    .typeGreen {
      color: #29fc29;
    }
  }
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/left-center-right.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,257 @@
<!--
 * @Author: daidai
 * @Date: 2022-02-28 16:16:42
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-10-25 09:18:22
 * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
-->
<template>
    <Echart id="leftcenterright" :options="options" class="left_center_inner" v-if="pageflag" ref="charts" />
    <Reacquire v-else @onclick="getData" style="line-height:200px">
      é‡æ–°èŽ·å–
    </Reacquire>
  </template>
  <script>
  import { currentPOST } from 'api/modules'
  import {Equipmentfault} from "@/api/http.js"
  export default {
    data() {
      return {
        options: {},
        countUserNumData: {
          HoistNum: 0,
          decoderNum: 0,
          uncoderNum: 0,
          elevatorNum:0,
          TransmissionlineNum:0,
          totalNum: 0
        },
        pageflag: true,
        timer: null
      };
    },
    created() {
      this.getData()
    },
    mounted() {
      this.changeTiming();
    },
    beforeDestroy() {
      // this.clearData()
    },
    methods: {
      changeTiming() {
      setInterval(() => {
        this.getData();
      }, 5000);
    },
      // clearData() {
      //   if (this.timer) {
      //     clearInterval(this.timer)
      //     this.timer = null
      //   }
      // },
       async getData() {
         this.pageflag = true
        // this.pageflag =false
        // currentPOST('big1').then(res => {
        //   //只打印一次
        //   if (!this.timer) {
        //     console.log("设备总览", res);
        //   }
        //   if (res.success) {
        //     // this.countUserNumData = res.data
        //     this.$nextTick(() => {
        //       this.init()
        //     })
        //   } else {
        //     this.pageflag = false
        //     this.$Message({
        //       text: res.msg,
        //       type: 'warning'
        //     })
        //   }
        // })
        let rep = await Equipmentfault((a)=>{
          console.log(a);
        });
        this.countUserNumData = rep;
            this.$nextTick(() => {
              this.init()
            })
      },
      //轮询
      switper() {
        if (this.timer) {
          return
        }
        let looper = (a) => {
          this.getData()
        };
        this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
        let myChart = this.$refs.charts.chart
        myChart.on('mouseover', params => {
          this.clearData()
        });
        myChart.on('mouseout', params => {
          this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
        });
      },
      init() {
        let total = this.countUserNumData.total;
        let colors = ["#ECA444", "#33A1DB", "#56B557","#ffb8c6","#FF21FA"];
        let piedata = {
          name: "故障设备频率",
          type: "pie",
          radius: ["40%", "70%"],
          avoidLabelOverlap: false,
          itemStyle: {
            borderRadius: 4,
            borderColor: "rgba(0,0,0,0)",
            borderWidth: 2,
          },
          color: colors,
          data: [
            // {
            //   value: 0,
            //   name: "告警",
            //   label: {
            //     shadowColor: colors[0],
            //   },
            // },
            {
              value: this.countUserNumData.elevator,
              name: "提升机故障",
              label: {
                shadowColor: colors[0],
              },
            },
            {
              value: this.countUserNumData.discremover,
              name: "拆码机故障",
              label: {
                shadowColor: colors[2],
              },
            },
            {
              value: this.countUserNumData.rgVcCar,
              name: "四向车故障",
              label: {
                shadowColor: colors[1],
              },
            },
            {
              value: this.countUserNumData.pipeline,
              name: "输送线故障",
              label: {
                shadowColor: colors[4],
              },
            }
          ],
        };
        this.options = {
          title: {
            // zlevel: 0,
            text: ["{value|" + total + "}", "{name|总数}"].join("\n"),
            top: "center",
            left: "center",
            textStyle: {
              rich: {
                value: {
                  color: "#ffffff",
                  fontSize: 24,
                  fontWeight: "bold",
                  lineHeight: 20,
                },
                name: {
                  color: "#ffffff",
                  lineHeight: 20,
                },
              },
            },
          },
          tooltip: {
            trigger: "item",
            backgroundColor: "rgba(0,0,0,.6)",
            borderColor: "rgba(147, 235, 248, .8)",
            textStyle: {
              color: "#FFF",
            },
          },
          legend: {
            show: false,
            top: "5%",
            left: "center",
          },
          series: [
            //展示圆点
            {
              ...piedata,
              tooltip: { show: true },
              label: {
                formatter: " {b|{b}}",
                // formatter: "   {b|{b}}   \n   {c|{c}个}   {per|{d}%}  ",
                //   position: "outside",
                rich: {
                  b: {
                    color: "#fff",
                    fontSize: 12,
                    lineHeight: 26,
                  },
                  c: {
                    color: "#31ABE3",
                    fontSize: 14,
                  },
                  per: {
                    color: "#31ABE3",
                    fontSize: 14,
                  },
                },
              },
              labelLine: {
                length: 30, // ç¬¬ä¸€æ®µçº¿ é•¿åº¦
                length2: 46, // ç¬¬äºŒæ®µçº¿ é•¿åº¦
                show: true,
              },
                emphasis: {
                  show: true,
                },
            },
            {
              ...piedata,
              tooltip: { show: true },
              itemStyle: {},
              label: {
                backgroundColor: "inherit", //圆点颜色,auto:映射的系列色
                height: 0,
                width: 0,
                lineHeight: 0,
                borderRadius: 2.5,
                shadowBlur: 8,
                shadowColor: "auto",
                padding: [2.5, -2.5, 2.5, -2.5],
              },
              labelLine: {
                length: 30, // ç¬¬ä¸€æ®µçº¿ é•¿åº¦
                length2: 46, // ç¬¬äºŒæ®µçº¿ é•¿åº¦
                show: false,
              },
            },
          ],
        };
      },
    },
  };
  </script>
  <style lang='scss' scoped>
  </style>
ÏîÄ¿´úÂë/DP/src/views/indexs/left-center.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,256 @@
<!--
 * @Author: daidai
 * @Date: 2022-02-28 16:16:42
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-10-25 09:18:22
 * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
-->
<template>
  <Echart id="leftCenter" :options="options" class="left_center_inner" v-if="pageflag" ref="charts" />
  <Reacquire v-else @onclick="getData" style="line-height:200px">
    é‡æ–°èŽ·å–
  </Reacquire>
</template>
<script>
import { currentGET } from 'api/modules'
import {Failuremode} from "@/api/http.js"
export default {
  data() {
    return {
      options: {},
      countUserNumData: {
        lockNum: 0,
        onlineNum: 0,
        offlineNum: 0,
        totalNum: 0
      },
      pageflag: true,
      timer: null
    };
  },
  created() {
    this.getData()
  },
  mounted() {
    this.changeTiming();
  },
  beforeDestroy() {
    // this.clearData()
  },
  methods: {
    changeTiming() {
      setInterval(() => {
        this.getData();
      }, 5000);
    },
    // clearData() {
    //   if (this.timer) {
    //     clearInterval(this.timer)
    //     this.timer = null
    //   }
    // },
    async getData() {
     // this.pageflag = true
     let rep = await Failuremode((a)=>{
          console.log(a);
        });
      this.countUserNumData = {
        offlineNum: rep.overtime,
        onlineNum: rep.sensitization,
        lockNum: rep.rgVcCar,
        totalNum: rep.total
        },
        this.$nextTick(() => {
            this.init()
          })
      // this.pageflag =false
      // currentGET('big1').then(res => {
      //   //只打印一次
      //   if (!this.timer) {
      //     console.log("设备总览", res);
      //   }
      //   if (res.success) {
      //     this.countUserNumData = res.data
          // this.$nextTick(() => {
          //   this.init()
          // })
      //   } else {
      //     this.pageflag = false
      //     this.$Message({
      //       text: res.msg,
      //       type: 'warning'
      //     })
      //   }
      // })
    },
    //轮询
    switper() {
      if (this.timer) {
        return
      }
      let looper = (a) => {
        this.getData()
      };
      this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
      let myChart = this.$refs.charts.chart
      myChart.on('mouseover', params => {
        this.clearData()
      });
      myChart.on('mouseout', params => {
        this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
      });
    },
    init() {
      let total = this.countUserNumData.totalNum;
      let colors = ["#ECA444", "#33A1DB", "#56B557","#ffb8c6"];
      let piedata = {
        name: "故障种类频率",
        type: "pie",
        radius: ["42%", "65%"],
        avoidLabelOverlap: false,
        itemStyle: {
          borderRadius: 4,
          borderColor: "rgba(0,0,0,0)",
          borderWidth: 2,
        },
        color: colors,
        data: [
          // {
          //   value: 0,
          //   name: "告警",
          //   label: {
          //     shadowColor: colors[0],
          //   },
          // },
          {
            value: this.countUserNumData.onlineNum,
            name: "光电故障",
            label: {
              shadowColor: colors[0],
            },
          },
          {
            value: this.countUserNumData.lockNum,
            name: "四向车故障",
            label: {
              shadowColor: colors[2],
            },
          },
          // {
          //   value: this.countUserNumData.onlineNum,
          //   name: "超限位故障",
          //   label: {
          //     shadowColor: colors[1],
          //   },
          // },
          {
            value: this.countUserNumData.offlineNum,
            name: "超时故障",
            label: {
              shadowColor: colors[3],
            },
          },
        ],
      };
      this.options = {
        title: {
          // zlevel: 0,
          text: ["{value|" + total + "}", "{name|总数}"].join("\n"),
          top: "center",
          left: "center",
          textStyle: {
            rich: {
              value: {
                color: "#ffffff",
                fontSize: 24,
                fontWeight: "bold",
                lineHeight: 20,
              },
              name: {
                color: "#ffffff",
                lineHeight: 20,
              },
            },
          },
        },
        tooltip: {
          trigger: "item",
          backgroundColor: "rgba(0,0,0,.6)",
          borderColor: "rgba(147, 235, 248, .8)",
          textStyle: {
            color: "#FFF",
          },
        },
        legend: {
          show: false,
          top: "5%",
          left: "center",
        },
        series: [
          //展示圆点
          {
            ...piedata,
            tooltip: { show: true },
            label: {
              formatter: " {b|{b}}",
              //   position: "outside",
              rich: {
                b: {
                  color: "#fff",
                  fontSize: 12,
                  lineHeight: 26,
                },
                c: {
                  color: "#31ABE3",
                  fontSize: 14,
                },
                per: {
                  color: "#31ABE3",
                  fontSize: 14,
                },
              },
            },
            labelLine: {
              length: 30, // ç¬¬ä¸€æ®µçº¿ é•¿åº¦
              length2: 46, // ç¬¬äºŒæ®µçº¿ é•¿åº¦
              show: true,
            },
              emphasis: {
                show: true,
              },
          },
          {
            ...piedata,
            tooltip: { show: true },
            itemStyle: {},
            label: {
              backgroundColor: "inherit", //圆点颜色,auto:映射的系列色
              height: 0,
              width: 0,
              lineHeight: 0,
              borderRadius: 2.5,
              shadowBlur: 8,
              shadowColor: "auto",
              padding: [2.5, -2.5, 2.5, -2.5],
            },
            labelLine: {
              length: 30, // ç¬¬ä¸€æ®µçº¿ é•¿åº¦
              length2: 46, // ç¬¬äºŒæ®µçº¿ é•¿åº¦
              show: false,
            },
          },
        ],
      };
    },
  },
};
</script>
<style lang='scss' scoped>
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/left-top.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,250 @@
<!--
 * @Author: daidai
 * @Date: 2022-02-28 16:16:42
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-07-20 17:57:11
 * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
-->
<template>
    <ul class="user_Overview flex" v-if="pageflag">
        <li class="user_Overview-item" style="color: #00fdfa">
            <div class="user_Overview_nums allnum ">
                <dv-digital-flop :config="onlineconfig" style="width:100%;height:100%;" />
            </div>
            <p>三楼货架</p>
        </li>
        <li class="user_Overview-item" style="color: #07f7a8">
            <div class="user_Overview_nums online">
                <dv-digital-flop :config="config" style="width:100%;height:100%;" />
            </div>
            <p>五楼货架</p>
        </li>
        <li class="user_Overview-item" style="color: #e3b337">
            <div class="user_Overview_nums offline">
                <dv-digital-flop :config="offlineconfig" style="width:100%;height:100%;" />
            </div>
            <p>六楼货架</p>
        </li>
        <li class="user_Overview-item" style="color: #f5023d">
            <div class="user_Overview_nums laramnum">
                <dv-digital-flop :config="laramnumconfig" style="width:100%;height:100%;" />
            </div>
            <p>七楼货架</p>
        </li>
    </ul>
    <Reacquire v-else @onclick="getData" line-height="200px">
        é‡æ–°èŽ·å–
    </Reacquire>
</template>
<script>
import { currentGET } from 'api/modules'
import {Floorfault} from "@/api/http.js"
let style = {
    fontSize: 24
}
export default {
    data() {
        return {
            options: {},
            userOverview: {
                alarmNum: 2,
                offlineNum: 3,
                onlineNum: 5,
                totalNum: 10,
            },
            pageflag: true,
            timer: null,
            config: {
                number: [100],
                content: '{nt}',
                style: {
                    ...style,
                    // stroke: "#00fdfa",
                    fill: "#00fdfa",
                },
            },
            onlineconfig: {
                number: [0],
                content: '{nt}',
                style: {
                    ...style,
                    // stroke: "#07f7a8",
                    fill: "#07f7a8",
                },
            },
            offlineconfig: {
                number: [0],
                content: '{nt}',
                style: {
                    ...style,
                    // stroke: "#e3b337",
                    fill: "#e3b337",
                },
            },
            laramnumconfig: {
                number: [0],
                content: '{nt}',
                style: {
                    ...style,
                    // stroke: "#f5023d",
                    fill: "#f5023d",
                },
            }
        };
    },
    filters: {
        numsFilter(msg) {
            return msg || 0;
        },
    },
    created() {
        this.getData()
    },
    mounted() {
    },
    beforeDestroy() {
        this.clearData()
    },
    methods: {
        clearData() {
            if (this.timer) {
                clearInterval(this.timer)
                this.timer = null
            }
        },
        async getData() {
            this.pageflag = true;
            // currentGET("big2").then((res) => {
            //     if (!this.timer) {
            //         console.log("设备总览2", res);
            //     }
            //     if (res.success) {
            //         this.userOverview = res.data;
            //            this.onlineconfig = {
            //             ...this.onlineconfig,
            //             number: [1]
            //         }
            //         this.config = {
            //             ...this.config,
            //             number: [7]
            //         }
            //         this.offlineconfig = {
            //             ...this.offlineconfig,
            //             number: [4]
            //         }
            //         this.laramnumconfig = {
            //             ...this.laramnumconfig,
            //             number: [10]
            //         }
            //         this.switper();
            //     } else {
            //         this.pageflag = false;
            //         this.$Message.warning(res.msg);
            //     }
            // });
                    let rep = await Floorfault((a)=>{
                            console.log(a);
                    });
                       this.onlineconfig = {
                        ...this.onlineconfig,
                        number: [rep.threefloor]
                    }
                    this.config = {
                        ...this.config,
                        number: [rep.fivefloor]
                    }
                    this.offlineconfig = {
                        ...this.offlineconfig,
                        number: [rep.sixfloor]
                    }
                    this.laramnumconfig = {
                        ...this.laramnumconfig,
                        number: [rep.sevenfloor]
                    }
                    this.switper();
        },
        //轮询
        switper() {
            if (this.timer) {
                return
            }
            let looper = (a) => {
                this.getData()
            };
            this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
        },
    },
};
</script>
<style lang='scss' scoped>
.user_Overview {
    li {
        flex: 1;
        p {
            text-align: center;
            height: 16px;
            font-size: 16px;
        }
        .user_Overview_nums {
            width: 100px;
            height: 100px;
            text-align: center;
            line-height: 100px;
            font-size: 22px;
            margin: 50px auto 30px;
            background-size: cover;
            background-position: center center;
            position: relative;
            &::before {
                content: '';
                position: absolute;
                width: 100%;
                height: 100%;
                top: 0;
                left: 0;
            }
            &.bgdonghua::before {
                animation: rotating 14s linear infinite;
            }
        }
        .allnum {
            // background-image: url("../../assets/img/left_top_lan.png");
            &::before {
                background-image: url("../../assets/img/left_top_lan.png");
            }
        }
        .online {
            &::before {
                background-image: url("../../assets/img/left_top_lv.png");
            }
        }
        .offline {
            &::before {
                background-image: url("../../assets/img/left_top_huang.png");
            }
        }
        .laramnum {
            &::before {
                background-image: url("../../assets/img/left_top_hong.png");
            }
        }
    }
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/pass-two.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,314 @@
<template>
  <div  class="echart" id="mychart" :style="myChartStyle">
    <Echart
    :options="options"
      id="bottomLeftChart"
      class="echarts_bottom"
    ></Echart>
    </div>
</template>
<script>
import * as echarts from "echarts";
import axios from "axios";
export default {
  data() {
    return {
      myChart: {},
      xData: [
        "1月",
        "2月",
        "3月",
        "4月",
        "5月",
        "6月",
        "7月",
        "8月",
        "9月",
        "10月",
        "11月",
        "12月",
      ], //横坐标
      qualified: [], //合格
      unqualified: [], //不合格
      myChartStyle: { float: "left", width: "100%", height: "250px" }, //图表样式
      options:{
        xAxis: {
          name:'单位:月',
          nameTextStyle:{
              color: ["#B4B4B4"],
              padding:[0,0,0,-10],
              fontSize:14
            },
          min:0,
          max:11,
          axisLine: {
            lineStyle: {
              color: "#B4B4B4",
            },
          },
          data: [
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10",
            "11",
            "12",
          ],
        },
        legend: {
          // å›¾ä¾‹
          data: ["合格率", "不合格率"],
          bottom: "0%",
          textStyle: {
            color: "#ffffff",
            fontSize: 18,
          },
        },
        yAxis: [{
              type:"value",
              min: 0, // åˆ»åº¦æœ€å°å€¼
              max: 100, // åˆ»åº¦æœ€å¤§å€¼ï¼ˆéœ€è¦åŠ¨æ€èŽ·å–æœ€å¤§å€¼,并且能被3整除(向下取整再乘回来))
              splitNumber: 5, // æ¨ªçº¿æ•°
              name: "单位:%",
              nameTextStyle: {
                color: "#B4B4B4",
                nameLocation: "start",
                padding:[0,0,12,-20],
                fontSize:14
              },
              axisLine: {
                lineStyle: {
                  color: "#B4B4B4",
                },
              },
            }
          ],
        series: [
          {
            name: "合格率",
            data: [50, 80, 50, 72, 75, 78, 72, 70, 80, 76, 78, 74],
            type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
            label: {
              show: true,
              position: "top",
              textStyle: {
                fontSize: 14,
              },
            },
          },
          {
            name: "不合格率",
            data: [0, 11, 9, 17, 14, 13, 14, 9, 17, 14, 13, 14],
            type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
            label: {
              show: true,
              position: "top",
              textStyle: {
                fontSize: 14,
              },
            },
          },
        ],
      }
    };
  },
  mounted() {
    // this.initEcharts();
    this.getData();
    this.changeTiming();
  },
  beforeDestroy() {
    this.clearData()
  },
  methods: {
    clearData() {
      if (this.timer) {
        clearInterval(this.timer)
        this.timer = null
      }
    },
    changeTiming() {
      this.timer = setInterval(() => {
        this.getData();
      }, 60000);
    },
    getData() {
      // this.numberData.forEach((item, index) => {
      //   item.number.number[0] += ++index
      //   item.number = { ...item.number }
      // })
      axios.post("http://192.168.12.189:8098/api/Dt_CheckResult/GetPassRate",null)
        .then((res) => {
          this.init(res);
        })
        .catch((res) => {
        });
    },
    init(val){
      this.options={
        xAxis: {
          name:'单位:月',
          nameTextStyle:{
              color: ["#B4B4B4"],
              padding:[0,0,0,-10],
              fontSize:14
            },
          min:0,
          max:11,
          axisLine: {
            lineStyle: {
              color: "#B4B4B4",
            },
          },
          data: [
            "1",
            "2",
            "3",
            "4",
            "5",
            "6",
            "7",
            "8",
            "9",
            "10",
            "11",
            "12",
          ],
        },
        legend: {
          // å›¾ä¾‹
          data: ["合格率", "不合格率"],
          bottom: "0%",
          textStyle: {
            color: "#ffffff",
            fontSize: 18,
          },
        },
        yAxis: [{
              type:"value",
              min: 0, // åˆ»åº¦æœ€å°å€¼
              max: 100, // åˆ»åº¦æœ€å¤§å€¼ï¼ˆéœ€è¦åŠ¨æ€èŽ·å–æœ€å¤§å€¼,并且能被3整除(向下取整再乘回来))
              splitNumber: 5, // æ¨ªçº¿æ•°
              name: "单位:%",
              nameTextStyle: {
                color: "#B4B4B4",
                nameLocation: "start",
                padding:[0,0,12,-20],
                fontSize:14
              },
              axisLine: {
                lineStyle: {
                  color: "#B4B4B4",
                },
              },
            }
          ],
        series: [
          {
            name: "合格率",
            data:[val[0].qualified,val[1].qualified,val[2].qualified,val[3].qualified,val[4].qualified,val[5].qualified,
            val[6].qualified,val[7].qualified,val[8].qualified,val[9].qualified,val[10].qualified,val[11].qualified],
            type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
            label: {
              show: true,
              position: "top",
              textStyle: {
                fontSize: 14,
              },
            },
          },
          {
            name: "不合格率",
            data:[val[0].unqualified,val[1].unqualified,val[2].unqualified,val[3].unqualified,val[4].unqualified,val[5].unqualified,
            val[6].unqualified,val[7].unqualified,val[8].unqualified,val[9].unqualified,val[10].unqualified,val[11].unqualified],
            type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
            label: {
              show: true,
              position: "top",
              textStyle: {
                fontSize: 14,
              },
            },
          },
        ],
      }
    },
    // initEcharts() {
    //   const option = {
    //     xAxis: {
    //       axisLine: {
    //         lineStyle: {
    //           color: "#B4B4B4",
    //         },
    //       },
    //       data: this.xData,
    //     },
    //     legend: {
    //       // å›¾ä¾‹
    //       data: ["合格率", "不合格率"],
    //       bottom: "0%",
    //       textStyle: {
    //         color: "#ffffff",
    //         fontSize: 18,
    //       },
    //     },
    //     yAxis: [{
    //           name: "单位:%",
    //           nameTextStyle: {
    //             color: "#B4B4B4",
    //             nameLocation: "start",
    //             padding:[0,0,12,-20],
    //             fontSize:14
    //           },
    //           axisLine: {
    //             lineStyle: {
    //               color: "#B4B4B4",
    //             },
    //           },
    //         }
    //       ],
    //     series: [
    //       {
    //         name: "合格率",
    //         data: this.qualified,
    //         type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
    //         label: {
    //           show: true,
    //           position: "top",
    //           textStyle: {
    //             fontSize: 14,
    //           },
    //         },
    //       },
    //       {
    //         name: "不合格率",
    //         data: this.unqualified,
    //         type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
    //         label: {
    //           show: true,
    //           position: "top",
    //           textStyle: {
    //             fontSize: 14,
    //           },
    //         },
    //       },
    //     ],
    //   };
    //   this.myChart = echarts.init(document.getElementById("mychart"));
    //   this.myChart.setOption(option);
    //   //随着屏幕大小调节图表
    //   window.addEventListener("resize", () => {
    //     this.myChart.resize();
    //   });
    // },
  },
};
</script>
ÏîÄ¿´úÂë/DP/src/views/indexs/plan.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,247 @@
<template>
  <div class="container_plan echart" id="mychart" :style="myChartStyle">
    <Echart
      :options="option"
      id="bottomLeftChart"
      class="echarts_bottom"
    ></Echart>
  </div>
</template>
  <script>
import { currentGET } from "api/modules";
import { Floorfault } from "@/api/http.js";
import axios from "axios";
export default {
  data() {
    return {
      isInterval: false,
      myChartStyle: { float: "left", width: "100%", height: "250px" },
      option: {
        tooltip: {
          trigger: "axis",
          backgroundColor: "rgba(0,0,0,.6)",
          borderColor: "rgba(147, 235, 248, .8)",
          textStyle: {
            color: "#FFF",
          },
        },
        xAxis: {
          name: "单位:天",
          nameTextStyle: {
            color: ["#B4B4B4"],
            padding: [0, 0, 0, -10],
            fontSize: 14,
          },
          min: 0,
          max: 30,
          axisLine: {
            lineStyle: {
              color: "#B4B4B4",
            },
          },
          data: [
          ],
        },
        legend: {
          // å›¾ä¾‹
          data: ["入库量", "出库量"],
          bottom: "0%",
          textStyle: {
            color: "#ffffff",
            fontSize: 18,
          },
        },
        yAxis: [
          {
            name: "单位:个",
            nameTextStyle: {
              color: "#B4B4B4",
              nameLocation: "start",
              padding: [0, 0, 12, -20],
              fontSize: 14,
            },
            axisLine: {
              lineStyle: {
                color: "#B4B4B4",
              },
            },
          },
        ],
        series: [
          {
            name: "入库量",
            data: [
              50, 80, 50, 72, 75, 78, 72, 70, 80, 76, 78, 74, 50, 80, 50, 72,
              75, 78, 72, 70, 80, 76, 78, 74, 50, 80, 50, 72, 75, 78,
            ],
            type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
            label: {
              position: "top",
              textStyle: {
                fontSize: 14,
              },
            },
          },
          {
            name: "出库量",
            data: [
              0, 11, 9, 17, 14, 13, 14, 9, 17, 14, 13, 14, 0, 11, 9, 17, 14, 13,
              14, 9, 17, 14, 13, 14, 0, 11, 9, 17, 14, 13,
            ],
            type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
            label: {
              position: "top",
              textStyle: {
                fontSize: 14,
              },
            },
          },
        ],
      },
    };
  },
  mounted() {
    this.$nextTick((x) => {
      this.getData();
    });
  },
  beforeDestroy() {
    this.clearData();
  },
  methods: {
    clearData() {
      if (this.timer) {
        clearInterval(this.timer);
        this.timer = null;
      }
    },
    getData() {
      axios.post("http://192.168.12.189:8098/api/Dt_taskinfo/GetPlanRealData",null)
        .then((res) => {
          this.init(res);
        })
        .catch((res) => {
        });
      if (!this.isInterval) {
        this.isInterval = true;
        this.timer = setInterval(() => {
          this.$nextTick((x) => {
            this.getData();
          });
        }, 10000);
      }
    },
    init(val) {
      console.log('123')
      console.log(val);
      this.option={
        tooltip: {
          trigger: "axis",
          backgroundColor: "rgba(0,0,0,.6)",
          borderColor: "rgba(147, 235, 248, .8)",
          textStyle: {
            color: "#FFF",
          },
        },
        xAxis: {
          name: "单位:天",
          nameTextStyle: {
            color: ["#B4B4B4"],
            padding: [0, 0, 0, -10],
            fontSize: 14,
          },
          min: 0,
          max: 6,
          axisLine: {
            lineStyle: {
              color: "#B4B4B4",
            },
          },
          data: [
          val[0].datetime,
          val[1].datetime,
          val[2].datetime,
          val[3].datetime,
          val[4].datetime,
          val[5].datetime,
          val[6].datetime,
        ], //获取该月的天数
        },
        legend: {
          // å›¾ä¾‹
          data: ["入库量", "出库量"],
          bottom: "0%",
          textStyle: {
            color: "#ffffff",
            fontSize: 18,
          },
        },
        yAxis: [
          {
            name: "单位:个",
            nameTextStyle: {
              color: "#B4B4B4",
              nameLocation: "start",
              padding: [0, 0, 12, -20],
              fontSize: 14,
            },
            axisLine: {
              lineStyle: {
                color: "#B4B4B4",
              },
            },
          },
        ],
        series: [
          {
            name: "入库量", //获取计划产量
            data: [
          val[0].qty,
          val[1].qty,
          val[2].qty,
          val[3].qty,
          val[4].qty,
          val[5].qty,
          val[6].qty,
        ],
            type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
            label: {
              position: "top",
              textStyle: {
                fontSize: 14,
              },
            },
          },
          {
            name: "出库量",
            data: [
          val[0].qty2,
          val[1].qty2,
          val[2].qty2,
          val[3].qty2,
          val[4].qty2,
          val[5].qty2,
          val[6].qty2,
        ],
            type: "line", // ç±»åž‹è®¾ç½®ä¸ºæŠ˜çº¿å›¾
            label: {
              position: "top",
              textStyle: {
                fontSize: 14,
              },
            },
          },
        ],
      }
    },
  },
};
</script>
  <style lang='scss' scoped>
.container_plan {
  width: 100%;
  height: 100%;
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/right-bottom.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,194 @@
<!--
 * @Author: daidai
 * @Date: 2022-03-01 15:27:58
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-05-07 11:24:14
 * @FilePath: \web-pc\src\pages\big-screen\view\indexs\right-center.vue
-->
<template>
  <div v-if="pageflag" class="right_center_wrap beautify-scroll-def" :class="{ 'overflow-y-auto': !sbtxSwiperFlag }">
    <component :is="components" :data="list" :class-option="defaultOption">
      <ul class="right_center ">
        <li class="right_center_item" v-for="(item, i) in list" :key="i">
          <span class="orderNum">{{ i + 1 }}</span>
          <div class="inner_right">
            <div class="dibu"></div>
            <div class="flex">
              <div class="info">
                <span class="labels ">设备ID:</span>
                <span class="contents zhuyao"> {{ item.gatewayno }}</span>
              </div>
              <div class="info">
                <span class="labels">型号:</span>
                <span class="contents "> {{ item.terminalno }}</span>
              </div>
              <div class="info">
                <span class="labels">告警值:</span>
                <span class="contents warning"> {{ item.alertvalue | montionFilter }}</span>
              </div>
            </div>
            <div class="flex">
              <div class="info">
                <span class="labels"> åœ°å€ï¼š</span>
                <span class="contents ciyao" style="font-size:12px"> {{ item.provinceName }}/{{ item.cityName }}/{{ item.countyName }}</span>
              </div>
              <div class="info time">
                <span class="labels">时间:</span>
                <span class="contents" style="font-size:12px"> {{ item.createtime }}</span>
              </div>
            </div>
            <div class="flex">
              <div class="info">
                <span class="labels">报警内容:</span>
                <span class="contents ciyao" :class="{ warning: item.alertdetail }"> {{ item.alertdetail || '无'
                }}</span>
              </div>
            </div>
          </div>
        </li>
      </ul>
    </component>
  </div>
  <Reacquire v-else @onclick="getData" style="line-height:200px" />
</template>
<script>
import { currentGET } from 'api/modules'
import vueSeamlessScroll from 'vue-seamless-scroll'  // vue2引入方式
import Kong from '../../components/kong.vue'
export default {
  components: { vueSeamlessScroll, Kong },
  data() {
    return {
      list: [],
      pageflag: true,
      defaultOption: {
        ...this.$store.state.setting.defaultOption,
        limitMoveNum: 3,
        singleHeight: 250,
        step:0,
      }
    };
  },
  computed: {
    sbtxSwiperFlag() {
      let ssyjSwiper = this.$store.state.setting.ssyjSwiper
      if (ssyjSwiper) {
        this.components = vueSeamlessScroll
      } else {
        this.components = Kong
      }
      return ssyjSwiper
    }
  },
  created() {
    this.getData()
  },
  mounted() { },
  methods: {
    getData() {
      this.pageflag = true
      // this.pageflag =false
      currentGET('big5', { limitNum: 50 }).then(res => {
        console.log('实时预警', res);
        if (res.success) {
          this.list = res.data.list
          let timer = setTimeout(() => {
              clearTimeout(timer)
              this.defaultOption.step=this.$store.state.setting.defaultOption.step
          }, this.$store.state.setting.defaultOption.waitTime);
        } else {
          this.pageflag = false
          this.$Message.warning(res.msg)
        }
      })
    },
  },
};
</script>
<style lang='scss' scoped>
.right_center {
  width: 100%;
  height: 100%;
  .right_center_item {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
    padding: 10px;
    font-size: 14px;
    color: #fff;
    .orderNum {
      margin: 0 20px 0 -20px;
    }
    .inner_right {
      position: relative;
      height: 100%;
      width: 400px;
      flex-shrink: 0;
      line-height: 1.5;
      .dibu {
        position: absolute;
        height: 2px;
        width: 104%;
        background-image: url("../../assets/img/zuo_xuxian.png");
        bottom: -12px;
        left: -2%;
        background-size: cover;
      }
    }
    .info {
      margin-right: 10px;
      display: flex;
      align-items: center;
      .labels {
        flex-shrink: 0;
        font-size: 12px;
        color: rgba(255, 255, 255, 0.6);
      }
      .zhuyao {
        color: $primary-color;
        font-size: 15px;
      }
      .ciyao {
        color: rgba(255, 255, 255, 0.8);
      }
      .warning {
        color: #E6A23C;
        font-size: 15px;
      }
    }
  }
}
.right_center_wrap {
  overflow: hidden;
  width: 100%;
  height: 250px;
}
.overflow-y-auto {
  overflow-y: auto;
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/right-center.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,238 @@
<template>
  <div id="centerLeft1">
    <div class="bg-color-black">
      <div class="d-flex pt-2 pl-2">
        <span>
          <ul>
            <li>合格:{{container_data.qualified}}</li>
            <li>待检:{{container_data.waitCheck}}</li>
            <li>检修中:{{container_data.checkIng}}</li>
            <li>空托:{{container_data.empty}}</li>
            <li>实托:{{container_data.full}}</li>
          </ul>
        </span>
      </div>
      <div class="d-flex jc-center" style="margin-left: 23%;">
        <CenterLeft1Chart />
      </div>
      <!-- 4个主要的数据 -->
      <!-- <div class="bottom-data">
        <div
          class="item-box mt-2"
          v-for="(item, index) in numberData"
          :key="index"
        >
          <div class="d-flex" style="margin-left:60px">
            <span class="coin">#</span>
            <dv-digital-flop class="dv-digital-flop" :config="item.number" />
          </div>
          <p class="text" style="text-align: center;">
            {{ item.text }}
            <span class="colorYellow">(个)</span>
          </p>
        </div>
      </div> -->
    </div>
  </div>
</template>
<script>
import CenterLeft1Chart from '@/components/echart/centerLeft1Chart'
import axios from 'axios'
export default {
  data() {
    return {
      container_data:{},
      // numberData: [
      //   {
      //     number: {
      //       number: [15],
      //       toFixed: 1,
      //       textAlign: 'left',
      //       content: '{nt}',
      //       style: {
      //         fontSize: 24
      //       }
      //     },
      //     text: '今日构建总量'
      //   },
      //   {
      //     number: {
      //       number: [1144],
      //       toFixed: 1,
      //       textAlign: 'left',
      //       content: '{nt}',
      //       style: {
      //         fontSize: 24
      //       }
      //     },
      //     text: '总共完成数量'
      //   },
      //   {
      //     number: {
      //       number: [361],
      //       toFixed: 1,
      //       textAlign: 'left',
      //       content: '{nt}',
      //       style: {
      //         fontSize: 24
      //       }
      //     },
      //     text: '正在编译数量'
      //   },
      //   {
      //     number: {
      //       number: [157],
      //       toFixed: 1,
      //       textAlign: 'left',
      //       content: '{nt}',
      //       style: {
      //         fontSize: 24
      //       }
      //     },
      //     text: '未通过数量'
      //   }
      // ]
    }
  },
  components: {
    CenterLeft1Chart
  },
  mounted() {
    this.changeTiming()
  },
  methods: {
    changeTiming() {
      this.changeNumber()
      setInterval(() => {
        this.changeNumber()
      }, 3000)
    },
    changeNumber() {
      // this.numberData.forEach((item, index) => {
      //   item.number.number[0] += ++index
      //   item.number = { ...item.number }
      // })
      axios.post("http://192.168.12.189:8098/api/VV_Container/GetContainerMessage",null)
      .then((res) => {
        this.container_data = res;
        // this.numberData  = [
        //   {
        //     number: {
        //       number: [agvs.emptyNum],
        //       toFixed: 1,
        //       textAlign: 'left',
        //       content: '{nt}',
        //       style: {
        //         fontSize: 24
        //       }
        //     },
        //     text: '总共空货位'
        //   },
        //   {
        //     number: {
        //       number: [agvs.storedNum],
        //       toFixed: 1,
        //       textAlign: 'left',
        //       content: '{nt}',
        //       style: {
        //         fontSize: 24
        //       }
        //     },
        //     text: '总共有货货位'
        //   },
        //   {
        //     number: {
        //       number: [agvs.num],
        //       toFixed: 1,
        //       textAlign: 'left',
        //       content: '{nt}',
        //       style: {
        //         fontSize: 24
        //       }
        //     },
        //     text: '总共缓存架'
        //   },
        //   {
        //     number: {
        //       number: [agvs.ngNum],
        //       toFixed: 1,
        //       textAlign: 'left',
        //       content: '{nt}',
        //       style: {
        //         fontSize: 24
        //       }
        //     },
        //     text: '掉线缓存架数量'
        //   }
        // ]
          // this.numberData = GetLocationData
      }).catch((res) => {
        console.log(res)
      })
    }
  }
}
</script>
<style lang="scss" scoped>
$box-width: 610px;
$box-height: 410px;
#centerLeft1 {
  padding: 16px;
  height: $box-height;
  width: $box-width;
  border-radius: 10px;
  .bg-color-black {
    height: $box-height - 30px;
    border-radius: 10px;
  }
  .text {
    color: #c3cbde;
  }
  .dv-dec-3 {
    position: relative;
    width: 100px;
    height: 20px;
    top: -3px;
  }
  .bottom-data {
    .item-box {
      & > div {
        padding-right: 5px;
      }
      font-size: 14px;
      float: right;
      position: relative;
      width: 50%;
      color: #d3d6dd;
      .dv-digital-flop {
        width: 120px;
        height: 30px;
      }
      // é‡‘币
      .coin {
        position: relative;
        top: 6px;
        font-size: 20px;
        color: #ffc107;
      }
      .colorYellow {
        color: yellowgreen;
      }
      p {
        text-align: center;
      }
    }
  }
}
ul li{
  float: left;
  list-style-type: none;
  margin-left: 8%;
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/right-top.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,299 @@
<!--
 * @Author: daidai
 * @Date: 2022-03-01 14:13:04
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-09-27 15:04:49
 * @FilePath: \web-pc\src\pages\big-screen\view\indexs\right-top.vue
-->
<template>
  <Echart
    id="rightTop"
    :options="option"
    class="right_top_inner"
    v-if="pageflag"
    ref="charts"
  />
  <Reacquire v-else @onclick="getData" style="line-height: 200px">
    é‡æ–°èŽ·å–
  </Reacquire>
</template>
<script>
import { currentGET } from "api/modules";
import {graphic} from "echarts"
export default {
  data() {
    return {
      option: {},
      pageflag: false,
      timer: null,
    };
  },
  created() {
  },
  mounted() {
     this.getData();
  },
  beforeDestroy() {
    this.clearData();
  },
  methods: {
    clearData() {
      if (this.timer) {
        clearInterval(this.timer);
        this.timer = null;
      }
    },
    getData() {
      this.pageflag = true;
      // this.pageflag =false
      currentGET("big4").then((res) => {
        if (!this.timer) {
          console.log("报警次数", res);
        }
        if (res.success) {
          this.countUserNumData = res.data;
          this.$nextTick(() => {
            this.init(res.data.dateList, res.data.numList, res.data.numList2),
              this.switper();
          });
        } else {
          this.pageflag = false;
          this.$Message({
            text: res.msg,
            type: "warning",
          });
        }
      });
    },
    //轮询
    switper() {
      if (this.timer) {
        return;
      }
      let looper = (a) => {
        this.getData();
      };
      this.timer = setInterval(
        looper,
        this.$store.state.setting.echartsAutoTime
      );
      let myChart = this.$refs.charts.chart;
      myChart.on("mouseover", (params) => {
        this.clearData();
      });
      myChart.on("mouseout", (params) => {
        this.timer = setInterval(
          looper,
          this.$store.state.setting.echartsAutoTime
        );
      });
    },
    init(xData, yData, yData2) {
      this.option = {
        xAxis: {
          type: "category",
          data: xData,
          boundaryGap: false, // ä¸ç•™ç™½ï¼Œä»ŽåŽŸç‚¹å¼€å§‹
          splitLine: {
            show: true,
            lineStyle: {
              color: "rgba(31,99,163,.2)",
            },
          },
          axisLine: {
            // show:false,
            lineStyle: {
              color: "rgba(31,99,163,.1)",
            },
          },
          axisLabel: {
            color: "#7EB7FD",
            fontWeight: "500",
          },
        },
        yAxis: {
          type: "value",
          splitLine: {
            show: true,
            lineStyle: {
              color: "rgba(31,99,163,.2)",
            },
          },
          axisLine: {
            lineStyle: {
              color: "rgba(31,99,163,.1)",
            },
          },
          axisLabel: {
            color: "#7EB7FD",
            fontWeight: "500",
          },
        },
        tooltip: {
          trigger: "axis",
          backgroundColor: "rgba(0,0,0,.6)",
          borderColor: "rgba(147, 235, 248, .8)",
          textStyle: {
            color: "#FFF",
          },
        },
        grid: {
          //布局
          show: true,
          left: "10px",
          right: "30px",
          bottom: "10px",
          top: "28px",
          containLabel: true,
          borderColor: "#1F63A3",
        },
        series: [
          {
            data: yData,
            type: "line",
            smooth: true,
            symbol: "none", //去除点
            name: "报警1次数",
            color: "rgba(252,144,16,.7)",
            areaStyle: {
                //右,下,左,上
                color: new graphic.LinearGradient(
                  0,
                  0,
                  0,
                  1,
                  [
                    {
                      offset: 0,
                      color: "rgba(252,144,16,.7)",
                    },
                    {
                      offset: 1,
                      color: "rgba(252,144,16,.0)",
                    },
                  ],
                  false
                ),
            },
            markPoint: {
              data: [
                {
                  name: "最大值",
                  type: "max",
                  valueDim: "y",
                  symbol: "rect",
                  symbolSize: [60, 26],
                  symbolOffset: [0, -20],
                  itemStyle: {
                    color: "rgba(0,0,0,0)",
                  },
                  label: {
                    color: "#FC9010",
                    backgroundColor: "rgba(252,144,16,0.1)",
                    borderRadius: 6,
                    padding: [7, 14],
                    borderWidth: 0.5,
                    borderColor: "rgba(252,144,16,.5)",
                    formatter: "报警1:{c}",
                  },
                },
                {
                  name: "最大值",
                  type: "max",
                  valueDim: "y",
                  symbol: "circle",
                  symbolSize: 6,
                  itemStyle: {
                    color: "#FC9010",
                    shadowColor: "#FC9010",
                    shadowBlur: 8,
                  },
                  label: {
                    formatter: "",
                  },
                },
              ],
            },
          },
          {
            data: yData2,
            type: "line",
            smooth: true,
            symbol: "none", //去除点
            name: "报警2次数",
            color: "rgba(9,202,243,.7)",
            areaStyle: {
                //右,下,左,上
                color: new graphic.LinearGradient(
                  0,
                  0,
                  0,
                  1,
                  [
                    {
                      offset: 0,
                      color: "rgba(9,202,243,.7)",
                    },
                    {
                      offset: 1,
                      color: "rgba(9,202,243,.0)",
                    },
                  ],
                  false
                ),
            },
            markPoint: {
              data: [
                {
                  name: "最大值",
                  type: "max",
                  valueDim: "y",
                  symbol: "rect",
                  symbolSize: [60, 26],
                  symbolOffset: [0, -20],
                  itemStyle: {
                    color: "rgba(0,0,0,0)",
                  },
                  label: {
                    color: "#09CAF3",
                    backgroundColor: "rgba(9,202,243,0.1)",
                    borderRadius: 6,
                    borderColor: "rgba(9,202,243,.5)",
                    padding: [7, 14],
                    formatter: "报警2:{c}",
                    borderWidth: 0.5,
                  },
                },
                {
                  name: "最大值",
                  type: "max",
                  valueDim: "y",
                  symbol: "circle",
                  symbolSize: 6,
                  itemStyle: {
                    color: "#09CAF3",
                    shadowColor: "#09CAF3",
                    shadowBlur: 8,
                  },
                  label: {
                    formatter: "",
                  },
                },
              ],
            },
          },
        ],
      };
    },
  },
};
</script>
<style lang='scss' scoped>
.right_top_inner {
  margin-top: -8px;
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/station-four.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,237 @@
<!--
 * @Author: daidai
 * @Date: 2022-02-28 16:16:42
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-07-20 17:57:11
 * @FilePath: \web-pc\src\pages\big-screen\view\indexs\left-center.vue
-->
<template>
  <ul class="user_Overview flex" v-if="pageflag">
      <li class="user_Overview-item" style="color: #00fdfa">
          <div class="user_Overview_nums allnum ">
              <dv-digital-flop :config="onlineconfig" style="width:100%;height:100%;" />
          </div>
          <p>10号检修台</p>
          <br>
          <p>{{stationstate[9].station_state}}</p>
      </li>
      <li class="user_Overview-item" style="color: #07f7a8">
          <div class="user_Overview_nums online">
              <dv-digital-flop :config="config" style="width:100%;height:100%;" />
          </div>
          <p>11号检修台</p>
          <br>
          <p>{{stationstate[10].station_state}}</p>
      </li>
      <li class="user_Overview-item" style="color: #e3b337">
          <div class="user_Overview_nums offline">
              <dv-digital-flop :config="offlineconfig" style="width:100%;height:100%;" />
          </div>
          <p>12号检修台</p>
          <br>
          <p>{{stationstate[11].station_state}}</p>
      </li>
  </ul>
  <Reacquire v-else @onclick="getData" line-height="200px">
      é‡æ–°èŽ·å–
  </Reacquire>
</template>
<script>
import { currentGET } from 'api/modules'
import {Floorfault} from "@/api/http.js"
let style = {
  fontSize: 24
}
export default {
  data() {
      return {
          options: {},
          stationstate:[],
          userOverview: {
              alarmNum: 2,
              offlineNum: 3,
              onlineNum: 5,
              totalNum: 10,
          },
          pageflag: true,
          timer: null,
          config: {
              number: [100],
              content: '{nt}',
              style: {
                  ...style,
                  // stroke: "#00fdfa",
                  fill: "#00fdfa",
              },
          },
          onlineconfig: {
              number: [0],
              content: '{nt}',
              style: {
                  ...style,
                  // stroke: "#07f7a8",
                  fill: "#07f7a8",
              },
          },
          offlineconfig: {
              number: [0],
              content: '{nt}',
              style: {
                  ...style,
                  // stroke: "#e3b337",
                  fill: "#e3b337",
              },
          },
      };
  },
  filters: {
      numsFilter(msg) {
          return msg || 0;
      },
  },
  created() {
      this.getData()
  },
  mounted() {
  },
  beforeDestroy() {
      this.clearData()
  },
  methods: {
      clearData() {
          if (this.timer) {
              clearInterval(this.timer)
              this.timer = null
          }
      },
      async getData() {
          this.pageflag = true;
          // currentGET("big2").then((res) => {
          //     if (!this.timer) {
          //         console.log("设备总览2", res);
          //     }
          //     if (res.success) {
          //         this.userOverview = res.data;
          //            this.onlineconfig = {
          //             ...this.onlineconfig,
          //             number: [1]
          //         }
          //         this.config = {
          //             ...this.config,
          //             number: [7]
          //         }
          //         this.offlineconfig = {
          //             ...this.offlineconfig,
          //             number: [4]
          //         }
          //         this.laramnumconfig = {
          //             ...this.laramnumconfig,
          //             number: [10]
          //         }
          //         this.switper();
          //     } else {
          //         this.pageflag = false;
          //         this.$Message.warning(res.msg);
          //     }
          // });
                  let rep = await Floorfault((a)=>{
                  });
                  this.stationstate=rep;
                     this.onlineconfig = {
                      ...this.onlineconfig,
                      number: [rep[9].station_qty]
                  }
                  this.config = {
                      ...this.config,
                      number: [rep[10].station_qty]
                  }
                  this.offlineconfig = {
                      ...this.offlineconfig,
                      number: [rep[11].station_qty]
                  }
                  this.switper();
      },
      //轮询
      switper() {
          if (this.timer) {
              return
          }
          let looper = (a) => {
              this.getData()
          };
          this.timer = setInterval(looper, this.$store.state.setting.echartsAutoTime);
      },
  },
};
</script>
<style lang='scss' scoped>
.user_Overview {
  li {
      flex: 1;
      p {
          text-align: center;
          height: 16px;
          font-size: 16px;
      }
      .user_Overview_nums {
          width: 100px;
          height: 100px;
          text-align: center;
          line-height: 100px;
          font-size: 22px;
          margin: 50px auto 30px;
          background-size: cover;
          background-position: center center;
          position: relative;
          &::before {
              content: '';
              position: absolute;
              width: 100%;
              height: 100%;
              top: 0;
              left: 0;
          }
          &.bgdonghua::before {
              animation: rotating 14s linear infinite;
          }
      }
      .allnum {
          // background-image: url("../../assets/img/left_top_lan.png");
          &::before {
              background-image: url("../../assets/img/left_top_lan.png");
          }
      }
      .online {
          &::before {
              background-image: url("../../assets/img/left_top_lv.png");
          }
      }
      .offline {
          &::before {
              background-image: url("../../assets/img/left_top_huang.png");
          }
      }
      .laramnum {
          &::before {
              background-image: url("../../assets/img/left_top_hong.png");
          }
      }
  }
}
</style>
ÏîÄ¿´úÂë/DP/src/views/indexs/station-one.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<template>
    <div class="table-container">
      <table class="data-table">
        <thead>
          <tr>
            <th v-for="(header, index) in headers" :key="index">
              {{ header }}
            </th>
          </tr>
        </thead>
        <tbody>
          <tr v-for="(row, rowIndex) in tableData" :key="rowIndex">
            <td v-for="(cell, cellIndex) in row" :key="cellIndex">
              {{ cell }}
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </template>
  <script>
import axios from 'axios';
export default {
  data() {
    return {
      headers: ['货位信息', '数量'],
      tableData: []
    };
  },
  created() {
    this.fetchData();
  },
  methods: {
    fetchData() {
      axios.post("http://127.0.0.1:5000/api/LocationInfo/LocationStatus", null)
        .then((response) => {
          this.tableData = [];
          response.forEach(item => {
            this.tableData.push([
              item.status,
              item.count
            ]);
          });
        })
        .catch((error) => {
          console.error("请求失败:", error);
          this.tableData = [
            ['空货位', 0],
            ['有货', 0],
            ['占用', 0]
          ];
        });
    }
  }
};
</script>
  <style scoped>
  .table-container {
    width: 100%;
    overflow-x: auto;
  }
  .data-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    font-family: Arial, sans-serif;
  }
  .data-table th {
    font-weight: bold;
    padding: 12px 15px;
    text-align: left;
    border-bottom: 2px solid #c9aeae;
  }
  .data-table td {
    padding: 10px 15px;
    border-bottom: 1px solid #ddd;
  }
  </style>
ÏîÄ¿´úÂë/DP/src/views/indexs/station-three.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,148 @@
<template>
    <ul class="user_Overview flex">
        <li class="user_Overview-item" style="color: #00fdfa">
            <div class="user_Overview_nums allnum ">
                <dv-digital-flop :config="onlineconfig" style="width:100%;height:100%;" />
            </div>
            <br>
            <p>{{stationstate[0].station_state}}</p>
            <p v-if="stationstate[0].station_state == '检修中'">{{stationstate[0].station_checkName}}</p>
        </li>
        <li class="user_Overview-item" style="color: #07f7a8">
            <div class="user_Overview_nums online">
                <dv-digital-flop :config="config" style="width:100%;height:100%;" />
            </div>
            <br>
            <p>{{stationstate[1].station_state}}</p>
            <p v-if="stationstate[1].station_state == '检修中'">{{stationstate[1].station_checkName}}</p>
        </li>
        <!-- <li class="user_Overview-item" style="color: #e3b337">
            <div class="user_Overview_nums offline">
                <dv-digital-flop :config="offlineconfig" style="width:100%;height:100%;" />
            </div>
            <p>7号检修台</p>
            <br>
            <p>{{stationstate[2].station_state}}</p>
            <p v-if="stationstate[2].station_state == '检修中'">{{stationstate[2].station_checkName}}</p>
        </li>
        <li class="user_Overview-item" style="color: #e3b337">
            <div class="user_Overview_nums offline">
                <dv-digital-flop :config="offlineconfig" style="width:100%;height:100%;" />
            </div>
            <p>8号检修台</p>
            <br>
            <p>{{stationstate[3].station_state}}</p>
            <p v-if="stationstate[3].station_state == '检修中'">{{stationstate[3].station_checkName}}</p>
        </li> -->
    </ul>
  </template>
  <script>
  let style = {
    fontSize: 24
  }
  export default {
    data() {
        return {
            stationstate: [
                { station_state: '入库量', station_checkName: '' },
                { station_state: '出库量', station_checkName: '' },
                { station_state: '待机中', station_checkName: '' },
                { station_state: '故障中', station_checkName: '' }
            ],
            config: {
                number: [7],
                content: '{nt}',
                style: {
                    ...style,
                    fill: "#00fdfa",
                },
            },
            onlineconfig: {
                number: [1],
                content: '{nt}',
                style: {
                    ...style,
                    fill: "#07f7a8",
                },
            },
            offlineconfig: {
                number: [4],
                content: '{nt}',
                style: {
                    ...style,
                    fill: "#e3b337",
                },
            },
        };
    },
    filters: {
        numsFilter(msg) {
            return msg || 0;
        },
    },
  };
  </script>
  <style lang='scss' scoped>
  .user_Overview {
    li {
        flex: 1;
        p {
            text-align: center;
            height: 16px;
            font-size: 16px;
        }
        .user_Overview_nums {
            width: 100px;
            height: 100px;
            text-align: center;
            line-height: 100px;
            font-size: 22px;
            margin: 50px auto 30px;
            background-size: cover;
            background-position: center center;
            position: relative;
            &::before {
                content: '';
                position: absolute;
                width: 100%;
                height: 100%;
                top: 0;
                left: 0;
            }
            &.bgdonghua::before {
                animation: rotating 14s linear infinite;
            }
        }
        .allnum {
            &::before {
                background-image: url("../../assets/img/left_top_lan.png");
            }
        }
        .online {
            &::before {
                background-image: url("../../assets/img/left_top_lv.png");
            }
        }
        .offline {
            &::before {
                background-image: url("../../assets/img/left_top_huang.png");
            }
        }
        .laramnum {
            &::before {
                background-image: url("../../assets/img/left_top_hong.png");
            }
        }
    }
  }
  </style>
ÏîÄ¿´úÂë/DP/src/views/indexs/station-two.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
<template>
    <div class="table-container">
      <table class="data-table">
        <thead>
          <tr>
            <th v-for="(header, index) in headers" :key="index">
              {{ header }}
            </th>
          </tr>
        </thead>
        <tbody>
          <tr v-for="(row, rowIndex) in tableData" :key="rowIndex">
            <td v-for="(cell, cellIndex) in row" :key="cellIndex">
              {{ cell }}
            </td>
          </tr>
        </tbody>
      </table>
      <div v-if="loading" class="loading">加载中...</div>
      <div v-if="error" class="error">{{ error }}</div>
    </div>
  </template>
  <script>
  import axios from 'axios';
  export default {
    data() {
      return {
        headers: ['车型','轮型',  '数量'],
        tableData: [], // å­˜å‚¨API返回的数据
        loading: false,
        error: null
      }
    },
    created() {
      this.fetchData();
    },
    methods: {
        fetchData() {
      axios.post("http://127.0.0.1:5000/api/Dt_WheelsStock/InventoryStatistics", null)
        .then((response) => {
          this.tableData = [];
          response.forEach(item => {
            this.tableData.push([
            item.wheels_CarType,
            item.wheels_ldxh,
            item.count
            ]);
          });
        })
        .catch((error) => {
          console.error("请求失败:", error);
          this.tableData = [
            ['暂无数据', '暂无数据', '暂无数据'],
          ];
        });
    }
    }
  }
  </script>
  <style scoped>
  .table-container {
    width: 100%;
    overflow-x: auto;
    position: relative;
    min-height: 200px;
  }
  .data-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    font-family: Arial, sans-serif;
  }
  .data-table th {
    font-weight: bold;
    padding: 12px 15px;
    text-align: left;
    border-bottom: 2px solid #c9aeae;
  }
  .data-table td {
    padding: 10px 15px;
    border-bottom: 1px solid #ddd;
  }
  .loading, .error {
    padding: 20px;
    text-align: center;
    color: #666;
  }
  .error {
    color: #f56c6c;
  }
  </style>
ÏîÄ¿´úÂë/DP/src/views/setting.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,106 @@
<template>
    <transition name="yh-setting-fade">
        <div class="setting" :class="{ settingShow: settingShow }" v-show="settingShow">
            <div class="setting_dislog" @click="settingShow = false">
            </div>
            <div class="setting_inner">
                <div class="setting_header">
                    è®¾ç½®
                </div>
                <div class="setting_body">
                    <!-- <div class="left_shu"> å®žæ—¶ç›‘测</div> -->
                    <div class="left_shu"> å…¨å±€è®¾ç½®</div>
                      <div class="setting_item">
                        <span class="setting_label">
                            æ˜¯å¦è¿›è¡Œè‡ªåŠ¨é€‚é…<span class="setting_label_tip">(默认分辨率1920*1080)</span>:
                        </span>
                        <div class="setting_content">
                            <el-radio-group v-model="isScaleradio" @change="(val) => radiochange(val, 'isScale')">
                                <el-radio :label="true">是</el-radio>
                                <el-radio :label="false">否</el-radio>
                            </el-radio-group>
                        </div>
                    </div>
                    <!-- <div class="left_shu"> å®žæ—¶ç›‘测</div>
                    <div class="setting_item">
                        <span class="setting_label">
                            è®¾å¤‡æé†’自动轮询: <span class="setting_label_tip"></span>
                        </span>
                        <div class="setting_content">
                            <el-radio-group v-model="sbtxradio" @change="(val) => radiochange(val, 'sbtxSwiper')">
                                <el-radio :label="true">是</el-radio>
                                <el-radio :label="false">否</el-radio>
                            </el-radio-group>
                        </div>
                    </div>
                    <div class="setting_item">
                        <span class="setting_label">
                            å®žæ—¶é¢„警轮播:
                        </span>
                        <div class="setting_content">
                            <el-radio-group v-model="ssyjradio" @change="(val) => radiochange(val, 'ssyjSwiper')">
                                <el-radio :label="true">是</el-radio>
                                <el-radio :label="false">否</el-radio>
                            </el-radio-group>
                        </div>
                    </div> -->
                    <div class="flex justify-center">
                        <!-- <el-button type="primary" round size="mini">确定</el-button> -->
                    </div>
                </div>
            </div>
        </div>
    </transition>
</template>
<script>
export default {
    components: {},
    data() {
        return {
            settingShow: false,
            sbtxradio:true,
            ssyjradio: true,
            isScaleradio:true,
            echartsAutoTime:3000
        };
    },
    computed: {},
    methods: {
        init() {
            this.settingShow = true
        },
        radiochange(val, type) {
            this.$store.commit('setting/updateSwiper', { val, type })
            if(type==='isScale'){
                // this.$router.go(0)
                // location.reload()
                // window.location.href=window.location.href+"?t="+Date.now()
            }
        },
    },
    created() {
        this.$store.commit('setting/initSwipers')
        this.sbtxradio = this.$store.state.setting.sbtxSwiper,
        this.ssyjradio = this.$store.state.setting.ssyjSwiper,
        this.isScaleradio = this.$store.state.setting.isScale;
    },
    mounted() {
        document.body.appendChild(this.$el);
    },
    beforeDestroy() {
    },
    destroyed() {
        if (this.$el && this.$el.parentNode) {
            this.$el.parentNode.removeChild(this.$el);
        }
    }
}
</script>
<style lang='scss' scoped>
</style>
ÏîÄ¿´úÂë/DP/src/views/tjfx/tjfx.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
<!--
 * @Author: daidai
 * @Date: 2022-03-04 09:52:25
 * @LastEditors: daidai
 * @LastEditTime: 2022-03-04 11:03:40
 * @FilePath: \web-pc\src\pages\big-screen\view\tjfx\tjfx.vue
-->
<template>
    <div>
    </div>
</template>
<script>
   export default {
      data() {
          return {
          }
      },
     created(){
     },
     mounted() {
     },
      methods: {
      },
 }
</script>
<style lang='scss' scoped>
</style>
ÏîÄ¿´úÂë/PDA/App.vue
ÏîÄ¿´úÂë/PDA/LDY_PDA/static/image/return.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/apk/__UNI__6F62323_cm.apk
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/apk/__UNI__C94AE9A_cm.apk
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/apk/apkurl
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/certdata
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/cloudcertificate/certini
ÎļþÒÑɾ³ý
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/cloudcertificate/package.keystore
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/__uniapperror.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/__uniappsuccess.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsA.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsB.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsC.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsD.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ReceivingGoodsE.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/Test.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/appoint.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/binding.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/boxing1.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/boxing2.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callA.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callB.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callC.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callD.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/callE.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/cancel.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/changebox.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/changebox1.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/check1.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/check2.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/exp.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/forklift.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/forkliftB.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/in1.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/inorder.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/lend.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/login.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/logo.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/ortherbox.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out1.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out2.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out3.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out4.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/out5.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/qualityIn.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/qualityOut.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/return.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/returnbox.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/zj.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/image/zjjg.png
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/cache/wgt/__UNI__C94AE9A/static/uni.ttf
Binary files differ
ÏîÄ¿´úÂë/PDA/LDY_PDA/unpackage/dist/build/app-plus/static/image/return.png
Binary files differ
ÏîÄ¿´úÂë/PDA/common/demo.scss
ÏîÄ¿´úÂë/PDA/components/tki-qrcode/tki-qrcode.vue
ÏîÄ¿´úÂë/PDA/components/uni-badge/uni-badge.vue
ÏîÄ¿´úÂë/PDA/components/uni-calendar/uni-calendar-item.vue
ÏîÄ¿´úÂë/PDA/components/uni-calendar/uni-calendar.vue
ÏîÄ¿´úÂë/PDA/components/uni-card/uni-card.vue
ÏîÄ¿´úÂë/PDA/components/uni-collapse-item/uni-collapse-item.vue
ÏîÄ¿´úÂë/PDA/components/uni-collapse/uni-collapse.vue
ÏîÄ¿´úÂë/PDA/components/uni-combox/uni-combox.vue
ÏîÄ¿´úÂë/PDA/components/uni-countdown/uni-countdown.vue
ÏîÄ¿´úÂë/PDA/components/uni-drawer/uni-drawer.vue
ÏîÄ¿´úÂë/PDA/components/uni-fab/uni-fab.vue
ÏîÄ¿´úÂë/PDA/components/uni-fav/uni-fav.vue
ÏîÄ¿´úÂë/PDA/components/uni-goods-nav/uni-goods-nav.vue
ÏîÄ¿´úÂë/PDA/components/uni-grid-item/uni-grid-item copy.vue
ÏîÄ¿´úÂë/PDA/components/uni-grid-item/uni-grid-item.vue
ÏîÄ¿´úÂë/PDA/components/uni-grid/uni-grid.vue
ÏîÄ¿´úÂë/PDA/components/uni-icons/uni-icons.vue
ÏîÄ¿´úÂë/PDA/components/uni-indexed-list/uni-indexed-list-item.vue
ÏîÄ¿´úÂë/PDA/components/uni-indexed-list/uni-indexed-list.vue
ÏîÄ¿´úÂë/PDA/components/uni-link/uni-link.vue
ÏîÄ¿´úÂë/PDA/components/uni-list-item/uni-list-item.vue
ÏîÄ¿´úÂë/PDA/components/uni-list/uni-list.vue
ÏîÄ¿´úÂë/PDA/components/uni-list/uni-refresh.vue
ÏîÄ¿´úÂë/PDA/components/uni-list/uni-refresh.wxs
ÏîÄ¿´úÂë/PDA/components/uni-load-more/uni-load-more.vue
ÏîÄ¿´úÂë/PDA/components/uni-nav-bar/uni-nav-bar.vue
ÏîÄ¿´úÂë/PDA/components/uni-notice-bar/uni-notice-bar.vue
ÏîÄ¿´úÂë/PDA/components/uni-number-box/uni-number-box.vue
ÏîÄ¿´úÂë/PDA/components/uni-pagination/uni-pagination.vue
ÏîÄ¿´úÂë/PDA/components/uni-popup/uni-popup-dialog.vue
ÏîÄ¿´úÂë/PDA/components/uni-popup/uni-popup-message.vue
ÏîÄ¿´úÂë/PDA/components/uni-popup/uni-popup-share.vue
ÏîÄ¿´úÂë/PDA/components/uni-popup/uni-popup.vue
ÏîÄ¿´úÂë/PDA/components/uni-rate/uni-rate.vue
ÏîÄ¿´úÂë/PDA/components/uni-search-bar/uni-search-bar.vue
ÏîÄ¿´úÂë/PDA/components/uni-section/uni-section.vue
ÏîÄ¿´úÂë/PDA/components/uni-segmented-control/uni-segmented-control.vue
ÏîÄ¿´úÂë/PDA/components/uni-status-bar/uni-status-bar.vue
ÏîÄ¿´úÂë/PDA/components/uni-steps/uni-steps.vue
ÏîÄ¿´úÂë/PDA/components/uni-swipe-action-item/index.wxs
ÏîÄ¿´úÂë/PDA/components/uni-swipe-action-item/uni-swipe-action-item.vue
ÏîÄ¿´úÂë/PDA/components/uni-swipe-action/uni-swipe-action.vue
ÏîÄ¿´úÂë/PDA/components/uni-swiper-dot/uni-swiper-dot.vue
ÏîÄ¿´úÂë/PDA/components/uni-tag/uni-tag.vue
ÏîÄ¿´úÂë/PDA/components/uni-title/uni-title.vue
ÏîÄ¿´úÂë/PDA/components/uni-transition/uni-transition.vue
ÏîÄ¿´úÂë/PDA/components/watch-login/watch-button.vue
ÏîÄ¿´úÂë/PDA/components/watch-login/watch-input.vue
ÏîÄ¿´úÂë/PDA/components/wyb-popup/wyb-popup.vue
ÏîÄ¿´úÂë/PDA/components/xfl-select/xfl-select.vue
ÏîÄ¿´úÂë/PDA/pages/Check/Check.vue
ÏîÄ¿´úÂë/PDA/pages/Inbound/ClboundInfo.vue
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/LDY_PDA/pages/Inbound/InboundInfo.vue" copy to "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Inbound/ClboundInfo.vue"
Îļþ´Ó ÏîÄ¿´úÂë/PDA/LDY_PDA/pages/Inbound/InboundInfo.vue ¸´ÖÆ
@@ -16,13 +16,13 @@
        <view style="padding: 20rpx 0rpx">
            <u-table>
                <u-tr>
                <!-- <u-tr>
                    <u-td width="30%">操作方式</u-td>
                    <u-td>
                        <xfl-select :list="OperationList" :initValue="'请选择'" :clearable="false" @change="OperationChange">
                        </xfl-select>
                    </u-td>
                </u-tr>
                </u-tr> -->
                <u-tr>
                    <u-td width="30%">车轴条码</u-td>
                    <u-td>
@@ -60,20 +60,20 @@
                CurrentUser: '', //当前用户
                cztm: '',
                machine: '',
                operateType:'',
                OperationList: [{
                    label: '1',
                    value: '绑定'
                }, {
                    label: '2',
                    value: '解绑'
                }, ],
                //operateType:'',
                // OperationList: [{
                //     label: '1',
                //     value: '绑定'
                // }, {
                //     label: '2',
                //     value: '解绑'
                // }, ],
                
                MachineArray: [{
                    label: '1000',
                    label: '2033',
                    value: '1号压装位'
                }, {
                    label: '2000',
                    label: '2043',
                    value: '2号压装位'
                }, ],
            }
@@ -92,9 +92,9 @@
            MachineChange(value) {
                this.machine = value.orignItem.label;
            },
            OperationChange(value) {
                this.operateType = value.orignItem.label;
            },
            // OperationChange(value) {
            //     this.operateType = value.orignItem.label;
            // },
            SaveInfomation() {
                if (_this.cztm.length == 0) {
                    uni.showToast({
@@ -110,12 +110,12 @@
                        if (res.confirm) {
                            let data = {
                                MainData: {
                                    operateType:_this.operateType,
                                    cztm: _this.cztm,
                                    machine: _this.machine,
                                    //operateType:_this.operateType,
                                    CZTM: _this.cztm,
                                    TargetAddress: _this.machine,
                                },
                            };
                            _this.$AjaxRequest.Params('post', 'Dt_CacheInfo/AddCacheInfoByAPP',
                            _this.$AjaxRequest.Params('post', 'Task/UpWheelsFlow',
                                data, _user.token);
                            _this.$AjaxRequest.Request().then(function(result) {
                                if (result.data.status) {
ÏîÄ¿´úÂë/PDA/pages/Inbound/InboundBoxing.vue
ÏîÄ¿´úÂë/PDA/pages/Inbound/InboundEmpty.vue
ÏîÄ¿´úÂë/PDA/pages/Inbound/InboundInfo.vue
ÎļþÃû´Ó ÏîÄ¿´úÂë/PDA/LDY_PDA/pages/Inbound/InboundInfo.vue ÐÞ¸Ä
@@ -16,13 +16,13 @@
        <view style="padding: 20rpx 0rpx">
            <u-table>
                <u-tr>
                <!-- <u-tr>
                    <u-td width="30%">操作方式</u-td>
                    <u-td>
                        <xfl-select :list="OperationList" :initValue="'请选择'" :clearable="false" @change="OperationChange">
                        </xfl-select>
                    </u-td>
                </u-tr>
                </u-tr> -->
                <u-tr>
                    <u-td width="30%">车轴条码</u-td>
                    <u-td>
@@ -60,20 +60,20 @@
                CurrentUser: '', //当前用户
                cztm: '',
                machine: '',
                operateType:'',
                OperationList: [{
                    label: '1',
                    value: '绑定'
                }, {
                    label: '2',
                    value: '解绑'
                }, ],
                //operateType:'',
                // OperationList: [{
                //     label: '1',
                //     value: '绑定'
                // }, {
                //     label: '2',
                //     value: '解绑'
                // }, ],
                
                MachineArray: [{
                    label: '1000',
                    label: '2033',
                    value: '1号压装位'
                }, {
                    label: '2000',
                    label: '2043',
                    value: '2号压装位'
                }, ],
            }
@@ -92,9 +92,9 @@
            MachineChange(value) {
                this.machine = value.orignItem.label;
            },
            OperationChange(value) {
                this.operateType = value.orignItem.label;
            },
            // OperationChange(value) {
            //     this.operateType = value.orignItem.label;
            // },
            SaveInfomation() {
                if (_this.cztm.length == 0) {
                    uni.showToast({
@@ -110,12 +110,12 @@
                        if (res.confirm) {
                            let data = {
                                MainData: {
                                    operateType:_this.operateType,
                                    cztm: _this.cztm,
                                    machine: _this.machine,
                                    //operateType:_this.operateType,
                                    CZTM: _this.cztm,
                                    TargetAddress: _this.machine,
                                },
                            };
                            _this.$AjaxRequest.Params('post', 'Dt_CacheInfo/AddCacheInfoByAPP',
                            _this.$AjaxRequest.Params('post', 'ToAgv/UntieStation',
                                data, _user.token);
                            _this.$AjaxRequest.Request().then(function(result) {
                                if (result.data.status) {
ÏîÄ¿´úÂë/PDA/pages/Inbound/InboundOrderBoxing.vue
ÏîÄ¿´úÂë/PDA/pages/Inbound/InoutboundBoxing.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,479 @@
<template>
    <view>
        <view>
            <u-table font-size="25">
                <u-tr>
                    <u-td>
                        <xfl-select :list="UserArray" :initValue="this.$UserTool.UserInfo.userName" :clearable="false"
                            :disabled="true">
                        </xfl-select>
                    </u-td>
                    <u-td width="25%">现在时间:</u-td>
                    <u-td width="25%">{{date}}</u-td>
                </u-tr>
            </u-table>
        </view>
        <view style="padding: 20rpx 0rpx">
            <u-table>
                <u-tr>
                    <u-td width="30%">车轮条码</u-td>
                    <u-td>
                        <u-input v-model="value_cltm" :border="true" :focus="qrcodeFocus" @input="barcodeChange"
                            placeholder="车轮条码" />
                    </u-td>
                </u-tr>
            <!--     <u-tr>
                    <u-td width="30%">序列号</u-td>
                    <u-td>
                        <u-input v-model="xlh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr> -->
                <u-tr>
                    <u-td width="30%">车轮号</u-td>
                    <u-td>
                        <u-input v-model="clh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">轮对条码</u-td>
                    <u-td>
                        <u-input v-model="ldtm" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">动拖属性(动/拖)</u-td>
                    <u-td>
                        <u-input v-model="mttype" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">轮对号</u-td>
                    <u-td>
                        <u-input v-model="ldh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车型</u-td>
                    <u-td>
                        <u-input v-model="chexing" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">轮型</u-td>
                    <u-td>
                        <u-input v-model="ldxh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">新/旧</u-td>
                    <u-td>
                        <u-input v-model="neworold" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">毂孔等级</u-td>
                    <u-td>
                        <u-input v-model="gkdj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">毂孔a界面均值</u-td>
                    <u-td>
                        <u-input v-model="gkzja" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">毂孔b界面均值</u-td>
                    <u-td>
                        <u-input v-model="gkzjb" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">毂孔c界面均值</u-td>
                    <u-td>
                        <u-input v-model="gkzjc" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">毂孔均值</u-td>
                    <u-td>
                        <u-input v-model="gkcc" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">轮径值</u-td>
                    <u-td>
                        <u-input v-model="ljz" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">预估轮径值</u-td>
                    <u-td>
                        <u-input v-model="yglj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">属性</u-td>
                    <u-td>
                        <u-input v-model="clsx" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">入库日期</u-td>
                    <u-td>
                        <u-input v-model="rksj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">配属局</u-td>
                    <u-td>
                        <u-input v-model="psj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车组号</u-td>
                    <u-td>
                        <u-input v-model="lcch" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">轮缘</u-td>
                    <u-td>
                        <u-input v-model="lyh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">压装机号</u-td>
                    <u-td>
                        <xfl-select :list="MachineArray" :initValue="'请选择'" :clearable="false" @change="MachineChange">
                        </xfl-select>
                    </u-td>
                </u-tr>
            </u-table>
        </view>
        <view style="padding: 0rpx 0rpx;">
            <u-table>
                <u-tr>
                    <u-td>
                        <u-button style="width:100px" type="primary" @click="SaveInfomation">车轮直走确认</u-button>
                    </u-td>
                </u-tr>
            </u-table>
        </view>
    </view>
</template>
<script>
    var _this;
    var _user;
    export default {
        data() {
            return {
                date: '',
                CurrentUser: '', //当前用户
                //车轮码
                value_cltm: '',
                //序列号
                //xlh: '',
                //车轮号
                clh: '',
                //车类别
                mttype: '',
                //轮对条码
                ldtm: '',
                //轮类型
                ldh: '',
                //车型
                chexing: '',
                //轮型
                ldxh: '',
                //属性
                clsx: '',
                //车组号
                lcch: '',
                //轮缘
                lyh:'',
                //等级
                gkdj: '',
                //毂孔直径均值
                ljz: '',
                //预估轮径值
                yglj: '',
                //毂孔a界面均值
                gkzja: '',
                //毂孔b界面均值
                gkzjb: '',
                //毂孔c界面均值
                gkzjc: '',
                //入库日期
                rksj: '',
                //配属局
                psj: '',
                //新/旧
                neworold: '',
                //毂孔均值
                gkcc:'',
                machine: '',
                qrcodeFocus: true,
                MachineArray: [{
                    label: '2032',
                    value: '1号压装位'
                }, {
                    label: '2042',
                    value: '2号压装位'
                }, ],
            }
        },
        methods: {
            UserChange(value) {
            },
            MachineChange(value) {
                this.machine = value.orignItem.label;
            },
            setTimer() {
                if (this.timer == null) {
                    this.timer = setInterval(() => {
                        this.date = this.$DateTool.getDate();
                    }, 1000)
                }
            },
            barcodeChange() {
                if (_this.value_cltm == '') {
                    _this.initInfo();
                    return;
                }
                let data = {
                    MainData: {
                        cltm: _this.value_cltm
                    },
                };
                _this.$AjaxRequest.Params('post', 'ToZY/ZY_GetCLInfo', data, _user.token);
                _this.$AjaxRequest.Request().then(function(result) {
                    console.log(result);
                    if (result.data.status) {
                        let obj = JSON.parse(JSON.stringify(result.data.data));
                        //序列号
                        //_this.xlh = obj.xlh;
                        //车轮号
                        _this.clh = obj.clh;
                        //轮对条码
                        _this.ldtm = obj.ldtm;
                        //车类别
                        _this.mttype = obj.mttype;
                        //轮类型
                        _this.ldh = obj.ldh;
                        //车型
                        _this.chexing = obj.chexing;
                        //轮型
                        _this.ldxh = obj.ldxh;
                        //新/旧
                        _this.neworold = obj.newold;
                        //预估轮径值
                        _this.yglj = obj.yglj;
                        //毂孔a界面均值
                        _this.gkzja = obj.gkzja;
                        //毂孔b界面均值
                        _this.gkzjb = obj.gkzjb;
                        //毂孔c界面均值
                        _this.gkzjc = obj.gkzjc;
                        //轮径值
                        _this.ljz = obj.ljz;
                        //属性
                        _this.clsx = obj.clsx;
                        //入库日期
                        _this.rksj = obj.rksj;
                        //配属局
                        _this.psj = obj.psj;
                        //车组号
                        _this.lcch = obj.lcch;
                        //轮缘
                        _this.lyh=obj.lyh;
                        //等级
                        _this.gkdj = obj.gkdj;
                        //毂孔均值
                        _this.gkcc=obj.gkcc;
                    } else {
                        uni.showToast({
                            icon: 'none',
                            title: "请求错误:" + result.data.message,
                            duration: 2000
                        });
                        _this.initInfo();
                    }
                }).catch(function(err) {
                    uni.showToast({
                        icon: 'none',
                        title: "请求后台异常,错误信息." + err.errMsg,
                        duration: 2000
                    });
                    _this.initInfo();
                });
            },
            initInfo() {
                //序列号
                //_this.xlh = '';
                //车轮号
                _this.clh = '';
                _this.ldtm = '';
                //车类别
                _this.mttype = '';
                //轮类型
                _this.ldh = '';
                //车型
                _this.chexing = '';
                //轮型
                _this.ldxh = '';
                //新/旧
                _this.neworold = '';
                //预估轮径值
                _this.yglj = '';
                //毂孔a界面均值
                _this.gkzja = '';
                //毂孔b界面均值
                _this.gkzjb = '';
                //毂孔c界面均值
                _this.gkzjc = '';
                //轮径值
                _this.ljz = '';
                //属性
                _this.clsx = '';
                //入库日期
                _this.rksj = '';
                //配属局
                _this.psj = '';
                //车组号
                _this.lcch = '';
                _this.lyh='';
                //等级
                _this.gkdj = '';
                _this.gkcc='';
            },
            SaveInfomation() {
                //_this.LotNumber == '' || _this.value_rfid.length == 0 ||
                if (_this.value_cltm.length == 0 ) {
                    uni.showToast({
                        title: "车轮信息不能为空",
                        duration: 2000,
                        icon: 'none',
                    });
                    return;
                }
                uni.showModal({
                    title: '提示',
                    content: '是否确认组盘?',
                    success: function(res) {
                        if (res.confirm) {
                            let data = {
                                MainData: {
                                    code: _this.value_cltm,
                                    //xlh: _this.xlh,
                                    clh: _this.clh,
                                    ldtm: _this.ldtm,
                                    mttype: _this.mttype,
                                    ldh: _this.ldh,
                                    chexing: _this.chexing,
                                    ldxh: _this.ldxh,
                                    neworold: _this.neworold,
                                    yglj: _this.yglj,
                                    gkzja: _this.gkzja,
                                    gkzjb: _this.gkzjb,
                                    gkzjc: _this.gkzjc,
                                    clsx: _this.clsx,
                                    rksj: _this.rksj,
                                    psj: _this.psj,
                                    lcch: _this.lcch,
                                    lyh:_this.lyh,
                                    gkdj: _this.gkdj,
                                    ljz:_this.ljz,
                                    gkcc:_this.gkcc,
                                    machine:_this.machine,
                                    user: _this.$UserTool.UserInfo.userName
                                },
                            };
                            _this.$AjaxRequest.Params('post', 'ToAPP/SaveCLStraight',
                                data, _user.token);
                            _this.$AjaxRequest.Request().then(function(result) {
                                if (result.data.status) {
                                    uni.showToast({
                                        title: "保存成功!",
                                        duration: 2000
                                    });
                                    _this.value_cltm = "";
                                    _this.initInfo();
                                    _this.qrcodeFocus = true;
                                } else {
                                    uni.showToast({
                                        icon: 'none',
                                        title: "请求错误:" + result.data.message,
                                        duration: 2000
                                    });
                                }
                            }).catch(function(err) {
                                uni.showToast({
                                    icon: 'none',
                                    title: "请求后台异常,错误信息:" + err.errMsg,
                                    duration: 2000
                                });
                            });
                        } else if (res.cancel) {}
                    }
                });
            },
        },
        created: function() {
            // æ¯æ¬¡è¿›å…¥ç•Œé¢æ—¶ï¼Œå…ˆæ¸…除之前的所有定时器,然后启动新的定时器
            clearInterval(this.timer)
            this.timer = null;
            this.setTimer();
            _user = this.$UserTool.UserInfo;
            this.CurrentUser = _user.userName;
            this.UserArray = [this.$UserTool.AllUserInfo];
        },
        destroyed: function() {
            // æ¯æ¬¡ç¦»å¼€å½“前界面时,清除定时器
            clearInterval(this.timer);
            this.timer = null;
        },
        mounted() {
            _this = this;
            _this.rfidFocus = true;
        },
    }
</script>
<style scoped lang="scss">
    .tdHeight {
        height: 80rpx;
    }
    .loopView {
        height: 160px;
        background-color: #f0f0f0;
        margin-top: 10px;
    }
    .loopItem {
        margin-top: 5px;
        margin-left: 15px;
    }
    .deleteBtn {
        margin-top: 25px;
        margin-left: 10px;
        width: 120px;
        background-color: orangered;
    }
</style>
ÏîÄ¿´úÂë/PDA/pages/Inbound/ZDPInbound.vue
ÎļþÃû´Ó ÏîÄ¿´úÂë/PDA/LDY_PDA/pages/Inbound/ZDPInbound.vue ÐÞ¸Ä
@@ -244,31 +244,31 @@
                    if (result.data.status) {
                        let obj = JSON.parse(JSON.stringify(result.data.data));
                        //车轮号
                        _this.ZPH = obj.ZPH;
                        _this.POS = obj.POS;
                        _this.LSXH = obj.LSXH;
                        _this.MAT = obj.MAT;
                        _this.ZPH = obj.zph;
                        _this.POS = obj.pos;
                        _this.LSXH = obj.lsxh;
                        _this.MAT = obj.mat;
                        _this.chexing = obj.chexing;
                        _this.SITE = obj.SITE;
                        _this.SITE = obj.site;
                        //新/旧
                        _this.neworold = obj.newold;
                        _this.GKA1 = obj.GKA1;
                        _this.GKA2 = obj.GKA2;
                        _this.GKA3 = obj.GKA3;
                        _this.GKA = obj.GKA;
                        _this.GKB1 = obj.GKB1;
                        _this.GKB2 = obj.GKB2;
                        _this.GKB3 = obj.GKB3;
                        _this.GKB = obj.GKB;
                        _this.GKC1 = obj.GKC1;
                        _this.GKC2 = obj.GKC2;
                        _this.GKC3 = obj.GKC3;
                        _this.GKC = obj.GKC;
                        _this.GKJZ = obj.GKJZ;
                        _this.LMCSYMH = obj.LMCSYMH;
                        _this.GKA1 = obj.gkA1;
                        _this.GKA2 = obj.gkA2;
                        _this.GKA3 = obj.gkA3;
                        _this.GKA = obj.gka;
                        _this.GKB1 = obj.gkB1;
                        _this.GKB2 = obj.gkB2;
                        _this.GKB3 = obj.gkB2;
                        _this.GKB = obj.gkb;
                        _this.GKC1 = obj.gkC1;
                        _this.GKC2 = obj.gkC2;
                        _this.GKC3 = obj.gkC2;
                        _this.GKC = obj.gkc;
                        _this.GKJZ = obj.gkjz;
                        _this.LMCSYMH = obj.lmcsymh;
                        //入库日期
                        _this.rksj = obj.rksj;
                        _this.LSCSYMH=obj.LSCSYMH;
                        _this.LSCSYMH=obj.lscsymh;
                    } else {
                        uni.showToast({
                            icon: 'none',
@@ -360,13 +360,13 @@
                                    GKC3: _this.GKC3,
                                    GKC: _this.GKC,
                                    GKJZ: _this.GKJZ,
                                    clsx: _this.clsx,
                                    //clsx: _this.clsx,
                                    rksj: _this.rksj,
                                    LMCSYMH:_this.LMCSYMH,
                                    LSCSYMH:_this.LSCSYMH,
                                },
                            };
                            _this.$AjaxRequest.Params('post', 'ToAPP/SaveCLinfo',
                            _this.$AjaxRequest.Params('post', 'ToAPP/SaveZDPInfo',
                                data, _user.token);
                            _this.$AjaxRequest.Request().then(function(result) {
                                if (result.data.status) {
ÏîÄ¿´úÂë/PDA/pages/Outbound/OutboundCall.vue
ÏîÄ¿´úÂë/PDA/pages/Outbound/OutboundCheck.vue
ÏîÄ¿´úÂë/PDA/pages/Outbound/OutboundCompleted.vue
ÏîÄ¿´úÂë/PDA/pages/Outbound/OutbundCZStraight.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,620 @@
<template>
    <view>
        <view>
            <u-table font-size="25">
                <u-tr>
                    <u-td>
                        <xfl-select :list="UserArray" :initValue="this.$UserTool.UserInfo.userName" :clearable="false"
                            :disabled="true">
                        </xfl-select>
                    </u-td>
                    <u-td width="25%">现在时间:</u-td>
                    <u-td width="25%">{{date}}</u-td>
                </u-tr>
            </u-table>
        </view>
        <view style="padding: 0rpx 0rpx">
            <u-table>
                <u-tr>
                    <u-td width="30%">车轴条码</u-td>
                    <u-td>
                        <u-input v-model="cztm" :focus="qrcodeFocus" :border="true" placeholder="请扫描车轴条码"
                            @input="cztmChange" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车轴号</u-td>
                    <u-td>
                        <u-input v-model="czh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">轮对条码</u-td>
                    <u-td>
                        <u-input v-model="ldtm" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车型</u-td>
                    <u-td>
                        <u-input v-model="chexing" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">动拖属性</u-td>
                    <u-td>
                        <u-input v-model="mttype" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车轴型号</u-td>
                    <u-td>
                        <u-input v-model="czxh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座等级</u-td>
                    <u-td>
                        <u-input v-model="zlzdj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">右轮座等级</u-td>
                    <u-td>
                        <u-input v-model="ylzdj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">维修任务</u-td>
                    <u-td>
                        <u-input v-model="wxrw" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径</u-td>
                    <u-td>
                        <u-input v-model="zlzzj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径</u-td>
                    <u-td>
                        <u-input v-model="ylzzj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A1</u-td>
                    <u-td>
                        <u-input v-model="zlzA1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A1</u-td>
                    <u-td>
                        <u-input v-model="ylzA1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A2</u-td>
                    <u-td>
                        <u-input v-model="zlzA2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A2</u-td>
                    <u-td>
                        <u-input v-model="ylzA2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A3</u-td>
                    <u-td>
                        <u-input v-model="zlzA3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A3</u-td>
                    <u-td>
                        <u-input v-model="ylzA3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A</u-td>
                    <u-td>
                        <u-input v-model="zlza" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A</u-td>
                    <u-td>
                        <u-input v-model="ylza" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B1</u-td>
                    <u-td>
                        <u-input v-model="zlzB1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B1</u-td>
                    <u-td>
                        <u-input v-model="ylzB1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B2</u-td>
                    <u-td>
                        <u-input v-model="zlzB2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B2</u-td>
                    <u-td>
                        <u-input v-model="ylzB2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B3</u-td>
                    <u-td>
                        <u-input v-model="zlzB3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B3</u-td>
                    <u-td>
                        <u-input v-model="ylzB3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B</u-td>
                    <u-td>
                        <u-input v-model="zlzb" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B</u-td>
                    <u-td>
                        <u-input v-model="ylzb" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C1</u-td>
                    <u-td>
                        <u-input v-model="zlzC1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C1</u-td>
                    <u-td>
                        <u-input v-model="ylzC1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C2</u-td>
                    <u-td>
                        <u-input v-model="zlzC2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C2</u-td>
                    <u-td>
                        <u-input v-model="ylzC2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C3</u-td>
                    <u-td>
                        <u-input v-model="zlzC3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C3</u-td>
                    <u-td>
                        <u-input v-model="ylzC3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C</u-td>
                    <u-td>
                        <u-input v-model="zlzc" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C</u-td>
                    <u-td>
                        <u-input v-model="ylzc" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <!-- <u-tr>
                    <u-td width="30%">车轮轮型</u-td>
                    <u-td>
                        <u-input v-model="x" :border="true" placeholder="请输入车轮轮型" />
                    </u-td>
                </u-tr> -->
                <!--     <u-tr>
                    <u-td width="30%">轴承类别:</u-td>
                    <u-td>
                        <xfl-select :list="StateArray" :initValue="'请选择'" :clearable="false" @change="StateChange"
                            ref="StateSelect">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
                <!--     <u-tr>
                    <u-td width="30%">厂家:</u-td>
                    <u-td>
                        <xfl-select :list="ManufacturerArray" :initValue="'请选择'" :clearable="false"
                            @change="ManufacturerChange" ref="ManufacturerSelect">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
                <!-- <u-tr>
                    <u-td width="30%">工位:</u-td>
                    <u-td>
                        <xfl-select :list="StationArray" :initValue="'请选择'" :clearable="false" @change="StationChange">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
            </u-table>
        </view>
        <view style="padding: 0rpx 0rpx;">
            <u-table>
                <u-tr>
                    <u-td>
                        <u-button style="width:100px" type="primary" @click="SaveInfomation">预选确认</u-button>
                    </u-td>
                </u-tr>
            </u-table>
        </view>
    </view>
</template>
<script>
    var _this;
    var _user;
    export default {
        data() {
            return {
                date: '',
                CurrentUser: '', //当前用户
                cztm: '',
                czh: '',
                chexing: '',
                czxh: '',
                zlzdj: '',
                ylzdj: '',
                wxrw:'',
                ldtm: '',
                mttype: '',
                zlzzj: '',
                ylzzj: '',
                zlzA1: '',
                ylzA1: '',
                zlzA2: '',
                ylzA2: '',
                zlzA3: '',
                ylzA3: '',
                zlzB1: '',
                ylzB1: '',
                zlzB2: '',
                ylzB2: '',
                zlzB3: '',
                ylzB3: '',
                zlzC1: '',
                ylzC1: '',
                zlzC2: '',
                ylzC2: '',
                zlzC3: '',
                ylzC3: '',
                zlza: '',
                ylza: '',
                zlzb: '',
                ylzb: '',
                zlzc: '',
                ylzc: '',
                // zzjAVG: '',
                // yzjAVG: '',
                // zfcbAVG: '',
                // yfcbAVG: '',
                // zydAVG: '',
                // yydAVG: '',
                //StateArray: [],
                //ManufacturerArray: [],
                StationArray: [{
                        label: '左侧压装位',
                        value: '1左侧压装位'
                    },
                    {
                        label: '右侧压装位',
                        value: '2右侧压装位'
                    }
                ],
                //zcState: '',
                //Manufacturer: '',
                //targetStation: '',
                //轴承方向
                //轴承号
                //ldCode: '',
                //ortherData: '',
                qrcodeFocus: false,
            }
        },
        methods: {
            setTimer() {
                if (this.timer == null) {
                    this.timer = setInterval(() => {
                        this.date = this.$DateTool.getDate();
                    }, 1000)
                }
            },
            // ManufacturerChange(value) {
            //     this.Manufacturer = value.orignItem.label;
            // },
            // StateChange(value) {
            //     this.zcState = value.orignItem.label;
            // },
            // StationChange(value) {
            //     this.targetStation = value.orignItem.label;
            // },
            cztmChange() {
                if (_this.cztm == '' || _this.cztm == null) {
                    return;
                }
                let data = {
                    MainData: {
                        cztm: _this.cztm
                    },
                };
                _this.$AjaxRequest.Params('post', 'ToZY/getCZInfo',
                    data, _user.token);
                _this.$AjaxRequest.Request().then(function(result) {
                    //console.log(result);
                    if (result.data.status) {
                        let obj = JSON.parse(JSON.stringify(result.data.data));
                        // _this.yfcbAVG = obj.yfcbAVG;
                        // _this.zfcbAVG = obj.zfcbAVG;
                        // _this.zydAVG = obj.zydAVG;
                        // _this.yydAVG = obj.yydAVG;
                        // _this.zzjAVG = obj.zzjAVG;
                        // _this.yzjAVG = obj.yzjAVG;
                        _this.chexing = obj.chexing;
                        _this.czh = obj.czh;
                        _this.czxh = obj.czxh;
                        _this.zlzdj = obj.zlzdj;
                        _this.ylzdj = obj.ylzdj;
                        _this.wxrw=obj.wxrw;
                        _this.ldtm = obj.ldtm;
                        _this.zlzzj = obj.zlzzj;
                        _this.ylzzj = obj.ylzzj;
                        _this.zlzA1 = obj.zlzA1;
                        _this.ylzA1 = obj.ylzA1;
                        _this.zlzA2 = obj.zlzA2;
                        _this.ylzA2 = obj.ylzA2;
                        _this.zlzA3 = obj.zlzA3;
                        _this.ylzA3 = obj.ylzA3;
                        _this.zlzB1 = obj.zlzB1;
                        _this.ylzB1 = obj.ylzB1;
                        _this.zlzB2 = obj.zlzB2;
                        _this.ylzB2 = obj.ylzB2;
                        _this.zlzB3 = obj.zlzB3;
                        _this.ylzB3 = obj.ylzB3;
                        _this.zlzC1 = obj.zlzC1;
                        _this.ylzC1 = obj.ylzC1;
                        _this.zlzC2 = obj.zlzC2;
                        _this.ylzC2 = obj.ylzC2;
                        _this.zlzC3 = obj.zlzC3;
                        _this.ylzC3 = obj.ylzC3;
                        _this.zlza = obj.zlza;
                        _this.ylza = obj.ylza;
                        _this.zlzb = obj.zlzb;
                        _this.ylzb = obj.ylzb;
                        _this.zlzc = obj.zlzc;
                        _this.ylzc = obj.ylzc;
                        _this.mttype = obj.mttype;
                        //_this.ldCode = obj.ldCode;
                        //_this.ortherData = obj.ortherData;
                        // if (null != obj.manufacturerArray)
                        //     obj.manufacturerArray.forEach(function(item, index, arr) {
                        //         _this.ManufacturerArray.push({
                        //             label: item,
                        //             value: item
                        //         })
                        //     });
                        // if (null != obj.neworold)
                        //     obj.neworold.forEach(function(item, index, arr) {
                        //         let name = '检修';
                        //         if (item.indexOf('0') > -1) {
                        //             name = '新品';
                        //         }
                        //         if (null == _this.StateArray.find(r => r.value == name)) {
                        //             _this.StateArray.push({
                        //                 label: item,
                        //                 value: name
                        //             })
                        //         }
                        //     });
                        //console.log(obj);
                    } else {
                        uni.showToast({
                            icon: 'none',
                            title: "请求错误:" + result.data.message,
                            duration: 5000
                        });
                        _this.initInfo();
                    }
                }).catch(function(err) {
                    uni.showToast({
                        icon: 'none',
                        title: "请求后台异常,错误信息." + err.errMsg,
                        duration: 5000
                    });
                    _this.initInfo();
                });
            },
            initInfo() {
                // _this.yfcbAVG = '';
                // _this.zfcbAVG = '';
                // _this.zydAVG = '';
                // _this.yydAVG = '';
                // _this.zzjAVG = '';
                // _this.yzjAVG = '';
                _this.cztm = '';
                _this.czh = '';
                _this.chexing = '';
                _this.czxh = '';
                _this.zlzdj = '';
                _this.ylzdj = '';
                _this.wxrw='';
                _this.ldtm = '';
                _this.zlzzj = '';
                _this.ylzzj = '';
                _this.zlzA1 = '';
                _this.ylzA1 = '';
                _this.zlzA2 = '';
                _this.ylzA2 = '';
                _this.zlzA3 = '';
                _this.ylzA3 = '';
                _this.zlzB1 = '';
                _this.ylzB1 = '';
                _this.zlzB2 = '';
                _this.ylzB2 = '';
                _this.zlzB3 = '';
                _this.ylzB3 = '';
                _this.zlzC1 = '';
                _this.ylzC1 = '';
                _this.zlzC2 = '';
                _this.ylzC2 = '';
                _this.zlzC3 = '';
                _this.ylzC3 = '';
                _this.zlza = '';
                _this.ylza = '';
                _this.zlzb = '';
                _this.ylzb = '';
                _this.zlzc = '';
                _this.ylzc = '';
                _this.mttype = '';
                //_this.wheelsPosition = '';
                //_this.NOdirection = ''
                //_this.Manufacturer = '';
                //_this.zcState = '';
                //_this.StateArray = [];
                //_this.ldCode = '';
                //_this.ortherData = '';
                //_this.ManufacturerArray = [];
                //_this.$refs.StateSelect.setInput("请选择");
                //_this.$refs.StateSelect.clearItemActive();
                //_this.$refs.ManufacturerSelect.setInput("请选择");
                //_this.$refs.ManufacturerSelect.clearItemActive();
            },
            SaveInfomation() {
                if (_this.cztm == '') {
                    uni.showToast({
                        title: "请扫描车轴信息.",
                        duration: 5000
                    });
                    return;
                }
                uni.showModal({
                    title: '提示',
                    content: '请核对车轴条码是否正确?',
                    success: function(res) {
                        if (res.confirm) {
                            let data = {
                                MainData: {
                                    czh: _this.czh,
                                    chexing: _this.chexing,
                                    cztm: _this.cztm,
                                    czxh: _this.czxh,
                                    zlzdj: _this.zlzdj,
                                    ylzdj: _this.ylzdj,
                                    wxrw:_this.wxrw,
                                    ldtm: _this.ldtm,
                                    zlzzj: _this.zlzzj,
                                    ylzzj: _this.ylzzj,
                                    zlzA1: _this.zlzA1,
                                    ylzA1: _this.ylzA1,
                                    zlzA2: _this.zlzA2,
                                    ylzA2: _this.ylzA2,
                                    zlzA3: _this.zlzA3,
                                    ylzA3: _this.ylzA3,
                                    zlzB1: _this.zlzB1,
                                    ylzB1: _this.ylzB1,
                                    zlzB2: _this.zlzB2,
                                    ylzB2: _this.ylzB2,
                                    zlzB3: _this.zlzB3,
                                    ylzB3: _this.ylzB3,
                                    zlzC1: _this.zlzC1,
                                    ylzC1: _this.ylzC1,
                                    zlzC2: _this.zlzC2,
                                    ylzC2: _this.ylzC2,
                                    zlzC3: _this.zlzC3,
                                    ylzC3: _this.ylzC3,
                                    zlza: _this.zlza,
                                    ylza: _this.ylza,
                                    zlzb: _this.zlzb,
                                    ylzb: _this.ylzb,
                                    zlzc: _this.zlzc,
                                    ylzc: _this.ylzc,
                                    mttype: _this.mttype,
                                    //targetStation: _this.targetStation,
                                    //ldCode: _this.ldCode,
                                    //ortherData: _this.ortherData
                                },
                            };
                            _this.$AjaxRequest.Params('post', 'ToAPP/SaveCZStraight',
                                data, _user.token);
                            _this.$AjaxRequest.Request().then(function(result) {
                                if (result.data.status) {
                                    uni.showToast({
                                        title: "车轴直走信息添加成功!",
                                        duration: 5000
                                    });
                                    _this.initInfo();
                                    _this.qrcodeFocus = true;
                                } else {
                                    uni.showToast({
                                        icon: 'none',
                                        title: "请求错误:" + result.data.message,
                                        duration: 5000
                                    });
                                }
                            }).catch(function(err) {
                                uni.showToast({
                                    icon: 'none',
                                    title: "请求后台异常,错误信息." + err.errMsg,
                                    duration: 5000
                                });
                            });
                        } else if (res.cancel) {}
                    }
                });
            },
        },
        created: function() {
            // æ¯æ¬¡è¿›å…¥ç•Œé¢æ—¶ï¼Œå…ˆæ¸…除之前的所有定时器,然后启动新的定时器
            clearInterval(this.timer)
            this.timer = null;
            this.setTimer();
            _user = this.$UserTool.UserInfo;
            this.CurrentUser = _user.userName;
            this.UserArray = [this.$UserTool.AllUserInfo];
        },
        destroyed: function() {
            // æ¯æ¬¡ç¦»å¼€å½“前界面时,清除定时器
            clearInterval(this.timer);
            this.timer = null;
        },
        mounted() {
            _this = this;
            _this.qrcodeFocus = true;
            //_this.queryOrder();
        },
    }
</script>
<style scoped lang="scss">
    .tdHeight {
        height: 80rpx;
    }
    .loopView {
        height: 160px;
        background-color: #f0f0f0;
        margin-top: 10px;
    }
    .loopItem {
        margin-top: 5px;
        margin-left: 15px;
    }
    .deleteBtn {
        margin-top: 25px;
        margin-left: 10px;
        width: 120px;
        background-color: orangered;
    }
</style>
ÏîÄ¿´úÂë/PDA/pages/Outbound/OutbundZdpStraight.vue
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/LDY_PDA/pages/Inbound/ZDPInbound.vue" copy to "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/pages/Outbound/OutbundZdpStraight.vue"
Îļþ´Ó ÏîÄ¿´úÂë/PDA/LDY_PDA/pages/Inbound/ZDPInbound.vue ¸´ÖÆ
@@ -162,6 +162,13 @@
                        <u-input v-model="rksj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">压装机号</u-td>
                    <u-td>
                        <xfl-select :list="MachineArray" :initValue="'请选择'" :clearable="false" @change="MachineChange">
                        </xfl-select>
                    </u-td>
                </u-tr>
            </u-table>
        </view>
        <view style="padding: 0rpx 0rpx;">
@@ -214,11 +221,22 @@
                neworold: '',
                LSCSYMH:'',
                qrcodeFocus: true,
                MachineArray: [{
                    label: '2032',
                    value: '1号压装位'
                }, {
                    label: '2042',
                    value: '2号压装位'
                }, ],
                machine: '',
            }
        },
        methods: {
            UserChange(value) {
            },
            MachineChange(value) {
                this.machine = value.orignItem.label;
            },
            setTimer() {
                if (this.timer == null) {
@@ -244,31 +262,31 @@
                    if (result.data.status) {
                        let obj = JSON.parse(JSON.stringify(result.data.data));
                        //车轮号
                        _this.ZPH = obj.ZPH;
                        _this.POS = obj.POS;
                        _this.LSXH = obj.LSXH;
                        _this.MAT = obj.MAT;
                        _this.ZPH = obj.zph;
                        _this.POS = obj.pos;
                        _this.LSXH = obj.lsxh;
                        _this.MAT = obj.mat;
                        _this.chexing = obj.chexing;
                        _this.SITE = obj.SITE;
                        _this.SITE = obj.site;
                        //新/旧
                        _this.neworold = obj.newold;
                        _this.GKA1 = obj.GKA1;
                        _this.GKA2 = obj.GKA2;
                        _this.GKA3 = obj.GKA3;
                        _this.GKA = obj.GKA;
                        _this.GKB1 = obj.GKB1;
                        _this.GKB2 = obj.GKB2;
                        _this.GKB3 = obj.GKB3;
                        _this.GKB = obj.GKB;
                        _this.GKC1 = obj.GKC1;
                        _this.GKC2 = obj.GKC2;
                        _this.GKC3 = obj.GKC3;
                        _this.GKC = obj.GKC;
                        _this.GKJZ = obj.GKJZ;
                        _this.LMCSYMH = obj.LMCSYMH;
                        _this.GKA1 = obj.gkA1;
                        _this.GKA2 = obj.gkA2;
                        _this.GKA3 = obj.gkA3;
                        _this.GKA = obj.gka;
                        _this.GKB1 = obj.gkB1;
                        _this.GKB2 = obj.gkB2;
                        _this.GKB3 = obj.gkB2;
                        _this.GKB = obj.gkb;
                        _this.GKC1 = obj.gkC1;
                        _this.GKC2 = obj.gkC2;
                        _this.GKC3 = obj.gkC2;
                        _this.GKC = obj.gkc;
                        _this.GKJZ = obj.gkjz;
                        _this.LMCSYMH = obj.lmcsymh;
                        //入库日期
                        _this.rksj = obj.rksj;
                        _this.LSCSYMH=obj.LSCSYMH;
                        _this.LSCSYMH=obj.lscsymh;
                    } else {
                        uni.showToast({
                            icon: 'none',
@@ -315,7 +333,7 @@
                _this.GKJZ = '';
                _this.LMCSYMH = '';
                _this.rksj = '';
                _this.machine='';
                _this.LSCSYMH='';
            },
@@ -360,13 +378,14 @@
                                    GKC3: _this.GKC3,
                                    GKC: _this.GKC,
                                    GKJZ: _this.GKJZ,
                                    clsx: _this.clsx,
                                    //clsx: _this.clsx,
                                    rksj: _this.rksj,
                                    LMCSYMH:_this.LMCSYMH,
                                    LSCSYMH:_this.LSCSYMH,
                                    machine:_this.machine,
                                },
                            };
                            _this.$AjaxRequest.Params('post', 'ToAPP/SaveCLinfo',
                            _this.$AjaxRequest.Params('post', 'ToAPP/SaveZDPStraight',
                                data, _user.token);
                            _this.$AjaxRequest.Request().then(function(result) {
                                if (result.data.status) {
ÏîÄ¿´úÂë/PDA/pages/Outbound/YxOutboundCall.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,688 @@
<template>
    <view>
        <view>
            <u-table font-size="25">
                <u-tr>
                    <u-td>
                        <xfl-select :list="UserArray" :initValue="this.$UserTool.UserInfo.userName" :clearable="false"
                            :disabled="true">
                        </xfl-select>
                    </u-td>
                    <u-td width="25%">现在时间:</u-td>
                    <u-td width="25%">{{date}}</u-td>
                </u-tr>
            </u-table>
        </view>
        <view style="padding: 0rpx 0rpx">
            <u-table>
                <u-tr>
                    <u-td width="30%">车轴条码</u-td>
                    <u-td>
                        <u-input v-model="cztm" :focus="qrcodeFocus" :border="true" placeholder="请扫描车轴条码"
                            @input="cztmChange" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车轴号</u-td>
                    <u-td>
                        <u-input v-model="czh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">轮对条码</u-td>
                    <u-td>
                        <u-input v-model="ldtm" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车型</u-td>
                    <u-td>
                        <u-input v-model="chexing" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">动拖属性</u-td>
                    <u-td>
                        <u-input v-model="mttype" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车轴型号</u-td>
                    <u-td>
                        <u-input v-model="czxh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">选配轮型(*)</u-td>
                    <u-td>
                        <u-input v-model="clxh" :border="false" :focus="clxhFocus" placeholder="请输入选配轮型" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座等级</u-td>
                    <u-td>
                        <u-input v-model="zlzdj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">右轮座等级</u-td>
                    <u-td>
                        <u-input v-model="ylzdj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">维修任务</u-td>
                    <u-td>
                        <u-input v-model="wxrw" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径</u-td>
                    <u-td>
                        <u-input v-model="zlzzj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径</u-td>
                    <u-td>
                        <u-input v-model="ylzzj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A1</u-td>
                    <u-td>
                        <u-input v-model="zlzA1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A1</u-td>
                    <u-td>
                        <u-input v-model="ylzA1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A2</u-td>
                    <u-td>
                        <u-input v-model="zlzA2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A2</u-td>
                    <u-td>
                        <u-input v-model="ylzA2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A3</u-td>
                    <u-td>
                        <u-input v-model="zlzA3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A3</u-td>
                    <u-td>
                        <u-input v-model="ylzA3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A</u-td>
                    <u-td>
                        <u-input v-model="zlza" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A</u-td>
                    <u-td>
                        <u-input v-model="ylza" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B1</u-td>
                    <u-td>
                        <u-input v-model="zlzB1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B1</u-td>
                    <u-td>
                        <u-input v-model="ylzB1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B2</u-td>
                    <u-td>
                        <u-input v-model="zlzB2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B2</u-td>
                    <u-td>
                        <u-input v-model="ylzB2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B3</u-td>
                    <u-td>
                        <u-input v-model="zlzB3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B3</u-td>
                    <u-td>
                        <u-input v-model="ylzB3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B</u-td>
                    <u-td>
                        <u-input v-model="zlzb" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B</u-td>
                    <u-td>
                        <u-input v-model="ylzb" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C1</u-td>
                    <u-td>
                        <u-input v-model="zlzC1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C1</u-td>
                    <u-td>
                        <u-input v-model="ylzC1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C2</u-td>
                    <u-td>
                        <u-input v-model="zlzC2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C2</u-td>
                    <u-td>
                        <u-input v-model="ylzC2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C3</u-td>
                    <u-td>
                        <u-input v-model="zlzC3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C3</u-td>
                    <u-td>
                        <u-input v-model="ylzC3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C</u-td>
                    <u-td>
                        <u-input v-model="zlzc" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C</u-td>
                    <u-td>
                        <u-input v-model="ylzc" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车轮方向:</u-td>
                    <u-td>
                        <xfl-select :list="wheelsPositionArray" :initValue="'请选择'" :clearable="false"
                            @change="wheelsPositionChange">
                        </xfl-select>
                    </u-td>
                </u-tr>
                <!-- <u-tr>
                    <u-td width="30%">车轮轮型</u-td>
                    <u-td>
                        <u-input v-model="x" :border="true" placeholder="请输入车轮轮型" />
                    </u-td>
                </u-tr> -->
                <u-tr>
                    <u-td width="30%">新旧类别:</u-td>
                    <u-td>
                        <xfl-select :list="NOdirectionArray" :initValue="'请选择'" :clearable="false"
                            @change="NOdirectionChange">
                        </xfl-select>
                    </u-td>
                </u-tr>
                <!--     <u-tr>
                    <u-td width="30%">轴承类别:</u-td>
                    <u-td>
                        <xfl-select :list="StateArray" :initValue="'请选择'" :clearable="false" @change="StateChange"
                            ref="StateSelect">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
                <!--     <u-tr>
                    <u-td width="30%">厂家:</u-td>
                    <u-td>
                        <xfl-select :list="ManufacturerArray" :initValue="'请选择'" :clearable="false"
                            @change="ManufacturerChange" ref="ManufacturerSelect">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
                <!-- <u-tr>
                    <u-td width="30%">工位:</u-td>
                    <u-td>
                        <xfl-select :list="StationArray" :initValue="'请选择'" :clearable="false" @change="StationChange">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
            </u-table>
        </view>
        <view style="padding: 0rpx 0rpx;">
            <u-table>
                <u-tr>
                    <u-td>
                        <u-button style="width:100px" type="primary" @click="SaveInfomation">预选确认</u-button>
                    </u-td>
                </u-tr>
            </u-table>
        </view>
    </view>
</template>
<script>
    var _this;
    var _user;
    export default {
        data() {
            return {
                date: '',
                CurrentUser: '', //当前用户
                cztm: '',
                czh: '',
                chexing: '',
                czxh: '',
                clxh: '',
                zlzdj: '',
                ylzdj: '',
                wxrw:'',
                ldtm: '',
                mttype: '',
                zlzzj: '',
                ylzzj: '',
                zlzA1: '',
                ylzA1: '',
                zlzA2: '',
                ylzA2: '',
                zlzA3: '',
                ylzA3: '',
                zlzB1: '',
                ylzB1: '',
                zlzB2: '',
                ylzB2: '',
                zlzB3: '',
                ylzB3: '',
                zlzC1: '',
                ylzC1: '',
                zlzC2: '',
                ylzC2: '',
                zlzC3: '',
                ylzC3: '',
                zlza: '',
                ylza: '',
                zlzb: '',
                ylzb: '',
                zlzc: '',
                ylzc: '',
                // zzjAVG: '',
                // yzjAVG: '',
                // zfcbAVG: '',
                // yfcbAVG: '',
                // zydAVG: '',
                // yydAVG: '',
                //StateArray: [],
                //ManufacturerArray: [],
                StationArray: [{
                        label: '左侧压装位',
                        value: '1左侧压装位'
                    },
                    {
                        label: '右侧压装位',
                        value: '2右侧压装位'
                    }
                ],
                wheelsPositionArray: [{
                        label: 'all',
                        value: '两侧'
                    }, {
                        label: 'left',
                        value: '左侧'
                    },
                    {
                        label: 'right',
                        value: '右侧'
                    }
                ],
                NOdirectionArray: [{
                    label: '0',
                    value: '新造'
                }, {
                    label: '1',
                    value: '检修'
                }, ],
                //zcState: '',
                //Manufacturer: '',
                //targetStation: '',
                //轴承方向
                wheelsPosition: '',
                //轴承号
                //ldCode: '',
                //ortherData: '',
                qrcodeFocus: false,
                clxhFocus: false
            }
        },
        methods: {
            setTimer() {
                if (this.timer == null) {
                    this.timer = setInterval(() => {
                        this.date = this.$DateTool.getDate();
                    }, 1000)
                }
            },
            // ManufacturerChange(value) {
            //     this.Manufacturer = value.orignItem.label;
            // },
            // StateChange(value) {
            //     this.zcState = value.orignItem.label;
            // },
            // StationChange(value) {
            //     this.targetStation = value.orignItem.label;
            // },
            wheelsPositionChange(value) {
                this.wheelsPosition = value.orignItem.label;
            },
            NOdirectionChange(value) {
                this.NOdirection = value.orignItem.label;
            },
            cztmChange() {
                if (_this.cztm == '' || _this.cztm == null) {
                    return;
                }
                let data = {
                    MainData: {
                        cztm: _this.cztm
                    },
                };
                _this.$AjaxRequest.Params('post', 'ToZY/getCZInfo',
                    data, _user.token);
                _this.$AjaxRequest.Request().then(function(result) {
                    //console.log(result);
                    if (result.data.status) {
                        let obj = JSON.parse(JSON.stringify(result.data.data));
                        // _this.yfcbAVG = obj.yfcbAVG;
                        // _this.zfcbAVG = obj.zfcbAVG;
                        // _this.zydAVG = obj.zydAVG;
                        // _this.yydAVG = obj.yydAVG;
                        // _this.zzjAVG = obj.zzjAVG;
                        // _this.yzjAVG = obj.yzjAVG;
                        _this.chexing = obj.chexing;
                        _this.czh = obj.czh;
                        _this.czxh = obj.czxh;
                        _this.clxhFocus = true;
                        _this.zlzdj = obj.zlzdj;
                        _this.ylzdj = obj.ylzdj;
                        _this.wxrw=obj.wxrw;
                        _this.ldtm = obj.ldtm;
                        _this.zlzzj = obj.zlzzj;
                        _this.ylzzj = obj.ylzzj;
                        _this.zlzA1 = obj.zlzA1;
                        _this.ylzA1 = obj.ylzA1;
                        _this.zlzA2 = obj.zlzA2;
                        _this.ylzA2 = obj.ylzA2;
                        _this.zlzA3 = obj.zlzA3;
                        _this.ylzA3 = obj.ylzA3;
                        _this.zlzB1 = obj.zlzB1;
                        _this.ylzB1 = obj.ylzB1;
                        _this.zlzB2 = obj.zlzB2;
                        _this.ylzB2 = obj.ylzB2;
                        _this.zlzB3 = obj.zlzB3;
                        _this.ylzB3 = obj.ylzB3;
                        _this.zlzC1 = obj.zlzC1;
                        _this.ylzC1 = obj.ylzC1;
                        _this.zlzC2 = obj.zlzC2;
                        _this.ylzC2 = obj.ylzC2;
                        _this.zlzC3 = obj.zlzC3;
                        _this.ylzC3 = obj.ylzC3;
                        _this.zlza = obj.zlza;
                        _this.ylza = obj.ylza;
                        _this.zlzb = obj.zlzb;
                        _this.ylzb = obj.ylzb;
                        _this.zlzc = obj.zlzc;
                        _this.ylzc = obj.ylzc;
                        _this.mttype = obj.mttype;
                        //_this.ldCode = obj.ldCode;
                        //_this.ortherData = obj.ortherData;
                        // if (null != obj.manufacturerArray)
                        //     obj.manufacturerArray.forEach(function(item, index, arr) {
                        //         _this.ManufacturerArray.push({
                        //             label: item,
                        //             value: item
                        //         })
                        //     });
                        // if (null != obj.neworold)
                        //     obj.neworold.forEach(function(item, index, arr) {
                        //         let name = '检修';
                        //         if (item.indexOf('0') > -1) {
                        //             name = '新品';
                        //         }
                        //         if (null == _this.StateArray.find(r => r.value == name)) {
                        //             _this.StateArray.push({
                        //                 label: item,
                        //                 value: name
                        //             })
                        //         }
                        //     });
                        //console.log(obj);
                    } else {
                        uni.showToast({
                            icon: 'none',
                            title: "请求错误:" + result.data.message,
                            duration: 5000
                        });
                        _this.initInfo();
                    }
                }).catch(function(err) {
                    uni.showToast({
                        icon: 'none',
                        title: "请求后台异常,错误信息." + err.errMsg,
                        duration: 5000
                    });
                    _this.initInfo();
                });
            },
            initInfo() {
                // _this.yfcbAVG = '';
                // _this.zfcbAVG = '';
                // _this.zydAVG = '';
                // _this.yydAVG = '';
                // _this.zzjAVG = '';
                // _this.yzjAVG = '';
                _this.cztm = '';
                _this.czh = '';
                _this.chexing = '';
                _this.czxh = '';
                _this.clxh = '';
                _this.zlzdj = '';
                _this.ylzdj = '';
                _this.wxrw='';
                _this.ldtm = '';
                _this.zlzzj = '';
                _this.ylzzj = '';
                _this.zlzA1 = '';
                _this.ylzA1 = '';
                _this.zlzA2 = '';
                _this.ylzA2 = '';
                _this.zlzA3 = '';
                _this.ylzA3 = '';
                _this.zlzB1 = '';
                _this.ylzB1 = '';
                _this.zlzB2 = '';
                _this.ylzB2 = '';
                _this.zlzB3 = '';
                _this.ylzB3 = '';
                _this.zlzC1 = '';
                _this.ylzC1 = '';
                _this.zlzC2 = '';
                _this.ylzC2 = '';
                _this.zlzC3 = '';
                _this.ylzC3 = '';
                _this.zlza = '';
                _this.ylza = '';
                _this.zlzb = '';
                _this.ylzb = '';
                _this.zlzc = '';
                _this.ylzc = '';
                _this.mttype = '';
                //_this.wheelsPosition = '';
                //_this.NOdirection = ''
                //_this.Manufacturer = '';
                //_this.zcState = '';
                //_this.StateArray = [];
                //_this.ldCode = '';
                //_this.ortherData = '';
                //_this.ManufacturerArray = [];
                //_this.$refs.StateSelect.setInput("请选择");
                //_this.$refs.StateSelect.clearItemActive();
                //_this.$refs.ManufacturerSelect.setInput("请选择");
                //_this.$refs.ManufacturerSelect.clearItemActive();
            },
            SaveInfomation() {
                if (_this.cztm == '') {
                    uni.showToast({
                        title: "请扫描车轴信息.",
                        duration: 5000
                    });
                    return;
                }
                if (_this.clxh == '') {
                    uni.showToast({
                        title: "请输入选配轮型.",
                        duration: 5000
                    });
                    return;
                }
                // if (_this.yfcbAVG == '' && _this.zfcbAVG == '' &&
                //     _this.zydAVG == '' && _this.yydAVG == '' && _this.zzjAVG == '' &&
                //     _this.yzjAVG == '') {
                //     uni.showToast({
                //         title: "请重新获取轮对选配信息.",
                //         duration: 5000
                //     });
                //     return;
                // }
                uni.showModal({
                    title: '提示',
                    content: '请核对车轴条码是否正确?',
                    success: function(res) {
                        if (res.confirm) {
                            let data = {
                                MainData: {
                                    czh: _this.czh,
                                    chexing: _this.chexing,
                                    cztm: _this.cztm,
                                    czxh: _this.czxh,
                                    clxh: _this.clxh,
                                    zlzdj: _this.zlzdj,
                                    ylzdj: _this.ylzdj,
                                    wxrw:_this.wxrw,
                                    ldtm: _this.ldtm,
                                    zlzzj: _this.zlzzj,
                                    ylzzj: _this.ylzzj,
                                    zlzA1: _this.zlzA1,
                                    ylzA1: _this.ylzA1,
                                    zlzA2: _this.zlzA2,
                                    ylzA2: _this.ylzA2,
                                    zlzA3: _this.zlzA3,
                                    ylzA3: _this.ylzA3,
                                    zlzB1: _this.zlzB1,
                                    ylzB1: _this.ylzB1,
                                    zlzB2: _this.zlzB2,
                                    ylzB2: _this.ylzB2,
                                    zlzB3: _this.zlzB3,
                                    ylzB3: _this.ylzB3,
                                    zlzC1: _this.zlzC1,
                                    ylzC1: _this.ylzC1,
                                    zlzC2: _this.zlzC2,
                                    ylzC2: _this.ylzC2,
                                    zlzC3: _this.zlzC3,
                                    ylzC3: _this.ylzC3,
                                    zlza: _this.zlza,
                                    ylza: _this.ylza,
                                    zlzb: _this.zlzb,
                                    ylzb: _this.ylzb,
                                    zlzc: _this.zlzc,
                                    ylzc: _this.ylzc,
                                    mttype: _this.mttype,
                                    //targetStation: _this.targetStation,
                                    wheelsPosition: _this.wheelsPosition,
                                    NOdirection: _this.NOdirection,
                                    //ldCode: _this.ldCode,
                                    //ortherData: _this.ortherData
                                },
                            };
                            _this.$AjaxRequest.Params('post', 'ToAPP/SaveCZInfo2',
                                data, _user.token);
                            _this.$AjaxRequest.Request().then(function(result) {
                                if (result.data.status) {
                                    uni.showToast({
                                        title: "预选配成功!",
                                        duration: 5000
                                    });
                                    _this.initInfo();
                                    _this.qrcodeFocus = true;
                                    _this.clxhFocus = false;
                                } else {
                                    uni.showToast({
                                        icon: 'none',
                                        title: "请求错误:" + result.data.message,
                                        duration: 5000
                                    });
                                }
                            }).catch(function(err) {
                                uni.showToast({
                                    icon: 'none',
                                    title: "请求后台异常,错误信息." + err.errMsg,
                                    duration: 5000
                                });
                            });
                        } else if (res.cancel) {}
                    }
                });
            },
        },
        created: function() {
            // æ¯æ¬¡è¿›å…¥ç•Œé¢æ—¶ï¼Œå…ˆæ¸…除之前的所有定时器,然后启动新的定时器
            clearInterval(this.timer)
            this.timer = null;
            this.setTimer();
            _user = this.$UserTool.UserInfo;
            this.CurrentUser = _user.userName;
            this.UserArray = [this.$UserTool.AllUserInfo];
        },
        destroyed: function() {
            // æ¯æ¬¡ç¦»å¼€å½“前界面时,清除定时器
            clearInterval(this.timer);
            this.timer = null;
        },
        mounted() {
            _this = this;
            _this.qrcodeFocus = true;
            //_this.queryOrder();
        },
    }
</script>
<style scoped lang="scss">
    .tdHeight {
        height: 80rpx;
    }
    .loopView {
        height: 160px;
        background-color: #f0f0f0;
        margin-top: 10px;
    }
    .loopItem {
        margin-top: 5px;
        margin-left: 15px;
    }
    .deleteBtn {
        margin-top: 25px;
        margin-left: 10px;
        width: 120px;
        background-color: orangered;
    }
</style>
ÏîÄ¿´úÂë/PDA/pages/Outbound/ZDPxp.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,694 @@
<template>
    <view>
        <view>
            <u-table font-size="25">
                <u-tr>
                    <u-td>
                        <xfl-select :list="UserArray" :initValue="this.$UserTool.UserInfo.userName" :clearable="false"
                            :disabled="true">
                        </xfl-select>
                    </u-td>
                    <u-td width="25%">现在时间:</u-td>
                    <u-td width="25%">{{date}}</u-td>
                </u-tr>
            </u-table>
        </view>
        <view style="padding: 0rpx 0rpx">
            <u-table>
                <u-tr>
                    <u-td width="30%">车轴条码</u-td>
                    <u-td>
                        <u-input v-model="cztm" :focus="qrcodeFocus" :border="true" placeholder="请扫描车轴条码"
                            @input="cztmChange" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车轴号</u-td>
                    <u-td>
                        <u-input v-model="czh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <!-- <u-tr>
                    <u-td width="30%">轮对条码</u-td>
                    <u-td>
                        <u-input v-model="ldtm" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr> -->
                <u-tr>
                    <u-td width="30%">车型</u-td>
                    <u-td>
                        <u-input v-model="chexing" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">动拖属性</u-td>
                    <u-td>
                        <u-input v-model="mttype" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">车轴型号</u-td>
                    <u-td>
                        <u-input v-model="czxh" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <!-- <u-tr>
                    <u-td width="30%">选配轮型(*)</u-td>
                    <u-td>
                        <u-input v-model="clxh" :border="false" :focus="clxhFocus" placeholder="请输入选配轮型" />
                    </u-td>
                </u-tr> -->
                <u-tr>
                    <u-td width="30%">左轮座等级</u-td>
                    <u-td>
                        <u-input v-model="zlzdj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">右轮座等级</u-td>
                    <u-td>
                        <u-input v-model="ylzdj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">维修任务</u-td>
                    <u-td>
                        <u-input v-model="wxrw" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径</u-td>
                    <u-td>
                        <u-input v-model="zlzzj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径</u-td>
                    <u-td>
                        <u-input v-model="ylzzj" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A1</u-td>
                    <u-td>
                        <u-input v-model="zlzA1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A1</u-td>
                    <u-td>
                        <u-input v-model="ylzA1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A2</u-td>
                    <u-td>
                        <u-input v-model="zlzA2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A2</u-td>
                    <u-td>
                        <u-input v-model="ylzA2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A3</u-td>
                    <u-td>
                        <u-input v-model="zlzA3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A3</u-td>
                    <u-td>
                        <u-input v-model="ylzA3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径A</u-td>
                    <u-td>
                        <u-input v-model="zlza" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径A</u-td>
                    <u-td>
                        <u-input v-model="ylza" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B1</u-td>
                    <u-td>
                        <u-input v-model="zlzB1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B1</u-td>
                    <u-td>
                        <u-input v-model="ylzB1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B2</u-td>
                    <u-td>
                        <u-input v-model="zlzB2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B2</u-td>
                    <u-td>
                        <u-input v-model="ylzB2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B3</u-td>
                    <u-td>
                        <u-input v-model="zlzB3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B3</u-td>
                    <u-td>
                        <u-input v-model="ylzB3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径B</u-td>
                    <u-td>
                        <u-input v-model="zlzb" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径B</u-td>
                    <u-td>
                        <u-input v-model="ylzb" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C1</u-td>
                    <u-td>
                        <u-input v-model="zlzC1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C1</u-td>
                    <u-td>
                        <u-input v-model="ylzC1" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C2</u-td>
                    <u-td>
                        <u-input v-model="zlzC2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C2</u-td>
                    <u-td>
                        <u-input v-model="ylzC2" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C3</u-td>
                    <u-td>
                        <u-input v-model="zlzC3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C3</u-td>
                    <u-td>
                        <u-input v-model="ylzC3" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr>
                    <u-td width="30%">左轮座直径C</u-td>
                    <u-td>
                        <u-input v-model="zlzc" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                    <u-td width="30%">右轮座直径C</u-td>
                    <u-td>
                        <u-input v-model="ylzc" :border="false" :disabled="true" placeholder="" />
                    </u-td>
                </u-tr>
                <u-tr style="height: 50px;">
                    <u-td width="30%">制动盘方向:</u-td>
                    <u-td>
                        <u-checkbox-group @change="wheelsPositionChange">
                            <u-checkbox  v-model="item.checked" :size="48"
                                v-for="(item, index) in list" :key="index" :name="item.name">{{item.name}}</u-checkbox>
                        </u-checkbox-group>
                    </u-td>
                </u-tr>
                <!-- <u-tr>
                    <u-td width="30%">车轮轮型</u-td>
                    <u-td>
                        <u-input v-model="x" :border="true" placeholder="请输入车轮轮型" />
                    </u-td>
                </u-tr> -->
                <u-tr>
                    <u-td width="30%">新旧类别:</u-td>
                    <u-td>
                        <xfl-select :list="NOdirectionArray" :initValue="'请选择'" :clearable="false"
                            @change="NOdirectionChange">
                        </xfl-select>
                    </u-td>
                </u-tr>
                <!--     <u-tr>
                    <u-td width="30%">轴承类别:</u-td>
                    <u-td>
                        <xfl-select :list="StateArray" :initValue="'请选择'" :clearable="false" @change="StateChange"
                            ref="StateSelect">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
                <!--     <u-tr>
                    <u-td width="30%">厂家:</u-td>
                    <u-td>
                        <xfl-select :list="ManufacturerArray" :initValue="'请选择'" :clearable="false"
                            @change="ManufacturerChange" ref="ManufacturerSelect">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
                <!-- <u-tr>
                    <u-td width="30%">工位:</u-td>
                    <u-td>
                        <xfl-select :list="StationArray" :initValue="'请选择'" :clearable="false" @change="StationChange">
                        </xfl-select>
                    </u-td>
                </u-tr> -->
            </u-table>
        </view>
        <view style="padding: 0rpx 0rpx;">
            <u-table>
                <u-tr>
                    <u-td>
                        <u-button style="width:100px" type="primary" @click="SaveInfomation">确认</u-button>
                    </u-td>
                </u-tr>
            </u-table>
        </view>
    </view>
</template>
<script>
    var _this;
    var _user;
    export default {
        data() {
            return {
                date: '',
                CurrentUser: '', //当前用户
                cztm: '',
                czh: '',
                chexing: '',
                czxh: '',
                //clxh: '',
                zlzdj: '',
                ylzdj: '',
                wxrw: '',
                //ldtm: '',
                mttype: '',
                zlzzj: '',
                ylzzj: '',
                zlzA1: '',
                ylzA1: '',
                zlzA2: '',
                ylzA2: '',
                zlzA3: '',
                ylzA3: '',
                zlzB1: '',
                ylzB1: '',
                zlzB2: '',
                ylzB2: '',
                zlzB3: '',
                ylzB3: '',
                zlzC1: '',
                ylzC1: '',
                zlzC2: '',
                ylzC2: '',
                zlzC3: '',
                ylzC3: '',
                zlza: '',
                ylza: '',
                zlzb: '',
                ylzb: '',
                zlzc: '',
                ylzc: '',
                // zzjAVG: '',
                // yzjAVG: '',
                // zfcbAVG: '',
                // yfcbAVG: '',
                // zydAVG: '',
                // yydAVG: '',
                //StateArray: [],
                //ManufacturerArray: [],
                StationArray: [{
                        label: '左侧压装位',
                        value: '1左侧压装位'
                    },
                    {
                        label: '右侧压装位',
                        value: '2右侧压装位'
                    }
                ],
                list: [
                    {
                        name: '左侧',
                        checked: false,
                        disabled: false
                    },
                    {
                            name: '中间',
                            checked: false,
                            disabled: false
                    },
                    {
                        name: '右侧',
                        checked: false,
                        disabled: false
                    }
                ],
                NOdirectionArray: [{
                    label: '0',
                    value: '新造'
                }, {
                    label: '1',
                    value: '检修'
                }, ],
                //zcState: '',
                //Manufacturer: '',
                //targetStation: '',
                //轴承方向
                wheelsPosition: [],
                //轴承号
                //ldCode: '',
                //ortherData: '',
                qrcodeFocus: false,
                //clxhFocus: false
            }
        },
        methods: {
            setTimer() {
                if (this.timer == null) {
                    this.timer = setInterval(() => {
                        this.date = this.$DateTool.getDate();
                    }, 1000)
                }
            },
            // ManufacturerChange(value) {
            //     this.Manufacturer = value.orignItem.label;
            // },
            // StateChange(value) {
            //     this.zcState = value.orignItem.label;
            // },
            // StationChange(value) {
            //     this.targetStation = value.orignItem.label;
            // },
            wheelsPositionChange(value) {
                this.wheelsPosition = value;
            },
            NOdirectionChange(value) {
                this.NOdirection = value.orignItem.label;
            },
            cztmChange() {
                if (_this.cztm == '' || _this.cztm == null) {
                    return;
                }
                let data = {
                    MainData: {
                        cztm: _this.cztm
                    },
                };
                _this.$AjaxRequest.Params('post', 'ToZY/getCZInfo',
                    data, _user.token);
                _this.$AjaxRequest.Request().then(function(result) {
                    //console.log(result);
                    if (result.data.status) {
                        let obj = JSON.parse(JSON.stringify(result.data.data));
                        // _this.yfcbAVG = obj.yfcbAVG;
                        // _this.zfcbAVG = obj.zfcbAVG;
                        // _this.zydAVG = obj.zydAVG;
                        // _this.yydAVG = obj.yydAVG;
                        // _this.zzjAVG = obj.zzjAVG;
                        // _this.yzjAVG = obj.yzjAVG;
                        _this.chexing = obj.chexing;
                        _this.czh = obj.czh;
                        _this.czxh = obj.czxh;
                        //_this.clxhFocus = true;
                        _this.zlzdj = obj.zlzdj;
                        _this.ylzdj = obj.ylzdj;
                        _this.wxrw = obj.wxrw;
                        //_this.ldtm = obj.ldtm;
                        _this.zlzzj = obj.zlzzj;
                        _this.ylzzj = obj.ylzzj;
                        _this.zlzA1 = obj.zlzA1;
                        _this.ylzA1 = obj.ylzA1;
                        _this.zlzA2 = obj.zlzA2;
                        _this.ylzA2 = obj.ylzA2;
                        _this.zlzA3 = obj.zlzA3;
                        _this.ylzA3 = obj.ylzA3;
                        _this.zlzB1 = obj.zlzB1;
                        _this.ylzB1 = obj.ylzB1;
                        _this.zlzB2 = obj.zlzB2;
                        _this.ylzB2 = obj.ylzB2;
                        _this.zlzB3 = obj.zlzB3;
                        _this.ylzB3 = obj.ylzB3;
                        _this.zlzC1 = obj.zlzC1;
                        _this.ylzC1 = obj.ylzC1;
                        _this.zlzC2 = obj.zlzC2;
                        _this.ylzC2 = obj.ylzC2;
                        _this.zlzC3 = obj.zlzC3;
                        _this.ylzC3 = obj.ylzC3;
                        _this.zlza = obj.zlza;
                        _this.ylza = obj.ylza;
                        _this.zlzb = obj.zlzb;
                        _this.ylzb = obj.ylzb;
                        _this.zlzc = obj.zlzc;
                        _this.ylzc = obj.ylzc;
                        _this.mttype = obj.mttype;
                        //_this.ldCode = obj.ldCode;
                        //_this.ortherData = obj.ortherData;
                        // if (null != obj.manufacturerArray)
                        //     obj.manufacturerArray.forEach(function(item, index, arr) {
                        //         _this.ManufacturerArray.push({
                        //             label: item,
                        //             value: item
                        //         })
                        //     });
                        // if (null != obj.neworold)
                        //     obj.neworold.forEach(function(item, index, arr) {
                        //         let name = '检修';
                        //         if (item.indexOf('0') > -1) {
                        //             name = '新品';
                        //         }
                        //         if (null == _this.StateArray.find(r => r.value == name)) {
                        //             _this.StateArray.push({
                        //                 label: item,
                        //                 value: name
                        //             })
                        //         }
                        //     });
                        //console.log(obj);
                    } else {
                        uni.showToast({
                            icon: 'none',
                            title: "请求错误:" + result.data.message,
                            duration: 5000
                        });
                        _this.initInfo();
                    }
                }).catch(function(err) {
                    uni.showToast({
                        icon: 'none',
                        title: "请求后台异常,错误信息." + err.errMsg,
                        duration: 5000
                    });
                    _this.initInfo();
                });
            },
            initInfo() {
                // _this.yfcbAVG = '';
                // _this.zfcbAVG = '';
                // _this.zydAVG = '';
                // _this.yydAVG = '';
                // _this.zzjAVG = '';
                // _this.yzjAVG = '';
                _this.cztm = '';
                _this.czh = '';
                _this.chexing = '';
                _this.czxh = '';
                //_this.clxh = '';
                _this.zlzdj = '';
                _this.ylzdj = '';
                _this.wxrw = '';
                //_this.ldtm = '';
                _this.zlzzj = '';
                _this.ylzzj = '';
                _this.zlzA1 = '';
                _this.ylzA1 = '';
                _this.zlzA2 = '';
                _this.ylzA2 = '';
                _this.zlzA3 = '';
                _this.ylzA3 = '';
                _this.zlzB1 = '';
                _this.ylzB1 = '';
                _this.zlzB2 = '';
                _this.ylzB2 = '';
                _this.zlzB3 = '';
                _this.ylzB3 = '';
                _this.zlzC1 = '';
                _this.ylzC1 = '';
                _this.zlzC2 = '';
                _this.ylzC2 = '';
                _this.zlzC3 = '';
                _this.ylzC3 = '';
                _this.zlza = '';
                _this.ylza = '';
                _this.zlzb = '';
                _this.ylzb = '';
                _this.zlzc = '';
                _this.ylzc = '';
                _this.mttype = '';
                //_this.wheelsPosition = '';
                //_this.NOdirection = ''
                //_this.Manufacturer = '';
                //_this.zcState = '';
                //_this.StateArray = [];
                //_this.ldCode = '';
                //_this.ortherData = '';
                //_this.ManufacturerArray = [];
                //_this.$refs.StateSelect.setInput("请选择");
                //_this.$refs.StateSelect.clearItemActive();
                //_this.$refs.ManufacturerSelect.setInput("请选择");
                //_this.$refs.ManufacturerSelect.clearItemActive();
            },
            SaveInfomation() {
                // if (_this.cztm == '') {
                //     uni.showToast({
                //         title: "请扫描车轴信息.",
                //         duration: 5000
                //     });
                //     return;
                // }
                // if (_this.clxh == '') {
                //     uni.showToast({
                //         title: "请输入选配轮型.",
                //         duration: 5000
                //     });
                //     return;
                // }
                // if (_this.yfcbAVG == '' && _this.zfcbAVG == '' &&
                //     _this.zydAVG == '' && _this.yydAVG == '' && _this.zzjAVG == '' &&
                //     _this.yzjAVG == '') {
                //     uni.showToast({
                //         title: "请重新获取轮对选配信息.",
                //         duration: 5000
                //     });
                //     return;
                // }
                uni.showModal({
                    title: '提示',
                    content: '请核对车轴条码是否正确?',
                    success: function(res) {
                        if (res.confirm) {
                            let data = {
                                MainData: {
                                    czh: _this.czh,
                                    chexing: _this.chexing,
                                    cztm: _this.cztm,
                                    czxh: _this.czxh,
                                    //clxh: _this.clxh,
                                    zlzdj: _this.zlzdj,
                                    ylzdj: _this.ylzdj,
                                    wxrw: _this.wxrw,
                                    //ldtm: _this.ldtm,
                                    zlzzj: _this.zlzzj,
                                    ylzzj: _this.ylzzj,
                                    zlzA1: _this.zlzA1,
                                    ylzA1: _this.ylzA1,
                                    zlzA2: _this.zlzA2,
                                    ylzA2: _this.ylzA2,
                                    zlzA3: _this.zlzA3,
                                    ylzA3: _this.ylzA3,
                                    zlzB1: _this.zlzB1,
                                    ylzB1: _this.ylzB1,
                                    zlzB2: _this.zlzB2,
                                    ylzB2: _this.ylzB2,
                                    zlzB3: _this.zlzB3,
                                    ylzB3: _this.ylzB3,
                                    zlzC1: _this.zlzC1,
                                    ylzC1: _this.ylzC1,
                                    zlzC2: _this.zlzC2,
                                    ylzC2: _this.ylzC2,
                                    zlzC3: _this.zlzC3,
                                    ylzC3: _this.ylzC3,
                                    zlza: _this.zlza,
                                    ylza: _this.ylza,
                                    zlzb: _this.zlzb,
                                    ylzb: _this.ylzb,
                                    zlzc: _this.zlzc,
                                    ylzc: _this.ylzc,
                                    mttype: _this.mttype,
                                    //targetStation: _this.targetStation,
                                    wheelsPosition: _this.wheelsPosition,
                                    NOdirection: _this.NOdirection,
                                    //ldCode: _this.ldCode,
                                    //ortherData: _this.ortherData
                                },
                            };
                            _this.$AjaxRequest.Params('post', 'ToAPP/SaveZDPXPInfo',
                                data, _user.token);
                            _this.$AjaxRequest.Request().then(function(result) {
                                if (result.data.status) {
                                    uni.showToast({
                                        title: "预选配成功!",
                                        duration: 5000
                                    });
                                    _this.initInfo();
                                    _this.qrcodeFocus = true;
                                    //_this.clxhFocus = false;
                                } else {
                                    uni.showToast({
                                        icon: 'none',
                                        title: "请求错误:" + result.data.message,
                                        duration: 5000
                                    });
                                }
                            }).catch(function(err) {
                                uni.showToast({
                                    icon: 'none',
                                    title: "请求后台异常,错误信息." + err.errMsg,
                                    duration: 5000
                                });
                            });
                        } else if (res.cancel) {}
                    }
                });
            },
        },
        created: function() {
            // æ¯æ¬¡è¿›å…¥ç•Œé¢æ—¶ï¼Œå…ˆæ¸…除之前的所有定时器,然后启动新的定时器
            clearInterval(this.timer)
            this.timer = null;
            this.setTimer();
            _user = this.$UserTool.UserInfo;
            this.CurrentUser = _user.userName;
            this.UserArray = [this.$UserTool.AllUserInfo];
        },
        destroyed: function() {
            // æ¯æ¬¡ç¦»å¼€å½“前界面时,清除定时器
            clearInterval(this.timer);
            this.timer = null;
        },
        mounted() {
            _this = this;
            _this.qrcodeFocus = true;
            //_this.queryOrder();
        },
    }
</script>
<style scoped lang="scss">
    .tdHeight {
        height: 80rpx;
    }
    .loopView {
        height: 160px;
        background-color: #f0f0f0;
        margin-top: 10px;
    }
    .loopItem {
        margin-top: 5px;
        margin-left: 15px;
    }
    .deleteBtn {
        margin-top: 25px;
        margin-left: 10px;
        width: 120px;
        background-color: orangered;
    }
</style>
ÏîÄ¿´úÂë/PDA/pages/index/index.vue
ÏîÄ¿´úÂë/PDA/pages/index/main.vue
ÎļþÃû´Ó ÏîÄ¿´úÂë/PDA/LDY_PDA/pages/index/main.vue ÐÞ¸Ä
@@ -130,7 +130,7 @@
    }
    .swiper {
        height: 710rpx;
        height: 810rpx;
    }
    .indicator-dots {
ÏîÄ¿´úÂë/PDA/static/image/ReceivingGoodsA.png

ÏîÄ¿´úÂë/PDA/static/image/ReceivingGoodsB.png

ÏîÄ¿´úÂë/PDA/static/image/ReceivingGoodsC.png

ÏîÄ¿´úÂë/PDA/static/image/ReceivingGoodsD.png

ÏîÄ¿´úÂë/PDA/static/image/ReceivingGoodsE.png

ÏîÄ¿´úÂë/PDA/static/image/Test.png

ÏîÄ¿´úÂë/PDA/static/image/appoint.png

ÏîÄ¿´úÂë/PDA/static/image/binding.png

ÏîÄ¿´úÂë/PDA/static/image/boxing1.png

ÏîÄ¿´úÂë/PDA/static/image/boxing2.png

ÏîÄ¿´úÂë/PDA/static/image/callA.png

ÏîÄ¿´úÂë/PDA/static/image/callB.png

ÏîÄ¿´úÂë/PDA/static/image/callC.png

ÏîÄ¿´úÂë/PDA/static/image/callD.png

ÏîÄ¿´úÂë/PDA/static/image/callE.png

ÏîÄ¿´úÂë/PDA/static/image/cancel.png

ÏîÄ¿´úÂë/PDA/static/image/changebox.png

ÏîÄ¿´úÂë/PDA/static/image/changebox1.png

ÏîÄ¿´úÂë/PDA/static/image/check1.png

ÏîÄ¿´úÂë/PDA/static/image/check2.png

ÏîÄ¿´úÂë/PDA/static/image/exp.png

ÏîÄ¿´úÂë/PDA/static/image/forklift.png

ÏîÄ¿´úÂë/PDA/static/image/forkliftB.png

ÏîÄ¿´úÂë/PDA/static/image/in1.png

ÏîÄ¿´úÂë/PDA/static/image/inorder.png

ÏîÄ¿´úÂë/PDA/static/image/lend.png

ÏîÄ¿´úÂë/PDA/static/image/login.png

ÏîÄ¿´úÂë/PDA/static/image/logo.png

ÏîÄ¿´úÂë/PDA/static/image/ortherbox.png

ÏîÄ¿´úÂë/PDA/static/image/out1.png

ÏîÄ¿´úÂë/PDA/static/image/out2.png

ÏîÄ¿´úÂë/PDA/static/image/out3.png

ÏîÄ¿´úÂë/PDA/static/image/out4.png

ÏîÄ¿´úÂë/PDA/static/image/out5.png

ÏîÄ¿´úÂë/PDA/static/image/qualityIn.png

ÏîÄ¿´úÂë/PDA/static/image/qualityOut.png

ÏîÄ¿´úÂë/PDA/static/image/return.png
ÏîÄ¿´úÂë/PDA/static/image/returnbox.png

ÏîÄ¿´úÂë/PDA/static/image/zdp.png
ÏîÄ¿´úÂë/PDA/static/image/zj.png

ÏîÄ¿´úÂë/PDA/static/image/zjjg.png

ÏîÄ¿´úÂë/PDA/static/uni.ttf
Binary files differ
ÏîÄ¿´úÂë/PDA/uni.scss
ÏîÄ¿´úÂë/PDA/unpackage/cache/apk/apkurl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1 @@
https://app.liuyingyong.cn/build/download/19d6de30-2e33-11f0-87be-e330f97cc722
ÏîÄ¿´úÂë/PDA/unpackage/cache/certdata
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
andrCertfile=D:/HBuilderX/plugins/app-safe-pack/Test.keystore
andrCertAlias=android
andrCertPass=ep/Tdjka4Y7WYqDB6/S7dw==
ÏîÄ¿´úÂë/PDA/unpackage/cache/cloudcertificate/certini
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
[General]
andrCertfile=package.keystore
andrCertAlias=__UNI__C823906
andrCertPass="rCgK0GIWGVNfjdvaee2ZkA=="
ÏîÄ¿´úÂë/PDA/unpackage/cache/cloudcertificate/package.keystore
Binary files differ
ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/__uniapperror.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/__uniappsuccess.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsA.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsB.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsC.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsD.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ReceivingGoodsE.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/Test.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/appoint.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/binding.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/boxing1.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/boxing2.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callA.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callB.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callC.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callD.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/callE.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/cancel.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/changebox.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/changebox1.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/check1.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/check2.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/exp.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/forklift.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/forkliftB.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/in1.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/inorder.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/lend.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/login.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/logo.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/ortherbox.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out1.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out2.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out3.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out4.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/out5.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/qualityIn.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/qualityOut.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/return.png
ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/returnbox.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/zdp.png
ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/zj.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/image/zjjg.png

ÏîÄ¿´úÂë/PDA/unpackage/cache/wgt/__UNI__C823906/static/uni.ttf
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/LDY_PDA/static/uni.ttf" copy to "\351\241\271\347\233\256\344\273\243\347\240\201/PDA/unpackage/cache/wgt/__UNI__C823906/static/uni.ttf" Binary files differ
ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/__uniapperror.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/__uniappsuccess.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsA.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsB.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsC.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsD.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/ReceivingGoodsE.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/Test.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/appoint.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/binding.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/boxing1.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/boxing2.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/callA.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/callB.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/callC.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/callD.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/callE.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/cancel.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/changebox.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/changebox1.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/check1.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/check2.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/exp.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/forklift.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/forkliftB.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/in1.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/inorder.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/lend.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/login.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/logo.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/ortherbox.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/out1.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/out2.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/out3.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/out4.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/out5.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/qualityIn.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/qualityOut.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/return.png
ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/returnbox.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/zdp.png
ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/zj.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/image/zjjg.png

ÏîÄ¿´úÂë/PDA/unpackage/dist/build/app-plus/static/uni.ttf
Binary files differ
ÏîÄ¿´úÂë/PDA/unpackage/release/__UNI__6F62323.wgt
Binary files differ
ÏîÄ¿´úÂë/PDA/uview-ui/LICENSE
ÏîÄ¿´úÂë/PDA/uview-ui/README.md
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-action-sheet/u-action-sheet.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-alert-tips/u-alert-tips.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-avatar/u-avatar.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-back-top/u-back-top.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-badge/u-badge.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-button/u-button.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-calendar/u-calendar.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-car-keyboard/u-car-keyboard.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-card/u-card.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-cell-group/u-cell-group.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-cell-item/u-cell-item.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-checkbox-group/u-checkbox-group.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-checkbox/u-checkbox.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-circle-progress/u-circle-progress.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-col/u-col.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-collapse-item/u-collapse-item.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-collapse/u-collapse.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-column-notice/u-column-notice.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-count-down/u-count-down.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-count-to/u-count-to.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-divider/u-divider.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-dropdown-item/u-dropdown-item.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-dropdown/u-dropdown.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-empty/u-empty.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-field/u-field.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-form-item/u-form-item.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-form/u-form.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-full-screen/u-full-screen.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-gap/u-gap.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-grid-item/u-grid-item.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-grid/u-grid.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-icon/u-icon.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-image/u-image.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-index-anchor/u-index-anchor.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-index-list/u-index-list.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-input/u-input.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-keyboard/u-keyboard.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-lazy-load/u-lazy-load.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-line-progress/u-line-progress.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-line/u-line.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-link/u-link.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-loading-page/u-loading-page.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-loading/u-loading.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-loadmore/u-loadmore.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-mask/u-mask.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-message-input/u-message-input.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-modal/u-modal.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-navbar/u-navbar.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-no-network/u-no-network.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-notice-bar/u-notice-bar.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-number-box/u-number-box.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-number-keyboard/u-number-keyboard.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-parse/libs/handler.wxs
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-parse/libs/trees.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-parse/u-parse.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-picker/u-picker.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-popup/u-popup.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-radio-group/u-radio-group.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-radio/u-radio.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-rate/u-rate.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-read-more/u-read-more.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-row-notice/u-row-notice.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-row/u-row.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-search/u-search.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-section/u-section.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-select/u-select.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-skeleton/u-skeleton.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-slider/u-slider.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-steps/u-steps.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-sticky/u-sticky.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-subsection/u-subsection.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-swipe-action/u-swipe-action.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-swiper/u-swiper.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-switch/u-switch.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-tabbar/u-tabbar.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-table/u-table.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-tabs/u-tabs.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-tag/u-tag.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-td/u-td.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-th/u-th.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-time-line-item/u-time-line-item.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-time-line/u-time-line.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-toast/u-toast.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-top-tips/u-top-tips.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-tr/u-tr.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-upload/u-upload.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-verification-code/u-verification-code.vue
ÏîÄ¿´úÂë/PDA/uview-ui/components/u-waterfall/u-waterfall.vue
ÏîÄ¿´úÂë/PDA/uview-ui/index.scss
ÏîÄ¿´úÂë/PDA/uview-ui/libs/css/color.scss
ÏîÄ¿´úÂë/PDA/uview-ui/libs/css/common.scss
ÏîÄ¿´úÂë/PDA/uview-ui/libs/css/style.components.scss
ÏîÄ¿´úÂë/PDA/uview-ui/libs/css/style.h5.scss
ÏîÄ¿´úÂë/PDA/uview-ui/libs/css/style.mp.scss
ÏîÄ¿´úÂë/PDA/uview-ui/libs/css/style.nvue.scss
ÏîÄ¿´úÂë/PDA/uview-ui/libs/css/style.vue.scss
ÏîÄ¿´úÂë/PDA/uview-ui/theme.scss
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo
Binary files differ
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Release/net6.0/WIDESEAWCS_BasicInfoRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Dt_StationManagerService.cs
@@ -1,4 +1,5 @@
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_ISystemServices;
using WIDESEAWCS_Model.Models;
@@ -13,5 +14,39 @@
        {
            _sys_ConfigService = sys_ConfigService;
        }
        public WebResponseContent GetStation()
        {
            return WebResponseContent.Instance.OK(data: BaseDal.QueryData(x => x.stationRemark == "AGV放货站台").ToList());
        }
        public WebResponseContent UpdateStation(SaveModel saveModel)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                string stationid = saveModel.MainData["stationid"].ToString();
                string stationLoc = stationid == "1" ? "2033" : "2043";
                Dt_StationManager dt_Station = BaseDal.QueryFirst(x => x.stationLocation == stationLoc);
                if (dt_Station.stationStatus == "0")
                {
                    dt_Station.stationStatus = "1";
                }
                else
                {
                    dt_Station.stationStatus = "0";
                }
                BaseDal.UpdateData(dt_Station);
                return content.OK();
            }
            catch (Exception ex)
            {
                return content.Error("错误信息:" + ex);
                throw;
            }
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Partial/Method.cs
@@ -3,6 +3,7 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.DeviceBase;
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Release/net6.0/WIDESEAWCS_BasicInfoService.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs
@@ -46,6 +46,10 @@
        /// ç§»åº“检测
        /// </summary>
        public const string TransferCheck = "TransferCheck";
        /// <summary>
        /// å…¥åº“移库检测
        /// </summary>
        public const string InTransferCheck = "InTransferCheck";
        /// <summary>
        /// æ›´æ–°æµ‹é‡ä»»åŠ¡
@@ -53,5 +57,20 @@
        public const string UpdateCheckTask = "UpdateCheckTask";
        public const string RequestWheelsFlow = "RequestWheelsFlow";
        /// <summary>
        /// è½¦è½´ä¸Šæ–™ç”³è¯·
        /// </summary>
        public const string RequestAxleloading = "RequestAxleloading";
        /// <summary>
        /// è½¦è½´ä¸‹æ–™çŠ¶æ€ï¼Œagv状态
        /// </summary>
        public const string UpdateAxleCurrentStatue = "UpdateAxleCurrentStatue";
        /// <summary>
        /// ç”³è¯·agv任务
        /// </summary>
        public const string genAgvSchedulingTask = "genAgvSchedulingTask";
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Release/net6.0/WIDESEAWCS_DTO.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Release/net6.0/WIDESEAWCS_IBasicInfoRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/IDt_StationManagerService.cs
@@ -17,6 +17,7 @@
#endregion << ç‰ˆ æœ¬ æ³¨ é‡Š >>
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Model.Models;
@@ -39,5 +40,18 @@
        /// <param name="area"></param>
        /// <returns></returns>
        Dt_StationManager GetStationInfoByChildCode(string ChildCode, string area);
        /// <summary>
        /// èŽ·å–agv缓存台信息
        /// </summary>
        /// <returns></returns>
        WebResponseContent GetStation();
        /// <summary>
        /// ä¿®æ”¹AGV站台信息
        /// </summary>
        /// <returns></returns>
        WebResponseContent UpdateStation(SaveModel saveModel);
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Release/net6.0/WIDESEAWCS_IBasicInfoService.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_IProcessService/obj/Release/net6.0/WIDESEAWCS_IProcessService.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Release/net6.0/WIDESEAWCS_ISystemRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Release/net6.0/WIDESEAWCS_ISystemServices.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Release/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -96,6 +96,13 @@
        Dt_Task? OutBeforeCheck(int taskNum);
        /// <summary>
        /// å…¥åº“前 ç§»åº“检测
        /// </summary>
        /// <param name="taskNum"></param>
        /// <returns></returns>
        Dt_Task? InBeforeCheck(int taskNum);
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号、当前地址查询输送线未执行的任务
        /// </summary>
        /// <param name="deviceNo">设备编号</param>
@@ -290,5 +297,39 @@
        /// <param name="deviceNo"></param>
        /// <returns></returns>
        Dt_Task QueryExcutingTask(string deviceNo);
        /// <summary>
        /// è½¦è½´ä¸Šæ–™ç”³è¯·ï¼Œåé¦ˆæ¡ç è‡³è¾“送线
        /// </summary>
        /// <returns></returns>
        WebResponseContent GetFeedbackAxleloading();
        /// <summary>
        /// è½¦è½´çº¿ä¸‹æ–™å£ï¼Œè½¦è½´åˆ°ä½åŽè¾“送线申请
        /// </summary>
        /// <param name="CZTM"></param>
        /// <returns></returns>
        WebResponseContent UpdateAxleCurrentStatue(string CZTM);
        /// <summary>
        /// ç”³è¯·agv任务
        /// </summary>
        /// <param name="TargetAddress"></param>
        /// <returns></returns>
        WebResponseContent GetAGVTaskdistribution(string TargetAddress);
        /// <summary>
        /// å†™å…¥è¾“送线反馈信息
        /// </summary>
        /// <param name="TargetAddress"></param>
        /// <returns></returns>
        WebResponseContent SetPlcResponState(string TargetAddress);
        /// <summary>
        /// å†™å…¥è¾“送线反馈信息
        /// </summary>
        /// <param name="TargetAddress"></param>
        /// <returns></returns>
        WebResponseContent GetPlcState(string TargetAddress);
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Release/net6.0/WIDESEAWCS_ITaskInfoService.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/Release/net6.0/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/Release/net6.0/WIDESEAWCS_ITaskInfo_HtyService.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -199,5 +199,11 @@
        ///</summary>
        [SugarColumn(ColumnName = "WheelsLX", Length = 255, ColumnDescription = "轮型")]
        public string WheelsLX { get; set; }
        /// <summary>
        /// è½¦è½®åŽ»å‘åœ°å€
        ///</summary>
        [SugarColumn(ColumnName = "Towhereabouts", Length = 20, ColumnDescription = "车轮去向地址")]
        public string Towhereabouts { get; set; }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs
@@ -187,5 +187,11 @@
        ///</summary>
        [SugarColumn(ColumnName = "wheels_mttype", Length = 255, ColumnDescription = "动拖属性")]
        public string wheels_mttype { get; set; }
        /// <summary>
        /// è½¦è½®åŽ»å‘åœ°å€
        ///</summary>
        [SugarColumn(ColumnName = "Towhereabouts", Length = 20, ColumnDescription = "车轮去向地址")]
        public string Towhereabouts { get; set; }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Release/net6.0/WIDESEAWCS_Model.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Release/net6.0/WIDESEAWCS_IProcessRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Release/net6.0/WIDESEAWCS_ProcessRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessService/obj/Release/net6.0/WIDESEAWCS_ProcessService.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs
@@ -67,10 +67,9 @@
            QuartzLogger.WriteLogToFile($"Info_{fileName}", builder.ToString());
        }
        public void WriteError(string fileName, string msg, Exception ex)
        public void WriteError(string fileName,Exception ex)
        {
            StringBuilder builder = new StringBuilder(msg);
            builder.Append(Environment.NewLine);
            StringBuilder builder = new StringBuilder();
            builder.Append(StringResources.Language.ExceptionMessage);
            builder.Append(ex.Message);
            builder.Append(Environment.NewLine);
@@ -85,9 +84,7 @@
            builder.Append(Environment.NewLine);
            builder.Append(StringResources.Language.ExceptionTargetSite);
            builder.Append(ex.TargetSite?.ToString());
            builder.Append(Environment.NewLine);
            builder.Append(Environment.NewLine);
            QuartzLogger.WriteLogToFile($"Error_{fileName}", builder.ToString());
            string log = builder.ToString();
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Release/net6.0/WIDESEAWCS_QuartzJob.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -54,5 +54,28 @@
        {
            return Service.RollbackTaskStatusToLast(taskNum);
        }
        /// <summary>
        /// å†™å…¥è¾“送线反馈
        /// </summary>
        /// <param name="TargetAddress"></param>
        /// <returns></returns>
        [HttpPost, Route("SetPlcResponState"), AllowAnonymous]
        public WebResponseContent SetPlcResponState([FromBody] string TargetAddress)
        {
            return Service.SetPlcResponState(TargetAddress);
        }
        /// <summary>
        /// è¯»å–输送线输送线反馈
        /// </summary>
        /// <param name="TargetAddress"></param>
        /// <returns></returns>
        [HttpPost, Route("GetPlcState"), AllowAnonymous]
        public WebResponseContent GetPlcState([FromBody] string TargetAddress)
        {
            return Service.GetPlcState(TargetAddress);
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Log/È«¾ÖÒì³£´íÎóÈÕÖ¾_1743004371.log
@@ -18,3 +18,23 @@
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
--------------------------------
2025/5/29 10:16:38|
Unable to cast object of type 'WIDESEAWCS_QuartzJob.CommonConveyorLine' to type 'WIDESEAWCS_QuartzJob.CommonStackerCrane'.
【自定义错误】:Unable to cast object of type 'WIDESEAWCS_QuartzJob.CommonConveyorLine' to type 'WIDESEAWCS_QuartzJob.CommonStackerCrane'.
【异常类型】:InvalidCastException
【异常信息】:Unable to cast object of type 'WIDESEAWCS_QuartzJob.CommonConveyorLine' to type 'WIDESEAWCS_QuartzJob.CommonStackerCrane'.
【堆栈调用】:   at WIDESEAWCS_TaskInfoService.TaskService.GetPlcState(String TargetAddress) in F:\外出项目\广州动车段(轮对压项目)\LunDuiYa\项目代码\WCS\WIDESEAWCS_Server\WIDESEAWCS_TaskInfoService\TaskService.cs:line 969
   at Castle.Proxies.Invocations.ITaskService_GetPlcState.InvokeMethodOnTarget()
   at Castle.DynamicProxy.AbstractInvocation.Proceed()
   at Castle.Proxies.IService`1Proxy_3.GetPlcState(String TargetAddress)
   at WIDESEAWCS_WCSServer.Controllers.Task.TaskController.GetPlcState(String TargetAddress) in F:\外出项目\广州动车段(轮对压项目)\LunDuiYa\项目代码\WCS\WIDESEAWCS_Server\WIDESEAWCS_Server\Controllers\Task\TaskController.cs:line 78
   at lambda_method792(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -19,6 +19,7 @@
  //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True",
  //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  //"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  "ConnectionString": "Data Source=172.21.1.139;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=Admin123;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
  //跨域
  "Cors": {
    "PolicyName": "CorsIpAccess", //策略名称
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Release/net6.0/WIDESEAWCS_SignalR.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Release/net6.0/WIDESEAWCS_SystemRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Release/net6.0/WIDESEAWCS_SystemServices.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Release/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs
@@ -74,6 +74,66 @@
            }
        }
        /// <summary>
        /// æ ¹æ®æ‰˜ç›˜å·ã€èµ·å§‹åœ°å€å‘WMS请求任务(入库版本)
        /// </summary>
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <returns></returns>
        public Dt_Task? InBeforeCheck(int taskNum)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.InTransferCheck)?.ConfigValue;
                if (wmsBase == null || requestTask == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var wmsIpAddrss = wmsBase + requestTask;
                var result = HttpHelper.Post(wmsIpAddrss, new { taskNum = taskNum }.ToJsonString());
                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                if (!content.Status)
                {
                    // wms失败
                    throw new Exception();
                }
                //todo ä¼˜åŒ– å¦‚未查询到任务则处理
                //if (content.Data != null)
                //{
                var task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToString());
                Dt_Task? Relocationtask = null;
                if (task.TaskNum != taskNum)
                {
                    BaseDal.AddData(task);
                    Relocationtask = BaseDal.QueryFirst(x => x.TaskNum == task.TaskNum);
                }
                //}
                if (Relocationtask != null)
                {
                    return task;
                }
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw new Exception($"请求异常:{ex.Message}");
            }
        }
        #region æ ¹æ®æ‰˜ç›˜å·ã€ç«™å°å‘WMS请求任务
        /// <summary>
        /// æ ¹æ®æ‰˜ç›˜å·ã€ç«™å°å‘WMS请求任务
@@ -213,7 +273,13 @@
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                {
                    var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay);
                    task.TaskState = (int)TaskOutStatusEnum.OutNew;
                    if (task.SourceAddress == "2009")
                    {
                        task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
                    }
                    task.CurrentAddress = taskDTO.RoadWay;
                    task.NextAddress = stationinfo.stationChildCode;
                    task.SourceAddress = taskDTO.SourceAddress;
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -4,6 +4,7 @@
using Newtonsoft.Json;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Common;
@@ -18,9 +19,12 @@
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.DeviceBase;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_QuartzJob.DTO;
namespace WIDESEAWCS_TaskInfoService
{
@@ -95,6 +99,7 @@
                    task.wheels_mttype = item.wheels_mttype;
                    task.WheelsNewOrOld = item.WheelsNewOrOld;
                    task.WheelsLX = item.WheelsLX;
                    // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå‡ºåº“ä»»åŠ¡
                    if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
@@ -103,12 +108,23 @@
                        List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress);
                        if (routers.Count > 0)
                        {
                            // è®¾ç½®ä»»åŠ¡çŠ¶æ€ä¸ºå‡ºåº“æ–°å»º
                            task.TaskState = (int)TaskOutStatusEnum.OutNew;
                            task.TaskState =(int)TaskOutStatusEnum.OutNew;
                            // è®¾ç½®å½“前地址为源地址
                            task.CurrentAddress = item.SourceAddress;
                            // è®¾ç½®ä¸‹ä¸€ä¸ªåœ°å€ä¸ºç¬¬ä¸€ä¸ªå­ä½ç½®
                            task.NextAddress = routers.FirstOrDefault().ChildPosi;
                            if (item.SourceAddress == "2009")
                            {
                                task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
                                // è®¾ç½®ä¸‹ä¸€ä¸ªåœ°å€ä¸ºç¬¬ä¸€ä¸ªå­ä½ç½®
                                task.NextAddress = "2015";
                            }
                        }
                        else
                        {
@@ -825,5 +841,156 @@
        }
        #endregion é‡å†™æ–¹æ³•
        //===========================车轴上料=====================
        public WebResponseContent GetFeedbackAxleloading()
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestAxleloading)?.ConfigValue;
                if (wmsBase == null || completeTask == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var wmsIpAddress = wmsBase + completeTask;
                var taskDto = new RequestTaskDto()
                {
                    PalletCode = "1",
                };
                var result = HttpHelper.PostAsync(wmsIpAddress,taskDto.ToJsonString()).Result;
                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                return content;
            }
            catch (Exception ex)
            {
                return content.Error($"{ex.Message}");
            }
        }
        public WebResponseContent UpdateAxleCurrentStatue(string CZTM)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateAxleCurrentStatue)?.ConfigValue;
                if (wmsBase == null || completeTask == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var wmsIpAddress = wmsBase + completeTask;
                var keys = new Dictionary<string, object>()
                {
                    {"CZTM", CZTM}
                };
                var taskDto = new RequestTaskDto()
                {
                    PalletCode = CZTM,
                };
                var result = HttpHelper.PostAsync(wmsIpAddress, taskDto.ToJsonString()).Result;
                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                return content;
            }
            catch (Exception ex)
            {
                return content.Error($"{ex.Message}");
            }
        }
        public WebResponseContent GetAGVTaskdistribution(string TargetAddress)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.genAgvSchedulingTask)?.ConfigValue;
                if (wmsBase == null || completeTask == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var wmsIpAddress = wmsBase + completeTask;
                var taskDto = new RequestTaskDto()
                {
                    Position = TargetAddress,
                };
                var result = HttpHelper.PostAsync(wmsIpAddress, taskDto.ToJsonString()).Result;
                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                return content;
            }
            catch (Exception ex)
            {
                return content.Error($"{ex.Message}");
            }
        }
        public WebResponseContent SetPlcResponState(string TargetAddress)
        {
            try
            {
                IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1000");
                CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
                DeviceProDTO? deviceProDTOt = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == TargetAddress && x.DeviceProParamName == "ResponState");
                if (conveyorLine.Communicator.Write(deviceProDTOt.DeviceProAddress, (short)2))
                {
                    Console.Out.WriteLine("成功!写出车轴线末端agv取货完成信号:2");
                    return WebResponseContent.Instance.OK();
                }
                else
                {
                    bool st= conveyorLine.Communicator.Write(deviceProDTOt.DeviceProAddress, (short)3);
                    Console.Out.WriteLine($"写出车轴线末端agv取货完成信号失败信息,写入:3,是否成功:{st}");
                    return WebResponseContent.Instance.Error();
                }
            }
            catch (Exception ex)
            {
                Console.Out.WriteLine($"写出车轴线末端agv取货完成信号失败信息,故障信息:{ex.Message}");
                return WebResponseContent.Instance.Error();
            }
        }
        public WebResponseContent GetPlcState(string TargetAddress)
        {
            Dt_StationManager dt_Station=_stationManagerRepository.QueryFirst(x => x.stationLocation == TargetAddress);
            if(dt_Station == null)
                return WebResponseContent.Instance.Error("未找到压装位信息!");
            if(dt_Station.stationStatus=="0")
                return WebResponseContent.Instance.Error("该压装位已被禁用!不可生成agv任务");
            IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1000");
            CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
            DeviceProDTO? deviceProDTOt = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == TargetAddress && x.DeviceProParamName == "ConveyorLineSingal");
            DeviceProDTO? deviceProDTOt2 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == TargetAddress && x.DeviceProParamName == "ResponState");
            if (conveyorLine.Communicator.Read<short>(deviceProDTOt.DeviceProAddress)==1)
            {
                conveyorLine.Communicator.Write(deviceProDTOt2.DeviceProAddress,(short)1);
                return WebResponseContent.Instance.OK();
            }
            else
            {
                conveyorLine.Communicator.Write(deviceProDTOt2.DeviceProAddress, (short)2);
                return WebResponseContent.Instance.Error("读取到压装位信号反馈不可放货!不可生成agv任务");
            }
        }
    }
}
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Release/net6.0/WIDESEAWCS_TaskInfoService.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/Release/net6.0/WIDESEAWCS_TaskInfo_HtyRepository.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/Release/net6.0/WIDESEAWCS_TaskInfo_HtyService.csproj.CopyComplete
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -85,9 +85,12 @@
                if (conveyorLine != null)
                {
                    List<Dt_StationManager> stationManagers = _stationManagerService.GetAllStationByDeviceCode(conveyorLine.DeviceCode);
                    ConveyorLineTaskCommand command2 = new ConveyorLineTaskCommand();
                    foreach (var station in stationManagers)
                    {
                        ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode);
                        DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == command.ConveyorLineSingal.ToString());
@@ -140,11 +143,12 @@
            }
            catch (Exception ex)
            {
                //WriteError("CommonConveyorLineJob", ex);
                Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString());
            }
            finally
            {
                //WriteDebug("CommonConveyorLineJob", "test");
                WriteDebug("CommonConveyorLineJob", "test");
                //Console.Out.WriteLine(DateTime.Now);
            }
            return;
@@ -174,7 +178,17 @@
                    if (task != null)
                    {
                        conveyorLine.SetValue(ConveyorLineDBName.Number, task.PalletCode, stationInfo.stationChildCode);
                        conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
                        if ((task.TargetAddress == "2042" || task.TargetAddress == "2032") && task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                        {
                            conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
                        }
                        else
                        {
                            conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
                        }
                        //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
                        conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
                        _taskService.UpdateTaskStatusToNext(task);
@@ -189,7 +203,16 @@
            else
            {
                conveyorLine.SetValue(ConveyorLineDBName.Number, taskNew.PalletCode, stationInfo.stationChildCode);
                conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
                if ((taskNew.TargetAddress == "2042" || taskNew.TargetAddress == "2032") && taskNew.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
                {
                    conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.TargetAddress, stationInfo.stationChildCode);
                }
                else
                {
                    conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
                }
                //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
                _taskService.UpdateTaskStatusToNext(taskNew);
@@ -321,30 +344,41 @@
                //根据车轴缓存位置 å†™å…¥å¯¹åº”目标地址
                if (task.TargetAddress == stationInfo.stationChildCode)
                {
                    WebResponseContent content = _taskService.RequestWheelsFlow(task.task_CZInfo).Result;
                    //WebResponseContent content = _taskService.RequestWheelsFlow(task.task_CZInfo).Result;
                    WebResponseContent content = _taskService.RequestWheelsFlow(task.PalletCode).Result;
                    if (content.Status)
                    {
                        string taraddress = content.Data.ToString(); // "2032";
                        string taraddress = content.Data.ToString(); // "2032";SourceAddress
                        conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taraddress, stationInfo.stationChildCode);
                        conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
                        _taskService.UpdateTaskStatusToNext(task);
                        bool k1 = conveyorLine.SetValue(ConveyorLineDBName.SourceAddress, "2021", stationInfo.stationChildCode);
                        bool k2= conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taraddress, stationInfo.stationChildCode);
                        bool k3= conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
                        WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task);
                        Console.Out.WriteLine($"读取到输送线申请,申请条码:{command.Number},反馈至输送线信息====起始地址:{k1},目标地址“{k2},反馈信号:{k3},任务修改状态:{k4.Status}))");
                    }
                    else
                    {
                        conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
                        Console.Out.WriteLine($"读取到输送线申请,申请条码:{command.Number},向WMS申请去向失败,原因:{content.Message},写入申诉信故障:2");
                    }
                }
                else
                {
                    conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
                    conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
                    _taskService.UpdateTaskStatusToNext(task);
                    bool k1= conveyorLine.SetValue(ConveyorLineDBName.SourceAddress, "2021", stationInfo.stationChildCode);
                    bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
                    bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
                    WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task);
                    Console.Out.WriteLine($"读取到输送线申请,申请条码:{command.Number},反馈至输送线信息====起始地址:{k1},目标地址“{k2},反馈信号:{k3},任务修改状态:{k4.Status}))");
                }
            }
            else
            {
                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
                Console.Out.WriteLine($"读取到输送线申请,申请条码:{command.Number},未找到,写入申诉信故障:2");
            }
            //_taskService.UpdatePosition(task.TaskNum, stationInfo.stationChildCode);
        }
@@ -359,15 +393,16 @@
        /// <param name="ProtocalDetailValue">线体当前bool读取偏移地址</param>
        public void RequestCZInfo(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
        {
            var task = _taskService.QueryExecutingTaskByBarcode(command.Number, stationInfo.stationChildCode);
            if (task == null)
            WebResponseContent content = _taskService.GetFeedbackAxleloading();
            if (content.Status)
            {
                //todo  æŸ¥è¯¢WMS车轴数据返回
                Random random = new Random(20);
                string cztm = "CZ00" + random.Next();
                //conveyorLine
                //conveyorLine.SetValue(ConveyorLineDBName.Number, cztm, stationInfo.stationChildCode);
                conveyorLine.SetValue(ConveyorLineDBName.Number, content.Data.ToString(), stationInfo.stationChildCode);
                conveyorLine.SetValue(ConveyorLineDBName.CarType,"001", stationInfo.stationChildCode);
                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
            }
            else
            {
                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
            }
        }
@@ -380,11 +415,38 @@
        /// <param name="ProtocalDetailValue">线体当前bool读取偏移地址</param>
        public void RequestTakeCZ(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
        {
            var task = _taskService.QueryExecutingTaskByBarcode(command.Number, stationInfo.stationChildCode);
            if (task == null)
            WebResponseContent content = _taskService.UpdateAxleCurrentStatue(command.Number);
            if (content.Status)
            {
                //conveyorLine
                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
                Console.Out.WriteLine("成功!写出车轴线末端生成agv取货任务,反馈输送线信号:1");
            }
            /*else
            {
                var log = $"【{conveyorLine.DeviceName}】,车轴条码:{command.Number},更新失败原因:{content.Message}";
                WriteInfo(conveyorLine.DeviceName, log);
                conveyorLine.SetValue(ConveyorLineDBName.ResponState, 3, stationInfo.stationChildCode);
            }*/
        }
        /// <summary>
        /// agv站台申请取料
        /// </summary>
        /// <param name="conveyorLine">输送线实例对象</param>
        /// <param name="command">读取的请求信息</param>
        /// <param name="childDeviceCode">子设备编号</param>
        /// <param name="ProtocalDetailValue">线体当前bool读取偏移地址</param>
        public void RequestagvStation(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
        {
            DeviceProDTO? deviceProDTOt = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == "3022" && x.DeviceProParamName == "Number");
            string Number = conveyorLine.Communicator.Read<string>(deviceProDTOt.DeviceProAddress);
            if (Number != "" && Number!=null)
            {
                //调取wms接口申请agv任务
                WebResponseContent content = _taskService.GetAGVTaskdistribution(stationInfo.stationLocation);
            }
        }
        #endregion
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs
@@ -62,7 +62,7 @@
        public string CarType { get; set; }
        /// <summary>
        /// è½¦è½®å·
        /// æ¡ç 
        /// </summary>
        [DataLength(40)]
        public string Number { get; set; }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -140,7 +140,7 @@
            }
            catch (Exception ex)
            {
                WriteError("CommonConveyorLineJob", "test", ex);
                WriteError("CommonConveyorLineJob", ex);
                ConsoleHelper.WriteErrorLine($"{ex.Message}");
                //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString());
            }
@@ -264,6 +264,17 @@
            {
                task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
            }
            if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
            {
                var relocation = _taskService.InBeforeCheck(task.TaskNum);
                if (relocation != null)
                {
                    return relocation;
                }
            }
            return task;
        }
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Release/net6.0/WIDESEAWCS_Tasks.csproj.CopyComplete
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/HandTask/ManualOutboundTask.vue
@@ -8,8 +8,8 @@
        <el-form-item label="站台" prop="station">
          <el-select v-model="form.station" placeholder="请选择下料口">
            <el-option label="上料口(2009)" value="2009" />
            <el-option label="左侧下料口(2032)" value="2032" />
            <el-option label="右侧下料口(2042)" value="2042" />
            <el-option label="1号压装机(2032)" value="2032" />
            <el-option label="2号压装机(2042)" value="2042" />
          </el-select>
        </el-form-item>
      </el-form>
@@ -41,15 +41,16 @@
      form: {
        palletCode: "",
        station: "",
        outtype:""
      },
      show: false,
    };
  },
  methods: {
    open(palletCode) {
    open(palletCode,outtype) {
      this.show = true;
      this.form.palletCode = palletCode;
      this.form.outtype = outtype;
    },
    submit() {
      this.$emit("parentCall", ($vue) => {
@@ -68,6 +69,7 @@
            MainData: {
              station: this.form.station,
              palletCode: this.form.palletCode,
              outtype:this.form.outtype,
            },
          };
        this.http.post("/api/Task/CreateAndSendOutboundTask",parm, true).then((x) => {
@@ -77,6 +79,7 @@
            this.$Message.success("成功");
            this.form.palletCode='';
            this.form.station='';
            this.form.outtype='';
            this.show = false;
            $vue.refresh();
          }
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/taskinfo/Dt_Task_Hty.jsx
@@ -23,6 +23,30 @@
  methods: {
    //下面这些方法可以保留也可以删除
    onInit() {
      var btnHandOutbound = this.buttons.find(x => x.value == "HandRollback");
      if (btnHandOutbound != null) {
        btnHandOutbound.onClick = function () {
          let row = this.$refs.table.getSelected() //获取选中的行
          if (row <= 0) {
            //如果没有选中行
            this.$Message.error('请选择一行数据')
            return
          }
          let TaskId = row[0].taskId
          this.http.get(`/api/Task_Hty/TaskRollback?input=${TaskId}`, {}, "正在回滚任务").then((res) => {
            //示例:调用后台接口
            if (res.status) {
              this.$Message.success('任务完成');
              this.refresh();
            } else {
              this.$Message.error(res.message) //错误提示
              this.refresh();
            }
          })
        }
      }
      //框架初始化配置前,
      // let TaskHandCompleteBtn=this.buttons.find(x=>x.value=='TaskHandComplete');
      // if(TaskHandCompleteBtn){
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/Home.vue
@@ -1,219 +1,90 @@
<template>
  <div class="home-contianer">
  <div class="qhuan">
    <div v-for="item in datalist">
      <div v-if="item.stationLocation === '2033'">
        <el-button class="bun1" type="success" v-if="item.stationStatus === '1'"
          v-on:click="selectss(1)">1号压装机</el-button>
        <el-button class="bun1" type="danger" v-if="item.stationStatus === '0'"
          v-on:click="selectss(1)">1号压装机</el-button>
        <p>
          2号压装机 :
          <el-tag type="success" v-if="item.stationStatus === '1'">启用</el-tag>
          <el-tag type="danger" v-if="item.stationStatus === '0'">禁用</el-tag>
        </p>
      </div>
      <div v-if="item.stationLocation === '2043'">
        <el-button class="bun2" type="success" v-if="item.stationStatus === '1'"
          v-on:click="selectss(2)">2号压装机</el-button>
        <el-button class="bun2" type="danger" v-if="item.stationStatus === '0'"
          v-on:click="selectss(2)">2号压装机</el-button>
        <p>
          1号压装机 :
          <el-tag type="success" v-if="item.stationStatus === '1'">启用</el-tag>
          <el-tag type="danger" v-if="item.stationStatus === '0'">禁用</el-tag>
        </p>
      </div>
    </div>
  </div>
</template>
<script>
import { ref, onMounted, onUnmounted } from 'vue';
import axios from 'axios';
export default {
  components: {},
  data() {
    return {
      datalist: [],
      url: "http://192.168.12.189/:8098/api/",
    };
  },
  mounted() {
    // setInterval(() => {
    this.AddTask();
    // }, 5000);
  },
  created() {
    // this.AddTask();
    // this.selList();
  },
  methods: {
    //切换
    selectss(selvelue) {
      
      n: 90,
      value1: '1',
    };
      axios.post("http://172.21.1.139:9291/api/StationManager/UpdateStation",{MainData: {
                        stationid: selvelue,
                    }})
        .then(response => {
          if(response.data.status){
            this.AddTask();
          }else{
            alert(selvelue)
          }
        })
    },
    AddTask() {
      axios.post("http://172.21.1.139:9291/api/StationManager/GetStation")
        .then(response => {
          if(response.status){
              this.datalist = response.data.data;
          }
        })
    }
  },
  setup() {
    let open = (item) => {
      window.open(item.url, '_blank');
    };
    let interval;
    onMounted(() => {
      // interval = setInterval(() => {
      //   chart2.xAxis[0].data.splice(0, 1);
      //   let lastYear =
      //     chart2.xAxis[0].data[chart2.xAxis[0].data.length - 1] * 1 + 1;
      //   chart2.xAxis[0].data.push(lastYear);
      //   chart2.series[0].data.splice(0, 1);
      //   chart2.series[0].data.push(~~(Math.random() * 1000));
      //   chart2.series[1].data.splice(0, 1);
      //   chart2.series[1].data.push(~~(Math.random() * 1000));
      //   $chart2.setOption(chart2);
      // }, 2000);
    });
    onUnmounted(() => {
    });
    return { open };
  },
  destroyed() {
  props: {
    value: String
  }
};
// window.addEventListener("resize", function () {
//   $chart2.setOption(chart2);
// });
}
</script>
<style lang="less" scoped>
.home-contianer {
  padding: 6px;
  background: #eee;
  width: 100%;
  height: 100%;
  // max-width: 800px;
  // position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: 0 auto;
  .h-top {
    display: flex;
    .h-top-left {
      height: 100%;
      width: 300px;
      background: white;
    }
    height: 300px;
  }
  .h-top > div {
    border: 1px solid #e8e7e7;
    border-radius: 5px;
    // margin: 6px;
  }
  .h-top-center {
    height: 100%;
    background: white;
    margin: 0 6px;
    display: flex;
    flex-direction: column;
    flex: 1;
    .item1 .num {
      padding-top: 28px;
    }
    .item2 .num {
      padding-bottom: 20px;
    }
    .n-item {
      width: 100%;
      height: 100%;
      text-align: center;
      cursor: pointer;
      // display: flex;
      .item {
        border-right: 1px solid #e5e5e5;
        width: 33.3333333%;
        float: left;
        height: 50%;
        border-bottom: 1px solid #e5e5e5;
        padding: 47px 0;
        font-size: 13px;
      }
      .item:hover {
        background: #f9f9f9;
        cursor: pointer;
      }
      .item:last-child {
        border-right: 0;
      }
      .item3,
      .item6 {
        border-right: 0;
      }
      .num {
        word-break: break-all;
        color: #282727;
        font-size: 30px;
        transition: transform 0.8s;
      }
      .num:hover {
        color: #55ce80;
        transform: scale(1.2);
      }
      .text {
        font-size: 13px;
        color: #777;
      }
    }
  }
  .h-top-right {
    // flex: 1;
    width: 400px;
    height: 100%;
    background: white;
  }
  .h3 {
    padding: 7px 15px;
    font-weight: 500;
    background: #fff;
    border-bottom: 1px dotted #d4d4d4;
  }
}
.task-table {
  table {
    width: 100%;
    .thead {
      font-weight: bold;
    }
    tr {
      cursor: pointer;
      td {
        border-bottom: 1px solid #f3f3f3;
        padding: 9px 8px;
        font-size: 12px;
      }
    }
    tr:hover {
      background: #eee;
    }
  }
}
.h-chart {
  height: 340px;
  margin: 6px 0px;
  display: flex;
  .h-left-grid {
    width: 300px;
    height: 100%;
    background: white;
    display: inline-block;
    .name {
      margin-left: 7px;
    }
    .item:hover {
      background: #f9f9f9;
      cursor: pointer;
    }
    .item {
      padding: 22px 14px;
      float: left;
      width: 50%;
      height: 33.33333%;
      border-bottom: 1px solid #eee;
      border-right: 1px solid #eee;
      i {
        font-size: 30px;
      }
      .desc {
        font-size: 12px;
        color: #c3c3c3;
        padding: 5px 0 0 4px;
        line-height: 1.5;
      }
    }
  }
}
#h-chart2 {
  border-radius: 3px;
  background: white;
  padding-top: 10px;
  height: 100%;
  width: 0;
  flex: 1;
  margin: 0 7px;
}
#h-chart3 {
  border-radius: 3px;
  padding: 10px 10px 0 10px;
  background: white;
  // padding-top: 10px;
  height: 100%;
  width: 400px;
}
</style>
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_SelectionStandards.vue
@@ -24,6 +24,7 @@
            sortName: "id"
        });
        const editFormFields = ref({
            "id":"",
            "carType": "",
            "mttype": "",
            "neworold": "",
@@ -58,7 +59,7 @@
        ]);
        const searchFormFields = ref({
            "carType":"",
            mttype:""
            "mttype":""
        });
        const searchFormOptions = ref([
            [
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_CZInfo_mes.vue
@@ -16,7 +16,7 @@
export default defineComponent({
    setup() {
        const table = ref({
            key: 'id',
            key: 'ID',
            footer: "Foots",
            cnName: '车轴信息',
            name: 'inbound/Dt_CZInfo_mes',
@@ -24,22 +24,24 @@
            sortName: "id"
        });
        const editFormFields = ref({
            "Wheels_code": "",
            "Wheels_ldxh": "",
            "Wheels_mttype": "",
            "gkcc": "",
            wheels_NewOrOld:""
             "id": "",
            // "CHEXING": "",
            // "MTTYPE": "",
             "CZTM":"",
            "CurrentStatue":'',
        });
        const editFormOptions = ref([
            // [
            //     { "title": "车轴条码", "field": "CZTM", type: "text" },
            //     { "title": "车型", "field": "CHEXING", type: "text" },
            //     { "title": "动拖属性(M/T)", "field": "MTTYPE", type: "text" },
            // ],
            [
                { "title": "车轴条码", "field": "CZTM", type: "text" },
                { "title": "车型", "field": "CHEXING", type: "text" },
                { "title": "动拖属性(M/T)", "field": "MTTYPE", type: "text" },
                { "title": "车轴号", "field": "cztm", type: "string" },
            ],
            [
                { "title": "车轴号", "field": "czh", type: "text" },
                { "title": "轮对条码", "field": "LDTM", "type": "select",dataKey:"NewOld",data:[] },
            ]
                { "title": "状态", "field": "currentStatue", "type": "select",dataKey:"InboundState",data:[] },
            ],
        ]);
        const searchFormFields = ref({
            CZTM: ""
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_CZInfo_mes_hty.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wms/invoices/Dt_InboundOrder.js此处编写
 -->
<template>
    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
        :table="table" :extend="extend">
    </view-grid>
</template>
<script>
import extend from "@/extension/widesea_wms/inbound/Dt_CZInfo_mes_hty.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
    setup() {
        const table = ref({
            key: 'id',
            footer: "Foots",
            cnName: '车轴信息',
            name: 'inbound/Dt_CZInfo_mes_hty',
            url: "/Dt_CZInfo_mes_hty/",
            sortName: "id"
        });
        const editFormFields = ref({
            "Wheels_code": "",
            "Wheels_ldxh": "",
            "Wheels_mttype": "",
            "gkcc": "",
            wheels_NewOrOld:""
        });
        const editFormOptions = ref([
            [
                { "title": "车轴条码", "field": "CZTM", type: "text" },
                { "title": "车型", "field": "CHEXING", type: "text" },
                { "title": "动拖属性(M/T)", "field": "MTTYPE", type: "text" },
            ],
            [
                { "title": "车轴号", "field": "czh", type: "text" },
                { "title": "轮对条码", "field": "LDTM", "type": "select",dataKey:"NewOld",data:[] },
            ]
        ]);
        const searchFormFields = ref({
            cztm:"",
            chexing:"",
            ldtm:"",
            currentStatue:"",
            mttype:"",
            czxh:"",
            createDate:"",
        });
        const searchFormOptions = ref([
            [
                { "title": "车轴条码", "field": "cztm", type: "text" },
                { "title": "车型", "field": "chexing", type: "select", dataKey: "traintype_names", data: [] },
                //{ "title": "库存类型", "field": "StockType", type: "select", dataKey: "GroupType", data: [] },
                { "title": "轮对条码", "field": "ldtm", type: "text" },
            ],
            [
                { "title": "状态", "field": "currentStatue", type: "select", dataKey: "InboundState", data: [] },
                { "title": "动拖属性", "field": "mttype", type: "text" },
                { "title": "车轴型号", "field": "czxh", type: "text" },
            ],
            [
                { "title": "创建时间", "field": "createDate", type: "datetime" },
            ]
        ]);
        const columns = ref([
            { field: 'id', title: '主键ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
            { field: 'cztm', title: '车轴条码', type: 'string', width: 110, align: 'left' },
            { field: 'czh', title: '车轴号', type: 'string', width: 110, align: 'left' },
            { field: 'ldtm', title: '轮对条码', type: 'string', width: 110, align: 'left' },
            { field: 'currentStatue', title: '状态', type: 'string', width: 75, align: 'left',bind: { key: "InboundState", data: [] } },
            { field: 'chexing', title: '车型', type: 'string', width: 100, align: 'left' },
            { field: 'czxh', title: '车轴型号', type: 'int', width: 110, align: 'left' },
            { field: 'mttype', title: '动/拖', type: 'string', width: 60, align: 'left' },
            { field: 'zlzdj', title: '左轮座等级', type: 'string', width: 100, align: 'left' },
            { field: 'ylzdj', title: '右轮座等级', type: 'string', width: 100, align: 'left' },
            { field: 'zlzzj', title: '左轮座直径', type: 'string', width: 100, align: 'left' },
            { field: 'ylzzj', title: '右轮座直径', type: 'string', width: 100, align: 'left' },
            { field: 'zlza', title: '左轮座直径A', type: 'string', width: 100, align: 'left' },
            { field: 'zlzb', title: '左轮座直径B', type: 'string', width: 100, align: 'left' },
            { field: 'zlzc', title: '左轮座直径C', type: 'string', width: 100, align: 'left' },
            { field: 'ylza', title: '右轮座直径A', type: 'string', width: 100, align: 'left' },
            { field: 'ylzb', title: '右轮座直径B', type: 'string', width: 100, align: 'left' },
            { field: 'ylzc', title: '右轮座直径C', type: 'string', width: 100, align: 'left' },
            { field: 'creater', title: '创建人', type: 'string', width: 100, align: 'left' },
            { field: 'createDate', title: '创建时间', type: 'datetime', sort: true, width: 100, align: 'left' },
        ]);
        const detail = ref({
            cnName: "#detailCnName",
            table: "#detailTable",
            columns: [],
            sortName: "",
            key: ""
        });
        return {
            table,
            extend,
            editFormFields,
            editFormOptions,
            searchFormFields,
            searchFormOptions,
            columns,
            detail,
        };
    },
});
</script>
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_InWheels_mes_hty.vue
@@ -29,15 +29,32 @@
        const editFormOptions = ref([
        ]);
        const searchFormFields = ref({});
        const searchFormFields = ref({
            Wheels_code:"",
            Wheels_CarType:"",
            wheels_ldxh:"",
            wheels_NewOrOld:"",
            wheels_mttype:"",
            wheelsProps:"",
            wheels_level:"",
            creater:"",
        });
        const searchFormOptions = ref([
            [
                { "title": "车轮号", "field": "Wheels_Num", type: "text" },
                { "title": "车轮条码", "field": "Wheels_code", type: "text" },
                { "title": "车型", "field": "Wheels_CarType", type: "select", dataKey: "traintype_names", data: [] },
                //{ "title": "库存类型", "field": "StockType", type: "select", dataKey: "GroupType", data: [] },
                { "title": "轮型", "field": "wheels_ldxh", type: "text" },
            ],
            // [
            // { "title": "生产产线", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },
            // ]
            [
                { "title": "新/旧", "field": "wheels_NewOrOld", type: "select", dataKey: "NewOld", data: [] },
                { "title": "动拖属性", "field": "wheels_mttype", type: "text" },
                { "title": "属性", "field": "wheelsProps", type: "text" },
            ],
            [
                { "title": "等级", "field": "wheels_level", type: "text" },
                { "title": "创建时间", "field": "creater", type: "datetime" },
            ]
        ]);
        const columns = ref([
        { field: 'wheels_ID', title: '主键ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_InZdp_mes.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,106 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wms/invoices/Dt_InboundOrder.js此处编写
 -->
<template>
    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
        :table="table" :extend="extend">
    </view-grid>
</template>
<script>
import extend from "@/extension/widesea_wms/inbound/Dt_InZdp_mes.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
    setup() {
        const table = ref({
            key: 'zdp_ID',
            footer: "Foots",
            cnName: '制动盘信息',
            name: 'inbound/Dt_InZdp_mes',
            url: "/Dt_InZdp_mes/",
            sortName: "zdp_ID"
        });
        const editFormFields = ref({
            "Wheels_code": "",
            "Wheels_ldxh": "",
            "Wheels_mttype": "",
            "gkcc": "",
            "wheels_NewOrOld":""
        });
        const editFormOptions = ref([
            [
                { "title": "制动盘号", "field": "Zdp_ZPH", type: "text" },
                { "title": "车型", "field": "Zdp_chexing", type: "text" },
                { "title": "动拖属性(M/T)", "field": "Wheels_mttype", type: "text" },
            ],
            [
                { "title": "毂孔均值", "field": "gkcc", type: "text" },
                { "title": "新/旧", "field": "Zdp_neworold", "type": "select",dataKey:"NewOld",data:[] },
                { "title": "等级", "field": "wheels_level", "type": "select",dataKey:"Level",data:[] }
            ]
        ]);
        const searchFormFields = ref({
            Zdp_ZPH: ""
        });
        const searchFormOptions = ref([
            [
                { "title": "制动盘号", "field": "Zdp_ZPH", type: "text" },
            ],
            // [
            // { "title": "生产产线", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },
            // ]
        ]);
        const columns = ref([
            { field: 'zdp_ID', title: '主键ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
            { field: 'zdp_code', title: '制动盘条码', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_ZPH', title: '制动盘号', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_CurrentStatue', title: '状态', type: 'int', width: 110, align: 'left', bind: { key: "whelInboundState", data: [] } },
            { field: 'zdp_chexing', title: '车型', type: 'string', width: 70, align: 'left' },
            { field: 'zdp_neworold', title: '新旧', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_POS', title: '位置(ä¾§/中)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSXH', title: '螺栓型号', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_MAT', title: '材质(铸钢)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_SITE', title: '产地(进口/国产)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA1', title: '毂孔直径A1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA2', title: '毂孔直径A2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA3', title: '毂孔直径A3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA', title: '毂孔直径A', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB1', title: '毂孔直径B1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB2', title: '毂孔直径B2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB3', title: '毂孔直径B3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB', title: '毂孔直径B', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC1', title: '毂孔直径C1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC2', title: '毂孔直径C2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC3', title: '毂孔直径C3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC', title: '毂孔直径C', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKJZ', title: '毂孔直径', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSCSYMH', title: '螺栓侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_LMCSYMH', title: '螺母侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_rksj', title: '入库日期', type: 'string', width: 100, align: 'left' }
        ]);
        const detail = ref({
            cnName: "#detailCnName",
            table: "#detailTable",
            columns: [],
            sortName: "",
            key: ""
        });
        return {
            table,
            extend,
            editFormFields,
            editFormOptions,
            searchFormFields,
            searchFormOptions,
            columns,
            detail,
        };
    },
});
</script>
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/inbound/Dt_InZdp_mes_hty.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wms/invoices/Dt_InboundOrder.js此处编写
 -->
<template>
    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
        :table="table" :extend="extend">
    </view-grid>
</template>
<script>
import extend from "@/extension/widesea_wms/inbound/Dt_InZdp_mes_hty.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
    setup() {
        const table = ref({
            key: 'zdp_ID',
            footer: "Foots",
            cnName: '制动盘历史信息',
            name: 'inbound/Dt_InZdp_mes_hty',
            url: "/Dt_InZdp_mes_hty/",
            sortName: "zdp_ID"
        });
        const editFormFields = ref({
            "Wheels_code": "",
            "Wheels_ldxh": "",
            "Wheels_mttype": "",
            "gkcc": "",
            "wheels_NewOrOld":""
        });
        const editFormOptions = ref([
            [
                { "title": "制动盘号", "field": "Zdp_ZPH", type: "text" },
                { "title": "车型", "field": "Zdp_chexing", type: "text" },
                { "title": "动拖属性(M/T)", "field": "Wheels_mttype", type: "text" },
            ],
            [
                { "title": "毂孔均值", "field": "gkcc", type: "text" },
                { "title": "新/旧", "field": "Zdp_neworold", "type": "select",dataKey:"NewOld",data:[] },
                { "title": "等级", "field": "wheels_level", "type": "select",dataKey:"Level",data:[] }
            ]
        ]);
        const searchFormFields = ref({
            Zdp_ZPH: ""
        });
        const searchFormOptions = ref([
            [
                { "title": "制动盘号", "field": "Zdp_ZPH", type: "text" },
            ],
            // [
            // { "title": "生产产线", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },
            // ]
        ]);
        const columns = ref([
            { field: 'zdp_ID', title: '主键ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
            { field: 'zdp_ZPH', title: '制动盘号', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_CurrentStatue', title: '状态', type: 'int', width: 110, align: 'left', bind: { key: "InboundState", data: [] } },
            { field: 'zdp_chexing', title: '车型', type: 'string', width: 70, align: 'left' },
            { field: 'zdp_neworold', title: '新旧', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_POS', title: '位置(ä¾§/中)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSXH', title: '螺栓型号', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_MAT', title: '材质(铸钢)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_SITE', title: '产地(进口/国产)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA1', title: '毂孔直径A1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA2', title: '毂孔直径A2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA3', title: '毂孔直径A3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA', title: '毂孔直径A', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB1', title: '毂孔直径B1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB2', title: '毂孔直径B2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB3', title: '毂孔直径B3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB', title: '毂孔直径B', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC1', title: '毂孔直径C1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC2', title: '毂孔直径C2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC3', title: '毂孔直径C3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC', title: '毂孔直径C', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKJZ', title: '毂孔直径', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSCSYMH', title: '螺栓侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_LMCSYMH', title: '螺母侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_rksj', title: '入库日期', type: 'string', width: 100, align: 'left' },
            { field: 'creater', title: '创建时间', type: 'string', width: 100, align: 'left' },
            { field: 'createDate', title: '创建时间', type: 'datetime', sort: true, width: 100, align: 'left' },
            { field: 'finishDate', title: '完成时间', type: 'datetime', sort: true, width: 100, align: 'left' },
            { field: 'operateType', title: '完成方式', type: 'int', width: 100, align: 'left',bind: { key: "OperateType", data: [] }  },
        ]);
        const detail = ref({
            cnName: "#detailCnName",
            table: "#detailTable",
            columns: [],
            sortName: "",
            key: ""
        });
        return {
            table,
            extend,
            editFormFields,
            editFormOptions,
            searchFormFields,
            searchFormOptions,
            columns,
            detail,
        };
    },
});
</script>
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/outbound/Dt_OutWheels_hty.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,121 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wms/invoices/Dt_InboundOrder.js此处编写
 -->
<template>
    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
        :table="table" :extend="extend">
    </view-grid>
</template>
<script>
import extend from "@/extension/widesea_wms/outbound/Dt_OutWheels_hty.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
    setup() {
        const table = ref({
            key: 'wheels_ID',
            footer: "Foots",
            cnName: '车轮信息',
            name: 'outbound/Dt_OutWheels_hty',
            url: "/Dt_OutWheels_hty/",
            sortName: "wheels_ID"
        });
        const editFormFields = ref({
            "Wheels_code": "",
            "Wheels_ldxh": "",
            "Wheels_mttype": "",
            "gkcc": "",
            wheels_NewOrOld:""
        });
        const editFormOptions = ref([
            [
                { "title": "车轮条码", "field": "Wheels_code", type: "text" },
                { "title": "车型", "field": "Wheels_ldxh", type: "text" },
                { "title": "动拖属性(M/T)", "field": "Wheels_mttype", type: "text" },
            ],
            [
                { "title": "毂孔均值", "field": "gkcc", type: "text" },
                { "title": "新/旧", "field": "wheels_NewOrOld", "type": "select",dataKey:"NewOld",data:[] },
                { "title": "等级", "field": "wheels_level", "type": "select",dataKey:"Level",data:[] }
            ]
        ]);
        const searchFormFields = ref({
            Wheels_code:"",
            Wheels_CarType:"",
            wheels_ldxh:"",
            wheels_NewOrOld:"",
            wheels_mttype:"",
            wheelsProps:"",
            wheels_level:"",
            creater:"",
        });
        const searchFormOptions = ref([
            [
                { "title": "车轮条码", "field": "Wheels_code", type: "text" },
                { "title": "车型", "field": "Wheels_CarType", type: "select", dataKey: "traintype_names", data: [] },
                //{ "title": "库存类型", "field": "StockType", type: "select", dataKey: "GroupType", data: [] },
                { "title": "轮型", "field": "wheels_ldxh", type: "text" },
            ],
            [
                { "title": "新/旧", "field": "wheels_NewOrOld", type: "select", dataKey: "NewOld", data: [] },
                { "title": "动拖属性", "field": "wheels_mttype", type: "text" },
                { "title": "属性", "field": "wheelsProps", type: "text" },
            ],
            [
                { "title": "等级", "field": "wheels_level", type: "text" },
                { "title": "创建时间", "field": "creater", type: "datetime" },
            ]
        ]);
        const columns = ref([
            { field: 'wheels_ID', title: '主键ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
            { field: 'wheels_code', title: '车轮码', type: 'string', width: 110, align: 'left' },
            //{ field: 'wheels_SequenceNum', title: '序列号', type: 'string', width: 110, align: 'left', sort: true, link: true, },
            { field: 'wheels_Num', title: '车轮号', type: 'string', width: 110, align: 'left' },
            { field: 'wheels_Type', title: '类型(è½®/盘)', type: 'string', width: 110, align: 'left' },
            { field: 'wheels_ldxh', title: '轮型', type: 'string', width: 110, align: 'left' },
            { field: 'wheels_CurrentStatue', title: '状态', type: 'int', width: 110, align: 'left', bind: { key: "InboundState", data: [] } },
            { field: 'wheels_ldtm', title: '轮对条码', type: 'string', width: 120, align: 'left' },
            { field: 'wheels_CarType', title: '车型', type: 'string', width: 70, align: 'left' },
            { field: 'wheels_psj', title: '配属局', type: 'string', width: 100, align: 'left' },
            { field: 'wheels_CarNo', title: '车组', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_ldh', title: '轮对号', type: 'string', sort: true, width: 100, align: 'left' },
            //{ field: 'wheels_WheelsType', title: '轮型', type: 'string',  width: 100, align: 'left' },
            { field: 'wheels_mttype', title: '动拖属性', type: 'string', width: 100, align: 'left' },
            { field: 'wheels_NewOrOld', title: '新旧类型', type: 'string', width: 100, align: 'left',bind: { key: "NewOld", data: []} },
            { field: 'wheelsProps', title: '属性', type: 'string', width: 100, align: 'left' },
            { field: 'wheels_level', title: '等级', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_gkzja', title: '毂孔a界面均值', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_gkzjb', title: '毂孔b界面均值', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_gkzjc', title: '毂孔c界面均值', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_gkcc', title: '毂孔均值', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_ljz', title: '轮径值', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_ygljz', title: '预估轮径值', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_LYH', title: '轮缘', type: 'string',  width: 100, align: 'left' },
            { field: 'wheels_InDate', title: '入库日期', type: 'string', width: 100, align: 'left' },
            { field: 'creater', title: '创建时间', type: 'string', width: 100, align: 'left' },
            { field: 'createDate', title: '创建时间', type: 'datetime', sort: true, width: 100, align: 'left' },
        ]);
        const detail = ref({
            cnName: "#detailCnName",
            table: "#detailTable",
            columns: [],
            sortName: "",
            key: ""
        });
        return {
            table,
            extend,
            editFormFields,
            editFormOptions,
            searchFormFields,
            searchFormOptions,
            columns,
            detail,
        };
    },
});
</script>
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/outbound/Dt_OutZdp_hty.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wms/invoices/Dt_InboundOrder.js此处编写
 -->
<template>
    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
        :table="table" :extend="extend">
    </view-grid>
</template>
<script>
import extend from "@/extension/widesea_wms/outbound/Dt_OutZdp_hty.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
    setup() {
        const table = ref({
            key: 'zdp_ID',
            footer: "Foots",
            cnName: '制动盘信息',
            name: 'outbound/Dt_OutZdp_hty',
            url: "/Dt_OutZdp_hty/",
            sortName: "zdp_ID"
        });
        const editFormFields = ref({
        });
        const editFormOptions = ref([
        ]);
        const searchFormFields = ref({
            //Zdp_ZPH: ""
        });
        const searchFormOptions = ref([
            // [
            //     { "title": "制动盘号", "field": "Zdp_ZPH", type: "text" },
            // ],
            // [
            // { "title": "生产产线", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },Zdp_code
            // ]
        ]);
        const columns = ref([
            { field: 'zdp_ID', title: '主键ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
            { field: 'zdp_code', title: '制动盘条码', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_ZPH', title: '制动盘号', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_Location', title: '库位', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_chexing', title: '车型', type: 'string', width: 70, align: 'left' },
            { field: 'zdp_neworold', title: '新旧', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_POS', title: '位置(ä¾§/中)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSXH', title: '螺栓型号', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_MAT', title: '材质(铸钢)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_SITE', title: '产地(进口/国产)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA1', title: '毂孔直径A1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA2', title: '毂孔直径A2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA3', title: '毂孔直径A3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA', title: '毂孔直径A', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB1', title: '毂孔直径B1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB2', title: '毂孔直径B2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB3', title: '毂孔直径B3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB', title: '毂孔直径B', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC1', title: '毂孔直径C1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC2', title: '毂孔直径C2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC3', title: '毂孔直径C3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC', title: '毂孔直径C', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKJZ', title: '毂孔直径', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSCSYMH', title: '螺栓侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_LMCSYMH', title: '螺母侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_rksj', title: '入库日期', type: 'string', width: 100, align: 'left' }
        ]);
        const detail = ref({
            cnName: "#detailCnName",
            table: "#detailTable",
            columns: [],
            sortName: "",
            key: ""
        });
        return {
            table,
            extend,
            editFormFields,
            editFormOptions,
            searchFormFields,
            searchFormOptions,
            columns,
            detail,
        };
    },
});
</script>
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_WheelsStock.vue
@@ -28,18 +28,32 @@
        const editFormOptions = ref([
        ]);
        const searchFormFields = ref({
            wheels_Location:""
            Wheels_code:"",
            Wheels_CarType:"",
            wheels_ldxh:"",
            wheels_NewOrOld:"",
            wheels_mttype:"",
            wheelsProps:"",
            wheels_level:"",
            createDate:"",
            wheels_Location:"",
        });
        const searchFormOptions = ref([
            [
                { "title": "车轮条码", "field": "Wheels_code", type: "text" },
                { "title": "车型", "field": "Wheels_CarType", type: "select", dataKey: "traintype_names", data: [] },
                //{ "title": "库存类型", "field": "StockType", type: "select", dataKey: "GroupType", data: [] },
                { "title": "轮型", "field": "wheels_ldxh", type: "text" },
            ],
            [
                { "title": "新/旧", "field": "wheels_NewOrOld", type: "select", dataKey: "NewOld", data: [] },
                { "title": "动拖属性", "field": "wheels_mttype", type: "text" },
                { "title": "属性", "field": "wheelsProps", type: "text" },
            ],
            [
                { "title": "等级", "field": "wheels_level", type: "text" },
                { "title": "创建时间", "field": "createDate", type: "datetime" },
                { "title": "库位号", "field": "wheels_Location", type: "text" },
            ]
        ]);
        const columns = ref([
@@ -70,7 +84,7 @@
            { field: 'wheels_ljz', title: '轮径值', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_ygljz', title: '预估轮径值', type: 'string', sort: true, width: 100, align: 'left' },
            { field: 'wheels_InDate', title: '入库日期', type: 'string',width: 100, align: 'left' },
            { field: 'creater', title: '创建时间', type: 'string',  width: 100, align: 'left' },
            { field: 'creater', title: '创建人', type: 'string',  width: 100, align: 'left' },
            { field: 'createDate', title: '创建时间', type: 'datetime', sort: true, width: 100, align: 'left' },
        ]);
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_WheelsStock_Old.vue
@@ -28,18 +28,29 @@
        const editFormOptions = ref([
        ]);
        const searchFormFields = ref({
            wheels_Location:""
            wheel_code:"",
            model:"",
            axes_type:"",
            repair_item:"",
            wheels_mttype:"",
            dqtz_state:"",
            venderno:"",
            wheels_Location:"",
        });
        const searchFormOptions = ref([
            [
                { "title": "车轮条码", "field": "wheel_code", type: "text" },
                { "title": "车型", "field": "model", type: "text" },
                { "title": "车型", "field": "model", type: "select", dataKey: "traintype_names", data: [] },
                //{ "title": "库存类型", "field": "StockType", type: "select", dataKey: "GroupType", data: [] },
                { "title": "轮型", "field": "axes_type", type: "text" },
            ],
            [
                { "title": "库位号", "field": "locate", type: "text" },
                { "title": "新/旧", "field": "repair_item", type: "select", dataKey: "NewOld", data: [] },
                { "title": "动拖属性", "field": "dqtz_state", type: "text" },
               { "title": "等级", "field": "venderno", type: "text" },
            ],
            [
                { "title": "库位号", "field": "wheels_Location", type: "text" },
            ]
        ]);
        const columns = ref([
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_WheelsStock_hty.vue
@@ -29,16 +29,33 @@
        const editFormOptions = ref([
        ]);
        const searchFormFields = ref({});
        const searchFormFields = ref({
            Wheels_code:"",
            Wheels_CarType:"",
            wheels_ldxh:"",
            wheels_NewOrOld:"",
            wheels_mttype:"",
            wheelsProps:"",
            wheels_level:"",
            creater:"",
            wheels_Location:"",
        });
        const searchFormOptions = ref([
            [
                { "title": "车轮条码", "field": "Wheels_code", type: "text" },
                { "title": "车型", "field": "Wheels_CarType", type: "select", dataKey: "StockState", data: [] },
                { "title": "库存类型", "field": "StockType", type: "select", dataKey: "GroupType", data: [] },
                { "title": "车型", "field": "Wheels_CarType", type: "select", dataKey: "traintype_names", data: [] },
                //{ "title": "库存类型", "field": "StockType", type: "select", dataKey: "GroupType", data: [] },
                { "title": "轮型", "field": "wheels_ldxh", type: "text" },
            ],
            [
            // { "title": "生产产线", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },
                { "title": "新/旧", "field": "wheels_NewOrOld", type: "select", dataKey: "NewOld", data: [] },
                { "title": "动拖属性", "field": "wheels_mttype", type: "text" },
                { "title": "属性", "field": "wheelsProps", type: "text" },
            ],
            [
                { "title": "等级", "field": "wheels_level", type: "text" },
                { "title": "创建时间", "field": "creater", type: "datetime" },
                { "title": "库位号", "field": "wheels_Location", type: "text" },
            ]
        ]);
        const columns = ref([
@@ -62,7 +79,8 @@
            { field: 'creater', title: '创建时间', type: 'string',  width: 100, align: 'left' },
            { field: 'createDate', title: '创建时间', type: 'datetime', sort: true, width: 100, align: 'left' },
            { field: 'finishWheelDate', title: '完成时间', type: 'datetime', sort: true, width: 100, align: 'left' },
            { field: 'operateType', title: '完成方式', type: 'int', width: 100, align: 'left',bind: { key: "OperateType", data: [] } },
            { field: 'operateType', title: '完成方式', type: 'int', width: 100, align: 'left',bind: { key: "OperateType", data: [] }
        },
        ]);
        const detail = ref({
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_ZdpStock.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wms/invoices/Dt_InboundOrder.js此处编写
 -->
<template>
    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
        :table="table" :extend="extend">
    </view-grid>
</template>
<script>
import extend from "@/extension/widesea_wms/stock/Dt_ZdpStock.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
    setup() {
        const table = ref({
            key: 'zdp_ID',
            footer: "Foots",
            cnName: '制动盘信息',
            name: 'stock/Dt_ZdpStock',
            url: "/Dt_ZdpStock/",
            sortName: "zdp_ID"
        });
        const editFormFields = ref({
        });
        const editFormOptions = ref([
        ]);
         const searchFormFields = ref({
            zdp_code:"",
            zdp_chexing:"",
            zdp_POS:"",
            zdp_neworold:"",
            createDate:"",
            zdp_Location:"",
        });
        const searchFormOptions = ref([
            [
                { "title": "制动盘条码", "field": "zdp_code", type: "text" },
                { "title": "车型", "field": "zdp_chexing", type: "select", dataKey: "traintype_names", data: [] },
                //{ "title": "库存类型", "field": "StockType", type: "select", dataKey: "GroupType", data: [] },
                { "title": "位置(ä¾§/中)", "field": "zdp_POS", type: "text" },
            ],
            [
                { "title": "新/旧", "field": "zdp_neworold", type: "select", dataKey: "NewOld", data: [] },
                { "title": "创建时间", "field": "createDate", type: "datetime" },
                { "title": "库位号", "field": "zdp_Location", type: "text" },
            ],
        ]);
        const columns = ref([
            { field: 'zdp_ID', title: '主键ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
            { field: 'zdp_code', title: '制动盘条码', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_ZPH', title: '制动盘号', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_CurrentStatue', title: '状态', type: 'int', width: 110, align: 'left', bind: { key: "CurrentStatue", data: [] } },
            { field: 'zdp_Location', title: '库位', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_chexing', title: '车型', type: 'string', width: 70, align: 'left' },
            { field: 'zdp_neworold', title: '新旧', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_POS', title: '位置(ä¾§/中)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSXH', title: '螺栓型号', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_MAT', title: '材质(铸钢)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_SITE', title: '产地(进口/国产)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA1', title: '毂孔直径A1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA2', title: '毂孔直径A2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA3', title: '毂孔直径A3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA', title: '毂孔直径A', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB1', title: '毂孔直径B1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB2', title: '毂孔直径B2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB3', title: '毂孔直径B3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB', title: '毂孔直径B', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC1', title: '毂孔直径C1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC2', title: '毂孔直径C2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC3', title: '毂孔直径C3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC', title: '毂孔直径C', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKJZ', title: '毂孔直径', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSCSYMH', title: '螺栓侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_LMCSYMH', title: '螺母侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_rksj', title: '入库日期', type: 'string', width: 100, align: 'left' },
            { field: 'creater', title: '创建人', type: 'string',  width: 100, align: 'left' },
            { field: 'createDate', title: '创建时间', type: 'datetime', sort: true, width: 100, align: 'left' },
        ]);
        const detail = ref({
            cnName: "#detailCnName",
            table: "#detailTable",
            columns: [],
            sortName: "",
            key: ""
        });
        return {
            table,
            extend,
            editFormFields,
            editFormOptions,
            searchFormFields,
            searchFormOptions,
            columns,
            detail,
        };
    },
});
</script>
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_ZdpStock_hty.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
<!--
*Author:jxx
 *Contact:283591387@qq.com
 *代码由框架生成,任何更改都可能导致被代码生成器覆盖
 *业务请在@/extension/widesea_wms/invoices/Dt_InboundOrder.js此处编写
 -->
<template>
    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
        :table="table" :extend="extend">
    </view-grid>
</template>
<script>
import extend from "@/extension/widesea_wms/stock/Dt_ZdpStock_hty.js";
import { ref, defineComponent } from "vue";
export default defineComponent({
    setup() {
        const table = ref({
            key: 'zdp_ID',
            footer: "Foots",
            cnName: '制动盘库存历史信息',
            name: 'stock/Dt_ZdpStock_hty',
            url: "/Dt_ZdpStock_hty/",
            sortName: "zdp_ID"
        });
        const editFormFields = ref({
        });
        const editFormOptions = ref([
        ]);
        const searchFormFields = ref({
            //Zdp_ZPH: ""
        });
        const searchFormOptions = ref([
            // [
            //     { "title": "制动盘号", "field": "Zdp_ZPH", type: "text" },
            // ],
            // [
            // { "title": "生产产线", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },Zdp_code
            // ]
        ]);
        const columns = ref([
            { field: 'zdp_ID', title: '主键ID', type: 'int', width: 110, readonly: true, hidden: true, require: true, align: 'left' },
            { field: 'zdp_code', title: '制动盘条码', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_ZPH', title: '制动盘号', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_CurrentStatue', title: '状态', type: 'int', width: 110, align: 'left', bind: { key: "CurrentStatue", data: [] } },
            { field: 'zdp_Location', title: '库位', type: 'string', width: 110, align: 'left', require: true },
            { field: 'zdp_chexing', title: '车型', type: 'string', width: 70, align: 'left' },
            { field: 'zdp_neworold', title: '新旧', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_POS', title: '位置(ä¾§/中)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSXH', title: '螺栓型号', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_MAT', title: '材质(铸钢)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_SITE', title: '产地(进口/国产)', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA1', title: '毂孔直径A1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA2', title: '毂孔直径A2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA3', title: '毂孔直径A3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKA', title: '毂孔直径A', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB1', title: '毂孔直径B1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB2', title: '毂孔直径B2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB3', title: '毂孔直径B3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKB', title: '毂孔直径B', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC1', title: '毂孔直径C1', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC2', title: '毂孔直径C2', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC3', title: '毂孔直径C3', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKC', title: '毂孔直径C', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_GKJZ', title: '毂孔直径', type: 'string', width: 100, align: 'left' },
            { field: 'zdp_LSCSYMH', title: '螺栓侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_LMCSYMH', title: '螺母侧剩余磨耗', type: 'string', width: 120, align: 'left' },
            { field: 'zdp_rksj', title: '入库日期', type: 'string', width: 100, align: 'left' },
            { field: 'creater', title: '创建时间', type: 'string',  width: 100, align: 'left' },
            { field: 'createDate', title: '创建时间', type: 'datetime', sort: true, width: 100, align: 'left' },
            { field: 'finishDate', title: '完成时间', type: 'datetime', sort: true, width: 100, align: 'left' },
            { field: 'operateType', title: '完成方式', type: 'int', width: 100, align: 'left',bind: { key: "OperateType", data: [] } }
        ]);
        const detail = ref({
            cnName: "#detailCnName",
            table: "#detailTable",
            columns: [],
            sortName: "",
            key: ""
        });
        return {
            table,
            extend,
            editFormFields,
            editFormOptions,
            searchFormFields,
            searchFormOptions,
            columns,
            detail,
        };
    },
});
</script>
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/SelectionWheels.vue
@@ -47,6 +47,7 @@
            cltm:"",
            cztm:"",
            location:"",
            createDate:""
        });
        const searchFormOptions = ref([
@@ -60,6 +61,9 @@
            [
                { "title": "库位号", "field": "location", type: "text" },
                
            ],
            [
                { "title": "创建时间", "field": "createDate", type: "datetime" },
            ]
        ]);
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue
@@ -23,10 +23,25 @@
            sortName: "TaskId"
        });
        const editFormFields = ref({
            taskState:""
        });
        const editFormOptions = ref([
        [
            { "title": "任务状态", "field": "taskState", type: "select", dataKey: "TaskStatus", data: [] },
        ]
        ]);
        const searchFormFields = ref({
            taskNum:"",
            palletCode:"",
            taskType:"",
            taskState:"",
            sourceAddress:"",
            currentAddress:"",
            nextAddress:"",
            targetAddress:"",
            roadway:"",
            creater:"",
            createDate:"",
        });
        const searchFormOptions = ref([
            [
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue
@@ -42,11 +42,22 @@
            ],
        ]);
        const searchFormFields = ref({
            taskNum:"",
            palletCode:"",
            taskType:"",
            taskState:"",
            sourceAddress:"",
            currentAddress:"",
            nextAddress:"",
            targetAddress:"",
            roadway:"",
            creater:"",
            CreateDate:"",
        });
        const searchFormOptions = ref([
            [
                { "title": "任务号", "field": "taskNum", "type": "text" },
                { "title": "托盘号", "field": "palletCode", "type": "text" },
                { "title": "任务号", "field": "taskNum", "type": "like" },
                { "title": "车轮条码", "field": "palletCode", "type": "like" },
                { "title": "任务类型", "field": "taskType", "type": "select", dataKey: "TaskType", data: [] },
                { "title": "任务状态", "field": "taskState", "type": "select", dataKey: "TaskStatus", data: [] },
@@ -59,14 +70,13 @@
            ],
            [
                { "title": "巷道", "field": "roadway", type: "text" },
                { "title": "task_CZInfo", "field": "车轴", type: "text" },
                { "title": "创建人", "field": "creater", type: "text" },
                { "title": "创建时间", "field": "createDate", type: "datetime" },
                { "title": "创建时间", "field": "CreateDate", type: "datetime" },
            ],
        ]);
        const columns = ref([{ field: 'TaskId', title: '主键', type: 'string', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
        { field: 'taskNum', title: '任务号', type: 'int', width: 110, align: 'left', sort: true },
        { field: 'palletCode', title: '条码', type: 'string', width: 150, align: 'left' },
        { field: 'palletCode', title: '车轮条码', type: 'string', width: 150, align: 'left' },
        { field: 'pnboundNo', title: '单据号', type: 'string', width: 110, align: 'left' ,hidden: true},
        { field: 'groupID', title: '库存ID', type: 'int', width: 110, hidden: true, align: 'left' },
        { field: 'groupDetailId', title: '组盘明细ID', type: 'int', width: 110, hidden: true, align: 'left' },
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v7.bin
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v7.bin
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/DesignTimeBuild/.dtbcache.v2
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin
Binary files differ
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Common/AGVInterface/Respon/AGVResponBase.cs
@@ -26,6 +26,6 @@
        /// <summary>
        /// å“åº”数据
        /// </summary>
        public object data { get; set; }
        //public object data { get; set; }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Common/AGVTask/agvTask.cs
@@ -125,4 +125,50 @@
        /// </summary>
        public string eqpCode { get; set; }
    }
    public class ContainerTask
    {
        public string action { get; set; }
        public string areaCode { get; set; }
        public string berthCode { get; set; }
        public string callCode { get; set; }
        public string callTyp { get; set; }
        public string clientCode { get; set; }
        public string cooX { get; set; }  // æ³¨æ„è¿™æ˜¯double类型
        public string cooY { get; set; }  // æ³¨æ„è¿™æ˜¯double类型
        public string ctnrCode { get; set; }
        public string ctnrTyp { get; set; }
        public string currentCallCode { get; set; }
        public string currentPositionCode { get; set; }
        public object data { get; set; }  // æ ¹æ®JSON内容,data是空对象
        public string dstBinCode { get; set; }
        public string eqpCode { get; set; }
        public string indBind { get; set; }
        public string layer { get; set; }
        public string mapCode { get; set; }
        public string mapDataCode { get; set; }
        public string mapShortName { get; set; }
        public string materialLot { get; set; }
        public string materialType { get; set; }
        public string method { get; set; }
        public string orgCode { get; set; }
        public string podCode { get; set; }
        public string podDir { get; set; }
        public string podNum { get; set; }
        public string podTyp { get; set; }
        public string relatedArea { get; set; }
        public string reqCode { get; set; }
        public string reqTime { get; set; }  // å¯è€ƒè™‘改为DateTime类型
        public string roadWayCode { get; set; }
        public string robotCode { get; set; }
        public string seq { get; set; }
        public string stgBinCode { get; set; }
        public string subTaskNum { get; set; }
        public string taskCode { get; set; }
        public string taskTyp { get; set; }
        public string tokenCode { get; set; }
        public string username { get; set; }
        public string wbCode { get; set; }
        public string whCode { get; set; }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Common/LevelChange/CheckTaskChangeHelper.cs
@@ -20,9 +20,14 @@
            {
                wheelsNewOld = "1";
            }
            if ((wxrw.Contains("四级修") || wxrw.Contains("五级修")) && wxrw.Contains("换轮(新)"))
            if ((wxrw.Contains("四级修") || wxrw.Contains("五级修")) && (wxrw.Contains("换轮(新)") || wxrw.Contains("换轮组成(新)")))
            {
                wheelsNewOld = "0";
            }
            if ((wxrw.Contains("四级修") || wxrw.Contains("五级修")) && (wxrw.Contains("换轮(旧)") || wxrw.Contains("换轮组成(旧)")))
            {
                wheelsNewOld = "1";
            }
            if (wxrw.Contains("三级修") && (wxrw.Contains("换轮(新)") || wxrw.Contains("换轮组成(新)")))
                wheelsNewOld = "0";
@@ -30,5 +35,50 @@
                wheelsNewOld = "1";
            return wheelsNewOld;
        }
        /// <summary>
        /// ç»´ä¿®ä»»åŠ¡è½¬æ¢å‡ºå±žæ€§
        /// </summary>
        /// <param name="wxrw">维修任务</param>
        /// <returns>选配轮新旧(0-新 1-旧)</returns>
        public static string CheckTaskwheelsProps(string wxrw)
        {
            string wheelsNewOld = string.Empty;
            if (wxrw.Contains("换轮盘(旧)"))
            {
                wheelsNewOld = "新轮旧盘";
            }else if (wxrw.Contains("换轮组成(新)"))
            {
                wheelsNewOld = "新轮新盘";
            }
            else
            {
                wheelsNewOld = "旧轮旧盘";
            }
            return wheelsNewOld;
        }
        /// <summary>
        /// é€‰åˆ¶åŠ¨ç›˜è½¬æ¢
        /// </summary>
        /// <param name="wxrw">选制动盘转换</param>
        /// <returns></returns>
        public static string CheckZdpPost(string Posttype)
        {
            string PostContainer = string.Empty;
            if (Posttype=="左侧")
            {
                PostContainer = "left";
            }
            else if (Posttype == "右侧")
            {
                PostContainer = "right";
            }
            else
            {
                PostContainer = "middle";
            }
            return PostContainer;
        }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseModels/PageDataOptions.cs
@@ -1,8 +1,14 @@
using System;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Core.Const;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Core.Utilities;
namespace WIDESEA_Core
{
@@ -24,6 +30,132 @@
        /// æŸ¥è¯¢æ¡ä»¶
        /// </summary>
        public List<SearchParameters> Filter { get; set; }
        public string ValidatePageOptions(PropertyInfo[] entityProperties)
        {
            string where = string.Empty;
            List<SearchParameters> searchParametersList = new List<SearchParameters>();
            if (this.Filter != null && this.Filter.Count > 0)
            {
                searchParametersList.AddRange(Filter);
            }
            else if (!string.IsNullOrEmpty(Wheres))
            {
                try
                {
                    searchParametersList = Wheres.DeserializeObject<List<SearchParameters>>();
                    Filter = searchParametersList;
                }
                catch { }
            }
            for (int i = 0; i < searchParametersList.Count; i++)
            {
                if (string.IsNullOrEmpty(searchParametersList[i].Value))
                {
                    continue;
                }
                PropertyInfo? property = entityProperties.Where(c => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
                if (property == null) continue;
                List<(bool, string, object)> results = property.ValidationValueForDbType(searchParametersList[i].Value.Split(',')).ToList();
                if (results == null || results.Count() == 0)
                {
                    continue;
                }
                for (int j = 0; j < results.Count(); j++)
                {
                    if (j == 0)
                    {
                        where += "(";
                    }
                    LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
                    if (expressionType == LinqExpressionType.Equal)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.Equal} '{results[j].Item3}'";
                    }
                    else if (expressionType == LinqExpressionType.ThanOrEqual)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.ThanOrEqual} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.LessThanOrEqual)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.LessOrequal} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.GreaterThan)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.GT} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.LessThan)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.LT} '{searchParametersList[i].Value}'";
                    }
                    else if (expressionType == LinqExpressionType.Contains)
                    {
                        where += $"{searchParametersList[i].Name} {HtmlElementType.like} '%{searchParametersList[i].Value}%'";
                    }
                    else
                    {
                        where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{results[j].Item3}'";
                    }
                    if (j == results.Count() - 1)
                    {
                        where += ")";
                    }
                    else
                    {
                        where += " or ";
                    }
                }
                if (i < searchParametersList.Count - 1)
                    where += " and ";
            }
            return where;
        }
        public Dictionary<string, OrderByType> GetPageDataSort(PropertyInfo[] propertyInfo)
        {
            try
            {
                if (!string.IsNullOrEmpty(Sort))
                {
                    if (Sort.Contains(","))
                    {
                        List<string> sortArr = Sort.Split(",").Where(x => propertyInfo.Any(p => p.Name == x)).ToList();
                        Dictionary<string, OrderByType> sortDic = new Dictionary<string, OrderByType>();
                        foreach (var item in sortArr)
                        {
                            sortDic[item] = Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc;
                        }
                        return sortDic;
                    }
                    else if (propertyInfo.Any(x => x.Name == Sort.FirstLetterToLower() || x.Name == Sort.FirstLetterToUpper()))
                    {
                        Dictionary<string, OrderByType> result = new Dictionary<string, OrderByType>();
                        if (Order == "asc")
                        {
                            result.Add(Sort, OrderByType.Asc);
                        }
                        else
                        {
                            result.Add(Sort, OrderByType.Desc);
                        }
                        return result;
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return new Dictionary<string, OrderByType> { { "CreateDate", Order?.ToLower() == OrderByType.Asc.ToString() ? OrderByType.Asc : OrderByType.Desc } };
        }
    }
    public class SearchParameters
    {
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseServices/ServiceBase.cs
@@ -46,44 +46,12 @@
        public virtual PageGridData<TEntity> GetPageData(PageDataOptions options)
        {
            string wheres = ValidatePageOptions(options);
            string wheres = options.ValidatePageOptions(TProperties);
            //获取排序字段
            Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
            Dictionary<string, OrderByType> orderbyDic = options.GetPageDataSort(TProperties);
            PageGridData<TEntity> pageGridData = new PageGridData<TEntity>();
            //if (QueryRelativeExpression != null)
            //{
            //    queryable = QueryRelativeExpression.Invoke(queryable);
            //}
            //if (options.Export)
            //{
            //    queryable = queryable.GetIQueryableOrderBy(orderbyDic);
            //    if (Limit > 0)
            //    {
            //        queryable = queryable.Take(Limit);
            //    }
            //    pageGridData.rows = queryable.ToList();
            //}
            //else
            //{
            //    pageGridData.rows = repository.IQueryablePage(queryable,
            //                        options.Page,
            //                        options.Rows,
            //                        out int rowCount,
            //                        orderbyDic).ToList();
            //    pageGridData.total = rowCount;
            //    //查询界面统计求等字段
            //    if (SummaryExpress != null)
            //    {
            //        pageGridData.summary = SummaryExpress.Invoke(queryable);
            //        //Func<T, T> groupExpress = x =>x;
            //        //pageGridData.summary = queryable.GroupBy(groupExpress).Select(SummaryExpress).FirstOrDefault();
            //    }
            //}
            //GetPageDataOnExecuted?.Invoke(pageGridData);
            pageGridData = BaseDal.QueryPage
                (wheres, options.Page, options.Rows, orderbyDic);
            pageGridData = BaseDal.QueryPage(wheres, options.Page, options.Rows, orderbyDic);
            return pageGridData;
        }
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Core/Const/ConfigConst.cs
@@ -96,5 +96,16 @@
        public const string TempHour = "TempHour";
        /// <summary>
        /// è¯·æ±‚wcs,写入输送线反馈
        /// </summary>
        public const string SetPlcResponState = "SetPlcResponState";
        /// <summary>
        /// è¯»å–agv缓存台请求
        /// </summary>
        public const string GetPlcState = "GetPlcState";
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/UtilConvert.cs
@@ -945,10 +945,10 @@
                case HtmlElementType.Contains:
                    linqExpression = LinqExpressionType.In;
                    break;
                case HtmlElementType.ThanOrEqual:
                    linqExpression = LinqExpressionType.ThanOrEqual;
                case HtmlElementType.thanorequal:
                    linqExpression = LinqExpressionType.ThanOrEqual;
                    break;
                case HtmlElementType.LessOrequal:
                case HtmlElementType.lessorequal:
                    linqExpression = LinqExpressionType.LessThanOrEqual;
                    break;
                case HtmlElementType.GT:
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Core/Utilities/EntityProperties.cs
@@ -116,6 +116,16 @@
            { typeof(Guid),SqlDbTypeName.UniqueIdentifier}
        };
        public static List<(bool, string, object)> ValidationValueForDbType(this PropertyInfo propertyInfo, params object[] values)
        {
            List<(bool, string, object)> result = new List<(bool, string, object)>();
            foreach (object value in values)
            {
                result.Add(propertyInfo.ValidationVal(value));
            }
            return result;
        }
        public static string GetProperWithDbType(this PropertyInfo propertyInfo)
        {
            bool result = ProperWithDbType.TryGetValue(propertyInfo.PropertyType, out string value);
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/ToAPP/IToAPPService.cs
@@ -13,6 +13,17 @@
        WebResponseContent SaveCLinfo(SaveModel saveModel);
        WebResponseContent SaveCZInfo(SaveModel saveModel);
        WebResponseContent SaveCZStraight(SaveModel saveModel);
        WebResponseContent SaveCZInfo2(SaveModel saveModel);
        WebResponseContent SaveCLStraight(SaveModel saveModel);
        WebResponseContent SaveZDPStraight(SaveModel saveModel);
        WebResponseContent SaveZDPInfo(SaveModel saveModel);
        WebResponseContent SaveZDPXPInfo(SaveModel saveModel);
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/WCS/IWCSService.cs
@@ -9,6 +9,6 @@
{
    public interface IWCSService : IDependency
    {
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/ÐÂÎļþ¼Ð/IToCheckService.cs
@@ -3,13 +3,35 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Comm;
using WIDESEA_Comm.AGVTask;
using WIDESEA_Common;
using WIDESEA_Core;
using WIDESEA_DTO;
namespace WIDESEA_IStoragIntegrationServices
{
    public interface IToAGVService : IDependency
    {
        /// <summary>
        /// wcs请求下发agv任务
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        WebResponseContent genAgvSchedulingTask(RequestTaskDto input);
        /// <summary>
        /// agv直走任务生成
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        WebResponseContent UntieStation(SaveModel saveModel);
        /// <summary>
        /// ag回调接口
        /// </summary>
        /// <param name="taskRespon"></param>
        /// <returns></returns>
        AGVResponBase agvCallback(object taskRespon);
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Boxing/IDt_CZInfo_mesService.cs
@@ -1,8 +1,10 @@
using Microsoft.AspNetCore.Mvc;
using WIDESEA_DTO;
namespace WIDESEA_IStorageBasicService;
public interface IDt_CZInfo_mesService : IService<Dt_CZInfo_mes>
{
    WebResponseContent RequestAxleloading(RequestTaskDto input);
    WebResponseContent UpdateAxleCurrentStatue(RequestTaskDto input);
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Location/ILocationInfoService.cs
@@ -10,10 +10,17 @@
    /// <param name="locationID">任务号</param>
    /// <returns>任务对象</returns>
    Task<Dt_Task> TransferCheckAsync(RequestTaskDto input);
    /// <summary>
    /// æ£€æµ‹å…¥åº“任务是否需要移库
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    Task<Dt_Task> InTransferCheckAsync(RequestTaskDto input);
    Task<WebResponseContent> initializeLocation(int locationID);
    WebResponseContent CreateLocation(int x, int y, int z, int locType, int areaId);
    WebResponseContent LocationEnable(SaveModel saveModel);
    WebResponseContent LocationStatus();
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IDt_WheelsStockService.cs
@@ -5,5 +5,9 @@
    Dt_WheelsStock GetSelectionWheelsStock(List<Dt_WheelsStock> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes,string wheelsPosition,string newOrOld);
    Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld);
    Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld, string wheelsProps);
    WebResponseContent InventoryStatistics();
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/Task/IDt_Task_HtyRepository.cs
@@ -1,4 +1,7 @@
namespace WIDESEA_IStorageTaskRepository;
using WIDESEA_Core;
using WIDESEA_DTO;
namespace WIDESEA_IStorageTaskRepository;
public interface IDt_Task_HtyRepository : IRepository<Dt_Task_Hty>
{
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
@@ -1,4 +1,5 @@
using WIDESEA_DTO;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_DTO;
namespace WIDESEA_IStorageTaskServices;
@@ -143,6 +144,12 @@
    /// <param name="input"></param>
    /// <returns></returns>
    Task<WebResponseContent> RequestWheelsFlow(RequestTaskDto input);
    /// <summary>
    /// æµå‘修改
    /// </summary>
    /// <param name="saveModel"></param>
    /// <returns></returns>
    WebResponseContent UpWheelsFlow(SaveModel saveModel);
    /// <summary>
    /// è¯·æ±‚任务货位
@@ -170,5 +177,7 @@
    /// <returns></returns>
    WebResponseContent CreateAndSendOutboundTask(SaveModel saveModel);
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_Task_HtyService.cs
@@ -1,4 +1,6 @@
namespace WIDESEA_IStorageTaskServices;
using WIDESEA_DTO;
namespace WIDESEA_IStorageTaskServices;
public interface IDt_Task_HtyService : IService<Dt_Task_Hty>
{
@@ -7,5 +9,7 @@
    /// </summary>
    /// <param name="task">历史任务Model</param>
    /// <returns>成功/失败</returns>
    bool InsertTask(Dt_Task_Hty task);
    //bool InsertTask(Dt_Task_Hty task);
    WebResponseContent TaskRollback(int input);
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs
@@ -194,4 +194,10 @@
    [SugarColumn(ColumnName = "WheelsLX", Length = 255, ColumnDescription = "轮型")]
    public string WheelsLX { get; set; }
    /// <summary>
    /// è½¦è½®åŽ»å‘åœ°å€
    ///</summary>
    [SugarColumn(ColumnName = "Towhereabouts", Length = 20, ColumnDescription = "车轮去向地址")]
    public string Towhereabouts { get; set; }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task_Hty.cs
@@ -28,4 +28,10 @@
    ///</summary>
    [SugarColumn(ColumnName = "SourceId", ColumnDescription = "源单ID")]
    public int SourceId { get; set; }
    /// <summary>
    /// è½¦è½®åŽ»å‘åœ°å€
    ///</summary>
    [SugarColumn(ColumnName = "Towhereabouts", Length = 20, ColumnDescription = "车轮去向地址")]
    public string Towhereabouts { get; set; }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/Dt_CZInfo_mes.cs
@@ -19,10 +19,12 @@
        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主键")]
        public int ID { get; set; }
        /// <summary>
        /// è½¦è½´æ¡ç 
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "车轴条码")]
        [SugarColumn(Length = 50, ColumnDescription = "车轴条码")]
        public string CZTM { get; set; }
        /// <summary>
@@ -45,7 +47,8 @@
        public string LDTM { get; set; }
        /// <summary>
        /// çŠ¶æ€   1-创建  2-入库 3-完成
        /// çŠ¶æ€   1-创建  2-入库 3-输送线完成         ï¼ˆç«™å°ç»™ä¿¡å·åŽï¼‰   4-agv任务下发   5-agv取货完成  6-agv完成
        /// ç›´èµ°ï¼ˆ11-直走创建  12-直走中  13-直走完成 ï¼‰
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "状态")]
        public string CurrentStatue { get; set; }
@@ -239,5 +242,11 @@
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "右轮座等级")]
        public string YLZDJ { get; set; }
        /// <summary>
        /// agv地址
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "agv目标地址")]
        public string AGVaddres { get; set; }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/Dt_InWheels_mes_hty.cs
@@ -8,9 +8,9 @@
namespace WIDESEA_Model.Models
{
    [SugarTable(nameof(Dt_InWheels_mes_hty), "MES车轮历史信息")]
    [SugarTable(nameof(Dt_InZdp_mes_hty), "MES制动盘历史信息")]
    public class Dt_InWheels_mes_hty : Dt_InWheels_mes
    public class Dt_InZdp_mes_hty : Dt_InZdp_mes
    {
        /// <summary>
        /// å®Œæˆæ—¶é—´
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/Partial/UntieStation.cs
@@ -10,6 +10,9 @@
using WIDESEA_Comm.AGVInterface.Requset;
using WIDESEA_Common;
using WIDESEA_Core;
using WIDESEA_Core.Const;
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_Model.Models;
namespace WIDESEA_StoragIntegrationServices
@@ -17,37 +20,54 @@
    public partial class ToAGVService
    {
        /// <summary>
        ///
        /// PDA执行agv任务直走功能
        /// </summary>
        /// <param name="taskinfo"></param>
        /// <param name="operationType">操作类型(1-绑定 2-解绑)</param>
        /// <returns></returns>
        public static WebResponseContent UntieStation(Dt_Task taskinfo, string operationType)
        public  WebResponseContent UntieStation(SaveModel saveModel)
        {
            WebResponseContent content = new WebResponseContent();
            string CZTM = saveModel.MainData["CZTM"].ToString();
            if (string.IsNullOrEmpty(CZTM)) throw new Exception("车轴条码为空");
            string TargetAddress = saveModel.MainData["TargetAddress"].ToString();
            if (string.IsNullOrEmpty(TargetAddress)) return content.Error("未选择缓存台,缓存台不可为空");
            try
            {
                bindCtnrAndBin bind = new bindCtnrAndBin()
                //调取wcs接口,读取该站台是否可放
                var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
                var ReceiveByWMSTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.GetPlcState)?.ConfigValue;
                if (ReceiveByWMSTask == null || ipAddress == null)
                {
                    reqCode = Guid.NewGuid().ToString().Replace("-", ""),
                    clientCode = "WMS",
                    ctnrTyp = "2",
                    indBind = operationType,   // 1-绑定 2-解绑
                    stgBinCode = taskinfo.SourceAddress,
                };
                    throw new Exception("WMS IP æœªé…ç½®");
                }
                var wmsIpAddrss = ipAddress + ReceiveByWMSTask;
                string ipaddress = AGV_Interface + "/getCLInfostring";
                var respon = HttpHelper.Post(wmsIpAddrss, JsonConvert.SerializeObject(TargetAddress));   //http://localhost:9291/api/Task/ReceiveTask,
                var requestBindInfo = bind.ToDictionary();
                if (respon == null) return content.OK("生成任务成功");
                var strRespon = HttpsClient.PostAsync(ipaddress, requestBindInfo).Result;
                WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString());
                if (!respone.Status)
                {
                    return content.Error(respone.Message);
                }
                var responBase = JsonConvert.DeserializeObject<AGVResponBase>(strRespon);
                if (responBase.code != "0") throw new Exception(responBase.message);
                //todo
                return content.OK();
                RequestTaskDto input=new RequestTaskDto();
                input.Position = TargetAddress;
                WebResponseContent agvtocon=genAgvSchedulingTask(input);
                if(agvtocon.Status)
                {
                    return content.OK("生成任务成功");
                }
                else
                {
                    return content.Error("错误信息:"+agvtocon.Message);
                }
            }
            catch (Exception ex)
            {
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/Partial/agvCallback.cs
@@ -1,12 +1,20 @@
using Newtonsoft.Json;
using AngleSharp.Io;
using Mapster;
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Comm;
using WIDESEA_Comm.AGVTask;
using WIDESEA_Core;
using WIDESEA_Core.Const;
using WIDESEA_Core.Helper;
using WIDESEA_Model.Models;
using WIDESEA_StorageBasicRepository;
using WIDESEA_StorageTaskRepository;
namespace WIDESEA_StoragIntegrationServices
@@ -18,38 +26,126 @@
        /// </summary>
        /// <param name="taskRespon"></param>
        /// <returns></returns>
        public WebResponseContent agvCallback(object taskRespon)
        public AGVResponBase agvCallback(object taskRespon)
        {
            WebResponseContent content = new WebResponseContent();
            agvTask task = new agvTask();
            AGVResponBase response = null;
            ContainerTask task = new ContainerTask();
            try
            {
                task = JsonConvert.DeserializeObject<agvTask>(taskRespon.ToString());
                task = JsonConvert.DeserializeObject<ContainerTask>(taskRespon.ToString());
                if (task == null)
                {
                    throw new Exception("AGV调用接口失败:无请求参数");
                    LogFactory.GetLog("AGV任务回调").Info(true, $"回调失败,未能读取到agv调取参数");
                }
                if (task.method.ToLower() == "apply")   //AGV放料申请
                if (task.method.ToString() == "outbin2")   //AGV取料完成
                {
                    //todo
                    Dt_CZInfo_mes CZInfotlist = _task_CZInfoRepository.QueryFirst(x => x.CurrentStatue == "4");
                    if (CZInfotlist != null)
                    {
                        CZInfotlist.CurrentStatue = "5";
                        _task_CZInfoRepository.UpdateData(CZInfotlist);
                    }
                    WCS_Set("3022");  //不管是否有写入成功,都完成agv任务
                    return response = new AGVResponBase
                    {
                        code = "0",
                        message = "成功",
                        reqCode = task.reqCode
                    };
                }
                if (task.method.ToLower() == "end") //AGV任务结束
                if (task.method.ToString() == "end") //AGV任务结束反馈
                {
                    //并进行修改任务为完成
                    Dt_CZInfo_mes CZInfotlist = _task_CZInfoRepository.QueryFirst(x => x.CurrentStatue == "5");
                    //todo
                    //_taskRepository.QueryFirst(x=>x.SourceAddress == task.)
                    //调取输送线接口,反馈输送线完成信号
                    WCS_Set(CZInfotlist.AGVaddres);
                    if(CZInfotlist != null)
                    {
                        CZInfotlist.CurrentStatue = "6";
                        _task_CZInfoRepository.UpdateData(CZInfotlist);
                        Dt_CZInfo_mes_hty stockInfo_Hty = CZInfotlist.Adapt<Dt_CZInfo_mes_hty>();
                        _CZInfo_Mes_HtyRepository.AddData(stockInfo_Hty);
                        _task_CZInfoRepository.DeleteData(CZInfotlist);
                    }
                    //回调
                    return response = new AGVResponBase
                    {
                        code = "0",
                        message = "成功",
                        reqCode = task.reqCode
                    };
                }
                return content.OK();
                LogFactory.GetLog("AGV任务回调").Info(true, $"回调成功");
                return response;
            }
            catch (Exception ex)
            {
                return content.Error($"AGV回调异常:{ex.Message}");
                LogFactory.GetLog("AGV任务回调").Info(true, $"回调失败,错误信息:{ex.Message}");
                return response = new AGVResponBase
                 {
                     code = "1",
                     message = $"失败,原因:{ex.Message}",
                     reqCode = task.reqCode
                 };
            }
        }
        public bool WCS_Set(string CutAddress)
        {
            try
            {
                //调取wcs接口,写入输送线信号  SetPlcResponState
                var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
                var ReceiveByWMSTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.SetPlcResponState)?.ConfigValue;
                if (ReceiveByWMSTask == null || ipAddress == null)
                {
                    throw new Exception("WMS IP æœªé…ç½®");
                }
                var wmsIpAddrss = ipAddress + ReceiveByWMSTask;
                var respon = HttpHelper.Post(wmsIpAddrss, JsonConvert.SerializeObject(CutAddress));   //http://localhost:9291/api/Task/ReceiveTask,
               if (respon != null)
                {
                    WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString());
                    if (respone.Status)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                return false;
                throw;
            }
        }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/Partial/genAgvSchedulingTask.cs
@@ -1,20 +1,16 @@
using MailKit;
using Mapster;
using Masuit.Tools;
using Masuit.Tools.Security;
using Masuit.Tools;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using WIDESEA_Comm;
using WIDESEA_Comm.WCSInterface.Requst;
using WIDESEA_Common;
using WIDESEA_Core;
using WIDESEA_Core.Enums;
using WIDESEA_IStoragIntegrationServices;
using WIDESEA_Core.Const;
using WIDESEA_Core.Helper;
using WIDESEA_DTO;
using WIDESEA_Model.Models;
using WIDESEA_StorageTaskRepository;
namespace WIDESEA_StoragIntegrationServices
{
@@ -25,40 +21,93 @@
        /// </summary>
        /// <param name="jsondata"></param>
        /// <returns></returns>
        public WebResponseContent genAgvSchedulingTask(Dt_Task taskinfo)
        public WebResponseContent genAgvSchedulingTask(RequestTaskDto input)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (string.IsNullOrEmpty(input.Position)) { return content.Error($"agv任务下发申请目标地址为空!!!请检查"); }
                //查找当前在车轴线末端需要agv搬运的车轴
                List<Dt_CZInfo_mes> CZInfotlist = _task_CZInfoRepository.QueryData(x => x.CurrentStatue == "3" || x.CurrentStatue == "4" || x.CurrentStatue == "5" || x.CurrentStatue == "13");
                if (CZInfotlist.Count >= 2) { return content.Error($"已有agv任务正在进行中,下发失败!!!"); }
                Dt_CZInfo_mes CZInfot = CZInfotlist.FirstOrDefault(x => x.CurrentStatue == "3" || x.CurrentStatue == "13");
                if (CZInfot == null) { return content.Error($"未找到现有输送线完成的车轴信息"); }
                CZInfot.CurrentStatue = "4";
                //查找车轴对应的车轮信息
                List<Dt_Task> tasks=_taskRepository.QueryData(x => x.task_CZInfo == CZInfot.CZH).ToList();
                if (tasks.Count > 0)
                {
                    foreach (var task in tasks)
                    {
                        task.Towhereabouts = input.Position;
                    }
                }
                string agvtarget = "F1";
                if (input.Position == "2033")
                {
                    agvtarget = "F2";
                }
                //agv参数调取
                genAgvSchedulingTask schedulingTask = new genAgvSchedulingTask
                {
                    reqCode = Guid.NewGuid().ToString().Replace("-", ""),
                    clientCode = "WMS",
                    //taskTyp = tasktype,
                    ctnrTyp = "2",
                    taskTyp = "BY",
                    ctnrTyp = "1",
                    //data = taskinfo.task_barcode,
                    positionCodePath = new List<position>
                       {
                            new position { positionCode = taskinfo.SourceAddress, type = "05" },
                            new position { positionCode = taskinfo.TargetAddress, type = "05" },
                            new position { positionCode = "Q", type = "00" },
                            new position { positionCode = agvtarget, type = "00" },         //地址待更改为   F1  å·¦è¾¹   F2 å³è¾¹
                       },
                    priority = "1",   //优先级
                    agvCode = "",//agvcode,
                    //taskCode = taskinfo.task_id.ToString(),
                };
                CZInfot.AGVaddres = input.Position;
                LogFactory.GetLog("下发AGV任务").Info(true, $"\r\r--------------------------------------");
                LogFactory.GetLog("下发AGV任务").Info(true, taskinfo.ToJsonString());
                //编写调取agv接口
                string ipaddress = AGV_Interface;
                return content;
                var requestBindInfo = schedulingTask.ToDictionary();
                var respon = HttpHelper.Post(ipaddress, JsonConvert.SerializeObject(schedulingTask));
                var responBase = JsonConvert.DeserializeObject<AGVResponBase>(respon);
                if (responBase.code == "0")
                {
                    _task_CZInfoRepository.UpdateData(CZInfot);
                    if (tasks.Count > 0)
                    {
                        _taskRepository.UpdateData(tasks);
                    }
                    LogFactory.GetLog("下发AGV任务").Info(true, $"调取agv任务成功,修改了车轴条码:{CZInfot.CZTM}的状态改至:{CZInfot.CurrentStatue}");
                    content.OK($"agv任务下发成功.");
                    return content;
                }
                else
                {
                    LogFactory.GetLog("下发AGV任务").Error(true, $"调取agv任务失败,返回信息:{responBase.message}");
                    return content.Error($"请求异常:{responBase.message}");
                }
            }
            catch (Exception ex)
            {
                LogFactory.GetLog("下发AGV任务").Info(true, $"\r\r--------------------------------------");
                LogFactory.GetLog("下发AGV任务").Info(true, ex.Message);
                LogFactory.GetLog("下发AGV任务").Error(true, ex.Message);
                return content.Error($"请求异常:{ex.Message}");
            }
        }
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/AGV/ToAGVService.cs
@@ -25,11 +25,13 @@
        private readonly IDt_CheckResultRepository _checkResultRepository;
        private readonly IToZYService _toZYService;
        private readonly IDt_Task_HtyRepository _task_HtyRepository;
        private readonly IDt_CZInfo_mesRepository _task_CZInfoRepository;
        private readonly IDt_CZInfo_mes_htyRepository _CZInfo_Mes_HtyRepository;
        private readonly LogFactory LogFactory = new LogFactory();
        public static string AGV_Interface = "http://172.21.7.215:8182/rcms/services/rest/hikRpcService";
        public static string AGV_Interface = "http://172.21.7.215:8182/rcms/services/rest/hikRpcService/genAgvSchedulingTask";
        public ToAGVService(ILocationInfoRepository locationRepository,IDt_TaskRepository taskRepository, IStockInfoRepository stockInfoRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_AreaInfoRepository dt_AreaInfoRepository, IDt_CheckResultRepository checkResultRepository, IToZYService toZYService , IDt_Task_HtyRepository task_HtyRepository)
        public ToAGVService(ILocationInfoRepository locationRepository,IDt_TaskRepository taskRepository, IStockInfoRepository stockInfoRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_AreaInfoRepository dt_AreaInfoRepository, IDt_CheckResultRepository checkResultRepository, IToZYService toZYService , IDt_Task_HtyRepository task_HtyRepository, IDt_CZInfo_mesRepository dt_CZInfo_MesRepository, IDt_CZInfo_mes_htyRepository CZInfo_Mes_HtyRepository)
        {
            _locationRepository = locationRepository;
            _taskRepository = taskRepository;
@@ -40,6 +42,8 @@
            _checkResultRepository = checkResultRepository;
            _toZYService = toZYService;
            _task_HtyRepository = task_HtyRepository;
            _task_CZInfoRepository = dt_CZInfo_MesRepository;
            _CZInfo_Mes_HtyRepository = CZInfo_Mes_HtyRepository;
        }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs
@@ -163,7 +163,9 @@
                if (rw != newOrOld) throw new Exception("选配失败:选配新旧轮与维修任务解析不一致");
                Dt_SelectionStandards selectionStandards = _SelectionStandardsRepository.QueryFirst(x => x.CarType.Contains(Cartype) && x.mttype == mttype && x.neworold == newOrOld && level.Contains(x.gkdj));
                string wheelsProps = CheckTaskChangeHelper.CheckTaskwheelsProps(wxrw);
                Dt_SelectionStandards selectionStandards = _SelectionStandardsRepository.QueryFirst(x => x.CarType== Cartype && x.mttype == mttype && x.neworold == newOrOld && level.Contains(x.gkdj));
                if (selectionStandards == null) throw new Exception($"此车型{Cartype}的选配标准异常,请核对选配标准信息!");
                Dt_CZInfo_mes CZInfo_Mes = new Dt_CZInfo_mes
@@ -218,7 +220,7 @@
                int hour = hourpara.ConfigValue.ObjToInt();
                //找出所有符合条件的库存车轮
                var WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now);
                var WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now && x.WheelsProps == wheelsProps);
                //x.Wheels_CarType  == CZInfo_Mes.CHEXING && x.Wheels_ldtm == CZInfo_Mes.LDTM && selectionStandards.CarType.Contains(x.Wheels_CarType)
                if (null != WheelsList && WheelsList.Count > 0)
                {
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveZDPInfo.cs
@@ -7,6 +7,7 @@
using WIDESEA_Common;
using WIDESEA_Common.ZY;
using WIDESEA_Core;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
using WIDESEA_Model.Models;
@@ -26,92 +27,101 @@
            {
                //如当前存在未开始入库的车轮或制动盘数据,则禁止保存新数据 ä»¥é˜²æ•°æ®æ··ä¹±
                var waitInbound = _InWheels_MesRepository.QueryFirst(x => x.Wheels_CurrentStatue == "0");
                if (waitInbound != null) throw new Exception("当前存在未开始入库的车轮或制动盘,请先入库后再保存信息!");
                if (waitInbound != null) throw new Exception("当前存在未开始入库的制动盘,请先入库后再保存信息!");
                //车轮码
                //制动盘条码
                string clCode = saveModel.MainData["code"].ToString();
                if (string.IsNullOrEmpty(clCode))
                    throw new Exception($"车轮条码不能为空");
                    throw new Exception($"制动盘条码不能为空");
                var clinfo = _InWheels_MesRepository.QueryFirst(x => x.Wheels_code == clCode);
                if (clinfo != null) throw new Exception("车轮录入信息已存在");
                var clinfo = _InZdp_MesRepository.QueryFirst(x => x.Zdp_code == clCode);
                if (clinfo != null) throw new Exception("制动盘条码录入信息已存在");
                //检测库存是否已存在
                _WheelsStockRepository.QueryFirst(x => x.Wheels_code == clCode);
                _ZdpStockRepository.QueryFirst(x => x.Zdp_code == clCode);
                if (clinfo != null) throw new Exception("库内已存在,请检查库存");
                //序列号
                //string madeUnit = saveModel.MainData["xlh"].ToString();
                //车轮号
                string clh = saveModel.MainData["clh"].ToString();
                //轮对条码
                string ldtm = saveModel.MainData["ldtm"].ToString();
                //制动盘号
                string ZPH = saveModel.MainData["ZPH"].ToString();
                //车型
                string Cartype = saveModel.MainData["chexing"].ToString();
                //配属局
                string psj = saveModel.MainData["psj"].ToString();
                //车组号
                string lcch = saveModel.MainData["lcch"].ToString();
                //新旧
                string newOrOld = saveModel.MainData["neworold"].ToString();
                //轮对号
                string ldh = saveModel.MainData["ldh"].ToString();
                //轮对型号
                string ldxh = saveModel.MainData["ldxh"].ToString();
                //毂孔等级
                string gkdj = saveModel.MainData["gkdj"].ToString();
                //毂孔a界面均值
                string gkzja = saveModel.MainData["gkzja"].ToString();
                //毂孔b界面均值
                string gkzjb = saveModel.MainData["gkzjb"].ToString();
                //毂孔c界面均值
                string gkzjc = saveModel.MainData["gkzjc"].ToString();
                //轮径值
                string ljz = saveModel.MainData["ljz"].ToString();
                //预估轮径值
                string yglj = saveModel.MainData["yglj"].ToString();
                //入库时间
                //位置(ä¾§/中)
                string POS = saveModel.MainData["POS"].ToString();
                // èžºæ “型号
                string LSXH = saveModel.MainData["LSXH"].ToString();
                //材质(铸钢)
                string MAT = saveModel.MainData["MAT"].ToString();
                //产地(进口/国产)
                string SITE = saveModel.MainData["SITE"].ToString();
                //毂孔直径A1
                string GKA1 = saveModel.MainData["GKA1"].ToString();
                //毂孔直径A2
                string GKA2 = saveModel.MainData["GKA2"].ToString();
                //毂孔直径A3
                string GKA3 = saveModel.MainData["GKA3"].ToString();
                //毂孔直径A
                string GKA = saveModel.MainData["GKA"].ToString();
                //毂孔直径B1
                string GKB1 = saveModel.MainData["GKB1"].ToString();
                //毂孔直径B2
                string GKB2 = saveModel.MainData["GKB2"].ToString();
                //毂孔直径A3
                string GKB3 = saveModel.MainData["GKB3"].ToString();
                //毂孔直径A
                string GKB = saveModel.MainData["GKB"].ToString();
                //毂孔直径C1
                string GKC1 = saveModel.MainData["GKC1"].ToString();
                //毂孔直径C2
                string GKC2 = saveModel.MainData["GKC2"].ToString();
                //毂孔直径C3
                string GKC3 = saveModel.MainData["GKC3"].ToString();
                //毂孔直径A
                string GKC = saveModel.MainData["GKC"].ToString();
                //毂孔直径
                string GKJZ = saveModel.MainData["GKJZ"].ToString();
                //螺栓侧剩余磨耗
                string LSCSYMH = saveModel.MainData["LSCSYMH"].ToString();
                //螺母侧剩余磨耗
                string LMCSYMH = saveModel.MainData["LMCSYMH"].ToString();
                //入库日期
                string rksj = saveModel.MainData["rksj"].ToString();
                //属性
                string WheelsProps = saveModel.MainData["clsx"].ToString();
                //动拖属性
                string mttype = saveModel.MainData["mttype"].ToString();
                //毂孔均值
                string gkcc = saveModel.MainData["gkcc"].ToString();
                //创建人
                //string user = saveModel.MainData["user"].ToString();
                if (_locationRepository.QueryData(x => x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1).Count < 2) throw new Exception($"库位数量不足,不允许入库");
                Dt_InWheels_mes wheels_Mes = new Dt_InWheels_mes
                Dt_InZdp_mes dt_InZdp_ = new Dt_InZdp_mes
                {
                    Wheels_code = clCode,
                    Wheels_Type = "1",
                    Wheels_Num = clh,
                    CreateDate = DateTime.Now,
                    Creater = "admin",
                    WheelsProps = WheelsProps,
                    Wheels_CarNo = lcch,
                    Wheels_CarType = Cartype,
                    Wheels_ldxh = ldxh,
                    Wheels_CurrentStatue = "0",
                    Wheels_ldtm = ldtm,
                    Wheels_InDate = rksj,
                    Wheels_level = gkdj,
                    Wheels_NewOrOld = newOrOld,
                    Wheels_psj = psj,
                    Wheels_gkcc = gkcc,
                    Wheels_gkzja = gkzja,
                    Wheels_gkzjb = gkzjb,
                    Wheels_gkzjc = gkzjc,
                    Wheels_ldh = ldh,
                    Wheels_ljz = ljz,
                    Wheels_mttype = mttype,
                    //Wheels_SequenceNum = "",
                    Wheels_ygljz = yglj,
                    Zdp_code = clCode,       // ä¸»é”®æˆ–编号
                    Zdp_ZPH = ZPH,          // åˆ¶åŠ¨ç›˜å·
                    Zdp_chexing = Cartype,  // è½¦åž‹
                    Zdp_neworold = newOrOld, // æ–°æ—§
                    Zdp_POS = POS,          // ä½ç½®ï¼ˆä¾§/中)
                    Zdp_LSXH = LSXH,        // èžºæ “型号
                    Zdp_MAT = MAT,          // æè´¨ï¼ˆé“¸é’¢ï¼‰
                    Zdp_SITE = SITE,        // äº§åœ°ï¼ˆè¿›å£/国产)
                    Zdp_GKA1 = GKA1,        // æ¯‚孔直径A1
                    Zdp_GKA2 = GKA2,        // æ¯‚孔直径A2
                    Zdp_GKA3 = GKA3,        // æ¯‚孔直径A3
                    Zdp_GKA = GKA,          // æ¯‚孔直径A
                    Zdp_GKB1 = GKB1,        // æ¯‚孔直径B1
                    Zdp_GKB2 = GKB2,        // æ¯‚孔直径B2
                    Zdp_GKB3 = GKB3,        // æ¯‚孔直径B3
                    Zdp_GKB = GKB,          // æ¯‚孔直径B
                    Zdp_GKC1 = GKC1,        // æ¯‚孔直径C1
                    Zdp_GKC2 = GKC2,        // æ¯‚孔直径C2
                    Zdp_GKC3 = GKC3,        // æ¯‚孔直径C3
                    Zdp_GKC = GKC,          // æ¯‚孔直径C
                    Zdp_GKJZ = GKJZ,        // æ¯‚孔直径基准
                    Zdp_LSCSYMH = LSCSYMH,  // èžºæ “侧剩余磨耗
                    Zdp_LMCSYMH = LMCSYMH,  // èžºæ¯ä¾§å‰©ä½™ç£¨è€—
                    Zdp_rksj = rksj,         // å…¥åº“日期
                    Zdp_CurrentStatue="0"
                };
                if (_InWheels_MesRepository.AddData(wheels_Mes) > 0)
                if (_InZdp_MesRepository.AddData(dt_InZdp_) > 0)
                {
                    return content.OK("保存成功");
                }
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/ToAPPService.cs
@@ -30,11 +30,13 @@
        private readonly IDt_WheelsStock_OldRepository dt_WheelsStock_OldRepository;
        private readonly ISelectionWheelsRepository _SelectionWheelsRepository;
        private readonly IDt_AxleshelfService _AxleshelfService;
        private readonly IDt_ZdpStockRepository _ZdpStockRepository;
        private readonly IDt_ZdpStockService _ZdpStockService;
        private readonly IDt_InZdp_mesRepository _InZdp_MesRepository;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        public ToAPPService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_InWheels_mesRepository inWheels_MesRepository, IDt_WheelsStockRepository wheelsStockRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IDt_WheelsStockService wheelsStockService, IDt_CZInfo_mesRepository cZInfo_MesRepository,  IUnitOfWorkManage unitOfWorkManage, IDt_WheelsStock_OldRepository dt_WheelsStock_OldRepository, ISelectionWheelsRepository selectionWheelsRepository, IDt_AxleshelfService axleshelfService)
        public ToAPPService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_InWheels_mesRepository inWheels_MesRepository, IDt_WheelsStockRepository wheelsStockRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IDt_WheelsStockService wheelsStockService, IDt_CZInfo_mesRepository cZInfo_MesRepository,  IUnitOfWorkManage unitOfWorkManage, IDt_WheelsStock_OldRepository dt_WheelsStock_OldRepository, ISelectionWheelsRepository selectionWheelsRepository, IDt_AxleshelfService axleshelfService, IDt_ZdpStockRepository zdpStockRepository, IDt_InZdp_mesRepository inZdp_MesRepository, IDt_ZdpStockService zdpStockService)
        {
            _InWheels_MesRepository = inWheels_MesRepository;
            _locationRepository = locationRepository;
@@ -48,6 +50,9 @@
            this.dt_WheelsStock_OldRepository = dt_WheelsStock_OldRepository;
            _SelectionWheelsRepository = selectionWheelsRepository;
            _AxleshelfService = axleshelfService;
            _ZdpStockRepository = zdpStockRepository;
            _InZdp_MesRepository = inZdp_MesRepository;
            _ZdpStockService = zdpStockService;
        }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ZY/Partial/getZDPInfo.cs
@@ -1,11 +1,16 @@

using Masuit.Tools;
using Newtonsoft.Json;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using System.Reflection.Emit;
using System.Security.Policy;
using System;
using WIDESEA.Common;
using WIDESEA_Common;
using WIDESEA_Common.ZY;
using WIDESEA_Core;
using WIDESEA_Core.Helper;
using WIDESEA_Model.Models;
namespace WIDESEA_StoragIntegrationServices
{
@@ -38,7 +43,8 @@
                ZDPInfo_ZY inf2o = XMLSerializationTool.DeserializeXmlToObject<ZDPInfo_ZY>(responStr);
                if (inf2o.FLAG != "S") throw new Exception($"获取信息失败:接口返回失败:{inf2o.ERROR}");
                if (inf2o.FLAG != "S")
                    throw new Exception($"获取信息失败:接口返回失败:{inf2o.ERROR}");
                //string info2 = XMLSerializationTool.SerializeObjectToXml<string>(responStr);
                //CLInfo_ZY info_ZY = new CLInfo_ZY()  //测试数据
@@ -60,8 +66,35 @@
                //    //ygljz = "121"
                //};
                //inf2o.CHEXING = "CRH1A";
                //inf2o.MTTYPE = "M";
                inf2o.ZPH = "20231021-0019/25103295 0011";
                inf2o.CHEXING = "CRH1A";
                inf2o.NEWOLD = "旧";
                inf2o.POS = "中间";
                inf2o.LSXH = "XKDS";
                inf2o.MAT = "钢";
                inf2o.SITE = "国产";
                inf2o.GKA1 = "0.53";
                inf2o.GKA2 = "0.23";
                inf2o.GKA3 = "0.133";
                inf2o.GKA = "0.535";
                inf2o.GKB1 = "0.533";
                inf2o.GKB2 = "0.431";
                inf2o.GKB3 = "0.532";
                inf2o.GKB = "0.623";
                inf2o.GKC1 = "0.123";
                inf2o.GKC2 = "0.533";
                inf2o.GKC3 = "0.222";
                inf2o.GKC = "0.543";
                inf2o.GKJZ = "0.22";
                inf2o.LSCSYMH = "0.42";
                inf2o.LMCSYMH = "0.031";
                inf2o.RKSJ = DateTime.Now.ToString();
                //CLInfo_ZY info_ZY = XmlToJson(responStr);
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_SelectionStandardsService.cs
@@ -1,4 +1,7 @@
using WIDESEA_IServices;
using AngleSharp.Dom;
using System.Reflection;
using WIDESEA_Core.Utilities;
using WIDESEA_IServices;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_Model.Models;
@@ -62,5 +65,54 @@
                return content.Error($"添加失败:{ex.Message}");
            }
        }
        /// <summary>
        /// ä¿®æ”¹æ•°æ®
        /// </summary>
        /// <param name="saveModel"></param>
        /// <returns></returns>
        public virtual WebResponseContent UpdateData(SaveModel saveModel)
        {
            try
            {
                int id = int.Parse(saveModel.MainData["id"].ToString());
                string carType = saveModel.MainData["carType"].ToString();
                string mttype = saveModel.MainData["mttype"].ToString();
                string neworold = saveModel.MainData["neworold"].ToString();
                string gkdj = saveModel.MainData["gkdj"].ToString();
                decimal lowerValue = Convert.ToDecimal(saveModel.MainData["lowerValue"]);
                decimal upperValue = Convert.ToDecimal(saveModel.MainData["upperValue"]);
                int isCantainGK = saveModel.MainData["isCantainGK"].ObjToInt();
                decimal lowerValue_gk = Convert.ToDecimal(saveModel.MainData["lowerValue_gk"]);
                decimal upperValue_gk = Convert.ToDecimal(saveModel.MainData["upperValue_gk"]);
                Dt_SelectionStandards dt_Selection = BaseDal.QueryFirst(x => x.ID == id);
                dt_Selection.CarType=carType;
                dt_Selection.mttype=mttype;
                dt_Selection.neworold = neworold;
                dt_Selection.gkdj = gkdj;
                dt_Selection.lowerValue = lowerValue;
                dt_Selection.upperValue = upperValue;
                dt_Selection.isCantainGK = isCantainGK != 0 ? true : false;
                dt_Selection.lowerValue_gk = lowerValue_gk;
                dt_Selection.upperValue_gk = upperValue_gk;
                if (BaseDal.UpdateData(dt_Selection))
                {
                    return WebResponseContent.Instance.OK("添加成功");
                }
                else
                {
                    return WebResponseContent.Instance.Error("添加失败");
                }
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.Message);
            }
        }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/Dt_CZInfo_mesService.cs
@@ -3,6 +3,8 @@
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations;
using WIDESEA_Core;
using WIDESEA_DTO;
using WIDESEA_IStoragIntegrationServices;
using WIDESEA_StorageBasicRepository;
namespace WIDESEA_StorageBasicService;
@@ -199,4 +201,100 @@
        // è¿”回验证结果列表
        return validationResults;
    }
    public WebResponseContent RequestAxleloading(RequestTaskDto input)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            Dt_CZInfo_mes CZInfot = BaseDal.QueryFirst(x => x.CurrentStatue == "1" || x.CurrentStatue == "11");
            if (CZInfot != null)
            {
                CZInfot.CurrentStatue = CZInfot.CurrentStatue=="1"?"2":"12";
                BaseDal.UpdateData(CZInfot);
                return content.OK(data: CZInfot.CZTM);
            }
            else
            {
                return content.Error("未找到需要上架的车轴条码");
            }
        }
        catch (Exception ex)
        {
            return content.Error(ex.Message);
        }
    }
    public WebResponseContent UpdateAxleCurrentStatue(RequestTaskDto input)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            Dt_CZInfo_mes CZInfot = BaseDal.QueryFirst(x => x.CZTM == input.PalletCode);
            if (CZInfot != null)
            {
                if (CZInfot.CurrentStatue == "2")
                {
                    CZInfot.CurrentStatue = "3";
                }
                else if (CZInfot.CurrentStatue == "12")
                {
                    CZInfot.CurrentStatue = "13";
                }
                else
                {
                    return content.Error($"未找到申请车轴条码信息,状态不为输送线运行中,申请条码:{input.PalletCode}");
                }
                BaseDal.UpdateData(CZInfot);    //先修改了状态
                return content.OK();
            }
            else
            {
                return content.Error($"未找到申请车轴条码信息,申请条码:{input.PalletCode}");
            }
        }
        catch (Exception ex)
        {
            return content.Error($"更新车轴信息状态出错,申请条码:{input.PalletCode},错误信息:{ex.Message}");
        }
    }
    public override WebResponseContent UpdateData(SaveModel saveModel)
    {
        WebResponseContent webResponse = new WebResponseContent();
        try
        {
            int id = int.Parse(saveModel.MainData["id"]?.ToString());
            string cztm = saveModel.MainData["cztm"]?.ToString();
            if (string.IsNullOrEmpty(cztm))
                throw new Exception($"车轴号为空");
            string currentStatue = saveModel.MainData["currentStatue"]?.ToString();
            if (string.IsNullOrEmpty(currentStatue))
                throw new Exception($"车轴状态为空");
            Dt_CZInfo_mes CZInfot = BaseDal.QueryFirst(x => x.ID == id);
            if (CZInfot != null)
            {
                CZInfot.CZTM = cztm;
                CZInfot.CurrentStatue = currentStatue;
                BaseDal.UpdateData(CZInfot);    //先修改了状态
                return webResponse.OK($"修改成功");
            }
            else
            {
                return webResponse.Error($"修改失败,未找到车轴信息");
            }
        }
        catch (Exception ex)
        {
            return webResponse.Error($"修改失败,错误信息:{ex.Message}");
            throw;
        }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/Dt_CZInfo_mes_htyService.cs
@@ -1,7 +1,9 @@
using Mapster;
using AngleSharp.Dom;
using Mapster;
using Masuit.Tools;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.ComponentModel.DataAnnotations;
using System.Reflection;
using WIDESEA_Core;
using WIDESEA_StorageBasicRepository;
@@ -157,6 +159,8 @@
        }
    }
    public override WebResponseContent DeleteData(object key)
    {
        WebResponseContent content = new WebResponseContent();
@@ -197,4 +201,5 @@
        // è¿”回验证结果列表
        return validationResults;
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs
@@ -102,6 +102,62 @@
        }
    }
    /// <summary>
    /// æ£€æŸ¥å¹¶ç”Ÿæˆç§»åº“任务或返回入库任务
    /// </summary>
    /// <param name="locationID">任务号</param>
    /// <returns>任务对象</returns>
    public virtual async Task<Dt_Task> InTransferCheckAsync(RequestTaskDto input)
    {
        try
        {
            int taskNum = input.taskNum;
            // æ ¹æ®ä»»åŠ¡å·èŽ·å–å…¥åº“ä»»åŠ¡
            var inboundTask = await _taskRepository.QueryFirstAsync(x => x.TaskNum == taskNum);
            if (inboundTask == null)
                return null;
            LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "根据任务号获取任务", $"任务号:{taskNum},任务数据:{inboundTask}");
            var location = await BaseDal.QueryFirstAsync(x => x.LocationCode == inboundTask.TargetAddress);
            LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "获取指定库位的货位数据", $"货位号:{inboundTask.TargetAddress},货位数据:{location}");
            // æ£€æŸ¥æ˜¯å¦éœ€è¦è¿›è¡Œç§»åº“
            if (CheckForInternalTransfer(location))
            {
                LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库", $"货位号:{inboundTask.TargetAddress},货位数据:{location}");
                // è®¡ç®—对应位置的相对库位 ï¼ˆå¥‡æ•°è¡Œçš„下一行或者偶数行的上一行)
                var newLocationID = GetRelativeLocationID(location);
                LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库,组建需要移库货位号", $"新的库位ID:{newLocationID}");
                var relocationTask = await _taskRepository.QueryFirstAsync(x => x.TargetAddress == newLocationID && x.Roadway == inboundTask.Roadway && x.TaskType == (int)TaskTypeEnum.Relocation);
                if (relocationTask != null) return relocationTask;
                // èŽ·å–æ–°çš„åº“ä½çš„ä»»åŠ¡
                var internalTransferTask = await _taskRepository.QueryFirstAsync(x => x.TargetAddress == newLocationID && x.Roadway == inboundTask.Roadway && x.TaskState == (int)TaskOutStatusEnum.OutNew);
                LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库,获取新库位的任务", $"新库位任务:{internalTransferTask}");
                // å¦‚果新的库位没有找到对应的任务
                if (internalTransferTask == null)
                {
                    LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库,未获取到新库位任务", $"");
                    return await InHandleLocation(inboundTask.TargetAddress, newLocationID, inboundTask);
                }
                LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库,获取到新库位任务直接返回", $"新库位任务:{internalTransferTask}");
                // ç›´æŽ¥è¿”回一深位出库任务
                return internalTransferTask;
            }
            // è¿”回当前库位的出库任务
            return inboundTask;
        }
        catch (Exception)
        {
            return null;
        }
    }
    public override WebResponseContent UpdateData(SaveModel saveModel)
    {
        int id = saveModel.MainData["id"].ObjToInt();
@@ -253,6 +309,32 @@
    #endregion å¯ç”¨ç¦ç”¨è´§ä½
    #region å¤§å±åº“位状态获取
    public WebResponseContent LocationStatus()
    {
        WebResponseContent content = new WebResponseContent();
        // èŽ·å–æ‰€æœ‰åº“ä½æ•°æ®
        List<DtLocationInfo> locations = BaseDal.QueryData();
        // æŒ‰LocationStatus分组统计
        var statusGroups = locations
            .GroupBy(l => l.LocationStatus)
            .Select(g => new
            {
                Status = g.Key==0?"空货位": g.Key == 1 ? "锁定": g.Key == 2 ? "有货": "有货禁用",
                Count = g.Count(),
            })
            .ToList();
        // å°†ç»Ÿè®¡ç»“果放入响应内容
        content.Data = statusGroups;
        return content;
    }
    #endregion
    #region å†…部方法
    #region ç§»åº“方法
@@ -331,6 +413,61 @@
    }
    /// <summary>
    /// å¤„理入库没有任务的库位情况
    /// </summary>
    /// <param name="originalLocationID">原始库位ID</param>
    /// <param name="newLocationID">新的库位ID</param>
    /// <param name="outboundTask">出库任务</param>
    /// <returns>生成的移库任务或原始出库任务</returns>
    private async Task<Dt_Task> InHandleLocation(string originalLocationID, string newLocationID, Dt_Task inboundTask)
    {
        // åˆ¤æ–­è¯¥ä½ç½®æ˜¯å¦æœ‰åº“å­˜
        var stockInfo = await _WheelsStockRepository.QueryFirstAsync(x => x.Wheels_Location == newLocationID);
        LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库,未获取到新库位任务", $"该位置是否有库存:{stockInfo}");
        if (stockInfo == null)
        {
            LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库,未获取到库存数据", $"直接返回原先出库任务:{inboundTask}");
            // å¦‚果没有库存,直接返回当前出库任务
            return inboundTask;
        }
        else
        {
            // å¦‚果有库存,生成移库任务
            var emptyLocation = RequestLocation("SC1");
            if (emptyLocation == null) throw new Exception("暂无空库");
            LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库,查找能移库货位", $"货位数据:{emptyLocation}");
            var taskNo = await _taskRepository.GetTaskNo();
            Dt_Task newTransferTask = new Dt_Task()
            {
                CreateDate = DateTime.Now,
                Creater = App.User.UserName == null ? "admin" : App.User.UserName,
                CurrentAddress = stockInfo.Wheels_Location,
                Grade = 99,
                MaterialNo = stockInfo.Wheels_Type,
                NextAddress = emptyLocation.LocationCode,
                PalletCode = stockInfo.Wheels_Num,
                Remark = "移库",
                Roadway = "SC1",
                SourceAddress = stockInfo.Wheels_Location,
                TaskNum = taskNo,
                TargetAddress = emptyLocation.LocationCode,
                TaskState = (int)TaskStatus.Created,
                TaskType = (int)TaskTypeEnum.Relocation,
                Dispatchertime = DateTime.Now,
            };
            LogFactory.GetLog("检查是否需要移库").InfoFormat(true, "需要移库,新建移库任务", $"移库任务数据:{newTransferTask}");
            //修改库位状态
            emptyLocation.LocationStatus = (int)LocationEnum.FreeDisable;
            BaseDal.UpdateData(emptyLocation);
            return await _taskRepository.Create(newTransferTask);
        }
    }
    /// <summary>
    /// æ ¹æ®è´§ä½æ˜¯å¦éœ€è¦ç§»åº“
    /// </summary>
    /// <param name="locationID">货位ID</param>
@@ -361,16 +498,19 @@
                if (locationInfos == null || locationInfos.Count == 0)
                {
                    locationInfos = BaseDal.QueryData(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == "SC1" && x.EnalbeStatus == 1 && x.LocationType == 1);
                }
                var location = GetEmptyLocation(locationInfos);
                var location = GetEmptyLocation(locationInfos); //找出货位
                if (location != null)
                {
                    if (location.Depth == 2)
                    {
                        int row = location.Row;
                        int relativeLine = row % 2 == 1 ? row + 1 : row - 1;
                        //int relativeLine = row % 2 == 1 ? row + 1 : row - 1;
                        int relativeLine = row == 1 ? row + 1 : row - 1;
                        var insideLocation = BaseDal.QueryFirst(x => x.Row == relativeLine && x.Layer == location.Layer && x.Column == location.Column);
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs
@@ -71,17 +71,16 @@
        //过盈量下限
        decimal selectionLowerValue = selectionStandards.lowerValue;
        decimal mesStand = 0;
        string level = string.Empty;
        if ("left".Equals(wheelsPosition))  //匹配左轮座轮子
        {
            mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
            decimal mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.ZLZDJ);
            WheelsList = WheelsList.Where(x => mesStand - (decimal.Parse(x.Wheels_gkcc)) >= selectionLowerValue && mesStand - (decimal.Parse(x.Wheels_gkcc)) <= selectionUpperValue && x.Wheels_level == level && x.Wheels_NewOrOld == newOrOld).ToList();
        }
        else    //否则匹配右轮座轮子
        {
            mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
            decimal mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.YLZDJ);
            WheelsList = WheelsList.Where(x => mesStand - (decimal.Parse(x.Wheels_gkcc)) >= selectionLowerValue && mesStand - (decimal.Parse(x.Wheels_gkcc)) <= selectionUpperValue && x.Wheels_level == level && x.Wheels_NewOrOld == newOrOld).ToList();
        }
@@ -131,7 +130,7 @@
    public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld)
    public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld, string wheelsProps)
    {
        try
        {
@@ -148,14 +147,14 @@
            {
                mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
                level = LevelChangeHelper.JkChangeType(CZInfo_Mes.YLZDJ);
                wheelsStocks = wheelsStocks.Where(x => x.venderno== level && x.repair_item == newOrOld).ToList();
                wheelsStocks = wheelsStocks.Where(x => x.venderno == level && x.repair_item == newOrOld).ToList();
            }
            else    //否则匹配右轮座轮子
            {
                mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
                level = LevelChangeHelper.JkChangeType(CZInfo_Mes.YLZDJ);
                wheelsStocks = wheelsStocks.Where(x => x.venderno== level && x.repair_item == newOrOld).ToList();
                wheelsStocks = wheelsStocks.Where(x => x.venderno == level && x.repair_item == newOrOld).ToList();
            }
            foreach (var item in wheelsStocks)
            {
@@ -163,16 +162,23 @@
                string Wheels_gkzja = "";
                string Wheels_gkzjb = "";
                string Wheels_gkzjc = "";
                string clsx = "";
                SaveModel saveModel = new SaveModel();
                saveModel.MainData = new Dictionary<string, object>
            {
                { "cltm", item.wheel_code }
            };
                {
                    { "cltm", item.wheel_code }
                };
                WebResponseContent webResponse = _toZYService.ZY_GetCLInfo(saveModel);
                if (webResponse.Status)
                {
                    CLInfo_ZY data = (CLInfo_ZY)webResponse.Data;
                    if(wheelsProps== data.CLSX)
                    {
                        wheelsStocks.Remove(item);
                        continue;
                    }
                    Wheels_gkcc = data.gkcc;
                    // æ¯‚å­”a界面均值
@@ -190,6 +196,7 @@
                    {
                        wheelsStocks.Remove(item);
                        continue;
                    }
                    if (selectionStandards.isCantainGK)
                    {
@@ -210,6 +217,7 @@
                                && ZLZC - (decimal.Parse(Wheels_gkzjc)) < selectionLowerValue_gk && ZLZC - (decimal.Parse(Wheels_gkzjc)) > selectionUpperValue_gk)
                            {
                                wheelsStocks.Remove(item);
                                continue;
                            }
                        }
                        else
@@ -223,6 +231,7 @@
                                && YLZC - (decimal.Parse(Wheels_gkzjc)) >= selectionLowerValue_gk && YLZC - (decimal.Parse(Wheels_gkzjc)) <= selectionUpperValue_gk)
                            {
                                wheelsStocks.Remove(item);
                                continue;
                            }
@@ -242,7 +251,29 @@
        }
    }
    public WebResponseContent InventoryStatistics()
    {
        WebResponseContent content = new WebResponseContent();
        List<Dt_WheelsStock> stockInfos = BaseDal.QueryData();
        //获取车型
        List<string> Wheels_CarTypeList = stockInfos.Select(x => x.Wheels_CarType).Distinct().ToList();
        foreach (var CarType in Wheels_CarTypeList)
        {
            content.Data = stockInfos.Where(x => x.Wheels_CarType == CarType).GroupBy(w => w.Wheels_ldxh)
           .Select(typeGroup => new
           {
               Wheels_CarType = CarType,    //车型
               Wheels_ldxh = typeGroup.Key,
               Count = typeGroup.Count(),
           }).ToList();
        }
        return content;
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -2,13 +2,18 @@
using MailKit.Search;
using Mapster;
using Masuit.Tools;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using System.Diagnostics;
using System.Reflection.Emit;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using WIDESEA_Common;
using WIDESEA_Core.Const;
using WIDESEA_DTO.WMS;
using WIDESEA_IServices;
using WIDESEA_IStoragIntegrationServices;
using WIDESEA_Model.Models;
using WIDESEA_StorageBasicRepository;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob.Models;
@@ -32,6 +37,11 @@
    private readonly IDt_WheelsStock_htyRepository _WheelsStock_HtyRepository;
    private readonly IDt_InWheels_mes_htyRepository _InWheels_Mes_HtyRepository;
    private readonly IDt_CacheInfoRepository _CacheInfoRepository;
    private readonly IDt_OutWheels_htyRepository _OutWheels_HtyRepository;
    private readonly IDt_InZdp_mesRepository _InZdp_MesRepository;
    private readonly IDt_InZdp_mes_htyRepository _InZdp_Mes_HtyRepository;
    private readonly IDt_ZdpStockRepository _ZdpStockRepository;
    private readonly IDt_ZdpStock_htyRepository _ZdpStock_HtyRepository;
    public Dt_TaskService(IDt_TaskRepository BaseDal,
                                IUnitOfWorkManage unitOfWorkManage,
@@ -49,7 +59,12 @@
                                IDt_WheelsStockRepository wheelsStockRepository,
                                IDt_WheelsStock_htyRepository wheelsStock_HtyRepository,
                                IDt_InWheels_mes_htyRepository inWheels_Mes_HtyRepository,
                                IDt_CacheInfoRepository cacheInfoRepository) : base(BaseDal)
                                IDt_OutWheels_htyRepository dt_OutWheels_HtyRepository,
                                IDt_CacheInfoRepository cacheInfoRepository,
                                IDt_InZdp_mesRepository inZdp_MesRepository,
                                IDt_InZdp_mes_htyRepository inZdp_Mes_HtyRepository,
                                IDt_ZdpStockRepository zdpStockRepository,
                                IDt_ZdpStock_htyRepository dt_ZdpStock_HtyRepository) : base(BaseDal)
    {
        _unitOfWorkManage = unitOfWorkManage;
@@ -64,7 +79,12 @@
        _WheelsStockRepository = wheelsStockRepository;
        _WheelsStock_HtyRepository = wheelsStock_HtyRepository;
        _InWheels_Mes_HtyRepository = inWheels_Mes_HtyRepository;
        _OutWheels_HtyRepository = dt_OutWheels_HtyRepository;
        _CacheInfoRepository = cacheInfoRepository;
        _InZdp_MesRepository = inZdp_MesRepository;
        _InZdp_Mes_HtyRepository = inZdp_Mes_HtyRepository;
        _ZdpStockRepository = zdpStockRepository;
        _ZdpStock_HtyRepository = dt_ZdpStock_HtyRepository;
    }
    #region å¤–部接口方法
@@ -103,6 +123,39 @@
    #endregion ç§»åº“任务完成
    #region åˆ¶åŠ¨ç›˜ç§»åº“ä»»åŠ¡å®Œæˆ
    /// <summary>
    /// ç§»åº“任务完成
    /// </summary>
    /// <param name="saveModel">任务数据合集</param>
    /// <returns>返回结果集</returns>
    public async Task<WebResponseContent> CompleteZdpTaskAsync(Dt_Task task, Dt_ZdpStock stock)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            // æ›´æ–°è´§ä½å’Œåº“存信息
            (Dt_ZdpStock updateStock, DtLocationInfo locationInForm, DtLocationInfo locationInfoTo) = UpdateZdpStockLocation(stock,task);
            var taskHty = CreateHistoricalTask(task);
            LogFactory.GetLog("任务完成").InfoFormat(true, "移库任务完成", $"货位地址:{task.TargetAddress},修改后库存数据:{JsonConvert.SerializeObject(updateStock)},原先货位数据:{locationInForm}");
            // æ‰§è¡Œæ•°æ®åº“事务
            bool isResult = await ZdpExecuteTransaction(updateStock, taskHty, locationInForm, locationInfoTo, task.TaskId);
            if (isResult)
                content.OK("移库任务完成成功");
            else
                content.Error("移库任务完成失败");
        }
        catch (Exception err)
        {
            Console.WriteLine(err.Message.ToString());
        }
        return content;
    }
    #endregion ç§»åº“任务完成
    #region å…¥åº“任务完成
    /// <summary>
@@ -118,7 +171,17 @@
        {
            // èŽ·å–MES信息和目标位置信息
            var mes_Wheels = await _InWheels_MesRepository.QueryFirstNavAsync(x => x.Wheels_Num == task.PalletCode);
            Dt_InWheels_mes mes_Wheels = null;
            Dt_InZdp_mes mes_Zdp = null;
            Dt_WheelsStock wheelsStock = null;
            Dt_ZdpStock zdpStock = null;
            if (task.TaskType== (int)TaskInboundTypeEnum.InBrake)
                mes_Zdp = await _InZdp_MesRepository.QueryFirstNavAsync(x => x.Zdp_code == task.PalletCode);
            else
                mes_Wheels = await _InWheels_MesRepository.QueryFirstNavAsync(x => x.Wheels_Num == task.PalletCode);
            var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.RoadwayNo == task.Roadway);
            int lastStatus = locationInf.LocationStatus;
@@ -128,39 +191,85 @@
            // åˆ›å»ºåŽ†å²ä»»åŠ¡å®žä¾‹æ¨¡åž‹
            var taskHty = CreateHistoricalTask(task);
            // æ ¹æ®åˆ›å»ºåº“存实例模型
            Dt_WheelsStock wheelsStock = new Dt_WheelsStock
            if(task.TaskType == (int)TaskInboundTypeEnum.InBrake)
            {
                Wheels_ldtm = mes_Wheels.Wheels_ldtm,
                CreateDate = DateTime.Now,
                Creater = task.Creater,
                Wheels_Type = mes_Wheels.Wheels_Type,
                Wheels_gkcc = mes_Wheels.Wheels_gkcc,
                WheelsProps = mes_Wheels.WheelsProps,
                Wheels_CarNo = mes_Wheels.Wheels_CarNo,
                Wheels_CarType = mes_Wheels.Wheels_CarType,
                Wheels_ldxh = mes_Wheels.Wheels_ldxh,
                Wheels_code = mes_Wheels.Wheels_code,
                Wheels_InDate = mes_Wheels.Wheels_InDate,
                Wheels_level = mes_Wheels.Wheels_level,
                Wheels_Location = task.TargetAddress,
                Wheels_NewOrOld = mes_Wheels.Wheels_NewOrOld,
                Wheels_Num = mes_Wheels.Wheels_Num,
                Wheels_psj = mes_Wheels.Wheels_psj,
                Wheels_CurrentStatue = 1,
                Wheels_mttype = mes_Wheels.Wheels_mttype,
                Wheels_ljz = mes_Wheels.Wheels_ljz,
                Wheels_ldh = mes_Wheels.Wheels_ldh,
                //Wheels_SequenceNum = mes_Wheels.Wheels_SequenceNum,
                Wheels_ygljz = mes_Wheels.Wheels_ygljz,
                Wheels_gkzja = mes_Wheels.Wheels_gkzja,
                Wheels_gkzjb = mes_Wheels.Wheels_gkzjb,
                Wheels_gkzjc = mes_Wheels.Wheels_gkzjc,
                // æ ¹æ®åˆ›å»ºåº“存实例模型
                zdpStock = new Dt_ZdpStock
                {
                    Zdp_code= mes_Zdp.Zdp_code,
                    Zdp_ZPH = mes_Zdp.Zdp_ZPH,
                    Zdp_CurrentStatue = 1,
                    Zdp_Location = task.TargetAddress,
                    Zdp_chexing= mes_Zdp.Zdp_chexing,
                    Zdp_neworold = mes_Zdp.Zdp_neworold,
                    Zdp_POS = mes_Zdp.Zdp_POS,
                    Zdp_LSXH = mes_Zdp.Zdp_LSXH,
                    Zdp_MAT = mes_Zdp.Zdp_MAT,
                    Zdp_SITE = mes_Zdp.Zdp_SITE,
                    Zdp_GKA1 = mes_Zdp.Zdp_GKA1,
                    Zdp_GKA2 = mes_Zdp.Zdp_GKA2,
                    Zdp_GKA3 = mes_Zdp.Zdp_GKA3,
                    Zdp_GKA = mes_Zdp.Zdp_GKA,
                    Zdp_GKB1 = mes_Zdp.Zdp_GKB1,
                    Zdp_GKB2 = mes_Zdp.Zdp_GKB2,
                    Zdp_GKB3 = mes_Zdp.Zdp_GKB3,
                    Zdp_GKB = mes_Zdp.Zdp_GKB,
                    Zdp_GKC1 = mes_Zdp.Zdp_GKC1,
                    Zdp_GKC2 = mes_Zdp.Zdp_GKC2,
                    Zdp_GKC3 = mes_Zdp.Zdp_GKC3,
                    Zdp_GKC = mes_Zdp.Zdp_GKC,
                    Zdp_GKJZ = mes_Zdp.Zdp_GKJZ,
                    Zdp_LSCSYMH = mes_Zdp.Zdp_LSCSYMH,
                    Zdp_LMCSYMH = mes_Zdp.Zdp_LMCSYMH,
                    Zdp_rksj = mes_Zdp.Zdp_rksj,
                    CreateDate = DateTime.Now,
                    Creater = task.Creater,
                };
            }
            else
            {
                // æ ¹æ®åˆ›å»ºåº“存实例模型
                 wheelsStock = new Dt_WheelsStock
                {
                    Wheels_ldtm = mes_Wheels.Wheels_ldtm,
                    CreateDate = DateTime.Now,
                    Creater = task.Creater,
                    Wheels_Type = mes_Wheels.Wheels_Type,
                    Wheels_gkcc = mes_Wheels.Wheels_gkcc,
                    WheelsProps = mes_Wheels.WheelsProps,
                    Wheels_CarNo = mes_Wheels.Wheels_CarNo,
                    Wheels_CarType = mes_Wheels.Wheels_CarType,
                    Wheels_ldxh = mes_Wheels.Wheels_ldxh,
                    Wheels_code = mes_Wheels.Wheels_code,
                    Wheels_InDate = mes_Wheels.Wheels_InDate,
                    Wheels_level = mes_Wheels.Wheels_level,
                    Wheels_Location = task.TargetAddress,
                    Wheels_NewOrOld = mes_Wheels.Wheels_NewOrOld,
                    Wheels_Num = mes_Wheels.Wheels_Num,
                    Wheels_psj = mes_Wheels.Wheels_psj,
                    Wheels_CurrentStatue = 1,
                    Wheels_mttype = mes_Wheels.Wheels_mttype,
                    Wheels_ljz = mes_Wheels.Wheels_ljz,
                    Wheels_ldh = mes_Wheels.Wheels_ldh,
                    //Wheels_SequenceNum = mes_Wheels.Wheels_SequenceNum,
                    Wheels_ygljz = mes_Wheels.Wheels_ygljz,
                    Wheels_gkzja = mes_Wheels.Wheels_gkzja,
                    Wheels_gkzjb = mes_Wheels.Wheels_gkzjb,
                    Wheels_gkzjc = mes_Wheels.Wheels_gkzjc,
                };
            }
            };
            // æ‰§è¡Œæ•°æ®åº“事务
            bool isResult = await ExecuteTransaction(wheelsStock, taskHty, locationInf, task.TaskId, mes_Wheels);
            // æ‰§è¡Œæ•°æ®åº“事务ZDPExecuteTransaction
            bool isResult = false;
            if (task.TaskType == (int)TaskInboundTypeEnum.InBrake)
            {
                isResult = await ZDPExecuteTransaction(zdpStock, taskHty, locationInf, task.TaskId, mes_Zdp);
            }
            else
            {
                isResult=await ExecuteTransaction(wheelsStock, taskHty, locationInf, task.TaskId, mes_Wheels);
            }
            if (isResult)
            {
                _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
@@ -188,6 +297,8 @@
        WebResponseContent content = new WebResponseContent();
        try
        {
            if(stock ==null) return content.Error("任务完成失败,未找到当前库存信息,删除失败");
            // æ›´æ–°åº“位状态与任务状态
            (var loc, var tas) = UpdateStockAndTaskStatus(stock, task);
            var taskHty = task.Adapt<Dt_Task_Hty>();
@@ -198,6 +309,35 @@
            stockInfo_Hty.FinishWheelDate = DateTime.Now;
            stockInfo_Hty.OperateType = (int)OperateTypeEnum.自动完成;
            Dt_OutWheels_hty Outwheels_hty = new Dt_OutWheels_hty
            {
                Wheels_code = stock.Wheels_code,
                Wheels_Type = stock.Wheels_Type == "1"?"è½®":"盘",
                Wheels_Num = stock.Wheels_Num,
                CreateDate = DateTime.Now,
                Creater = App.User.UserName == null ? "admin" : App.User.UserName,
                WheelsProps = stock.WheelsProps,
                Wheels_CarNo = stock.Wheels_CarNo,
                Wheels_CarType = stock.Wheels_CarType,
                Wheels_ldxh = stock.Wheels_ldxh,
                Wheels_ldtm = stock.Wheels_ldtm,
                Wheels_InDate = stock.Wheels_InDate,
                Wheels_level = stock.Wheels_level,
                Wheels_NewOrOld = stock.Wheels_NewOrOld,
                Wheels_psj = stock.Wheels_psj,
                Wheels_gkcc = stock.Wheels_gkcc,
                Wheels_gkzja = stock.Wheels_gkzja,
                Wheels_gkzjb = stock.Wheels_gkzjb,
                Wheels_gkzjc = stock.Wheels_gkzjc,
                Wheels_ldh = stock.Wheels_ldh,
                Wheels_ljz = stock.Wheels_ljz,
                Wheels_mttype = stock.Wheels_mttype,
                //Wheels_SequenceNum = "",
                Wheels_ygljz = stock.Wheels_ygljz,
            };
            // äº‹åŠ¡å¤„ç†
            await _unitOfWorkManage.UseTranAsync(async () =>
            {
@@ -206,6 +346,89 @@
                //var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId);                         //删除任务
                var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;                        //加入历史任务
                var isStockHtyAdd = await _WheelsStock_HtyRepository.AddDataAsync(stockInfo_Hty);           //加入历史库存
                var isoutWheelsHtyAdd = await _OutWheels_HtyRepository.AddDataAsync(Outwheels_hty);         //添加车轮出库信息
            });
            return content.OK("任务完成成功", task.Remark);
        }
        catch (Exception err)
        {
            LogFactory.GetLog("任务完成").Error(true, $"系统异常,异常信息:{err.Message}");
            return content.Error(err.Message);
        }
    }
    private (DtLocationInfo, Dt_Task) UpdateStockAndTaskStatus( Dt_Task task)
    {
        var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
        int lastStatus = location.LocationStatus;
        location.LocationStatus = (int)LocationEnum.Free;
        task.TaskState = (int)TaskOutStatusEnum.OutFinish;
        //task.CurrentAddress = task.NextAddress;
        //task.NextAddress = task.TargetAddress;
        _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
        LogFactory.GetLog("任务完成").Info(true, "更新库位状态与任务状态");
        return (location, task);
    }
    #endregion
    #region åˆ¶åŠ¨ç›˜å‡ºåº“ä»»åŠ¡å®Œæˆ
    public async Task<WebResponseContent> CompleteOutZdpTaskAsync(Dt_Task task, Dt_ZdpStock stock)
    {
        WebResponseContent content = new WebResponseContent();
        try
        {
            if (stock == null) return content.Error("任务完成失败,未找到当前库存信息,删除失败");
            // æ›´æ–°åº“位状态与任务状态
            (var loc, var tas) = UpdateStockAndTaskStatus(task);
            var taskHty = task.Adapt<Dt_Task_Hty>();
            taskHty.FinishTime = DateTime.Now;
            taskHty.OperateType = (int)OperateTypeEnum.自动完成;
            Dt_ZdpStock_hty stockInfo_Hty = stock.Adapt<Dt_ZdpStock_hty>();
            stockInfo_Hty.FinishDate = DateTime.Now;
            stockInfo_Hty.OperateType = (int)OperateTypeEnum.自动完成;
            Dt_OutZdp_hty Outwheels_hty = new Dt_OutZdp_hty
            {
                Zdp_code = stock.Zdp_code,
                Zdp_ZPH = stock.Zdp_ZPH,
                Zdp_Location = stock.Zdp_Location,
                Zdp_chexing = stock.Zdp_chexing,
                Zdp_neworold = stock.Zdp_neworold,
                Zdp_POS = stock.Zdp_POS,
                Zdp_LSXH = stock.Zdp_LSXH,
                Zdp_MAT = stock.Zdp_MAT,
                Zdp_SITE = stock.Zdp_SITE,
                Zdp_GKA1 = stock.Zdp_GKA1,
                Zdp_GKA2 = stock.Zdp_GKA2,
                Zdp_GKA3 = stock.Zdp_GKA3,
                Zdp_GKA = stock.Zdp_GKA,
                Zdp_GKB1 = stock.Zdp_GKB1,
                Zdp_GKB2 = stock.Zdp_GKB2,
                Zdp_GKB3 = stock.Zdp_GKB3,
                Zdp_GKB = stock.Zdp_GKB,
                Zdp_GKC1 = stock.Zdp_GKC1,
                Zdp_GKC2 = stock.Zdp_GKC2,
                Zdp_GKC3 = stock.Zdp_GKC3,
                Zdp_GKC = stock.Zdp_GKC,
                Zdp_GKJZ = stock.Zdp_GKJZ,
                Zdp_LSCSYMH = stock.Zdp_LSCSYMH,
                Zdp_rksj = stock.Zdp_rksj,
            };
            // äº‹åŠ¡å¤„ç†
            await _unitOfWorkManage.UseTranAsync(async () =>
            {
                var isStockUpdated = await _ZdpStockRepository.DeleteDataByIdAsync(stock.Zdp_ID);     //删除库存
                var isLocationUpdate = await _locationRepository.UpdateDataAsync(loc);                      //更新库位
                //var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(task.TaskId);                         //删除任务
                var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;                        //加入历史任务
                var isStockHtyAdd = await _ZdpStock_HtyRepository.AddDataAsync(stockInfo_Hty);           //加入历史库存
            });
            return content.OK("任务完成成功", task.Remark);
@@ -258,7 +481,9 @@
        // éªŒè¯åº“存是否存在
        var stock = await _WheelsStockRepository.QueryFirstNavAsync(x => x.Wheels_Num == task.PalletCode);
        var stock = await _WheelsStockRepository.QueryFirstNavAsync(x => x.Wheels_Num.Contains(task.PalletCode) && x.Wheels_Location==task.SourceAddress);
        var ZdpStock = await _ZdpStockRepository.QueryFirstNavAsync(x => x.Zdp_code == task.PalletCode && x.Zdp_Location == task.SourceAddress);
        // æ ¹æ®ä»»åŠ¡ç±»åž‹è°ƒç”¨ç›¸åº”çš„å®Œæˆä»»åŠ¡æ–¹æ³•
        switch (task.TaskType)
@@ -270,13 +495,19 @@
                return await CompleteInboundTaskAsync(task);
            case (int)TaskOutboundTypeEnum.Outbound:
            case (int)TaskOutboundTypeEnum.OutBrake:
            case (int)TaskOutboundTypeEnum.OutWheels:
                LogFactory.GetLog("任务完成").InfoFormat(true, "出库任务", "");
                return await CompleteStackTaskAsync(task, stock);
            case (int)TaskOutboundTypeEnum.OutBrake:
                LogFactory.GetLog("任务完成").InfoFormat(true, "制动盘出库任务", "");
                return await CompleteOutZdpTaskAsync(task, ZdpStock);
            case (int)TaskRelocationTypeEnum.Relocation:
                return await CompleteTransferTaskAsync(task, stock);
                if (stock != null)
                    return await CompleteTransferTaskAsync(task, stock);
                else
                    return await CompleteZdpTaskAsync(task, ZdpStock);
            default:
                return content.Error("任务类型不存在");
@@ -402,75 +633,164 @@
        WebResponseContent content = new WebResponseContent();
        try
        {
            List<Dt_WheelsStock> WheelList = new List<Dt_WheelsStock>();
            List<Dt_ZdpStock> ZdpStockList = new List<Dt_ZdpStock>();
            List<Dt_Task> TaskList = new List<Dt_Task>();
            List<DtLocationInfo> Locationslist = new List<DtLocationInfo>();
            List<WMSTaskDTO> WMSTaskDTOdata = new List<WMSTaskDTO>();
            string palletCode = saveModel.MainData["palletCode"].ToString();
            string station = saveModel.MainData["station"].ToString();
            string outtype = saveModel.MainData["outtype"].ToString();  //1为指定车轮出库,2为指定制动盘出库
            // æŸ¥è¯¢åº“存信息
            var stockInfo = _WheelsStockRepository.QueryFirst(x => x.Wheels_code == palletCode);
            if (stockInfo == null)
            List<string> palletCodes = JsonConvert.DeserializeObject<List<string>>(palletCode);     //把托盘条码显示
            List<DtLocationInfo> locationinfoData = _locationRepository.QueryData(x => x.LocationStatus == 2);  //查找全部库位
            if (outtype == "2")
            {
                return content.Error("未查询到对应的库存信息");
                List<Dt_ZdpStock> stocktData = _ZdpStockRepository.QueryData(x => x.Zdp_CurrentStatue == 1);  //查找全部在库的库存
                foreach (var item in palletCodes)
                {
                    Dt_ZdpStock zdpInfo = _ZdpStockRepository.QueryFirst(x => x.Zdp_code == item);
                    if (zdpInfo == null) return content.Error("未查询到对应的库存信息");
                    zdpInfo.Zdp_CurrentStatue = 4;
                    string Location = zdpInfo.Zdp_Location;
                    var locationst = locationinfoData.FirstOrDefault(x => x.LocationCode == Location);
                    if (locationst.LocationStatus != (int)LocationEnum.InStock && locationst.EnalbeStatus != 1) return content.Error($"库位异常,请检查一下库位,库存条码:{item},库位号:{Location}");
                    locationst.LocationStatus = (int)LocationEnum.InStockDisable;
                    var task = BaseDal.QueryFirst(x => x.PalletCode == item);
                    if (task != null)
                    {
                        return content.Error($"【{item}】已存在任务");
                    }
                    CheckInfo checkInfo = new CheckInfo()
                    {
                        CarType = zdpInfo.Zdp_chexing ,
                        MTType ="0" ,    //制动盘没有动拖属性
                        //CheckType = stockInfo.Wheels_Type == "1" ? "1" : "2",
                        CheckType = outtype,
                        HubLevel = "0" ,
                        CLTM =zdpInfo.Zdp_code,
                        IsCheck = true,
                        Standards = zdpInfo.Zdp_neworold
                    };
                    task = new Dt_Task
                    {
                        CarType = zdpInfo.Zdp_chexing,
                        wheels_gkcc =  zdpInfo.Zdp_GKJZ,
                        WheelsNewOrOld = zdpInfo.Zdp_neworold,
                        WheelsLX = "",
                        Grade = 1,
                        Roadway = "SC1",
                        TargetAddress = station,
                        Dispatchertime = DateTime.Now,
                        MaterialNo = "",
                        NextAddress = "2010",
                        OrderNo = null,
                        PalletCode =  zdpInfo.Zdp_code,
                        wheels_mttype =  "" ,
                        SourceAddress = zdpInfo.Zdp_Location,
                        CurrentAddress =zdpInfo.Zdp_Location,
                        TaskState = (int)TaskOutStatusEnum.OutNew,
                        TaskType = outtype == "2" ? (int)TaskOutboundTypeEnum.OutBrake : (int)TaskOutboundTypeEnum.OutWheels,
                        TaskNum = BaseDal.GetTaskNo().Result,
                        Creater = "System",
                        CreateDate = DateTime.Now,
                        TaskId = 0,
                        task_bak1 = JsonConvert.SerializeObject(checkInfo),
                        Towhereabouts = station,
                    };
                    // åˆ›å»ºä»»åŠ¡ä¼ è¾“ç”¨çš„DTO对象
                    var taskDTO = CreateTaskDTO(task);
                    WMSTaskDTOdata.Add(taskDTO);
                    Locationslist.Add(locationst);
                    TaskList.Add(task);
                    ZdpStockList.Add(zdpInfo);
                }
            }
            else
            {
                List<Dt_WheelsStock> stocktData = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1);  //查找全部在库的库存
                foreach (var item in palletCodes)
                {
                    Dt_WheelsStock stockInfo = _WheelsStockRepository.QueryFirst(x => x.Wheels_code == item);
                    if (stockInfo == null) return content.Error("未查询到对应的库存信息");
                    stockInfo.Wheels_CurrentStatue = 4;
                    string Location = stockInfo.Wheels_Location;
                    var locationst = locationinfoData.Where(x => x.LocationCode== stockInfo.Wheels_Location).FirstOrDefault();
                    if (locationst.LocationStatus == (int)LocationEnum.Lock) return content.Error("库位锁定,请先解锁后再指定出库");
                    locationst.LocationStatus = (int)LocationEnum.InStockDisable;
                    var task = BaseDal.QueryFirst(x => x.PalletCode == item);
                    if (task != null)
                    {
                        return content.Error($"【{item}】已存在任务");
                    }
                    CheckInfo checkInfo = new CheckInfo()
                    {
                        CarType = stockInfo.Wheels_CarType,
                        MTType = stockInfo.Wheels_mttype,    //制动盘没有动拖属性
                        //CheckType = stockInfo.Wheels_Type == "1" ? "1" : "2",
                        CheckType = outtype,
                        HubLevel = stockInfo.Wheels_level.Contains("等级") ? stockInfo.Wheels_level.Replace("等级", "") : "0",
                        CLTM = stockInfo.Wheels_Num,
                        IsCheck = true,
                        Standards = stockInfo.Wheels_NewOrOld
                    };
                    task = new Dt_Task
                    {
                        CarType =  stockInfo.Wheels_CarType,
                        wheels_gkcc = stockInfo.Wheels_gkcc,
                        WheelsNewOrOld =  stockInfo.Wheels_NewOrOld,
                        WheelsLX = outtype == "2" ? "" : stockInfo.Wheels_ldxh,
                        Grade = 1,
                        Roadway = "SC1",
                        TargetAddress = station,
                        Dispatchertime = DateTime.Now,
                        MaterialNo = "",
                        NextAddress = "2010",
                        OrderNo = null,
                        PalletCode =  stockInfo.Wheels_Num,
                        wheels_mttype = stockInfo.Wheels_mttype,
                        SourceAddress =stockInfo.Wheels_Location,
                        CurrentAddress =  stockInfo.Wheels_Location,
                        TaskState = (int)TaskOutStatusEnum.OutNew,
                        TaskType = outtype == "2" ? (int)TaskOutboundTypeEnum.OutBrake : (int)TaskOutboundTypeEnum.OutWheels,
                        TaskNum = BaseDal.GetTaskNo().Result,
                        Creater = "System",
                        CreateDate = DateTime.Now,
                        TaskId = 0,
                        task_bak1 = JsonConvert.SerializeObject(checkInfo),
                        Towhereabouts = station,
                    };
                    // åˆ›å»ºä»»åŠ¡ä¼ è¾“ç”¨çš„DTO对象
                    var taskDTO = CreateTaskDTO(task);
                    WMSTaskDTOdata.Add(taskDTO);
                    Locationslist.Add(locationst);
                    TaskList.Add(task);
                    WheelList.Add(stockInfo);
                }
            }
            if (stockInfo.Wheels_CurrentStatue != 1) return content.Error("指定失败:当前状态不允许指定出库");
            stockInfo.Wheels_CurrentStatue = 4;
            //查询库位是否锁定,
            var location = _locationRepository.QueryFirst(x => x.LocationCode == stockInfo.Wheels_Location);
            if (location.LocationStatus == (int)LocationEnum.Lock) return content.Error("库位锁定,请先解锁后再指定出库");
            location.LocationStatus = (int)LocationEnum.InStockDisable;
            var task = BaseDal.QueryFirst(x => x.PalletCode == palletCode);
            if (task != null)
            {
                return content.Error($"【{palletCode}】已存在任务");
            }
            CheckInfo checkInfo = new CheckInfo()
            {
                CarType = stockInfo.Wheels_CarType,
                MTType = stockInfo.Wheels_mttype,
                CheckType = stockInfo.Wheels_Type == "1" ? "1" : "2",
                HubLevel = stockInfo.Wheels_level.Contains("等级") ? stockInfo.Wheels_level.Replace("等级", "") : "0",
                CLTM = stockInfo.Wheels_Num,
                IsCheck = true,
                Standards = stockInfo.Wheels_NewOrOld
            };
            // var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == station);
            // åˆ›å»ºå¹¶æ·»åŠ ä»»åŠ¡åˆ°æ•°æ®åº“
            task = new Dt_Task
            {
                CarType = stockInfo.Wheels_CarType,
                wheels_gkcc = stockInfo.Wheels_gkcc,
                WheelsNewOrOld = stockInfo.Wheels_NewOrOld,
                WheelsLX = stockInfo.Wheels_ldxh,
                Grade = 1,
                Roadway = "SC1",
                TargetAddress = station,
                Dispatchertime = DateTime.Now,
                MaterialNo = "",
                NextAddress = "2010",
                OrderNo = null,
                PalletCode = stockInfo.Wheels_Num,
                wheels_mttype = stockInfo.Wheels_mttype,
                SourceAddress = stockInfo.Wheels_Location,
                CurrentAddress = stockInfo.Wheels_Location,
                TaskState = (int)TaskOutStatusEnum.OutNew,
                TaskType = (int)TaskOutboundTypeEnum.OutWheels,
                TaskNum = BaseDal.GetTaskNo().Result,
                Creater = "System",
                CreateDate = DateTime.Now,
                TaskId = 0,
                task_bak1 = JsonConvert.SerializeObject(checkInfo)
            };
            // åˆ›å»ºä»»åŠ¡ä¼ è¾“ç”¨çš„DTO对象
            var taskDTO = CreateTaskDTO(task);
            // èŽ·å–WMS IP地址用于发送任务请求
            var wmsIpAddress = GetWCSIpReceiveTask();
@@ -478,19 +798,25 @@
            {
                throw new InvalidOperationException("WMS IP æœªé…ç½®");
            }
            var tasks = new List<WMSTaskDTO>() { taskDTO };
            // å‘送任务请求到WMS
            var result = HttpHelper.Post(wmsIpAddress, tasks.ToJsonString());
            var result = HttpHelper.Post(wmsIpAddress, WMSTaskDTOdata.ToJsonString());
            content = JsonConvert.DeserializeObject<WebResponseContent>(result);
            if (content.Status)
            {
                // æ·»åŠ ä»»åŠ¡åˆ°æ•°æ®åº“
                BaseDal.AddData(task);
                BaseDal.AddData(TaskList);
                // æ›´æ–°åº“位位置状态为不可用
                _locationRepository.UpdateData(location);
                _WheelsStockRepository.UpdateData(stockInfo);
                _locationRepository.UpdateData(Locationslist);
                if (outtype == "2")
                {
                    _ZdpStockRepository.UpdateData(ZdpStockList);
                }
                else
                {
                    _WheelsStockRepository.UpdateData(WheelList);
                }
            }
        }
        catch (Exception ex)
        {
@@ -747,9 +1073,32 @@
        return (stock, fromLocation, toLocation);
    }
    #region æ‰§è¡Œæ•°æ®åº“事务
    /// <summary>
    /// æ‰§è¡Œæ•°æ®åº“事务
    /// åˆ¶åŠ¨ç›˜æ›´æ–°åº“å­˜ä½ç½®
    /// </summary>
    /// <param name="stock"></param>
    /// <param name="task"></param>
    /// <returns></returns>
    private (Dt_ZdpStock, DtLocationInfo, DtLocationInfo) UpdateZdpStockLocation(Dt_ZdpStock stock, Dt_Task task)
    {
        //修改来源库位和 ç›®æ ‡åº“位状态
        var fromLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
        fromLocation.LocationStatus = (int)LocationEnum.Free;
        var toLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.TargetAddress && x.RoadwayNo == task.Roadway);
        toLocation.LocationStatus = (int)LocationEnum.InStock;
        // å°†åº“存位置设置为目标位置
        stock.Zdp_Location = task.TargetAddress;
        // è¿”回更新后的库存和位置信息
        return (stock, fromLocation, toLocation);
    }
    #region è½¦è½®æ‰§è¡Œæ•°æ®åº“事务
    /// <summary>
    /// è½¦è½®æ‰§è¡Œæ•°æ®åº“事务
    /// </summary>
    /// <param name="stock">库存对象</param>
    /// <param name="taskHty">历史任务对象</param>
@@ -812,6 +1161,71 @@
    }
    #endregion
    #region åˆ¶åŠ¨ç›˜æ‰§è¡Œæ•°æ®åº“äº‹åŠ¡
    /// <summary>
    ///  åˆ¶åŠ¨ç›˜æ‰§è¡Œæ•°æ®åº“äº‹åŠ¡
    /// </summary>
    /// <param name="stock">库存对象</param>
    /// <param name="taskHty">历史任务对象</param>
    /// <param name="taskId">任务ID</param>
    /// <returns></returns>
    private async Task<bool> ZDPExecuteTransaction(Dt_ZdpStock stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, Dt_InZdp_mes inZdp_Mes = null)
    {
        _unitOfWorkManage.BeginTran();
        try
        {
            var isUpdateStock = false;
            var isDeleteWheelsMes = false;
            // æ·»åŠ åº“å­˜
            isUpdateStock = _ZdpStockRepository.AddData(stock) > 0;
            if (inZdp_Mes != null)
            {
                isDeleteWheelsMes = _InZdp_MesRepository.DeleteData(inZdp_Mes);
                var InZdp_mes_hty = inZdp_Mes.Adapt<Dt_InZdp_mes_hty>();
                InZdp_mes_hty.Zdp_CurrentStatue = "2";
                InZdp_mes_hty.FinishDate = DateTime.Now;
                InZdp_mes_hty.OperateType = (int)OperateTypeEnum.自动完成;
                _InZdp_Mes_HtyRepository.AddData(InZdp_mes_hty);
            }
            // æ·»åŠ åŽ†å²ä»»åŠ¡
            var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
            // ä¿®æ”¹ç§»åº“前货位状态
            var isUpdateLoc = _locationRepository.UpdateData(locationInfo);
            // åˆ é™¤ä»»åŠ¡æ•°æ®
            var isTaskDelete = await Delete(taskId);
            // æäº¤æˆ–回滚事务
            if (isUpdateStock && isTaskHtyAdd && isTaskDelete && isUpdateLoc && isDeleteWheelsMes)
            {
                LogFactory.GetLog("任务完成").InfoFormat(true, "任务完成", $"事务处理完成,提交事务。添加历史任务:{isTaskHtyAdd},删除任务数据:{isTaskDelete},更新或添加库存:{isUpdateStock},修改入库前货位状态:{isUpdateLoc}");
                _unitOfWorkManage.CommitTran();
                return true;
            }
            else
            {
                LogFactory.GetLog("任务完成").InfoFormat(true, "任务完成", $"数据处理失败,请检查数据是否正确,数据回滚。添加历史任务:{isTaskHtyAdd},删除任务数据:{isTaskDelete},更新库存:{isUpdateStock},修改入库前货位状态:{isUpdateLoc}");
                _unitOfWorkManage.RollbackTran();
                return false;
            }
        }
        catch (Exception err)
        {
            LogFactory.GetLog("任务完成").InfoFormat(true, $"任务完成,系统异常,异常信息:{err.Message}", "无参数");
            _unitOfWorkManage.RollbackTran();
            throw; // æŠ›å‡ºå¼‚常以便外部捕获
        }
    }
    #endregion
    #region ç§»åº“任务事务
    private async Task<bool> ExecuteTransaction(Dt_WheelsStock stock, Dt_Task_Hty taskHty, DtLocationInfo fromLocation, DtLocationInfo toLocation, int taskId)
@@ -855,6 +1269,49 @@
    #endregion MyRegion
    #region åˆ¶åŠ¨ç›˜ç§»åº“ä»»åŠ¡äº‹åŠ¡
    private async Task<bool> ZdpExecuteTransaction(Dt_ZdpStock stock, Dt_Task_Hty taskHty, DtLocationInfo fromLocation, DtLocationInfo toLocation, int taskId)
    {
        _unitOfWorkManage.BeginTran();
        try
        {
            var isUpdateStock = _ZdpStockRepository.UpdateData(stock);
            // æ·»åŠ åŽ†å²ä»»åŠ¡
            var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
            // ä¿®æ”¹ç§»åº“前货位状态
            var isUpdateLocF = _locationRepository.UpdateData(fromLocation);
            var isUpdateLocT = _locationRepository.UpdateData(toLocation);
            // åˆ é™¤ä»»åŠ¡æ•°æ®
            var isTaskDelete = await Delete(taskId);
            // æäº¤æˆ–回滚事务
            if (isUpdateStock && isTaskHtyAdd && isTaskDelete && isUpdateLocF && isUpdateLocT)
            {
                LogFactory.GetLog("任务完成").InfoFormat(true, "任务完成", $"事务处理完成,提交事务。添加历史任务:{isTaskHtyAdd},删除任务数据:{isTaskDelete},更新或添加库存:{isUpdateStock},修改移库前货位状态:{isUpdateLocF}");
                _unitOfWorkManage.CommitTran();
                return true;
            }
            else
            {
                LogFactory.GetLog("任务完成").InfoFormat(true, "任务完成", $"数据处理失败,请检查数据是否正确,数据回滚。添加历史任务:{isTaskHtyAdd},删除任务数据:{isTaskDelete},更新库存:{isUpdateStock},修改移库前货位状态:{isUpdateLocF}");
                _unitOfWorkManage.RollbackTran();
                return false;
            }
        }
        catch (Exception err)
        {
            LogFactory.GetLog("任务完成").InfoFormat(true, $"任务完成,系统异常,异常信息:{err.Message}", "无参数");
            _unitOfWorkManage.RollbackTran();
            throw new Exception(err.Message); // æŠ›å‡ºå¼‚常以便外部捕获
        }
    }
    #endregion MyRegion
    #region ä»»åŠ¡è¯·æ±‚æ–¹æ³•
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_Task_HtyService.cs
@@ -1,25 +1,71 @@
namespace WIDESEA_StorageTaskServices;
using Autofac.Core;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_DTO.WMS;
using WIDESEA_StorageBasicRepository;
namespace WIDESEA_StorageTaskServices;
public class Dt_Task_HtyService : ServiceBase<Dt_Task_Hty, IDt_Task_HtyRepository>, IDt_Task_HtyService
{
    private readonly IUnitOfWorkManage _unitOfWorkManage;
    private readonly IDt_OutOrderService _outOrderService;
    private readonly IDt_TaskService _taskService;
    public Dt_Task_HtyService(IDt_Task_HtyRepository BaseDal,
                                    IUnitOfWorkManage unitOfWorkManage,
                                    IDt_OutOrderService outOrderService) : base(BaseDal)
                                    IDt_OutOrderService outOrderService,
                                    IDt_TaskService taskService) : base(BaseDal)
    {
        _unitOfWorkManage = unitOfWorkManage;
        _outOrderService = outOrderService;
        _taskService = taskService;
    }
    /// <summary>
    /// æ·»åŠ åŽ†å²ä»»åŠ¡
    /// </summary>
    /// <param name="task">历史任务Model</param>
    /// <returns>成功/失败</returns>
    public bool InsertTask(Dt_Task_Hty task)
    public WebResponseContent TaskRollback(int input)
    {
        return BaseDal.InsertTask(task);
        WebResponseContent content = new WebResponseContent();
        try
        {
            Dt_Task_Hty dt_Task_ = BaseDal.QueryFirst(x => x.TaskId == input);
            if(dt_Task_ == null)
            {
                return content.Error("未查找到数据");
            }
            // åˆ›å»ºWMS任务
            Dt_Task taskDTO = new Dt_Task()
            {
                TaskNum = dt_Task_.TaskNum.Value,
                Grade = dt_Task_.Grade.Value,
                PalletCode = dt_Task_.PalletCode,
                Roadway = dt_Task_.Roadway,
                SourceAddress = dt_Task_.SourceAddress,
                TargetAddress = dt_Task_.TargetAddress,
                CurrentAddress=dt_Task_.CurrentAddress,
                NextAddress = dt_Task_.NextAddress,
                TaskState = 999,
                TaskType = dt_Task_.TaskType,
                wheels_mttype = dt_Task_.wheels_mttype,
                CarType = dt_Task_.CarType,
                wheels_gkcc = dt_Task_.wheels_gkcc,
                WheelsNewOrOld = dt_Task_.WheelsNewOrOld,
                IsCheck = dt_Task_.IsCheck,
                WheelsLX = dt_Task_.WheelsLX,
                CreateDate = DateTime.Now,
                Dispatchertime=dt_Task_.Dispatchertime,
                Creater ="任务回滚"
            };
            _taskService.AddData(taskDTO);
            return content.OK("成功");
        }
        catch (Exception ex)
        {
            return content.Error(ex.Message);
            throw;
        }
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -1,6 +1,7 @@
using log4net.Core;
using Masuit.Tools;
using System.Collections.Generic;
using System.Net;
using WIDESEA_Common;
using WIDESEA_Core.Const;
using WIDESEA_DTO.WMS;
@@ -39,10 +40,23 @@
            var inWheelsInfo = _InWheels_MesRepository.QueryFirst(x => x.Wheels_CurrentStatue == "0");
            //查询创建的制动盘信息
            var inZDPInfo = _InZdp_MesRepository.QueryFirst(x => x.Zdp_CurrentStatue == "0");
            //查询创建的制动盘信息
            //var inBrakeInfo = _InWheels_MesRepository.QueryFirst(x => x.Wheels_CurrentStatue == "0");
            //if (inBrakeInfo == null) throw new Exception("当前无车轮或制动盘入库信息");
            if (inWheelsInfo == null /*&& inBrakeInfo == null*/) throw new Exception("当前无车轮或制动盘入库信息");
            //当车轮信息与制动盘信息同时出现需要入库的,则不可入库
            if(inWheelsInfo != null && inZDPInfo != null) throw new Exception("当前出现制动盘与车轮同时入库申请,申请错误,请确保只有一个执行入库");
            if (inWheelsInfo == null && inZDPInfo == null) throw new Exception("当前无车轮或制动盘入库信息");
            //默认为车轮入库,但是当车轮信息为空则为制动盘入库
            int rktype = 1;
            if(inWheelsInfo == null)
            {
                 rktype = 2;
            }
            var newtask = new Dt_Task
            {
@@ -54,16 +68,16 @@
                MaterialNo = "",
                NextAddress = input.Roadways,
                OrderNo = null,
                PalletCode = inWheelsInfo.Wheels_Num,
                PalletCode = rktype==1?inWheelsInfo.Wheels_Num: inZDPInfo.Zdp_code,
                SourceAddress = input.Position,
                TaskState = (int)TaskInStatusEnum.InNew,
                TaskType = (int)TaskInboundTypeEnum.InWheels,  //inWheelsInfo == null ? (int)TaskInboundTypeEnum.InBrake :
                TaskType = rktype == 1 ? (int)TaskInboundTypeEnum.InWheels: (int)TaskInboundTypeEnum.InBrake,  //inWheelsInfo == null ? (int)TaskInboundTypeEnum.InBrake :
                TaskNum = await BaseDal.GetTaskNo(),
                CarType = inWheelsInfo.Wheels_CarType,
                CarType = rktype == 1 ? inWheelsInfo.Wheels_CarType:inZDPInfo.Zdp_chexing,
                IsCheck = true,
                wheels_mttype = inWheelsInfo.Wheels_mttype,
                wheels_gkcc = inWheelsInfo.Wheels_gkcc,
                WheelsNewOrOld = inWheelsInfo.Wheels_NewOrOld,
                wheels_mttype = rktype == 1 ? inWheelsInfo.Wheels_mttype:"",
                wheels_gkcc = rktype == 1 ? inWheelsInfo.Wheels_gkcc: inZDPInfo.Zdp_GKJZ,
                WheelsNewOrOld = rktype == 1 ? inWheelsInfo.Wheels_NewOrOld : inZDPInfo.Zdp_neworold,
                Creater = "Systeam"
            };
@@ -93,8 +107,17 @@
                    WheelsLX = newtask.WheelsLX,
                };
                inWheelsInfo.Wheels_CurrentStatue = "1";
                _InWheels_MesRepository.UpdateData(inWheelsInfo);
                if (rktype == 2)
                {
                    inZDPInfo.Zdp_CurrentStatue = "1";
                    _InZdp_MesRepository.UpdateData(inZDPInfo);
                }
                else
                {
                    inWheelsInfo.Wheels_CurrentStatue = "1";
                    _InWheels_MesRepository.UpdateData(inWheelsInfo);
                }
                content.OK(data: taskDTO);
            }
@@ -236,19 +259,52 @@
        WebResponseContent content = new WebResponseContent();
        try
        {
            var cacheinfo = await _CacheInfoRepository.QueryFirstAsync(x => x.czh == input.PalletCode);
            /*var cacheinfo = await BaseDal.QueryFirstAsync(x => x.task_CZInfo == input.PalletCode);
            if (cacheinfo == null) throw new Exception($"未找到{input.PalletCode}车轴缓存位信息");
            return content.OK(data: cacheinfo.targetAddress);
            if(cacheinfo.Towhereabouts =="" && cacheinfo.Towhereabouts == null) throw new Exception($"{input.PalletCode}运输目标地址为空");
            return content.OK(data: cacheinfo.Towhereabouts);*/
            var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
            if (task == null) throw new Exception($"未找到{input.PalletCode}托盘信息");
            if (task.Towhereabouts == "" && task.Towhereabouts == null) throw new Exception($"{input.PalletCode}运输目标地址为空");
            return content.OK(data: task.Towhereabouts);
        }
        catch (Exception err)
        {
            // å¦‚果发生异常,则调用content.Error方法,记录错误信息,并输出错误信息
            content.Error(err.Message);
            Console.WriteLine($"车轮流向分配失败:{err.Message}");
            Console.WriteLine($"车轮流向分配失败:{err.Message},托盘条码:{input.PalletCode}");
            return content;
        }
    }
    public WebResponseContent UpWheelsFlow(SaveModel saveModel)
    {
        WebResponseContent webResponse = new WebResponseContent();
        try
        {
            string CZTM = saveModel.MainData["CZTM"].ToString();
            string TargetAddress = saveModel.MainData["TargetAddress"].ToString();
            List<Dt_Task> taskt = BaseDal.QueryData(x => x.task_CZInfo == CZTM).ToList();
            if (taskt.Count() == 0)
                return webResponse.Error($"未找到对应车轴:{CZTM}的车轮出库信息");
            foreach (var item in taskt)
            {
                item.Towhereabouts = TargetAddress;
            }
            BaseDal.UpdateData(taskt);
            return webResponse.OK();
        }
        catch (Exception ex)
        {
            // å¦‚果发生异常,则调用content.Error方法,记录错误信息,并输出错误信息
            webResponse.Error(ex.Message);
            return webResponse;
        }
    }
    #endregion
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/APP/ToAPPController.cs
@@ -19,7 +19,7 @@
        _httpContextAccessor = httpContextAccessor;
        _AppService = appervice;
    }
    /// <summary>
    /// ä¿å­˜è½¦è½®ä¿¡æ¯
    /// </summary>
@@ -32,6 +32,17 @@
    }
    /// <summary>
    /// è½¦è½®ç›´èµ°
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost, Route("SaveCLStraight"), AllowAnonymous]
    public WebResponseContent SaveCLStraight([FromBody] SaveModel saveModel)
    {
        return _AppService.SaveCLStraight(saveModel);
    }
    /// <summary>
    /// ä¿å­˜è½¦è½´ä¿¡æ¯
    /// </summary>
    /// <param name="input"></param>
@@ -41,6 +52,18 @@
    {
        return _AppService.SaveCZInfo(input);
    }
    /// <summary>
    /// ä¿å­˜è½¦è½´ä¿¡æ¯
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost, Route("SaveCZStraight"), AllowAnonymous]
    public WebResponseContent SaveCZStraight([FromBody] SaveModel input)
    {
        return _AppService.SaveCZStraight(input);
    }
    /// <summary>
    /// ä¿å­˜é¢„选车轴信息
    /// </summary>
@@ -51,4 +74,36 @@
    {
        return _AppService.SaveCZInfo2(input);
    }
    /// <summary>
    /// åˆ¶åŠ¨ç›˜å…¥åº“
    /// </summary>
    /// <param name="saveModel"></param>
    /// <returns></returns>
    [HttpPost, Route("SaveZDPInfo"), AllowAnonymous]
    public WebResponseContent SaveZDPInfo([FromBody] SaveModel saveModel)
    {
        return _AppService.SaveZDPInfo(saveModel);
    }
    /// <summary>
    /// åˆ¶åŠ¨ç›˜é€‰é…
    /// </summary>
    /// <param name="saveModel"></param>
    /// <returns></returns>
    [HttpPost, Route("SaveZDPXPInfo"), AllowAnonymous]
    public WebResponseContent SaveZDPXPInfo([FromBody] SaveModel saveModel)
    {
        return _AppService.SaveZDPXPInfo(saveModel);
    }
    /// <summary>
    /// è½¦è½®ç›´èµ°
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost, Route("SaveZDPStraight"), AllowAnonymous]
    public WebResponseContent SaveZDPStraight([FromBody] SaveModel saveModel)
    {
        return _AppService.SaveZDPStraight(saveModel);
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/Dt_CZInfo_mesController.cs
@@ -1,4 +1,6 @@
namespace WIDESEA_WMSServer.Controllers;
using WIDESEA_DTO;
namespace WIDESEA_WMSServer.Controllers;
[Route("api/[controller]")]
[ApiController]
@@ -8,4 +10,25 @@
    {
    }
    /// <summary>
    /// è½¦è½´ä¸Šæ–™ï¼Œåé¦ˆæ¡ç 
    /// </summary>
    /// <param name="saveModel"></param>
    /// <returns></returns>
    [HttpPost, AllowAnonymous, Route("RequestAxleloading")]
    public WebResponseContent RequestAxleloading([FromBody] RequestTaskDto input)
    {
        return Service.RequestAxleloading(input);
    }
    /// <summary>
    /// è½¦è½´çŠ¶æ€æ›´æ”¹
    /// </summary>
    /// <param name="saveModel"></param>
    /// <returns></returns>
    [HttpPost, AllowAnonymous, Route("UpdateAxleCurrentStatue")]
    public WebResponseContent UpdateAxleCurrentStatue([FromBody] RequestTaskDto input)
    {
        return Service.UpdateAxleCurrentStatue(input);
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/LocationInfoController.cs
@@ -36,4 +36,13 @@
    {
        return Service.LocationEnable(saveModel);
    }
    //获取货位状态信息
    [HttpPost, AllowAnonymous, Route("LocationStatus")]
    public WebResponseContent LocationStatus()
    {
        return Service.LocationStatus();
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/Dt_WheelsStockController.cs
@@ -10,4 +10,14 @@
    {
    }
    /// <summary>
    /// åº“存信息统计
    /// </summary>
    /// <returns></returns>
    [HttpPost, AllowAnonymous, Route("InventoryStatistics")]
    public WebResponseContent InventoryStatistics()
    {
        return Service.InventoryStatistics();
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
@@ -1,5 +1,4 @@
using WIDESEA_DTO;
using static WIDESEA_DTO.RequestTaskDto;
namespace WIDESEA_WMSServer.Controllers;
@@ -56,6 +55,16 @@
        return new WebResponseContent().OK(data: await _locationService.TransferCheckAsync(input));
    }
    /// <summary>
    /// æ£€æŸ¥å…¥åº“是否需要进行移库
    /// </summary>
    /// <param name="taskNum">任务号</param>
    /// <returns>任务</returns>
    [HttpPost, Route("InTransferCheckAsync"), AllowAnonymous]
    public async Task<WebResponseContent> InTransferCheckAsync([FromBody] RequestTaskDto input)
    {
        return new WebResponseContent().OK(data: await _locationService.InTransferCheckAsync(input));
    }
    /// <summary>
    /// è¯·æ±‚任务巷道
@@ -122,4 +131,15 @@
    {
        return Service.CreateAndSendOutboundTask(saveModel);
    }
    /// <summary>
    /// ä¿®æ”¹è½¦è½®å޻向
    /// </summary>
    /// <param name="input">请求数据</param>
    /// <returns></returns>
    [HttpPost, AllowAnonymous, Route("UpWheelsFlow")]
    public WebResponseContent UpWheelsFlow([FromBody] SaveModel saveModel)
    {
        return  Service.UpWheelsFlow(saveModel);
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task_HtyController.cs
@@ -23,4 +23,39 @@
        _locationService = locationService;
    }
    /// <summary>
    /// æ£€æŸ¥æ˜¯å¦éœ€è¦è¿›è¡Œç§»åº“
    /// </summary>
    /// <param name="taskNum">任务号</param>
    /// <returns>任务</returns>
    [HttpPost, Route("TransferCheckAsync"), AllowAnonymous]
    public async Task<WebResponseContent> TransferCheckAsync([FromBody] RequestTaskDto input)
    {
        return new WebResponseContent().OK(data: await _locationService.TransferCheckAsync(input));
    }
    /// <summary>
    /// æ£€æŸ¥å…¥åº“任务是否需要进行移库
    /// </summary>
    /// <param name="taskNum">任务号</param>
    /// <returns>任务</returns>
    [HttpPost, Route("InTransferCheckAsync"), AllowAnonymous]
    public async Task<WebResponseContent> InTransferCheckAsync([FromBody] RequestTaskDto input)
    {
        return new WebResponseContent().OK(data: await _locationService.InTransferCheckAsync(input));
    }
    /// <summary>
    /// åŽ†å²ä»»åŠ¡å›žæ»š
    /// </summary>
    /// <param name="input">请求数据</param>
    /// <returns></returns>
    [HttpGet, AllowAnonymous, Route("TaskRollback")]
    public  WebResponseContent TaskRollback(int input)
    {
        return _task_HtyService.TaskRollback(input);
    }
}
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/WCS/WCSController.cs
@@ -1,9 +1,11 @@
using AutoMapper.Configuration.Annotations;
using Autofac.Core;
using AutoMapper.Configuration.Annotations;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core.BaseController;
using WIDESEA_DTO;
using WIDESEA_IStoragIntegrationServices;
using WIDESEA_StoragIntegrationServices;
namespace WIDESEA_WMSServer.Controllers;
@@ -20,5 +22,5 @@
        _WCSService = WCSService;
    }
}