From c19fc969705d8033d8e300f4badb975fd6e56057 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期二, 23 四月 2024 15:04:07 +0800
Subject: [PATCH] 根据车间和组别获取机台的接口联调+删除的接口联调+字段的日期的重组数据+转化添加时间

---
 src/views/employeeSalary/machineManage/components/addDialog.vue |  333 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 240 insertions(+), 93 deletions(-)

diff --git a/src/views/employeeSalary/machineManage/components/addDialog.vue b/src/views/employeeSalary/machineManage/components/addDialog.vue
index be18a75..474d15b 100644
--- a/src/views/employeeSalary/machineManage/components/addDialog.vue
+++ b/src/views/employeeSalary/machineManage/components/addDialog.vue
@@ -1,156 +1,303 @@
 <template>
   <div class="add_wordshop">
-    <el-dialog :title="editConfig.dialogTitle + '杞﹂棿绠$悊'" :visible.sync="editConfig.visible" width="30%"
-      :before-close="handleClose">
-      <el-form :inline="true" label-width="20%" style="width: 100%;" :model="editConfig.infomitton" :rules="rules"
-        ref="ruleForm">
-        <el-form-item label="鏃ユ湡鍖洪棿" style="width: 100%;" prop="groupNumber">
-          <el-date-picker 
-            style="width: 100%;"
-            v-model="editConfig.infomitton.groupNumber" 
-            type="daterange" 
-            range-separator="鑷�" 
+    <el-dialog :visible.sync="islook" width="38rem" @close="cancelMethod">
+      <div slot="title" class="tac drawerHeader">{{ editRow.title }}鏈哄彴</div>
+      <el-form label-width="100px" :model="form" :rules="rules" ref="form">
+        <el-form-item label="鏃ユ湡鍖洪棿" style="width: 100%" prop="date">
+          <el-date-picker
+            style="width: 100%"
+            v-model="form.date"
+            type="daterange"
+            range-separator="鑷�"
+            value-format="yyyy-MM-dd"
             start-placeholder="寮�濮嬫棩鏈�"
             end-placeholder="缁撴潫鏃ユ湡"
           >
           </el-date-picker>
         </el-form-item>
-        <el-form-item prop="workshop"  label="杞﹂棿" style="width: 100%;" >
-          <el-select 
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.workshop" value-key="name" placeholder="璇烽�夋嫨杞﹂棿">
+        <el-form-item prop="workshopObj" label="杞﹂棿">
+          <el-select
+            v-model="form.workshopObj"
+            placeholder="璇烽�夋嫨杞﹂棿"
+            @change="getGroupNumber(false, 'workshopObj')"
+          >
             <el-option
-              v-for="item in workshopList"
-              :key="item.ID"
+              v-for="item in shopList"
+              :key="item.number"
               :label="item.name"
-              :value="item">
+              :value="{ value: item.number, label: item.name }"
+            >
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="workshop"  label="缁勫埆" style="width: 100%;" >
-          <el-select 
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.groupNumber" value-key="name" placeholder="璇烽�夋嫨杞﹂棿">
+        <el-form-item prop="workshopGroup" label="缁勫埆">
+          <el-select
+            v-model="form.workshopGroup"
+            @change="getGroupNumber(false, 'workshopGroup')"
+            placeholder="璇峰厛閫夋嫨杞﹂棿"
+            no-data-text="璇峰厛閫夋嫨杞﹂棿"
+          >
             <el-option
-              v-for="item in workshopList"
-              :key="item.ID"
-              :label="item.name"
-              :value="item">
+              v-for="item in groupNumberList"
+              :key="item"
+              :label="item"
+              :value="item"
+            >
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="workshop"  label="鏈哄彴鍙�" style="width: 100%;" >
-          <el-select 
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.groupNumber" value-key="name" placeholder="璇烽�夋嫨杞﹂棿">
+        <el-form-item prop="workerPosition" label="鏈哄彴鍙�">
+          <el-select
+            v-model="form.workerPosition"
+            placeholder="璇峰厛閫夋嫨杞﹂棿鍜岀粍鍒�"
+            no-data-text="璇峰厛閫夋嫨杞﹂棿鍜岀粍鍒�"
+          >
             <el-option
-              v-for="item in workshopList"
+              v-for="item in workerPositionList"
               :key="item.ID"
