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