From 544f30e28a3d8ea41e5ea8c0add2ce77c1b6fb1a Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期二, 07 五月 2024 17:48:31 +0800
Subject: [PATCH] 工种管理模块 编辑工种接口400的问题修改+增加如果启用不达标保底,则必须输入保底工资的逻辑

---
 src/views/employeeSalary/apprenticeshipManage/components/addDialog.vue |  253 ++++++++++++++++++++++++++-----------------------
 1 files changed, 134 insertions(+), 119 deletions(-)

diff --git a/src/views/employeeSalary/apprenticeshipManage/components/addDialog.vue b/src/views/employeeSalary/apprenticeshipManage/components/addDialog.vue
index 9404393..3045cc5 100644
--- a/src/views/employeeSalary/apprenticeshipManage/components/addDialog.vue
+++ b/src/views/employeeSalary/apprenticeshipManage/components/addDialog.vue
@@ -1,129 +1,92 @@
 <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 prop="workshopNumber"  label="杞﹂棿" style="width: 100%;" >
-          <el-select 
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.workshopNumber" placeholder="璇烽�夋嫨杞﹂棿">
-            <el-option
-              v-for="item in workshopList"
-              :key="item.ID"
-              :label="item.name"
-              :value="item.ID">
-            </el-option>
-          </el-select>
+      :visible.sync="islook"
+      width="38rem" 
+      @close="cancelMethod">
+      <div slot="title" class="tac drawerHeader">{{ editRow.title }}</div>
+      <el-form  label-position="right" label-width="120px" style="width: 100%;" :model="form" :rules="rules" ref="form" >
+        <el-form-item label="鍛樺伐濮撳悕" style="width: 100%;" 
+            prop="name"  >
+            <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-item label="缁勫埆" style="width: 100%;" 
-            prop="groupNumber"  >
-          <!-- <el-input-number
-            v-model="form.workshopNumber"
-            placeholder="璇疯緭鍏ョ粍鍒�"
-            :controls="false"
-            style="width: 100%; margin-right: 5px;text-align:left;"
-          ></el-input-number> -->
+        <el-form-item label="鍛樺伐缂栧彿" style="width: 100%;" prop="workerId" >
           <el-input
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'"
-            v-model="editConfig.infomitton.groupNumber"
-            :rows="4"
-            style="resize: none !important;"
-            placeholder="璇疯緭鍏ョ粍鍒�"
+            v-model="form.workerId"
+            disabled
+            placeholder="璇疯緭鍏ュ憳宸ョ紪鍙�"
             >
           </el-input>
         </el-form-item>
-        
-        <el-form-item label="寮�濮嬭溅鍙�" style="width: 100%;" >
-          <el-input
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'"
-            v-model="editConfig.infomitton.startCarNumber"
-            :rows="4"
-            style="resize: none !important;"
-            placeholder="璇疯緭鍏ュ紑濮嬭溅鍙�"
-            >
-          </el-input>
+        <el-form-item label="甯﹀緬鏈堜唤" style="width: 100%;" 
+        prop="month">
+          <el-date-picker
+            style="width:100%"
+            v-model="form.month"
+            type="month"
+            placeholder="閫夋嫨鏈�"
+            value-format="yyyy-MM">
+          </el-date-picker>
         </el-form-item>
-        <el-form-item label="缁撴潫杞﹀彿" style="width: 100%;" >
+        <el-form-item label="甯﹀緬澶╂暟" style="width: 100%;" 
+            prop="days"  >
           <el-input
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'"
-            v-model="editConfig.infomitton.endCarNumber"
-            :rows="4"
-            style="resize: none !important;"
-            placeholder="璇疯緭鍏ョ粨鏉熻溅鍙�"
-            >
-          </el-input>
-        </el-form-item>
-        <el-form-item label="鍗婅溅鏍囧織" style="width: 100%;" >
-          <el-select 
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.carFlag" placeholder="璇烽�夋嫨鍗婅溅鏍囧織">
-            <el-option
-              v-for="item in carFlagList"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id">
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="澶囨敞" style="width: 100%;" >
-          <el-input
-            :disabled="this.editConfig.dialogTitle==='鏌ョ湅'"
-            v-model="editConfig.infomitton.notes"
-            type="textarea"
-            :rows="4"
-            style="resize: none !important;"
-            placeholder=""
+            v-model="form.days"
+            placeholder="璇疯緭鍏�"
             >
           </el-input>
         </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 { createMentorInfo, updateMentorInfo } from "@/api/employeeSalary/apprenticeshipManage.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,
-      form: {
-        workshopNumber:null,
-        groupNumber:null,
-        startCarNumber:null,
-        endCarNumber:null,
-        carFlag:null,
-        notes:null
+      islook:false,
+      form:{
+        workerId:'',
+        days:null,
+        month:'', 
+        name:'',
       },
-      workshopList:[],
-      carFlagList:[
-      ],
       rules: {
-        workshopNumber: [
-          { required: true, message: '璇烽�夋嫨杞﹂棿', trigger: 'change' }
+        name: [
+          { required: true, message: '璇烽�夋嫨', trigger: ['change','blur']  }
         ],
-        groupNumber: [
-          { required: true, message: '璇峰~鍐欑粍鍒�', trigger: 'change' }
+        month: [
+          { required: true, message: '璇烽�夋嫨', trigger: ['change','blur'] }
+        ],
+        days: [
+          { required: true, message: '璇峰~鍐�', trigger:  ['change','blur'] },
+          {
+            validator: this.validatorNum,
+            trigger: ["blur", "change"],
+          },
         ]
       },
     };
@@ -136,46 +99,98 @@
 
   },
   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 = {
+          workerId:'',
+          days:null,
+          month:'', 
+          name:'',
+        };
+        this.$nextTick(()=>{
+          this.$refs["form"].resetFields();
+          if (this.editRow.id) {
+            this.form = JSON.parse(JSON.stringify(this.editRow));
+          }
+        })
       }
-      return params
     },
-    async commitForm(formName){
+    setFormItem(val, itemMark, itemName) {
+      this.$set(this.form, itemMark, val.id);
+      this.$set(this.form, itemName, val.name);
+    },
+    validatorNum(rule, value, callback) {
+        if (value == undefined || value == null) {
+          callback(new Error("璇疯緭鍏ユ湁鏁堟暟瀛�"));
+        } else {
+          let reg2 =
+            /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
+          if (!reg2.test(value) || value == 0) {
+            callback(new Error("璇峰~鍐欏ぇ浜庨浂鐨�2浣嶅皬鏁扮殑鏁板瓧"));
+          } else {
+            callback();
+          }
+        }
+    },
+    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.days=Number(form.days)
+          if (this.editRow.type == "add") {
+            createMentorInfo(form).then((res) => {
+              if (res.code == 200) {
+                this.$message({
+                  message: "娣诲姞鎴愬姛锛�",
+                  type: "success",
+                });
+                this.cancelMethod(true);
+              }
+            });
+          } else {
+            updateMentorInfo(form).then((res) => {
+              if (res.code == 200) {
+                this.$message({
+                  message: "缂栬緫鎴愬姛锛�",
+                  type: "success",
+                });
+                this.cancelMethod(true);
+              }
+            });
+          }
         } else {
           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{

--
Gitblit v1.8.0