wente
2023-12-13 6081b5522b5c67b28ecff0bb60143309dbc81e23
web/src/views/modules/project/SoftwareTestOrder.vue
@@ -1,6 +1,5 @@
<template>
  <el-card shadow="never" class="aui-card--fill">
    <div class="mod-project-softwareTestOrder}">
    <div class="fa-card-a">
      <zt-table-wraper query-url="/project/SoftwareTestOrder/page" delete-url="/project/SoftwareTestOrder/deleteOrder"
                       v-slot="{ table }">
        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
@@ -27,7 +26,7 @@
        </el-form>
        <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
                  border @selection-change="table.selectionChangeHandle">
          <el-table-column type="selection" align="center" width="40"/>
          <el-table-column :selectable="isCheckbox" type="selection" align="center" width="40"/>
          <el-table-column prop="softwareName" width="250px" label="软件名称"/>
          <el-table-column prop="code" width="270" label="委托单编号"/>
          <el-table-column prop="softwareIdentity" width="150px" label="项目标识"/>
@@ -35,8 +34,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" v-show = "row.accessoryMap" type="primary"
                               @click="preview(row)">预览
              </zt-table-button>
            </template>
          </zt-table-column-handle>
        </el-table>
@@ -46,48 +47,20 @@
                       @refreshDataList="table.query"
                       @setProjectInfo="openAddWin">
        </ProjectSelect>
        <Preview ref="view" :pageMarkerfun="SoftwareTestOrder"></Preview>
      </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>
    </div>
  </el-card>
</template>
<script>
import AddOrUpdate from './SoftwareTestOrder-AddOrUpdate'
import ProjectSelect from "./Project-select.vue"
import {setAccessoryFormat2} from '@/commonJS/commonFile'
import Preview from '@/views/pages/view'
export default {
  data() {
    return {
      isOpenDocPreviewDialog:false,
      isOpenPdfPreviewDialog:false,
      isOpenImgPreviewDialog:false,
      isOpenXlsPreviewDialog:false,
      docName:'',
      pdfName:'',
      imgName:'',
      xlsName:'',
      SoftwareTestOrder:'SoftwareTestOrder',
      dataForm: {
        testBasis: '',
        testType: '',
@@ -98,42 +71,24 @@
  },
  components: {
    AddOrUpdate,
    ProjectSelect
    ProjectSelect,
    Preview
  },
  methods: {
    add() {
      this.$refs.projectSelect.$refs.dialog.init("software_test_order")
    },
    isCheckbox(row,index){
      return !(row.flowInfo && row.flowInfo.bizId);
    },
    openAddWin(row) {
      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){
        this.$refs.view.openAccessoryFormatSingle(row)
    }
  }
}
</script>