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 | 490 ++++++++++++++++++++++++++++------------------------- 1 files changed, 259 insertions(+), 231 deletions(-) diff --git a/web/src/views/modules/project/Environ-AddOrUpdate.vue b/web/src/views/modules/project/Environ-AddOrUpdate.vue index a74e939..354e6d0 100644 --- a/web/src/views/modules/project/Environ-AddOrUpdate.vue +++ b/web/src/views/modules/project/Environ-AddOrUpdate.vue @@ -1,32 +1,34 @@ <template> <zt-dialog ref="dialog" column="2" @confirm="formSubmit" append-to-body title="娴嬭瘯鐜寤虹珛纭琛�"> - <el-form :model="dataForm" style="padding: 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.softwareIdentity" 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" + <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"> @@ -48,20 +50,21 @@ <el-input v-model="row.purposes" placeholder="鐢ㄩ��"></el-input> </template> </el-table-column> - <el-table-column prop="unit" label="鎻愪緵鍗曚綅" width="180" align="center"> + <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 class="icon-container" @click="addSoftwareRow()"> - <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> - <i class="el-icon-plus"></i> - </div> + <div v-if="!dataForm.disabled" class="icon-container" @click="addSoftwareRow()"> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> + <i class="el-icon-plus"></i> </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" + </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"> @@ -94,36 +97,37 @@ </template> </el-table-column> </el-table> - <div class="icon-container" @click="addHardwareRow()"> - <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> - <i class="el-icon-plus"></i> - </div> + <div v-if="!dataForm.disabled" class="icon-container" @click="addHardwareRow()"> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> + <i class="el-icon-plus"></i> </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 busi-type="test_environt_diagram" model-name="dataForm" :dataForm="dataForm" - @getImageUrl="getImageUrl" - v-model="dataForm.files"/> - <div v-if="image.url"> - <el-image :src="image.url"></el-image> - </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 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" + </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"> @@ -156,77 +160,86 @@ </template> </el-table-column> </el-table> - <div class="icon-container" @click="addDiscrepancyRow()"> - <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> - <i class="el-icon-plus"></i> - </div> + <div v-if="!dataForm.disabled" class="icon-container" @click="addDiscrepancyRow()"> + <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� --> + <i class="el-icon-plus"></i> </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 el-B-border"> + <div class="DFormWidth DAlign DHold"> + 鐜寤虹珛 </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 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> - </el-form> + <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 { - image: { - url:'', - width:'', - height:1, - }, + busiTypeVarName: 'files2', dataForm: { id: '', - environ:{ + url: '', + environ: { code: '1', hardSoftwareRes: '', testEnvirontDiagram: '', - establishStaff:'', - establishDate:'', + establishStaff: '', + establishDate: '', environAnalysis: '', environEstablish: '', environConfirmat: '', @@ -236,26 +249,27 @@ virusDatabaseVersion: '', }, project: { - softwareIdentity: '', + version: '', softwareName: '', }, testAgencyInfo: { - agencyName:'', - site:'', + agencyName: '', + site: '', }, - softwareResourcesList:[], - hardwareResourcesList:[], - environAnalysisList:[] + softwareResourcesList: [], + hardwareResourcesList: [], + environAnalysisList: [] } } }, methods: { - init(id,row){ + init(id, row) { + console.log(row, 'row') this.dataForm.id = row.id this.dataForm.projectId = row.projectId - // this.dataForm.disabled + this.dataForm.disabled this.getInfo() - console.log(this.dataForm.id,this.dataForm.projectId,'params params') + console.log(this.dataForm.id, this.dataForm.projectId, 'params params') }, // 鑾峰彇淇℃伅 async getInfo() { @@ -263,40 +277,70 @@ environId: this.dataForm.id, projectId: this.dataForm.projectId } - let res = await this.$http.get(`/project/Environ/getDto`,{params: params}) - this.dataForm = { - ...this.dataForm, - ...res.data + 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() } - console.log(this.dataForm,'this.dataForm') }, - indexFormat(index){ + indexFormat(index) { return index += 1 }, - addSoftwareRow(){ + addSoftwareRow() { this.dataForm.softwareResourcesList.push({}) - this.$nextTick(()=>{ - const tableBody=this.$refs.tableSoftwareList.$el.querySelector('.el-table__body-wrapper') + this.$nextTick(() => { + const tableBody = this.$refs.tableSoftwareList.$el.querySelector('.el-table__body-wrapper') tableBody.scrollTop = tableBody.scrollHeight }) }, - addHardwareRow(){ + addHardwareRow() { this.dataForm.hardwareResourcesList.push({}) - this.$nextTick(()=>{ - const tableBody=this.$refs.tableHardwareList.$el.querySelector('.el-table__body-wrapper') + this.$nextTick(() => { + const tableBody = this.$refs.tableHardwareList.$el.querySelector('.el-table__body-wrapper') tableBody.scrollTop = tableBody.scrollHeight; }) }, - addDiscrepancyRow(){ + addDiscrepancyRow() { this.dataForm.environAnalysisList.push({}) - this.$nextTick(()=>{ - const tableBody=this.$refs.tableEnvironeList.$el.querySelector('.el-table__body-wrapper') + this.$nextTick(() => { + const tableBody = this.$refs.tableEnvironeList.$el.querySelector('.el-table__body-wrapper') tableBody.scrollTop = tableBody.scrollHeight; }) }, - getImageUrl(url){ - this.image.url = url - console.log(this.image.url,' this.image.url') + 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() { @@ -311,103 +355,87 @@ } </script> <style> -.confirmFormAuto { - width: 70%; - margin: 0 auto; -} -.confirmDAuto{ - border: 1px solid rgba(0,0,0,.2); -} + .confirmFormAuto { + width: 70%; + margin: 0 auto; + } -.el-flexConfigDialog { - display: flex; - align-items: center; -} + .confirmDAuto { + border: 1px solid rgba(0, 0, 0, .2); + } -.DFormWidth { - width: 120px; -} + .el-flexConfigDialog { + display: flex; + align-items: center; + } -.DAlign { - text-align: center; -} + .DFormWidth { + width: 120px; + } -.DConfirmForm { - /*border-left: 1px solid;*/ - width: 100%; -} + .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; -} + .DConfirmForm > .el-form-item > .el-form-item__content { + width: calc(100% - 130px); + } -.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; -} + .DConfirmForm > .el-form-item.isKill > .el-form-item__content { + width: calc(100% - 180px); + } -.confirmFormAuto .marginTopAndMarginBottom2 { - margin-top: -10px !important; - margin-bottom: 10px !important; -} -.confirmFormAuto .marginTopAndMarginBottom3 { - margin-top: 0 !important; - margin-bottom: 10px !important; -} -.table-container { - position: relative; -} -.table-container:hover .icon-container { - opacity: 1; /* 榧犳爣鎮仠鏃舵樉绀哄浘鏍� */ -} -.icon-container { - z-index: 1; - position: absolute; - bottom: -20px; - left: 50%; - width: 40px; - height: 30px; - text-align: center; - line-height: 30px; - transform: translate3d(-50%, 0, -20px); - border: 1px solid #EBEEF5; - background-color: #fafafa; - box-shadow: 0 3px 6px 0 rgba(72, 119, 232, 0.14); - border-radius: 2px; - transition: transform 0.3s ease,box-shadow 0.3s ease,opacity 0.3s ease; - opacity: 0; -} -.icon-container:hover{ - transform: translate3d(-50%, 0, 0); - box-shadow: 0 10px 10px 0 rgba(72, 119, 232, 0.34) -} + .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