Crunchy
2025-04-29 e5454b769d44a34af423bf87ac8a740bf8c20341
src/views/business/inspectionReview/index.vue
@@ -3,9 +3,8 @@
    <div>
      <el-form :model="entity" ref="entity" size="small" :inline="true">
        <el-form-item label="委托编号" prop="entrustCode">
          <el-input size="small" placeholder="请输入" clearable
                    v-model="entity.entrustCode"
                    @keyup.enter.native="refreshTable()"></el-input>
          <el-input size="small" placeholder="请输入" clearable v-model="entity.entrustCode"
            @keyup.enter.native="refreshTable()"></el-input>
        </el-form-item>
        <el-form-item label="下单类别" prop="entrustCode">
          <el-select size="small" v-model="entity.typeSource" clearable style="width: 100%;" @change="refreshTable()">
@@ -13,13 +12,13 @@
          </el-select>
        </el-form-item>
        <el-form-item>
          <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 置</el-button>
          <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 询</el-button>
          <el-button type="primary" size="mini" @click="refreshTable">查询</el-button>
          <el-button size="mini" @click="refresh">重置</el-button>
        </el-form-item>
      </el-form>
      <div class="page_total">
        <span>总计任务数量:</span>
        <span>{{page.total}}</span>
        <span>{{ page.total }}</span>
      </div>
    </div>
    <div>
@@ -27,24 +26,13 @@
                  :rowClassName="rowClassName" :height="'calc(100vh - 270px)'" @pagination="pagination"
                  key="tableData0"></lims-table>
    </div>
<!--    <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == null">-->
<!--      <Add :active="activeFace" :currentId="currentId"/>-->
<!--    </div>-->
<!--    <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == 0">-->
<!--      <CustomsInspection :active="activeFace" :customsInspection="customsInspection" :currentId="currentId"/>-->
<!--    </div>-->
<!--    <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == 1">-->
<!--      <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder>-->
<!--    </div>-->
<!--    <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :sonLaboratory="componentData.entity.sonLaboratory" :typeSource="typeSource" :state="state"/>-->
<!--    &lt;!&ndash;产业链信息查看&ndash;&gt;-->
<!--    <ShowInfo v-if="showInfoDialog" :showInfoDialog="showInfoDialog" ref="showInfoDialog"></ShowInfo>-->
    <!--报告查看-->
    <el-dialog title="报告查看" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false"
               :fullscreen="fullscreen">
      :fullscreen="fullscreen">
      <div class="full-screen">
        <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i>
        <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" >
        <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;"
          v-if="!fullscreen"></i>
        <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;">
      </div>
      <div style="height: 80vh;" v-if="issuedVisible">
        <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
@@ -52,28 +40,26 @@
    </el-dialog>
    <el-dialog title="查看附件" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen>
      <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.tempUrlPdf" :currentFile="{}"
                   style="max-height: 90vh;overflow-y: auto;" />
        style="max-height: 90vh;overflow-y: auto;" />
    </el-dialog>
  </div>
