From 1772fc5e211f9e9e0ab4cdc6c29b436aac178c2a Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期五, 23 二月 2024 12:19:55 +0800 Subject: [PATCH] 修改 --- web/src/views/modules/project/Project-AddOrUpdate.vue | 365 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 301 insertions(+), 64 deletions(-) diff --git a/web/src/views/modules/project/Project-AddOrUpdate.vue b/web/src/views/modules/project/Project-AddOrUpdate.vue index e0f1801..01607af 100644 --- a/web/src/views/modules/project/Project-AddOrUpdate.vue +++ b/web/src/views/modules/project/Project-AddOrUpdate.vue @@ -1,60 +1,141 @@ <template> <zt-dialog ref="dialog" column="2" @confirm="formSubmit"> - <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px"> - <zt-form-item label="濮旀墭鍗曚綅鍚嶇О" prop="entrustUnitName" rules="required"> - <el-input v-model="dataForm.entrustUnitName"></el-input> - </zt-form-item> - <zt-form-item label="濮旀墭鍗曚綅鍦板潃" prop="entrustUnitAddress" rules="required"> - <el-input v-model="dataForm.entrustUnitAddress"></el-input> - </zt-form-item> - <zt-form-item label="濮旀墭鍗曚綅鑱旂郴浜�" prop="entrustUnitContact" rules="required"> - <el-input v-model="dataForm.entrustUnitContact"></el-input> - </zt-form-item> - <zt-form-item label="濮旀墭鍗曚綅鑱旂郴鏂瑰紡" prop="entrustUnitContWay" rules="required"> - <el-input v-model="dataForm.entrustUnitContWay"></el-input> - </zt-form-item> - <zt-form-item label="寮�鍙戝崟浣嶅悕绉�" prop="developUnitName" rules="required"> - <el-input v-model="dataForm.developUnitName"></el-input> - </zt-form-item> - <zt-form-item label="寮�鍙戝崟浣嶅湴鍧�" prop="developUnitAddress" rules="required"> - <el-input v-model="dataForm.developUnitAddress"></el-input> - </zt-form-item> - <zt-form-item label="寮�鍙戝崟浣嶈仈绯讳汉" prop="developUnitContact" rules="required"> - <el-input v-model="dataForm.developUnitContact"></el-input> - </zt-form-item> - <zt-form-item label="寮�鍙戝崟浣嶈仈绯绘柟寮�" prop="developUnitContWay" rules="required"> - <el-input v-model="dataForm.developUnitContWay"></el-input> - </zt-form-item> - <zt-form-item label="杞欢鍚嶇О" prop="software" rules="required"> - <el-input v-model="dataForm.software"></el-input> - </zt-form-item> - <zt-form-item label="椤圭洰缂栧彿" prop="code" rules="required"> - <el-input v-model="dataForm.code"></el-input> - </zt-form-item> - <zt-form-item label="椤圭洰鏍囪瘑" prop="identity" rules="required"> - <el-input v-model="dataForm.identity"></el-input> - </zt-form-item> - <zt-form-item label="瀵嗙骇" prop="secretClass" rules="required"> - <zt-dict v-model="dataForm.secretClass" dict="secret_class"></zt-dict> - </zt-form-item> - <zt-form-item label="鍏抽敭绛夌骇" prop="criticalLevel" rules="required"> - <zt-dict v-model="dataForm.criticalLevel" dict="critical_level"></zt-dict> - </zt-form-item> - <zt-form-item label="娴嬭瘯绾у埆" prop="testLevel" rules="required"> - <zt-dict v-model="dataForm.testLevel" dict="test_level"></zt-dict> - </zt-form-item> - <zt-form-item label="椤圭洰璐熻矗浜�" prop="projectLeader" rules="required"> - <el-input v-model="dataForm.projectLeader"></el-input> - </zt-form-item> - <zt-form-item label="椤圭洰娴嬭瘯浜哄憳" prop="projectTesters" rules="required"> - <el-input v-model="dataForm.projectTesters"></el-input> - </zt-form-item> - <zt-form-item label="椤圭洰瀹℃牳浜哄憳" prop="projectReviewer" rules="required"> - <el-input v-model="dataForm.projectReviewer"></el-input> - </zt-form-item> - <zt-form-item label="鏄惁绛剧讲鍚堝悓" prop="isContract" rules="required"> - <zt-dict v-model="dataForm.isContract" dict="is_or_not"></zt-dict> - </zt-form-item> + <!-- <div class="fa-card-a fa-box-a" style="height: calc(100vh - 130px)">--> + <el-form ref="dataForm" style="padding: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm" + label-width="120px" + class="projectAuto"> + <div class="DManageForm"> + <el-form-item label-width="80px" label="椤圭洰缂栧彿" prop="code" style="width: 99%;margin-bottom:-5px" readonly> + <span>{{dataForm.code}}</span> + </el-form-item> + </div> + <div style="border: 1px solid rgba(0,0,0,.2)"> + <div class="el-flex el-border-bottom"> + <div class="DWidth DAlign DHold"> + 濮旀墭鍗曚綅 + </div> + <div class="DSTOld-1-Form"> + <!-- 鍗曚綅鍚嶇О --> + <zt-form-item class="marginTopAndMarginBottom" label="鍗曚綅鍚嶇О" prop="entrustUnitName" style="width: 49%" + rules="required"> + <el-input v-model="dataForm.entrustUnitName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�"></el-input> + </zt-form-item> + <!-- 鑱旂郴浜� --> + <zt-form-item class="marginTopAndMarginBottom" label="鑱旂郴浜�" prop="entrustUnitContact" style="width: 49%" + rules="required"> + <el-input v-model="dataForm.entrustUnitContact" placeholder="璇疯緭鍏ヨ仈绯讳汉"></el-input> + </zt-form-item> + + <!-- 璇︾粏鍦板潃 --> + <zt-form-item label="璇︾粏鍦板潃" prop="entrustUnitAddress" style="width: 49%" rules="required"> + <el-input v-model="dataForm.entrustUnitAddress" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"></el-input> + </zt-form-item> + <!-- 鑱旂郴鏂瑰紡 --> + <zt-form-item label="鑱旂郴鏂瑰紡" prop="entrustUnitContWay" style="width: 49%" rules="required"> + <el-input v-model="dataForm.entrustUnitContWay" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"></el-input> + </zt-form-item> + </div> + </div> + <div class="el-flex el-border-bottom"> + <div class="DWidth DAlign DHold"> + 寮�鍙戝崟浣� + </div> + <div class="DSTOld-1-Form"> + <!-- 鍗曚綅鍚嶇О --> + <zt-form-item class="marginTopAndMarginBottom" label="鍗曚綅鍚嶇О" prop="developUnitName" style="width: 49%" + rules="required"> + <el-input v-model="dataForm.developUnitName" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�"></el-input> + </zt-form-item> + <!-- 鑱旂郴浜� --> + <zt-form-item class="marginTopAndMarginBottom" label="鑱旂郴浜�" prop="developUnitContact" style="width: 49%" + rules="required"> + <el-input v-model="dataForm.developUnitContact" placeholder="璇疯緭鍏ヨ仈绯讳汉"></el-input> + </zt-form-item> + <!-- 璇︾粏鍦板潃 --> + <zt-form-item label="璇︾粏鍦板潃" prop="developUnitAddress" style="width: 49%" rules="required"> + <el-input v-model="dataForm.developUnitAddress" placeholder="璇疯緭鍏ヨ缁嗗湴鍧�"></el-input> + </zt-form-item> + <!-- 鑱旂郴鏂瑰紡 --> + <zt-form-item label="鑱旂郴鏂瑰紡" prop="developUnitContWay" style="width: 49%" rules="required"> + <el-input v-model="dataForm.developUnitContWay" placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"></el-input> + </zt-form-item> + </div> + </div> + <div class="el-flex el-border-bottom"> + <div class="DWidth-Unt DAlign DHold"> + 琚祴浠朵俊鎭� + </div> + <div class="DSTOld-1-Form"> + <!-- 鍗曚綅鍚嶇О --> + <zt-form-item class="marginTopAndMarginBottom" label="杞欢鍚嶇О" prop="softwareName" style="width: 49%" + rules="required"> + <el-input v-model="dataForm.softwareName" placeholder="璇疯緭鍏ヨ蒋浠跺悕绉�"></el-input> + </zt-form-item> + <!-- 鑱旂郴浜� --> + <zt-form-item class="marginTopAndMarginBottom" label="杞欢鏍囪瘑" prop="softwareIdentity" style="width: 49%" + rules="required"> + <el-input v-model="dataForm.softwareIdentity" placeholder="璇疯緭鍏ヨ蒋浠舵爣璇�"></el-input> + </zt-form-item> + <!-- 璇︾粏鍦板潃 --> + <zt-form-item label="瀵嗙骇" prop="secretClass" style="width: 49%" rules="required"> + <zt-dict v-model="dataForm.secretClass" dict="secret_class"></zt-dict> + </zt-form-item> + <!-- <zt-form-item label="淇濆瘑绾у埆" prop="secretClass" style="width: 25%">--> + <!-- <zt-dict v-model="dataForm.secretClass" dict="secret_class" placeholder="淇濆瘑绾у埆" style="width:200px"></zt-dict>--> + <!-- </zt-form-item>--> + <!-- 鑱旂郴鏂瑰紡 --> + <zt-form-item label="鍏抽敭绛夌骇" prop="criticalLevel" style="width: 49%" rules="required"> + <zt-dict v-model="dataForm.criticalLevel" dict="critical_level"></zt-dict> + </zt-form-item> + <div class="el-flex" style="height: 40px;border-top:1px solid rgba(0,0,0,.2)"> + <div class="DWidth DAlign DHold"> + 杞欢绫诲瀷 + </div> + <div style="width: calc(100% - 120px);"> + <zt-dict v-model="dataForm.softwareType" :radio="true" dict="software_type" clearable></zt-dict> + </div> + </div> + </div> + </div> + <div class="el-flex "> + <div class="DWidth DAlign DHold"> + 椤圭洰璐d换浜� + </div> + <div class="DSTOld-1-Form"> + <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="鎵�灞為儴闂�" prop="bizDeptId" + style="width: 48%" rules="required"> + <zt-select @input="changeDept" v-model="dataForm.bizDeptId" :datas="bizDeptList" placeholder="鎵�灞為儴闂�"/> + </zt-form-item> + <!-- 鏄惁绛剧讲鍚堝悓 --> + <zt-form-item label-width="120px" label="鏄惁绛剧讲鍚堝悓" prop="isContract" style="width: 48%" rules="required"> + <zt-dict v-model="dataForm.isContract" dict="is_or_not"></zt-dict> + </zt-form-item> + <!-- 椤圭洰璐熻矗浜� --> + <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="椤圭洰璐熻矗浜�" prop="projectLeader" + style="width: 48%" rules="required"> + <zt-select v-model="dataForm.projectLeader" :datas="projectLeaderList" placeholder="椤圭洰璐熻矗浜�"/> + </zt-form-item> + <!-- 椤圭洰娴嬭瘯浜哄憳 --> + <zt-form-item class="marginTopAndMarginBottom" label-width="120px" label="椤圭洰娴嬭瘯浜哄憳" prop="projectTesters" + style="width: 48%" rules="required"> + <!-- <el-input v-model="dataForm.projectTesters" placeholder="璇疯緭鍏ラ」鐩祴璇曚汉鍛�"></el-input>--> + <zt-select v-model="dataForm.projectTesters" :datas="projectTestersList" :multiple="true" + :clearable="true" placeholder="椤圭洰娴嬭瘯浜哄憳"/> + </zt-form-item> + <!-- 椤圭洰瀹℃牳浜� --> + <zt-form-item label-width="120px" label="椤圭洰瀹℃牳浜�" prop="projectReviewer" style="width: 48%" rules="required"> + <!-- <el-input v-model="dataForm.projectReviewer" placeholder="璇疯緭鍏ラ」鐩鏍镐汉"></el-input>--> + <zt-select v-model="dataForm.projectReviewer" :datas="projectReviewerList" :multiple="true" + :clearable="true" placeholder="椤圭洰瀹℃牳浜�"/> + </zt-form-item> + <zt-form-item label-width="120px" label="椤圭洰閰嶇疆浜�" prop="projectConfiger" style="width: 48%" rules="required"> + <!-- <el-input v-model="dataForm.projectReviewer" placeholder="璇疯緭鍏ラ」鐩鏍镐汉"></el-input>--> + <zt-select v-model="dataForm.projectConfiger" :datas="projectConfigerList" :multiple="true" + :clearable="true" placeholder="椤圭洰閰嶇疆浜�"/> + </zt-form-item> + </div> + </div> + </div> </el-form> </zt-dialog> </template> @@ -73,37 +154,193 @@ developUnitAddress: '', developUnitContact: '', developUnitContWay: '', - software: '', + softwareType: '', + softwareName: '', code: '', - identity: '', + softwareIdentity: '', secretClass: '', criticalLevel: '', testLevel: '', projectLeader: '', projectTesters: '', projectReviewer: '', - isContract: '' - } + projectConfiger: '', + bizDeptId: '', + isContract: '', + }, + projectLeaderList: [], + projectTestersList: [], + projectReviewerList: [], + projectConfigerList: [], + bizDeptList: [], + bizDeptIdList: [], } }, methods: { + init() { + this.getInfo() + this.getbizDept() + }, // 鑾峰彇淇℃伅 async getInfo() { - let res = await this.$http.get(`/project//${this.dataForm.id}`) - this.dataForm = { - ...this.dataForm, - ...res.data + console.log(this.dataForm.id, "async getInfo()") + if (this.dataForm.id == undefined) { + return } + let res = await this.$http.get(`/project/Project/${this.dataForm.id}`) + if (res.success) { + this.dataForm = { + ...this.dataForm, + ...res.data + } + await this.getUserList() + } + console.log(this.dataForm, "async getInfo() dataForm") + }, + changeDept(selected) { + console.log(selected, 'selected') + this.dataForm.projectLeader = '' + this.dataForm.projectTesters = [] + this.dataForm.projectReviewer = [] + this.dataForm.projectConfiger = [] + this.getUserList() + }, + async getUserList() { + let res = await this.$http.get(`/project/Project/getUsersLists?deptId=${this.dataForm.bizDeptId}`) + if (res.success) { + this.projectLeaderList = res.data.zrr + this.projectTestersList = res.data.csry + this.projectReviewerList = res.data.shry + this.projectConfigerList = res.data.pzry + } + console.log(this.dataForm, 'this.dataForm') + }, + async getbizDept() { + let res = await this.$http.get(`/sys/dept/getList`) + if (res.success) { + this.bizDeptList = res.data; + } + console.log(this.bizDeptList, "getbizDept") }, // 琛ㄥ崟鎻愪氦 async formSubmit() { - let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project//', this.dataForm) + if (this.dataForm.secretClass > localStorage.getItem('userSecretClass')) { + this.$alert("褰撳墠椤圭洰璁剧疆鐨勫瘑绾ч珮浜庡綋鍓嶇敤鎴风殑瀵嗙骇锛岃閲嶆柊璁剧疆") + return + } + if (this.dataForm && this.dataForm.projectTesters instanceof Array) { + this.dataForm.projectTesters = this.dataForm.projectTesters.join(',') + } + if (this.dataForm && this.dataForm.projectReviewer instanceof Array) { + this.dataForm.projectReviewer = this.dataForm.projectReviewer.join(',') + } + if (this.dataForm && this.dataForm.projectConfiger instanceof Array) { + this.dataForm.projectConfiger = this.dataForm.projectConfiger.join(',') + } + let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/Project/', this.dataForm) if (res.success) { await this.$tip.success() this.$refs.dialog.close() this.$emit('refreshDataList') + } else { + if (this.dataForm && this.dataForm.projectTesters instanceof Array) { + this.dataForm.projectTesters = this.dataForm.projectTesters.split(',') + console.log(this.dataForm.projectTesters) + } + if (this.dataForm && this.dataForm.projectReviewer instanceof Array) { + this.dataForm.projectReviewer = this.dataForm.projectReviewer.split(',') + console.log(this.dataForm.projectReviewer) + } + if (this.dataForm && this.dataForm.projectConfiger instanceof Array) { + this.dataForm.projectConfiger = this.dataForm.projectConfiger.split(',') + console.log(this.dataForm.projectConfiger) + } } } } } </script> +<style> + .projectAuto { + width: 70%; + } + + .el-flex { + display: flex; + align-items: center; + } + + .DWidth { + width: 100px; + } + + .DWidth-Unt { + width: 100px; + } + + .DAlign { + text-align: center; + } + + .DSTOld-1-Form, + .DSTOld-1-Form { + border-left: 1px solid rgba(0, 0, 0, .2); + width: 100%; + } + + .el-border-left { + border-left: 1px solid rgba(0, 0, 0, .2); + } + + .DOldForm { + width: 100%; + } + + .el-border-top-and-bottom { + border-top: 1px solid rgba(0, 0, 0, .2); + border-bottom: 1px solid rgba(0, 0, 0, .2); + } + + .DSTOld-1-Form { + border-left: 1px solid rgba(0, 0, 0, .2); + width: 100%; + } + + .DSTOld-1-Form > .el-form-item > .el-form-item__content { + width: calc(100% - 120px); + } + + .DManageForm > .el-form-item > .el-form-item__content { + width: calc(100% - 120px); + } + + .el-border-bottom { + border-bottom: 1px solid rgba(0, 0, 0, .2); + } + + .zt .el-table.el-software th { + background: transparent; + } + + .zt .el-table.el-software th > .cell { + font-weight: 500; + } + + .DHold { + font-weight: 600; + } + + .zt .el-table.el-software { + font-size: 14px; + } + + .projectAuto .marginTopAndMarginBottom { + margin-top: 10px !important; + margin-bottom: 0 !important; + } + + .projectAuto .marginTopAndMarginBottom2 { + margin-top: -10px !important; + margin-bottom: 10px !important; + } +</style> -- Gitblit v1.9.1