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/Environ-AddOrUpdate.vue | 464 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 410 insertions(+), 54 deletions(-) diff --git a/web/src/views/modules/project/Environ-AddOrUpdate.vue b/web/src/views/modules/project/Environ-AddOrUpdate.vue index 367bcd1..354e6d0 100644 --- a/web/src/views/modules/project/Environ-AddOrUpdate.vue +++ b/web/src/views/modules/project/Environ-AddOrUpdate.vue @@ -1,75 +1,346 @@ <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="code" rules="required"> - <el-input v-model="dataForm.code"></el-input> - </zt-form-item> - <zt-form-item label="纭蒋浠惰祫婧�" prop="hardSoftwareRes" rules="required"> - <el-input v-model="dataForm.hardSoftwareRes"></el-input> - </zt-form-item> - <zt-form-item label="鍔ㄦ�佹祴璇曠幆澧冨浘" prop="testEnvirontDiagram" rules="required"> - <el-input v-model="dataForm.testEnvirontDiagram"></el-input> - </zt-form-item> - <zt-form-item label="鐜宸紓鎬у垎鏋�" prop="environAnalysis" rules="required"> - <el-input v-model="dataForm.environAnalysis"></el-input> - </zt-form-item> - <zt-form-item label="鐜寤虹珛" prop="environEstablish" rules="required"> - <el-input v-model="dataForm.environEstablish"></el-input> - </zt-form-item> - <zt-form-item label="鐜寤虹珛浜哄憳" prop="establishStaff" rules="required"> - <el-input v-model="dataForm.establishStaff"></el-input> - </zt-form-item> - <zt-form-item label="鐜寤虹珛鏃ユ湡" prop="establishDate" rules="required"> - <el-input v-model="dataForm.establishDate"></el-input> - </zt-form-item> - <zt-form-item label="鐜纭" prop="environConfirmat" rules="required"> - <el-input v-model="dataForm.environConfirmat"></el-input> - </zt-form-item> - <zt-form-item label="鐜纭浜哄憳" prop="confirmatStaff" rules="required"> - <el-input v-model="dataForm.confirmatStaff"></el-input> - </zt-form-item> - <zt-form-item label="鐜纭鏃ユ湡" prop="confirmatDate" rules="required"> - <el-input v-model="dataForm.confirmatDate"></el-input> - </zt-form-item> - <zt-form-item label="鏄惁杩涜鐜鐥呮瘨鏌ユ潃" prop="isVirusScan" rules="required"> - <el-input v-model="dataForm.isVirusScan"></el-input> - </zt-form-item> - <zt-form-item label="鐥呮瘨搴撶増鏈�" prop="virusDatabaseVersion" rules="required"> - <el-input v-model="dataForm.virusDatabaseVersion"></el-input> - </zt-form-item> + <zt-dialog ref="dialog" column="2" @confirm="formSubmit" append-to-body title="娴嬭瘯鐜寤虹珛纭琛�"> + <el-form :model="dataForm" style="padding-top: 0" :inline="true" ref="dataForm" :disabled="dataForm.disabled" + label-width="130px" class="confirmFormAuto"> + <div class="DConfirmForm"> + <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: 0"> + <span>{{dataForm.environ.code}}</span> + </el-form-item> + </div> + <div style="border: 1px solid rgba(0,0,0,.2);width: 99%" class="confirmDAuto DConfirmForm"> + <el-form-item class="marginTopAndMarginBottom" label="涓撲笟瀹為獙瀹ゅ悕绉�" style="width: 49%"> + <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="涓撲笟瀹為獙瀹ゅ悕绉�"></el-input> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom" label="娴嬭瘯鍦扮偣" style="width: 49%"> + <el-input v-model="dataForm.testAgencyInfo.site" placeholder="娴嬭瘯鍦扮偣"></el-input> + </el-form-item> + <el-form-item 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 v-model="dataForm.project.version" placeholder="鐗堟湰"></el-input> + </el-form-item> + <div class="el-flexConfigDialog el-form-border"> + <div class="DFormWidth DAlign DHold"> + 纭蒋浠惰祫婧� + </div> + <div class="el-wt-border-left" style="padding-left:5px;width: calc(100% - 130px)"> + <div style="padding: 5px">杞欢璧勬簮锛�</div> + <div class="table-container"> + <el-table ref="tableSoftwareList" class="el-software el-margin-top-bot" border + :data="dataForm.softwareResourcesList" + stripe> + <el-table-column prop="no" align="center" width="80" label="搴忓彿"> + <template slot-scope="scope"> + <span v-html="indexFormat(scope.$index)"></span> + </template> + </el-table-column> + <el-table-column prop="name" min-width="300" label="杞欢椤瑰悕绉�"> + <template v-slot="{ row }"> + <el-input v-model="row.itemName" placeholder="杞欢椤瑰悕绉�/鐗堟湰"></el-input> + </template> + </el-table-column> + <el-table-column prop="versions" align="center" width="180" label="鐗堟湰"> + <template v-slot="{ row }"> + <el-input v-model="row.version" placeholder="鐗堟湰"></el-input> + </template> + </el-table-column> + <el-table-column prop="purposes" align="center" width="180" label="鐢ㄩ��"> + <template v-slot="{ row }"> + <el-input v-model="row.purposes" placeholder="鐢ㄩ��"></el-input> + </template> + </el-table-column> + <el-table-column prop="unit" label="鎻愪緵鍗曚綅" width="180" align="center"> + <template v-slot="{ row }"> + <el-input v-model="row.provideUnit" placeholder="鎻愪緵鍗曚綅"></el-input> + </template> + </el-table-column> + </el-table> + <div v-if="!dataForm.disabled" class="icon-container" @click="addSoftwareRow()"> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> + <i class="el-icon-plus"></i> + </div> + </div> + <div style="padding: 5px">纭欢璧勬簮锛�</div> + <div class="table-container"> + <el-table ref="tableHardwareList" class="el-software el-margin-top-bot" border + :data="dataForm.hardwareResourcesList" + stripe> + <el-table-column prop="no" align="center" width="80" label="搴忓彿"> + <template slot-scope="scope"> + <span v-html="indexFormat(scope.$index)"></span> + </template> + </el-table-column> + <el-table-column prop="itemName" min-width="300" label="纭欢鍜屽浐浠堕」鐩悕绉�"> + <template v-slot="{ row }"> + <el-input v-model="row.itemName" placeholder="纭欢鍜屽浐浠堕」鐩悕绉�"></el-input> + </template> + </el-table-column> + <el-table-column prop="purposes" align="center" width="180" label="鐢ㄩ��"> + <template v-slot="{ row }"> + <el-input v-model="row.purposes" placeholder="鐢ㄩ��"></el-input> + </template> + </el-table-column> + <el-table-column prop="number" align="center" width="80" label="鏁伴噺"> + <template v-slot="{ row }"> + <el-input v-model="row.number" placeholder="鏁伴噺"></el-input> + </template> + </el-table-column> + <el-table-column prop="state" align="center" width="120" label="鐘舵��"> + <template v-slot="{ row }"> + <el-input v-model="row.state" placeholder="鐘舵��"></el-input> + </template> + </el-table-column> + <el-table-column prop="provideUnit" align="center" width="180" label="鎻愪緵鍗曚綅"> + <template v-slot="{ row }"> + <el-input v-model="row.provideUnit" placeholder="鎻愪緵鍗曚綅"></el-input> + </template> + </el-table-column> + </el-table> + <div v-if="!dataForm.disabled" class="icon-container" @click="addHardwareRow()"> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> + <i class="el-icon-plus"></i> + </div> + </div> + </div> + </div> + <div class="el-flexConfigDialog el-B-border"> + <div class="DFormWidth DAlign DHold"> + 鍔ㄦ�佹祴璇曠幆澧冨浘 + </div> + <div style="width: calc(100% - 120px);"> + <div class="el-wt-border-left"> + <span>{{dataForm.environ.testEnvirontDiagram}}</span> + <config-uploader :lineHeight="true" busi-type="test_environ_diagram" model-name="dataForm" :dataForm="dataForm" + @getImageUrl="getImageUrl" + v-model="dataForm.files"/> + <div v-if="dataForm.url"> + <el-image :src="dataForm.url"></el-image> + </div> + </div> + </div> + </div> + <div class="el-flexConfigDialog el-B-border"> + <div class="DFormWidth DAlign DHold"> + 鐜宸紓鎬у垎鏋� + </div> + <div class="el-wt-border-left" style="padding-left:5px;width: calc(100% - 130px)"> + <div class="table-container"> + <el-table ref="tableEnvironeList" class="el-software el-margin-top-bot" border + :data="dataForm.environAnalysisList" + stripe> + <el-table-column prop="no" align="center" width="80" label="搴忓彿"> + <template slot-scope="scope"> + <span v-html="indexFormat(scope.$index)"></span> + </template> + </el-table-column> + <el-table-column prop="realEnviron" min-width="300" label="鐪熷疄鐜"> + <template v-slot="{ row }"> + <el-input v-model="row.realEnviron" placeholder="鐪熷疄鐜"></el-input> + </template> + </el-table-column> + <el-table-column prop="testEnviron" align="center" width="100" label="娴嬭瘯鐜"> + <template v-slot="{ row }"> + <el-input v-model="row.testEnviron" placeholder="娴嬭瘯鐜"></el-input> + </template> + </el-table-column> + <el-table-column prop="environDifference" align="center" width="100" label="鐜宸紓"> + <template v-slot="{ row }"> + <el-input v-model="row.environDifference" placeholder="鐜宸紓"></el-input> + </template> + </el-table-column> + <el-table-column prop="resultImpact" align="center" width="160" label="瀵规祴璇曠粨鏋滃奖鍝�"> + <template v-slot="{ row }"> + <el-input v-model="row.resultImpact" placeholder="瀵规祴璇曠粨鏋滃奖鍝�"></el-input> + </template> + </el-table-column> + <el-table-column prop="measure" align="center" width="180" label="鎺柦"> + <template v-slot="{ row }"> + <el-input v-model="row.measure" placeholder="鎺柦"></el-input> + </template> + </el-table-column> + </el-table> + <div v-if="!dataForm.disabled" class="icon-container" @click="addDiscrepancyRow()"> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> + <i class="el-icon-plus"></i> + </div> + </div> + </div> + </div> + <div class="el-flexConfigDialog el-B-border"> + <div class="DFormWidth DAlign DHold"> + 鐜寤虹珛 + </div> + <div style="width: calc(100% - 120px)" class="DConfirmForm el-wt-border-left"> + <el-form-item class="marginTopAndMarginBottom" label="浜哄憳" style="width: 49%"> + <el-input v-model="dataForm.environ.establishStaff" placeholder="浜哄憳"></el-input> + </el-form-item> + <el-form-item class="marginTopAndMarginBottom" label="鏃ユ湡" style="width: 48%"> + <el-date-picker + v-model="dataForm.environ.establishDate" + type="date" + placeholder="鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-form-item label-width="180px" class="isKill" label="鏄惁杩涜鐜鐥呮瘨鏌ユ潃" style="width: 49%"> + <zt-dict v-model="dataForm.environ.isVirusScan" dict="is_or_not" :radio="true"></zt-dict> + </el-form-item> + <el-form-item label="鐥呮瘨搴撶増鏈�" style="width: 48%"> + <el-input v-model="dataForm.environ.virusDatabaseVersion" placeholder="璇疯緭鍏ョ梾姣掑簱鐗堟湰"></el-input> + </el-form-item> + </div> + </div> + <div class="el-flexConfigDialog"> + <div class="DFormWidth DAlign DHold"> + 鐜纭 + </div> + <div style="width: calc(100% - 120px)" class="DConfirmForm el-wt-border-left"> + <!-- 鍗曚綅鍚嶇О --> + <el-form-item class="marginTopAndMarginBottom" label="浜哄憳" style="width: 49%"> + <el-input v-model="dataForm.environ.confirmatStaff" placeholder="浜哄憳"></el-input> + </el-form-item> + <!-- 鑱旂郴浜� --> + <el-form-item class="marginTopAndMarginBottom" label="鏃ユ湡" style="width: 48%"> + <el-date-picker + v-model="dataForm.environ.confirmatDate" + type="date" + placeholder="鏃ユ湡"> + </el-date-picker> + </el-form-item> + </div> + </div> + </div> + <div class="el-flex environ-sc" style="height: 60px"> + <el-form-item class="marginTopAndMarginBottom" style="width: 100%"> + <config-uploader :lineHeight="true" :busiTypeVarName="busiTypeVarName" busi-type="test_environ" model-name="dataForm" :dataForm="dataForm" + v-model="dataForm.files2"/> + </el-form-item> + </div> </el-form> + <template v-slot:footer> + <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button> + </template> </zt-dialog> </template> <script> + import qs from "qs"; + import Cookies from "js-cookie"; + export default { data() { return { + busiTypeVarName: 'files2', dataForm: { id: '', - code: '', - hardSoftwareRes: '', - testEnvirontDiagram: '', - environAnalysis: '', - environEstablish: '', - establishStaff: '', - establishDate: '', - environConfirmat: '', - confirmatStaff: '', - confirmatDate: '', - isVirusScan: '', - virusDatabaseVersion: '' + url: '', + environ: { + code: '1', + hardSoftwareRes: '', + testEnvirontDiagram: '', + establishStaff: '', + establishDate: '', + environAnalysis: '', + environEstablish: '', + environConfirmat: '', + confirmatStaff: '', + confirmatDate: '', + isVirusScan: '', + virusDatabaseVersion: '', + }, + project: { + version: '', + softwareName: '', + }, + testAgencyInfo: { + agencyName: '', + site: '', + }, + softwareResourcesList: [], + hardwareResourcesList: [], + environAnalysisList: [] } } }, methods: { + init(id, row) { + console.log(row, 'row') + this.dataForm.id = row.id + this.dataForm.projectId = row.projectId + this.dataForm.disabled + this.getInfo() + console.log(this.dataForm.id, this.dataForm.projectId, 'params params') + }, // 鑾峰彇淇℃伅 async getInfo() { - let res = await this.$http.get(`/project/Environ/${this.dataForm.id}`) - this.dataForm = { - ...this.dataForm, - ...res.data + let params = { + environId: this.dataForm.id, + projectId: this.dataForm.projectId } + let res = await this.$http.get(`/project/Environ/getDto`, {params: params}) + if (res.data) { + this.dataForm = { + ...this.dataForm, + ...res.data + } + this.dataForm.project.version='1.0.0' + this.getImageUrl() + } + }, + indexFormat(index) { + return index += 1 + }, + addSoftwareRow() { + this.dataForm.softwareResourcesList.push({}) + this.$nextTick(() => { + const tableBody = this.$refs.tableSoftwareList.$el.querySelector('.el-table__body-wrapper') + tableBody.scrollTop = tableBody.scrollHeight + }) + }, + addHardwareRow() { + this.dataForm.hardwareResourcesList.push({}) + this.$nextTick(() => { + const tableBody = this.$refs.tableHardwareList.$el.querySelector('.el-table__body-wrapper') + tableBody.scrollTop = tableBody.scrollHeight; + }) + }, + addDiscrepancyRow() { + this.dataForm.environAnalysisList.push({}) + this.$nextTick(() => { + const tableBody = this.$refs.tableEnvironeList.$el.querySelector('.el-table__body-wrapper') + tableBody.scrollTop = tableBody.scrollHeight; + }) + }, + getImageUrl() { + let pictureId = this.getFirstImageId(this.dataForm.files) + this.dataForm.url = `${window.SITE_CONFIG['apiURL']}/sys/oss/content2?fileId=${pictureId}` + console.log(this.dataForm.url, ' this.dataForm.url') + }, + getFirstImageId(oss) { + console.log(oss, ' getFirstImageId(oss)') + let fileId = 0 + if (oss != null) { + if (oss.groups.length > 0) { + let group = oss.groups[0] + if (group.fields.length > 0) { + let field = group.fields[0] + if (field.files.length > 0) { + let file = field.files[0] + fileId = file.id + } + } + } + } + return fileId + }, + async print() { + console.log(this.dataForm) + let params = qs.stringify({ + token: Cookies.get('token'), + id: this.dataForm.id + }) + let apiURL = `/project/Environ/exportEnviron/` + window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}` }, // 琛ㄥ崟鎻愪氦 async formSubmit() { @@ -83,3 +354,88 @@ } } </script> +<style> + .confirmFormAuto { + width: 70%; + margin: 0 auto; + } + + .confirmDAuto { + border: 1px solid rgba(0, 0, 0, .2); + } + + .el-flexConfigDialog { + display: flex; + align-items: center; + } + + .DFormWidth { + width: 120px; + } + + .DConfirmForm { + /*border-left: 1px solid;*/ + width: 100%; + } + + .DConfirmForm > .el-form-item > .el-form-item__content { + width: calc(100% - 130px); + } + + .DConfirmForm > .el-form-item.isKill > .el-form-item__content { + width: calc(100% - 180px); + } + + .el-form-border { + border-top: 1px solid rgba(0, 0, 0, .2); + border-bottom: 1px solid rgba(0, 0, 0, .2); + } + + .el-B-border { + border-bottom: 1px solid rgba(0, 0, 0, .2); + } + + .el-margin-top-bot { + margin-top: 5px; + margin-bottom: 5px; + } + + .el-wt-border-left { + border-left: 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; + } + + .confirmFormAuto .marginTopAndMarginBottom { + margin-top: 10px !important; + margin-bottom: 0 !important; + } + + .confirmFormAuto .marginTopAndMarginBottom2 { + margin-top: -10px !important; + margin-bottom: 10px !important; + } + + .confirmFormAuto .marginTopAndMarginBottom3 { + margin-top: 0 !important; + margin-bottom: 10px !important; + } + .environ-sc > .el-form-item > .el-form-item__content { + width:100%; + } + +</style> -- Gitblit v1.9.1