From d6e4a1f930946ecaecaec3a3daa9d07dd370e9b1 Mon Sep 17 00:00:00 2001
From: zzw <wander.zheng@qq.com>
Date: 星期五, 17 十一月 2023 11:40:08 +0800
Subject: [PATCH] 编号

---
 web/src/views/modules/project/SoftwareTestOrder.vue                                              |   73 ++-----------
 web/src/commonJS/commonFile.js                                                                   |    8 +
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetShowDictList.java           |    9 +
 modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java |   36 ++++---
 web/src/views/pages/view.vue                                                                     |  132 ++++++++++++++++++++++++++
 5 files changed, 179 insertions(+), 79 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetShowDictList.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetShowDictList.java
index 1822cd3..8cc92e9 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetShowDictList.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/utils/GetShowDictList.java
@@ -15,18 +15,23 @@
 @Service
 public class GetShowDictList {
     @Autowired
-    private  SysDictTypeService sysDictTypeService;
+    private SysDictTypeService sysDictTypeService;
 
-    public  String getShowDictList(String values, String DictTYpe) {
+    public String getShowDictList(String values, String DictTYpe, Boolean enter) {
         List<DictDto> userDicts = sysDictTypeService.getUserDicts();
         DictDto testType1Dict = userDicts.stream()
                 .filter(c -> c.getDictType().equals(DictTYpe))
                 .collect(Collectors.toList()).get(0);
         values = "," + values + ",";
         String result = "";
+        int i = 0;
         for (DictItemDto dictItemDto : ((DictLeafDto) testType1Dict).getDataList()) {
             String value = dictItemDto.getDictValue();
             String desc = (values.contains("," + value + ",") ? "鈽�" : "鈻�") + dictItemDto.getDictLabel();
+            i++;
+            if (enter && i < ((DictLeafDto) testType1Dict).getDataList().size()) {
+                desc = desc + "\r\n";
+            }
             result = result + desc;
         }
         return result;
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
index 53531b4..8e806f8 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -17,6 +17,7 @@
 import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
 import com.zt.life.sys.service.SysOssConfigService;
 import com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.oss.service.SysOssService;
 import com.zt.modules.sys.service.SysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -62,6 +63,9 @@
     @Autowired
     private SysOssConfigService sysOssConfigService;
 
+    @Autowired
+    private SysOssService sysOssService;
+
     /**
      * 鍒嗛〉鏌ヨ
      *
@@ -70,6 +74,9 @@
      */
     public List<SoftwareTestOrder> page(QueryFilter queryFilter) {
         List<SoftwareTestOrder> list = baseDao.getList(queryFilter.getQueryParams());
+        if (list != null && list.size() > 0) {
+            sysOssService.setListOsses(list, "test_order");
+        }
         return list;
     }
 
@@ -215,36 +222,35 @@
             dataObj.getSoftwareTestOrder().setTestType22(testType22);
 
             //閫氱敤瀛楀吀鍒楄〃瀛楃涓茬敓鎴�
-            String criticalLevelStr = getShowDictList.getShowDictList(dataObj.getProject().getCriticalLevel().toString(), "critical_level");
+            String criticalLevelStr = getShowDictList.getShowDictList(dataObj.getProject().getCriticalLevel().toString(), "critical_level", false);
             dataObj.getSoftwareTestOrder().setCriticalLevelStr(criticalLevelStr);
 
-           for (SoftwareTestOrderMeasured measured : dataObj.getMeasuredList()) {
-               String value = measured.getIsMeasured();
-               String isMeasuredStr = getShowDictList.getShowDictList(value, "is_or_not");
-               measured.setIsMeasuredStr(isMeasuredStr);
-           }
+            for (SoftwareTestOrderMeasured measured : dataObj.getMeasuredList()) {
+                String value = measured.getIsMeasured();
+                String isMeasuredStr = getShowDictList.getShowDictList(value, "is_or_not", false);
+                measured.setIsMeasuredStr(isMeasuredStr);
+            }
 
-
-            String sortwareTypeStr = getShowDictList.getShowDictList(dataObj.getProject().getSoftwareType(), "software_type");
+            String sortwareTypeStr = getShowDictList.getShowDictList(dataObj.getProject().getSoftwareType(), "software_type", false);
             dataObj.getSoftwareTestOrder().setSortwareTypeStr(sortwareTypeStr);
 
-            String testBasisStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestBasis(), "test_basis");
+            String testBasisStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestBasis(), "test_basis", false);
             dataObj.getSoftwareTestOrder().setTestBasisStr(testBasisStr);
 
-            String testStandardStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestStandard(), "test_standard");
+            String testStandardStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestStandard(), "test_standard", true);
             dataObj.getSoftwareTestOrder().setTestStandardStr(testStandardStr);
 