</template>
<script>
import { getYearAndMonthAndDays } from "@/utils/date";
// import ShowInfo from "../do/b1-material-ins-order/showInfo.vue";
import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue";
import limsTable from "@/components/Table/lims-table.vue";
import {selectInsOrderPlanList, selectUserCondition} from "@/api/business/inspectionTask";
import {mapGetters} from "vuex";
import {upReportUrl} from "@/api/business/insReport";
import {delfile} from "@/api/business/rawMaterialOrder";
import { selectInsOrderPlanList, selectUserCondition } from "@/api/business/inspectionTask";
import { mapGetters } from "vuex";
import { upReportUrl } from "@/api/business/insReport";
import filePreview from "@/components/Preview/filePreview.vue";
export default {
  name: 'InspectionReview',
  components: {
    filePreview,
    onlyoffice,
    limsTable,
    // ShowInfo,
  },
  dicts: ["urgency_level", "inspection_task_state"],
  computed: {
@@ -122,7 +108,18 @@
          prop: "type",
          dataType: "tag",
          formatData: (params) => {
            return this.urgencyLevel.find((m) => m.value == params).label;
            if (this.urgencyLevel.find((m) => m.value == params)) {
              return this.urgencyLevel.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            if (this.urgencyLevel.find((m) => m.value == params)) {
              return this.urgencyLevel.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        {
@@ -142,11 +139,18 @@
          prop: "insState",
          dataType: "tag",
          formatData: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params)
              .label;
            if (this.inspectionTaskState.find((m) => m.value == params)) {
              return this.inspectionTaskState.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params).type;
            if (this.inspectionTaskState.find((m) => m.value == params)) {
              return this.inspectionTaskState.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        { label: "检验人", prop: "userName" },
@@ -167,7 +171,7 @@
                this.handleReview(row);
              },
              disabled: (row) => {
                return row.userName == null || row.userName && !row.userName.includes(this.nickName)
                return row.checkName == null || (row.checkName && !row.checkName.includes(this.nickName))
              }
            },
            {
@@ -179,10 +183,12 @@
            },
            {
              name: "上传",
              type: "text",
              clickFun: (row) => {
                this.handleUpload(row);
              },
              type: "upload",
              accept: '.doc,.docx',
              url: '/insReport/inReport',
              uploadIdFun: (row) => {
                return row.insReportId
              }
            },
            {
              name: "还原",
@@ -220,18 +226,18 @@
      upIndex: 0,
      planTotal: 0,
      insStateList: [],
      state:0,//0:台账页,1:检验页面,2检验页面(复核),默认为0
      state: 0,//0:台账页,1:检验页面,2检验页面(复核),默认为0
      activeFace: 0, //1:下单,2:查看,3:审核,默认为0
      examine: null,
      isReport: 0,
      currentId: null,
      orderId: 0,
      personList:[],
      personList: [],
      currentTime: null,
      sonLaboratoryList:[],
      sonLaboratoryList: [],
      typeSourceList: [
        {label: '成品下单', value: 0},
        {label: '原材料下单', value: 1},
        { label: '成品下单', value: 0 },
        { label: '原材料下单', value: 1 },
      ],
      isCopper: null,
      customsInspection: {},
@@ -239,12 +245,12 @@
      showInfoDialog: false, // 产业链信息查看
      issuedVisible: false,
      fullscreen: false,
      option:null,
      option: null,
      orderTypeList: [
        {label: '委托试验', value: 'Customer-ordered test'},
        {label: '抽检', value: '抽检'},
        {label: '进厂检验', value: '进厂检验'},
        {label: '季度检验', value: 'Quarterly inspection'},
        { label: '委托试验', value: 'Customer-ordered test', type: 'success' },
        { label: '抽检', value: '抽检', type: 'danger' },
        { label: '进厂检验', value: '进厂检验', type: 'info' },
        { label: '季度检验', value: 'Quarterly inspection', type: '' },
      ],
      urgencyLevel: [],
      inspectionTaskState: [],
@@ -261,6 +267,9 @@
    this.currentTime = getYearAndMonthAndDays()
  },
  mounted() {
    this.refreshTable()
  },
  activated() {
    this.refreshTable()
  },
  methods: {
@@ -295,13 +304,6 @@
      }
      return "";
    },
    // 查看产业链信息
    // openInfoDialog (row) {
    //   this.showInfoDialog = true
    //   this.$nextTick(() => {
    //     this.$refs.showInfoDialog.getInfo(row.ifsInventoryId)
    //   })
    // },
    selectAllByOne(row) {
      this.isCopper = row.isCopper
      this.customsInspection = row
@@ -313,7 +315,7 @@
        case 0:
          // 原材料
          this.$router.push({
            path: "/materialOrder/customsInspection", query: {
            path: "/materialOrder/customsInspectionView", query: {
              customsInspection: row,
              active: this.activeFace,
              currentId: this.currentId,
@@ -324,7 +326,7 @@
        case null:
          // 成品
          this.$router.push({
            path: "/productOrder/add", query: {
            path: "/productOrder/addView", query: {
              examine: this.examine,
              active: this.activeFace,
              currentId: this.currentId
@@ -334,7 +336,7 @@
        case 1:
          // 铜材
          this.$router.push({
            path: "/materialOrder/copperOrder", query: {
            path: "/materialOrder/CopperView", query: {
              active: this.activeFace,
              currentId: this.currentId
            }
@@ -343,7 +345,7 @@
      }
    },
    // 复核回调
    handleReview(row){
    handleReview(row) {
      this.$router.push({
        path: "/inspectionTask/inspection",
        query: {
@@ -353,10 +355,6 @@
          orderId: row.id,
        },
      })
    },
    // 上传报告
    handleUpload () {
    },
    // 下载报告
    download(row) {
@@ -374,7 +372,7 @@
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        upReportUrl({id: row.insReportId}).then(res => {
        upReportUrl({ id: row.insReportId }).then(res => {
          if (res.code === 200) {
            this.$message.success('还原成功')
            this.refreshTable()
@@ -385,30 +383,28 @@
    },
    // 查看报告
    handleIssued(row) {
      if (!row.tempUrlPdf) return this.$message.warning('文件未上传')
      this.currentInfo = row
      this.lookDialogVisible = true
      // this.currentInfo = row;
      // let fileName = row.url
      // let fileType = "docx"
      // if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
      //   fileName = row.tempUrlPdf
      //   fileType = "pdf"
      // }
      // fileName = fileName.replace('/word/','')
      // const userName = this.nickName
      // this.option = {
      //   url: this.javaApi + "/word/" + fileName,
      //   isEdit: false,
      //   fileType: fileType,
      //   title: fileName,
      //   lang: 'zh-CN',
      //   isPrint: false,
      //   user_id: 1,
      //   user_name: userName,
      //   editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
      // }
      // this.issuedVisible = true;
      // todo: 查看报告组件
      this.currentInfo = row;
      let fileName = row.url
      let fileType = "docx"
      if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
        fileName = row.tempUrlPdf
        fileType = "pdf"
      }
      fileName = fileName.replace('/word/','')
      const userName = this.nickName
      this.option = {
        url: this.javaApi + "/word/" + fileName,
        isEdit: false,
        fileType: fileType,
        title: fileName,
        lang: 'zh-CN',
        isPrint: false,
        user_id: 1,
        user_name: userName,
        editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
      }
      this.issuedVisible = true;
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then((res) => {
@@ -428,5 +424,11 @@
<style scoped>
.page_total {
  margin-bottom: 10px;
  display: flex;
}
.page_total span:last-child {
  color: #3a7bfa;
  font-size: 23px;
  font-weight: 400;
}
</style>