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