From a38a1ac77bb6ac9ea8bf0cf5f5f6b68d0e6e6974 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期二, 02 一月 2024 08:44:10 +0800 Subject: [PATCH] 修改 --- web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue | 549 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 485 insertions(+), 64 deletions(-) diff --git a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue index 6e150f7..235983c 100644 --- a/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue +++ b/web/src/views/modules/configItemWarehouse/ConfigItemWarehouse-AddOrUpdate.vue @@ -1,90 +1,427 @@ <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="椤圭洰ID" prop="projectId" rules="required"> - <el-input v-model="dataForm.projectId"></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="projectCode" rules="required"> - <el-input v-model="dataForm.projectCode"></el-input> - </zt-form-item> - <zt-form-item label="椤圭洰鍚嶇О" prop="projectName" rules="required"> - <el-input v-model="dataForm.projectName"></el-input> - </zt-form-item> - <zt-form-item label="鐢宠浜�" prop="applicant" rules="required"> - <el-input v-model="dataForm.applicant"></el-input> - </zt-form-item> - <zt-form-item label="鐢宠鏃ユ湡" prop="applyDate" rules="required"> - <el-input v-model="dataForm.applyDate"></el-input> - </zt-form-item> - <zt-form-item label="搴撶被鍨�" prop="libraryType" rules="required"> - <zt-dict v-model="dataForm.libraryType" dict="library_type"></zt-dict> - </zt-form-item> - <zt-form-item label="鎵瑰噯鎰忚" prop="approvalOpinions" rules="required"> - <zt-dict v-model="dataForm.approvalOpinions" dict="is_agree"></zt-dict> - </zt-form-item> - <zt-form-item label="鎵瑰噯绛惧瓧" prop="approvalSign" rules="required"> - <el-input v-model="dataForm.approvalSign"></el-input> - </zt-form-item> - <zt-form-item label="鎵瑰噯鏃ユ湡" prop="approvalDate" rules="required"> - <el-input v-model="dataForm.approvalDate"></el-input> - </zt-form-item> - <zt-form-item label="椤圭洰CM鎿嶄綔" prop="projectCmOperations" rules="required"> - <el-input v-model="dataForm.projectCmOperations"></el-input> - </zt-form-item> - <zt-form-item label="鎿嶄綔浜�" prop="operator" rules="required"> - <el-input v-model="dataForm.operator"></el-input> - </zt-form-item> - <zt-form-item label="鎿嶄綔鏃ユ湡" prop="operateDate" rules="required"> - <el-input v-model="dataForm.operateDate"></el-input> - </zt-form-item> - <zt-form-item label="澶囨敞" prop="remark" rules="required"> - <el-input v-model="dataForm.remark"></el-input> - </zt-form-item> - <zt-form-item label="骞翠唤" prop="year" rules="required"> - <el-input v-model="dataForm.year"></el-input> - </zt-form-item> + <zt-dialog ref="dialog" column="3" :title="title" :stepMarker="stepMarker" @confirm="formSubmit"> + <el-form ref="dataForm" style="padding-top: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm" + label-width="120px" class="warehouseFormAuto"> + <div> + <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px"> + <span>{{dataForm.configItemWarehouse.code || '缂栧彿鑷姩鐢熸垚'}}</span> + </el-form-item> + </div> + <div style="border: 1px solid rgba(0,0,0,.2);width: 99%"> + <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="warehouseContentWidth"> + <el-form-item class="marginTopAndMarginBottom" label="椤圭洰缂栧彿" style="width: 49%"> + <el-input v-model="dataForm.project.code" placeholder="璇疯緭鍏ラ」鐩紪鍙�"></el-input> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鍚嶇О" style="width: 49%"> + <el-input v-model="dataForm.project.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�"></el-input> + </el-form-item> + <el-form-item label="鐢宠浜�" style="width: 49%"> + <el-input :disabled="stepMarker!=='pzxrk_first'" v-model="dataForm.configItemWarehouse.applicant" + placeholder="璇疯緭鍏ョ敵璇蜂汉"></el-input> + </el-form-item> + <el-form-item label="鐢宠鏃ユ湡" style="width: 49%"> + <el-date-picker + :disabled="stepMarker!=='pzxrk_first'" + v-model="dataForm.configItemWarehouse.applyDate" + type="date" + placeholder="璇烽�夋嫨鐢宠鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom2" label="搴撶被鍨�" style="width: 99%"> + <zt-dict disabled="disabled" v-model="dataForm.configItemWarehouse.libraryType" :radio="true" dict="library_type"></zt-dict> + </el-form-item> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + 鍏ュ簱閰嶇疆椤� + </div> + <div class="el-border-left" style="width: calc(100% - 120px)"> + <div class="table-container"> + <el-table ref="tableConfigItemList" class="el-software el-margin-top-bot" + style="width: 99%;margin-left: 5px" border :data="dataForm.configItemList" + stripe> + <el-table-column prop="no" align="center" width="60" label="搴忓彿"> + <template slot-scope="scope"> + <span v-html="indexFormat(scope.$index)"></span> + </template> + </el-table-column> + <el-table-column prop="itemName" width="200" label="閰嶇疆椤瑰悕绉�"> + <template v-slot="{ row }"> + <el-input v-if="showAddAndEdit" v-model="row.itemName" placeholder="閰嶇疆椤瑰悕绉�"></el-input> + <span v-else>{{row.itemName}}</span> + </template> + </el-table-column> + <el-table-column prop="itemIdentify" align="center" min-width="290" label="閰嶇疆椤规爣璇�"> + <template v-slot="{ row }"> + <el-input v-if="showAddAndEdit" v-model="row.itemIdentify" placeholder="閰嶇疆椤规爣璇�"></el-input> + <span v-else>{{row.itemIdentify}}</span> + </template> + </el-table-column> + <el-table-column prop="version" align="center" width="120" label="鐗堟湰"> + <template v-slot="{ row }"> + <el-input v-if="showAddAndEdit" v-model="row.version" placeholder="鐗堟湰"></el-input> + <span v-else>{{row.version}}</span> + </template> + </el-table-column> + <el-table-column prop="retrospectVersion" label="涓婃函鐗�" width="120" align="center"> + <template v-slot="{ row }"> + <el-input v-if="showAddAndEdit" v-model="row.retrospectVersion" placeholder="涓婃函鐗�"></el-input> + <span v-else>{{row.retrospectVersion}}</span> + </template> + </el-table-column> + <el-table-column prop="secretClass" label="瀵嗙骇" width="100" align="center"> + <template v-slot="{ row }"> + <zt-dict :disabled="!showAddAndEdit" v-model="row.secretClass" placeholder="瀵嗙骇" dict="secret_class" + clearable></zt-dict> + </template> + </el-table-column> + <el-table-column v-if="showColumn" fixed="right" label="绠$悊" width="100" align="center"> + <template v-slot="{ row }"> + <zt-table-button v-if="row.checkId" + @click="openCheckOrderWin(row)">淇敼妫�鏌ュ崟 + </zt-table-button> + <zt-table-button v-else-if="',杞欢娴嬭瘯璁″垝锛岃蒋浠舵祴璇曡鏄庯紝杞欢娴嬭瘯璁板綍锛岃蒋浠舵祴璇曟姤鍛�'.indexOf(row.itemName)>0" + @click="openCheckOrderWin(row)">鏂板妫�鏌ュ崟 + </zt-table-button> + </template> + </el-table-column> + <el-table-column fixed="right" prop="files" label="涓婁紶闄勪欢" width="240" align="center"> + <template v-slot="{ row }"> + <!-- <zt-table-button @click="files(row.id)">涓婁紶闄勪欢</zt-table-button>--> + <table-uploader :disabled="!showAddAndEdit" busi-type="config_item_warehouse" model-name="row" :dataForm="row" + v-model="row.files"/> + </template> + </el-table-column> + </el-table> + <div v-if="showAddAndEdit && !dataForm.disabled" class="icon-container"> + <el-dropdown @command="handleCommand"> + <span class="el-dropdown-link"> + <i class="el-icon-plus"></i> + </span> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item v-for="item in menuOptions" :key="item.pageCode" :command="item.pageCode"> + {{ item.name }} + </el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> + <!-- <i class="el-icon-plus"></i>--> + </div> + </div> + </div> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + 椤圭洰QA瀹℃牳 + </div> + <div class="el-border-left" style="width: calc(100% - 120px)"> + <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border + :data="dataForm.qaAuditList" + stripe> + <el-table-column prop="no" align="center" width="80" label="搴忓彿"></el-table-column> + <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column> + <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center"> + <template slot-scope="scope"> + <zt-dict :disabled="stepMarker!=='pzxrk_qash'" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" + dict="tristate2" :radio="true" + clearable></zt-dict> + </template> + </el-table-column> + <el-table-column align="center" width="120" label="涓嶉�傜敤璇存槑"> + <template v-slot="{ row }"> + <el-input v-if="stepMarker=='pzxrk_qash'" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input> + <span v-else>{{row.notApplyExplan}}</span> + </template> + </el-table-column> + </el-table> + <div class="el-border-top"> + <el-form-item label="瀹℃牳缁撴灉" style="width: 99%"> + <zt-dict :disabled="stepMarker!=='pzxrk_qash'" v-model="dataForm.configItemWarehouse.qaAuditResults" + dict="is_pass" :radio="true" + clearable></zt-dict> + </el-form-item> + <el-form-item label="瀹℃牳浜猴細" style="width: 48%"> + <span>{{dataForm.configItemWarehouse.qaAuditor}}</span> + </el-form-item> + <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%"> + <span>{{dataForm.configItemWarehouse.qaAuditDate}}</span> + </el-form-item> + </div> + </div> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + CM瀹℃牳 + </div> + <div class="el-border-left" style="width: calc(100% - 120px)"> + <el-table class="el-software el-margin-top-bot" style="width: 99%;margin-left: 5px" border + :data="dataForm.cmAuditList" + stripe> + <el-table-column prop="no" align="center" width="80" label="搴忓彿"></el-table-column> + <el-table-column prop="examineItem" min-width="300" label="妫�鏌ラ」"></el-table-column> + <el-table-column label="妫�鏌ョ粨鏋�" width="250" align="center"> + <template slot-scope="scope"> + <zt-dict :disabled="stepMarker!=='pzxrk_cmsh'" v-model="scope.row.examineResult" placeholder="妫�鏌ョ粨鏋�" + dict="tristate2" :radio="true" + clearable></zt-dict> + </template> + </el-table-column> + <el-table-column prop="notApplyExplan" align="center" width="120" label="涓嶉�傜敤璇存槑"> + <template v-slot="{ row }"> + <el-input v-if="stepMarker=='pzxrk_cmsh'" v-model="row.notApplyExplan" placeholder="涓嶉�傜敤璇存槑"></el-input> + <span v-else>{{row.notApplyExplan}}</span> + </template> + </el-table-column> + </el-table> + <div class="el-border-top"> + <el-form-item label="瀹℃牳缁撴灉" style="width: 99%"> + <zt-dict :disabled="stepMarker!=='pzxrk_cmsh'" v-model="dataForm.configItemWarehouse.cmAuditResults" + placeholder="瀹℃牳缁撴灉" dict="is_pass" :radio="true" + clearable></zt-dict> + </el-form-item> + <el-form-item label="瀹℃牳浜猴細" style="width: 48%"> + <span>{{dataForm.configItemWarehouse.cmAuditor}}</span> + </el-form-item> + <el-form-item label="瀹℃牳鏃ユ湡锛�" style="width: 48%"> + <span>{{dataForm.configItemWarehouse.cmAuditDate}}</span> + </el-form-item> + </div> + </div> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + 鎵瑰噯鎰忚 + </div> + <div style="width: calc(100% - 120px)" class="el-border-left"> + <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%"> + <zt-dict :disabled="stepMarker!=='pzxrk_bmsh'" v-model="dataForm.configItemWarehouse.approvalOpinions" + dict="is_pass" :radio="true" + clearable></zt-dict> + </el-form-item> + <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%"> + <span>{{dataForm.configItemWarehouse.approvalSign}}</span> + </el-form-item> + <el-form-item label="鏃ユ湡锛�" style="width: 20%"> + <span>{{dataForm.configItemWarehouse.approvalDate}}</span> + </el-form-item> + </div> + </div> + <div class="el-flexManageDialog el-border-bottom"> + <div class="DFormWidth DAlign DHold"> + 椤圭洰CM鎿嶄綔 + </div> + <div style="width: calc(100% - 120px)" class="el-border-left"> + <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px"> + <el-input v-if="stepMarker=='pzxrk_cmcz'" type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" + v-model="dataForm.configItemWarehouse.projectCmOperations"></el-input> + <span v-else>{{dataForm.configItemWarehouse.projectCmOperations}}</span> + </el-form-item> + <el-form-item label-width="80%" label="鎿嶄綔浜猴細" style="width: 65%"> + <span>{{dataForm.configItemWarehouse.operator}}</span> + </el-form-item> + <el-form-item label="鏃ユ湡锛�" style="width: 20%"> + <span>{{dataForm.configItemWarehouse.operateDate}}</span> + </el-form-item> + </div> + </div> + <div class="el-flexManageDialog"> + <div class="DFormWidth DAlign DHold"> + 澶囨敞 + </div> + <div style="width: calc(100% - 120px)" class="el-border-left"> + <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px"> + <el-input type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�" + v-model="dataForm.configItemWarehouse.remark"></el-input> + </el-form-item> + </div> + </div> + </div> + <add-or-update-check ref="addOrUpdate" @recall="setCheckId"/> </el-form> + <template v-slot:footer> + <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button> + </template> </zt-dialog> </template> <script> + import AddOrUpdateCheck from '../testCheckOrder/TestCheckOrder-AddOrUpdate' + import qs from "qs"; + import Cookies from "js-cookie"; + export default { data() { return { + disabled: true, + stepMarker: '', + title: '鏌ョ湅', + showColumn: false, + showAddAndEdit: false, + menuOptions: [ + {pageCode: 'plan', name: '杞欢娴嬭瘯璁″垝', itemIdentify: ''}, + {pageCode: 'explain', name: '杞欢娴嬭瘯璇存槑'}, + {pageCode: 'record', name: '杞欢娴嬭瘯璁板綍'}, + {pageCode: 'report', name: '杞欢娴嬭瘯鎶ュ憡'}, + {pageCode: 'other', name: '鍏朵粬'} + ], + pageNameCode: {'杞欢娴嬭瘯璁″垝': 'plan', '杞欢娴嬭瘯璇存槑': 'explain', '杞欢娴嬭瘯璁板綍': 'record', '杞欢娴嬭瘯鎶ュ憡': 'report'}, dataForm: { id: '', - projectId: '', - code: '', - projectCode: '', - projectName: '', - applicant: '', - applyDate: '', - libraryType: '', - approvalOpinions: '', - approvalSign: '', - approvalDate: '', - projectCmOperations: '', - operator: '', - operateDate: '', - remark: '', - year: '' + configItemWarehouse: { + id: "", + code: "", + applicant: "", + applyDate: "", + libraryType: "", + qaAuditResults: "", + qaAuditor: "", + qaAuditDate: "", + cmAuditResults: "", + cmAuditor: "", + cmAuditDate: "", + approvalOpinions: "", + approvalSign: "", + approvalDate: "", + projectCmOperations: "", + operator: "", + operateDate: "", + remark: "", + }, + project: { + code: '', + softwareName: '', + }, + cmAuditList: [], + configItemList: [], + qaAuditList: [], + flowInfoDto: {} } } }, + created() { + const roleName = localStorage.getItem('roleName') + if (roleName && roleName.includes('QA')) { + this.showColumn = true; + } + if (roleName && roleName.includes('娴嬭瘯鍛�')) { + this.showAddAndEdit = true; + } + }, + computed: {}, + components: { + AddOrUpdateCheck + }, methods: { + indexFormat(index) { + return index += 1 + }, + init(id, row) { + console.log(id, row, '鍏ュ簱鍗曠殑') + if (id) { + this.dataForm.id = id + } else { + this.dataForm.id = row.id + } + if (row.projectId) { + this.dataForm.projectId = row.projectId + } + if (row.libraryType) { + console.log(row.libraryType,"row.libraryType") + this.dataForm.configItemWarehouse.libraryType = row.libraryType + } + this.getInfo() + if (!this.dataForm.disabled) { + if (!row.stepMarker) { + this.stepMarker = 'pzxrk_first' + this.title = '鍏ュ簱鐢宠' + } else { + this.title = row.stepName + this.stepMarker = row.stepMarker + } + } + console.log(this.dataForm.id, this.dataForm.projectId, 'params params') + }, + handleCommand(pageCode) { + const selectedItem = this.menuOptions.find(item => item.pageCode === pageCode); + console.log(selectedItem, "handleCommand(pageCode) selectedItem") + if (selectedItem.pageCode === 'other') { + this.dataForm.configItemList.push({}) + } else if (selectedItem) { + this.dataForm.configItemList.push({itemName: selectedItem.name, pageCode: selectedItem.pageCode}) + } + this.$nextTick(() => { + const tableBody = this.$refs.tableConfigItemList.$el.querySelector('.el-table__body-wrapper') + tableBody.scrollTop = tableBody.scrollHeight; + }) + }, + openCheckOrderWin(row) { + console.log(row, "openCheckOrderWin(row)") + row.projectId = this.dataForm.projectId + if (!row.checkId) { + row.checkId = -1 + } + // if (!row.pageCode) {//鍏跺疄杩欓噷鏄病鐢ㄧ殑 + // row.pageCode = this.pageNameCode[row.itemName] + // } + console.log(row.itemName, row.pageCode, "row.itemName,openCheckOrderWin(row) row.pageCode") + this.$refs.addOrUpdate.$refs.dialog.init(null, row) + + }, + setCheckId(checkId, row) { + console.log(checkId, row, "setCheckId(checkId, row)") + this.$set(row, 'checkId', checkId) + }, // 鑾峰彇淇℃伅 async getInfo() { - let res = await this.$http.get(`/configItemWarehouse/ConfigItemWarehouse/${this.dataForm.id}`) + let params = { + warehouseId: this.dataForm.id, + projectId: this.dataForm.projectId, + libraryType:this.dataForm.configItemWarehouse.libraryType + } + let res = await this.$http.get(`/configItemWarehouse/ConfigItemWarehouse/getDto`, {params: params}) this.dataForm = { ...this.dataForm, ...res.data } + if (this.dataForm.project === null) { + this.dataForm.project = {} + } + if (this.dataForm.configItemWarehouse === null) { + this.dataForm.circulatOrder = {} + } + if (this.dataForm.flowInfoDto === null) { + this.dataForm.flowInfoDto = {} + } + console.log(this.dataForm, "getInfo this.dataForm") + }, + async print(){ + var params = qs.stringify({ + token: Cookies.get('token'), + id:this.dataForm.id + }) + let apiURL = `/configItemWarehouse/ConfigItemWarehouse/exportWarehouseOrder` + window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}` }, // 琛ㄥ崟鎻愪氦 - async formSubmit() { + async formSubmit(submitType) { + if (this.showColumn && submitType == 'bl') { + for (let item of this.dataForm.configItemList) { + if (item) { + if (this.pageNameCode[item.itemName] && !item.checkId) { + this.$alert("鏈夋湭鎻愪氦鐨勬鏌ュ崟") + return + } + } + } + } + if (submitType == 'tj' || submitType == 'bl') { + let flowInfo = { + flowCode: 'pzxrk', + stepIdMark: this.stepMarker, + submitType: submitType + } + this.dataForm.flowInfoDto = flowInfo; + } let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/configItemWarehouse/ConfigItemWarehouse/', this.dataForm) if (res.success) { await this.$tip.success() @@ -95,3 +432,87 @@ } } </script> +<style> + .ManageFormAuto { + width: 70%; + margin: 0 auto; + } + + .confirmDAuto { + border: 1px solid; + } + + .el-flexManageDialog { + display: flex; + align-items: center; + } + + .DFormWidth { + width: 120px; + } + + .DAlign { + text-align: center; + } + + .DManageForm { + /*border-left: 1px solid;*/ + width: 100%; + } + + .DManageForm > .el-form-item > .el-form-item__content { + width: calc(100% - 120px); + } + + .el-form-item.el-CMTextarea > .el-form-item__content { + width: 100%; + } + + .el-form .el-form-item.el-wt-form-item-margin { + margin-left: 120px; + } + + .el-form-border { + border-top: 1px solid; + border-bottom: 1px solid; + } + + .el-margin-top-bot { + margin-top: 5px; + margin-bottom: 5px; + } + + .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; + } + + .warehouseContentWidth > .el-form-item > .el-form-item__content { + width: calc(100% - 120px); + } + + .warehouseContentWidth > .el-form-item.lastChild > .el-form-item__content { + width: calc(100% - 142px); + } + + .warehouseFormAuto .marginTopAndMarginBottom { + margin-top: 10px !important; + margin-bottom: 0 !important; + } + + .warehouseFormAuto .marginTopAndMarginBottom2 { + margin-top: -10px !important; + margin-bottom: 0 !important; + } +</style> -- Gitblit v1.9.1