From f27ae4aa1a3b72bf8dc934efd6f084ba5a101a48 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期五, 03 十一月 2023 09:10:13 +0800
Subject: [PATCH] 	modified:   src/api/basic/post.js 	modified:   src/views/basic/division/division-form.vue 	modified:   src/views/basic/param/index.vue 	modified:   src/views/basic/param/param-form.vue 	modified:   src/views/basic/post/index.vue 	modified:   src/views/basic/post/post-form.vue 	modified:   src/views/basic/staff/index.vue 	modified:   src/views/basic/staff/staff-form.vue 	modified:   src/views/basic/warehouse/warehouse-form.vue 	modified:   src/views/technology/document/document-form.vue

---
 src/views/basic/staff/staff-form.vue |  233 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 150 insertions(+), 83 deletions(-)

diff --git a/src/views/basic/staff/staff-form.vue b/src/views/basic/staff/staff-form.vue
index 411fdf5..a1d6969 100644
--- a/src/views/basic/staff/staff-form.vue
+++ b/src/views/basic/staff/staff-form.vue
@@ -1,56 +1,52 @@
 <template>
-  <el-dialog
-    :title="!dataForm.id ? '鏂板' : '淇敼'"
-    :close-on-click-modal="false"
-    :visible.sync="visible"
-  >
-    <el-form
-      :model="dataForm"
-      :rules="rules"
-      ref="dataForm"
-      label-width="100px"
-      class="l-mes"
-    >
+  <el-dialog :title="!dataForm.id ? '鏂板' : '淇敼'" :close-on-click-modal="false" :visible.sync="visible">
+    <el-form :model="dataForm" :rules="rules" ref="dataForm" label-width="100px" class="l-mes">
       <el-row>
         <el-col :span="12">
           <el-form-item label="浜哄憳缂栧彿" prop="staffNo">
-            <el-input
-              v-model="dataForm.staffNo"
-              placeholder="浜哄憳缂栧彿"
-            ></el-input>
+            <el-input v-model="dataForm.staffNo" placeholder="浜哄憳缂栧彿"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="浜哄憳鍚嶇О" prop="staffName">
-            <el-input
-              v-model="dataForm.staffName"
-              placeholder="浜哄憳鍚嶇О"
-            ></el-input>
+            <el-input v-model="dataForm.staffName" placeholder="浜哄憳鍚嶇О"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="鍏徃" prop="companyId">
+            <el-select @change="changeCompany" style="width: 100%;" v-model="dataForm.companyId" placeholder="璇烽�夋嫨">
+              <el-option v-for="item in options" :key="item.id" :label="item.companyName" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="宸ュ巶" prop="factoryId">
+            <el-select @change="changeFactory" style="width: 100%;" v-model="dataForm.factoryId" placeholder="璇烽�夋嫨">
+              <el-option v-for="item in optionsfactory" :key="item.id" :label="item.factoryName" :value="item.id">
+              </el-option>
+            </el-select>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col :span="12">
           <el-form-item label="閮ㄩ棬" prop="divisionId">
-            <el-select
-              v-model="dataForm.divisionId"
-              filterable
-              placeholder="璇烽�夋嫨"
-              style="width: 100%;"
-            >
-              <el-option
-                v-for="(item, index) in this.divisionOptions"
-                :key="index"
-                :label="item.divisionName"
-                :value="item.id"
-              >
+            <el-select @change="changeDivision" v-model="dataForm.divisionId" filterable placeholder="璇烽�夋嫨" style="width: 100%;">
+              <el-option v-for="(item, index) in this.divisionOptions" :key="index" :label="item.divisionName"
+                :value="item.id">
               </el-option>
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="鐢佃瘽" prop="phone">
-            <el-input v-model="dataForm.phone" placeholder="鐢佃瘽"></el-input>
+          <el-form-item label="宀椾綅" prop="postId">
+            <el-select v-model="dataForm.postId" filterable placeholder="璇烽�夋嫨" style="width: 100%;">
+              <el-option v-for="item in this.postOptions" :key="item.id" :label="item.postName" :value="item.id">
+              </el-option>
+            </el-select>
           </el-form-item>
         </el-col>
       </el-row>
