yyb
4 天以前 80e5e05360baedb95e20b8cb11746a7776c85acf
车间订单下发功能点逻辑编写
已修改2个文件
382 ■■■■■ 文件已修改
pages/product/WorkshopOrderIssued/comp.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/WorkshopOrderIssued/index.vue 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/WorkshopOrderIssued/comp.vue
@@ -9,7 +9,7 @@
      </u-search>
    </view>
    <view class="wrap">
      <scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true" @scrolltolower="loadMore">
            <scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true" @scrolltolower="getmoreList()">
        <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)">
@@ -80,8 +80,8 @@
            </view>
          </view>
        </u-cell-group>
        <view class="loadmore" @click="loadMore">
          <u-loadmore :status="loadStatus"></u-loadmore>
                <view class="loadmore" @click="getmoreList()">
                    <u-loadmore :status="status" :load-text="loadText" @loadmore="getmoreList()" />
        </view>
      </scroll-view>
    </view>
@@ -99,62 +99,74 @@
        backgroundRepeat: 'no-repeat',
      },
      keywords: '',
      alllist: [],
      originList: [],
      query: {
        current: 1,
        size: 10
                list: [],
                total: 0,
                pageNum: 1,
                pageSize: 10,
                status:'loading',
                loadText: {
                    loadmore: "加载更多...",
                    loading: "努力加载中...",
                    nomore: "没有更多了",
      },
      list: [
        {
          index: 1,
          value0: '123456789',
          value1: '123456789',
          value2: '123456789',
          value3: '123456789',
          value4: '123456789',
          value5: '123456789'
        }
      ],
      count: 0,
      loadStatus: 'loading'
    };
  },
  onLoad() {
    this.$u.api.finishProductIn.fetchList().then(res => {
      this.alllist = res.data
      this.originList = res.data
      this.loadList()
    })
            this.getlist();
  },
  methods: {
    loadMore() {
      if (this.loadStatus == "nomore" || this.loadStatus == "loading") {
        return
            getmoreList() {
                if (this.pageSize >= this.total) {
                    this.status = "nomore";
                    return;
      }
      this.loadStatus = "loading";
                this.status = "loading";
      setTimeout(() => {
        this.query.current += 1;
        this.loadList();
      }, 100);
                    this.pageSize += this.pageSize;
                    this.getlist();
                }, 1000);
    },
    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";
            getlist() {
                this.$u.api.workReporting
                    ._({
                        current: this.pageNum,
                        size: this.pageSize
                    })
                    .then((res) => {
                        console.log("res", res);
                        this.list = res.data.records;
                        this.total = res.data.total;
                        if (this.pageSize >= this.total) {
                            this.status = "nomore";
                        } else {
                            this.status = "loadmore";
      }
                    });
    },
    search(value) {
      this.list = [];
      this.query.current = 1;
                console.log("111", value);
      if (value) {
        this.originList = this.alllist.filter(item => item.locNo.includes(value))
                    this.list = [];
                    this.pageSize = 10;
                    this.$u.api.workReporting
                        ._({
                            current: this.pageNum,
                            size: this.pageSize,
                            moNo: value,
                        })
                        .then((res) => {
                            console.log("res", res);
                            this.list = res.data.records;
                            this.total = res.data.total;
                            if (this.pageSize >= this.total) {
                                this.status = "nomore";
      } else {
        this.originList = this.alllist
                                this.status = "loadmore";
      }
      this.loadList()
                        });
                } else {
                    this.getlist();
                }
    },
    selectNo(no) {
      this.refreshLastPage(no)
@@ -170,7 +182,7 @@
      let prevPage = pages[pages.length - 2]
      // 触发上一页 upData 函数(并携带参数)
      prevPage.$vm.setNo(no)
                prevPage.$vm.compNo(no)
      // 返回上一页
      uni.navigateBack({
pages/product/WorkshopOrderIssued/index.vue
@@ -11,10 +11,11 @@
                        <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>
                        <text class="item-one item-two" @click="seachPersonnelNo()">{{
              registerInfo.moNo == "" ? "点击选择" : registerInfo.moNo
            }}</text>
                        <u-icon name="arrow-right" color="#687792" size="28" @click="seachPersonnelNo()"
                            v-show="registerInfo.value1 == ''"></u-icon>
                            v-show="registerInfo.moNo == ''"></u-icon>
                    </view>
                </view>
                <view class="packing-registration-param-item param-extra">
@@ -22,8 +23,9 @@
                        <text class="item-one">子件</text>
                    </view>
                    <view class="packing-registration-param-item-right">
                        <text class="item-one item-two" @click="seachComp()">{{ registerInfo.value2 == '' ?
                            "点击选择" : registerInfo.value2 }}</text>
                        <text class="item-one item-two" @click="seachComp()">{{
              registerInfo.value2 == "" ? "点击选择" : registerInfo.value2
            }}</text>
                        <u-icon name="arrow-right" color="#687792" size="28" @click="seachComp()"
                            v-show="registerInfo.value2 == ''"></u-icon>
                    </view>
@@ -33,7 +35,7 @@
                        <text class="item-one">零件描述</text>
                    </view>
                    <view class="packing-registration-param-item-right">
                        <text class="item-one item-two">{{ registerInfo.value2 }}</text>
                        <text class="item-one item-two">{{ registerInfo.value3 }}</text>
                    </view>
                </view>
                <view class="packing-registration-param-item param-extra">
@@ -54,7 +56,7 @@
                        <view class="content-body">
                            <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">订单号:</view>
                                    <view class="_label-name">批号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value0 }}
@@ -62,18 +64,10 @@
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">子件:</view>
                                    <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>
@@ -82,196 +76,146 @@
            </scroll-view>
            <scan></scan>
        </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">{{ modalList.value }}</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">
                                <u-input class="item-one item-two" v-model="modalList.value1" />
                            </view>
                        </view>
                    </view>
                </view>
            </view>
        </u-modal>
    </view>
</template>
<script>
import scan from "@/components/scan/scan.vue";
import content_bg from '@/static/custom/packing/backBg.png'
    import content_bg from "@/static/custom/packing/backBg.png";
export default {
    components: {
        scan,
    },
    data() {
        return {
            background: {
                backgroundImage: `url(${content_bg})`,
                backgroundAttachment: 'fixed',
                backgroundSize: '100% auto',
                backgroundRepeat: 'no-repeat',
                    backgroundAttachment: "fixed",
                    backgroundSize: "100% auto",
                    backgroundRepeat: "no-repeat",
            },
            labelStyle: {
                fontSize: '32rpx',
                whiteSpace: 'nowrap'
                    fontSize: "32rpx",
                    whiteSpace: "nowrap",
            },
                // 弹窗列表
                modalList: {
                    value: "",
                    value1: "",
                },
                //   主页面列表
            registerInfo: {
                value1: '',
                value2: '',
                    moNo: "",
                    value2: "",
                    value3: "",
            },
            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: [],
                //   下发记录列表
                hasScanSnList: [],
        };
    },
    onLoad(option) { },
    onShow() {
        let that = this
        uni.$off('scan') // 每次进来先 移除全局自定义事件监听器
        uni.$on('scan', function (data) {
            console.log('onscan');
            let that = this;
            uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器
            if ((registerInfo.moNO = null)) {
                uni.showToast({
                    icon: "none",
                    title: "请先选择子件!",
                    duration: 2 * 1000,
                });
                return;
            }
            uni.$on("scan", function(data) {
                console.log("onscan");
            //扫码成功后的回调,你可以写自己的逻辑代码在这里
            console.log('扫码结果:', data.code);
            that.scanHandle(data.code)
                console.log("扫码结果:", data.code);
                that.scanHandle(data.code);
            that.$forceUpdate();
        })
            });
    },
    onNavigationBarButtonTap() {
        this.goScan()
    },
    onReady() { },
    methods: {
            // 点击确认后获取下发记录
            confirm() {
                // 处理确认逻辑
                this.showModal = false;
                this.$u.api.workReporting
                ._({}).then((res) => {
                    console.log("res", res);
                    this.hasScanSnList = res.data.records;
                });
            },
            // 模态框取消
            cancel() {
                this.showModal = false; // 关闭弹窗
            },
            // 子件回显
            compNo(val) {
                this.registerInfo.value2 = val.value2;
                this.registerInfo.value3 = val.value2;
            },
            // 订单号回显
        setNo(val) {
            console.log('11111', val)
            this.registerInfo.value1 = val.value1
            this.registerInfo.value2 = val.value2
                console.log("11111", val);
                this.registerInfo.moNo = val.moNo;
                this.registerInfo.value2 = val.value2;
        },
        //订单号
        seachPersonnelNo() {
            console.log('车间订单号')
                console.log("车间订单号");
            uni.navigateTo({
                url: '/pages/product/report/orderList'
            })
                    url: "/pages/product/report/orderList",
                });
        },
        //子件
        seachComp() {
            if (this.registerInfo.value1 == null || this.registerInfo.value1 == '') {
                this.$u.toast('请选择订单号')
                return
                if (this.registerInfo.value1 == null || this.registerInfo.value1 == "") {
                    this.$u.toast("请选择订单号");
                    return;
            }
            console.log('子件')
                console.log("子件");
            uni.navigateTo({
                url: '/pages/product/WorkshopOrderIssued/comp'
            })
        },
        goScan() {
            uni.scanCode({
                scanType: ['qrCode'],
                success: res => {
                    try {
                        console.log('扫码结果:', res);
                        this.scanHandle(res.result)
                    } catch (e) { }
                }
                    url: "/pages/product/WorkshopOrderIssued/comp",
            });
        },
            // 扫码后数据回显
        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)
                }
            }
                this.$u.api.workReporting
                ._({}).then((res) => {
                    this.modalList = res.data.records;
                    this.showModal = true;
                });
        },
        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 lang="scss" scoped>
.packing-registration-bg {
    background-color: #F6F9FF;
    background-image: url('~@/static/custom/packing/backBg.png');
        background-color: #f6f9ff;
        background-image: url("~@/static/custom/packing/backBg.png");
    padding: 0 20rpx;
    background-attachment: fixed;
    background-size: 100% auto;
@@ -296,7 +240,7 @@
            margin-left: 14rpx;
            font-size: 34rpx;
            font-weight: bold;
            color: #283E65;
                color: #283e65;
        }
    }
@@ -309,7 +253,7 @@
        .packing-registration-param-item {
            height: 90rpx;
            border: 1px solid #ADC8E4;
                border: 1px solid #adc8e4;
            line-height: 90rpx;
            display: flex;
            justify-content: space-between;
@@ -334,20 +278,20 @@
                .item-two {
                    font-size: 30rpx;
                    color: #A6B4CC;
                        color: #a6b4cc;
                    margin-right: 6rpx;
                }
                .item-three {
                    font-size: 30rpx;
                    color: #214DED;
                        color: #214ded;
                    margin-right: 6rpx;
                }
            }
        }
        .param-extra {
            border-bottom: 1px solid #EDEDED;
                border-bottom: 1px solid #ededed;
        }
    }
}