-            String testLevelStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestLevel().toString(), "test_level");
+            String testLevelStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getTestLevel().toString(), "test_level", false);
             dataObj.getSoftwareTestOrder().setTestLevelStr(testLevelStr);
 
-            String test =dataObj.getSoftwareTestOrder().getOtherRequire();
-            String otherRequireStr = getShowDictList.getShowDictList(test, "other_require");
+            String test = dataObj.getSoftwareTestOrder().getOtherRequire();
+            String otherRequireStr = getShowDictList.getShowDictList(test, "other_require", false);
             dataObj.getSoftwareTestOrder().setOtherRequireStr(otherRequireStr);
 
-            String articleNatureStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getArticleNature(), "article_nature");
+            String articleNatureStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getArticleNature(), "article_nature", false);
             dataObj.getSoftwareTestOrder().setArticleNatureStr(articleNatureStr);
 
-            String sampleStatusStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getSampleStatus(), "is_or_not");
+            String sampleStatusStr = getShowDictList.getShowDictList(dataObj.getSoftwareTestOrder().getSampleStatus(), "is_or_not", false);
             dataObj.getSoftwareTestOrder().setSampleStatusStr(sampleStatusStr);
 
             WordFile wordFile = new WordFile();
diff --git a/web/src/commonJS/commonFile.js b/web/src/commonJS/commonFile.js
index 7599513..2deb8cd 100644
--- a/web/src/commonJS/commonFile.js
+++ b/web/src/commonJS/commonFile.js
@@ -106,7 +106,7 @@
 }
 
 
