From 3917bfce75349ac3fb0d0e5e4078dc99072a2d8e Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 10 四月 2024 18:52:33 +0800
Subject: [PATCH] 产量登记表连接设备的弹框样式开发+字段调试,下拉数据的接口联调问题

---
 src/views/productManage/productRegisterForm/components/addProductDialog.vue |  262 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 211 insertions(+), 51 deletions(-)

diff --git a/src/views/productManage/productRegisterForm/components/addProductDialog.vue b/src/views/productManage/productRegisterForm/components/addProductDialog.vue
index 9bed2ef..832504d 100644
--- a/src/views/productManage/productRegisterForm/components/addProductDialog.vue
+++ b/src/views/productManage/productRegisterForm/components/addProductDialog.vue
@@ -19,49 +19,91 @@
       >
         <el-row>
           <el-col :span="11">
-            <el-form-item label="鏃ユ湡" prop="date">
+            <el-form-item label="鏃ユ湡" prop="createTime">
               <el-date-picker
                 type="date"
                 placeholder="骞�/鏈�/鏃�"
-                v-model="proForm.date"
+                v-model="proForm.createTime"
                 size="small"
                 style="width: 100%"
               ></el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="9">
-            <el-form-item label="缁勫埆" prop="group">
-              <el-select v-model="proForm.group" placeholder="璇烽�夋嫨缁勫埆" size="small">
-                <el-option v-for="item in groupOptions" :key="item.id" :label="item.value" :value="item.id"></el-option>
+            <el-form-item label="缁勫埆" prop="groupNumber">
+              <el-select
+                v-model="proForm.groupNumber"
+                placeholder="璇峰厛閫夋嫨杞﹂棿"
+                no-data-text="璇峰厛閫夋嫨杞﹂棿"
+                class="select-width"
+                @change="getGroupNumber"
+              >
+                <el-option
+                  v-for="item in workshopGroupList"
+                  :key="item"
+                  :label="item"
+                  :value="item"
+                >
+                </el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="11">
-            <el-form-item label="杞﹂棿" prop="workshop">
-              <el-select v-model="proForm.workshop" placeholder="璇烽�夋嫨杞﹂棿" size="small">
-                <el-option label="杞﹂棿涓�" value="杞﹂棿涓�"></el-option>
-                <el-option label="杞﹂棿浜�" value="杞﹂棿浜�"></el-option>
-                <el-option label="杞﹂棿涓�" value="杞﹂棿涓�"></el-option>
-                <el-option label="杞﹂棿鍥�" value="杞﹂棿鍥�"></el-option>
+            <el-form-item label="杞﹂棿" prop="workshopId">
+              <el-select
+                v-model="proForm.workshopId"
+                placeholder="璇烽�夋嫨"
+                class="select-width"
+                @change="getGroupNumber"
+              >
+                <el-option
+                  v-for="item in nameList"
+                  :key="item.number"
+                  :label="item.name"
+                  :value="item.number"
+                >
+                </el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="9">
             <el-form-item label="瑙勬牸" prop="spec">
-              <el-input v-model="proForm.spec" size="small"></el-input>
+              <el-select
+                v-model="proForm.spec"
+                placeholder="璇烽�夋嫨"
+                class="select-width"
+              >
+                <el-option
+                  v-for="item in specList"
+                  :key="item.ID"
+                  :label="item.name"
+                  :value="item.name"
+                >
+                </el-option>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="20">
-            <el-form-item label="搴勫彛" prop="lots">
-              <el-select v-model="proForm.lots" placeholder="璇烽�夋嫨搴勫彛" size="small" style="width: 100%">
-                <el-option label="搴勫彛涓�" value="搴勫彛涓�"></el-option>
-                <el-option label="搴勫彛浜�" value="搴勫彛浜�"></el-option>
+            <el-form-item label="搴勫彛" prop="marketId">
+              <el-select
+                v-model="proForm.marketId"
+                placeholder="璇烽�夋嫨搴勫彛"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in marketList"
+                  :key="item.ID"
+                  :label="item.name"
+                  :value="item.ID"
+                >
+                </el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="4">
             <el-form-item label="" label-width="20px">
-              <el-button type="primary" size="small">鍒囨崲</el-button>
+              <el-button type="primary" @click='changeForm(true)' size="small">鍒囨崲</el-button>
             </el-form-item>
           </el-col>
           <el-col :span="20">
@@ -77,23 +119,23 @@
               <span slot="label">
                 <span class="formLabel">鍑�閲�</span>
               </span>
-              <el-input v-model="proForm.netWeight" size="small"></el-input>
+              <el-input v-model="proForm.netWeight"    @blur="changeTableInput" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="20">
-            <el-form-item prop="carNum" label-width="80px">
+            <el-form-item prop="carNumber" label-width="80px">
               <span slot="label">
                 <span class="formLabel">杞﹀彿</span>
               </span>
-              <el-input v-model="proForm.carNum" size="small"></el-input>
+              <el-input v-model="proForm.carNumber"  @blur="changeTableInput" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="20">
-            <el-form-item prop="numTimes" label-width="80px">
+            <el-form-item prop="pieceNumber" label-width="80px">
               <span slot="label">
                 <span class="formLabel">鍥炴暟</span>
               </span>
-              <el-input v-model="proForm.numTimes" size="small"></el-input>
+              <el-input v-model.number="proForm.pieceNumber"  @blur="changeTableInput" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="20">
@@ -101,61 +143,179 @@
               <span slot="label">
                 <span class="formLabel">鐗囨暟</span>
               </span>
