From 2a8cdfd4f464d737dda6e0a9bb43c83109d926a3 Mon Sep 17 00:00:00 2001 From: yyb <995253665@qq.com> Date: 星期三, 11 六月 2025 17:12:52 +0800 Subject: [PATCH] 报工功能点逻辑编写/样式调整 --- pages/product/report/index.vue | 535 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 296 insertions(+), 239 deletions(-) diff --git a/pages/product/report/index.vue b/pages/product/report/index.vue index 02bd8fa..a30fe52 100644 --- a/pages/product/report/index.vue +++ b/pages/product/report/index.vue @@ -1,246 +1,303 @@ <template> - <!-- 鎶ュ伐 --> - <div class="page"> - <u-form :model="form" ref="uForm" :label-width="200" :rules="rules" :error-type="['toast']"> - <u-form-item label="杞﹂棿" :border-bottom="false" prop="value0"> - <u-radio-group v-model="form.value0"> - <u-radio name="瀵间綋">瀵间綋</u-radio> - <u-radio name="閾滄潌">閾滄潌</u-radio> - </u-radio-group> - </u-form-item> - <u-form-item label="鎶ュ伐鍗曞彿" :border-bottom="false" prop="taskNo"> - <u-input v-model="form.taskNo" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" @click="open" /> - </u-form-item> - <u-form-item label="宸ュ簭" :border-bottom="false" prop="name"> - <u-input v-model="form.name" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" /> - </u-form-item> - <u-form-item label="璁㈠崟鍙�" :border-bottom="false" prop="moOn"> - <u-input v-model="form.moOn" type="select" placeholder="鐐瑰嚮閫夋嫨" @click="openList" /> - </u-form-item> - <u-form-item label="闆朵欢鍙�" :border-bottom="false" prop="partNo"> - <u-input v-model="form.partNo" placeholder="" disabled /> - </u-form-item> - <u-form-item label="闆朵欢鎻忚堪" :border-bottom="false" prop="partName"> - <u-input v-model="form.partName" placeholder="" disabled /> - </u-form-item> - <u-form-item label="鎵归噺澶у皬" :border-bottom="false" prop="value6"> - <u-input v-model="form.value6" placeholder="" disabled /> - </u-form-item> - <u-form-item label="鍓╀綑鏁伴噺" :border-bottom="false" prop="value7"> - <u-input v-model="form.value7" placeholder="" disabled /> - </u-form-item> - <u-form-item label="搴撲綅" :border-bottom="false" prop="value8"> - <u-input v-model="form.value8" placeholder="" disabled /> - </u-form-item> - <u-form-item label="鎶ュ伐绫诲瀷" prop="value9"> - <u-radio-group v-model="form.value9"> - <u-radio name="涓嬫満鎶ュ伐">涓嬫満鎶ュ伐</u-radio> - <u-radio name="鏈笅鏈烘姤宸�">鏈笅鏈烘姤宸�</u-radio> - </u-radio-group> - </u-form-item> - <u-form-item label="鎺ユ敹闆朵欢" prop="value10"> - <u-radio-group v-model="form.value10"> - <u-radio name="杞﹂棿璁㈠崟">杞﹂棿璁㈠崟</u-radio> - <u-radio name="鏇夸唬闆朵欢">鏇夸唬闆朵欢</u-radio> - </u-radio-group> - </u-form-item> - <u-form-item label="鐗╂枡鍜屽伐搴�" prop="value11"> - <u-checkbox-group> - <u-checkbox :name="item.name" v-for="(item, index) in checkboxList" :key="index" v-model="item.value" - @change="changeCheckbox"> - {{ item.name }} - </u-checkbox> - </u-checkbox-group> - </u-form-item> - <u-form-item label="搴撳瓨鎺ユ敹" :border-bottom="false" prop="value12"></u-form-item> - </u-form> - <!-- 濉啓鎶ュ伐鍗� --> - <modalBg ref="modalBg" :confirm="confirm"> - <u-field v-model="form.value1" label="鎶ュ伐鍗曞彿" placeholder="璇疯緭鍏�" :border-bottom="false"> - </u-field> - </modalBg> - <saveForm ref="saveForm" /> - <scan></scan> - </div> + <!-- 鎶ュ伐 --> + <div class="page"> + <u-form :model="form" ref="uForm" :label-width="200" :rules="rules" :error-type="['toast']"> + <u-form-item label="杞﹂棿" :border-bottom="false" prop="value0"> + <u-radio-group v-model="form.value0"> + <u-radio name="瀵间綋">瀵间綋</u-radio> + <u-radio name="閾滄潌">閾滄潌</u-radio> + </u-radio-group> + </u-form-item> + <u-form-item label="鎶ュ伐鍗曞彿" :border-bottom="false" prop="taskNo"> + <u-input v-model="form.taskNo" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" @click="open" /> + </u-form-item> + <u-form-item label="宸ュ簭" :border-bottom="false" prop="name"> + <u-input v-model="form.name" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" /> + </u-form-item> + <u-form-item label="璁㈠崟鍙�" :border-bottom="false" prop="moOn"> + <u-input v-model="form.moOn" type="select" placeholder="鐐瑰嚮閫夋嫨" @click="openList" /> + </u-form-item> + <u-form-item label="闆朵欢鍙�" :border-bottom="false" prop="partNo"> + <u-input v-model="form.partNo" placeholder="" disabled /> + </u-form-item> + <u-form-item label="闆朵欢鎻忚堪" :border-bottom="false" prop="partName"> + <u-input v-model="form.partName" placeholder="" disabled /> + </u-form-item> + <u-form-item label="鎵归噺澶у皬" :border-bottom="false" prop="value6"> + <u-input v-model="form.value6" placeholder="" disabled /> + </u-form-item> + <u-form-item label="鍓╀綑鏁伴噺" :border-bottom="false" prop="value7"> + <u-input v-model="form.value7" placeholder="" disabled /> + </u-form-item> + <u-form-item label="搴撲綅" :border-bottom="false" prop="value8"> + <u-input v-model="form.value8" placeholder="" disabled /> + </u-form-item> + <u-form-item label="鎶ュ伐绫诲瀷" prop="value9"> + <u-radio-group v-model="form.value9"> + <u-radio name="1">涓嬫満鎶ュ伐</u-radio> + <u-radio name="2">鏈笅鏈烘姤宸�</u-radio> + </u-radio-group> + </u-form-item> + <u-form-item label="鎺ユ敹闆朵欢" prop="value10"> + <u-radio-group v-model="form.value10"> + <u-radio name="1">杞﹂棿璁㈠崟</u-radio> + <u-radio name="2">鏇夸唬闆朵欢</u-radio> + </u-radio-group> + </u-form-item> + <u-form-item label="鐗╂枡" prop="value12"> + <u-radio-group v-model="form.value12" :disabled="true"> + <u-radio name="1">鍊掑啿</u-radio> + <u-radio name="2">鎶曟枡</u-radio> + </u-radio-group> + </u-form-item> + <u-form-item label="宸ュ簭" prop="value11"> + <u-checkbox-group> + <u-checkbox :name="item.name" v-for="(item, index) in checkboxList" :key="index" + v-model="item.value11" @change="changeCheckbox" :disabled="item.disabled"> + {{ item.name }} + </u-checkbox> + </u-checkbox-group> + </u-form-item> + <u-form-item label="浜у嚭鍒楄〃" :border-bottom="false"></u-form-item> + </u-form> + <view class="wrap"> + <scroll-view class="packing-registration-scroll-list" scroll-y="true"> + <u-cell-group class="packing-registration-scroll-list-group" :border="false"> + <view class="content" v-for="(item, index) in InventoryReceiptList" :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> + </view> + </u-cell-group> + </scroll-view> + </view> + <!-- 濉啓鎶ュ伐鍗� --> + <modalBg ref="modalBg" :confirm="confirm"> + <u-field v-model="form.value1" label="鎶ュ伐鍗曞彿" placeholder="璇疯緭鍏�" :border-bottom="false"> + </u-field> + </modalBg> + <saveForm ref="saveForm" :operationTaskId="this.operationTaskId" /> + <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, scan }, - data() { - return { - checkboxList: [ - { - name: '鍊掑啿', - value: false - }, - { - name: '宸ュ簭鐨勮嚜鍔ㄦ姤鍛�', - value: false - }, - { - name: '绠�鍖栫墿鏂欐鏌�', - value: false - } - ], - form: { - taskNo: '', - name: '', - moOn: '', - partNo: '', - partName: '', - value6: '', - value7: '', - value8: '', - value9: '涓嬫満鎶ュ伐', - value10: '杞﹂棿璁㈠崟', - value11: [], // 澶嶉�夋缁勭殑鍊� - value12: '' - }, - rules: { - value0: [ - { - required: true, - message: '璇烽�夋嫨杞﹂棿', - trigger: ['change'] - } - ], - value1: [ - { - required: true, - message: '璇烽�夋嫨鎶ュ伐鍗曞彿', - trigger: ['change', 'blur'] - } - ], - value2: [ - { - required: true, - message: '璇烽�夋嫨宸ュ簭', - trigger: ['change', 'blur'] - } - ], - value3: [ - { - required: true, - message: '璇烽�夋嫨璁㈠崟鍙�', - trigger: ['change', 'blur'] - } - ], - value9: [ - { - required: true, - message: '璇烽�夋嫨鎶ュ伐绫诲瀷', - trigger: ['change'] - } - ], - value10: [ - { - required: true, - message: '璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷', - trigger: ['change'] - } - ], - value11: [ - { - type: 'array', - required: true, - message: '璇疯嚦灏戦�夋嫨涓�涓墿鏂欏拰宸ュ簭閫夐」', - trigger: ['change'] - } - ] - }, - showSave: false, - } - }, - // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁� - onNavigationBarButtonTap() { - this.form.value11 = this.checkboxList.filter(item => item.value).map(item => item.name); - this.$refs.uForm.validate(valid => { - if (valid) { - console.log('楠岃瘉閫氳繃'); - // 澶勭悊鎻愪氦閫昏緫 - this.$refs.saveForm.open(); - } else { - console.log('楠岃瘉澶辫触'); - // 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭� - const errors = this.$refs.uForm.getError(); - console.log('閿欒淇℃伅:', errors); - } - }); - }, - onReady() { - this.$refs.uForm.setRules(this.rules); - }, - onShow() { - let that = this - uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒 - uni.$on('scan', function (data) { - console.log('onscan'); - //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲� - console.log('椤甸潰鎵爜缁撴灉锛�', data.code); - if (data.code) { - let codeInfo = JSON.parse(data.code) - if (codeInfo.moOn) { - // 鎵弿鎶ュ伐鍗曚簩缁寸爜 - that.saveForm(codeInfo); - } - } - }) - }, - methods: { - // 澶氶�夊鐞� - changeCheckbox(val) { - if (val.name === '鍊掑啿') { - this.checkboxList[2].value = false - } - if (val.name === '绠�鍖栫墿鏂欐鏌�') { - this.checkboxList[0].value = false - } - }, - // 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔 - open() { - this.$refs.modalBg.open(); - }, - // 寮规淇濆瓨 - confirm() { - console.log('淇濆瓨', this.form.value1); - // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊� - }, - // 閫夋嫨璁㈠崟鍙� - openList() { - if (this.form.value1 === '') { - uni.showToast({ - title: '璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�', - icon: 'none' - }) - return - } - uni.navigateTo({ - url: '/pages/product/report/orderList' - }) - }, - // 瀛樿鍗曞彿 - setNo(val) { - this.form.value3 = val - }, - // 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗� - saveForm(val) { - console.log('鍥炴樉鐨勬暟鎹�',val) - let { moOn, name, ORDER_NO,taskNo,partName,partNo } = val - this.form.moOn = moOn - this.form.name = name - this.form.taskNo = taskNo - this.form.partName = partName - this.form.partNo = partNo - // this.form.value3 = ORDER_NO - } - } -} + 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, + scan + }, + data() { + return { + checkboxList: [{ + name: "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�", + value: false, + disabled: false, + }, + { + name: "绠�鍖栫墿鏂欐鏌�", + value: false, + disabled: false, + }, + ], + InventoryReceiptList: [], + form: { + taskNo: "", + name: "", + moOn: "", + partNo: "", + partName: "", + value6: "", + value7: "", + value8: "", + value9: "1", + value10: "1", + value11: [], // 澶嶉�夋缁勭殑鍊� + value12: "1", + }, + rules: { + value0: [{ + required: true, + message: "璇烽�夋嫨杞﹂棿", + trigger: ["change"], + }, ], + value1: [{ + required: true, + message: "璇烽�夋嫨鎶ュ伐鍗曞彿", + trigger: ["change", "blur"], + }, ], + value2: [{ + required: true, + message: "璇烽�夋嫨宸ュ簭", + trigger: ["change", "blur"], + }, ], + value3: [{ + required: true, + message: "璇烽�夋嫨璁㈠崟鍙�", + trigger: ["change", "blur"], + }, ], + value9: [{ + required: true, + message: "璇烽�夋嫨鎶ュ伐绫诲瀷", + trigger: ["change"], + }, ], + value10: [{ + required: true, + message: "璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷", + trigger: ["change"], + }, ], + value11: [{ + type: "array", + required: true, + message: "璇疯嚦灏戦�夋嫨涓�涓墿鏂欏拰宸ュ簭閫夐」", + trigger: ["change"], + }, ], + }, + showSave: false, + operationTaskId: "", + }; + }, + // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁� + onNavigationBarButtonTap() { + this.$refs.saveForm.open(); + this.form.value11 = this.checkboxList + .filter((item) => item.value) + .map((item) => item.name); + this.$refs.uForm.validate((valid) => { + if (valid) { + console.log("楠岃瘉閫氳繃"); + // 澶勭悊鎻愪氦閫昏緫 + // this.$refs.saveForm.open(); + } else { + console.log("楠岃瘉澶辫触"); + // 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭� + const errors = this.$refs.uForm.getError(); + console.log("閿欒淇℃伅:", errors); + } + }); + }, + onReady() { + this.$refs.uForm.setRules(this.rules); + }, + onShow() { + let that = this; + console.log("1111111111111"); + uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒 + uni.$on("scan", function(data) { + console.log("onscan"); + //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲� + console.log("椤甸潰鎵爜缁撴灉锛�", data.code); + if (data.code) { + let codeInfo = JSON.parse(data.code); + this.operationTaskId = codeInfo.id; + if (codeInfo.moOn) { + // 鎵弿鎶ュ伐鍗曚簩缁寸爜 + that.saveForm(codeInfo); + this.$u.api.workReporting + .getProductMainV1({ + current: 1, + size: -1, + operationTaskId: this.operationTaskId, + }) + .then((res) => { + console.log("res", res); + this.InventoryReceiptList = res.data.records; + }); + } + } + }); + }, + methods: { + // // 澶氶�夊鐞� + // changeCheckbox(val) { + // if (val.name === "鍊掑啿") { + // this.checkboxList[2].value = false; + // } + // if (val.name === "绠�鍖栫墿鏂欐鏌�") { + // this.checkboxList[0].value = false; + // } + // }, + // 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔 + open() { + this.$refs.modalBg.open(); + }, + // 寮规淇濆瓨 + confirm() { + console.log("淇濆瓨", this.form.value1); + // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊� + }, + // 閫夋嫨璁㈠崟鍙� + openList() { + if (this.form.taskNo === "") { + uni.showToast({ + title: "璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�", + icon: "none", + }); + return; + } + uni.navigateTo({ + url: "/pages/product/report/orderList", + }); + }, + // 瀛樿鍗曞彿 + setNo(val) { + this.form.value3 = val; + }, + // 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗� + saveForm(val) { + console.log("鍥炴樉鐨勬暟鎹�", val); + let { + moOn, + name, + ORDER_NO, + taskNo, + partName, + partNo + } = val; + this.form.moOn = moOn; + this.form.name = name; + this.form.taskNo = taskNo; + this.form.partName = partName; + this.form.partNo = partNo; + // this.form.value3 = ORDER_NO + if (this.form.value12 == "1") { + this.checkboxList[1].disabled = true; + } + }, + }, + }; </script> <style lang="scss"> -@import 'index.scss'; -</style> \ No newline at end of file + @import "index.scss"; + </style> \ No newline at end of file -- Gitblit v1.9.3