zhuo
2025-05-20 7eb190f13437b2e67788e9f4bdea725fdb165f01
src/views/business/productOrder/index.vue
@@ -39,30 +39,32 @@
        </el-form-item>
      </el-form>
    </div>
    <div class="table-tab">
      <div>
        <ul class="tab">
          <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核</li>
          <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中</li>
          <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">委托已检</li>
          <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">抽样已检</li>
          <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回</li>
          <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">撤销</li>
          <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部</li>
        </ul>
    <div class="container" v-loading="isLoading">
      <div class="table-tab">
        <div>
          <ul class="tab">
            <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核</li>
            <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中</li>
            <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">委托已检</li>
            <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">抽样已检</li>
            <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回</li>
            <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">撤销</li>
            <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部</li>
          </ul>
        </div>
        <div>
          <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 6" size="small"
                     @click="downLoad">导出</el-button>
          <el-button v-if="tabIndex === 1" size="small" type="primary" @click="openAddIns">添加检验项</el-button>
          <el-button size="small" type="primary" @click="openPrint">标签打印</el-button>
          <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">下单</el-button>
        </div>
      </div>
      <div>
        <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 6" size="small"
          @click="downLoad">导出</el-button>
        <el-button v-if="tabIndex === 1" size="small" type="primary" @click="openAddIns">添加检验项</el-button>
        <el-button size="small" type="primary" @click="openPrint">标签打印</el-button>
        <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">下单</el-button>
      <div class="table">
        <lims-table :tableData="tableData" :column="column" :isSelection="true" :handleSelectionChange="selectMethod"
                    @pagination="pagination" :height="'calc(100vh - 280px)'" :key="upIndex" :page="page"
                    :tableLoading="tableLoading"></lims-table>
      </div>
    </div>
    <div class="table">
      <lims-table :tableData="tableData" :column="column" :isSelection="true" :handleSelectionChange="selectMethod"
        @pagination="pagination" :height="'calc(100vh - 280px)'" :key="upIndex" :page="page"
        :tableLoading="tableLoading"></lims-table>
    </div>
    <div>
      <!-- 审核 -->
@@ -345,6 +347,7 @@
  },
  data() {
    return {
      isLoading: false, // 控制加载状态
      entity: {
        orderType: '',
        state: '',
@@ -781,6 +784,11 @@
    ...mapGetters(["nickName"]),
  },
  mounted() {
    if (this.checkPermi(['get:raw:await'])) {
      this.tabIndex = 0
    } else {
      this.tabIndex = 2
    }
    this.refreshTable()
    this.getAuthorizedPerson()
  },
@@ -800,8 +808,9 @@
        }
      }
      const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
      this.tableLoading = true
      this.isLoading = true; // 开始加载
      selectInsOrderParameter({...this.page,...params}).then(res => {
        this.isLoading = false; // 结束加载
        this.upIndex++
        this.tableLoading = false
        if (res.code === 200) {
@@ -809,7 +818,7 @@
          this.page.total = res.data.total
        }
      }).catch(err => {
        this.tableLoading = false
        this.isLoading = false; // 结束加载
      })
    },
    refresh() {
@@ -918,7 +927,12 @@
    },
    // 导出记录
    downLoad() {
      const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
      let params = {}
      if (this.multipleSelection.length > 0) {
        params.ids = this.multipleSelection.map(item => item.id).join(',');
      } else {
        params = { ...this.entity, state: this.tabList[this.tabIndex].value }
      }
      rawAllInsOrderExport({ ...params }).then(res => {
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '委托检测信息导出.xlsx');
@@ -971,14 +985,26 @@
    },
    // 点击样品名称
    selectAllByOne(row) {
      this.$router.push({
        path: "/productOrder/add", query: {
          examine: 1,
          active: 2,
          currentId: row.id,
          tabIndex: this.tabIndex,
        }
      });
      if (this.tabIndex === 4) {
        this.$router.push({
          path: "/productOrder/addOrder", query: {
            examine: 1,
            active: 2,
            currentId: row.id,
            tabIndex: this.tabIndex,
          }
        });
      } else {
        this.$router.push({
          path: "/productOrder/addView", query: {
            examine: 1,
            active: 2,
            currentId: row.id,
            tabIndex: this.tabIndex,
          }
        });
      }
    },
    // 修改样品型号
    editSampleModel (row) {
@@ -1243,14 +1269,15 @@
    },
    // 下单
    playOrder(num) {
      this.$router.push({ path: "/productOrder/add", query: { examine: 0, active: num, tabIndex: this.tabIndex } });
      this.$router.push({ path: "/productOrder/addOrder", query: { examine: 0, active: num, tabIndex: this.tabIndex } });
    },
    // 审核
    handleVerify(row) {
      this.$router.push({ path: "/productOrder/add", query: { examine: 1, active: 3, currentId: row.id } });
      this.$router.push({ path: "/productOrder/addView", query: { examine: 1, active: 3, currentId: row.id } });
    },
    handleTab(i) {
      this.tabIndex = i;
      this.multipleSelection = []
      this.refreshTable()
    },
    // 查看检验数据
@@ -1261,16 +1288,29 @@
        inspectorList = row.userName.split(',')
      }
      inspectorList.push(this.nickName)
      this.$router.push({
        path: "/inspectionTask/inspection",
        query: {
          sonLaboratory: row.sonLaboratory,
          state: 3,
          typeSource: row.typeSource,
          orderId: row.id,
          inspectorList: inspectorList,
        },
      })
      if (this.checkPermi(['business:inspectionView'])) {
        this.$router.push({
          name: "InspectionView",
          query: {
            sonLaboratory: row.sonLaboratory,
            state: 3,
            typeSource: row.typeSource,
            orderId: row.id,
            inspectorList: inspectorList,
          },
        })
      } else {
        this.$router.push({
          path: "/inspectionTask/inspection",
          query: {
            sonLaboratory: row.sonLaboratory,
            state: 3,
            typeSource: row.typeSource,
            orderId: row.id,
            inspectorList: inspectorList,
          },
        })
      }
    },
    goback() {
      this.state = 0