-              :label="item.name"
-              :value="item">
+              :label="item.carNumber"
+              :value="{ value: item.carNumber, label: item.carNumber }"
+            >
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="workshop"  label="鍛樺伐濮撳悕" style="width: 100%;" >
-          <el-select 
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.groupNumber" value-key="name" placeholder="璇烽�夋嫨杞﹂棿">
-            <el-option
-              v-for="item in workshopList"
-              :key="item.ID"
-              :label="item.name"
-              :value="item">
-            </el-option>
-          </el-select>
+        <el-form-item prop="name" label="鍛樺伐濮撳悕" style="width: 100%">
+          <UserSimpleSearchInput
+            :echoValue="form.workerId"
+            :echoName="form.name"
+            checkedNum="1"
+            request="1"
+            :clearable="true"
+            @select-user="setFormItem($event, 'workerId', 'name')"
+          >
+          </UserSimpleSearchInput>
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="editConfig.visible = false">鍙� 娑�</el-button>
-        <el-button type="primary" @click="commitForm('ruleForm')">纭� 瀹�</el-button>
+        <el-button @click="cancelMethod()">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitForm('form')">纭� 瀹�</el-button>
       </span>
     </el-dialog>
   </div>
 </template>
 
 <script>
-// import {} from "@/api/systemSetting/workshopManage"
+import {
+  createWorkerPositionInfo,
+  updateWorkerPositionInfo,
+} from "@/api/employeeSalary/machineManage.js";
+import { getWorkshopManageGroup } from "@/api/productManage/productRegisterForm.js";
+import { getDictList } from "@/api/productManage/silkRegisterForm.js";
+import { getWorkshopManageList } from "@/api/systemSetting/workshopManage.js";
+import UserSimpleSearchInput from "@/components/common/UserSimpleSearchInput";
 export default {
+  components: {
+    UserSimpleSearchInput,
+  },
   props: {
-    editDiaConfig: {
+    editRow: {
       type: Object,
-      default: () => {
-        return {
-          visible: false,
-          dialogTitle: "娣诲姞",
-          isReadonly: true,
-          infomitton: {
-          },
-        }
-      }
-    }
+    },
   },
   data() {
     return {
-      editConfig: this.editDiaConfig,
-      workshopList: [],
-      carFlagList: [
-      ],
+      shopList: [], //杞﹂棿
+      groupNumberList: [], //缁勫埆
+      workerPositionList: [], //鏈哄彴鍙�
+      islook: false,
+      form: {
+        date: [],
+        workshopObj: {},
+        workshop: "",
+        workshopGroup: "",
+        workerPosition: "",
+        name: "",
+        workerId: "",
+      },
       rules: {
-        workshopNumber: [
-          { required: true, message: '璇烽�夋嫨杞﹂棿', trigger: 'change' }
+        date: [
+          { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] },
         ],
-        groupNumber: [
-          { required: true, message: '璇峰~鍐欑粍鍒�', trigger: 'change' }
-        ]
+        workshopObj: [
+          { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] },
+        ],
+        workshopGroup: [
+          { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] },
+        ],
+        workerPosition: [
+          { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] },
+        ],
       },
     };
   },
-  computed: {
-  },
+  computed: {},
   created() {
+    this.getSelectDataList();
   },