@@ -60,84 +56,57 @@
             <el-input v-model="dataForm.email" placeholder="閭"></el-input>
           </el-form-item>
         </el-col>
+        <el-col :span="12">
+          <el-form-item label="鐢佃瘽" prop="phone">
+            <el-input v-model="dataForm.phone" placeholder="鐢佃瘽"></el-input>
+          </el-form-item>
+        </el-col>
         <!--        <el-col :span="12">
           <el-form-item label="宀椾綅" prop="post">
             <el-input v-model="dataForm.post" placeholder="宀椾綅"></el-input>
           </el-form-item>
         </el-col>-->
-        <el-col :span="12">
-          <el-form-item label="宀椾綅" prop="postId">
-            <el-select
-              v-model="dataForm.postId"
-              filterable
-              placeholder="璇烽�夋嫨"
-              style="width: 100%;"
-            >
-              <el-option
-                v-for="item in this.postOptions"
-                :key="item.id"
-                :label="item.postName"
-                :value="item.id"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
-        </el-col>
       </el-row>
       <el-row>
         <el-col :span="12">
           <el-form-item label="浜哄憳绯绘暟" prop="personnelFactor">
-            <el-input
-              v-model="dataForm.personnelFactor"
-              placeholder="浜哄憳绯绘暟"
-            ></el-input>
+            <el-input v-model="dataForm.personnelFactor" placeholder="浜哄憳绯绘暟"></el-input>
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col :span="12">
           <el-form-item label="浜哄憳鎬ц川" prop="personNature">
-            <el-select
-              v-model="dataForm.personNature"
-              placeholder="璇烽�夋嫨"
-              style="width: 100%;"
-            >
-              <el-option
-                v-for="item in this.personNatureOptions"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              >
+            <el-select v-model="dataForm.personNature" placeholder="璇烽�夋嫨" style="width: 100%;">
+              <el-option v-for="item in this.personNatureOptions" :key="item.value" :label="item.label"
+                :value="item.value">
               </el-option>
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="璇曠敤鎴鏃ユ湡" prop="trialDeadline">
-            <el-input
-              v-model="dataForm.trialDeadline"
-              placeholder=""
-            ></el-input>
+            <el-input v-model="dataForm.trialDeadline" placeholder=""></el-input>
           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
     <span slot="footer" class="dialog-footer">
       <el-button @click="visible = false">鍙栨秷</el-button>
-      <el-button
-        type="primary"
-        :disabled="isSubmit"
-        v-thinclick="`dataFormSubmit`"
-        >纭畾</el-button
-      >
+      <el-button type="primary" :disabled="isSubmit" v-thinclick="`dataFormSubmit`">纭畾</el-button>
     </span>
   </el-dialog>
 </template>
 
 <script>
 import { getObj, loadDivision, dataFormTransfer } from '@/api/basic/staff'
-import { getList } from '@/api/basic/post'
+import { getList, getDivisionByFactoryId ,getObjById} from '@/api/basic/post'
 import { dateFormat, dateFormatYearMonthDate } from '@/util/date'