-function setAccessoryFormat2(row, pageMarker,that) {
+function setAccessoryFormatSingle(row, pageMarker,that) {
   if (row.accessoryMap) {
     let data = '';
     for (let key in row.accessoryMap) {
@@ -119,6 +119,7 @@
       }
       let fileId = /_zt_oss_id=(\d+)/.exec(url);
       fileId = fileId ? fileId[1] : ''; // 鑾峰彇鍖归厤鐨勫唴瀹癸紝濡傛灉涓虹┖鍒欒祴鍊间负绌哄瓧绗︿覆
+      alert(fileId)
       let pageMarker2 = pageMarker
       if (suffixName == 'pdf' || suffixName == 'doc' || suffixName == 'docx' || suffixName == 'jpg' || suffixName == 'jpeg' || suffixName == 'png' || suffixName == 'xls' || suffixName == 'xlsx') {
         if (suffixName == 'pdf') {
@@ -134,6 +135,7 @@
           pageMarker2 = pageMarker + '-xls'
           that.xlsName =fileName;
         }
+        alert(pageMarker2)
         return openPreviewDialog(fileId, suffixName, document.getElementById(pageMarker2), pageMarker2);
       } else {
         return alert("鏂囦欢绫诲瀷涓嶆敮鎸侀瑙�")
@@ -145,7 +147,7 @@
   }
 }
 
-function setAccessoryFormat3(row, pageMarker,that) {
+function setAccessoryFormatByForm(row, pageMarker,that) {
   if (row.files.groups[0].fields[0].files[0]) {
     let data = '';
     let url = row.files.groups[0].fields[0].files[0].url;
@@ -182,4 +184,4 @@
   }
 }
 
-export {setAccessoryFormatComm, setAccessoryFormat2, setAccessoryFormat3}
+export {setAccessoryFormatComm, setAccessoryFormatSingle, setAccessoryFormatByForm}
diff --git a/web/src/views/modules/project/SoftwareTestOrder.vue b/web/src/views/modules/project/SoftwareTestOrder.vue
index dfe5c57..ac09575 100644
--- a/web/src/views/modules/project/SoftwareTestOrder.vue
+++ b/web/src/views/modules/project/SoftwareTestOrder.vue
@@ -35,8 +35,10 @@
           <zt-table-column-dict prop="testStandard" min-width="420" label="娴嬭瘯鏍囧噯" dict="test_standard"/>
           <zt-table-column-dict prop="articleNature" width="120px" label="鐗╁搧鎬ц川" dict="article_nature"/>
           <zt-table-column-handle :table="table" width="150px" edit-perm="project:update" delete-perm="project::delete">
-            <template slot-scope="scope">
-              <zt-table-button @click="testOlderView()">棰勮</zt-table-button>
+            <template v-slot="{ row }">
+              <zt-table-button size="small" type="primary"
+                               @click="preview(row)">棰勮
+              </zt-table-button>
             </template>
           </zt-table-column-handle>
         </el-table>
@@ -46,28 +48,9 @@
                        @refreshDataList="table.query"
                        @setProjectInfo="openAddWin">
         </ProjectSelect>
-
       </zt-table-wraper>
-      <div v-show="isOpenDocPreviewDialog" class="preview-dialog">
-        <button @click="closePreviewDialog('doc')" class="close-button">鍏抽棴</button>
-        <div id="SoftwareTestOrder-doc" style="overflow: auto; width: 100%; height: 90%;"></div>
-        <div class="file-name">{{ docName }}</div>
-      </div>
-      <div v-show="isOpenPdfPreviewDialog" class="preview-dialog">
-        <button @click="closePreviewDialog('pdf')" class="close-button">鍏抽棴</button>
-        <iframe id="SoftwareTestOrder-pdf" src="" style="margin:0;padding:0;width:100%;height:90%;"></iframe>
-        <div class="file-name">{{ pdfName }}</div>
-      </div>
-      <div v-show="isOpenImgPreviewDialog" class="preview-dialog">
-        <button @click="closePreviewDialog('img')" class="close-button">鍏抽棴</button>
-        <img id="SoftwareTestOrder-img" src="" style="margin:0;padding:0;width:100%;height:90%;">
-        <div class="file-name">{{ imgName }}</div>
-      </div>
-      <div v-show="isOpenXlsPreviewDialog" class="preview-dialog">
-        <button @click="closePreviewDialog('xls')" class="close-button">鍏抽棴</button>
-        <div id="SoftwareTestOrder-xls" style="margin:0;padding:0;width:100%;height:90%;"></div>
-        <div class="file-name">{{ xlsName }}</div>
-      </div>
+      <View ref="view22" :pageMarkerfun="SoftwareTestOrder">
+      </View>
     </div>
   </el-card>
 </template>
@@ -75,19 +58,11 @@
 <script>
 import AddOrUpdate from './SoftwareTestOrder-AddOrUpdate'
 import ProjectSelect from "./Project-select.vue"
-import {setAccessoryFormat2} from '@/commonJS/commonFile'
+import View from '@/views/pages/view.vue'
 
 export default {
   data() {
     return {
-      isOpenDocPreviewDialog:false,
-      isOpenPdfPreviewDialog:false,
-      isOpenImgPreviewDialog:false,
-      isOpenXlsPreviewDialog:false,
-      docName:'',
-      pdfName:'',
-      imgName:'',
-      xlsName:'',
       dataForm: {
         testBasis: '',
         testType: '',
@@ -98,7 +73,8 @@
   },
   components: {
     AddOrUpdate,
-    ProjectSelect
+    ProjectSelect,
+    View
   },
   methods: {
     add() {
@@ -108,32 +84,11 @@
       console.log(row.id, 'row.id')
       this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: row.id})
     },
-    testOlderView(row){
-      return setAccessoryFormat2(row, 'SoftwareTestOrder', this)
-    },
-    closePreviewDialog(file) {
-      if (file == 'doc') {
-        this.docName = '';
-        this.isOpenDocPreviewDialog = false; // 鍏抽棴寮圭獥
-        const docElement = document.getElementById('SoftwareTestOrder-doc');
-        docElement.innerHTML = '';
-      } else if (file == 'pdf') {
-        this.pdfName = '';
-        this.isOpenPdfPreviewDialog = false;
-        let iframe = document.getElementById('SoftwareTestOrder-pdf');
-        iframe.src = '';
-      } else if (file == 'img') {
-        this.imgName = '';
-        this.isOpenImgPreviewDialog = false;
-        let img = document.getElementById('SoftwareTestOrder-img');
-        img.src = '';
-      } else if (file == 'xls') {
-        this.xlsName = '';
-        this.isOpenXlsPreviewDialog = false;
-        let excelElement = document.getElementById('SoftwareTestOrder-xls');
-        excelElement.innerHTML = '';
-      }
-    },
+    preview(row){
+      console.log(row,'preview(row)');
+      this.$refs.view22.setAccessoryFormatSingle(row)
+    }
   }
 }
 </script>
+
diff --git a/web/src/views/pages/view.vue b/web/src/views/pages/view.vue
new file mode 100644
index 0000000..5900a54
--- /dev/null
+++ b/web/src/views/pages/view.vue
@@ -0,0 +1,132 @@
+<template>
+  <div>
+    <div v-show="isOpenDocPreviewDialog" class="preview-dialog">
+      <button @click="closePreviewDialog('doc')" class="close-button">鍏抽棴</button>
+      <div :id="pageMarkerfun+'-doc'" style="overflow: auto; width: 100%; height: 90%;"></div>
+      <div class="file-name">{{ docName }}</div>
+    </div>
+    <div v-show="isOpenPdfPreviewDialog" class="preview-dialog">
+      <button @click="closePreviewDialog('pdf')" class="close-button">鍏抽棴</button>
+      <iframe :id="pageMarkerfun+'-pdf'" src="" style="margin:0;padding:0;width:100%;height:90%;"></iframe>
+      <div class="file-name">{{ pdfName }}</div>
+    </div>
+    <div v-show="isOpenImgPreviewDialog" class="preview-dialog">
+      <button @click="closePreviewDialog('img')" class="close-button">鍏抽棴</button>
+      <img :id="pageMarkerfun+'-img'" src="" style="margin:0;padding:0;width:100%;height:90%;">
+      <div class="file-name">{{ imgName }}</div>
+    </div>
+    <div v-show="isOpenXlsPreviewDialog" class="preview-dialog">
+      <button @click="closePreviewDialog('xls')" class="close-button">鍏抽棴</button>
+      <div :id="pageMarkerfun+'-xls'" style="margin:0;padding:0;width:100%;height:90%;"></div>
+      <div class="file-name">{{ xlsName }}</div>
+    </div>
+  </div>
+</template>
+
+<script>
+  import {setAccessoryFormatSingle} from '@/commonJS/commonFile'
+  export default {
+    props: {
+      pageMarkerfun: {
+        default: ''
+      }
+    },
+    data() {
+      return {
+        isOpenDocPreviewDialog: false,
+        isOpenPdfPreviewDialog: false,
+        isOpenImgPreviewDialog: false,
+        isOpenXlsPreviewDialog: false,
+        docName: '',
+        pdfName: '',
+        imgName: '',
+        xlsName: ''
+      }
+    },
+    created() {
+      this.$EventBus.$on(this.pageMarkerfun+'-doc', () => {
+        this.isOpenDocPreviewDialog = true
+      })
+      this.$EventBus.$on(this.pageMarkerfun +'-pdf', () => {
+        this.isOpenPdfPreviewDialog = true
+      })
+      this.$EventBus.$on(this.pageMarkerfun +'-img', () => {
+        this.isOpenImgPreviewDialog = true
+      })
+      this.$EventBus.$on(this.pageMarkerfun +'-xls', () => {
+        this.isOpenXlsPreviewDialog = true
+      })
+    },
+    methods: {
+      setAccessoryFormatSingle(row) {
+        console.log(row, 'setAccessoryFormatSingle(row)');
+        return setAccessoryFormatSingle(row, this.pageMarkerfun, this)
+      },
+      closePreviewDialog(file) {
+        if (file == 'doc') {
+          this.docName = ''
+          this.isOpenDocPreviewDialog = false // 鍏抽棴寮圭獥
+          const docElement = document.getElementById(this.pageMarkerfun +'-doc')
+          docElement.innerHTML = ''
+        } else if (file == 'pdf') {
+          this.pdfName = ''
+          this.isOpenPdfPreviewDialog = false;
+          let iframe = document.getElementById(this.pageMarkerfun +'-pdf')
+          iframe.src = ''
+        } else if (file == 'img') {
+          this.imgName = '';
+          this.isOpenImgPreviewDialog = false;
+          let img = document.getElementById(this.pageMarkerfun +'-img')
+          img.src = ''
+        } else if (file == 'xls') {
+          this.xlsName = ''
+          this.isOpenXlsPreviewDialog = false;
+          let excelElement = document.getElementById(this.pageMarkerfun+'-xls')
+          excelElement.innerHTML = ''
+        }
+      }
+    }
+  }
+</script>
+<style>
+  /* 寮圭獥鏍峰紡 */
+  .preview-dialog {
+    z-index: 100;
+    width: 1200px;
+    height: 700px;
+    position: fixed;
+    top: 120px;
+    right: 10px;
+    background: gray;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+  }
+  .close-button {
+    position: absolute;
+    top: 10px;
+    right: 10px;
+    border: none;
+    font-size: 18px;
+    color: snow;
+    cursor: pointer;
+    background: #062944;
+  }
+
+  .file-name {
+    position: absolute;
+    top: 10px;
+    left: 50%;
+    transform: translateX(-50%);
+    border: none;
+    font-size: 18px;
+    color: snow;
+    cursor: pointer;
+    background: #062944;
+  }
+
+  img {
+    object-fit: contain;
+  }
+</style>

--
Gitblit v1.9.1