From 82d09815c5efb03d448d6a5b74a5cbfe85063ebc Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期三, 30 八月 2023 18:46:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/template/SetPersonnel.vue | 191 +++++++++++++++++++++++++++-------------------- 1 files changed, 109 insertions(+), 82 deletions(-) diff --git a/Source/UBCS-WEB/src/components/template/SetPersonnel.vue b/Source/UBCS-WEB/src/components/template/SetPersonnel.vue index 07ebde0..64ec3ec 100644 --- a/Source/UBCS-WEB/src/components/template/SetPersonnel.vue +++ b/Source/UBCS-WEB/src/components/template/SetPersonnel.vue @@ -1,5 +1,5 @@ <template> - <el-dialog :title="title" :visible.sync="dialogVisible" append-to-body="true" width="30%"> + <el-dialog :title="title" :visible.sync="dialogVisible" append-to-body="true" class="avue-dialog avue-dialog--top" top="-3%" width="30%"> <el-tag v-for="tag in tags" :key="tag" closable disable-transitions effect="Plain" size="medium" @click="handleClickTag(tag)" @close="handleCloseTag(tag)"> <span> {{ tag.name }}</span> @@ -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: 100%;" 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> @@ -39,44 +39,66 @@ </template> <script> import { personnelInit, personnelCollect, cancelCollect, personnelSave, personnelDict } from '@/api/template/setPersonnel.js' +import { dateFormat } from "@/util/date"; export default { name: 'SetPersonnel', props: { - // 鏄惁鎵撳紑 - visible: { - typeof: Boolean, - default: false - }, - // 鏍囬 - title: { - typeof: String, - default: '娴佺▼瀹℃壒' - }, - // 鍙傛暟锛氶�夋嫨鐨刬d锛屽涓互鏁扮粍鏂瑰紡浼犻�掞細['id','id']锛屾ā鏉縤d锛屾ā鏉跨敤閫旓紝娴佺▼鍚嶅瓧锛屾祦绋嬫ā鏉� - parameter: { - typeof: Object, - default: () => { } - }, - parameterKeys: { - typeof: Object, - default: () => { - return { - ids: 'ids', - flowTemplate: 'flowTemplate', - code: 'code', - type: 'type' - } - } + // 鏄惁鎵撳紑 + visible: { + typeof: Boolean, + default: false + }, + // 鏍囬 + title: { + typeof: String, + default: '娴佺▼瀹℃壒' + }, + // 鍙傛暟锛氶�夋嫨鐨刬d锛屽涓互鏁扮粍鏂瑰紡浼犻�掞細['id','id']锛屾ā鏉縤d锛屾ā鏉跨敤閫旓紝娴佺▼鍚嶅瓧锛屾祦绋嬫ā鏉�, + // flowTemplate锛� + // vars锛歰bject鏍煎紡锛屽悕瀛椾负vars锛岄噷闈ey閿�硷紝鑷繁闅忔剰 + parameter: { + typeof: Object, + default: () => { } - + }, + parameterKeys: { + typeof: Object, + default: () => { + return { + ids: 'ids', + processName: 'processName', + code: 'code', + type: 'type', + btmtype: 'btmtype' + } + } + } }, watch: { - visible(n) { - this.dialogVisible = n; + visible(n) { + this.dialogVisible = n; + if (n) { + this.apiInit() + this.apiDict() + } + }, + dialogVisible(n) { + this.$emit('update:visible', n) + }, + users: { + handler(val) { + this.collectParam.flowTaskUsers = val }, - dialogVisible(n) { - this.$emit('update:visible', n) + deep: true, + immediate: true + }, + parameter: { + handler(newval, oldval) { + this.saveParam = Object.assign({processName:'',processDesc: ''},newval) ; }, + deep: true, + immediate: true + } }, data() { return { @@ -86,51 +108,41 @@ tags: [], typeName: [], collectParam: {}, - saveParam: this.saveParam(), + saveParam: {}, users: [], rules: { processName: [ - { required: true, message: '妯℃澘鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }, - { min: 1, max: 20, message: '闀垮害鍦� 3 鍒� 20 涓瓧绗�', trigger: 'blur' } + { required: true, message: '娴佺▼鍚嶇О涓嶈兘涓虹┖', trigger: 'blur' }, + { min: 3, max: 50, message: '闀垮害鍦� 3 鍒� 50 涓瓧绗�', trigger: 'blur' } ] } } }, mounted() { - this.apiInit() - this.apiDict() }, - methods: { - saveParam() { - return { - processName: this.parameter[this.parameterKeys.flowTemplate], - topName: this.title, - ids: this.parameter[this.parameterKeys.ids], - } - }, + created() { + }, + methods: { 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]}) if (response.status === 200) { - console.log(response) this.initFrom = response.data.data.user this.tags = response.data.data.collect const { modelKey, templateId, modelName } = response.data.data.flow let flowTaskUsers = response.data.data.user this.collectParam = { modelKey, templateId, flowTaskUsers: flowTaskUsers } - console.log(this.collectParam) + this.users = response.data.data.user this.saveParam = { ...this.saveParam, modelKey, templateId, modelName } - this.handleClickTag(this.tags[0]) + 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 this.typeName = data.map(item => { const { account, deptName, id, realName } = item @@ -145,17 +157,13 @@ confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', }).then(async ({ value }) => { - console.log(this.users) this.collectParam.flowTaskUsers = this.users 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(() => { @@ -164,7 +172,6 @@ async canCollect(name) { const response = await cancelCollect({ name: name }) if (response.status === 200) { - console.log(response) this.apiInit() this.isCollent = true this.$message({ @@ -175,46 +182,66 @@ }, async apiSave() { try { - const response = await personnelSave(this.saveParam) - if (response.status === 200) { - console.log(response) + const len = this.collectParam.flowTaskUsers.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,btmtype} = this.saveParam + let vals= {modelKey,modelName,processDesc,processName,templateId,topName,ids,btmtype,...vars} + vals.oids=ids; + vals.createTime=dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + const response = await personnelSave({ variables:vals, flowTaskUsers: this.collectParam.flowTaskUsers, }) + if (response.status === 200) { + this.$message({ + type: 'success', + message: response.data.msg + }); + this.$emit('onLoad') + this.done() + } } + } catch { - console.error('鎺ュ彛璋冪敤澶辫触') + this.$message.error('鎺ュ彛璋冪敤澶辫触') } }, handleClickTag(event) { - console.log(event) - const flowTaskUsers = event.flowTaskUsers//collet.flowTaskUsers - let tasks = this.collectParam.flowTaskUsers;//user - for(let i=0;i<tasks.length;i++){ - let thisFlowTaskUsers = tasks[i]; - console.log('thisFlowTaskUsers',thisFlowTaskUsers) - 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; + 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'] } } - } - console.log(this.collectParam) + 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) this.canCollect(event.name) }, 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 + this.$set(this.users, index, { ... this.collectParam.flowTaskUsers[index], userName }) + // this.users[index] = { ... this.collectParam.flowTaskUsers[index], userName } }, done() { this.dialogVisible = false @@ -223,7 +250,6 @@ this.done() }, handleConfirm() { - console.log(this.saveParam) this.apiSave() } } @@ -254,4 +280,5 @@ justify-content: end; padding-bottom: 10px; } -</style> \ No newline at end of file + +</style> -- Gitblit v1.9.3