68a0a0dd798604f21167ee8870103b850dbde2e6..0c04de484a2a2bebbd08a06a604c3cdbb7b9cb47
2 天以前 yyb
移库和盘点报告盘点页面绘制完成
0c04de 对比 | 目录
2 天以前 yyb
移库页面绘制
5359fd 对比 | 目录
2 天以前 yyb
盘点报告盘点
5acf31 对比 | 目录
2 天以前 spring
联调pda扫码功能,解决pda上面样式问题
2f26ba 对比 | 目录
已修改10个文件
已重命名12个文件
已添加1个文件
2839 ■■■■■ 文件已修改
components/scan/scan.vue 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json 371 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/cancelReport/index.vue 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/feed/locationList.vue 267 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/report/index.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sys/home/index.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/sys/user/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wareHouse/inventory/index.vue 720 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wareHouse/inventory/orderList.vue 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wareHouse/moveWareHouse/index.vue 810 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/eight.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/eleven.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/five.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/four.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/nine.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/one.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/seven.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/six.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/ten.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/three.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/twelve.png 补丁 | 查看 | 原始文档 | blame | 历史
static/custom/home/two.png 补丁 | 查看 | 原始文档 | blame | 历史
components/scan/scan.vue
@@ -1,93 +1,167 @@
<template>
    <view>
        <view class="content">
            <!-- <text>扫描结果:{{ scanResult }}</text> -->
        </view>
    </view>
