From d4b425d1f115aafd23b4dcf377eef4ed1ba400cc Mon Sep 17 00:00:00 2001 From: lihang <lihang@vci-tech.com> Date: 星期三, 05 七月 2023 16:35:13 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- Source/UBCS-WEB/src/components/template/SetPersonnel.vue | 126 +++++++++++++++++++++++++++++++---------- 1 files changed, 94 insertions(+), 32 deletions(-) diff --git a/Source/UBCS-WEB/src/components/template/SetPersonnel.vue b/Source/UBCS-WEB/src/components/template/SetPersonnel.vue index 3bd4e93..60d037f 100644 --- a/Source/UBCS-WEB/src/components/template/SetPersonnel.vue +++ b/Source/UBCS-WEB/src/components/template/SetPersonnel.vue @@ -7,14 +7,14 @@ <el-divider v-if="tags.length !== 0"></el-divider> <el-form :model="saveParam" class="demo-form-inline" label-position="left" label-width="auto" :rules="rules"> <el-form-item label="娴佺▼妯℃澘"> - <el-input placeholder="娴佺▼妯℃澘" v-model="saveParam.modelName" disabled ></el-input> + <el-input placeholder="娴佺▼妯℃澘" v-model="saveParam.modelName" disabled></el-input> </el-form-item> <el-form-item label="娴佺▼鍚嶇О" prop="processName"> - <el-input placeholder="娴佺▼鍚嶇О" v-model="saveParam.processName" > + <el-input placeholder="娴佺▼鍚嶇О" v-model="saveParam.processName"> </el-input> </el-form-item> <el-form-item label="娴佺▼鎻忚堪"> - <el-input placeholder="娴佺▼鎻忚堪" type="textarea" :rows="4" v-model="saveParam.processDesc" > + <el-input placeholder="娴佺▼鎻忚堪" type="textarea" :rows="4" v-model="saveParam.processDesc"> </el-input> </el-form-item> </el-form> @@ -24,7 +24,7 @@ </div> <el-form :model="collectParam" class="demo-form-inline" label-position="left" label-width="auto"> <el-form-item :label="item.taskName" v-for="(item, index) in initFrom" :key="index"> - <el-select style="width: 80%;" filterable v-model="collectParam.flowTaskUsers[index]['userId']" + <el-select style="width: 80%;" filterable v-model="collectParam.flowTaskUsers[index]['userId']" :placeholder="item.taskName" @change="handleSelect($event, index)"> <el-option :label="key.userNames" :value="key.userId" v-for="(key, keyi) in typeName" :key="keyi"></el-option> @@ -52,7 +52,9 @@ typeof: String, default: '娴佺▼瀹℃壒' }, - // 鍙傛暟锛氶�夋嫨鐨刬d锛屽涓互鏁扮粍鏂瑰紡浼犻�掞細['id','id']锛屾ā鏉縤d锛屾ā鏉跨敤閫旓紝娴佺▼鍚嶅瓧锛屾祦绋嬫ā鏉� + // 鍙傛暟锛氶�夋嫨鐨刬d锛屽涓互鏁扮粍鏂瑰紡浼犻�掞細['id','id']锛屾ā鏉縤d锛屾ā鏉跨敤閫旓紝娴佺▼鍚嶅瓧锛屾祦绋嬫ā鏉�, + // flowTemplate锛� + // vars锛歰bject鏍煎紡锛屽悕瀛椾负vars锛岄噷闈ey閿�硷紝鑷繁闅忔剰 parameter: { typeof: Object, default: () => { } @@ -62,7 +64,6 @@ default: () => { return { ids: 'ids', - flowName: 'flowName', flowTemplate: 'flowTemplate', code: 'code', type: 'type' @@ -74,10 +75,27 @@ watch: { visible(n) { this.dialogVisible = n; + if (n) { + this.apiInit() + this.apiDict() + } }, dialogVisible(n) { this.$emit('update:visible', n) }, + users:{ + handler(val){ + console.log('鐩戝惉users',val) + this.collectParam.flowTaskUsers = val + }, + deep:true, + immediate:true + }, + parameter:{ + handler(newval,oldval){ + console.log('瀛�',newval) + } + } }, data() { return { @@ -87,7 +105,7 @@ tags: [], typeName: [], collectParam: {}, - saveParam: this.saveParam(), + saveParam: this.setSaveParam(), users: [], rules: { processName: [ @@ -99,33 +117,41 @@ }, mounted() { - this.apiInit() - this.apiDict() + console.log('---',this.parameter) }, - methods: { - saveParam() { + created() { + console.log('parameter',this.parameter) + }, + methods: { + setSaveParam() { return { - modelName: this.parameter[this.parameterKeys.flowName], processName: this.parameter[this.parameterKeys.flowTemplate], topName: this.title, ids: this.parameter[this.parameterKeys.ids], + vars:this.parameter['vars'] } }, + userIndex(arr1) { + return this.initFrom.findIndex(i => i.taskId === arr1) + }, async apiInit() { - const response = await personnelInit({ type: this.parameter[this.parameterKeys.type], templateId: this.parameter[this.parameterKeys.code] }) + const response = await personnelInit({ type: this.parameter[this.parameterKeys.type], templateId: this.parameter[this.parameterKeys.code],ids:this.parameter.ids, codeClassifyOid:this.parameter.codeClassifyOid}) if (response.status === 200) { console.log(response) this.initFrom = response.data.data.user this.tags = response.data.data.collect - const { modelKey, templateId } = response.data.data.flow + const { modelKey, templateId, modelName } = response.data.data.flow let flowTaskUsers = response.data.data.user this.collectParam = { modelKey, templateId, flowTaskUsers: flowTaskUsers } - this.saveParam = { ...this.saveParam, modelKey, templateId } - this.handleClickTag(this.tags[0]) + this.users = response.data.data.user + console.log(this.collectParam) + this.saveParam = { ...this.saveParam, modelKey, templateId, modelName } + if (this.tags.length !== 0) this.handleClickTag(this.tags[0]) } }, async apiDict() { const response = await personnelDict() + console.log(response) if (response.status === 200) { console.log(response) const data = response.data.data @@ -147,11 +173,11 @@ this.collectParam = { ...this.collectParam, name: value } console.log(this.collectParam) const response = await personnelCollect(this.collectParam) + console.log(response) if (response.status === 200) { this.$nextTick(() => { this.apiInit() }) - console.log(response) } }).catch(() => { @@ -171,26 +197,61 @@ }, async apiSave() { try { - const response = await personnelSave(this.saveParam) - if (response.status === 200) { - console.log(response) + const len = this.collectParam.flowTaskUsers.length + console.log(this.collectParam.flowTaskUsers) + console.log(len == 0) + console.log(len != this.initFrom.length) + if (len == 0 && len != this.initFrom.length) { this.$message({ - type: 'success', - message: response.data.msg + type: "error", + message: "璇烽�夋嫨鑺傜偣锛�" }); - this.done() + } else { + const {modelKey,modelName,processDesc,processName,templateId,topName,vars,ids} = this.saveParam + const vals= {modelKey,modelName,processDesc,processName,templateId,topName,ids,...vars} + const response = await personnelSave({ variables:vals, flowTaskUsers: this.collectParam.flowTaskUsers, }) + if (response.status === 200) { + console.log(response) + this.$message({ + type: 'success', + message: response.data.msg + }); + this.done() + } } + } catch { console.error('鎺ュ彛璋冪敤澶辫触') } }, handleClickTag(event) { - console.log(event) - const flowTaskUsers = event.flowTaskUsers - this.collectParam.flowTaskUsers = flowTaskUsers.map(item => { - const { taskId, taskName, userId, userName } = item - return { taskId, taskName, userId, userName } + console.log(event.flowTaskUsers) + + console.log(this.collectParam.flowTaskUsers) + let flowTaskUsers = this.collectParam.flowTaskUsers + this.collectParam.flowTaskUsers = flowTaskUsers.map((item, index) => { + for (let i = 0; i < event.flowTaskUsers.length; i++) { + if (item.taskId == event.flowTaskUsers[i].taskId) { + item['userName'] = event.flowTaskUsers[i]['userName'] + item['userId'] = event.flowTaskUsers[i]['userId'] + } + } + return item }) + this.users = this.collectParam.flowTaskUsers + // const flowTaskUsers = event.flowTaskUsers//collet.flowTaskUsers + // let tasks = this.collectParam.flowTaskUsers;//user + // for (let i = 0; i < tasks.length; i++) { + // let thisFlowTaskUsers = tasks[i]; + // for (let j = 0; j < flowTaskUsers.length; j++) { + // let thisFflowTaskUsers = flowTaskUsers[j]; + // if (thisFlowTaskUsers.taskId == thisFflowTaskUsers.taskId) { + // thisFlowTaskUsers['userName'] = thisFflowTaskUsers.userName; + // thisFlowTaskUsers['userId'] = thisFflowTaskUsers.userId; + // } + // } + // } + // this.collectParam.flowTaskUsers = {...this.collectParam.flowTaskUsers,userId,userName} }, handleCloseTag(event) { console.log(event) @@ -199,9 +260,10 @@ handleSelect(event, index) { const res = this.typeName.find(item => item.userId === event) const { userName } = res - let users = { ... this.collectParam.flowTaskUsers[index], userName } - console.log(users) - this.users[index] = users + console.log(this.users) + this.$set(this.users, index, { ... this.collectParam.flowTaskUsers[index], userName }) + // this.users[index] = { ... this.collectParam.flowTaskUsers[index], userName } + console.log(this.users) }, done() { this.dialogVisible = false @@ -241,4 +303,4 @@ justify-content: end; padding-bottom: 10px; } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3