From 7d960355fd82a106ae8e15f6f83d4324145e7b24 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期五, 10 十一月 2023 09:51:46 +0800
Subject: [PATCH] modified: src/views/common/param-mergeTemplate.vue modified: src/views/technology/routing/routing-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