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