-  mounted() {
-
-  },
+  mounted() {},
   watch: {
-
+    islook(newVal) {
+      if (newVal) {
+        this.formInfo();
+      }
+    },
+    editRow() {
+      this.formInfo();
+    },
   },
   methods: {
-    handleClose(done) {
-      done();
-    },
-    setParams() {
-      let params = {
-        workshopNumber: this.editConfig.infomitton.workshopNumber + '',
-        groupNumber: Number(this.editConfig.infomitton.groupNumber),
-        startCarNumber: Number(this.editConfig.infomitton.startCarNumber),
-        endCarNumber: Number(this.editConfig.infomitton.endCarNumber),
-        carFlag: Number(this.editConfig.infomitton.carFlag),
-        notes: this.editConfig.infomitton.notes,
-        // id:Number(this.editConfig.infomitton.workshopId),
+    formInfo() {
+      if (this.islook) {
+        this.form = {
+          date: [],
+          workshopObj: {},
+          workshop: "",
+          workshopGroup: "",
+          workerPosition: "",
+          workerId: "",
+        };
+        this.$nextTick(() => {
+          this.$refs["form"].resetFields();
+          if (this.editRow.id) {
+            this.form = JSON.parse(JSON.stringify(this.editRow));
+            this.getGroupNumber(true);
+          }
+        });
       }
-      return params
     },
-    async commitForm(formName) {
+    setFormItem(val, itemMark, itemName) {
+      this.$set(this.form, itemMark, val.id);
+      this.$set(this.form, itemName, val.name);
+    },
+    getGroupNumber(val, name) {
+      if (name == "workshopObj") {
+        this.form.workshopGroup = "";
+        this.form.workerPosition = "";
+      }
+      if (name == "workshopGroup") {
+        this.form.workerPosition = "";
+      }
+      if (Object.keys(this.form.workshopObj).length > 0) {
+        //缁勫埆
+        getWorkshopManageGroup({ number: this.form.workshopObj.value }).then(
+          (res) => {
+            if (res.code == 200) {
+              let groupNumberList = res.data || {};
+              this.groupNumberList = [];
+              if (Object.keys(groupNumberList).length > 0) {
+                for (let i in groupNumberList) {
+                  this.groupNumberList.push(groupNumberList[i]);
+                }
+              }
+            } else {
+              this.groupNumberList = [];
+              this.form.workshop = "";
+            }
+          }
+        );
+        if (this.form.workshopGroup) {
+          getWorkshopManageList({
+            page: 0,
+            pageSize: 0,
+            keyWord: "",
+            workshopName: this.form.workshopObj.label,
+            groupNumber: this.form.workshopGroup,
+          }).then((res) => {
+            if (res.code == 200) {
+              this.workerPositionList = [];
+              let data = res.data ? JSON.parse(JSON.stringify(res.data)) : [];
+              if (Object.keys(data).length > 0) {
+                for (let i in data) {
+                  this.workerPositionList.push({
+                    ID: data[i].ID,
+                    carNumber:
+                      data[i].startCarNumber + "-" + data[i].endCarNumber,
+                  });
+                }
+              }
+            } else {
+              this.workerPositionList = [];
+            }
+          });
+        }
+      } else {
+        this.groupNumberList = [];
+      }
+    },
+    getSelectDataList() {
+      //杞﹂棿
+      getDictList({
+        dictType: 1,
+      }).then((res) => {
+        if (res.code == 200) {
+          this.shopList = res.data || [];
+        }
+      });
+    },
+    cancelMethod(val) {
+      this.$refs["form"].resetFields();
+      this.islook = false;
+      if (val) {
+        this.$emit("refresh");
+      }
+    },
+    submitForm(formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          console.log("鏍¢獙閫氳繃")
+          let form = JSON.parse(JSON.stringify(this.form));
+          form.startDate = form.date.length > 0 ? form.date[0] : "";
+          form.endDate = form.date.length > 0 ? form.date[1] : "";
+          form.startWorkerPosition = form.workerPosition
+            ? Number(form.workerPosition.label.split("-")[0])
+            : "";
+          form.endWorkerPosition = form.workerPosition
+            ? Number(form.workerPosition.label.split("-")[1])
+            : "";
+          form.workshop =
+            Object.keys(form.workshopObj).length > 0
+              ? form.workshopObj.value
+              : "";
+          form.workshopName =
+            Object.keys(form.workshopObj).length > 0
+              ? form.workshopObj.label
+              : "";
+          if (this.editRow.type == "add") {
+            createWorkerPositionInfo(form).then((res) => {
+              if (res.code == 200) {
+                this.$message({
+                  message: "娣诲姞鎴愬姛锛�",
+                  type: "success",
+                });
+                this.cancelMethod(true);
+              }
+            });
+          } else {
+            updateWorkerPositionInfo(form).then((res) => {
+              if (res.code == 200) {
+                this.$message({
+                  message: "缂栬緫鎴愬姛锛�",
+                  type: "success",
+                });
+                this.cancelMethod(true);
+              }
+            });
+          }
         } else {
-          console.log('error submit!!');
+          console.log("error submit!!");
           return false;
         }
       });
-
-
-    }
-  },
-  components: {
-
+    },
   },
 };
 </script>
 
 <style scoped lang="scss">
-::v-deep .el-form-item__content {
-  width: 70% !important;
+.el-form {
+  margin-bottom: 50px;
+  width: 94%;
+  margin: 0 auto;
 }
-
 ::v-deep {
   .el-form {
     .el-input__inner {

--
Gitblit v1.8.0