</template>
<script>
    var main, receiver, filter;
    var action, extraKey;
    var _codeQueryTag = false;
    export default {
        data() {
            return {
                scanCode: ''
            }
        },
        created: function(option) {
            uni.getSystemInfo({
                success: (res) => {
                    var brand = res.brand.toUpperCase();
                    var model = res.model.toUpperCase();
                    if (brand.indexOf("ZEBRA")!=-1 && model.indexOf("TC2")!=-1) {
                         action = "com.zebra.scan";
                         extraKey = "com.motorolasolutions.emdk.datawedge.data_string";
                    } else if (brand.indexOf("SEUIC")!=-1||brand.indexOf("AUTOID")!=-1) {
                         action = "com.android.server.scannerservice.broadcast";
                         extraKey = "scannerdata";
                    }else{
                        return;
                    }
                    console.log(action);
                    console.log(extraKey);
                    this.initScan()
                    this.startScan();
var main, receiver, filter;
var action, extraKey;
var _codeQueryTag = false;
export default {
    data() {
        return {
            scanCode: '',
            scanResult: ''
        }
    },
    created() {
        uni.getSystemInfo({
            success: (res) => {
                var brand = res.brand.toUpperCase();
                var model = res.model.toUpperCase();
                console.log('设备品牌:', brand);
                console.log('设备型号:', model);
                // Zebra设备配置
                if (brand.indexOf("ZEBRA") != -1 && model.indexOf("TC2") != -1) {
                    action = "com.zebra.scan";
                    extraKey = "com.motorolasolutions.emdk.datawedge.data_string";
                }
            })
                // AUTOID9N设备配置
                else if (brand.indexOf("SEUIC") != -1 || brand.indexOf("AUTOID") != -1) {
                    // AUTOID9N专用配置
                    if (model.indexOf("AUTOID9N") != -1) {
                        action = "com.android.server.scannerservice.broadcast";
                        extraKey = "scannerdata"; // æˆ– "BARCODE_STRING",根据实际情况调整
                    }
                    // å…¶ä»–SEUIC设备
                    else {
                        action = "com.android.server.scannerservice.broadcast";
                        extraKey = "scannerdata";
                    }
                }
                else {
                    console.log('未知设备品牌,无法初始化扫码');
                    return;
                }
                console.log('扫码广播配置:', { action, extraKey });
                this.initScan();
                this.startScan();
            },
            fail: (err) => {
                console.error('获取系统信息失败:', err);
            }
        });
    },
    onLoad() {
        // ç›‘听全局扫码事件
        uni.$on('scan', (event) => {
            this.scanResult = event.code;
            console.log('扫码结果:', this.scanResult);
        });
    },
    onUnload() {
        this.stopScan();
        uni.$off('scan'); // ç§»é™¤äº‹ä»¶ç›‘听
    },
    methods: {
        initScan() {
            console.log('初始化扫码接收器');
        },
        onHide: function() {
            this.stopScan();
        },
        destroyed: function() {
            this.stopScan();
        },
        methods: {
            initScan() {
                console.log('initScan');
                let _this = this;
                main = plus.android.runtimeMainActivity(); //获取activity
            try {
                main = plus.android.runtimeMainActivity(); // èŽ·å–activity
                var IntentFilter = plus.android.importClass('android.content.IntentFilter');
                filter = new IntentFilter();
                //下面的addAction内改为自己的广播动作
                filter.addAction(action);
                console.log('注册广播过滤器:', action);
                receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
                    onReceive: function(context, intent) {
                        console.log('onReceive');
                        plus.android.importClass(intent);
                        //下面的getStringExtra内改为自己的广播标签--有误
                        let code = intent.getStringExtra(extraKey);
                        _this.queryCode(code);
                    }
                    onReceive: function (context, intent) {
                        console.log('接收到扫码广播');
                        try {
                            plus.android.importClass(intent);
                            let code = intent.getStringExtra(extraKey);
                            if (code) {
                                console.log('扫码内容:', code);
                                this.queryCode(code);
                            } else {
                                console.warn('扫码内容为空,可能ExtraKey不正确:', extraKey);
                                // å°è¯•备选ExtraKey
                                const altExtraKey = extraKey === "BARCODE_STRING" ? "scannerdata" : "BARCODE_STRING";
                                code = intent.getStringExtra(altExtraKey);
                                if (code) {
                                    console.log('使用备选ExtraKey获取到内容:', altExtraKey);
                                    this.queryCode(code);
                                }
                            }
                        } catch (e) {
                            console.error('处理扫码广播时出错:', e);
                        }
                    }.bind(this) // ç¡®ä¿this指向组件实例
                });
            },
            startScan() {
                console.log('startScan');
                main.registerReceiver(receiver, filter);
            },
            stopScan() {
                console.log('stopScan');
                main.unregisterReceiver(receiver);
            },
            queryCode: function(code) {
                console.log('queryCode');
                if (_codeQueryTag) return false;
                _codeQueryTag = true;
                setTimeout(function() {
                    _codeQueryTag = false;
                }, 150);
                var id = code
                uni.$emit('scan', {
                    code: id
                })
                console.log('扫码接收器初始化成功');
            } catch (e) {
                console.error('初始化扫码接收器失败:', e);
            }
        },
        startScan() {
            console.log('开始监听扫码广播');
            try {
                if (main && receiver && filter) {
                    main.registerReceiver(receiver, filter);
                    console.log('广播接收器已注册');
                } else {
                    console.error('无法注册广播接收器: ç»„件未初始化');
                }
            } catch (e) {
                console.error('注册广播接收器失败:', e);
            }
        },
        stopScan() {
            console.log('停止监听扫码广播');
            try {
                if (main && receiver) {
                    main.unregisterReceiver(receiver);
                    console.log('广播接收器已注销');
                }
            } catch (e) {
                console.error('注销广播接收器失败:', e);
            }
        },
        queryCode(code) {
            console.log('处理扫码结果:', code);
            if (_codeQueryTag) {
                console.log('忽略重复扫码');
                return false;
            }
            _codeQueryTag = true;
            // é˜²æŠ–处理
            setTimeout(() => {
                _codeQueryTag = false;
            }, 150);
            // è§¦å‘全局事件
            uni.$emit('scan', { code });
        }
    }
}
</script>
<style>
</style>
<style></style>
manifest.json
@@ -1,192 +1,195 @@
{
    "name" : "江东合金MES",
    "appid" : "__UNI__2E031D3",
    "description" : "pigcloud",
    "versionName" : "4.0.2",
    "versionCode" : 2,
    "transformPx" : false,
    "app-plus" : {
        "compilerVersion" : 3,
        "optimization" : {
            "subPackages" : true
  "name": "江东合金MES",
  "appid": "__UNI__2E031D3",
  "description": "pigcloud",
  "versionName": "4.0.2",
  "versionCode": 2,
  "transformPx": false,
  "app-plus": {
    "compilerVersion": 3,
    "optimization": {
      "subPackages": true
    },
    "safearea": {
      "bottom": {
        "offset": "none"
      }
    },
    "splashscreen": {
      "alwaysShowBeforeRender": true,
      "waiting": true,
      "autoclose": true,
      "delay": 0
    },
    "compatible": {
      "ignoreVersion": true
    },
    "usingComponents": true,
    "nvueCompiler": "uni-app",
    "modules": {
      "Bluetooth": {}
    },
    "distribute": {
      "android": {
        "permissions": [
          "<uses-feature android:name=\"android.hardware.camera\"/>",
          "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
          "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
          "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
          "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
          "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
          "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
          "<uses-permission android:name=\"android.permission.CAMERA\"/>",
          "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
          "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
          "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
          "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
          "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
          "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
          "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
          "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
          "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
          "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
          "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
          "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
          "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
          "<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
          "<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
          "<uses-permission android:name=\"android.permission.BLUETOOTH_CONNECT\"/> ",
          "<uses-permission android:name=\"android.permission.BLUETOOTH_SCAN\"/>",
          "<uses-permission android:name=\"android.permission.RECEIVE_SMS\"/>",
          "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
          "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>"
        ],
        "abiFilters": ["armeabi-v7a", "arm64-v8a"]
      },
      "ios": {
        "dSYMs": false
      },
      "sdkConfigs": {
        "ad": {},
        "oauth": {}
      },
      "icons": {
        "android": {
          "hdpi": "C:/Users/MLL/Desktop/03ae6e42ca681ffd98737b6a20f94d0.png",
          "xhdpi": "C:/Users/MLL/Desktop/03ae6e42ca681ffd98737b6a20f94d0.png",
          "xxhdpi": "C:/Users/MLL/Desktop/03ae6e42ca681ffd98737b6a20f94d0.png",
          "xxxhdpi": "C:/Users/MLL/Desktop/03ae6e42ca681ffd98737b6a20f94d0.png"
        },
        "safearea" : {
            "bottom" : {
                "offset" : "none"
            }
        },
        "splashscreen" : {
            "alwaysShowBeforeRender" : true,
            "waiting" : true,
            "autoclose" : true,
            "delay" : 0
        },
        "compatible" : {
            "ignoreVersion" : true
        },
        "usingComponents" : true,
        "nvueCompiler" : "uni-app",
        "modules" : {
            "Bluetooth" : {}
        },
        "distribute" : {
            "android" : {
                "permissions" : [
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
                    "<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
                    "<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
                    "<uses-permission android:name=\"android.permission.BLUETOOTH_CONNECT\"/> ",
                    "<uses-permission android:name=\"android.permission.BLUETOOTH_SCAN\"/>"
                ],
                "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ]
            },
            "ios" : {
                "dSYMs" : false
            },
            "sdkConfigs" : {
                "ad" : {},
                "oauth" : {}
            },
            "icons" : {
                "android" : {
                    "hdpi" : "C:/Users/MLL/Desktop/03ae6e42ca681ffd98737b6a20f94d0.png",
                    "xhdpi" : "C:/Users/MLL/Desktop/03ae6e42ca681ffd98737b6a20f94d0.png",
                    "xxhdpi" : "C:/Users/MLL/Desktop/03ae6e42ca681ffd98737b6a20f94d0.png",
                    "xxxhdpi" : "C:/Users/MLL/Desktop/03ae6e42ca681ffd98737b6a20f94d0.png"
                },
                "ios" : {
                    "appstore" : "",
                    "ipad" : {
                        "app" : "",
                        "app@2x" : "",
                        "notification" : "",
                        "notification@2x" : "",
                        "proapp@2x" : "",
                        "settings" : "",
                        "settings@2x" : "",
                        "spotlight" : "",
                        "spotlight@2x" : ""
                    },
                    "iphone" : {
                        "app@2x" : "",
                        "app@3x" : "",
                        "notification@2x" : "",
                        "notification@3x" : "",
                        "settings@2x" : "",
                        "settings@3x" : "",
                        "spotlight@2x" : "",
                        "spotlight@3x" : ""
                    }
                }
            },
            "splashscreen" : {
                "androidStyle" : "common"
            }
        },
        "nativePlugins" : {
            "JCSDK-JCApiModule" : {
                "__plugin_info__" : {
                    "name" : "精臣打印机接入插件",
                    "description" : "精臣系列打印机打印插件",
                    "platforms" : "Android,iOS",
                    "url" : "https://ext.dcloud.net.cn/plugin?id=10011",
                    "android_package_name" : "uni.UNI2E031D3",
                    "ios_bundle_id" : "",
                    "isCloud" : true,
                    "bought" : 1,
                    "pid" : "10011",
                    "parameters" : {}
                }
            }
        "ios": {
          "appstore": "",
          "ipad": {
            "app": "",
            "app@2x": "",
            "notification": "",
            "notification@2x": "",
            "proapp@2x": "",
            "settings": "",
            "settings@2x": "",
            "spotlight": "",
            "spotlight@2x": ""
          },
          "iphone": {
            "app@2x": "",
            "app@3x": "",
            "notification@2x": "",
            "notification@3x": "",
            "settings@2x": "",
            "settings@3x": "",
            "spotlight@2x": "",
            "spotlight@3x": ""
          }
        }
      },
      "splashscreen": {
        "androidStyle": "common"
      }
    },
    "quickapp" : {},
    "mp-weixin" : {
        "appid" : "wxf3e5cc7116d23b18",
        "setting" : {
            "urlCheck" : false,
            "es6" : false,
            "minified" : true,
            "postcss" : true
    "nativePlugins": {
      "JCSDK-JCApiModule": {
        "__plugin_info__": {
          "name": "精臣打印机接入插件",
          "description": "精臣系列打印机打印插件",
          "platforms": "Android,iOS",
          "url": "https://ext.dcloud.net.cn/plugin?id=10011",
          "android_package_name": "uni.UNI2E031D3",
          "ios_bundle_id": "",
          "isCloud": true,
          "bought": 1,
          "pid": "10011",
          "parameters": {}
        }
      }
    }
  },
  "quickapp": {},
  "mp-weixin": {
    "appid": "wxf3e5cc7116d23b18",
    "setting": {
      "urlCheck": false,
      "es6": false,
      "minified": true,
      "postcss": true
    },
    "optimization": {
      "subPackages": true
    },
    "usingComponents": true
  },
  "mp-alipay": {
    "usingComponents": true,
    "component2": true
  },
  "mp-qq": {
    "optimization": {
      "subPackages": true
    },
    "appid": ""
  },
  "mp-baidu": {
    "usingComponents": true,
    "appid": ""
  },
  "mp-toutiao": {
    "usingComponents": true,
    "appid": ""
  },
  "h5": {
    "template": "h5.html",
    "router": {
      "mode": "hash",
      "base": "./"
    },
    "optimization": {
      "treeShaking": {
        "enable": false
      }
    },
    "devServer": {
      "port": 8080, //浏览器运行端口
      "disableHostCheck": true,
      "proxy": {
        "/auth": {
          "target": "http://192.168.32.65:9999",
          "changeOrigin": true,
          "secure": false
        },
        "optimization" : {
            "subPackages" : true
        "/mes": {
          "target": "http://192.168.32.65:9999",
          "changeOrigin": true,
          "secure": false
        },
        "usingComponents" : true
        "/admin": {
          "target": "http://192.168.32.65:9999",
          "changeOrigin": true,
          "secure": false
        }
      }
    },
    "mp-alipay" : {
        "usingComponents" : true,
        "component2" : true
    },
    "mp-qq" : {
        "optimization" : {
            "subPackages" : true
        },
        "appid" : ""
    },
    "mp-baidu" : {
        "usingComponents" : true,
        "appid" : ""
    },
    "mp-toutiao" : {
        "usingComponents" : true,
        "appid" : ""
    },
    "h5" : {
        "template" : "h5.html",
        "router" : {
            "mode" : "hash",
            "base" : "./"
        },
        "optimization" : {
            "treeShaking" : {
                "enable" : false
            }
        },
        "devServer" : {
            "port" : 8080, //浏览器运行端口
            "disableHostCheck" : true,
            "proxy" : {
                "/auth" : {
                    "target" : "http://192.168.32.65:9999",
                    "changeOrigin" : true,
                    "secure" : false
                },
                "/mes" : {
                    "target" : "http://192.168.32.65:9999",
                    "changeOrigin" : true,
                    "secure" : false
                },
                "/admin" : {
                    "target" : "http://192.168.32.65:9999",
                    "changeOrigin" : true,
                    "secure" : false
                }
            }
        },
        "title" : "Asun-Mes",
        "domain" : "/app"
    },
    "locale" : "zh-Hans",
    "fallbackLocale" : "zh-Hans"
    "title": "Asun-Mes",
    "domain": "/app"
  },
  "locale": "zh-Hans",
  "fallbackLocale": "zh-Hans"
}
pages.json
@@ -718,6 +718,15 @@
        "navigationBarBackgroundColor": "#0052d9"
      }
    },
        // ç›˜ç‚¹æŠ¥å‘Šå·
    {
      "path": "pages/wareHouse/inventory/orderList",
      "style": {
        "navigationStyle": "custom",
        "navigationBarTextStyle": "white",
        "navigationBarBackgroundColor": "#3281FF"
      }
    },
    // æ—¥æŠ¥ç›¸å…³
    {
      "path": "pages/daily/common/work-order-list",
pages/product/cancelReport/index.vue
@@ -1,50 +1,50 @@
<template>
  <!-- å–消报工 -->
  <view class="page">
    <u-form :model="form" ref="uForm" :label-width="280" :rules="rules" :error-type="['toast']">
      <u-form-item label="订单号" :border-bottom="false" prop="value3">
        <u-input v-model="form.value3" type="select" placeholder="点击选择" @click="openList" />
      </u-form-item>
      <u-form-item label="取消报工记录:" :border-bottom="false" prop="value12"></u-form-item>
    </u-form>
  </view>
    <!-- å–消报工 -->
    <view class="page">
        <u-form :model="form" ref="uForm" :label-width="280" :rules="rules" :error-type="['toast']">
            <u-form-item label="订单号" :border-bottom="false" prop="value3">
                <u-input v-model="form.value3" type="select" placeholder="点击选择" @click="openList" />
            </u-form-item>
            <u-form-item label="取消报工记录:" :border-bottom="false" prop="value12"></u-form-item>
        </u-form>
    </view>
</template>
<script>
export default {
  data() {
    return {
      form: {
        value3: ''
      },
      rules: {}
    };
  },
  methods: {
    openList() {
      uni.navigateTo({
        url: '/pages/product/report/orderList'
      })
    },
    setNo(val) {
      this.form.value3 = val
    }
    export default {
        data() {
            return {
                form: {
                    value3: ''
                },
                rules: {}
            };
        },
        methods: {
            openList() {
                uni.navigateTo({
                    url: '/pages/product/report/orderList'
                })
            },
            setNo(val) {
                this.form.value3 = val
            }
  }
}
        }
    }
</script>
<style lang="scss" scoped>
.page {
  box-sizing: border-box;
  padding: 30rpx;
}
    .page {
        box-sizing: border-box;
        padding: 30rpx;
    }
::v-deep .u-input__input {
  text-align: right !important;
}
    ::v-deep .u-input__input {
        text-align: right !important;
    }
.u-form-item {
  padding: 0;
}
    .u-form-item {
        padding: 0;
    }
</style>
pages/product/feed/locationList.vue
@@ -4,9 +4,9 @@
            <u-search v-model="keywords" placeholder="请输入库位名称" @clear="search" @custom="search" @search="search">
            </u-search>
        </view>
        <scroll-view class="scroll-list" scroll-y="true" >
        <scroll-view class="scroll-list" scroll-y="true">
            <u-cell-group class="list" :border="false">
                <view v-if="locationList==0" class="nodata">
                <view v-if="locationList == 0" class="nodata">
                    <view>未查到数据</view>
                </view>
                <view v-else class="content" v-for="(item, index) in locationList" :key="item.locNo" :index="index"
@@ -32,15 +32,15 @@
                            åº“位类型:
                        </view>
                        <view class="_content">
                            {{ getLocTypeName(item.locType)}}
                            {{ getLocTypeName(item.locType) }}
                        </view>
                    </view>
                    <view class="row-list">
                        <view class="_label">
                            åº“位状态:
                        </view>
                        <view class="_content">
                            {{getLocStatus(item.locStatus)}}
                        <view class="_content">
                            {{ getLocStatus(item.locStatus) }}
                        </view>
                    </view>
                </view>
@@ -50,147 +50,148 @@
    </view>
</template>
<script>
    import scan from "@/components/scan/scan.vue";
    export default {
        components: {
            scan
import scan from "@/components/scan/scan.vue";
export default {
    components: {
        scan
    },
    data() {
        return {
            originList: [],
            locationList: [],
            keywords: "",
            dictType: "warehouse_type",
            listLocType: []
        };
    },
    onLoad(params) {
        //获取数 åº“位状态
        this.$u.api.dictData({
            dictType: this.dictType
        }).then(res => {
            this.listLocType = res.data;
        });
        if (params && params.workstationNo !== "undefined") {
            this.loadList(params.workstationNo);
        }
    },
    onShow() {
        let that = this
        uni.$off('scan') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
        uni.$on('scan', function (data) {
            console.log('onscan');
            //扫码成功后的回调,你可以写自己的逻辑代码在这里
            console.log('扫码结果:', data.code);
            that.search(data.code);
        })
    },
    onNavigationBarButtonTap(e) {
        uni.scanCode({
            success: res => {
                try {
                    const result = JSON.parse(res.result)
                } catch (e) { }
            }
        });
    },
    methods: {
        getLocTypeName(locType) {
            let reDate = ""
            let that = this
            //判断数组中是否存在
            let list = that.listLocType.filter(item => item.value == locType)
            if (list.length > 0) {
                reDate = list[0].label
            }
            return reDate
        },
        data() {
            return {
                originList: [],
                locationList: [],
                keywords: "",
                dictType: "warehouse_type",
                listLocType: []
            };
        },
        onLoad(params) {
            //获取数 åº“位状态
            this.$u.api.dictData({
                dictType: this.dictType
            }).then(res => {
                this.listLocType = res.data;
            });
            if (params && params.workstationNo !== "undefined") {
                this.loadList(params.workstationNo);
        getLocStatus(locStatus) {
            let reDate = ""
            switch (locStatus) {
                case 1:
                    reDate = "使用";
                    break;
                case 0:
                    reDate = "停用";
                    break;
            }
            return reDate;
        },
        onShow() {
        selectLocation(location) {
            this.refreshLastPage(location)
        },
        //刷新上一个页面
        refreshLastPage(location) {
            // å‘ŠçŸ¥ A.vue æ›´æ–°æ•°æ®
            // èŽ·å–é¡µé¢æ ˆ
            let pages = getCurrentPages()
            let that = this
            // èŽ·å–ä¸Šä¸€é¡µæ ˆ
            let prevPage = pages[pages.length - 2]
            uni.$off('scan') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
            uni.$on('scan', function(data) {
                console.log('onscan');
                //扫码成功后的回调,你可以写自己的逻辑代码在这里
                console.log('扫码结果:', data.code);
                that.search(data.code);
            // è§¦å‘上一页 upData å‡½æ•°(并携带参数)
            prevPage.$vm.setLocation(location)
            // è¿”回上一页
            uni.navigateBack({
                delta: 1
            })
        },
        onNavigationBarButtonTap(e) {
            uni.scanCode({
                success: res => {
                    try {
                        const result = JSON.parse(res.result)
                    } catch (e) {}
                }
        search(value) {
            let that = this
            if (value) {
                that.locationList = that.originList.filter(item => item.locName.includes(value))
            } else {
                that.locationList = that.originList
            }
        },
        loadList(workstationNo) {
            let params = {
                workstationNo: workstationNo
            }
            //根据工作站编号获取进行中的工单&&对应的线边仓
            this.$u.api.pigxFeed.getBasicInfoForPdaFeedByWorkstationNo(params).then(res => {
                this.originList = res.data.locationList
                this.locationList = this.originList
            });
        },
        methods: {
            getLocTypeName(locType) {
                let reDate = ""
                let that = this
                //判断数组中是否存在
                let list = that.listLocType.filter(item => item.value == locType)
                if (list.length > 0) {
                    reDate = list[0].label
                }
                return reDate
            },
            getLocStatus(locStatus) {
                let reDate = ""
                switch (locStatus) {
                    case 1:
                        reDate = "使用";
                        break;
                    case 0:
                        reDate = "停用";
                        break;
                }
                return reDate;
            },
            selectLocation(location) {
                this.refreshLastPage(location)
            },
            //刷新上一个页面
            refreshLastPage(location) {
                // å‘ŠçŸ¥ A.vue æ›´æ–°æ•°æ®
                // èŽ·å–é¡µé¢æ ˆ
                let pages = getCurrentPages()
                // èŽ·å–ä¸Šä¸€é¡µæ ˆ
                let prevPage = pages[pages.length - 2]
                // è§¦å‘上一页 upData å‡½æ•°(并携带参数)
                prevPage.$vm.setLocation(location)
                // è¿”回上一页
                uni.navigateBack({
                    delta: 1
                })
            },
            search(value) {
                let that = this
                if (value) {
                    that.locationList = that.originList.filter(item => item.locName.includes(value))
                } else {
                    that.locationList = that.originList
                }
            },
            loadList(workstationNo) {
                let params = {
                    workstationNo: workstationNo
                }
                //根据工作站编号获取进行中的工单&&对应的线边仓
                this.$u.api.pigxFeed.getBasicInfoForPdaFeedByWorkstationNo(params).then(res => {
                    this.originList = res.data.locationList
                    this.locationList = this.originList
                });
            },
        }
    };
    }
};
</script>
<style lang="scss">
    .list .content {
        font-size: 12px;
        background-color: #efefef;
        box-sizing: border-box;
        border-radius: 14rpx;
        margin: 8px;
        padding: 5px 10px;
        box-shadow: none;
    }
.list .content {
    font-size: 12px;
    background-color: #efefef;
    box-sizing: border-box;
    border-radius: 14rpx;
    margin: 8px;
    padding: 5px 10px;
    box-shadow: none;
}
    .row-list {
        display: flex;
        flex-direction: row;
    }
.row-list {
    display: flex;
    flex-direction: row;
}
    .row-list ._label {
        flex: 0.8;
        color: #909399;
    }
.row-list ._label {
    flex: 0.8;
    color: #909399;
}
    .row-list ._content {
        flex: 1.5;
        text-align: right;
    }
    .nodata{width: 20%;margin: auto;}
.row-list ._content {
    flex: 1.5;
    text-align: right;
}
.nodata {
    width: 20%;
    margin: auto;
}
</style>
pages/product/report/index.vue
@@ -60,14 +60,16 @@
      </u-field>
    </modalBg>
    <saveForm ref="saveForm" />
    <scan></scan>
  </div>
</template>
<script>
import modalBg from '@/components/modal/modal-bg.vue'
import saveForm from './components/saveForm.vue'
import scan from "@/components/scan/scan.vue";
export default {
  components: { modalBg, saveForm },
  components: { modalBg, saveForm, scan },
  data() {
    return {
      checkboxList: [
@@ -173,6 +175,22 @@
  onReady() {
    this.$refs.uForm.setRules(this.rules);
  },
  onShow() {
    let that = this
    uni.$off('scan') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
    uni.$on('scan', function (data) {
      console.log('onscan');
      //扫码成功后的回调,你可以写自己的逻辑代码在这里
      console.log('页面扫码结果:', data.code);
      if (data.code) {
        let codeInfo = JSON.parse(data.code)
        if (codeInfo.WorkNo) {
          // æ‰«ææŠ¥å·¥å•二维码
          that.saveForm(codeInfo);
        }
      }
    })
  },
  methods: {
    // å¤šé€‰å¤„理
    changeCheckbox(val) {
@@ -205,8 +223,16 @@
        url: '/pages/product/report/orderList'
      })
    },
    // å­˜è®¢å•号
    setNo(val) {
      this.form.value3 = val
    },
    // å›žæ˜¾æ‰«ç çš„信息-报工单
    saveForm(val) {
      let { WorkNo, ProcessName, ORDER_NO } = val
      this.form.value1 = WorkNo
      this.form.value2 = ProcessName
      this.form.value3 = ORDER_NO
    }
  }
}
pages/sys/home/index.vue
@@ -11,7 +11,8 @@
            <u-grid :border="false">
                <u-grid-item v-for="(baseListItem, baseListIndex) in item.list" :key="baseListIndex"
                    @click="navTo(baseListItem.url)">
                    <img :src="require(`@/static/custom/home/${baseListItem.icon}.png`)" alt="">
                    <view class="img" :style="`background: url(../../../static/custom/home/${baseListItem.icon}.png) no-repeat;`">
                    </view>
                    <text class="grid-text">{{ baseListItem.name }}</text>
                </u-grid-item>
            </u-grid>
@@ -29,27 +30,27 @@
                        {
                            name: '报工',
                            url: '/pages/product/report/index',
                            icon: '报工'
                            icon: 'one'
                        },
                        {
                            name: '取消报工',
                            url: '/pages/product/cancelReport/index',
                            icon: '取消报工'
                            icon: 'two'
                        },
                        {
                            name: '接收(铜杆)',
                            url: '/',
                            icon: '接收(铜杆)'
                            icon: 'three'
                        },
                        {
                            name: '车间订单下发',
                            url: '/',
                            icon: '车间订单下发'
                            icon: 'four'
                        },
                        {
                            name: '车间取消下发',
                            url: '/',
                            icon: '车间取消下发'
                            icon: 'five'
                        },
                    ]
                },
@@ -59,27 +60,27 @@
                        {
                            name: '移库',
                            url: '/pages/wareHouse/moveWareHouse/index',
                            icon: '移库'
                            icon: 'six'
                        },
                        {
                            name: '盘点报告盘点',
                            url: '/pages/wareHouse/inventory/index',
                            icon: '盘点报告盘点'
                            icon: 'seven'
                        },
                        {
                            name: '核磅录入',
                            url: '/pages/wareHouse/packing/registration',
                            icon: '核磅录入'
                            icon: 'eight'
                        },
                        {
                            name: '库存件盘点',
                            url: '/pages/wareHouse/inventory/index',
                            icon: '库存件盘点'
                            icon: 'nine'
                        },
                        {
                            name: '导体备货盘点',
                            url: '/pages/wareHouse/inventory/index',
                            icon: '导体备货盘点'
                            icon: 'ten'
                        },
                    ]
                },
@@ -89,12 +90,12 @@
                        {
                            name: '领料',
                            url: '/pages/wareHouse/moveWareHouse/index',
                            icon: '领料'
                            icon: 'eleven'
                        },
                        {
                            name: '取消领料',
                            url: '/pages/wareHouse/inventory/index',
                            icon: '取消领料'
                            icon: 'twelve'
                        },
                    ]
                }
@@ -116,7 +117,7 @@
</script>
<style lang="scss">
.wrap {
    height: calc(100vh - 200rpx);
    height: 100%;
    background: linear-gradient(to bottom, #e5f0ff, #f6f9ff);
    overflow-y: auto;
}
@@ -140,4 +141,11 @@
.u-grid-item {
    background: transparent !important;
}
.img {
    width: 96rpx;
    height: 96rpx;
    background-size: contain !important;
    background-position: center !important;
}
</style>
pages/sys/user/index.vue
@@ -69,7 +69,7 @@
<style lang="scss" scoped>
.my {
  height: calc(100vh - 100rpx);
  height: 100%;
  background: linear-gradient(to bottom, #E5F0FF, #F6F9FF);
  .my-head {
pages/wareHouse/inventory/index.vue
@@ -1,156 +1,372 @@
<template>
    <view class="page">
      <view class="inventory-list-bg"/>
      <u-navbar title="盘点列表" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" back-icon-color="#000"/>
      <view class="inventory-list-search">
          <u-search v-model="query.inyNo" shape="square" bg-color="rgba(250,252,255,0.36)" :show-action="false" placeholder="盘点编号" @clear="search" @custom="search" @search="search">
          </u-search>
      </view>
      <view class="wrap">
        <scroll-view class="inventory-list-scroll-list" scroll-y="true" @scrolltolower="loadMore">
            <u-cell-group class="inventory-list-scroll-list-group" :border="false">
                <view class="content" v-for="(item, index) in list" :key="index" :index="index"
                    @click="goDetail(item)">
                    <view class="content-header">
                        <view class="content-header-left">
                            <view class="content-header-icon"></view>
                            <view class="content-header-title">盘点编号:{{ item.inyNo }}</view>
                        </view>
                        <view class="content-header-right">
                            {{item.inyStatus=='finished'?'已完成':'草稿'}}
                        </view>
                    </view>
                    <view class="content-body">
                        <view class="row-list">
                            <view class="_label">
                                <view class="_label-icon-1">
                                </view>
                                <view class="_label-name">盘点描述:</view>
                            </view>
                            <view class="_content">
                                {{ item.inyDesc||'无' }}
                            </view>
                        </view>
                        <view class="row-list">
                            <view class="_label">
                                <view class="_label-icon-2">
                                </view>
                                <view class="_label-name">创 å»º äººï¼š</view>
                            </view>
                            <view class="_content">
                                {{ item.createUser }}
                            </view>
                        </view>
                        <view class="row-list">
                            <view class="_label">
                                <view class="_label-icon-3">
                                </view>
                                <view class="_label-name">创建时间:</view>
                            </view>
                            <view class="_content">
                                {{ item.createTime }}
                            </view>
                        </view>
                    </view>
        <view class="packing-registration-bg" />
        <u-navbar title="盘点报告盘点" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
            back-icon-color="#000" />
        <view class="packing-registration-param">
            <view class="packing-registration-param-view">
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">盘点报告号</text>
                    </view>
                    <view class="packing-registration-param-item-right">
                        <text class="item-one item-two"
                            @click="seachPersonnelNo()">{{registerInfo.value1=='' ? "点击选择":registerInfo.value1}}</text>
                        <u-icon name="arrow-right" color="#687792" size="28" @click="seachPersonnelNo()"
                            v-show="registerInfo.value1 ==''"></u-icon>
                    </view>
                </view>
            </u-cell-group>
            <view class="loadmore" @click="loadMore">
                <u-loadmore :status="loadStatus"></u-loadmore>
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">仓库</text>
                    </view>
                    <view class="packing-registration-param-item-right">
                        <text class="item-one item-two">{{registerInfo.value2}}</text>
                    </view>
                </view>
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">零件号</text>
                    </view>
                    <view class="packing-registration-param-item-right">
                        <view class="item-one item-two" @click="openPN()">
                            <text>{{registerInfo.value6=='' ? "点击输入":registerInfo.value6}}</text>
                        </view>
                        <u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value6==''"></u-icon>
                    </view>
                </view>
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">批次号</text>
                    </view>
                    <view class="packing-registration-param-item-right" @click="openBatch()">
                        <text class="item-one item-two">{{registerInfo.value3=='' ? "点击输入":registerInfo.value3}}</text>
                        <u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value3==''"></u-icon>
                    </view>
                </view>
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">库位号</text>
                    </view>
                    <view class="packing-registration-param-item-right" @click="openLocation()">
                        <view class="item-one item-two">
                            <text>{{registerInfo.value4 == '' ? "点击输入":registerInfo.value4}}</text>
                        </view>
                        <u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value4==''"></u-icon>
                    </view>
                </view>
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">盘点数量</text>
                    </view>
                    <view class="packing-registration-param-item-right" @click="openPhysicalInventory()">
                        <view class="item-one item-two">
                            <text>{{registerInfo.value5 == '' ? "点击输入":registerInfo.value5}}</text>
                        </view>
                        <u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value4==''"></u-icon>
                    </view>
                </view>
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">盘点记录:</text>
                    </view>
                </view>
            </view>
        </scroll-view>
        </view>
        <view class="wrap">
            <scroll-view class="packing-registration-scroll-list" scroll-y="true">
                <u-cell-group class="packing-registration-scroll-list-group" :border="false">
                    <!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-请扫码-</div> -->
                    <view class="content" v-for="(item, index) in hasScanSnList" :key="index" :index="index">
                        <view class="content-header">
                            <view class="content-header-title">{{ index+1 }}</view>
                        </view>
                        <view class="content-body">
                            <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">零件号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value0 }}
                                </view>
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">批次号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value1 }}
                                </view>
                            </view>
                                                        <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">库位号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value0 }}
                                </view>
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">盘点数量:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value1 }}
                                </view>
                            </view>
                        </view>
                    </view>
                </u-cell-group>
            </scroll-view>
            <view class="registration-form-footer">
                <u-button class="btn" type="primary" @click="goSubmit">提交</u-button>
            </view>
            <scan></scan>
            <!-- é›¶ä»¶å· -->
            <modalBg ref="openPN" :confirm="confirmPN">
                <u-field v-model="registerInfo.value6" label="零件号:" placeholder="请输入" :border-bottom="false">
                </u-field>
            </modalBg>
            <!-- æ‰¹æ¬¡å· -->
            <modalBg ref="openBatch" :confirm="confirmBatch">
                <u-field v-model="registerInfo.value3" label="批次号:" placeholder="请输入" :border-bottom="false">
                </u-field>
            </modalBg>
            <!-- åº“位号 -->
            <modalBg ref="openLocation" :confirm="confirmLocation">
                <u-field v-model="registerInfo.value4" label="库位号:" placeholder="请输入" :border-bottom="false">
                </u-field>
            </modalBg>
            <!-- ç›˜ç‚¹æ•°é‡ -->
            <modalBg ref="openPhysicalInventory" :confirm="confirmPhysicalInventory">
                <u-field v-model="registerInfo.value5" label="盘点数量:" label-width="140" placeholder="请输入"
                    :border-bottom="false">
                </u-field>
            </modalBg>
        </view>
    </view>
    </view>
</template>
<script>
    import content_bg from '@/static/custom/inventory/locNoBg.png'
    import modalBg from '@/components/modal/modal-bg.vue'
    import scan from "@/components/scan/scan.vue";
    import content_bg from '@/static/custom/packing/backBg.png'
    export default {
        components: {
            scan,
            modalBg
        },
        data() {
            return {
                background:{
                background: {
                    backgroundImage: `url(${content_bg})`,
                    backgroundAttachment: 'fixed',
                    backgroundSize: '100% auto',
                    backgroundRepeat: 'no-repeat',
                },
                keywords: '',
                query: {
                    current: 1,
                    size: 20,
                    criteria:JSON.stringify({
                        orderBy:{
                            column:'createTime',
                            direction:'desc'
                        }
                    })
                labelStyle: {
                    fontSize: '32rpx',
                    whiteSpace: 'nowrap'
                },
                list: [],
                count: 0,
                loadStatus: 'loading'
                registerInfo: {
                    value1: '',
                    value2: '',
                    value3: '',
                    value4: '',
                    value5: '',
                    value6: ''
                },
                hasScanSnList: [
                    {
                        value0: '11111111111111111111111',
                        value1: '111',
                        value2: '111',
                        value3:'111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3:'111',
                    },
                                        {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3:'111',
                    },
                                        {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3:'111',
                    },
                ],
                delContent: null,
                staffList: [],
            };
        },
        onLoad() {
            this.loadList();
        },
        onLoad(option) {},
        onShow() {
            let that = this
            uni.$off('scan') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
            uni.$on('scan', function(data) {
                console.log('onscan');
                //扫码成功后的回调,你可以写自己的逻辑代码在这里
                console.log('扫码结果:', data.code);
                that.scanHandle(data.code)
                that.$forceUpdate();
            })
        },
        filters: {
            inyStatus(val) {
                let inyStatus = {
                    finished: '已完成',
                    draft: '草稿',
                }
                return inyStatus[val]
            }
        onNavigationBarButtonTap() {
            this.goScan()
        },
        onReady() {},
        methods: {
            loadMore() {
                if(this.loadStatus == "nomore"){
                    return
                }
                this.loadStatus = "loading";
                setTimeout(() => {
                    this.query.current += 1;
                    this.loadList();
                }, 100);
            //零件号
            openPN() {
                this.$refs.openPN.open();
            },
            loadList() {
                this.$u.api.inventory.getMain(this.query).then(res => {
                    this.list = this.list.concat(res.data.records);
                    //this.total = res.data.total;
                    this.query.current = res.data.current;
                    this.query.size = res.data.size;
                    this.loadStatus = "loadmore";
                    if (!res.data.records || res.data.records.length < this.query.size) {
                        this.loadStatus = "nomore";
            // å¼¹æ¡†ä¿å­˜
            confirmPN() {
                console.log('保存', this.registerInfo.value6);
                // è¯·æ±‚接口,根据工单号查询其他信息并赋值
            },
            //批次号
            openBatch() {
                this.$refs.openBatch.open();
            },
            // å¼¹æ¡†ä¿å­˜
            confirmBatch() {
                console.log('保存', this.registerInfo.value3);
                // è¯·æ±‚接口,根据工单号查询其他信息并赋值
            },
            //库位号
            openLocation() {
                this.$refs.openLocation.open();
            },
            // å¼¹æ¡†ä¿å­˜
            confirmLocation() {
                console.log('保存', this.registerInfo.value4);
                // è¯·æ±‚接口,根据工单号查询其他信息并赋值
            },
            //盘点数量
            openPhysicalInventory() {
                this.$refs.openPhysicalInventory.open();
            },
            // å¼¹æ¡†ä¿å­˜
            confirmPhysicalInventory() {
                console.log('保存', this.registerInfo.value5);
                // è¯·æ±‚接口,根据工单号查询其他信息并赋值
            },
            setNo(val) {
                console.log('11111', val)
                this.registerInfo.value1 = val.value1
                this.registerInfo.value2 = val.value2
            },
            //盘点报告号
            seachPersonnelNo() {
                console.log('11111')
                uni.navigateTo({
                    url: '/pages/wareHouse/inventory/orderList'
                })
            },
            goScan() {
                uni.scanCode({
                    scanType: ['qrCode'],
                    success: res => {
                        try {
                            console.log('扫码结果:', res);
                            this.scanHandle(res.result)
                        } catch (e) {}
                    }
                });
            },
            search(value) {
                this.list = [];
                this.query.current = 1;
                this.loadList();
            },
            goDetail(item) {
                if(item.inyStatus === 'finished'){
                    uni.showToast({
                        title: "盘点已完成。",
                        icon: "none"
                    });
                    return
            scanHandle(scanresult) {
                scanresult = scanresult.replace(/[\r\n]/g, "")
                if (scanresult.indexOf('{') > -1) {
                    //二维码
                    const result = JSON.parse(scanresult)
                    //增加SN校验
                    if (result.sn_no && result.sn_no != null && result.sn_no != '') {
                        if (this.hasScanSnList.length > 0) {
                            let hasScanSnIndex = this.hasScanSnList.indexOf(result.sn_no)
                            if (hasScanSnIndex < 0) {
                                this.hasScanSnList.push(result.sn_no)
                            } else {
                                this.$u.toast('请勿重复扫描')
                            }
                        } else {
                            this.hasScanSnList.push(result.sn_no)
                        }
                    }
                } else {
                    //增加SN校验
                    if (this.hasScanSnList.length > 0) {
                        let hasScanSnIndex = this.hasScanSnList.indexOf(scanresult)
                        if (hasScanSnIndex < 0) {
                            this.hasScanSnList.push(scanresult)
                        } else {
                            this.$u.toast('请勿重复扫描')
                        }
                    } else {
                        this.hasScanSnList.push(scanresult)
                    }
                }
                uni.navigateTo({
                    url: `/pages/wareHouse/inventory/detail?id=${item.id}&no=${item.inyNo}`
                })
            }
            },
            goSubmit() {
                // if (this.registerInfo.shiftId == null || this.registerInfo.shiftId == '') {
                //     this.$u.toast('请选择班次')
                //     return
                // }
                // if (this.registerInfo.value3 == null || this.registerInfo.value3 == '') {
                //     this.$u.toast('请选择日期')
                //     return
                // }
                // if (this.registerInfo.locNo == null || this.registerInfo.locNo == '') {
                //     this.$u.toast('请选择包装库位')
                //     return
                // }
                // if (this.hasScanSnList.length == 0) {
                //     this.$u.toast('无待提交的SN号明细')
                //     return
                // }
                // let registrList = []
                // this.staffList = []
                // this.staffNameList.forEach((item) => {
                //     this.staffList.push({
                //         staffId: item.id
                //     })
                // })
                // this.hasScanSnList.forEach((item) => {
                //     registrList.push({
                //         shiftId: this.registerInfo.shiftId,
                //         value3: this.registerInfo.value3,
                //         locNo: this.registerInfo.locNo,
                //         partBatchNo: item,
                //         staffList: this.staffList
                //     })
                // })
                // this.$u.api.pigxPacking.addPackageRegister(registrList).then(res => {
                //     let resData = res.data
                //     this.hasScanSnList = []
                //     this.$u.toast('提交成功')
                // }).catch((e) => {
                // })
            },
        }
    };
</script>
<style scoped lang="scss">
    .inventory-list-bg{
<style lang="scss" scoped>
    .packing-registration-bg {
        background-color: #F6F9FF;
        background-image: url('~@/static/custom/inventory/locNoBg.png');
        // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
        background-image: url('~@/static/custom/packing/backBg.png');
        padding: 0 20rpx;
        background-attachment: fixed;
        background-size: 100% auto;
@@ -161,112 +377,178 @@
        width: 100%;
        z-index: -1;
    }
    .inventory-list-search{
        padding: 40rpx 30rpx 20rpx 30rpx;
    }
    .wrap .inventory-list-scroll-list{
        height:calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx);
        width:100%;
    }
    .inventory-list-scroll-list-group{
        ::v-deep .u-cell-item-box {
            background-color:rgba(250,252,255,0.36) !important;
            padding:0rpx 30rpx ;
        }
        .content {
            font-size: 12px;
            background-color: #FFFFFF;
            box-sizing: border-box;
    .packing-registration-param {
        padding: 40rpx 30rpx 10rpx 30rpx;
        .packing-registration-param-title {
            display: flex;
            flex-direction: row;
            align-items: center;
            margin-bottom: 30rpx;
            .title-label {
                margin-left: 14rpx;
                font-size: 34rpx;
                font-weight: bold;
                color: #283E65;
            }
        }
        .packing-registration-param-view {
            height: 615rpx;
            background-color: #fff;
            border-radius: 10rpx;
            margin: 0rpx 0rpx 16rpx;
            height: 298rpx;
            padding: 10rpx 20rpx;
            box-shadow: none;
            .content-header{
            padding: 0rpx 23rpx;
            margin-bottom: 30rpx;
            .packing-registration-param-item {
                height: 90rpx;
                border: 1px solid #ADC8E4;
                line-height: 90rpx;
                display: flex;
                align-items:center;
                justify-content: space-between;
                .content-header-left{
                    display: flex;
                    align-items:center;
                    .content-header-icon{
                        background-image: url('~@/static/custom/inventory/icon_5.png');
                        background-size: 100% auto;
                        background-repeat: no-repeat;
                        height:28rpx;
                        width:28rpx;
                    }
                    .content-header-title{
                        margin-left: 11rpx;
                        font-size: 28rpx;
                        font-weight: bold;
                        color: #333333;
                border: none;
                .packing-registration-param-item-left {
                    .item-one {
                        font-size: 30rpx;
                        color: #666666;
                    }
                }
                .content-header-right{
                    text-align: right;
                    font-weight: bold;
                    color: #FB5B25;
                .packing-registration-param-item-right {
                    display: flex;
                    justify-content: space-between;
                    .item-one {
                        font-size: 30rpx;
                        color: #333333;
                        margin-right: 6rpx;
                    }
                    .item-two {
                        font-size: 30rpx;
                        color: #A6B4CC;
                        margin-right: 6rpx;
                    }
                    .item-three {
                        font-size: 30rpx;
                        color: #214DED;
                        margin-right: 6rpx;
                    }
                }
            }
            .content-body{
                height:184rpx;
                background: #F5F9FF;
                border-radius: 10rpx;
                padding: 0rpx 23rpx;
                .row-list {
                    height: 60rpx;
                    display: flex;
                    flex-direction: row;
                    padding: 0px;
                    align-items: center;
                }
                .row-list ._label {
                    display: flex;
                    flex: 0.6;
                    color: #909399;
                    align-items: center;
                    ._label-icon-1{
                        background-image: url('~@/static/custom/inventory/label-icon-1.png');
                        background-size: 100% auto;
                        background-repeat: no-repeat;
                        height:26rpx;
                        width:26rpx;
                    }
                    ._label-icon-2{
                        background-image: url('~@/static/custom/inventory/icon3.png');
                        background-size: 100% auto;
                        background-repeat: no-repeat;
                        height:26rpx;
                        width:26rpx;
                    }
                    ._label-icon-3{
                        background-image: url('~@/static/custom/inventory/icon4.png');
                        background-size: 100% auto;
                        background-repeat: no-repeat;
                        height:26rpx;
                        width:26rpx;
                    }
                    ._label-name{
                        margin-left: 11rpx;
                        font-size: 26rpx;
                        font-weight: 500;
                        color: #909399;
                    }
                }
                .row-list ._content {
                    flex: 1.5;
                    color: #666666;
                    font-size: 24rpx;
                }
                .row-list .s1 {
                    color:#D35651;
                }
            .param-extra {
                border-bottom: 1px solid #EDEDED;
            }
        }
    }
</style>
    .wrap .packing-registration-scroll-list {
        height: calc(100vh - var(--window-top) - var(--window-bottom) - 930rpx);
        width: 100%;
    }
    .packing-registration-scroll-list-group {
        ::v-deep .u-cell-item-box {
            background-color: rgba(250, 252, 255, 0.36) !important;
            padding: 0rpx 30rpx;
        }
  .content {
    font-size: 12px;
    background-color: #ffffff;
    box-sizing: border-box;
    border-radius: 10rpx;
    margin: 0rpx 0rpx 16rpx;
    padding: 20rpx 8rpx;
    box-shadow: none;
    display: flex;
    align-items: center;
    .content-header {
      width: 40rpx;
      height: 90rpx;
      display: flex;
      align-items: center;
      .content-header-icon {
        background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
        background-size: 100% auto;
        background-repeat: no-repeat;
        height: 28rpx;
        width: 28rpx;
      }
      .content-header-title {
        margin-left: 11rpx;
        font-size: 26rpx;
        font-weight: bold;
        color: #626369;
      }
    }
    .content-body {
      flex: 1;
      background-color: #ffffff;
      border-radius: 10rpx;
      padding: 0rpx 23rpx;
      .row-list {
        height: 60rpx;
        display: flex;
        flex-direction: row;
        padding: 0px;
        align-items: center;
      }
      .row-list ._label {
        display: flex;
        flex: 0.8;
        color: #909399;
        align-items: center;
        ._label-name {
          margin-left: 11rpx;
          font-size: 26rpx;
          font-weight: 500;
          color: #666666;
        }
      }
      .row-list ._content {
        flex: 1.5;
        text-align: right;
        color: #909399;
        font-size: 24rpx;
      }
      .row-list .s1 {
        color: #d35651;
      }
    }
  }
    }
    .registration-form-footer {
        display: flex;
        margin-top: 10rpx;
        margin-bottom: 10rpx;
        margin-left: 20rpx;
        margin-right: 20rpx;
        padding-bottom: 14rpx;
        .btn {
            flex: 1;
            margin: 10rpx;
            background: #214DED;
            box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3);
            font-weight: bold;
            color: #FEFEFE;
            font-family: PingFang SC;
        }
    }
</style>
pages/wareHouse/inventory/orderList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,300 @@
<template>
  <view class="page">
    <view class="finishProductIn-locno-bg" />
    <u-navbar
      title="盘点报告号"
      :background="background"
      :border-bottom="false"
      :title-bold="true"
      title-color="#000"
      back-icon-color="#000"
    />
    <view class="finishProductIn-locno-search">
      <u-search
        v-model="keywords"
        shape="square"
        bg-color="rgba(250,252,255,0.36)"
        :show-action="false"
        placeholder="请输入盘点报告号"
        @clear="search"
        @custom="search"
        @search="search"
      >
      </u-search>
    </view>
    <view class="wrap">
      <scroll-view
        class="finishProductIn-locno-scroll-list"
        scroll-y="true"
        @scrolltolower="loadMore"
      >
        <u-cell-group
          class="finishProductIn-locno-scroll-list-group"
          :border="false"
        >
          <view
            class="content"
            v-for="(item, index) in list"
            :key="item.locNo"
            :index="index"
            @click="selectNo(item.index)"
          >
            <view class="content-header">
              <view class="content-header-title">{{ item.index }}</view>
            </view>
            <view class="content-body">
              <view class="row-list">
                <view class="_label">
                  <view class="_label-icon-1"> </view>
                  <view class="_label-name">盘点报告号:</view>
                </view>
                <view class="_content">
                  {{ item.value0 }}
                </view>
              </view>
              <view class="row-list">
                <view class="_label">
                  <view class="_label-icon-2"> </view>
                  <view class="_label-name">仓库:</view>
                </view>
                <view class="_content">
                  {{ item.value1 }}
                </view>
              </view>
            </view>
          </view>
        </u-cell-group>
        <view class="loadmore" @click="loadMore">
          <u-loadmore :status="loadStatus"></u-loadmore>
        </view>
      </scroll-view>
    </view>
  </view>
</template>
<script>
import content_bg from "@/static/custom/finishProductIn/locNoBg.png";
export default {
  data() {
    return {
      background: {
        backgroundImage: `url(${content_bg})`,
        backgroundAttachment: "fixed",
        backgroundSize: "100% auto",
        backgroundRepeat: "no-repeat",
      },
      keywords: "",
      alllist: [],
      originList: [],
      query: {
        current: 1,
        size: 10,
      },
      list: [
        {
          index: 1,
          value0: "123456789",
          value1: "123456789",
        },
      ],
      count: 0,
      loadStatus: "loading",
    };
  },
  onLoad() {
    this.$u.api.finishProductIn.fetchList().then((res) => {
      this.alllist = res.data;
      this.originList = res.data;
      this.loadList();
    });
  },
  methods: {
    loadMore() {
      if (this.loadStatus == "nomore" || this.loadStatus == "loading") {
        return;
      }
      this.loadStatus = "loading";
      setTimeout(() => {
        this.query.current += 1;
        this.loadList();
      }, 100);
    },
    loadList() {
      const data = this.originList.slice(
        (this.query.current - 1) * this.query.size,
        this.query.current * this.query.size
      );
      this.list = this.list.concat(data);
      this.loadStatus = "loadmore";
      if (!data || data.length < this.query.size) {
        this.loadStatus = "nomore";
      }
    },
    search(value) {
      this.list = [];
      this.query.current = 1;
      if (value) {
        this.originList = this.alllist.filter((item) =>
          item.locNo.includes(value)
        );
      } else {
        this.originList = this.alllist;
      }
      this.loadList();
    },
    selectNo(no) {
      this.refreshLastPage(no);
    },
    //刷新上一个页面
    refreshLastPage(no) {
      // å‘ŠçŸ¥ A.vue æ›´æ–°æ•°æ®
      // èŽ·å–é¡µé¢æ ˆ
      let pages = getCurrentPages();
      // èŽ·å–ä¸Šä¸€é¡µæ ˆ
      let prevPage = pages[pages.length - 2];
      // è§¦å‘上一页 upData å‡½æ•°(并携带参数)
      prevPage.$vm.setNo({
        value1: 1896,
        value2: "铜杆",
      });
      // è¿”回上一页
      uni.navigateBack({
        delta: 1,
      });
    },
  },
};
</script>
<style lang="scss">
.finishProductIn-locno-bg {
  background-color: #f6f9ff;
  background-image: url("~@/static/custom/finishProductIn/locNoBg.png");
  // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
  padding: 0 20rpx;
  background-attachment: fixed;
  background-size: 100% auto;
  background-repeat: no-repeat;
  position: fixed;
  top: 0;
  bottom: 0;
  width: 100%;
  z-index: -1;
}
.finishProductIn-locno-search {
  padding: 40rpx 30rpx 20rpx 30rpx;
}
.wrap .finishProductIn-locno-scroll-list {
  height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx);
  width: 100%;
}
.finishProductIn-locno-scroll-list-group {
  ::v-deep .u-cell-item-box {
    background-color: rgba(250, 252, 255, 0.36) !important;
    padding: 0rpx 30rpx;
  }
  .content {
    font-size: 12px;
    background-color: #ffffff;
    box-sizing: border-box;
    border-radius: 10rpx;
    margin: 0rpx 0rpx 16rpx;
    padding: 20rpx 8rpx;
    box-shadow: none;
    display: flex;
    align-items: center;
    .content-header {
      width: 40rpx;
      height: 90rpx;
      display: flex;
      align-items: center;
      .content-header-icon {
        background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
        background-size: 100% auto;
        background-repeat: no-repeat;
        height: 28rpx;
        width: 28rpx;
      }
      .content-header-title {
        margin-left: 11rpx;
        font-size: 26rpx;
        font-weight: bold;
        color: #3d52f5;
      }
    }
    .content-body {
      flex: 1;
      background: #f5f9ff;
      border-radius: 10rpx;
      padding: 0rpx 23rpx;
      .row-list {
        height: 60rpx;
        display: flex;
        flex-direction: row;
        padding: 0px;
        align-items: center;
      }
      .row-list ._label {
        display: flex;
        flex: 0.8;
        color: #909399;
        align-items: center;
        ._label-icon-1 {
          background-image: url("~@/static/custom/moveWareHouse/label-icon-1.png");
          background-size: 100% auto;
          background-repeat: no-repeat;
          height: 26rpx;
          width: 26rpx;
        }
        ._label-icon-2 {
          background-image: url("~@/static/custom/moveWareHouse/label-icon-2.png");
          background-size: 100% auto;
          background-repeat: no-repeat;
          height: 26rpx;
          width: 26rpx;
        }
        ._label-icon-3 {
          background-image: url("~@/static/custom/moveWareHouse/label-icon-3.png");
          background-size: 100% auto;
          background-repeat: no-repeat;
          height: 26rpx;
          width: 26rpx;
        }
        ._label-name {
          margin-left: 11rpx;
          font-size: 26rpx;
          font-weight: 500;
          color: #666666;
        }
      }
      .row-list ._content {
        flex: 1.5;
        text-align: right;
        color: #909399;
        font-size: 24rpx;
      }
      .row-list .s1 {
        color: #d35651;
      }
    }
  }
}
</style>
pages/wareHouse/moveWareHouse/index.vue
@@ -3,546 +3,388 @@
        <view class="movewarehouse-index-bg" />
        <u-navbar title="移库" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
            back-icon-color="#000" />
        <view class="movewarehouse-index-search">
            <!--<u-search v-model="keywords" shape="square" bg-color="rgba(250,252,255,0.36)" :show-action="false" placeholder="请输入库位号" @clear="search" @custom="search" @search="search">
            </u-search>-->
            <view class="movewarehouse-index-search-view">
                <view class="movewarehouse-index-search-view-item">
                    <text class="item-one">至库位号</text>
                    <text class="item-one-content">{{ tolocationNo }}</text>
        <view class="packing-registration-param">
            <view class="packing-registration-param-view">
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">库位</text>
                    </view>
                    <view class="packing-registration-param-item-right">
                        <text class="item-one item-two">{{registerInfo.storageLocation}}</text>
                    </view>
                </view>
                <view class="movewarehouse-index-search-view-item" @click="seachLocationNo()">
                    <text class="item-two">请选择</text>
                    <u-icon name="arrow-right" color="#2979ff" size="28"></u-icon>
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">{{`移库记录(${registerInfo.num}条):`}}</text>
                    </view>
                </view>
            </view>
        </view>
        <view class="wrap">
            <scroll-view class="movewarehouse-index-scroll-list" scroll-y="true">
                <u-cell-group class="movewarehouse-index-scroll-list-group" :border="false">
                    <view class="content" v-for="(item, index) in list" :key="item.id" :index="index">
                    <scroll-view class="packing-registration-scroll-list" scroll-y="true">
                <u-cell-group class="packing-registration-scroll-list-group" :border="false">
                    <!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-请扫码-</div> -->
                    <view class="content" v-for="(item, index) in hasScanSnList" :key="index" :index="index">
                        <view class="content-header">
                            <view class="header-item">
                                <view class="content-header-icon-one"></view>
                                <view class="content-header-title">{{ item.partNo }}</view>
                            </view>
                            <view class="header-item">
                                <view class="content-header-icon-two"></view>
                                <view class="content-header-title">{{ item.partBatchNo }}</view>
                            </view>
                            <view class="header-item-toolbar" @click="deleteHandle(item)">
                                <view class="header-item-toolbar-del-icon">
                                </view>
                                <view class="header-item-toolbar-del-text">
                                    åˆ é™¤
                                </view>
                            </view>
                            <view class="content-header-title">{{ index+1 }}</view>
                        </view>
                        <!--<view class="row-img" @click="deleteHandle(item)">
                            <u-image width="18px" height="18px" src="@/static/custom/delete.png"></u-image>
                        </view>-->
                        <view class="content-body">
                            <view class="row-list">
                                <view class="_label">
                                    é›¶ä»¶åç§°ï¼š
                                    <view class="_label-name">零件号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.partName }}
                                    {{ item.value0 }}
                                </view>
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    ä»Žåº“位号:
                                    <view class="_label-name">批次号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.locationNo }}
                                    {{ item.value1 }}
                                </view>
                            </view>
                                                        <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">库位号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value0 }}
                                </view>
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    è‡³åº“位号:
                                    <view class="_label-name">盘点数量:</view>
                                </view>
                                <view class="_content">
                                    {{ item.arriveLocationNo }}
                                </view>
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    å¯ç”¨åº“存:
                                </view>
                                <view class="_content">
                                    <text class="_content-text">{{ item.availableStockQuantity }}</text>
                                    ({{ item.unit }})
                                </view>
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    ç§»åº“库存:
                                </view>
                                <view class="_content _input">
                                    <u-input placeholder="请输入移库数量" v-model="item.moveQty" type="digit"></u-input>
                                    <view class="edit_icon"></view>
                                    {{ item.value1 }}
                                </view>
                            </view>
                        </view>
                    </view>
                </u-cell-group>
            </scroll-view>
            <scan></scan>
            <view class="new-form-footer" v-if="list.length > 0">
                <u-button class="btn" type="primary" @click="submit">提交</u-button>
            </view>
        </view>
        <u-modal v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true" @confirm="confirm"
            @cancel="cancel">
            <view class="popup-content">
                <view class="packing-registration-param">
                    <view class="packing-registration-param-view">
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">批号</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">零件描述</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">WDR</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">现有数量</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">当前库位</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                    </view>
                </view>
            </view>
        </u-modal>
    </view>
</template>
<script>
import scan from "@/components/scan/scan.vue";
import content_bg from '@/static/custom/moveWareHouse/locNoBg.png'
export default {
    components: {
        scan
    },
    data() {
        return {
            background: {
                backgroundImage: `url(${content_bg})`,
                backgroundAttachment: 'fixed',
                backgroundSize: '100% auto',
                backgroundRepeat: 'no-repeat',
    import scan from "@/components/scan/scan.vue";
    import content_bg from "@/static/custom/moveWareHouse/locNoBg.png";
    export default {
        components: {
            scan,
        },
        data() {
            return {
                background: {
                    backgroundImage: `url(${content_bg})`,
                    backgroundAttachment: "fixed",
                    backgroundSize: "100% auto",
                    backgroundRepeat: "no-repeat",
                },
                registerInfo: {
                    storageLocation: "LG001",
                    num: 0,
                },
                showModal: true, // æŽ§åˆ¶å¼¹çª—显示隐藏的变量
                hasScanSnList: [
                    {
                        value0: '11111111111111111111111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                ],
            };
        },
        onLoad() {},
        onShow() {
            let that = this;
            uni.$off("scan"); // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
            uni.$on("scan", function(data) {
                console.log("onscan");
                //扫码成功后的回调,你可以写自己的逻辑代码在这里
                console.log("扫码结果:", data.code);
            });
        },
        onNavigationBarButtonTap(e) {
            uni.scanCode({
                success: (res) => {
                    try {
                        const result = JSON.parse(res.result);
                    } catch (e) {}
                },
            });
        },
        methods: {
            confirm() {
                // å¤„理确认逻辑
                this.show = false;
            },
            list: [],
            tolocationNo: "",
            keywords: ''
        };
    },
    onLoad() {
        // this.loadList("221206000739N");
        // let data = '{"part_no":"88.118.1/A0047954","lot_batch_no":"221112000082N","qty_arrived":0.5,"wdr":"221112000082N"}'
        // let data = '221206000739N'
        // let sn = ''
        // if (data.indexOf('{') >= 0) {
        //     //大标签二位码
        //     sn = JSON.parse(data).lot_batch_no
        // } else {
        //     //小标签条码
        //     sn = data
        // }
        // console.log(sn);
    },
    onShow() {
        let that = this
        uni.$off('scan') // æ¯æ¬¡è¿›æ¥å…ˆ ç§»é™¤å…¨å±€è‡ªå®šä¹‰äº‹ä»¶ç›‘听器
        uni.$on('scan', function (data) {
            console.log('onscan');
            //扫码成功后的回调,你可以写自己的逻辑代码在这里
            console.log('扫码结果:', data.code);
            if (data.code != "" && (that.tolocationNo == "")) {
                uni.showToast({
                    title: '请选择至库位号',
                    icon: 'none'
                })
                return
            }
            let sn = ''
            if (data.code.indexOf('{') >= 0) {
                //大标签二位码
                let snNoIndex = data.code.indexOf('sn_no')
                if (snNoIndex > -1) {
                    sn = JSON.parse(data.code).sn_no
                } else {
                    sn = JSON.parse(data.code).lot_batch_no
                }
            } else {
                //小标签条码
                sn = data.code
            }
            //判断数组中是否存在  SN æ˜¯å¦å·²ç»å­˜åœ¨
            let initList = that.list.filter(item => item
                .partBatchNo == sn)
            if (initList.length > 0) {
                uni.showToast({
                    title: "SN:" + sn + ",已存在,请选择另一个SN号",
                    icon: "none"
                });
                return
            }
            that.loadList(sn);
        })
    },
    onNavigationBarButtonTap(e) {
        uni.scanCode({
            success: res => {
                try {
                    const result = JSON.parse(res.result)
                } catch (e) { }
            }
        });
    },
    methods: {
        //至库位
        seachLocationNo() {
            uni.navigateTo({
                url: '/pages/wareHouse/moveWareHouse/locNoList'
            })
            cancel() {
                this.show = false; // å…³é—­å¼¹çª—
            },
        },
        loadList(sanCode) {
            uni.showLoading({
                mask: true,
                title: "加载中",
            });
            let that = this
            if (sanCode != "") {
                let data = {
                    sn: sanCode
                }
                //判断数组中是否存在 è‡³åº“位号 SN
                let initList = that.list.filter(item => item.arriveLocationNo == that.tolocationNo).filter(item => item
                    .partBatchNo == sanCode)
                if (initList.length > 0) {
                    uni.showToast({
                        title: "库位号:" + that.tolocationNo + ",SN:" + sanCode + ",已经扫过码",
                        icon: "none"
                    });
                    return
                }
                // æŸ¥è¯¢ç§»åº“信息
                that.$u.api.pigxWareHouse.list(data).then(res => {
                    let reList = []
                    reList = res.data
                    if (reList.length == 0) {
                        uni.showToast({
                            title: "库位号:" + that.tolocationNo + ",SN:" + sanCode + ",未扫到移库信息",
                            icon: "none"
                        });
                    } else {
                        for (let i = 0; i < reList.length; i++) {
                            if (reList[i].locationNo !== that.tolocationNo) {
                                let item = {
                                    id: reList[i].id,
                                    partNo: reList[i].partNo,
                                    partName: reList[i].partName,
                                    partBatchNo: reList[i].partBatchNo,
                                    ifsBatchNo: reList[i].ifsBatchNo,
                                    unit: reList[i].unit,
                                    locationNo: reList[i].locationNo,
                                    availableStockQuantity: reList[i].availableStockQuantity,
                                    arriveLocationNo: that.tolocationNo,
                                    moveQty: 0
                                }
                                that.list.push(item)
                            }
                        }
                    }
                    uni.hideLoading();
                })
            }
        },
        //至库位号设置
        setNo(no) {
            this.tolocationNo = no
        },
        deleteHandle(obj) {
            let that = this
            uni.showModal({
                title: '提示',
                content: '此操作将删除该移库信息, æ˜¯å¦ç»§ç»­?',
                success: function (res) {
                    if (res.confirm) {
                        that.list.map((item, index) => {
                            if (obj.id == item.id) {
                                that.list.splice(index, 1)
                            }
                        });
                    }
                }
            });
        },
        submit() {
            let that = this
            that.list.map((item) => {
                if (item.moveQty <= 0) {
                    uni.showToast({
                        title: '请移库数量必须大于0',
                        icon: "none"
                    });
                    return
                }
                if (item.moveQty > item.availableStockQuantity) {
                    uni.showToast({
                        title: '移库数量不能大于可用库存数量',
                        icon: "none"
                    });
                    return
                }
            });
            let subList = []
            that.list.map((item) => {
                let sub = {
                    stockId: item.id,
                    arriveLocationNo: item.arriveLocationNo,
                    moveQty: item.moveQty
                }
                subList.push(sub)
            });
            that.$u.api.pigxWareHouse.addList(subList).then(res => {
                if (res.code == 0) {
                    uni.showModal({
                        title: '提示',
                        content: '提交成功',
                        showCancel: false,
                        success: function () {
                            that.list = []
                            that.tolocationNo = ""
                        }
                    })
                } else {
                    uni.showModal({
                        title: '提示',
                        content: '提交失败',
                        showCancel: false,
                        success: function () {
                        }
                    })
                }
            })
        },
    }
};
    };
</script>
<style lang="scss" scoped>
.movewarehouse-index-bg {
    background-color: #F6F9FF;
    background-image: url('~@/static/custom/moveWareHouse/locNoBg.png');
    // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
    padding: 0 20rpx;
    background-attachment: fixed;
    background-size: 100% auto;
    background-repeat: no-repeat;
    position: fixed;
    top: 0;
    bottom: 0;
    width: 100%;
    z-index: -1;
}
.movewarehouse-index-search {
    padding: 40rpx 30rpx 20rpx 30rpx;
}
.movewarehouse-index-search-view {
    height: 66rpx;
    border: 1px solid #ADC8E4;
    border-radius: 8rpx;
    background: rgba(250, 252, 255, 0.36);
    line-height: 66rpx;
    padding-left: 33rpx;
    padding-right: 10rpx;
    display: flex;
    justify-content: space-between;
    .movewarehouse-index-search-view-item {
        .item-one {
            font-size: 30rpx;
            color: #283E65;
        }
        .item-one-content {
            margin-left: 10rpx;
            color: #909399;
            font-size: 26rpx;
        }
        .item-two {
            font-size: 30rpx;
            color: #A6B4CC;
        }
    }
}
.wrap .movewarehouse-index-scroll-list {
    height: calc(100vh - var(--window-top) - var(--window-bottom) - 378rpx);
    width: 100%;
}
.movewarehouse-index-scroll-list-group {
    ::v-deep .u-cell-item-box {
        background-color: rgba(250, 252, 255, 0.36) !important;
        padding: 0rpx 30rpx;
    .person-btn-view {
        display: flex;
        justify-content: space-between;
        margin-top: 300rpx;
    }
    .content {
        font-size: 12px;
        background-color: #FFFFFF;
        box-sizing: border-box;
        border-radius: 10rpx;
        margin: 0rpx 0rpx 16rpx;
        height: 432rpx;
        padding: 10rpx 20rpx;
        box-shadow: 0rpx 6rpx 12rpx 2rpx rgba(127, 127, 127, 0.1) !important;
        position: relative;
    .popup-content {
        width: 600rpx;
        height: 500rpx;
        background-color: #fff;
        border-radius: 8px;
        z-index: 10;
        /* ç¡®ä¿å†…容在蒙版之上 */
    }
        .content-header {
            .header-item {
                height: 50rpx;
                display: flex;
                align-items: center;
    .movewarehouse-index-bg {
        background-color: #f6f9ff;
        background-image: url("~@/static/custom/moveWareHouse/locNoBg.png");
        // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
        padding: 0 20rpx;
        background-attachment: fixed;
        background-size: 100% auto;
        background-repeat: no-repeat;
        position: fixed;
        top: 0;
        bottom: 0;
        width: 100%;
        z-index: -1;
    }
                .content-header-icon-one {
                    background-image: url('~@/static/custom/moveWareHouse/label-icon-1.png');
                    background-size: 100% auto;
                    background-repeat: no-repeat;
                    height: 28rpx;
                    width: 28rpx;
                }
    .packing-registration-param {
        padding: 40rpx 30rpx 10rpx 30rpx;
                .content-header-icon-two {
                    background-image: url('~@/static/custom/moveWareHouse/header_icon.png');
                    background-size: 100% auto;
                    background-repeat: no-repeat;
                    height: 28rpx;
                    width: 28rpx;
                }
        .packing-registration-param-title {
            display: flex;
            flex-direction: row;
            align-items: center;
            margin-bottom: 30rpx;
                .content-header-title {
                    margin-left: 11rpx;
                    font-size: 26rpx;
                    font-weight: bold;
                    color: #333333;
                }
            }
            .header-item-toolbar {
                position: absolute;
                background-image: url('~@/static/custom/moveWareHouse/del-icon.png');
                background-size: 100% auto;
                background-repeat: no-repeat;
                height: 60rpx;
                width: 140rpx;
                right: 0;
                top: 0;
                display: flex;
                justify-content: flex-end;
                padding-top: 10rpx;
                padding-right: 18rpx;
                .header-item-toolbar-del-icon {
                    background-image: url('~@/static/custom/moveWareHouse/icon_dele.png');
                    background-size: 100% auto;
                    background-repeat: no-repeat;
                    height: 25rpx;
                    width: 22rpx;
                    margin-top: 5rpx;
                }
                .header-item-toolbar-del-text {
                    margin-left: 7rpx;
                    height: 23rpx;
                    font-size: 24rpx;
                    color: #FFFFFF;
                }
            .title-label {
                margin-left: 14rpx;
                font-size: 34rpx;
                font-weight: bold;
                color: #283e65;
            }
        }
        .content-body {
            height: 300rpx;
            background: #F5F9FF;
        .packing-registration-param-view {
            height: 177rpx;
            background-color: #fff;
            border-radius: 10rpx;
            padding: 25rpx 23rpx;
            padding: 0rpx 23rpx;
            margin-bottom: 30rpx;
            .row-list {
                height: 50rpx;
                display: flex;
                flex-direction: row;
                padding: 0px;
                align-items: center;
                justify-content: space-between;
            }
            .row-list ._label {
                display: flex;
                color: #666666;
                font-size: 26rpx;
                align-items: center;
                width: 170rpx;
            }
            .row-list ._content {
                text-align: right;
                color: #909399;
                font-size: 24rpx;
                ._content-text {
                    color: #214ded;
                }
            }
            .row-list ._input {
            .packing-registration-param-item {
                height: 90rpx;
                border: 1px solid #adc8e4;
                line-height: 90rpx;
                display: flex;
                justify-content: space-between;
                align-items: center;
                border-bottom: 1px solid #4FA0FF;
                height: 56rpx;
                border: none;
                .edit_icon {
                    background-image: url('~@/static/custom/finishProductIn/icon_edit.png');
                    background-size: 100% auto;
                    background-repeat: no-repeat;
                    height: 26rpx;
                    width: 26rpx;
                .packing-registration-param-item-left {
                    .item-one {
                        font-size: 30rpx;
                        color: #666666;
                    }
                }
                ::v-deep .uni-input-input {
                    color: #D35651;
                .packing-registration-param-item-right {
                    display: flex;
                    justify-content: space-between;
                    .item-one {
                        font-size: 30rpx;
                        color: #333333;
                        margin-right: 6rpx;
                    }
                    .item-two {
                        font-size: 30rpx;
                        color: #a6b4cc;
                        margin-right: 6rpx;
                    }
                    .item-three {
                        font-size: 30rpx;
                        color: #214ded;
                        margin-right: 6rpx;
                    }
                }
            }
            .param-extra {
                border-bottom: 1px solid #ededed;
            }
        }
    }
}
.new-form-footer {
    display: flex;
    margin-top: 10rpx;
    margin-bottom: 10rpx;
    margin-left: 20rpx;
    margin-right: 20rpx;
    padding-bottom: 14rpx;
    .btn {
        flex: 1;
        margin: 10rpx;
        background: #214DED;
        box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3);
        font-weight: bold;
        color: #FEFEFE;
        font-family: PingFang SC;
    .wrap .packing-registration-scroll-list {
        height: calc(100vh - var(--window-top) - var(--window-bottom) - 360rpx);
        width: 100%;
    }
}
</style>
    .packing-registration-scroll-list-group {
        ::v-deep .u-cell-item-box {
            background-color: rgba(250, 252, 255, 0.36) !important;
            padding: 0rpx 30rpx;
        }
  .content {
    font-size: 12px;
    background-color: #ffffff;
    box-sizing: border-box;
    border-radius: 10rpx;
    margin: 0rpx 0rpx 16rpx;
    padding: 20rpx 8rpx;
    box-shadow: none;
    display: flex;
    align-items: center;
    .content-header {
      width: 40rpx;
      height: 90rpx;
      display: flex;
      align-items: center;
      .content-header-icon {
        background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
        background-size: 100% auto;
        background-repeat: no-repeat;
        height: 28rpx;
        width: 28rpx;
      }
      .content-header-title {
        margin-left: 11rpx;
        font-size: 26rpx;
        font-weight: bold;
        color: #626369;
      }
    }
    .content-body {
      flex: 1;
      background-color: #ffffff;
      border-radius: 10rpx;
      padding: 0rpx 23rpx;
      .row-list {
        height: 60rpx;
        display: flex;
        flex-direction: row;
        padding: 0px;
        align-items: center;
      }
      .row-list ._label {
        display: flex;
        flex: 0.8;
        color: #909399;
        align-items: center;
        ._label-name {
          margin-left: 11rpx;
          font-size: 26rpx;
          font-weight: 500;
          color: #666666;
        }
      }
      .row-list ._content {
        flex: 1.5;
        text-align: right;
        color: #909399;
        font-size: 24rpx;
      }
      .row-list .s1 {
        color: #d35651;
      }
    }
  }
    }
</style>
static/custom/home/eight.png

static/custom/home/eleven.png

static/custom/home/five.png

static/custom/home/four.png

static/custom/home/nine.png

static/custom/home/one.png

static/custom/home/seven.png

static/custom/home/six.png

static/custom/home/ten.png

static/custom/home/three.png

static/custom/home/twelve.png

static/custom/home/two.png