From e9ebe0b65f45b5ecb5729f22bc7e54ce479314d7 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 20 六月 2025 17:12:38 +0800
Subject: [PATCH] 报工以及取消报工联调

---
 pages/product/report/index.vue |  383 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 258 insertions(+), 125 deletions(-)

diff --git a/pages/product/report/index.vue b/pages/product/report/index.vue
index 02bd8fa..448dd3a 100644
--- a/pages/product/report/index.vue
+++ b/pages/product/report/index.vue
@@ -1,21 +1,41 @@
 <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-form
+      :model="form"
+      ref="uForm"
+      :label-width="200"
+      :rules="rules"
+      :error-type="['toast']"
+    >
+      <u-form-item label="杞﹂棿" :border-bottom="false" prop="work">
+        <u-radio-group v-model="form.work" :disabled="subdisabled">
+          <u-radio name="dt">瀵间綋</u-radio>
+          <u-radio name="tg">閾滄潌</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-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-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-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 />
@@ -23,151 +43,230 @@
       <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 label="鎵归噺澶у皬" :border-bottom="false" prop="qtyRequired">
+        <u-input v-model="form.qtyRequired" 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
+        label="鍓╀綑鏁伴噺"
+        :border-bottom="false"
+        prop="Jianqtyfinished"
+      >
+        <u-input v-model="form.Jianqtyfinished" 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 label="搴撲綅" :border-bottom="false" prop="proposedLocation">
+        <u-input v-model="form.proposedLocation" 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-form-item label="鎶ュ伐绫诲瀷" prop="productType">
+        <u-radio-group v-model="form.productType" :disabled="subdisabled">
+          <u-radio name="dep">涓嬫満鎶ュ伐</u-radio>
+          <u-radio name="ndep">鏈笅鏈烘姤宸�</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-form-item label="鎺ユ敹闆朵欢" prop="receive">
+        <u-radio-group v-model="form.receive" :disabled="subdisabled">
+          <u-radio name="mo">杞﹂棿璁㈠崟</u-radio>
+          <u-radio name="part">鏇夸唬闆朵欢</u-radio>
         </u-radio-group>
       </u-form-item>
-      <u-form-item label="鐗╂枡鍜屽伐搴�" prop="value11">
+      <u-form-item label="鐗╂枡" prop="materialCost">
+        <u-radio-group v-model="form.materialCost" :disabled="true">
+          <u-radio name="鍊掑啿">鍊掑啿</u-radio>
+          <u-radio name="鎶曟枡">鎶曟枡</u-radio>
+        </u-radio-group>
+      </u-form-item>
+      <u-form-item label="宸ュ簭">
         <u-checkbox-group>
-          <u-checkbox :name="item.name" v-for="(item, index) in checkboxList" :key="index" v-model="item.value"
-            @change="changeCheckbox">
+          <u-checkbox
+            :name="item.name"
+            v-for="(item, index) in checkboxList"
+            :key="index"
+            v-model="item.value"
+            @change="changeCheckbox"
+            :disabled="subdisabled || item.disabled"
+          >
             {{ item.name }}
           </u-checkbox>
         </u-checkbox-group>
       </u-form-item>
-      <u-form-item label="搴撳瓨鎺ユ敹" :border-bottom="false" prop="value12"></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.outBatchNo }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-name">鏁伴噺锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.netWeight }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-name">搴撲綅锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.proposedLocation }}
+                </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
+        v-model="form.taskNo"
+        label="鎶ュ伐鍗曞彿"
+        placeholder="璇疯緭鍏�"
+        :border-bottom="false"
+      >
       </u-field>
     </modalBg>
-    <saveForm ref="saveForm" />
+    <saveForm
+      ref="saveForm"
+      :operationTaskList="this.form"
+      @update="handleUpdate"
+    />
     <scan></scan>
   </div>
 </template>
 
 <script>
