zzw
2023-11-17 40eb98bcf3028ca1de391ac140f44920eddd9e8b
web/src/views/modules/project/SoftwareTestOrder.vue
@@ -1,7 +1,8 @@
<template>
  <el-card shadow="never" class="aui-card--fill">
    <div class="mod-project-softwareTestOrder}">
      <zt-table-wraper query-url="/project/SoftwareTestOrder/page" delete-url="/project/SoftwareTestOrder" v-slot="{ table }">
      <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()">
          <el-form-item>
            <el-input v-model="dataForm.softwareName" placeholder="请输入软件名称" clearable></el-input>
@@ -10,65 +11,129 @@
            <zt-dict v-model="dataForm.testBasis" dict="test_basis" placeholder="请选择测试依据" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-dict v-model="dataForm.testStandard" dict="test_standard" placeholder="请选择测试标准" clearable></zt-dict>
            <zt-dict v-model="dataForm.testStandard" dict="test_standard" placeholder="请选择测试标准"
                     clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-dict v-model="dataForm.articleNature" dict="article_nature" placeholder="请选择物品性质" clearable></zt-dict>
            <zt-dict v-model="dataForm.articleNature" dict="article_nature" placeholder="请选择物品性质"
                     clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-button type="query" @click="table.query()"/>
            <zt-button type="add" perm="project:add" @click="table.editHandle()"/>
            <!--            <zt-button type="add" perm="project:add" @click="table.editHandle()"/>-->
            <zt-button type="primary" class="el-icon-edit" perm="project:add" @click="add()">新增</zt-button>
            <zt-button type="delete" perm="project:delete" @click="table.deleteHandle()"/>
          </el-form-item>
        </el-form>
        <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle">
        <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 prop="softwareName" label="软件名称"/>
          <el-table-column prop="code" label="委托单编号"/>
          <el-table-column prop="identity" label="项目标识"/>
            <zt-table-column-dict prop="testBasis" label="测试依据" dict="test_basis"/>
            <zt-table-column-dict prop="testStandard" width="370px" label="测试标准" dict="test_standard"/>
            <zt-table-column-dict prop="articleNature" label="物品性质" dict="article_nature"/>
              <zt-table-column-handle :table="table" edit-perm="project:update" delete-perm="project::delete"/>
          <el-table-column prop="softwareName" width="250px" label="软件名称"/>
          <el-table-column prop="code" width="270" label="委托单编号"/>
          <el-table-column prop="softwareIdentity" width="150px" label="项目标识"/>
          <zt-table-column-dict prop="testBasis" width="150px" label="测试依据" dict="test_basis"/>
          <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>
          </zt-table-column-handle>
        </el-table>
        <!-- 弹窗, 新增 / 修改 -->
        <add-or-update ref="addOrUpdate"  @refreshDataList="table.query"/>
        <add-or-update ref="addOrUpdate" @refreshDataList="table.query"/>
        <ProjectSelect ref="projectSelect"
                       @refreshDataList="table.query"
                       @setConstructionInfo="getConstructionInfo">
                       @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>
    </div>
  </el-card>
</template>
<script>
  import AddOrUpdate from './SoftwareTestOrder-AddOrUpdate'
  import ProjectSelect from "./Project-select.vue"
  export default {
    data() {
      return {
        dataForm: {
          testBasis: '',
          testType: '',
          testStandard: '',
          articleNature: '',
        }
      }
    },
    components: {
      AddOrUpdate,
      ProjectSelect
    },
    methods:{
      add(){
        this.$refs.projectSelect.$refs.dialog.init()
      },
      getConstructionInfo(row){
        this.$refs.addOrUpdate.$refs.dialog.init(row)
import AddOrUpdate from './SoftwareTestOrder-AddOrUpdate'
import ProjectSelect from "./Project-select.vue"
import {setAccessoryFormat2} from '@/commonJS/commonFile'
export default {
  data() {
    return {
      isOpenDocPreviewDialog:false,
      isOpenPdfPreviewDialog:false,
      isOpenImgPreviewDialog:false,
      isOpenXlsPreviewDialog:false,
      docName:'',
      pdfName:'',
      imgName:'',
      xlsName:'',
      dataForm: {
        testBasis: '',
        testType: '',
        testStandard: '',
        articleNature: '',
      }
    }
  },
  components: {
    AddOrUpdate,
    ProjectSelect
  },
  methods: {
    add() {
      this.$refs.projectSelect.$refs.dialog.init("software_test_order")
    },
    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 = '';
      }
    },
  }
}
</script>