取消报工/车间订单下发/车间订单取消下发/功能点逻辑编写
| | |
| | | //车间订单取消下发 |
| | | <template> |
| | | <view class="page"> |
| | | <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 |
| | | <view class="page"> |
| | | <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.moNo == "" ? "点击选择" : registerInfo.moNo |
| | | }}</text> |
| | | <u-icon name="arrow-right" color="#687792" size="28" @click="seachPersonnelNo()" |
| | | v-show="registerInfo.value1 == ''"></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> |
| | | </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.value2 }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | | <view class="_label"> |
| | | <view class="_label-name">取消下发数量</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value3 }} |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-cell-group> |
| | | </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"> |
| | | <text class="item-one item-two">{{ modalList.value1 }}</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">{{ modalList.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"> |
| | | <u-input class="item-one item-two" v-model="modalList.value3" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-modal> |
| | | </view> |
| | | <u-icon |
| | | name="arrow-right" |
| | | color="#687792" |
| | | size="28" |
| | | @click="seachPersonnelNo()" |
| | | v-show="registerInfo.moNo == ''" |
| | | ></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> |
| | | </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.moOn }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | | <view class="_label"> |
| | | <view class="_label-name">零件号:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.partNo }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | | <view class="_label"> |
| | | <view class="_label-name">零件描述:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.partName }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | | <view class="_label"> |
| | | <view class="_label-name">取消下发数量</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value3 }} |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-cell-group> |
| | | </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.moOn }}</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">{{ modalList.partNo }}</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">{{ modalList.partName }}</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.value3" /> |
| | | </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"; |
| | | export default { |
| | | components: { |
| | | scan, |
| | | }, |
| | | data() { |
| | | return { |
| | | showModal:false, |
| | | background: { |
| | | backgroundImage: `url(${content_bg})`, |
| | | backgroundAttachment: "fixed", |
| | | backgroundSize: "100% auto", |
| | | backgroundRepeat: "no-repeat", |
| | | }, |
| | | labelStyle: { |
| | | fontSize: "32rpx", |
| | | whiteSpace: "nowrap", |
| | | }, |
| | | //弹窗列表 |
| | | modalList: { |
| | | value: "", |
| | | value1: "", |
| | | value2: "", |
| | | value3: "", |
| | | }, |
| | | registerInfo: { |
| | | value1: "", |
| | | }, |
| | | 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", |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | onShow() { |
| | | let that = this; |
| | | import scan from "@/components/scan/scan.vue"; |
| | | import content_bg from "@/static/custom/packing/backBg.png"; |
| | | export default { |
| | | components: { |
| | | scan, |
| | | }, |
| | | data() { |
| | | return { |
| | | showModal: false, |
| | | background: { |
| | | backgroundImage: `url(${content_bg})`, |
| | | backgroundAttachment: "fixed", |
| | | backgroundSize: "100% auto", |
| | | backgroundRepeat: "no-repeat", |
| | | }, |
| | | labelStyle: { |
| | | fontSize: "32rpx", |
| | | whiteSpace: "nowrap", |
| | | }, |
| | | //弹窗列表 |
| | | modalList: { |
| | | partName: "", |
| | | partNo: "", |
| | | moNo: "", |
| | | num: "", |
| | | }, |
| | | registerInfo: { |
| | | moNo: "", |
| | | }, |
| | | hasScanSnList: [], |
| | | codeInfoId: "", |
| | | }; |
| | | }, |
| | | onShow() { |
| | | let that = this; |
| | | |
| | | uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器 |
| | | uni.$on("scan", function(data) { |
| | | console.log("onscan"); |
| | | //扫码成功后的回调,你可以写自己的逻辑代码在这里 |
| | | console.log("扫码结果:", data.code); |
| | | that.scanHandle(data.code); |
| | | this.showModal = true; |
| | | that.$forceUpdate(); |
| | | }); |
| | | }, |
| | | methods: { |
| | | // 点击确认后获取下发记录 |
| | | confirm() { |
| | | // 处理确认逻辑 |
| | | this.showModal = false; |
| | | this.$u.api.workReporting |
| | | ._({}).then((res) => { |
| | | console.log("res", res); |
| | | this.hasScanSnList = res.data.records; |
| | | }); |
| | | }, |
| | | // 模态框取消 |
| | | cancel() { |
| | | this.showModal = false; // 关闭弹窗 |
| | | }, |
| | | setNo(val) { |
| | | console.log("11111", val); |
| | | this.registerInfo.value1 = val.value1; |
| | | }, |
| | | //订单号 |
| | | seachPersonnelNo() { |
| | | console.log("车间订单号"); |
| | | uni.navigateTo({ |
| | | url: "/pages/product/report/orderList", |
| | | }); |
| | | }, |
| | | 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); |
| | | if (data.code) { |
| | | let codeInfo = JSON.parse(data.code); |
| | | this.codeInfoId = codeInfo.id; |
| | | if (codeInfo.moOn) { |
| | | // 扫描报工单二维码 |
| | | that.scanHandle(data.code); |
| | | that.$forceUpdate(); |
| | | that.getHandelList(); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | methods: { |
| | | getHandelList() { |
| | | this.$u.api.workReporting |
| | | .getProductMainV1({ |
| | | current: 1, |
| | | size: -1, |
| | | id: this.codeInfoId, |
| | | }) |
| | | .then((res) => { |
| | | this.hasScanSnList = res.data.productOutputList; |
| | | }); |
| | | }, |
| | | // 扫码后数据回显 |
| | | scanHandle(val) { |
| | | let { moNo, partNo, partName } = val; |
| | | this.modalList.moNo = moNo; |
| | | this.modalList.partNo = partNo; |
| | | this.modalList.partName = partName; |
| | | |
| | | }, |
| | | }; |
| | | this.showModal = true; |
| | | }, |
| | | // 点击确认后获取下发记录 |
| | | confirm() { |
| | | // 处理确认逻辑 |
| | | this.$u.api.workReporting._(this.modalList).then((res) => { |
| | | console.log("res", res); |
| | | this.showModal = false; |
| | | |
| | | this.getHandelList(); |
| | | }); |
| | | }, |
| | | // 模态框取消 |
| | | cancel() { |
| | | this.showModal = false; // 关闭弹窗 |
| | | }, |
| | | setNo(val) { |
| | | console.log("11111", val); |
| | | this.registerInfo.moNo = val.moNo; |
| | | }, |
| | | //订单号 |
| | | seachPersonnelNo() { |
| | | console.log("车间订单号"); |
| | | uni.navigateTo({ |
| | | url: "/pages/product/report/orderList", |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .packing-registration-bg { |
| | | background-color: #f6f9ff; |
| | | background-image: url("~@/static/custom/packing/backBg.png"); |
| | | 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; |
| | | } |
| | | .packing-registration-bg { |
| | | background-color: #f6f9ff; |
| | | background-image: url("~@/static/custom/packing/backBg.png"); |
| | | 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; |
| | | } |
| | | |
| | | .packing-registration-param { |
| | | padding: 40rpx 30rpx 10rpx 30rpx; |
| | | .packing-registration-param { |
| | | padding: 40rpx 30rpx 10rpx 30rpx; |
| | | |
| | | .packing-registration-param-title { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | margin-bottom: 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; |
| | | } |
| | | } |
| | | .title-label { |
| | | margin-left: 14rpx; |
| | | font-size: 34rpx; |
| | | font-weight: bold; |
| | | color: #283e65; |
| | | } |
| | | } |
| | | |
| | | .packing-registration-param-view { |
| | | height: 180rpx; |
| | | background-color: #fff; |
| | | border-radius: 10rpx; |
| | | padding: 0rpx 23rpx; |
| | | margin-bottom: 30rpx; |
| | | .packing-registration-param-view { |
| | | height: 180rpx; |
| | | background-color: #fff; |
| | | border-radius: 10rpx; |
| | | padding: 0rpx 23rpx; |
| | | margin-bottom: 30rpx; |
| | | |
| | | .packing-registration-param-item { |
| | | height: 90rpx; |
| | | border: 1px solid #adc8e4; |
| | | line-height: 90rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | border: none; |
| | | .packing-registration-param-item { |
| | | height: 90rpx; |
| | | border: 1px solid #adc8e4; |
| | | line-height: 90rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | border: none; |
| | | |
| | | .packing-registration-param-item-left { |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | .packing-registration-param-item-left { |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | |
| | | .packing-registration-param-item-right { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .packing-registration-param-item-right { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | margin-right: 6rpx; |
| | | } |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | margin-right: 6rpx; |
| | | } |
| | | |
| | | .item-two { |
| | | font-size: 30rpx; |
| | | color: #a6b4cc; |
| | | margin-right: 6rpx; |
| | | } |
| | | .item-two { |
| | | font-size: 30rpx; |
| | | color: #a6b4cc; |
| | | margin-right: 6rpx; |
| | | } |
| | | |
| | | .item-three { |
| | | font-size: 30rpx; |
| | | color: #214ded; |
| | | margin-right: 6rpx; |
| | | } |
| | | } |
| | | } |
| | | .item-three { |
| | | font-size: 30rpx; |
| | | color: #214ded; |
| | | margin-right: 6rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .param-extra { |
| | | border-bottom: 1px solid #ededed; |
| | | } |
| | | } |
| | | } |
| | | .param-extra { |
| | | border-bottom: 1px solid #ededed; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .wrap .packing-registration-scroll-list { |
| | | height: calc(100vh - var(--window-top) - var(--window-bottom) - 400rpx); |
| | | width: 100%; |
| | | } |
| | | .wrap .packing-registration-scroll-list { |
| | | height: calc(100vh - var(--window-top) - var(--window-bottom) - 400rpx); |
| | | 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; |
| | | } |
| | | .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 { |
| | | 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 { |
| | | 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-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-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; |
| | | .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 { |
| | | 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; |
| | | .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; |
| | | } |
| | | } |
| | | ._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 ._content { |
| | | flex: 1.5; |
| | | text-align: right; |
| | | color: #909399; |
| | | font-size: 24rpx; |
| | | } |
| | | |
| | | .row-list .s1 { |
| | | color: #d35651; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .row-list .s1 { |
| | | color: #d35651; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <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)"> |
| | | @click="selectNo(item)"> |
| | | <view class="content-header"> |
| | | <view class="content-header-title">{{ item.index }}</view> |
| | | </view> |
| | |
| | | // 车间订单下发 |
| | | <template> |
| | | <view class="page"> |
| | | <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()">{{ |
| | | <view class="page"> |
| | | <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.moNo == "" ? "点击选择" : registerInfo.moNo |
| | | }}</text> |
| | | <u-icon name="arrow-right" color="#687792" size="28" @click="seachPersonnelNo()" |
| | | v-show="registerInfo.moNo == ''"></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"> |
| | | <text class="item-one item-two" @click="seachComp()">{{ |
| | | <u-icon |
| | | name="arrow-right" |
| | | color="#687792" |
| | | size="28" |
| | | @click="seachPersonnelNo()" |
| | | v-show="registerInfo.moNo == ''" |
| | | ></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"> |
| | | <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> |
| | | </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.value3 }}</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> |
| | | </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> |
| | | </view> |
| | | </u-cell-group> |
| | | </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> |
| | | <u-icon |
| | | name="arrow-right" |
| | | color="#687792" |
| | | size="28" |
| | | @click="seachComp()" |
| | | v-show="registerInfo.value2 == ''" |
| | | ></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"> |
| | | <text class="item-one item-two">{{ registerInfo.value3 }}</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> |
| | | </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> |
| | | </view> |
| | | </u-cell-group> |
| | | </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.moNO }}</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"; |
| | | export default { |
| | | components: { |
| | | scan, |
| | | }, |
| | | import scan from "@/components/scan/scan.vue"; |
| | | 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", |
| | | }, |
| | | labelStyle: { |
| | | fontSize: "32rpx", |
| | | whiteSpace: "nowrap", |
| | | }, |
| | | // 弹窗列表 |
| | | modalList: { |
| | | value: "", |
| | | value1: "", |
| | | }, |
| | | // 主页面列表 |
| | | registerInfo: { |
| | | moNo: "", |
| | | value2: "", |
| | | value3: "", |
| | | }, |
| | | // 下发记录列表 |
| | | hasScanSnList: [], |
| | | }; |
| | | }, |
| | | onShow() { |
| | | 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); |
| | | that.$forceUpdate(); |
| | | }); |
| | | }, |
| | | 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.moNo = val.moNo; |
| | | this.registerInfo.value2 = val.value2; |
| | | }, |
| | | //订单号 |
| | | seachPersonnelNo() { |
| | | console.log("车间订单号"); |
| | | uni.navigateTo({ |
| | | url: "/pages/product/report/orderList", |
| | | }); |
| | | }, |
| | | //子件 |
| | | seachComp() { |
| | | if (this.registerInfo.value1 == null || this.registerInfo.value1 == "") { |
| | | this.$u.toast("请选择订单号"); |
| | | return; |
| | | } |
| | | console.log("子件"); |
| | | uni.navigateTo({ |
| | | url: "/pages/product/WorkshopOrderIssued/comp", |
| | | }); |
| | | }, |
| | | // 扫码后数据回显 |
| | | scanHandle(scanresult) { |
| | | this.$u.api.workReporting |
| | | ._({}).then((res) => { |
| | | this.modalList = res.data.records; |
| | | this.showModal = true; |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | data() { |
| | | return { |
| | | background: { |
| | | backgroundImage: `url(${content_bg})`, |
| | | backgroundAttachment: "fixed", |
| | | backgroundSize: "100% auto", |
| | | backgroundRepeat: "no-repeat", |
| | | }, |
| | | labelStyle: { |
| | | fontSize: "32rpx", |
| | | whiteSpace: "nowrap", |
| | | }, |
| | | // 弹窗列表 |
| | | modalList: { |
| | | partNo: "", |
| | | moNo: "", |
| | | }, |
| | | // 主页面列表 |
| | | registerInfo: { |
| | | moNo: "", |
| | | value2: "", |
| | | value3: "", |
| | | }, |
| | | // 下发记录列表 |
| | | hasScanSnList: [], |
| | | codeInfoId: "", |
| | | }; |
| | | }, |
| | | onShow() { |
| | | 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"); |
| | | if (data.code) { |
| | | let codeInfo = JSON.parse(data.code); |
| | | this.codeInfoId = codeInfo.id; |
| | | if (codeInfo.moOn) { |
| | | // 扫描报工单二维码 |
| | | that.scanHandle(data.code); |
| | | that.$forceUpdate(); |
| | | that.getHandelList(); |
| | | } |
| | | } |
| | | //扫码成功后的回调,你可以写自己的逻辑代码在这里 |
| | | console.log("扫码结果:", data.code); |
| | | }); |
| | | }, |
| | | methods: { |
| | | getHandelList() { |
| | | this.$u.api.workReporting |
| | | .getProductMainV1({ |
| | | current: 1, |
| | | size: -1, |
| | | id: this.codeInfoId, |
| | | }) |
| | | .then((res) => { |
| | | this.hasScanSnList = res.data.productOutputList; |
| | | }); |
| | | }, |
| | | // 点击确认后获取下发记录 |
| | | confirm() { |
| | | // 处理确认逻辑 |
| | | this.$u.api.workReporting._(this.modalList).then((res) => { |
| | | console.log("res", res); |
| | | this.showModal = false; |
| | | |
| | | this.getHandelList(); |
| | | }); |
| | | }, |
| | | // 模态框取消 |
| | | cancel() { |
| | | this.showModal = false; // 关闭弹窗 |
| | | }, |
| | | // 子件回显 |
| | | compNo(val) { |
| | | this.registerInfo.value2 = val.value2; |
| | | this.registerInfo.value3 = val.value2; |
| | | }, |
| | | // 订单号回显 |
| | | setNo(val) { |
| | | console.log("11111", val); |
| | | this.registerInfo.moNo = val.moNo; |
| | | this.registerInfo.value2 = val.value2; |
| | | }, |
| | | //订单号 |
| | | seachPersonnelNo() { |
| | | console.log("车间订单号"); |
| | | uni.navigateTo({ |
| | | url: "/pages/product/report/orderList", |
| | | }); |
| | | }, |
| | | //子件 |
| | | seachComp() { |
| | | if (this.registerInfo.moNO == null) { |
| | | this.$u.toast("请选择订单号"); |
| | | return; |
| | | } |
| | | console.log("子件"); |
| | | uni.navigateTo({ |
| | | url: "/pages/product/WorkshopOrderIssued/comp", |
| | | }); |
| | | }, |
| | | // 扫码后数据回显 |
| | | scanHandle(val) { |
| | | let { moNo } = val; |
| | | this.modalList.moNo = moNo; |
| | | this.showModal = true; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .packing-registration-bg { |
| | | background-color: #f6f9ff; |
| | | background-image: url("~@/static/custom/packing/backBg.png"); |
| | | 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; |
| | | } |
| | | .packing-registration-bg { |
| | | background-color: #f6f9ff; |
| | | background-image: url("~@/static/custom/packing/backBg.png"); |
| | | 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; |
| | | } |
| | | |
| | | .packing-registration-param { |
| | | padding: 40rpx 30rpx 10rpx 30rpx; |
| | | .packing-registration-param { |
| | | padding: 40rpx 30rpx 10rpx 30rpx; |
| | | |
| | | .packing-registration-param-title { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | margin-bottom: 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; |
| | | } |
| | | } |
| | | .title-label { |
| | | margin-left: 14rpx; |
| | | font-size: 34rpx; |
| | | font-weight: bold; |
| | | color: #283e65; |
| | | } |
| | | } |
| | | |
| | | .packing-registration-param-view { |
| | | height: 345rpx; |
| | | background-color: #fff; |
| | | border-radius: 10rpx; |
| | | padding: 0rpx 23rpx; |
| | | margin-bottom: 30rpx; |
| | | .packing-registration-param-view { |
| | | height: 345rpx; |
| | | background-color: #fff; |
| | | border-radius: 10rpx; |
| | | padding: 0rpx 23rpx; |
| | | margin-bottom: 30rpx; |
| | | |
| | | .packing-registration-param-item { |
| | | height: 90rpx; |
| | | border: 1px solid #adc8e4; |
| | | line-height: 90rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | border: none; |
| | | .packing-registration-param-item { |
| | | height: 90rpx; |
| | | border: 1px solid #adc8e4; |
| | | line-height: 90rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | border: none; |
| | | |
| | | .packing-registration-param-item-left { |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | .packing-registration-param-item-left { |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | |
| | | .packing-registration-param-item-right { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .packing-registration-param-item-right { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | margin-right: 6rpx; |
| | | } |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | margin-right: 6rpx; |
| | | } |
| | | |
| | | .item-two { |
| | | font-size: 30rpx; |
| | | color: #a6b4cc; |
| | | margin-right: 6rpx; |
| | | } |
| | | .item-two { |
| | | font-size: 30rpx; |
| | | color: #a6b4cc; |
| | | margin-right: 6rpx; |
| | | } |
| | | |
| | | .item-three { |
| | | font-size: 30rpx; |
| | | color: #214ded; |
| | | margin-right: 6rpx; |
| | | } |
| | | } |
| | | } |
| | | .item-three { |
| | | font-size: 30rpx; |
| | | color: #214ded; |
| | | margin-right: 6rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .param-extra { |
| | | border-bottom: 1px solid #ededed; |
| | | } |
| | | } |
| | | } |
| | | .param-extra { |
| | | border-bottom: 1px solid #ededed; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .wrap .packing-registration-scroll-list { |
| | | height: calc(100vh - var(--window-top) - var(--window-bottom) - 550rpx); |
| | | width: 100%; |
| | | } |
| | | .wrap .packing-registration-scroll-list { |
| | | height: calc(100vh - var(--window-top) - var(--window-bottom) - 550rpx); |
| | | 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; |
| | | } |
| | | .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 { |
| | | 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 { |
| | | 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-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-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; |
| | | .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 { |
| | | 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; |
| | | .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; |
| | | } |
| | | } |
| | | ._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 ._content { |
| | | flex: 1.5; |
| | | text-align: right; |
| | | color: #909399; |
| | | font-size: 24rpx; |
| | | } |
| | | |
| | | .row-list .s1 { |
| | | color: #d35651; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .row-list .s1 { |
| | | color: #d35651; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <text class="item-one">批号</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ detailedList.value1 }}</text> |
| | | <text class="item-one item-two">{{ detailedList.moNo }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <text class="item-one">零件号</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ detailedList.value2 }}</text> |
| | | <text class="item-one item-two">{{ detailedList.partNo }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <text class="item-one">零件描述</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ detailedList.value3 }}</text> |
| | | <text class="item-one item-two">{{ |
| | | detailedList.partName |
| | | }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <view class="packing-registration-param-item-right"> |
| | | <u-input |
| | | class="item-one item-two" |
| | | v-model="detailedList.value4" |
| | | v-model="detailedList.qtyRequired" |
| | | /> |
| | | </view> |
| | | </view> |
| | |
| | | moNo: "", |
| | | }, |
| | | detailedList: { |
| | | value1: "", |
| | | value2: "", |
| | | value3: "", |
| | | value4: "", |
| | | moNo: "", |
| | | partNo: "", |
| | | partName: "", |
| | | qtyRequired: "", |
| | | }, |
| | | list: [ |
| | | { |
| | |
| | | onShow() { |
| | | let that = this; |
| | | uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器 |
| | | if ((that.form.moNO = null)) { |
| | | if ((that.form.moNO == null)) { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: "请先选择订单号!", |
| | | duration: 2 * 1000, |
| | | }); |
| | | return; |
| | | } |
| | | if ((that.form.moNO = null)) { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: "扫描的二维码与该订单不一致", |
| | | duration: 2 * 1000, |
| | | }); |
| | | return; |
| | |
| | | console.log("页面扫码结果:", data.code); |
| | | if (data.code) { |
| | | let codeInfo = JSON.parse(data.code); |
| | | if (codeInfo.WorkNo) { |
| | | (this.detailedList = {}), |
| | | if (codeInfo.moNO) { |
| | | if ((that.form.moNO != codeInfo.moNO)) { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: "扫描的二维码与该订单不一致", |
| | | duration: 2 * 1000, |
| | | }); |
| | | return; |
| | | } |
| | | // 扫描报工单二维码 |
| | | that.saveForm(codeInfo); |
| | | } |
| | |
| | | }, |
| | | // 回显扫码的信息-报工单 |
| | | saveForm(val) { |
| | | let { WorkNo, ProcessName, ORDER_NO } = val; |
| | | this.detailedList.value1 = WorkNo; |
| | | this.detailedList.value2 = ProcessName; |
| | | this.detailedList.value3 = ORDER_NO; |
| | | let { moNo, partNo, partName } = val; |
| | | this.detailedList.moNo = moNo; |
| | | this.detailedList.partNo = partNo; |
| | | this.detailedList.partName = partName; |
| | | this.showModal = true; |
| | | }, |
| | | }, |
| | |
| | | <text class="item-one item-two">生产速度</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <u-input class="item-one item-two" v-model="form.productionSpeed" /> |
| | | <u-input |
| | | class="item-one item-two" |
| | | v-model="form.productionSpeed" |
| | | /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | this.$refs.uModal.clearLoading(); // 清除加载状态 |
| | | return; |
| | | } |
| | | this.operationTaskList.operationTaskId = this.operationTaskList.id |
| | | this.form.operationTaskId = this.operationTaskList.id |
| | | this.operationTaskList.productOutputList = []; // 创建一个空数组 |
| | | this.operationTaskList.productOutputList.push(this.form); // 向数组中添加元素 |
| | | console.log('this.operationTaskList',this.operationTaskList) |
| | | this.operationTaskList.operationTaskId = this.operationTaskList.id; |
| | | this.form.operationTaskId = this.operationTaskList.id; |
| | | this.operationTaskList.productOutputList = []; // 创建一个空数组 |
| | | this.operationTaskList.productOutputList.push(this.form); // 向数组中添加元素 |
| | | console.log("this.operationTaskList", this.operationTaskList); |
| | | this.$u.api.workReporting |
| | | .submitPDA(this.operationTaskList) |
| | | .then((res) => { |
| | | this.$emit('update') |
| | | this.$emit("update"); |
| | | this.$refs.uModal.cancel(); |
| | | }); |
| | | }, |
| | |
| | | }, |
| | | open(val) { |
| | | this.show = true; |
| | | this.form = val.data; |
| | | this.form = val.data; |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | <u-radio name="投料">投料</u-radio> |
| | | </u-radio-group> |
| | | </u-form-item> |
| | | <u-form-item label="工序" prop="value1"> |
| | | <u-form-item label="工序"> |
| | | <u-checkbox-group> |
| | | <u-checkbox |
| | | :name="item.name" |
| | | v-for="(item, index) in checkboxList" |
| | | :key="index" |
| | | v-model="item.value1" |
| | | v-model="item.value" |
| | | @change="changeCheckbox" |
| | | :disabled="subdisabled || item.disabled" |
| | | > |
| | |
| | | showSave: false, |
| | | operationTaskId: "", |
| | | subdisabled: false, |
| | | codeInfoId: "", |
| | | }; |
| | | }, |
| | | // 点击提交按钮的事件处理函数 |
| | |
| | | //扫码成功后的回调,你可以写自己的逻辑代码在这里 |
| | | if (data.code) { |
| | | let codeInfo = JSON.parse(data.code); |
| | | that.codeInfoId = codeInfo.id; |
| | | if (codeInfo.moOn) { |
| | | // 扫描报工单二维码 |
| | | that.saveForm(codeInfo); |
| | | that.$u.api.workReporting |
| | | .getProductMainV1({ |
| | | current: 1, |
| | | size: -1, |
| | | id: codeInfo.id, |
| | | }) |
| | | .then((res) => { |
| | | that.InventoryReceiptList = res.data.productOutputList; |
| | | }); |
| | | that.getHandelList(); |
| | | } |
| | | } |
| | | }); |
| | |
| | | watch: { |
| | | "form.taskNo": function (newVal, oldVal) { |
| | | this.subdisabled = false; |
| | | this.checkboxList[1].value = false; |
| | | this.checkboxList[0].value = false; |
| | | }, |
| | | }, |
| | | methods: { |
| | | getHandelList() { |
| | | this.$u.api.workReporting |
| | | .getProductMainV1({ |
| | | current: 1, |
| | | size: -1, |
| | | id: this.codeInfoId, |
| | | }) |
| | | .then((res) => { |
| | | this.InventoryReceiptList = res.data.productOutputList; |
| | | }); |
| | | }, |
| | | // 多选处理 |
| | | changeCheckbox(val) { |
| | | if (val.name === "工序的自动报告") { |
| | |
| | | }, |
| | | handleUpdate() { |
| | | this.subdisabled = true; |
| | | this.getHandelList(); |
| | | }, |
| | | // 打开弹框--后面还需要监听扫码枪扫码结果,赋值给报工单号字段,然后打开弹框选择订单号等操作 |
| | | open() { |
| | |
| | | autoReport: false, |
| | | simplifyMaterials: false, |
| | | }; |
| | | this.checkboxList[1].value = false; |
| | | this.checkboxList[0].value = false; |
| | | if (this.form.materialcost == "倒冲") { |
| | | this.checkboxList[1].disabled = true; |
| | | } |
| | |
| | | <text class="item-one">库位</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text |
| | | class="item-one item-two">{{ registerInfo.storageLocation == '' ? "请扫描库位" : registerInfo.storageLocation }}</text> |
| | | <text class="item-one item-two">{{ |
| | | registerInfo.proposedLocation == "" |
| | | ? "请扫描库位" |
| | | : registerInfo.proposedLocation |
| | | }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <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 class="_label-name">零件号:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value0 }} |
| | | {{ item.partNo }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | |
| | | <view class="_label-name">批次号:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value1 }} |
| | | {{ item.moNo }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | |
| | | <view class="_label-name">库位号:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value0 }} |
| | | {{ item.proposedLocation }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | |
| | | <text class="item-one">批号</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ 111 }}</text> |
| | | <text class="item-one item-two">{{ detailedList.moNo }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <text class="item-one">零件描述</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ 111 }}</text> |
| | | <text class="item-one item-two">{{ |
| | | detailedList.partName |
| | | }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <text class="item-one">WDR</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ 111 }}</text> |
| | | <text class="item-one item-two">{{ detailedList.WDR }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <text class="item-one">当前库位</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ 111 }}</text> |
| | | <text class="item-one item-two">{{ |
| | | detailedList.proposedLocation |
| | | }}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | storageLocation: "", |
| | | 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", |
| | | }, |
| | | ], |
| | | showModal: false, // 控制弹窗显示隐藏的变量 |
| | | hasScanSnList: [], |
| | | detailedList: { |
| | | moNo: "", |
| | | partNo: "", |
| | | proposedLocation: "", |
| | | WDR: "", |
| | | }, |
| | | codeInfoId: '', |
| | | }; |
| | | }, |
| | | onLoad() {}, |
| | |
| | | if (data.code) { |
| | | let codeInfo = JSON.parse(data.code); |
| | | // 扫描报工单二维码 |
| | | that.saveForm(codeInfo); |
| | | // 判断扫描的是库位码还是流转码 |
| | | if (codeInfo.LN) { |
| | | that.saveForm(codeInfo) |
| | | } else { |
| | | that.codeInfoId = codeInfo.id |
| | | that.saveModalForm(codeInfo) |
| | | that.getHandelList(); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | methods: { |
| | | getHandelList() { |
| | | this.$u.api.workReporting |
| | | .getProductMainV1({ |
| | | current: 1, |
| | | size: -1, |
| | | id: this.codeInfoId, |
| | | }) |
| | | .then((res) => { |
| | | this.hasScanSnList = res.data.productOutputList; |
| | | }); |
| | | }, |
| | | confirm() { |
| | | // 处理确认逻辑 |
| | | this.show = false; |
| | | }, |
| | | cancel() { |
| | | this.show = false; // 关闭弹窗 |
| | | // 点击确认移库 |
| | | if (_) { |
| | | if (true) { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: "你无法将零件移到相同位置", |
| | |
| | | }); |
| | | return |
| | | } |
| | | this.$u.api.workReporting._({}).then((res) => { |
| | | console.log("res", res); |
| | | this.hasScanSnList = res.data.records; |
| | | }); |
| | | this.getHandelList() |
| | | this.show = false; |
| | | }, |
| | | // 回显扫码的信息-报工单 |
| | | cancel() { |
| | | this.show = false; // 关闭弹窗 |
| | | }, |
| | | // 回显扫码的信息 |
| | | saveForm(val) { |
| | | // 判断扫描的是库位码还是流转码 |
| | | if (_) { |
| | | this.registerInfo.storageLocation = val.storageLocation |
| | | } |
| | | if (_) { |
| | | this.registerInfo.proposedLocation = val.LN |
| | | } |
| | | saveModalForm(val) { |
| | | this.detailedList: { |
| | | moNo: val.moNo, |
| | | partNo: val.partNo, |
| | | proposedLocation: val.proposedLocation, |
| | | WDR: val.WDR, |
| | | }, |
| | | this.show = true; |
| | | } |
| | | } |
| | | }, |
| | | }; |