-import modalBg from '@/components/modal/modal-bg.vue'
-import saveForm from './components/saveForm.vue'
+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 },
+  components: {
+    modalBg,
+    saveForm,
+    scan,
+  },
   data() {
     return {
       checkboxList: [
         {
-          name: '鍊掑啿',
-          value: false
+          name: "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�",
+          value: false,
+          disabled: false,
         },
         {
-          name: '宸ュ簭鐨勮嚜鍔ㄦ姤鍛�',
-          value: false
+          name: "绠�鍖栫墿鏂欐鏌�",
+          value: false,
+          disabled: false,
         },
-        {
-          name: '绠�鍖栫墿鏂欐鏌�',
-          value: false
-        }
       ],
+      InventoryReceiptList: [],
       form: {
-        taskNo: '',
-        name: '',
-        moOn: '',
-        partNo: '',
-        partName: '',
-        value6: '',
-        value7: '',
-        value8: '',
-        value9: '涓嬫満鎶ュ伐',
-        value10: '杞﹂棿璁㈠崟',
-        value11: [], // 澶嶉�夋缁勭殑鍊�
-        value12: ''
+        workstationId: "",
+        work: "",
+        taskNo: "",
+        name: "",
+        moOn: "",
+        partNo: "",
+        partName: "",
+        qtyRequired: "",
+        Jianqtyfinished: "",
+        proposedLocation: "",
+        productType: "dep",
+        receive: "mo",
+        materialCost: "",
+        autoReport: false,
+        simplifyMaterials: false,
       },
       rules: {
-        value0: [
+        work: [
           {
             required: true,
-            message: '璇烽�夋嫨杞﹂棿',
-            trigger: ['change']
-          }
+            message: "璇烽�夋嫨杞﹂棿",
+            trigger: ["change"],
+          },
         ],
-        value1: [
+        taskNo: [
           {
             required: true,
-            message: '璇烽�夋嫨鎶ュ伐鍗曞彿',
-            trigger: ['change', 'blur']
-          }
+            message: "璇烽�夋嫨鎶ュ伐鍗曞彿",
+            trigger: ["change", "blur"],
+          },
         ],
-        value2: [
+        name: [
           {
             required: true,
-            message: '璇烽�夋嫨宸ュ簭',
-            trigger: ['change', 'blur']
-          }
+            message: "璇烽�夋嫨宸ュ簭",
+            trigger: ["change", "blur"],
+          },
         ],
-        value3: [
+        moOn: [
           {
             required: true,
-            message: '璇烽�夋嫨璁㈠崟鍙�',
-            trigger: ['change', 'blur']
-          }
+            message: "璇烽�夋嫨璁㈠崟鍙�",
+            trigger: ["change", "blur"],
+          },
         ],
-        value9: [
+        productType: [
           {
             required: true,
-            message: '璇烽�夋嫨鎶ュ伐绫诲瀷',
-            trigger: ['change']
-          }
+            message: "璇烽�夋嫨鎶ュ伐绫诲瀷",
+            trigger: ["change"],
+          },
         ],
-        value10: [
+        receive: [
           {
             required: true,
-            message: '璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷',
-            trigger: ['change']
-          }
+            message: "璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷",
+            trigger: ["change"],
+          },
         ],
-        value11: [
-          {
-            type: 'array',
-            required: true,
-            message: '璇疯嚦灏戦�夋嫨涓�涓墿鏂欏拰宸ュ簭閫夐」',
-            trigger: ['change']
-          }
-        ]
       },
       showSave: false,
-    }
+      operationTaskId: "",
+      subdisabled: false,
+      codeInfoId: "",
+    };
   },
   // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
   onNavigationBarButtonTap() {
-    this.form.value11 = this.checkboxList.filter(item => item.value).map(item => item.name);
-    this.$refs.uForm.validate(valid => {
+    this.$refs.uForm.validate((valid) => {
       if (valid) {
-        console.log('楠岃瘉閫氳繃');
+        uni.showLoading({
+          mask: true,
+          title: "鍔犺浇涓�",
+        });
         // 澶勭悊鎻愪氦閫昏緫
-        this.$refs.saveForm.open();
+        this.$u.api.workReporting
+          .operationTask({
+            id: this.form.id,
+          })
+          .then((res) => {
+            res.data.name = this.form.name
+            this.$refs.saveForm.open(res);
+            uni.hideLoading();
+          });
       } else {
-        console.log('楠岃瘉澶辫触');
         // 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭�
         const errors = this.$refs.uForm.getError();
-        console.log('閿欒淇℃伅:', errors);
       }
     });
   },
@@ -175,72 +274,106 @@
     this.$refs.uForm.setRules(this.rules);
   },
   onShow() {
-    let that = this
-    uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
-    uni.$on('scan', function (data) {
-      console.log('onscan');
+    let that = this;
+    uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+    uni.$on("scan", function (data) {
       //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
-      console.log('椤甸潰鎵爜缁撴灉锛�', data.code);
       if (data.code) {
-        let codeInfo = JSON.parse(data.code)
+        let codeInfo = JSON.parse(data.code);
+        that.codeInfoId = codeInfo.id;
         if (codeInfo.moOn) {
           // 鎵弿鎶ュ伐鍗曚簩缁寸爜
           that.saveForm(codeInfo);
+          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 === '鍊掑啿') {
-        this.checkboxList[2].value = false
+      if (val.name === "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�") {
+        this.form.autoReport = val.value;
       }
-      if (val.name === '绠�鍖栫墿鏂欐鏌�') {
-        this.checkboxList[0].value = false
+      if (val.name === "绠�鍖栫墿鏂欐鏌�") {
+        this.form.simplifyMaterials = val.value;
       }
+    },
+    handleUpdate() {
+      this.subdisabled = true;
+      this.getHandelList();
     },
     // 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔
     open() {
       this.$refs.modalBg.open();
     },
     // 寮规淇濆瓨
-    confirm() {
-      console.log('淇濆瓨', this.form.value1);
-      // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
-    },
+    confirm() {},
     // 閫夋嫨璁㈠崟鍙�
     openList() {
-      if (this.form.value1 === '') {
+      if (this.form.taskNo === "") {
         uni.showToast({
-          title: '璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�',
-          icon: 'none'
-        })
-        return
+          title: "璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�",
+          icon: "none",
+        });
+        return;
       }
       uni.navigateTo({
-        url: '/pages/product/report/orderList'
-      })
+        url: "/pages/product/report/orderList",
+      });
     },
     // 瀛樿鍗曞彿
     setNo(val) {
-      this.form.value3 = val
+      this.form.moOn = val.moNo;
     },
     // 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
     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
-    }
-  }
-}
+      this.form = {
+        id: val.id,
+        workstationId: val.workstationId,
+        work: val.work,
+        taskNo: val.taskNo,
+        name: val.name,
+        moOn: val.moOn,
+        partNo: val.partNo,
+        partName: val.partName,
+        qtyRequired: val.qtyRequired,
+        Jianqtyfinished: val.qtyRequired - val.qtyFinished,
+        proposedLocation: val.proposedLocation,
+        productType: "dep",
+        receive: "mo", // 澶嶉�夋缁勭殑鍊�
+        materialCost: val.materialCost,
+        autoReport: false,
+        simplifyMaterials: false,
+      };
+      this.checkboxList[1].value = false;
+      this.checkboxList[0].value = false;
+      if (this.form.materialCost == "鍊掑啿") {
+        this.checkboxList[1].disabled = true;
+      }
+    },
+  },
+};
 </script>
 
 <style lang="scss">
-@import 'index.scss';
+@import "index.scss";
 </style>
\ No newline at end of file

--
Gitblit v1.9.3