+import {
+  loadFactoryListByCompany
+} from '@/api/basic/division'
+
+import { loadCompany } from '@/api/basic/factory'
 
 export default {
   props: {
@@ -151,6 +120,8 @@
   data() {
     return {
       visible: false,
+      options: [],
+      optionsfactory: [],
       dataForm: {
         id: 0,
         staffNo: '',
@@ -166,7 +137,11 @@
         updateUser: '',
         divisionId: '',
         personNature: '',
-        trialDeadline: ''
+        trialDeadline: '',
+        companyId: null,
+        companyName: null,
+        factoryId: null,
+        factoryName: null,
       },
       divisionOptions: [],
       postOptions: [],
@@ -175,7 +150,7 @@
     }
   },
   computed: {
-    rules: function() {
+    rules: function () {
       return {
         divisionId: [
           { required: true, message: '閮ㄩ棬涓嶈兘涓虹┖', trigger: 'blur' }
@@ -186,11 +161,45 @@
         ],
         staffName: [
           { required: true, message: '浜哄憳鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
+        ],
+        companyId: [
+          { required: true, message: '鍏徃鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
+        ],
+        factoryId: [
+          { required: true, message: '宸ュ巶鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }
         ]
       }
     }
   },
   methods: {
+    changeDivision(){
+      getObjById(this.dataForm.companyId,this.dataForm.factoryId,this.dataForm.divisionId).then((response) => {
+            this.postOptions = response.data.data
+          })
+    },
+    changeCompany() {
+      loadFactoryListByCompany(this.dataForm.companyId).then((res) => {
+        this.optionsfactory = res.data.data
+      })
+      // this.divisionOptions=[]
+      // this.dataForm.divisionId=''
+      this.dataForm.companyName = this.options.filter(item => {
+        return item.id == this.dataForm.companyId
+      })[0].companyName;
+    },
+    changeFactory() {
+      getDivisionByFactoryId(this.dataForm.companyId, this.dataForm.factoryId).then((res) => {
+        this.divisionOptions=res.data.data
+      })
+      this.dataForm.factoryName = this.optionsfactory.filter(item => {
+        return item.id == this.dataForm.factoryId
+      })[0].factoryName;
+    },
+    initCompanySelect() {
+      loadCompany().then((res) => {
+        this.options = res.data
+      })
+    },
     init(id) {
       this.dataForm.id = id || 0
       this.visible = true
@@ -199,6 +208,9 @@
         if (this.dataForm.id) {
           getObj(this.dataForm.id).then((response) => {
             this.dataForm = response.data.data
+            this.changeCompany()
+            this.changeFactory()
+            this.changeDivision()
           })
         } else {
           const trialDeadline = new Date()
@@ -224,7 +236,11 @@
         id: this.dataForm.id,
         personnelFactor: this.dataForm.personnelFactor,
         personNature: this.dataForm.personNature,
-        trialDeadline: this.dataForm.trialDeadline
+        trialDeadline: this.dataForm.trialDeadline,
+        factoryId: this.dataForm.factoryId,
+        factoryName: this.dataForm.factoryName,
+        companyId: this.dataForm.companyId,
+        companyName: this.dataForm.companyName
       }
       this.$refs.dataForm.validate((valid) => {
         if (valid) {
@@ -265,10 +281,61 @@
     }
   },
   created() {
-    this.initDivisionSelect()
-    this.initPostSelect()
+    // this.initDivisionSelect()
+    // this.initPostSelect()
+    this.initCompanySelect()
+    if(this.dataForm.staffNo!=''){
+      console.log(121212);
+      this.changeCompany()
+      this.changeDivision()
+    }
   },
   watch: {
+    'dataForm.divisionId': {
+      handler(newValue, oldValue) {
+        if (newValue != ''&&oldValue!=''&&oldValue!=undefined&&newValue!=undefined) {
+            if(oldValue!=newValue){
+              this.dataForm.postId=null
+              this.postOptions=[]
+            }
+        }
+      },
+      immediate: true,
+      deep: true
+    },
+    'dataForm.companyId': {
+      handler(newValue, oldValue) {
+        if (newValue != ''&&oldValue!=''&&oldValue!=undefined&&newValue!=undefined) {
+          console.log(newValue);
+          console.log(oldValue);
+            if(oldValue!=newValue){
+              this.dataForm.factoryId=null
+              this.dataForm.divisionId=null
+              this.divisionOptions=[]
+              this.dataForm.postId=null
+              this.postOptions=[]
+            }
+        }
+      },
+      immediate: true,
+      deep: true
+    },
+    'dataForm.factoryId': {
+      handler(newValue, oldValue) {
+        if (newValue != ''&&oldValue!=''&&oldValue!=undefined&&newValue!=undefined) {
+          console.log(newValue);
+          console.log(oldValue);
+            if(oldValue!=newValue){
+              this.dataForm.divisionId=null
+              this.divisionOptions=[]
+              this.dataForm.postId=null
+              this.postOptions=[]
+            }
+        }
+      },
+      immediate: true,
+      deep: true
+    },
     'dataForm.personNature': {
       handler(newValue, oldValue) {
         if (

--
Gitblit v1.9.3