-              <el-input v-model="proForm.pieces" size="small"></el-input>
+              <el-input v-model.number="proForm.pieces"  @blur="changeTableInput" size="small"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
     </div>
     <div slot="footer" class="dialog-footer">
-      <el-button @click="handleClose" size="mini">鍙栨秷</el-button>
-      <el-button type="primary" @click="onSubmit('form')" size="mini">纭畾</el-button>
+      <!-- <el-button @click="handleClose" size="mini">鍙栨秷</el-button>
+      <el-button type="primary" @click="onSubmit('form')" size="mini">纭畾</el-button> -->
     </div>
   </el-dialog>
 </template>
 <script>
+import {
+  getWorkshopManageGroup,
+} from "@/api/productManage/productRegisterForm.js";
 export default {
-  props: {},
+  props: { 
+    nameList: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    marketList: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    specList: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    form: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
   components: {},
   data() {
     return {
       editDialogVisible: false,
-      proForm: {},
-      rules: {
-        date: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" }],
-        number: [{ required: true, message: "璇疯緭鍏ョ紪鍙�", trigger: "blur" }],
-        workshop: [{ type: "date", required: true, message: "璇烽�夋嫨杞﹂棿", trigger: "change" }]
+      workshopGroupList:[],
+      proForm: {
+        createTime: "",
+        groupNumber: "",
+        workshopId: "",
+        spec: "",
+        marketId: "",
+        tareWeight: "",
+        netWeight: "",
+        carNumber: "",
+        pieceNumber: "",
+        pieces: "",
       },
-      groupOptions: [
-        { id: 1, value: 1 },
-        { id: 2, value: 2 },
-        { id: 3, value: 3 },
-        { id: 4, value: 4 },
-        { id: 5, value: 5 },
-        { id: 6, value: 6 },
-        { id: 7, value: 7 },
-        { id: 8, value: 8 },
-        { id: 9, value: 9 }
-      ]
+      rules: {
+        createTime: [
+          { required: true, message: "璇烽�夋嫨鐢熶骇鏃ユ湡", trigger:  ["change", "blur"] },
+        ],
+        marketId:  [
+          { required: true, message: "璇烽�夋嫨", trigger:  ["change", "blur"] },
+        ],
+        workshopId:  [
+          { required: true, message: "璇烽�夋嫨", trigger:  ["change", "blur"] },
+        ],
+        groupNumber:  [
+          { required: true, message: "璇烽�夋嫨", trigger:  ["change", "blur"] },
+        ],
+        spec:  [
+          { required: true, message: "璇烽�夋嫨", trigger:  ["change", "blur"] },
+        ],
+      },
+    };
+  },
+  created() {
+  },
+  watch:{
+    "form": {
+      handler() {
+        this.getInfo()
+      },
+      deep: true,
+      immediate:true,
+    },
+    "form.carNumber": {
+      handler() {
+        debugger
+        this.$set(this.proForm,'carNumber',this.form.carNumber)
+      },
+      deep: true,
+      immediate:true,
+    },
+    "form.pieceNumber": {
+      handler() {
+        this.$set(this.proForm,'pieceNumber',this.form.pieceNumber)
+      },
+      deep: true,
+      immediate:true,
+    },
+    "form.pieces": {
+      handler() {
+        this.$set(this.proForm,'pieces',this.form.pieces)
+      },
+      deep: true,
+      immediate:true,
+    },
+    'form.workshopId': function () {
+      this.getGroupNumber()
     }
   },
-  created() {},
   methods: {
+    getInfo(){
+      this.proForm={
+          createTime: this.form.createTime,
+          groupNumber: this.form.groupNumber,
+          workshopId: this.form.workshopId,
+          spec: this.form.spec,
+          marketId: this.form.marketId,
+          tareWeight: "",
+          netWeight: "",
+          carNumber: this.form.carNumber,
+          pieceNumber: this.form.pieceNumber,
+          pieces: this.form.pieces,
+        }
+        this.$forceUpdate();
+    },
+    getGroupNumber(){
+      if(this.proForm.workshopId){
+        //缁勫埆
+        getWorkshopManageGroup({number:this.proForm.workshopId}).then((res) => {
+           if (res.code == 200) {
+              this.workshopGroupList=[]
+              let workshopGroupList = res.data || {};
+              if(Object.keys(workshopGroupList).length>0){
+                for(let i in workshopGroupList){
+                  this.workshopGroupList.push(workshopGroupList[i])
+                }
+              }
+            }
+          });
+          if(this.proForm.groupNumber){
+            this.changeForm()
+          }
+      }else{
+        this.workshopGroupList =[]
+      }
+    },
+    changeForm(val){
+      this.$emit('changeForm',this.proForm,val)
+    },
+    changeTableInput(){
+      this.$emit('changeTableInput',this.proForm)
+    },
     handleClose() {
-      this.editDialogVisible = false
+      this.editDialogVisible = false;
     },
     // 纭畾
     onSubmit(form) {
-      console.log(form)
-    }
-  }
-}
+      console.log(form);
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .add-event-dialog {
   .formLabel {
-    font-size: 20px;
-    font-weight: 700;
+    font-size: 18px;
+    // font-weight: 600;
     color: #333;
   }
   .dialog-footer {
@@ -172,7 +332,7 @@
   .el-form-item__label {
     font-size: 16px;
     color: #333;
-    font-weight: 700;
+    // font-weight: 700;
   }
   .add-event-dialog .el-dialog {
     position: absolute;

--
Gitblit v1.8.0