spring
2025-03-03 840de9662167b1d7758208b9c88adda806ed8fec
删除导出成功提示,统一提示了
已修改54个文件
3720 ■■■■■ 文件已修改
src/views/CNAS/externalService/serviceAndSupplyPro/component/ConsumableList.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/serviceAndSupplyPro/component/Store.vue 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/supplierManage/index.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/tabs/job-responsibilities.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/tabs/personnel-information.vue 284 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/tabs/personnel-list.vue 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue 155 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/tabs/reward-punishment-record.vue 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/demand/index.vue 248 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/ensureResultsValidity/index.vue 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue 164 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/method/methodVerification/index.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/method/standardMethodsChange/index.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/nonconformingWork/nonconformingDistribution/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/nonconformingWork/nonconformingItem/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/reportResults/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/borrow.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/calibration.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/equipmentAcceptance.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/equipmentFailure.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/equipmentScrap.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/files.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/maintenance.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/state.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/illuminance-recording.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/temperature-humidity-record.vue 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-treatment.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/standardMaterial/index.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/correctiveAction/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentControl/components/FileObsoletionRequest.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/approvalRecord.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/cancellationRecord.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/regularReviewsRecord.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/revisionRecord.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/auditInspection.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/auditMeetingSign.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/auditReport.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/correctiveAction.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/implementationPlan.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/yearPlan.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/measuresDealRisks/components/hazardIdentificationRiskAssessment.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/measuresDealRisks/components/listRiskAnalysisControlPlans.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrder/index.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/index.vue 579 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productSamplingInfo/index.vue 185 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/rawMaterialInspection/index.vue 275 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/reportPreparation/index.vue 232 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/performance/manHour/workTimeManagement.vue 388 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/serviceAndSupplyPro/component/ConsumableList.vue
@@ -15,18 +15,10 @@
        </div>
      </template>
      <template v-slot:table>
        <limsTable
          :column="columns"
          :currentChange="rowClick"
          :height="'25vh'"
          :highlightCurrentRow="true"
          :isSelection="false"
          :rowStyle="tableRowStyle"
          :table-data="tableData"
          rowKey="id"
          style="margin-top: 18px; padding: 0 15px;"
        >
          <template v-slot:consumablesTypeSlot="{row}">
        <limsTable :column="columns" :currentChange="rowClick" :height="'25vh'" :highlightCurrentRow="true"
          :isSelection="false" :rowStyle="tableRowStyle" :table-data="tableData" rowKey="id"
          style="margin-top: 18px; padding: 0 15px;">
          <template v-slot:consumablesTypeSlot="{ row }">
            {{ findType(row.consumablesType) }}
          </template>
          <template v-slot:operation="scope">
@@ -36,14 +28,8 @@
        </limsTable>
        <div class="pagination">
          <div></div>
          <el-pagination
            :page-size="pagination.pageSize"
            :page-sizes="[10, 20, 30, 40]"
            :total="pagination.total"
            layout="total, sizes, prev, pager, next, jumper"
            @current-change="handleCurrent"
            @size-change="handleSize"
          >
          <el-pagination :page-size="pagination.pageSize" :page-sizes="[10, 20, 30, 40]" :total="pagination.total"
            layout="total, sizes, prev, pager, next, jumper" @current-change="handleCurrent" @size-change="handleSize">
          </el-pagination>
        </div>
      </template>
@@ -52,7 +38,7 @@
    <div>
      <ConsumableProject ref="consumableProject"></ConsumableProject>
    </div>
    <Edit ref="editRef" :contentsId="contentsId" @submit="fetchData"/>
    <Edit ref="editRef" :contentsId="contentsId" @submit="fetchData" />
  </div>
</template>
@@ -70,7 +56,7 @@
export default {
  dicts: ["consumables_type"],
  components: {
    TableCard, limsTable,Edit, ConsumableProject
    TableCard, limsTable, Edit, ConsumableProject
  },
  props: {
    contentsId: {
@@ -161,7 +147,7 @@
  },
  methods: {
    async fetchData() {
      procurementSuppliesList({ contentId: this.contentsId}).then(res => {
      procurementSuppliesList({ contentId: this.contentsId }).then(res => {
        if (res.code === 200) {
          this.tableData = res.data.records
          if (this.tableData.length > 0) {
@@ -174,7 +160,7 @@
      this.$nextTick()
      let res
      const e = this.options.find(item => item.value == val)
      if(e) {
      if (e) {
        res = e.label
      } else {
        res = '-'
@@ -185,10 +171,9 @@
      this.$refs.editRef.openDialog(row);
    },
    async exportExcel() {
      exportProcurementSuppliesList({parentId:this.contentsId}).then(res => {
        const blob = new Blob([res], {type: 'application/octet-stream'});
      exportProcurementSuppliesList({ parentId: this.contentsId }).then(res => {
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '耗材列表.xlsx')
        this.$message.success('导出成功')
      })
    },
    handleCurrent() {
@@ -196,7 +181,7 @@
    handleSize() {
    },
    handleDelete(row) {
      deleteProcurementSuppliesList({ id:row.id }).then(res => {
      deleteProcurementSuppliesList({ id: row.id }).then(res => {
        if (res.code === 200) {
          this.$message.success('删除成功')
          this.fetchData()
@@ -206,8 +191,8 @@
    rowClick(row) {
      this.$refs.consumableProject.fetchListId(row)
    },
    tableRowStyle({row}) {
      if(row.currentAmount <= row.lowerLimit) {
    tableRowStyle({ row }) {
      if (row.currentAmount <= row.lowerLimit) {
        return { background: '#ffcaca' }
      } else {
        return {}
src/views/CNAS/externalService/serviceAndSupplyPro/component/Store.vue
@@ -13,21 +13,14 @@
      </el-button>
    </div>
    <div class="table">
      <limsTable
        :column="tableColumn"
        :height="'calc(100vh - 20em)'"
        :table-data="storageTableData"
        :table-loading="tableLoading"
        style="padding: 0 10px;margin-bottom: 16px"
        :page="page"
        @pagination="pagination">
      <limsTable :column="tableColumn" :height="'calc(100vh - 20em)'" :table-data="storageTableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" :page="page" @pagination="pagination">
      </limsTable>
    </div>
    <!-- 编辑-新增弹框 -->
    <el-dialog :before-close="handleClose" :close-on-click-modal="false"
               :close-on-press-escape="false" :title="title"
               :visible.sync="dialogVisible" width="70%">
    <el-dialog :before-close="handleClose" :close-on-click-modal="false" :close-on-press-escape="false" :title="title"
      :visible.sync="dialogVisible" width="70%">
      <!-- 入库单 -->
      <div>
        <div style="display: flex; align-items: center">
@@ -51,19 +44,17 @@
          </el-col>
          <el-col :span="12">
            <el-form-item label="入库日期">
              <el-date-picker v-model="form.storageTime" format="yyyy-MM-dd"
                              placeholder="选择日期"
                              size="small"
                              style="width: 100%" type="date" value-format="yyyy-MM-dd"></el-date-picker>
              <el-date-picker v-model="form.storageTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                style="width: 100%" type="date" value-format="yyyy-MM-dd"></el-date-picker>
            </el-form-item>
          </el-col>
            <el-col :span="12">
              <el-form-item label="入库人">
                <el-select v-model="form.storageUser" size="small" style="width: 100%">
                  <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
          <el-col :span="12">
            <el-form-item label="入库人">
              <el-select v-model="form.storageUser" size="small" style="width: 100%">
                <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="入库说明">
              <el-input v-model="form.remark" :rows="2" placeholder="请输入内容" type="textarea">
@@ -106,8 +97,7 @@
              </el-input>
            </div>
          </div>
          <el-button size="mini" type="primary"
            @click="addTableData">添加
          <el-button size="mini" type="primary" @click="addTableData">添加
          </el-button>
        </div>
        <el-table :data="consumables" style="margin-top: 10px">
@@ -225,7 +215,7 @@
          label: '登记人',
          prop: 'registrantName',
          minWidth: '160'
        },{
        }, {
          label: '登记日期',
          prop: 'registrantTime',
          minWidth: '100'
@@ -322,7 +312,7 @@
    // 添加表格数据
    addTableData() {
      this.$nextTick()
      console.log('this.consumableOptions',this.consumableOptions)
      console.log('this.consumableOptions', this.consumableOptions)
      this.consumableOptions.forEach(item => {
        if (item.id === this.formTwo.id) {
          this.consumables.push({
@@ -343,13 +333,13 @@
      this.consumables.splice(index, 1);
    },
    // 打开弹框
    addOrUpdateStore(type,row) {
    addOrUpdateStore(type, row) {
      if (type === 'edit') {
        this.dialogType = "update";
        selectStoreById({id:row.id}).then(res => {
        selectStoreById({ id: row.id }).then(res => {
          if (res.code === 201) return
          this.consumables = res.data.consumables
          this.form = {...res.data.store}
          this.form = { ...res.data.store }
        }).catch(err => {
          console.log('err---', err);
        })
@@ -359,11 +349,11 @@
      this.dialogVisible = true;
    },
    // 查询列表
    searchList () {
    searchList() {
      this.tableLoading = true
      storeList({...this.page,...this.searchForm}).then(res => {
      storeList({ ...this.page, ...this.searchForm }).then(res => {
        this.tableLoading = false
        if (res.code === 200){
        if (res.code === 200) {
          this.storageTableData = res.data.records
          this.page.total = res.data.total
        }
@@ -374,10 +364,9 @@
    },
    // 导出excel
    async importExcel() {
      exportProcurementSuppliesStoreExcel({parentId:this.contentsId}).then(res => {
        const blob = new Blob([res], {type: 'application/octet-stream'});
      exportProcurementSuppliesStoreExcel({ parentId: this.contentsId }).then(res => {
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '耗材入库.xlsx')
        this.$message.success('导出成功')
      })
    },
    handleClose() {
@@ -404,11 +393,11 @@
    // 获取所有用户
    getUserList() {
      selectUserCondition().then((res) => {
          this.users = res.data;
        });
        this.users = res.data;
      });
    },
    async fetchListOptions() {
      procurementSuppliesList({contentsId: this.contentsId}).then(res => {
      procurementSuppliesList({ contentsId: this.contentsId }).then(res => {
        if (res.code === 200) {
          this.consumableOptions = res.data.records
        }
@@ -416,20 +405,20 @@
    },
    // 删除
    deleteStore (row) {
    deleteStore(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        console.log('row>>>>>>>>>>>>>>s',row)
        console.log('row>>>>>>>>>>>>>>s', row)
        deleteStore({
          id:row.id,
          consumablesId:row.consumablesId
          id: row.id,
          consumablesId: row.consumablesId
        }).then(res => {
          this.tableLoading = false
          if (res.code === 200){
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.searchList()
          }
@@ -457,10 +446,12 @@
.el-dialog {
  margin: 6vh auto 50px !important;
}
.el-dialog__body {
  max-height: 42em;
  overflow-y: auto;
}
.input-form {
  display: flex;
  margin: 10px 0;
src/views/CNAS/externalService/supplierManage/index.vue
@@ -19,7 +19,7 @@
    </div>
    <div class="table">
      <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination"
                  :page="page" :tableLoading="tableLoading"></lims-table>
        :page="page" :tableLoading="tableLoading"></lims-table>
    </div>
    <form-dia ref="formDia" v-if="formDia" @closeDia="closeDia"></form-dia>
  </div>
@@ -115,17 +115,17 @@
    async getTableData() {
      this.tableLoading = true;
      selectQualifiedSupplierManagementPage(this.searchForm).then(res => {
          this.tableLoading = false;
          if(res.code === 200) {
            this.tableData = res.data.records;
            this.page.total = res.data.total
          }
        this.tableLoading = false;
        if (res.code === 200) {
          this.tableData = res.data.records;
          this.page.total = res.data.total
        }
      }).catch(err => {
        this.tableLoading = false
      })
    },
    // 重置
    resetSearchForm () {
    resetSearchForm() {
      this.pagination.current = 1
      this.pagination.pageSize = 20
      this.searchForm.supplierName = ''
@@ -144,18 +144,18 @@
      })
    },
    // 关闭弹框
    closeDia () {
    closeDia() {
      this.formDia = false
      this.getTableData()
    },
    // 删除记录
    deleteRow (row) {
    deleteRow(row) {
      this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delSupplierManagement({supplierManagementId:row.supplierManagementId}).then(res => {
        delSupplierManagement({ supplierManagementId: row.supplierManagementId }).then(res => {
          if (res.code === 200) {
            this.$message.success('删除成功!')
            this.getTableData()
@@ -170,10 +170,9 @@
    },
    // 导出excel
    async exportExcel() {
      exportSupplierManagement({deviceId:this.clickNodeVal.value}).then(res => {
      exportSupplierManagement({ deviceId: this.clickNodeVal.value }).then(res => {
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '合格供应商.xlsx')
        this.$message.success('导出成功')
      })
    }
  },
src/views/CNAS/personnel/personnelInfo/tabs/job-responsibilities.vue
@@ -30,31 +30,28 @@
        <el-table-column fixed="right" label="操作" width="140" align="center">
          <template v-slot="scope">
            <el-button v-if="!isDepartment || scope.row.currentState === '关闭'" size="small" type="text"
                       @click="handleViewClick(scope.row, 'view')">查看
              @click="handleViewClick(scope.row, 'view')">查看
            </el-button>
            <el-button v-if="isDepartment && scope.row.currentState !== '关闭'" size="small" type="text"
                       @click="handleViewClick(scope.row, 'edit')">编辑
              @click="handleViewClick(scope.row, 'edit')">编辑
            </el-button>
            <el-button size="small" type="text" @click="downLoadPost(scope.row)">导出</el-button>
            <el-button v-if="isDepartment" size="small" style="color: #f56c6c" type="text" @click="deletePost(scope.row)">删除</el-button>
            <el-button v-if="isDepartment" size="small" style="color: #f56c6c" type="text"
              @click="deletePost(scope.row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
                     :total="search.total" layout="->,total, sizes, prev, pager, next, jumper"
                     background
                     style="margin-top: 10px"
                     @size-change="handleSizeChange"
                     @current-change="handleCurrentChange">
        :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" background style="margin-top: 10px"
        @size-change="handleSizeChange" @current-change="handleCurrentChange">
      </el-pagination>
    </div>
    <!-- 新增岗位职责 -->
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible"
               title="新增岗位职责"
               width="50%" @close="resetForm">
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible" title="新增岗位职责"
      width="50%" @close="resetForm">
      <el-steps :active="currentStep" align-center finish-status="success">
        <el-step v-for="(v, i) in steps" :key="i" :title="v" style="cursor:pointer"
                 @click.native="choiceStep(i)"></el-step>
          @click.native="choiceStep(i)"></el-step>
      </el-steps>
      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
        <div>
@@ -64,44 +61,36 @@
              <el-col :span="12">
                <el-form-item label="岗位名称:" prop="postName">
                  <el-input v-model="form.postName" :disabled="currentStep !== 0 || operationType === 'view'"
                            size="small"></el-input>
                    size="small"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="24">
                <el-form-item label="工作目标:" prop="jobObjective">
                  <el-input v-model="form.jobObjective" :disabled="currentStep !== 0 || operationType === 'view'"
                            size="small"
                            type="textarea"></el-input>
                    size="small" type="textarea"></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="24">
                <el-form-item label="岗位职责:" prop="jobResponsibilities">
                  <el-input v-model="form.jobResponsibilities" :disabled="currentStep !== 0 || operationType === 'view'"
                            size="small"
                            type="textarea"></el-input>
                    size="small" type="textarea"></el-input>
                </el-form-item>
              </el-col>
              <el-col v-if="currentStep === 0 || operationType === 'view'" :span="12">
                <el-form-item
                  :rules="[{ required: currentStep === 0, message: '请选择任职人', trigger: 'change' }]"
                  label="任职人:"
                  prop="incumbentId">
                  <el-select v-model="form.incumbentId" :disabled="operationType === 'view'" clearable
                             filterable
                             placeholder="请选择任职人" size="small" style="width: 100%;">
                <el-form-item :rules="[{ required: currentStep === 0, message: '请选择任职人', trigger: 'change' }]"
                  label="任职人:" prop="incumbentId">
                  <el-select v-model="form.incumbentId" :disabled="operationType === 'view'" clearable filterable
                    placeholder="请选择任职人" size="small" style="width: 100%;">
                    <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col v-if="currentStep === 1 || operationType === 'view'" :span="12">
                <el-form-item
                  :rules="[{ required: currentStep === 1, message: '请选择主管', trigger: 'blur' }]"
                  label="主管:"
                <el-form-item :rules="[{ required: currentStep === 1, message: '请选择主管', trigger: 'blur' }]" label="主管:"
                  prop="supervisorId">
                  <el-select v-model="form.supervisorId" :disabled="currentStep !== 1 || operationType === 'view'"
                             clearable filterable
                             placeholder="请选择主管" size="small" style="width: 100%;">
                    clearable filterable placeholder="请选择主管" size="small" style="width: 100%;">
                    <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                    </el-option>
                  </el-select>
@@ -122,8 +111,9 @@
      <span slot="footer" class="dialog-footer">
        <el-button v-if="currentStep !== 0 && currentStep !== 3" @click="submitForm('3reject')">驳回</el-button>
        <el-button v-if="currentStep === 0" @click="submitForm('2save')">保存</el-button>
        <el-button v-if="currentStep !== 3" type="primary"
                   @click="submitForm('1submit')">{{ currentStep === 0 ? '提交' : '通过' }}</el-button>
        <el-button v-if="currentStep !== 3" type="primary" @click="submitForm('1submit')">{{ currentStep === 0 ? '提交' :
          '通过'
          }}</el-button>
      </span>
    </el-dialog>
  </div>
@@ -136,8 +126,8 @@
  personJobResponsibilitiesSave,
  personJobResponsibilitiesSelect
} from "@/api/cnas/personal/personJobResponsibilities";
import {selectUserCondition} from "@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment";
import {mapGetters} from "vuex";
import { selectUserCondition } from "@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment";
import { mapGetters } from "vuex";
export default {
  data() {
@@ -212,7 +202,7 @@
        departmentId: this.search.userId,
        size: this.search.size,
        current: this.search.current,
      }: {
      } : {
        userName: this.userName,
        userId: this.search.userId,
        size: this.search.size,
@@ -330,10 +320,9 @@
    },
    // 下载岗位职责
    downLoadPost(row) {
      exportPersonJobResponsibilities({id:row.id}).then(res => {
        const blob = new Blob([res],{ type: 'application/octet-stream' });
        this.$download.saveAs(blob, row.incumbentName+'-岗位职责'+'.docx');
        this.$message.success('导出成功')
      exportPersonJobResponsibilities({ id: row.id }).then(res => {
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, row.incumbentName + '-岗位职责' + '.docx');
      })
    },
    // 删除岗位职责
@@ -343,7 +332,7 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        personJobResponsibilitiesDelete({id: row.id}).then(res => {
        personJobResponsibilitiesDelete({ id: row.id }).then(res => {
          if (res.code == 200) {
            this.$message.success('删除成功');
            this.getPostList(this.departId);
@@ -391,5 +380,4 @@
  },
};
</script>
<style scoped>
</style>
<style scoped></style>
src/views/CNAS/personnel/personnelInfo/tabs/personnel-information.vue
@@ -1,7 +1,7 @@
<template>
  <div>
    <div style="text-align: right;margin-bottom: 10px">
<!--       <el-button size="small" @click="$emit('goBackList')">返回</el-button>-->
      <!--       <el-button size="small" @click="$emit('goBackList')">返回</el-button>-->
      <el-button size="small" type="primary" @click="downPerson">下载档案</el-button>
      <el-button size="small" type="primary" @click="dialogVisible = true">人员分类</el-button>
      <el-button :loading="saveLoading" size="small" type="primary" @click="save">保存</el-button>
@@ -10,13 +10,13 @@
      <div style="display: flex;flex-direction: row;">
        <div style="width: 12em">
          <el-image :src="javaApi + '/img/' + form.pictureUrl" fit="fill"
                    style="width:100%;height: 300px;border: 1px solid #000;border-radius: 10px;margin-left: 6px;margin-top: 10px;">
            style="width:100%;height: 300px;border: 1px solid #000;border-radius: 10px;margin-left: 6px;margin-top: 10px;">
            <div slot="error" class="image-slot">
              <i class="el-icon-picture-outline" style="font-size: 40px;"></i>
            </div>
          </el-image>
          <el-image :src="javaApi + '/img/' + form.signatureUrl" fit="fill"
                    style="width:80%;height: 50px;border: 1px solid #000;border-radius: 10px;margin-left: 22px;margin-top: 20px;">
            style="width:80%;height: 50px;border: 1px solid #000;border-radius: 10px;margin-left: 22px;margin-top: 20px;">
            <div slot="error" class="image-slot">
              <i class="el-icon-picture-outline" style="font-size: 40px;"></i>
            </div>
@@ -61,7 +61,9 @@
              </el-col>
              <el-col :span="8">
                <el-form-item label="所属部门">
                  <el-cascader v-model="form.departLimsId" :options="department" :props="{ label: 'name', value: 'id',checkStrictly: true }"  filterable style="width: 100%;"></el-cascader>
                  <el-cascader v-model="form.departLimsId" :options="department"
                    :props="{ label: 'name', value: 'id', checkStrictly: true }" filterable
                    style="width: 100%;"></el-cascader>
                </el-form-item>
              </el-col>
            </el-row>
@@ -74,7 +76,7 @@
              <el-col :span="8">
                <el-form-item label="入集团时间">
                  <el-date-picker v-model="form.groupTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                                  style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                    style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -95,14 +97,14 @@
              <el-col :span="8">
                <el-form-item label="工作时间">
                  <el-date-picker v-model="form.workingTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                                  style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                    style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
              <el-col :span="8">
                <el-form-item label="合同到期时间">
                  <el-date-picker v-model="form.contractLifeTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                                  style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                    style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -123,8 +125,7 @@
              <el-col :span="8">
                <el-form-item label="出生日期">
                  <el-date-picker v-model="form.dateBirth" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                                  @change="getAge"
                                  style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                    @change="getAge" style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -147,8 +148,8 @@
              </el-col>
              <el-col :span="8">
                <el-form-item label="年龄">
                  <el-input-number v-model="form.age" :max="130" :min="1"
                                   controls-position="right" size="small" style="width: 99%;"></el-input-number>
                  <el-input-number v-model="form.age" :max="130" :min="1" controls-position="right" size="small"
                    style="width: 99%;"></el-input-number>
                </el-form-item>
              </el-col>
              <el-col :span="8">
@@ -163,9 +164,8 @@
            <el-row>
              <el-col :span="8">
                <el-form-item label="证件有效期">
                  <el-date-picker v-model="form.validityPeriod" format="yyyy-MM-dd" placeholder="选择日期"
                                  size="small" style="width: 99%;" type="date"
                                  value-format="yyyy-MM-dd HH:mm:ss">
                  <el-date-picker v-model="form.validityPeriod" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                    style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -188,9 +188,8 @@
              </el-col>
              <el-col :span="8">
                <el-form-item label="入党/团时间">
                  <el-date-picker v-model="form.dumplingTime" format="yyyy-MM-dd" placeholder="选择日期"
                                  size="small" style="width: 99%;" type="date"
                                  value-format="yyyy-MM-dd HH:mm:ss">
                  <el-date-picker v-model="form.dumplingTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                    style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -225,9 +224,8 @@
              </el-col>
              <el-col :span="8">
                <el-form-item label="毕业时间1">
                  <el-date-picker v-model="form.graduationTime1" format="yyyy-MM-dd" placeholder="选择日期"
                                  size="small" style="width: 99%;" type="date"
                                  value-format="yyyy-MM-dd HH:mm:ss">
                  <el-date-picker v-model="form.graduationTime1" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                    style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -245,9 +243,8 @@
              </el-col>
              <el-col :span="8">
                <el-form-item label="毕业时间2">
                  <el-date-picker v-model="form.graduationTime2" format="yyyy-MM-dd" placeholder="选择日期"
                                  size="small" style="width: 99%;" type="date"
                                  value-format="yyyy-MM-dd HH:mm:ss">
                  <el-date-picker v-model="form.graduationTime2" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                    style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -255,9 +252,8 @@
            <el-row>
              <el-col :span="8">
                <el-form-item label="登记时间">
                  <el-date-picker v-model="form.lastUpdateTime" format="yyyy-MM-dd" placeholder="选择日期"
                                  size="small" style="width: 99%;" type="date"
                                  value-format="yyyy-MM-dd HH:mm:ss">
                  <el-date-picker v-model="form.lastUpdateTime" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                    style="width: 99%;" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                  </el-date-picker>
                </el-form-item>
              </el-col>
@@ -272,20 +268,18 @@
                <el-form-item label="个人照片">
                  <el-input v-model="form.pictureUrl" disabled size="small">
                    <el-button v-if="form.pictureUrl" slot="append" icon="el-icon-delete-solid"
                               @click="deleteFile(form.pictureUrl, 'pictureUrl')"></el-button>
                      @click="deleteFile(form.pictureUrl, 'pictureUrl')"></el-button>
                  </el-input>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-upload ref="upload" :action="action"
                           :headers="uploadHeader"
                           :on-success="(response, file, fileList) => onSuccess(response, file, fileList, 'pictureUrl')"
                           :show-file-list="false"
                           style="float: left; margin: 0 10px 0 10px;">
                <el-upload ref="upload" :action="action" :headers="uploadHeader"
                  :on-success="(response, file, fileList) => onSuccess(response, file, fileList, 'pictureUrl')"
                  :show-file-list="false" style="float: left; margin: 0 10px 0 10px;">
                  <el-button slot="trigger" class="uploadFile" size="mini" type="primary">上传</el-button>
                </el-upload>
                <el-button v-if="form.pictureUrl" class="uploadFile" size="mini"
                           type="primary" @click="downloadFile(form.pictureUrl)">下载</el-button>
                <el-button v-if="form.pictureUrl" class="uploadFile" size="mini" type="primary"
                  @click="downloadFile(form.pictureUrl)">下载</el-button>
              </el-col>
            </el-row>
            <el-row>
@@ -293,60 +287,57 @@
                <el-form-item label="电子签名">
                  <el-input v-model="form.signatureUrl" disabled size="small">
                    <el-button v-if="form.signatureUrl" slot="append" icon="el-icon-delete-solid"
                               @click="deleteFile(form.signatureUrl, 'signatureUrl')"></el-button>
                      @click="deleteFile(form.signatureUrl, 'signatureUrl')"></el-button>
                  </el-input>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-upload ref="upload" :action="action"
                           :headers="uploadHeader"
                           :on-success="(response, file, fileList) => onSuccess(response, file, fileList, 'signatureUrl')"
                           :show-file-list="false"
                           style="float: left; margin: 0 10px 0 10px;">
                <el-upload ref="upload" :action="action" :headers="uploadHeader"
                  :on-success="(response, file, fileList) => onSuccess(response, file, fileList, 'signatureUrl')"
                  :show-file-list="false" style="float: left; margin: 0 10px 0 10px;">
                  <el-button slot="trigger" class="uploadFile" size="small" type="primary">上传</el-button>
                </el-upload>
                <el-button v-if="form.signatureUrl" class="uploadFile" size="small"
                           type="primary" @click="downloadFile(form.signatureUrl)">下载</el-button>
                <el-button v-if="form.signatureUrl" class="uploadFile" size="small" type="primary"
                  @click="downloadFile(form.signatureUrl)">下载</el-button>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="20">
                <el-form-item label="证书资料" >
                <el-form-item label="证书资料">
                </el-form-item>
              </el-col>
              <el-col :span="4">
                <el-button size="mini" style="float: right;margin-right: 25px" type="primary" @click="annexAdd(0)">新增</el-button>
                <el-button size="mini" style="float: right;margin-right: 25px" type="primary"
                  @click="annexAdd(0)">新增</el-button>
              </el-col>
            </el-row>
            <lims-table :tableData="annexList" :column="columnData2" style="width: 96%;margin-left: 34px"
                        height="200" :tableLoading="tableLoading2"></lims-table>
            <lims-table :tableData="annexList" :column="columnData2" style="width: 96%;margin-left: 34px" height="200"
              :tableLoading="tableLoading2"></lims-table>
            <el-row style="margin-top: 10px">
              <el-col :span="20">
                <el-form-item label="附件资料" >
                <el-form-item label="附件资料">
                </el-form-item>
              </el-col>
              <el-col :span="4">
                <el-upload ref='upload'
                           :action="fileAction"
                           :auto-upload="true" :data="{userId: clickNodeVal.userId}"
                           :before-upload="fileBeforeUpload"
                           :headers="uploadHeader" :on-error="onError"
                           :on-success="handleSuccessUp"
                           :show-file-list="false"
                           accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' style="width: 80px !important;">
                <el-upload ref='upload' :action="fileAction" :auto-upload="true" :data="{ userId: clickNodeVal.userId }"
                  :before-upload="fileBeforeUpload" :headers="uploadHeader" :on-error="onError"
                  :on-success="handleSuccessUp" :show-file-list="false"
                  accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
                  style="width: 80px !important;">
                  <el-button size="small" type="primary">附件上传</el-button>
                </el-upload>
              </el-col>
            </el-row>
            <lims-table :tableData="tableData" :column="columnData" style="width: 96%;float: right;"
                        height="200" :tableLoading="tableLoading"></lims-table>
            <lims-table :tableData="tableData" :column="columnData" style="width: 96%;float: right;" height="200"
              :tableLoading="tableLoading"></lims-table>
            <el-row style="margin-top: 10px">
              <el-col :span="20">
                <el-form-item label="工作经历" >
                <el-form-item label="工作经历">
                </el-form-item>
              </el-col>
              <el-col :span="4">
                <el-button size="mini" style="float: right;margin-right: 25px" type="primary" @click="annexAdd1('add')">新增</el-button>
                <el-button size="mini" style="float: right;margin-right: 25px" type="primary"
                  @click="annexAdd1('add')">新增</el-button>
              </el-col>
            </el-row>
            <el-table :data="tableData1" border height="200" style="width: 96%;float: right;" v-loading="tableLoading1">
@@ -356,8 +347,9 @@
              </el-table-column>
              <el-table-column align="center" label="操作">
                <template slot-scope="scope">
                  <el-button type="text" size="mini" @click="annexAdd1('edit',scope.row)">编辑</el-button>
                  <el-button type="text" size="mini" @click="deleteAnnex1(scope.row)" style="color: #f56c6c">删除</el-button>
                  <el-button type="text" size="mini" @click="annexAdd1('edit', scope.row)">编辑</el-button>
                  <el-button type="text" size="mini" @click="deleteAnnex1(scope.row)"
                    style="color: #f56c6c">删除</el-button>
                </template>
              </el-table-column>
            </el-table>
@@ -374,8 +366,7 @@
          </el-col>
          <el-col :span="20" style="text-align: left;">
            <el-checkbox-group v-model="checkList">
              <el-checkbox v-for="v in dict.type.personnl_type" :key="v.value"
                           :label="v.value"></el-checkbox>
              <el-checkbox v-for="v in dict.type.personnl_type" :key="v.value" :label="v.value"></el-checkbox>
            </el-checkbox-group>
          </el-col>
        </el-row>
@@ -387,7 +378,8 @@
    </el-dialog>
    <!-- 新增附件资料 -->
    <el-dialog :before-close="handleClose" :title="title" :visible.sync="dialogVisible1" width="40%" @open="getComparisonList">
    <el-dialog :before-close="handleClose" :title="title" :visible.sync="dialogVisible1" width="40%"
      @open="getComparisonList">
      <el-form ref="annex" :model="annex" :rules="rules" label-width="100px">
        <el-row>
          <el-col :span="16">
@@ -414,9 +406,9 @@
          <el-col :span="16">
            <el-form-item label="有效期" prop="periodValidity">
              <el-input v-model="annex.periodValidity" clearable size="small"></el-input>
<!--              <el-date-picker v-model="annex.periodValidity" format="yyyy-MM-dd" placeholder="选择日期" size="small"-->
<!--                              style="width: 99%;" type="date" value-format="yyyy-MM-dd">-->
<!--              </el-date-picker>-->
              <!--              <el-date-picker v-model="annex.periodValidity" format="yyyy-MM-dd" placeholder="选择日期" size="small"-->
              <!--                              style="width: 99%;" type="date" value-format="yyyy-MM-dd">-->
              <!--              </el-date-picker>-->
            </el-form-item>
          </el-col>
        </el-row>
@@ -438,14 +430,11 @@
        <el-row style="margin-top: 15px">
          <el-col :span="16">
            <el-form-item label="文件">
              <el-upload
                :action="action"
                :before-upload="beforeAvatarUpload"
                :headers="uploadHeader"
                :on-success="(response,file,fileList) => onSuccess(response, file, fileList, 'fileName')"
              <el-upload :action="action" :before-upload="beforeAvatarUpload" :headers="uploadHeader"
                :on-success="(response, file, fileList) => onSuccess(response, file, fileList, 'fileName')"
                :show-file-list="false">
                <span v-if="annex.fileName">{{annex.fileName}}</span>
<!--                <img v-if="imageUrl" :src="imageUrl" class="avatar">-->
                <span v-if="annex.fileName">{{ annex.fileName }}</span>
                <!--                <img v-if="imageUrl" :src="imageUrl" class="avatar">-->
                <i v-else class="el-icon-upload avatar-uploader-icon"></i>
              </el-upload>
            </el-form-item>
@@ -463,7 +452,8 @@
        <el-row>
          <el-col :span="16">
            <el-form-item label="工作经历" prop="idNumber">
              <el-input type="textarea" v-model="annex2.workExperience" clearable size="small" style="width: 100%;"></el-input>
              <el-input type="textarea" v-model="annex2.workExperience" clearable size="small"
                style="width: 100%;"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
@@ -549,23 +539,23 @@
          label: '证件号',
          prop: 'idNumber',
          minWidth: '150px'
        },{
        }, {
          label: '发证单位',
          prop: 'issueUnit',
          minWidth: '150px'
        },{
        }, {
          label: '文件名称',
          prop: 'fileName',
          minWidth: '200px'
        },{
        }, {
          label: '级别',
          prop: 'level',
          minWidth: '150px'
        },{
        }, {
          label: '有效期',
          prop: 'periodValidity',
          minWidth: '150px'
        },{
        }, {
          label: '添加时间',
          prop: 'createTime',
          minWidth: '150px'
@@ -587,7 +577,7 @@
              name: '编辑',
              type: 'text',
              clickFun: (row) => {
                this.annexAdd(1,row)
                this.annexAdd(1, row)
              }
            },
            {
@@ -680,7 +670,7 @@
      isSave: false,
    }
  },
  components: {limsTable, fileDownload},
  components: { limsTable, fileDownload },
  created() {
    this.init()
    this.searchTableList()
@@ -696,11 +686,10 @@
  },
  methods: {
    // 下载档案
    downPerson(){
      exportPersonBasicInfoById({id: this.clickNodeVal.userId}).then(res => {
        const blob = new Blob([res],{ type: 'application/msword' });
    downPerson() {
      exportPersonBasicInfoById({ id: this.clickNodeVal.userId }).then(res => {
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '人员档案.docx');
        this.$message.success('导出成功')
      })
    },
    // 上传验证
@@ -715,11 +704,11 @@
        return Promise.reject(flag); //正确的终止
      }
    },
    onError(err, file, fileList,type) {
    onError(err, file, fileList, type) {
      this.$message.error('上传失败')
      this.$refs.upload.clearFiles()
    },
    handleSuccessUp(response, ) {
    handleSuccessUp(response,) {
      this.upLoading = false;
      if (response.code == 200) {
        this.$message.success('上传成功');
@@ -729,9 +718,9 @@
      }
    },
    // 查询附件列表
    searchTableList () {
    searchTableList() {
      this.tableLoading = true
      getBasicInfoFileList({userId: this.clickNodeVal.userId}).then(res => {
      getBasicInfoFileList({ userId: this.clickNodeVal.userId }).then(res => {
        this.tableLoading = false
        this.tableData = res.data
      }).catch(err => {
@@ -740,13 +729,13 @@
      })
    },
    // 下载
    upload (row) {
    upload(row) {
      let url = '';
      if(row.type==1){
        url = this.javaApi+'/img/'+row.fileUrl
        fileDownload.downloadIamge(url,row.fileName)
      }else{
        url = this.javaApi+'/word/'+row.fileUrl
      if (row.type == 1) {
        url = this.javaApi + '/img/' + row.fileUrl
        fileDownload.downloadIamge(url, row.fileName)
      } else {
        url = this.javaApi + '/word/' + row.fileUrl
        const link = document.createElement('a');
        link.href = url;
        link.download = row.fileName;
@@ -754,14 +743,14 @@
      }
    },
    // 删除
    delete (row) {
    delete(row) {
      this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        delBasicInfoFileList({basicInfoFileId: row.basicInfoFileId}).then(res => {
        delBasicInfoFileList({ basicInfoFileId: row.basicInfoFileId }).then(res => {
          this.tableLoading = false
          this.$message.success('删除成功')
          this.searchTableList();
@@ -776,7 +765,7 @@
      })
    },
    // 打开工作经历探况
    annexAdd1 (type, row) {
    annexAdd1(type, row) {
      this.operationType = type
      if (type === 'edit') {
        this.basicInfoWorkId = row.basicInfoWorkId
@@ -788,7 +777,7 @@
      this.dialogVisible2 = true
    },
    // 提交工作经历
    submitForm2 () {
    submitForm2() {
      const params = {
        workExperience: this.annex2.workExperience,
        userId: this.clickNodeVal.userId,
@@ -818,19 +807,19 @@
      }
    },
    // 关闭工作经历弹框
    handleClose2 () {
    handleClose2() {
      this.dialogVisible2 = false
      this.annex2.workExperience = ''
    },
    // 删除工作经历
    deleteAnnex1 (row) {
    deleteAnnex1(row) {
      this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading1 = true
        delBasicInfoWorkList({basicInfoWorkId: row.basicInfoWorkId}).then(res => {
        delBasicInfoWorkList({ basicInfoWorkId: row.basicInfoWorkId }).then(res => {
          this.tableLoading1 = false
          this.$message.success('删除成功')
          this.searchTableList2();
@@ -845,9 +834,9 @@
      });
    },
    // 查询工作经历列表
    searchTableList2 () {
    searchTableList2() {
      this.tableLoading1 = true
      getBasicInfoWorkList({userId: this.clickNodeVal.userId}).then(res => {
      getBasicInfoWorkList({ userId: this.clickNodeVal.userId }).then(res => {
        this.tableLoading1 = false
        this.tableData1 = res.data
      }).catch(err => {
@@ -855,15 +844,15 @@
        console.log('err---', err);
      })
    },
    annexAdd(type,row) {
      if(type === 1) {
    annexAdd(type, row) {
      if (type === 1) {
        this.title = '编辑附件资料'
        this.addOrupdate = 1
        getAnnex({id: row.id}).then(res => {
        getAnnex({ id: row.id }).then(res => {
          this.annex = res.data
          this.imageUrl = this.javaApi + '/img/' + res.data.fileName
        })
      }else {
      } else {
        this.title = '新增附件资料'
        this.addOrupdate = 2
      }
@@ -879,15 +868,15 @@
      })
    },
    addAnnex() {
      if(this.annex.fileName == "" || this.annex.fileName == null || this.annex.fileName == undefined) {
      if (this.annex.fileName == "" || this.annex.fileName == null || this.annex.fileName == undefined) {
        this.$message.error("请上传文件")
        return
      }
      this.annex.userId = this.clickNodeVal.userId
      if(this.addOrupdate === 1) {
      if (this.addOrupdate === 1) {
        updateAnnex(this.annex).then(res => {
          if(res.code == 200) {
            getAnnexByUserId({userId: this.clickNodeVal.userId}).then(res => {
          if (res.code == 200) {
            getAnnexByUserId({ userId: this.clickNodeVal.userId }).then(res => {
              this.imageUrl = ''
              this.resetForm('annex')
              this.annexList = res.data
@@ -896,11 +885,11 @@
            })
          }
        })
      }else {
      } else {
        this.annex.id = null
        addAnnex(this.annex).then(res => {
          if(res.code == 200) {
            getAnnexByUserId({userId: this.clickNodeVal.userId}).then(res => {
          if (res.code == 200) {
            getAnnexByUserId({ userId: this.clickNodeVal.userId }).then(res => {
              this.imageUrl = ''
              this.resetForm('annex')
              this.annexList = res.data
@@ -917,7 +906,7 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteAnnex({id: row.id}).then(res => {
        deleteAnnex({ id: row.id }).then(res => {
          this.$message.success('删除成功!')
          this.annexList = this.annexList.filter(item => item.id != row.id)
        })
@@ -949,7 +938,7 @@
      }
    },
    async onSuccess(response, file, fileList, entityVal) {
      if(entityVal == 'fileName') {
      if (entityVal == 'fileName') {
        this.annex.fileName = response.data
      }
      // 在保存赋值新文件
@@ -967,7 +956,7 @@
      }
    },
    getUserBasisInfo(userId) {
      getCNASPersonnelInfo({userId: userId}).then(res => {
      getCNASPersonnelInfo({ userId: userId }).then(res => {
        this.form = res.data.PersonBasicInfoDto
        this.department = res.data.department
        this.annexList = res.data.annexList
@@ -977,10 +966,10 @@
    async save() {
      this.saveLoading = true
      this.form.userId = this.clickNodeVal.userId
      if(Array.isArray(this.form.departLimsId)) {
        if(this.form.departLimsId.length > 0) {
      if (Array.isArray(this.form.departLimsId)) {
        if (this.form.departLimsId.length > 0) {
          this.form.departLimsId = this.form.departLimsId.join(',').trim() + ','
        }else {
        } else {
          this.form.departLimsId = ''
        }
      }
@@ -999,10 +988,10 @@
    },
    clickPersonnelClassificationSure() {
      this.dialogVisible = false
      this.form.personnelClassification = this.checkList.filter(m=>m).join(',')
      this.form.personnelClassification = this.checkList.filter(m => m).join(',')
    },
    async deleteFile(fileName, entityVal) {
      await deleteCNASFile({fileName: fileName}).then(res => {
      await deleteCNASFile({ fileName: fileName }).then(res => {
        this.$message.success('删除成功!')
        this.$set(this.form, entityVal, null)
        let index = this.successFileList.indexOf(fileName)
@@ -1033,7 +1022,7 @@
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    getAge (val) {
    getAge(val) {
      this.form.age = this.calculateAge(val)
    },
    calculateAge(birthDateString) {
@@ -1080,36 +1069,39 @@
  height: 12px;
  /* 设置滚动条宽度 */
}
>>>.el-form-item {
    margin-bottom: 3px;
  margin-bottom: 3px;
}
.el-input {
    border-radius: 15px;
  border-radius: 15px;
}
.el-icon-picture-outline {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.uploadFile {
    margin-top: 2px;
    float: left;
  margin-top: 2px;
  float: left;
}
  .avatar-uploader-icon {
    font-size: 28px;
    color: #0f8bf1;
    width: 178px;
    height: 50px;
    text-align: center;
    border: 1px solid #d9d9d9;
  }
  .avatar {
    width: 178px;
    height: 178px;
    display: block;
  }
.avatar-uploader-icon {
  font-size: 28px;
  color: #0f8bf1;
  width: 178px;
  height: 50px;
  text-align: center;
  border: 1px solid #d9d9d9;
}
.avatar {
  width: 178px;
  height: 178px;
  display: block;
}
</style>
src/views/CNAS/personnel/personnelInfo/tabs/personnel-list.vue
@@ -11,11 +11,7 @@
        </el-form-item>
      </el-form>
      <div>
        <el-button
          :loading="outLoading"
          size="small"
          type="primary"
          @click="handleDown">导出</el-button>
        <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">导出</el-button>
        <el-button size="small" type="primary" @click="openSelectUserDia">新建</el-button>
      </div>
    </div>
@@ -40,18 +36,10 @@
          </template>
        </el-table-column>
      </el-table>
      <el-pagination
        :current-page="1"
        :current-page.sync="page.current"
        :page-size="page.size"
        :page-sizes="[10, 20, 30, 50, 100]"
        :total="page.total"
        background
        layout="->,total, sizes, prev, pager, next, jumper"
        style="margin-top: 10px"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
      >
      <el-pagination :current-page="1" :current-page.sync="page.current" :page-size="page.size"
        :page-sizes="[10, 20, 30, 50, 100]" :total="page.total" background
        layout="->,total, sizes, prev, pager, next, jumper" style="margin-top: 10px" @size-change="handleSizeChange"
        @current-change="handleCurrentChange">
      </el-pagination>
    </div>
    <el-dialog :visible.sync="selectUserDia" title="选择用户" width="70%">
@@ -59,22 +47,15 @@
        <div class="search_thing">
          <div class="search_label">用户名:</div>
          <div class="search_input">
            <el-input
              v-model="addUserTableInfo.name"
              clearable
              placeholder="请输入"
              size="small"
              @change="selectUserList"
            ></el-input>
            <el-input v-model="addUserTableInfo.name" clearable placeholder="请输入" size="small"
              @change="selectUserList"></el-input>
          </div>
          <el-button size="small" style="margin-left: 10px" type="primary" @click="selectUserList">查询</el-button>
        </div>
      </div>
      <div v-if="selectUserDia" class="body" style="height: 60vh;">
        <lims-table :tableData="tableData1" :column="column1"
                    :isSelection="true" :handleSelectionChange="selectMethod"
                    :height="'calc(100vh - 290px)'"
                    :tableLoading="tableLoading1"></lims-table>
        <lims-table :tableData="tableData1" :column="column1" :isSelection="true" :handleSelectionChange="selectMethod"
          :height="'calc(100vh - 290px)'" :tableLoading="tableLoading1"></lims-table>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="selectUserDia = false">取 消</el-button>
@@ -85,7 +66,7 @@
</template>
<script>
import {selectUserCondition} from "@/api/business/inspectionTask";
import { selectUserCondition } from "@/api/business/inspectionTask";
import limsTable from "@/components/Table/lims-table.vue";
import {
  basicInformationOfPersonnelSelectPage,
@@ -94,12 +75,12 @@
  upUserDepardLimsId
} from "@/api/cnas/personal/personalList";
import store from "@/store";
import {Message} from "element-ui";
import { Message } from "element-ui";
export default {
  name: 'PersonnelList',
  // import 引入的组件需要注入到对象中才能使用
  components: {limsTable},
  components: { limsTable },
  props: {
    departId: {
      type: Number,
@@ -129,9 +110,9 @@
      tableData1: [],
      tableLoading1: false,
      column1: [
        {label: '姓名', prop: 'name'},
        {label: '账号', prop: 'account'},
        {label: '角色', prop: 'roleName'},
        { label: '姓名', prop: 'name' },
        { label: '账号', prop: 'account' },
        { label: '角色', prop: 'roleName' },
        {
          dataType: 'tag',
          label: '状态',
@@ -151,12 +132,12 @@
            }
          }
        },
        {label: '电话号码', prop: 'phone'},
        { label: '电话号码', prop: 'phone' },
      ],
      page1: {
        total:0,
        size:10,
        current:1
        total: 0,
        size: 10,
        current: 1
      },
      selectUserDia: false, // 添加人员弹框
      entity: {
@@ -215,7 +196,7 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delUserDepardLimsId({id: row.userId}).then(res => {
        delUserDepardLimsId({ id: row.userId }).then(res => {
          this.$message.success('删除成功');
          this.refreshTable();
          this.$emit('refreshTree')
@@ -234,12 +215,12 @@
      this.refreshTable();
    },
    // 打开新增人员弹框
    openSelectUserDia () {
    openSelectUserDia() {
      this.selectUserDia = true;
      this.selectUserList()
    },
    // 查询新增弹框的人员列表
    selectUserList () {
    selectUserList() {
      this.tableLoading1 = true
      selectUserCondition().then(res => {
        this.tableLoading1 = false
@@ -288,11 +269,10 @@
      this.outLoading = true;
      let entity = this.HaveJson(this.entity)
      delete entity.orderBy;
      exportPersonBasicInfo({...entity}).then(res => {
      exportPersonBasicInfo({ ...entity }).then(res => {
        this.outLoading = false;
        const blob = new Blob([res], {type: 'application/octet-stream'});
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '人员信息.xlsx')
        this.$message.success('导出成功')
      })
    },
  },
src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue
@@ -18,10 +18,8 @@
          <el-button size="small" type="primary" @click="uploadDia = true, getUserList()">导入</el-button>
        </div>
      </div>
      <lims-table :tableData="yearPlanTableData" :column="yearPlanColumn"
                  :currentChange="currentChange"
                  @pagination="pagination" height="40vh"
                  :page="page" :tableLoading="yearLoading"></lims-table>
      <lims-table :tableData="yearPlanTableData" :column="yearPlanColumn" :currentChange="currentChange"
        @pagination="pagination" height="40vh" :page="page" :tableLoading="yearLoading"></lims-table>
    </div>
    <div v-if="!editPlanShow" class="table">
      <div>
@@ -31,37 +29,32 @@
        <div style="display: flex;justify-content: space-between;">
          <el-form :model="inDetailForm" ref="inDetailForm" size="small" :inline="true">
            <el-form-item label="培训讲师">
              <el-input v-model="inDetailForm.trainingLecturerName" class="search" clearable placeholder="请输入" size="small"></el-input>
              <el-input v-model="inDetailForm.trainingLecturerName" class="search" clearable placeholder="请输入"
                size="small"></el-input>
            </el-form-item>
            <el-form-item label="培训日期">
              <el-date-picker v-model="inDetailForm.trainingDate" clearable
                              format="yyyy-MM-dd" placeholder="选择日期" size="small"
                              type="date" value-format="yyyy-MM-dd"></el-date-picker>
              <el-date-picker v-model="inDetailForm.trainingDate" clearable format="yyyy-MM-dd" placeholder="选择日期"
                size="small" type="date" value-format="yyyy-MM-dd"></el-date-picker>
            </el-form-item>
            <el-form-item>
              <el-button size="small" type="primary" @click="searchTable">查 询</el-button>
            </el-form-item>
          </el-form>
          <div>
            <el-button v-if="isDepartment && currentChangeRow && isOperation" size="small" @click="batchDelete">批量删除</el-button>
            <el-button v-if="isDepartment && currentChangeRow && isOperation" size="small" type="primary" @click="addTrainingPlan('add')">新增</el-button>
            <el-button v-if="isDepartment && currentChangeRow && isOperation" size="small"
              @click="batchDelete">批量删除</el-button>
            <el-button v-if="isDepartment && currentChangeRow && isOperation" size="small" type="primary"
              @click="addTrainingPlan('add')">新增</el-button>
          </div>
        </div>
        <lims-table :tableData="inDetailPlanTableData" :column="inDetailPlanColumn"
                    :height="isDepartment ? '40vh' : '62vh' "
                    :isSelection="true" :handleSelectionChange="handleSelectionChange"
                    @pagination="pagination1"
                    :page="inDetailPagination" :tableLoading="yearDetailLoading"></lims-table>
          :height="isDepartment ? '40vh' : '62vh'" :isSelection="true" :handleSelectionChange="handleSelectionChange"
          @pagination="pagination1" :page="inDetailPagination" :tableLoading="yearDetailLoading"></lims-table>
      </div>
    </div>
    <Add ref="addPlan" :currentChangeRow="currentChangeRow" @search="getInDetailPlan(currentRowId, departId)"></Add>
    <Edit
      v-if="editPlanShow"
      ref="editPlan"
      :currentRow="currentRow"
      @del="getInDetailPlan(currentRowId, departId)"
      @goBack="goBack"
    ></Edit>
    <Edit v-if="editPlanShow" ref="editPlan" :currentRow="currentRow" @del="getInDetailPlan(currentRowId, departId)"
      @goBack="goBack"></Edit>
    <el-dialog :visible.sync="reviewDialog" title="审核" width="30%" @close="auditRemarks = ''">
      <span>
        审核备注:
@@ -69,8 +62,7 @@
      </span>
      <span style="margin-top: 10px;display: inline-block">
        批准人:
        <el-select v-model="approverId" clearable
                   filterable size="small" style="width: 70%;">
        <el-select v-model="approverId" clearable filterable size="small" style="width: 70%;">
          <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
@@ -93,29 +85,22 @@
    <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px">
      <div style="display: flex;align-items: center;">
        <div style="width: 70px">年份:</div>
        <el-date-picker
          v-model="planYear"
          type="year"
          value-format="yyyy"
          clearable
          size="small"
          format="yyyy"
        <el-date-picker v-model="planYear" type="year" value-format="yyyy" clearable size="small" format="yyyy"
          placeholder="选择年">
        </el-date-picker>
      </div>
      <div style="display: flex;align-items: center;margin: 10px 0">
        <div style="width: 70px">审核人:</div>
        <el-select v-model="reviewerId" clearable
                   filterable size="small" style="width: 50%;">
        <el-select v-model="reviewerId" clearable filterable size="small" style="width: 50%;">
          <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
      </div>
      <div style="margin: 0 auto;">
        <el-upload ref="upload" :action="javaApi + '/personTraining/personTrainingImport' + '?planYear=' + planYear + '&reviewerId=' + reviewerId"
                   :auto-upload="false" :before-upload="beforeUpload" :file-list="fileList" :headers="uploadHeader"
                   :limit="1" :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag
                   name="file">
        <el-upload ref="upload"
          :action="javaApi + '/personTraining/personTrainingImport' + '?planYear=' + planYear + '&reviewerId=' + reviewerId"
          :auto-upload="false" :before-upload="beforeUpload" :file-list="fileList" :headers="uploadHeader" :limit="1"
          :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag name="file">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>
@@ -124,7 +109,7 @@
        <el-button @click="uploadDia = false">取 消</el-button>
        <el-button :loading="uploading" type="primary" @click="submitUpload()">上 传</el-button>
      </span>
    </el-dialog >
    </el-dialog>
    <view-record v-if="ViewRecord" ref="ViewRecord"></view-record>
  </div>
</template>
@@ -134,18 +119,18 @@
import Edit from '../components/Edit.vue';
import ViewRecord from "../components/ViewRecord.vue";
import limsTable from "@/components/Table/lims-table.vue";
import {mapGetters} from "vuex";
import { mapGetters } from "vuex";
import {
  approveAnnualPersonnelTraining, deleteAnnualPlanDetailTable, exportPersonTraining, exportPersonTrainingRecord,
  personTraining,
  personTrainingDelete,
  queryTheAnnualPlanDetailsTable, reviewAnnualPersonnelTraining
} from "@/api/cnas/personal/personalTraining";
import {selectUserCondition} from "@/api/system/user";
import { selectUserCondition } from "@/api/system/user";
export default {
  name: 'PersonnelTraining',
  components: {limsTable, ViewRecord, Add, Edit },
  components: { limsTable, ViewRecord, Add, Edit },
  props: {
    departId: {
      type: Number,
@@ -184,7 +169,7 @@
          label: '创建时间',
          width: '160px',
          prop: 'createTime'
        },{
        }, {
          label: '编制人',
          prop: 'compilerName'
        }, {
@@ -251,7 +236,7 @@
          formatType: (params) => {
            if (params == 1) {
              return 'success';
            } else if (params == 2)  {
            } else if (params == 2) {
              return 'danger';
            } else {
              return null
@@ -271,7 +256,7 @@
              name: '导出',
              type: 'text',
              disabled: (row) => {
                if(row.approvalStatus === 1 && row.reviewerStatus === 1) {
                if (row.approvalStatus === 1 && row.reviewerStatus === 1) {
                  return false;
                } else {
                  return true;
@@ -285,7 +270,7 @@
              name: '审核',
              type: 'text',
              disabled: (row) => {
                if(row.reviewerStatus === 1 || this.userId != row.reviewerId) {
                if (row.reviewerStatus === 1 || this.userId != row.reviewerId) {
                  return true;
                } else {
                  return false;
@@ -299,7 +284,7 @@
              name: '批准',
              type: 'text',
              disabled: (row) => {
                if(row.approvalStatus === 1 || this.userId != row.approverId || row.reviewerStatus != 1) {
                if (row.approvalStatus === 1 || this.userId != row.approverId || row.reviewerStatus != 1) {
                  return true;
                } else {
                  return false;
@@ -317,7 +302,7 @@
                this.deleteFun(row.id);
              },
              disabled: (row) => {
                if(row.reviewerStatus === 1) {
                if (row.reviewerStatus === 1) {
                  return true;
                } else {
                  return false;
@@ -328,7 +313,7 @@
        }],
      inDetailPlanTableData: [], // 年度计划明细表表数据
      inDetailPlanColumn: [
       {
        {
          label: '培训目标',
          prop: 'trainingObjectives',
          width: '100px',
@@ -442,15 +427,15 @@
          ]
        }],
      page: {
        total:0,
        size:10,
        current:1,
        total: 0,
        size: 10,
        current: 1,
        compilerName: ""
      },
      inDetailPagination: {
        total:0,
        size:10,
        current:1,
        total: 0,
        size: 10,
        current: 1,
      },
      editPlanShow: false,
      currentRow: {},
@@ -479,19 +464,19 @@
    }
  },
  methods: {
    searchTable () {
    searchTable() {
      this.getInDetailPlan(this.currentRowId)
    },
    // 查询-年度计划表
    getYearPlanList(userId) {
      this.yearLoading = true
      const params = this.isDepartment ?
      {
        departmentId: userId,
        size: this.page.size,
        current: this.page.current,
        compilerName: this.page.compilerName,
      }: {
        {
          departmentId: userId,
          size: this.page.size,
          current: this.page.current,
          compilerName: this.page.compilerName,
        } : {
          userId: userId,
          size: this.page.size,
          current: this.page.current,
@@ -509,17 +494,17 @@
        this.yearLoading = false
      })
    },
    pagination (page) {
    pagination(page) {
      this.page.size = page.limit
      this.getYearPlanList()
    },
    currentChange (row) {
    currentChange(row) {
      const now = new Date();
      const currentYear = now.getFullYear();
      if (row) {
        this.currentChangeRow = row
        this.currentRowId = row.id
        if (row.createTime.slice(0,4) == currentYear) {
        if (row.createTime.slice(0, 4) == currentYear) {
          this.isOperation = true;
        } else {
          this.isOperation = false;
@@ -527,20 +512,20 @@
        this.getInDetailPlan(row.id)
      }
    },
    getInDetailPlan (id) {
    getInDetailPlan(id) {
      if (this.inDetailForm.trainingDate === null) {
        this.inDetailForm.trainingDate = ''
      }
      const userId = this.isDepartment ? '' : this.departId
      const params =
        {
          userId: userId,
          size: this.inDetailPagination.pageSize,
          current: this.inDetailPagination.current,
          id: id,
          trainingLecturerName: this.inDetailForm.trainingLecturerName,
          trainingDate: this.inDetailForm.trainingDate,
        }
      {
        userId: userId,
        size: this.inDetailPagination.pageSize,
        current: this.inDetailPagination.current,
        id: id,
        trainingLecturerName: this.inDetailForm.trainingLecturerName,
        trainingDate: this.inDetailForm.trainingDate,
      }
      this.yearDetailLoading = true
      queryTheAnnualPlanDetailsTable(params).then(res => {
        this.yearDetailLoading = false
@@ -550,7 +535,7 @@
        this.yearDetailLoading = false
      })
    },
    pagination1 (page) {
    pagination1(page) {
      this.inDetailPagination.size = page.limit
      this.getInDetailPlan(this.currentRowId)
    },
@@ -569,7 +554,7 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        personTrainingDelete({id: id}).then(res => {
        personTrainingDelete({ id: id }).then(res => {
          this.$message.success('删除成功!');
          this.getYearPlanList(this.departId);
        });
@@ -587,7 +572,7 @@
      this.getUserList()
    },
    // 提交审核
    handleReview (status) {
    handleReview(status) {
      const personTrainingUpdateDto = {
        id: this.currentRowId,
        auditRemarks: this.auditRemarks,
@@ -612,7 +597,7 @@
      this.approvalDialog = true
    },
    // 提交批准
    handleApproval (status) {
    handleApproval(status) {
      const personTrainingUpdateDto = {
        id: this.currentRowId,
        approvalRemarks: this.approvalRemarks,
@@ -632,11 +617,10 @@
    },
    // 年度计划表-下载
    downLoadPost(row) {
      exportPersonTraining({id: row.id}).then(res => {
      exportPersonTraining({ id: row.id }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, row.fileName + '.docx')
        this.$message.success('导出成功')
      })
    },
    // 年度计划-导入
@@ -684,7 +668,7 @@
      this.editPlanShow = false;
      this.getInDetailPlan(this.currentRowId)
    },
    viewRecord (row) {
    viewRecord(row) {
      this.ViewRecord = true
      this.$nextTick(() => {
        this.$refs.ViewRecord.openDia(row)
@@ -692,11 +676,10 @@
    },
    // 年度计划明细表-下载
    downLoadInDetail(row) {
      exportPersonTrainingRecord({id: row.id}).then(res => {
      exportPersonTrainingRecord({ id: row.id }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '人员培训与考核记录.docx')
        this.$message.success('导出成功')
      })
    },
    // 年度计划明细表-多选
@@ -704,7 +687,7 @@
      this.multipleSelection = list
    },
    // 年度明细表-删除
    batchDelete () {
    batchDelete() {
      if (this.multipleSelection.length > 0) {
        let ids = []
        this.multipleSelection.forEach(item => {
@@ -715,7 +698,7 @@
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          deleteAnnualPlanDetailTable({ids: ids.join(',')}).then(res => {
          deleteAnnualPlanDetailTable({ ids: ids.join(',') }).then(res => {
            if (res.code == 200) {
              this.$message.success('删除成功');
              this.getInDetailPlan(this.currentRowId);
@@ -776,10 +759,12 @@
  overflow: auto;
  justify-content: space-between;
}
.search {
  width: 150px;
  margin: 0 16px;
}
.title {
  position: relative;
  font-size: 16px;
src/views/CNAS/personnel/personnelInfo/tabs/reward-punishment-record.vue
@@ -5,23 +5,13 @@
      <div style="display: flex;justify-content: space-between;">
        <el-form :model="search" ref="page" size="small" :inline="true">
          <el-form-item label="姓名">
            <el-input v-model="search.userName" clearable placeholder="请输入关键字" size="small" style="width: 20vh;"></el-input>
            <el-input v-model="search.userName" clearable placeholder="请输入关键字" size="small"
              style="width: 20vh;"></el-input>
          </el-form-item>
          <el-form-item label="奖惩日期">
            <el-date-picker
              v-model="search.searchTimeList"
              :picker-options="pickerOptions"
              align="right"
              clearable
              end-placeholder="结束日期"
              format="yyyy-MM-dd"
              range-separator="至"
              size="small"
              start-placeholder="开始日期"
              style="width: 100%"
              type="daterange"
              unlink-panels
              value-format="yyyy-MM-dd 00:00:00">
            <el-date-picker v-model="search.searchTimeList" :picker-options="pickerOptions" align="right" clearable
              end-placeholder="结束日期" format="yyyy-MM-dd" range-separator="至" size="small" start-placeholder="开始日期"
              style="width: 100%" type="daterange" unlink-panels value-format="yyyy-MM-dd 00:00:00">
            </el-date-picker>
          </el-form-item>
          <el-form-item>
@@ -64,20 +54,12 @@
          </template>
        </el-table-column>
      </el-table>
      <el-pagination :current-page="1" :page-size="search.size"
                     :page-sizes="[10, 20, 30, 50, 100]"
                     :total="search.total" layout="->,total, sizes, prev, pager, next, jumper"
                     background
                     style="margin-top: 10px"
                     @size-change="handleSizeChange"
                     @current-change="handleCurrentChange">
      <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
        :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" background style="margin-top: 10px"
        @size-change="handleSizeChange" @current-change="handleCurrentChange">
      </el-pagination>
    </div>
    <el-dialog
      :visible.sync="dialogVisible"
      title="奖惩记录"
      width="50%"
      @open="getUserList">
    <el-dialog :visible.sync="dialogVisible" title="奖惩记录" width="50%" @open="getUserList">
      <div style="height: 40vh">
        <el-form ref="form" :model="form" :rules="rules" label-width="120px">
          <el-col :span="12">
@@ -88,7 +70,7 @@
          <el-col :span="12">
            <el-form-item label="员工姓名" prop="userId">
              <el-select v-model="form.userId" placeholder="请选择" size="small" style="width: 100%" value-key="id"
                         @change="selectUserChange" :disabled="!isDepartment">
                @change="selectUserChange" :disabled="!isDepartment">
                <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                </el-option>
              </el-select>
@@ -106,14 +88,8 @@
          </el-col>
          <el-col :span="12">
            <el-form-item label="奖惩时间" prop="rewardPunishTime">
              <el-date-picker
                v-model="form.rewardPunishTime"
                format="yyyy-MM-dd HH:mm:ss"
                placeholder="选择日期"
                size="small"
                style="width: 100%"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss">
              <el-date-picker v-model="form.rewardPunishTime" format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期"
                size="small" style="width: 100%" type="datetime" value-format="yyyy-MM-dd HH:mm:ss">
              </el-date-picker>
            </el-form-item>
          </el-col>
@@ -143,8 +119,8 @@
  rewardPunishmentExport,
  rewardPunishmentPage
} from "@/api/cnas/personal/personRewardPunishmentRecord";
import {selectUserCondition} from "@/api/system/user";
import {delCustomById} from "@/api/system/customer";
import { selectUserCondition } from "@/api/system/user";
import { delCustomById } from "@/api/system/customer";
export default {
  props: {
@@ -235,12 +211,12 @@
    async getPersonnelTraining() {
      const params = {
        userId: this.isDepartment ? '' : this.departId,
          departmentId: this.isDepartment ? this.departId : '',
          current: this.search.curent,
          size: this.search.size,
          userName: this.search.userName,
          startTime: this.search.searchTimeList && this.search.searchTimeList[0],
          endTime: this.search.searchTimeList && this.search.searchTimeList[1],
        departmentId: this.isDepartment ? this.departId : '',
        current: this.search.curent,
        size: this.search.size,
        userName: this.search.userName,
        startTime: this.search.searchTimeList && this.search.searchTimeList[0],
        endTime: this.search.searchTimeList && this.search.searchTimeList[1],
      }
      this.tableLoading = true
      rewardPunishmentPage(params).then(res => {
@@ -251,14 +227,14 @@
        this.tableLoading = false
      })
    },
    addRow () {
    addRow() {
      this.dialogVisible = true
      if (!this.isDepartment) {
        this.form.userId = this.departId
        this.selectUserChange(this.form.userId)
      }
    },
    handleDown(){
    handleDown() {
      this.outLoading = true
      rewardPunishmentExport({
        userId: this.isDepartment ? '' : this.departId,
@@ -272,7 +248,6 @@
          type: 'application/force-download'
        })
        this.$download.saveAs(blob, '奖惩记录.xlsx')
        this.$message.success('导出成功')
      })
    },
    // 获取负责人信息接口
@@ -293,7 +268,7 @@
    // 打开表单弹框
    editForm(row) {
      this.dialogVisible = true
      this.form = {...row};
      this.form = { ...row };
    },
    // 提交表单数据
    saveOrUpdate() {
@@ -313,7 +288,7 @@
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        deleteRewardPunishment({id: row.id}).then(res => {
        deleteRewardPunishment({ id: row.id }).then(res => {
          if (res.code === 500) {
            return
          }
@@ -322,7 +297,7 @@
        }).catch(e => {
          this.$message.error('删除失败')
        })
      }).catch(() => {})
      }).catch(() => { })
    }
  },
src/views/CNAS/process/demand/index.vue
@@ -4,19 +4,19 @@
      <el-form :model="entitySearch" ref="entitySearch" size="small" :inline="true">
        <el-form-item label="试样名称" prop="sampleName">
          <el-input size="small" placeholder="请输入" clearable v-model="entitySearch.sampleName"
                    @keyup.enter.native="refreshTable"></el-input>
            @keyup.enter.native="refreshTable"></el-input>
        </el-form-item>
        <el-form-item label="委托单位" prop="commissionUnit">
          <el-input v-model="entitySearch.commissionUnit" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="refreshTable()"></el-input>
            @keyup.enter.native="refreshTable()"></el-input>
        </el-form-item>
        <el-form-item label="生产单位" prop="production">
          <el-input v-model="entitySearch.production" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="refreshTable()"></el-input>
            @keyup.enter.native="refreshTable()"></el-input>
        </el-form-item>
        <el-form-item label="委托人" prop="commissionUser">
          <el-input v-model="entitySearch.commissionUser" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="refreshTable()"></el-input>
            @keyup.enter.native="refreshTable()"></el-input>
        </el-form-item>
        <el-form-item>
          <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 置</el-button>
@@ -57,28 +57,26 @@
            <el-button size="mini" type="text" @click="handleLook(scope.row)">查看</el-button>
            <el-button size="mini" style="color:#F56C6C" type="text" @click="deleteOrder(scope.row)">删除</el-button>
            <el-button size="mini" type="text" @click="openDownloadDia(scope.row)">下载</el-button>
            <el-upload ref='upload'
                       :action="action"
                       :data="{inspectionOrderId: scope.row.inspectionOrderId}" :headers="uploadHeader"
                       :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false" accept='image/jpg,image/jpeg,image/png,application/pdf,.doc,.docx,.xlsx'
                       name="file" style="background: transparent;display: inline;margin-left: 4px">
            <el-upload ref='upload' :action="action" :data="{ inspectionOrderId: scope.row.inspectionOrderId }"
              :headers="uploadHeader" :on-error="onError" :on-success="handleSuccessUp" :show-file-list="false"
              accept='image/jpg,image/jpeg,image/png,application/pdf,.doc,.docx,.xlsx' name="file"
              style="background: transparent;display: inline;margin-left: 4px">
              <span style="color: #409EFF">上传</span>
            </el-upload>
          </template>
        </el-table-column>
      </el-table>
      <el-pagination :current-page="1" :page-size="pages.size" :page-sizes="[10, 20, 30, 50, 100]"
                     :total="total1" layout="->,total, sizes, prev, pager, next"
                     style="margin-top: 10px" background
                     @size-change="handleSizeChange1" @current-change="handleCurrentChange1">
      <el-pagination :current-page="1" :page-size="pages.size" :page-sizes="[10, 20, 30, 50, 100]" :total="total1"
        layout="->,total, sizes, prev, pager, next" style="margin-top: 10px" background @size-change="handleSizeChange1"
        @current-change="handleCurrentChange1">
      </el-pagination>
    </div>
    <el-dialog
      :close-on-click-modal="false" :close-on-press-escape="false"
      :visible.sync="orderRowsVisible" title="新增检验任务单" width="1000px">
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="orderRowsVisible"
      title="新增检验任务单" width="1000px">
      <div style="display: flex; align-items: center;margin-bottom: 10px">
        <span style="width: 80px">委托编号:</span>
        <el-input v-model="entity.entrustCode" clearable size="small" style="width: 300px;margin-right: 10px"></el-input>
        <el-input v-model="entity.entrustCode" clearable size="small"
          style="width: 300px;margin-right: 10px"></el-input>
        <el-button size="small" type="primary" @click="searchTableData">查询</el-button>
        <el-button size="small" @click="refreshTableData">重 置</el-button>
      </div>
@@ -92,16 +90,13 @@
          </template>
        </el-table-column>
      </el-table>
      <el-pagination :current-page="1" :page-size="tableSearch.size" :page-sizes="[10, 20, 30, 50, 100]"
                     :total="total" layout="->,total, sizes, prev, pager, next"
                     style="margin-top: 10px" background
                     @size-change="handleSizeChange" @current-change="handleCurrentChange">
      <el-pagination :current-page="1" :page-size="tableSearch.size" :page-sizes="[10, 20, 30, 50, 100]" :total="total"
        layout="->,total, sizes, prev, pager, next" style="margin-top: 10px" background @size-change="handleSizeChange"
        @current-change="handleCurrentChange">
      </el-pagination>
    </el-dialog>
    <el-dialog
      :class="{downPdf:title=='下载'}" :close-on-click-modal="false"
      :close-on-press-escape="false"
      :modal="title!='下载'" :title="title" :visible.sync="detailDialogVisible" top="20px" width="1200px">
    <el-dialog :class="{ downPdf: title == '下载' }" :close-on-click-modal="false" :close-on-press-escape="false"
      :modal="title != '下载'" :title="title" :visible.sync="detailDialogVisible" top="20px" width="1200px">
      <div style="max-height: 75vh;overflow-y: auto;">
        <div id="dialogBody">
          <table border="1" cellpadding="10" class="tables heads" style="border: 1px dashed black;">
@@ -132,27 +127,23 @@
            <span style="width: 100px">委托编号:</span>
            <el-input v-model="currentInfo.entrustCode" clearable size="small"></el-input>
          </p>
          <p v-if="operationType === 'view'"  style="margin-top: 16px;margin-left: 600px;">委托编号:{{ currentInfo.entrustCode }}</p>
          <p v-if="operationType === 'view'" style="margin-top: 16px;margin-left: 600px;">委托编号:{{
            currentInfo.entrustCode }}
          </p>
          <table border="1" cellpadding="10" class="tables">
            <tr>
              <td colspan="2">
                <p>试样名称</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.sampleName" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.sampleName" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{ currentInfo.sampleName }}</td>
              <td>
                <p>委托时间</p>
              </td>
              <td v-if="operationType !== 'view'">
                <el-date-picker
                  v-model="currentInfo.commissionDate"
                  clearable
                  format="yyyy-MM-dd"
                  placeholder="选择日期"
                  size="small"
                  style="width: 100%"
                  type="date"
                  value-format="yyyy-MM-dd">
                <el-date-picker v-model="currentInfo.commissionDate" clearable format="yyyy-MM-dd" placeholder="选择日期"
                  size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </td>
              <td v-if="operationType === 'view'">{{ currentInfo.commissionDate }}</td>
@@ -161,37 +152,46 @@
              <td colspan="2">
                <p>型 号</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.modelNo" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.modelNo" clearable
                  size="small"></el-input>
              </td>
              <td v-if="operationType === 'view'">{{ currentInfo.modelNo }}</td>
              <td>
                <p>委托单位</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.commissionUnit" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.commissionUnit" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{ currentInfo.commissionUnit }}</td>
            </tr>
            <tr>
              <td colspan="2">
                <p>生产单位</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.production" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.production" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{ currentInfo.production }}</td>
              <td>
                <p>委托人</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.commissionUser" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.commissionUser" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{ currentInfo.commissionUser }}</td>
            </tr>
            <tr>
              <td colspan="2">
                <p>样品数量</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.quantity" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.quantity" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{ currentInfo.quantity }}</td>
              <td>
                <p>样品状态</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.sampleStatus" clearable size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{ insStateList.find(m=>m.value==currentInfo.sampleStatus)?insStateList.find(m=>m.value==currentInfo.sampleStatus).label:'/' }}</td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.sampleStatus" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{
                insStateList.find(m => m.value == currentInfo.sampleStatus) ? insStateList.find(m => m.value == currentInfo.sampleStatus).label:'/'
                }}</td>
            </tr>
            <tr>
              <td colspan="2">
@@ -204,7 +204,7 @@
                </el-radio-group>
              </td>
              <td v-if="operationType === 'view'">
                <span v-if="currentInfo.isLeave==1">是</span>
                <span v-if="currentInfo.isLeave == 1">是</span>
                <span v-else>否</span>
              </td>
              <td>
@@ -217,7 +217,7 @@
                </el-radio-group>
              </td>
              <td v-if="operationType === 'view'">
                <span v-if="currentInfo.processing==0">委托单位取回</span>
                <span v-if="currentInfo.processing == 0">委托单位取回</span>
                <span v-else>实验室处理</span>
              </td>
            </tr>
@@ -226,15 +226,8 @@
                <p>约定完成时间(报告日期)</p>
              </td>
              <td v-if="operationType !== 'view'">
                <el-date-picker
                  v-model="currentInfo.appointed"
                  clearable
                  format="yyyy-MM-dd"
                  placeholder="选择日期"
                  size="small"
                  style="width: 100%"
                  type="date"
                  value-format="yyyy-MM-dd">
                <el-date-picker v-model="currentInfo.appointed" clearable format="yyyy-MM-dd" placeholder="选择日期"
                  size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </td>
              <td v-if="operationType === 'view'">{{ currentInfo.appointed }}</td>
@@ -248,11 +241,12 @@
                </el-radio-group>
              </td>
              <td v-if="operationType === 'view'">
                <span v-if="currentInfo.send==1">自取</span>
                <span v-if="currentInfo.send == 1">自取</span>
                <span v-else>其他</span>
              </td>
            </tr>
            <el-button size="small" type="primary" @click="addOrderDetailList" v-if="operationType !== 'view'">添加</el-button>
            <el-button size="small" type="primary" @click="addOrderDetailList"
              v-if="operationType !== 'view'">添加</el-button>
            <tr>
              <td>
                <p>序号</p>
@@ -270,15 +264,21 @@
                <p>备注</p>
              </td>
            </tr>
            <tr v-for="(item,index) in currentInfo.orderDetailList" :key="index" >
              <td>{{ index+1 }}</td>
              <td v-if="operationType !== 'view'"><el-input v-model="item.sampleNumber" clearable size="small"></el-input></td>
            <tr v-for="(item, index) in currentInfo.orderDetailList" :key="index">
              <td>{{ index + 1 }}</td>
              <td v-if="operationType !== 'view'"><el-input v-model="item.sampleNumber" clearable
                  size="small"></el-input>
              </td>
              <td v-if="operationType === 'view'">{{ item.sampleNumber }}</td>
              <td v-if="operationType !== 'view'"><el-input v-model="item.testItem" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="item.testItem" clearable size="small"></el-input>
              </td>
              <td v-if="operationType === 'view'">{{ item.testItem }}</td>
              <td v-if="operationType !== 'view'"><el-input v-model="item.testStandard" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="item.testStandard" clearable
                  size="small"></el-input>
              </td>
              <td v-if="operationType === 'view'">{{ item.testStandard }}</td>
              <td v-if="operationType !== 'view'"><el-input v-model="item.remark" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="item.remark" clearable size="small"></el-input>
              </td>
              <td v-if="operationType === 'view'">{{ item.remark }}</td>
            </tr>
            <tr>
@@ -290,35 +290,30 @@
                  <el-radio :label="0">不考虑不确定度</el-radio>
                  <el-radio :label="1">考虑不确定度</el-radio>
                </el-radio-group>
                <span v-if="currentInfo.criterionRule === 1"><el-input v-model="currentInfo.criterionRuleRemark" clearable size="small" style="width: 60px"></el-input>%</span>
                <span v-if="currentInfo.criterionRule === 1"><el-input v-model="currentInfo.criterionRuleRemark"
                    clearable size="small" style="width: 60px"></el-input>%</span>
              </td>
              <td v-if="operationType === 'view'" colspan="3">
                <span v-if="currentInfo.criterionRule===0">不考虑不确定度</span>
                <span v-if="currentInfo.criterionRule===1">考虑不确定度</span>
                <span v-if="currentInfo.criterionRule===1">{{ currentInfo.criterionRuleRemark + '%' }}</span>
                <span v-if="currentInfo.criterionRule === 0">不考虑不确定度</span>
                <span v-if="currentInfo.criterionRule === 1">考虑不确定度</span>
                <span v-if="currentInfo.criterionRule === 1">{{ currentInfo.criterionRuleRemark + '%' }}</span>
              </td>
            </tr>
            <tr>
              <td colspan="2">
                <p>委托人签名</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.commissionUser" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.commissionUser" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">
                {{currentInfo.commissionUser}}
                {{ currentInfo.commissionUser }}
              </td>
              <td>
                <p>委托日期</p>
              </td>
              <td v-if="operationType !== 'view'">
                <el-date-picker
                  v-model="currentInfo.commissionDate"
                  clearable
                  format="yyyy-MM-dd"
                  placeholder="选择日期"
                  size="small"
                  style="width: 100%"
                  type="date"
                  value-format="yyyy-MM-dd">
                <el-date-picker v-model="currentInfo.commissionDate" clearable format="yyyy-MM-dd" placeholder="选择日期"
                  size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </td>
              <td v-if="operationType === 'view'">{{ currentInfo.commissionDate }}</td>
@@ -327,28 +322,23 @@
              <td colspan="2">
                <p>委托人联系电话</p>
              </td>
              <td v-if="operationType !== 'view'" colspan="3"><el-input v-model="currentInfo.commissionPhone" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'" colspan="3"><el-input v-model="currentInfo.commissionPhone" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'" colspan="3">{{ currentInfo.commissionPhone }}</td>
            </tr>
            <tr>
              <td colspan="2">
                <p>综合室签名</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.generalOfficeUser" clearable size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{currentInfo.generalOfficeUser}}</td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.generalOfficeUser" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{ currentInfo.generalOfficeUser }}</td>
              <td>
                <p>接收日期</p>
              </td>
              <td v-if="operationType !== 'view'">
                <el-date-picker
                  v-model="currentInfo.receiptData"
                  clearable
                  format="yyyy-MM-dd"
                  placeholder="选择日期"
                  size="small"
                  style="width: 100%"
                  type="date"
                  value-format="yyyy-MM-dd">
                <el-date-picker v-model="currentInfo.receiptData" clearable format="yyyy-MM-dd" placeholder="选择日期"
                  size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </td>
              <td v-if="operationType === 'view'">{{ currentInfo.receiptData }}</td>
@@ -357,21 +347,15 @@
              <td colspan="2">
                <p>领样员签名</p>
              </td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.sampleTakerUser" clearable size="small"></el-input></td>
              <td v-if="operationType !== 'view'"><el-input v-model="currentInfo.sampleTakerUser" clearable
                  size="small"></el-input></td>
              <td v-if="operationType === 'view'">{{ currentInfo.sampleTakerUser }}</td>
              <td>
                <p>领样日期</p>
              </td>
              <td v-if="operationType !== 'view'">
                <el-date-picker
                  v-model="currentInfo.sampleData"
                  clearable
                  format="yyyy-MM-dd"
                  placeholder="选择日期"
                  size="small"
                  style="width: 100%"
                  type="date"
                  value-format="yyyy-MM-dd">
                <el-date-picker v-model="currentInfo.sampleData" clearable format="yyyy-MM-dd" placeholder="选择日期"
                  size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </td>
              <td v-if="operationType === 'view'">{{ currentInfo.sampleData }}</td>
@@ -400,8 +384,10 @@
      </div>
      <span v-if="operationType !== 'view'" slot="footer" class="dialog-footer">
        <el-button @click="detailDialogVisible = false">取 消</el-button>
        <el-button v-if="operationType === 'add'" :loading="buttonLoading" type="primary" @click="handleAdd">确 定</el-button>
        <el-button v-if="operationType === 'edit'" :loading="buttonLoading" type="primary" @click="handleEdit">确 定</el-button>
        <el-button v-if="operationType === 'add'" :loading="buttonLoading" type="primary" @click="handleAdd">确
          定</el-button>
        <el-button v-if="operationType === 'edit'" :loading="buttonLoading" type="primary" @click="handleEdit">确
          定</el-button>
      </span>
    </el-dialog>
    <el-dialog :visible.sync="downloadDialog" title="下载" width="600px">
@@ -424,22 +410,22 @@
  updateInspectionOrder
} from "@/api/cnas/process/demand/demand";
import limsTable from "@/components/Table/lims-table.vue";
import {selectUserCondition} from "@/api/business/inspectionTask";
import { selectUserCondition } from "@/api/business/inspectionTask";
export default {
  name: "a7-Inspection-Order-Form",
  components: {limsTable},
  components: { limsTable },
  data() {
    return {
      title:'检验委托单',
      detailDialogVisible:false,
      addLoading:false,
      outLoading:false,
      currentInfo:{
      title: '检验委托单',
      detailDialogVisible: false,
      addLoading: false,
      outLoading: false,
      currentInfo: {
        orderDetailList: []
      },
      personList:[],
      insStateList:[
      personList: [],
      insStateList: [
        {
          label: '待审核',
          value: 0
@@ -501,7 +487,7 @@
    }
  },
  methods: {
    addOrderDetailList () {
    addOrderDetailList() {
      if (this.currentInfo.orderDetailList == null) {
        this.currentInfo.orderDetailList = []
      }
@@ -542,14 +528,14 @@
      this.refreshTable()
    },
    // 打开新增弹框
    goAdd () {
    goAdd() {
      this.operationType = 'add'
      this.title = '新增检验委托单';
      this.orderRowsVisible = true
      this.searchTableData()
    },
    // 查询可新增的检验单
    searchTableData () {
    searchTableData() {
      this.tableLoading = true
      getInsOrderOnInspection({
        ...this.tableSearch,
@@ -563,7 +549,7 @@
      })
    },
    // 重置检验单列表
    refreshTableData () {
    refreshTableData() {
      this.entity = {
        entrustCode: ''
      }
@@ -592,7 +578,7 @@
      this.refreshTable();
    },
    // 提交新增
    handleAdd () {
    handleAdd() {
      this.buttonLoading = true
      addInspectionOrder(this.currentInfo).then(res => {
        this.buttonLoading = false
@@ -605,7 +591,7 @@
      })
    },
    // 提交修改
    handleEdit () {
    handleEdit() {
      this.buttonLoading = true
      updateInspectionOrder(this.currentInfo).then(res => {
        this.buttonLoading = false
@@ -619,8 +605,8 @@
      })
    },
    // 查询需要新增的委托单详情
    goAddOrder (row) {
      getInspectionOrderByInsOderId({insOrderId: row.id}).then(res => {
    goAddOrder(row) {
      getInspectionOrderByInsOderId({ insOrderId: row.id }).then(res => {
        this.currentInfo = res.data
        this.title = '新增检验委托单';
        this.detailDialogVisible = true
@@ -629,9 +615,9 @@
      })
    },
    // 打开编辑弹框
    goUpdate (row) {
    goUpdate(row) {
      this.operationType = 'edit'
      getInspectionOrderOne({inspectionOrderId: row.inspectionOrderId}).then(res => {
      getInspectionOrderOne({ inspectionOrderId: row.inspectionOrderId }).then(res => {
        this.currentInfo = res.data
        this.title = '编辑检验委托单';
        this.detailDialogVisible = true
@@ -640,9 +626,9 @@
      })
    },
    // 查看
    handleLook(row){
    handleLook(row) {
      this.operationType = 'view'
      getInspectionOrderOne({inspectionOrderId: row.inspectionOrderId}).then(res => {
      getInspectionOrderOne({ inspectionOrderId: row.inspectionOrderId }).then(res => {
        this.currentInfo = res.data
        this.title = '查看检验委托单';
        this.detailDialogVisible = true
@@ -651,13 +637,13 @@
      })
    },
    // 删除
    deleteOrder (row) {
    deleteOrder(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delInspectionOrder({inspectionOrderId: row.inspectionOrderId}).then(res => {
        delInspectionOrder({ inspectionOrderId: row.inspectionOrderId }).then(res => {
          this.$message.success('删除成功!');
          this.refreshTable();
        });
@@ -669,12 +655,12 @@
      });
    },
    // 打开下载弹框
    openDownloadDia (row) {
    openDownloadDia(row) {
      this.downloadDialog = true
      this.download = row
    },
    // 委托单下载
    orderFormDown () {
    orderFormDown() {
      let url = this.download.fileUrl;
      const link = document.createElement('a');
      link.href = this.javaApi + url;
@@ -683,20 +669,19 @@
      link.click();
    },
    // 委托报告下载
    orderReportDown () {
    orderReportDown() {
      this.outLoading = true;
      exportInspectionOrder({inspectionOrderId: this.download.inspectionOrderId}).then(res => {
      exportInspectionOrder({ inspectionOrderId: this.download.inspectionOrderId }).then(res => {
        this.outLoading = false;
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '检验委托单.docx')
        this.$message.success('导出成功');
      }).catch(err => {
        this.outLoading = false;
      })
    },
    // 上传
    handleSuccessUp(response, ) {
    handleSuccessUp(response,) {
      if (response.code == 200) {
        this.$message.success('上传成功');
        this.refreshTable()
@@ -733,5 +718,4 @@
}
</script>
<style scoped>
</style>
<style scoped></style>
src/views/CNAS/process/ensureResults/ensureResultsValidity/index.vue
@@ -5,9 +5,8 @@
      <div style="display: flex;justify-content: space-between;">
        <el-form :model="yearForm" ref="yearForm" size="small" :inline="true">
          <el-form-item label="计划名称" prop="monitorName">
            <el-input size="small" placeholder="请输入" clearable
                      v-model="yearForm.monitorName"
                      @keyup.enter.native="getYearPlanList"></el-input>
            <el-input size="small" placeholder="请输入" clearable v-model="yearForm.monitorName"
              @keyup.enter.native="getYearPlanList"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button icon="el-icon-refresh" size="mini" @click="clearYear">重 置</el-button>
@@ -19,8 +18,7 @@
        </div>
      </div>
      <lims-table :tableData="yearTableData" :column="yearColumnData" :page="yearPage" :tableLoading="yearLoading"
                  height="40vh" @pagination="pagination" :rowClick="rowClick"
                  key="yearTableData"></lims-table>
        height="40vh" @pagination="pagination" :rowClick="rowClick" key="yearTableData"></lims-table>
    </div>
    <div style="margin-top: 20px">
      <div style="display: flex;justify-content: space-between;">
@@ -40,14 +38,16 @@
          <el-button size="small" type="primary" @click="showDialog('add')">新增</el-button>
        </div>
      </div>
      <lims-table :tableData="yearDetailTableData" :column="yearDetailColumnData" :page="yearDetailPage" :tableLoading="yearDetailLoading"
                  height="40vh" @pagination="pagination1"
                  key="yearDetailTableData"></lims-table>
      <lims-table :tableData="yearDetailTableData" :column="yearDetailColumnData" :page="yearDetailPage"
        :tableLoading="yearDetailLoading" height="40vh" @pagination="pagination1"
        key="yearDetailTableData"></lims-table>
    </div>
    <!--新增修改弹框-->
    <detail-form-dialog v-if="formDia" ref="formDia" :qualityMonitorId="qualityMonitorId" @closeDia="closeDia"></detail-form-dialog>
    <detail-form-dialog v-if="formDia" ref="formDia" :qualityMonitorId="qualityMonitorId"
      @closeDia="closeDia"></detail-form-dialog>
    <!--实施流程弹框-->
    <carry-out-dialog v-if="carryOutDia" ref="carryOutDia" :qualityMonitorId="qualityMonitorId" @closeDia="closeCarryOutDia"></carry-out-dialog>
    <carry-out-dialog v-if="carryOutDia" ref="carryOutDia" :qualityMonitorId="qualityMonitorId"
      @closeDia="closeCarryOutDia"></carry-out-dialog>
    <!--评价流程弹框-->
    <evaluate-dialog v-if="evaluateDialog" ref="evaluateDialog" @closeEvaDia="closeEvaDia"></evaluate-dialog>
    <el-dialog :visible.sync="examineDialog" title="审核" width="30%" @close="closeExamineDia">
@@ -57,8 +57,7 @@
      </span>
      <span style="margin-top: 10px;display: inline-block">
        批准人:
        <el-select v-model="examineInfo.ratifyUserId" clearable
                   filterable size="small" style="width: 70%;">
        <el-select v-model="examineInfo.ratifyUserId" clearable filterable size="small" style="width: 70%;">
          <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
@@ -79,16 +78,13 @@
      </span>
    </el-dialog>
    <!--预览报告-->
    <el-dialog
      :visible.sync="lookDialogVisible"
      fullscreen
      title="查看附件" top="5vh" width="800px">
    <el-dialog :visible.sync="lookDialogVisible" fullscreen title="查看附件" top="5vh" width="800px">
      <filePreview v-if="lookDialogVisible" :currentFile="{}"
                   :fileUrl="javaApi+'/word/' + currentInfo.finishReportUrl" style="height: 70vh;overflow-y: auto;"/>
        :fileUrl="javaApi + '/word/' + currentInfo.finishReportUrl" style="height: 70vh;overflow-y: auto;" />
      <div>
        批准状态:
        <el-tag v-if="this.ratifyStatus ===  1" type="success">批准</el-tag>
        <el-tag v-if="this.ratifyStatus ===  0" type="danger">不批准</el-tag>
        <el-tag v-if="this.ratifyStatus === 1" type="success">批准</el-tag>
        <el-tag v-if="this.ratifyStatus === 0" type="danger">不批准</el-tag>
      </div>
      <div>
        批准意见:
@@ -101,42 +97,36 @@
    </el-dialog>
    <el-dialog :visible.sync="downloadDialog" title="导出" width="600px">
      <span>
        <el-button plain type="primary" :disabled="!download.qualityMonitorDetailsId" @click="controlDown">实施计划导出</el-button>
        <el-button plain type="primary" :disabled="!download.qualityMonitorDetailsId" @click="processingDown">评价导出</el-button>
        <el-button plain type="primary" :disabled="!download.qualityMonitorDetailsId"
          @click="controlDown">实施计划导出</el-button>
        <el-button plain type="primary" :disabled="!download.qualityMonitorDetailsId"
          @click="processingDown">评价导出</el-button>
      </span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="downloadDialog = false">取 消</el-button>
      </span>
    </el-dialog>
    <!--导入计划-->
    <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px" :close-on-click-modal="false" :close-on-press-escape="false">
    <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px" :close-on-click-modal="false"
      :close-on-press-escape="false">
      <div style="display: flex; align-items: center;">
        <span style="width: 60px">年份:</span>
        <el-date-picker
          v-model="planYear"
          type="year"
          value-format="yyyy"
          clearable
          size="small"
          format="yyyy"
        <el-date-picker v-model="planYear" type="year" value-format="yyyy" clearable size="small" format="yyyy"
          placeholder="选择年">
        </el-date-picker>
      </div>
      <div style="display: flex;align-items: center;margin: 10px 0">
        <div style="width: 60px">审核人:</div>
        <el-select v-model="examineUserId" clearable
                   filterable size="small" style="width: 50%;">
        <el-select v-model="examineUserId" clearable filterable size="small" style="width: 50%;">
          <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
      </div>
      <div style="margin: 0 auto;">
        <el-upload ref="upload" :action="action" :auto-upload="false" :file-list="fileList"
                   :headers="uploadHeader" :limit="1"
                   accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
                   :on-change="beforeUpload" :on-error="onError" :on-success="handleSuccessUp" drag
                   :data="{planYear: planYear, examineUserId: examineUserId}"
                   name="file">
        <el-upload ref="upload" :action="action" :auto-upload="false" :file-list="fileList" :headers="uploadHeader"
          :limit="1" accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
          :on-change="beforeUpload" :on-error="onError" :on-success="handleSuccessUp" drag
          :data="{ planYear: planYear, examineUserId: examineUserId }" name="file">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>
@@ -153,11 +143,10 @@
        <el-input v-model="ratifyRemark" :disabled="this.ratifyStatus === 1" type="textarea"></el-input>
      </div>
      <div style="margin: 0 auto;">
        <el-upload ref="upload1" :action="action1" :auto-upload="false" :data="{qualityMonitorDetailsId: qualityMonitorDetailsId}" :file-list="fileList1" :headers="uploadHeader"
                   :limit="1"
                   :on-change="beforeUpload1" :on-error="onError1" :on-success="onSuccess1" accept='.doc,.docx'
                   drag
                   name="file">
        <el-upload ref="upload1" :action="action1" :auto-upload="false"
          :data="{ qualityMonitorDetailsId: qualityMonitorDetailsId }" :file-list="fileList1" :headers="uploadHeader"
          :limit="1" :on-change="beforeUpload1" :on-error="onError1" :on-success="onSuccess1" accept='.doc,.docx' drag
          name="file">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>
@@ -183,13 +172,13 @@
  pageQualityMonitor, pageQualityMonitorDetail, ratifyFinishReport,
  ratifyQualityMonitor
} from "@/api/cnas/process/ensureResults/qualityMonitor";
import {selectUserCondition} from "@/api/performance/class";
import {mapGetters} from "vuex";
import { selectUserCondition } from "@/api/performance/class";
import { mapGetters } from "vuex";
export default {
  name: 'a7-Ensure-results-validity',
  // import 引入的组件需要注入到对象中才能使用
  components: {limsTable, filePreview, EvaluateDialog, CarryOutDialog, DetailFormDialog },
  components: { limsTable, filePreview, EvaluateDialog, CarryOutDialog, DetailFormDialog },
  data() {
    // 这里存放数据
    return {
@@ -251,7 +240,7 @@
          label: '审核日期',
          prop: 'examineTime',
          minWidth: '160'
        },{
        }, {
          dataType: 'tag',
          label: '批准状态',
          prop: 'ratifyStatus',
@@ -274,15 +263,15 @@
              return null;
            }
          }
        },{
        }, {
          label: '批准内容',
          prop: 'ratifyRemark',
          minWidth: '100'
        },{
        }, {
          label: '批准人',
          prop: 'ratifyName',
          minWidth: '100'
        },{
        }, {
          label: '批准日期',
          prop: 'ratifyTime',
          minWidth: '160'
@@ -342,7 +331,7 @@
                this.delPlan(row)
              },
              disabled: (row) => {
                if(row.examineStatus === 1) {
                if (row.examineStatus === 1) {
                  return true;
                } else {
                  return false;
@@ -379,11 +368,11 @@
          label: '预算(元)',
          prop: 'budget',
          minWidth: '150px'
        },{
        }, {
          label: '组织人员',
          prop: 'organization',
          minWidth: '150px'
        },{
        }, {
          label: '监控方式',
          prop: 'monitorWay',
          minWidth: '150px'
@@ -480,7 +469,7 @@
  // 方法集合
  methods: {
    // 查询年度计划表
    getYearPlanList () {
    getYearPlanList() {
      const entity = {
        monitorName: this.yearForm.monitorName,
      }
@@ -498,7 +487,7 @@
        this.yearLoading = false
      })
    },
    clearYear () {
    clearYear() {
      this.yearForm.monitorName = ''
      this.getYearPlanList()
    },
@@ -512,7 +501,7 @@
      this.yearDetailPage.size = limit;
      this.getYearPlanList();
    },
    leadInto () {
    leadInto() {
      this.uploadDia = true
      this.getUserList()
    },
@@ -545,7 +534,7 @@
        this.$message.error(response.msg)
      }
    },
    submitUpload () {
    submitUpload() {
      if (!this.planYear) {
        this.$message.warning('请选择年份')
        return;
@@ -558,12 +547,12 @@
    },
    // end
    // 审核
    examinePlan (row) {
    examinePlan(row) {
      this.examineDialog = true
      this.examineInfo = row
      this.getUserList()
    },
    handleReview (examineStatus) {
    handleReview(examineStatus) {
      // 审核状态 , 0 不通过, 1通过
      this.examineInfo.examineStatus = examineStatus
      this.examineLoading = true
@@ -576,17 +565,17 @@
        this.examineLoading = false
      })
    },
    closeExamineDia () {
    closeExamineDia() {
      this.examineDialog = false
      this.examineInfo.examineRemark = ''
      this.getYearPlanList()
    },
    // 批准
    approvalPlan (row) {
    approvalPlan(row) {
      this.ratifyDialog = true
      this.ratifyInfo = row
    },
    handleRatify (ratifyStatus) {
    handleRatify(ratifyStatus) {
      // 批准状态 , 0 不通过, 1通过
      this.ratifyInfo.ratifyStatus = ratifyStatus
      this.ratifyLoading = true
@@ -599,13 +588,13 @@
        this.ratifyLoading = false
      })
    },
    closeRatifyDia () {
    closeRatifyDia() {
      this.ratifyDialog = false
      this.ratifyInfo.ratifyRemark = ''
      this.getYearPlanList()
    },
    // 批准报告
    handleApproval (status) {
    handleApproval(status) {
      const personTrainingUpdateDto = {
        qualityMonitorDetailsId: this.currentInfo.qualityMonitorDetailsId,
        ratifyRemark: this.ratifyRemark,
@@ -624,23 +613,22 @@
      })
    },
    // 导出
    handleDown (row) {
      exportQualityMonitorDetail({qualityMonitorId: row.qualityMonitorId}).then(res => {
    handleDown(row) {
      exportQualityMonitorDetail({ qualityMonitorId: row.qualityMonitorId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, row.monitorName + '.docx')
        this.$message.success('导出成功')
      })
    },
    // 删除进度计划表
    delPlan (row) {
    delPlan(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.yearLoading = true
        delQualitySupervise({qualityMonitorId: row.qualityMonitorId}).then(res => {
        delQualitySupervise({ qualityMonitorId: row.qualityMonitorId }).then(res => {
          this.yearLoading = false
          this.$message.success('删除成功')
          this.getYearPlanList()
@@ -661,7 +649,7 @@
      this.getYearDetailPlanList()
    },
    // 获取年度明细表
    getYearDetailPlanList () {
    getYearDetailPlanList() {
      const entity = {
        qualityMonitorId: this.qualityMonitorId,
        monitorPurpose: this.yearDetailForm.monitorPurpose,
@@ -679,7 +667,7 @@
      })
    },
    // 重置明细表
    clearDetail () {
    clearDetail() {
      this.yearDetailForm = {
        monitorPurpose: '',
        monitorProject: ''
@@ -687,18 +675,18 @@
      this.getYearDetailPlanList()
    },
    // 明细表实施
    carryOut (row) {
    carryOut(row) {
      this.carryOutDia = true
      this.$nextTick(() => {
        this.$refs.carryOutDia.openDia(row)
      })
    },
    closeCarryOutDia () {
    closeCarryOutDia() {
      this.carryOutDia = false
      this.getYearDetailPlanList()
    },
    // 打开完成报告弹框
    record (row) {
    record(row) {
      this.qualityMonitorDetailsId = row.qualityMonitorDetailsId
      this.ratifyRemark = row.ratifyRemark
      if (row.finishReportUrl) {
@@ -745,58 +733,56 @@
    },
    // end
    // 打开评价弹框
    evaluate (row) {
    evaluate(row) {
      this.evaluateDialog = true
      this.$nextTick(() => {
        this.$refs.evaluateDialog.openDia(row)
      })
    },
    closeEvaDia () {
    closeEvaDia() {
      this.evaluateDialog = false
      this.getYearDetailPlanList()
    },
    // 打开导出弹框
    downLoadPost (row) {
    downLoadPost(row) {
      this.downloadDialog = true
      this.download = row
    },
    // 打开年度明细新增、修改弹框
    showDialog (type, row) {
    showDialog(type, row) {
      this.formDia = true
      this.$nextTick(() => {
        this.$refs.formDia.openDia(type, row)
      })
    },
    closeDia () {
    closeDia() {
      this.formDia = false
      this.getYearDetailPlanList()
    },
    // 控制单导出
    controlDown() {
      exportQualityMonitorRatify({qualityMonitorDetailsId: this.download.qualityMonitorDetailsId}).then(res => {
      exportQualityMonitorRatify({ qualityMonitorDetailsId: this.download.qualityMonitorDetailsId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '质量监控实施计划.docx')
        this.$message.success('导出成功')
      })
    },
    // 处理单导出
    processingDown() {
      exportQualityMonitorEvaluate({qualityMonitorDetailsId: this.download.qualityMonitorDetailsId}).then(res => {
      exportQualityMonitorEvaluate({ qualityMonitorDetailsId: this.download.qualityMonitorDetailsId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '质量监控评价.docx')
        this.$message.success('导出成功')
      })
    },
    delYearPlanDetail (row) {
    delYearPlanDetail(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.yearDetailLoading = true
        delQualityMonitorDetail({qualityMonitorDetailsId: row.qualityMonitorDetailsId}).then(res => {
        delQualityMonitorDetail({ qualityMonitorDetailsId: row.qualityMonitorDetailsId }).then(res => {
          this.yearDetailLoading = false
          this.$message.success('删除成功')
          this.getYearDetailPlanList()
@@ -829,6 +815,4 @@
};
</script>
<style scoped>
</style>
<style scoped></style>
src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue
@@ -5,9 +5,8 @@
      <div style="display: flex;justify-content: space-between;">
        <el-form :model="yearForm" ref="yearForm" size="small" :inline="true">
          <el-form-item label="计划名称" prop="superviseName">
            <el-input size="small" placeholder="请输入" clearable
                      v-model="yearForm.superviseName"
                      @keyup.enter.native="getYearPlanList"></el-input>
            <el-input size="small" placeholder="请输入" clearable v-model="yearForm.superviseName"
              @keyup.enter.native="getYearPlanList"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button icon="el-icon-refresh" size="mini" @click="clearYear">重 置</el-button>
@@ -19,8 +18,7 @@
        </div>
      </div>
      <lims-table :tableData="yearTableData" :column="yearColumnData" :page="yearPage" :tableLoading="yearLoading"
                  height="40vh" @pagination="pagination" :rowClick="rowClick"
                  key="yearTableData"></lims-table>
        height="40vh" @pagination="pagination" :rowClick="rowClick" key="yearTableData"></lims-table>
    </div>
    <div style="margin-top: 20px">
      <div style="display: flex;justify-content: space-between;">
@@ -46,18 +44,22 @@
          <el-button size="small" type="primary" @click="showDialog('add')">新增</el-button>
        </div>
      </div>
      <lims-table :tableData="yearDetailTableData" :column="yearDetailColumnData" :page="yearDetailPage" :tableLoading="yearDetailLoading"
                  height="40vh" @pagination="pagination1"
                  key="yearDetailTableData"></lims-table>
      <lims-table :tableData="yearDetailTableData" :column="yearDetailColumnData" :page="yearDetailPage"
        :tableLoading="yearDetailLoading" height="40vh" @pagination="pagination1"
        key="yearDetailTableData"></lims-table>
    </div>
    <!--新增修改弹框-->
    <detail-form-dialog v-if="formDia" ref="formDia" :superviseId="superviseId" @closeDia="closeDia"></detail-form-dialog>
    <detail-form-dialog v-if="formDia" ref="formDia" :superviseId="superviseId"
      @closeDia="closeDia"></detail-form-dialog>
    <!--记录流程弹框-->
    <records-dialog v-if="recordsDia" ref="recordsDia" :superviseId="superviseId" @closeRecordsDia="closeRecordsDia"></records-dialog>
    <records-dialog v-if="recordsDia" ref="recordsDia" :superviseId="superviseId"
      @closeRecordsDia="closeRecordsDia"></records-dialog>
    <!--不符合处理流程弹框-->
    <processing-sheet v-if="processingDia" ref="processingDia" :superviseId="superviseId" @closeProcessingDia="closeProcessingDia"></processing-sheet>
    <processing-sheet v-if="processingDia" ref="processingDia" :superviseId="superviseId"
      @closeProcessingDia="closeProcessingDia"></processing-sheet>
    <!--纠正处理流程弹框-->
    <rectify-dialog-new v-if="rectifyDia" ref="rectifyDia" :superviseId="superviseId" @closeProcessingDia="closeRectifyDia"></rectify-dialog-new>
    <rectify-dialog-new v-if="rectifyDia" ref="rectifyDia" :superviseId="superviseId"
      @closeProcessingDia="closeRectifyDia"></rectify-dialog-new>
    <el-dialog :visible.sync="ratifyDialog" title="批准" width="30%" @close="closeRatifyDia">
      <span>
        批准备注:
@@ -68,54 +70,43 @@
        <el-button :loading="ratifyLoading" type="primary" @click="handleRatify(1)">批 准</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :visible.sync="downloadDialog"
      title="导出"
      width="600px">
          <span>
            <el-button plain type="primary" @click="controlDown">记录单导出</el-button>
            <el-button plain type="primary" @click="processingDown">处理单导出</el-button>
            <el-button plain type="primary" @click="supervisoryDown">纠正单导出</el-button>
          </span>
    <el-dialog :visible.sync="downloadDialog" title="导出" width="600px">
      <span>
        <el-button plain type="primary" @click="controlDown">记录单导出</el-button>
        <el-button plain type="primary" @click="processingDown">处理单导出</el-button>
        <el-button plain type="primary" @click="supervisoryDown">纠正单导出</el-button>
      </span>
      <span slot="footer" class="dialog-footer">
            <el-button @click="downloadDialog = false">取 消</el-button>
          </span>
        <el-button @click="downloadDialog = false">取 消</el-button>
      </span>
    </el-dialog>
    <!--导入计划-->
    <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px"
               :close-on-click-modal="false" :close-on-press-escape="false">
    <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px" :close-on-click-modal="false"
      :close-on-press-escape="false">
      <div style="display: flex; align-items: center;">
        <span style="width: 80px">年份:</span>
        <el-date-picker
          v-model="superviseYear"
          type="year"
          value-format="yyyy"
          clearable
          size="small"
          format="yyyy"
        <el-date-picker v-model="superviseYear" type="year" value-format="yyyy" clearable size="small" format="yyyy"
          placeholder="选择年">
        </el-date-picker>
        <span  style="width: 110px">监督员:</span>
        <el-select v-model="recordUserIds" placeholder="请选择" size="small"
                   @change="splitList"
                   :multiple-limit="2" filterable multiple style="width: 100%">
        <span style="width: 110px">监督员:</span>
        <el-select v-model="recordUserIds" placeholder="请选择" size="small" @change="splitList" :multiple-limit="2"
          filterable multiple style="width: 100%">
          <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
        </el-select>
      </div>
      <div style="display: flex;align-items: center;margin: 10px 0">
        <div style="width: 60px">批准人:</div>
        <el-select v-model="ratifyUserId" clearable
                   filterable size="small" style="width: 50%;">
        <el-select v-model="ratifyUserId" clearable filterable size="small" style="width: 50%;">
          <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
        </el-select>
      </div>
      <div style="margin: 0 auto;">
        <el-upload ref="upload1" :action="action" :auto-upload="false" :file-list="fileList" :headers="uploadHeader" :limit="1"
                   accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
                   :on-change="beforeUpload" :on-error="onError" :on-success="handleSuccessUp" drag
                   :data="{recordUserIds: recordUserIds1, superviseYear: superviseYear, ratifyUserId: ratifyUserId}"
                   name="file">
        <el-upload ref="upload1" :action="action" :auto-upload="false" :file-list="fileList" :headers="uploadHeader"
          :limit="1" accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
          :on-change="beforeUpload" :on-error="onError" :on-success="handleSuccessUp" drag
          :data="{ recordUserIds: recordUserIds1, superviseYear: superviseYear, ratifyUserId: ratifyUserId }"
          name="file">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>
@@ -141,13 +132,13 @@
  ratifyQualitySupervise, superviseDetailAccordingExport,
  exportSuperviseDetaillCorrect
} from "@/api/cnas/process/ensureResults/qualitySupervise";
import {selectUserCondition} from "@/api/business/inspectionTask";
import {mapGetters} from "vuex";
import { selectUserCondition } from "@/api/business/inspectionTask";
import { mapGetters } from "vuex";
export default {
  name: 'a7-quality-control-plan',
  // import 引入的组件需要注入到对象中才能使用
  components: {limsTable, RectifyDialogNew, ProcessingSheet, RecordsDialog, DetailFormDialog},
  components: { limsTable, RectifyDialogNew, ProcessingSheet, RecordsDialog, DetailFormDialog },
  data() {
    // 这里存放数据
    return {
@@ -195,15 +186,15 @@
              return null;
            }
          }
        },{
        }, {
          label: '批准内容',
          prop: 'ratifyRemark',
          minWidth: '100'
        },{
        }, {
          label: '批准人',
          prop: 'ratifyUserName',
          minWidth: '100'
        },{
        }, {
          label: '批准日期',
          prop: 'ratifyTime',
          minWidth: '160'
@@ -287,11 +278,11 @@
          label: '监督原因',
          prop: 'superviseReason',
          minWidth: '150px'
        },{
        }, {
          label: '备注',
          prop: 'remark',
          minWidth: '150px'
        },{
        }, {
          dataType: 'action',
          width: '260',
          label: '操作',
@@ -390,7 +381,7 @@
  // 方法集合
  methods: {
    // 查询年度计划表
    getYearPlanList () {
    getYearPlanList() {
      const entity = {
        superviseName: this.yearForm.superviseName,
      }
@@ -408,7 +399,7 @@
        this.yearLoading = false
      })
    },
    clearYear () {
    clearYear() {
      this.yearForm.superviseName = ''
      this.getYearPlanList()
    },
@@ -446,7 +437,7 @@
        }, 1000)
      }
    },
    splitList (val) {
    splitList(val) {
      const string = this.HaveJson(val)
      this.recordUserIds1 = string.join(',');
      console.log(this.recordUserIds1)
@@ -469,7 +460,7 @@
      this.$refs.upload1.submit();
    },
    // 关闭导入弹框
    closeUploadDia () {
    closeUploadDia() {
      this.uploadDia = false;
      this.recordUserIds = []
      this.ratifyUserId = ''
@@ -477,21 +468,21 @@
      this.getYearPlanList()
    },
    // 打开报告弹框
    record (row) {
    record(row) {
      this.uploadDia = true
      this.getUserList()
    },
    getUserList(){
    getUserList() {
      selectUserCondition({ type: 0 }).then((res) => {
        this.userList = res.data;
      })
    },
    // 批准
    approvalPlan (row) {
    approvalPlan(row) {
      this.ratifyDialog = true
      this.ratifyInfo = row
    },
    handleRatify (ratifyStatus) {
    handleRatify(ratifyStatus) {
      // 批准状态 , 0 不通过, 1通过
      this.ratifyInfo.ratifyStatus = ratifyStatus
      this.ratifyLoading = true
@@ -504,33 +495,32 @@
        this.ratifyLoading = false
      })
    },
    closeRatifyDia () {
    closeRatifyDia() {
      this.ratifyDialog = false
      this.ratifyInfo.ratifyRemark = ''
      this.getYearPlanList()
    },
    // 导出
    handleDown (row) {
      exportQualitySupervise({superviseId: row.superviseId}).then(res => {
    handleDown(row) {
      exportQualitySupervise({ superviseId: row.superviseId }).then(res => {
        try {
          this.outLoading = false
          const blob = new Blob([res],{ type: 'application/msword' });
          const blob = new Blob([res], { type: 'application/msword' });
          this.$download.saveAs(blob, row.superviseName + '.docx')
          this.$message.success('导出成功')
        } catch (error) {
          console.error('创建Blob对象时出错:', error);
        }
      })
    },
    // 删除进度计划表
    delPlan (row) {
    delPlan(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.yearLoading = true
        delQualitySupervise({superviseId: row.superviseId}).then(res => {
        delQualitySupervise({ superviseId: row.superviseId }).then(res => {
          this.yearLoading = false
          this.$message.success('删除成功')
          this.getYearPlanList()
@@ -551,7 +541,7 @@
      this.getYearDetailPlanList()
    },
    // 获取年度明细表
    getYearDetailPlanList () {
    getYearDetailPlanList() {
      const entity = {
        superviseId: this.superviseId,
        supervisePurpose: this.yearDetailForm.supervisePurpose,
@@ -570,7 +560,7 @@
      })
    },
    // 重置明细表
    clearDetail () {
    clearDetail() {
      this.yearDetailForm = {
        supervisePurpose: '',
        superviseProject: ''
@@ -578,91 +568,88 @@
      this.getYearDetailPlanList()
    },
    // 打开年度明细新增、修改弹框
    showDialog (type, row) {
    showDialog(type, row) {
      this.formDia = true
      this.$nextTick(() => {
        this.$refs.formDia.openDia(type, row)
      })
    },
    closeDia () {
    closeDia() {
      this.formDia = false
      this.getYearDetailPlanList()
    },
    // 记录流程
    records (row) {
    records(row) {
      this.recordsDia = true
      this.$nextTick(() => {
        this.$refs.recordsDia.openDia(row)
      })
    },
    closeRecordsDia () {
    closeRecordsDia() {
      this.recordsDia = false
      this.getYearDetailPlanList()
    },
    // 不符合流程弹框
    processing (row) {
    processing(row) {
      this.processingDia = true
      this.$nextTick(() => {
        this.$refs.processingDia.openDia(row)
      })
    },
    closeProcessingDia () {
    closeProcessingDia() {
      this.processingDia = false
      this.getYearDetailPlanList()
    },
    // 纠正流程弹框
    rectify (row) {
    rectify(row) {
      this.rectifyDia = true
      this.$nextTick(() => {
        this.$refs.rectifyDia.openDia(row)
      })
    },
    closeRectifyDia () {
    closeRectifyDia() {
      this.rectifyDia = false
      this.getYearDetailPlanList()
    },
    // 打开导出弹框
    openDownloadDia (row) {
    openDownloadDia(row) {
      this.downloadDialog = true
      this.download = row
    },
    // 导出记录
    controlDown () {
      exportSuperviseDetailRecord({superviseDetailsId: this.download.superviseDetailsId}).then(res => {
    controlDown() {
      exportSuperviseDetailRecord({ superviseDetailsId: this.download.superviseDetailsId }).then(res => {
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '记录导出.docx')
        this.$message.success('导出成功')
      }).catch(err => {
        console.log('err---', err);
      })
    },
    // 处理单导出
    processingDown () {
      superviseDetailAccordingExport({superviseDetailsId: this.download.superviseDetailsId}).then(res => {
    processingDown() {
      superviseDetailAccordingExport({ superviseDetailsId: this.download.superviseDetailsId }).then(res => {
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '不符合项导出.docx')
        this.$message.success('导出成功')
      }).catch(err => {
        console.log('err---', err);
      })
    },
    // 纠正单导出
    supervisoryDown () {
      exportSuperviseDetaillCorrect({superviseDetailsCorrectId: this.download.superviseDetailsCorrectId}).then(res => {
    supervisoryDown() {
      exportSuperviseDetaillCorrect({ superviseDetailsCorrectId: this.download.superviseDetailsCorrectId }).then(res => {
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '监督纠正措施.docx')
        this.$message.success('导出成功')
      })
    },
    // 删除年度详情列表
    delYearPlanDetail (row) {
    delYearPlanDetail(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.yearDetailLoading = true
        delQualitySuperviseDetail({superviseDetailsId: row.superviseDetailsId}).then(res => {
        delQualitySuperviseDetail({ superviseDetailsId: row.superviseDetailsId }).then(res => {
          this.yearDetailLoading = false
          this.$message.success('删除成功')
          this.getYearDetailPlanList()
@@ -687,6 +674,7 @@
.table-card {
  background-color: #ffffff;
}
.flex_column {
  display: flex;
  height: 80vh;
src/views/CNAS/process/method/methodVerification/index.vue
@@ -20,13 +20,8 @@
      <div>
        <TableCard :showForm="false" :showTitle="false">
          <template v-slot:table>
            <limsTable
              :column="tableColumn"
              :height="'calc(100vh - 23em)'"
              :table-data="tableData"
              :table-loading="tableLoading"
              style="padding: 0 15px;margin-bottom: 16px"
              :page="page"
            <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
              :table-loading="tableLoading" style="padding: 0 15px;margin-bottom: 16px" :page="page"
              @pagination="pagination">
            </limsTable>
          </template>
@@ -129,9 +124,9 @@
      }
      const page = this.page
      this.tableLoading = true
      pagesMethodVerify({...page,...entity}).then(res => {
      pagesMethodVerify({ ...page, ...entity }).then(res => {
        this.tableLoading = false
        if (res.code === 200){
        if (res.code === 200) {
          this.tableData = res.data.records
          this.page.total = res.data.total
        }
@@ -141,16 +136,16 @@
      })
    },
    // 删除
    deleteRow (row) {
    deleteRow(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        delMethodVerify({methodVerifyId: row.methodVerifyId}).then(res => {
        delMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => {
          this.tableLoading = false
          if (res.code === 200){
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.searchList()
          }
@@ -165,7 +160,7 @@
      this.searchForm.methodName = '';
      this.searchList()
    },
    openFormDia (type, row) {
    openFormDia(type, row) {
      this.formDIa = true
      this.operationType = type
      this.$nextTick(() => {
@@ -174,15 +169,14 @@
    },
    // 导出
    downLoadPost(row) {
      exportMethodVerify({methodVerifyId:row.methodVerifyId}).then(res => {
      exportMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '标准(方法)确认记录.docx')
        this.$message.success('导出成功')
      })
    },
    // 关闭弹框
    closeDia () {
    closeDia() {
      this.formDIa = false
      this.searchList()
    },
src/views/CNAS/process/method/standardMethodsChange/index.vue
@@ -20,8 +20,8 @@
      <div>
        <TableCard :showForm="false" :showTitle="false">
          <template v-slot:table>
            <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination"
                        :page="page" :tableLoading="tableLoading"></lims-table>
            <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'"
              @pagination="pagination" :page="page" :tableLoading="tableLoading"></lims-table>
          </template>
        </TableCard>
      </div>
@@ -125,9 +125,9 @@
        operationType: this.searchForm.operationType,
      }
      this.tableLoading = true
      pagesMethodVerify({... this.page,...entity}).then(res => {
      pagesMethodVerify({ ... this.page, ...entity }).then(res => {
        this.tableLoading = false
        if (res.code === 200){
        if (res.code === 200) {
          this.tableData = res.data.records
          this.page.total = res.data.total
        }
@@ -137,16 +137,16 @@
      })
    },
    // 删除
    deleteRow (row) {
    deleteRow(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        delMethodVerify({methodVerifyId:row.methodVerifyId}).then(res => {
        delMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => {
          this.tableLoading = false
          if (res.code === 200){
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.searchList()
          }
@@ -161,7 +161,7 @@
      this.searchForm.methodName = '';
      this.searchList()
    },
    openFormDia (type, row) {
    openFormDia(type, row) {
      this.formDIa = true
      this.operationType = type
      this.$nextTick(() => {
@@ -169,18 +169,17 @@
      })
    },
    // 关闭弹框
    closeDia () {
    closeDia() {
      this.formDIa = false
      this.searchList()
    },
    // 导出
    downLoadPost(row) {
      this.outLoading = true
      exportMethodVerify({methodVerifyId:row.methodVerifyId}).then(res => {
      exportMethodVerify({ methodVerifyId: row.methodVerifyId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '标准(方法)确认记录.docx')
        this.$message.success('导出成功')
      })
    },
    // 分页切换
src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
@@ -14,11 +14,11 @@
      </div>
      <div>
        <el-button size="medium" type="primary" @click="openApprovalDialog1">建 档</el-button>
        <el-upload ref='upload' :action="action"
                             :before-upload="beforeUpload" :headers="headers" :on-error="onError"
                             :on-success="handleSuccessUp" :show-file-list="false" accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
                             style="display: inline-block; margin-left: 10px;">
                    <el-button :loading="upLoading" size="medium" type="primary">导入</el-button>
        <el-upload ref='upload' :action="action" :before-upload="beforeUpload" :headers="headers" :on-error="onError"
          :on-success="handleSuccessUp" :show-file-list="false"
          accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
          style="display: inline-block; margin-left: 10px;">
          <el-button :loading="upLoading" size="medium" type="primary">导入</el-button>
        </el-upload>
        <el-button size="medium" style="margin-left: 10px;" type="primary" @click="openFormDia">新 增</el-button>
      </div>
@@ -34,13 +34,8 @@
        <div v-if="tabIndex === '0'">
          <TableCard :showForm="false" :showTitle="false">
            <template v-slot:table>
              <lims-table
                :column="tableColumn"
                :height="'calc(100vh - 26em)'"
                :table-data="tableData"
                :table-loading="tableLoading"
                :page="page"
                @pagination="pagination">
              <lims-table :column="tableColumn" :height="'calc(100vh - 26em)'" :table-data="tableData"
                :table-loading="tableLoading" :page="page" @pagination="pagination">
              </lims-table>
            </template>
          </TableCard>
@@ -48,13 +43,8 @@
        <div v-if="tabIndex === '1'">
          <TableCard :showForm="false" :showTitle="false">
            <template v-slot:table>
              <lims-table
                :column="oldTableColumn"
                :height="'calc(100vh - 20em)'"
                :table-data="oldTableData"
                :table-loading="oldTableLoading"
                :page="oldPage"
                @pagination="oldPagination">
              <lims-table :column="oldTableColumn" :height="'calc(100vh - 20em)'" :table-data="oldTableData"
                :table-loading="oldTableLoading" :page="oldPage" @pagination="oldPagination">
              </lims-table>
            </template>
          </TableCard>
@@ -86,13 +76,8 @@
      <el-dialog :visible.sync="viewRocordDia" title="详情" width="80%" @close="approvalDialog = false">
        <TableCard :showForm="false" :showTitle="false">
          <template v-slot:table>
            <limsTable
              :column="tableColumn1"
              :height="'calc(100vh - 26em)'"
              :table-data="tableData1"
              :table-loading="tableLoading1"
              style="padding: 0 15px;margin-bottom: 16px"
              :page="page1"
            <limsTable :column="tableColumn1" :height="'calc(100vh - 26em)'" :table-data="tableData1"
              :table-loading="tableLoading1" style="padding: 0 15px;margin-bottom: 16px" :page="page1"
              @pagination="pagination1">
            </limsTable>
          </template>
@@ -129,8 +114,8 @@
        standardNo: '',
      },
      options: [
        {label: '上半年', value: '1'},
        {label: '下半年', value: '2'},
        { label: '上半年', value: '1' },
        { label: '下半年', value: '2' },
      ],
      tableColumn: [
        {
@@ -475,8 +460,8 @@
      tabIndex: '0',
      formDialog: false,
      editFormDialog: false,
      upLoading:false,
      outLoading:false,
      upLoading: false,
      outLoading: false,
      ratifyInfo: {
        writeUserId: '',
        ratifyUserId: '',
@@ -499,7 +484,7 @@
  // 方法集合
  methods: {
    // 查询列表
    searchList () {
    searchList() {
      let params = {}
      if (this.tabIndex === '0') {
        params = {
@@ -516,9 +501,9 @@
      }
      if (this.tabIndex === '0') {
        this.tableLoading = true
        pageMethodSearchNew({...params.oldPage,...params.entity}).then(res => {
        pageMethodSearchNew({ ...params.oldPage, ...params.entity }).then(res => {
          this.tableLoading = false
          if (res.code === 200){
          if (res.code === 200) {
            this.tableData = res.data.records
            this.page.total = res.data.total
          }
@@ -529,11 +514,11 @@
      } else {
        this.oldTableLoading = true
        pageSearchNewArchived({
          ...params.page,...params.entity
          ...params.page, ...params.entity
        }).then(res => {
          this.oldTableLoading = false
          if (res.code === 200){
            console.log('res>>>>>>>>>>>>',res)
          if (res.code === 200) {
            console.log('res>>>>>>>>>>>>', res)
            this.oldTableData = res.data.records
            this.oldPage.total = res.data.total
          }
@@ -545,19 +530,19 @@
      }
    },
    // 打开历史档案详情弹框
    openViewDia (row) {
    openViewDia(row) {
      this.archivedId = row.archivedId
      this.viewRocordDia = true
      this.pageSearchNewBackups()
    },
    pageSearchNewBackups () {
    pageSearchNewBackups() {
      const entity = {
        archivedId: this.archivedId,
      }
      this.tableLoading1 = true
      pageSearchNewBackups({...this.page1,...entity}).then(res => {
      pageSearchNewBackups({ ...this.page1, ...entity }).then(res => {
        this.tableLoading1 = false
        if (res.code === 200){
        if (res.code === 200) {
          this.tableData1 = res.data.records
          this.page1.total = res.data.total
        }
@@ -568,17 +553,17 @@
      })
    },
    // 打开批准弹框
    openApprovalDialog (row) {
    openApprovalDialog(row) {
      this.approvalDialog = true
      this.archivedId = row.archivedId
    },
    // 打开批准弹框
    openApprovalDialog1 (row) {
    openApprovalDialog1(row) {
      this.approvalDialog1 = true
      this.archivedId = row.archivedId
    },
    // 提交批准
    handleApproval (status) {
    handleApproval(status) {
      this.approvalLoading = true
      let internalReport = {
        archivedId: this.archivedId,
@@ -597,7 +582,7 @@
      })
    },
    // 提交批准
    handleApproval1 (status) {
    handleApproval1(status) {
      this.approvalLoading = true
      let internalReport = {
        archivedName: this.archivedName,
@@ -614,41 +599,40 @@
      })
    },
    // 重置查询条件
    resetSearchForm () {
    resetSearchForm() {
      this.searchForm.standardNo = '';
      this.searchList()
    },
    // 操作新增框
    openFormDia (row) {
    openFormDia(row) {
      this.formDialog = true
      this.$nextTick(() => {
        this.$refs.formDialog.openDia(row)
      })
    },
    // 关闭新增弹框
    closeDia () {
    closeDia() {
      this.formDialog = false
      this.searchList()
    },
    // 打开修改弹框
    openEditFormDia (row) {
    openEditFormDia(row) {
      this.editFormDialog = true
      this.$nextTick(() => {
        this.$refs.editFormDialog.openDia(row)
      })
    },
    //
    closeEditDia () {
    closeEditDia() {
      this.editFormDialog = false
      this.searchList()
    },
    // 导出
    handleOut (row) {
    handleOut(row) {
      this.outLoading = true
      exportMethodSearchNew({archivedId:row.archivedId}).then(res => {
        const blob = new Blob([res],{ type: 'application/octet-stream' });
      exportMethodSearchNew({ archivedId: row.archivedId }).then(res => {
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '标准查新导出.xlsx')
        this.$message.success('导出成功')
      })
    },
    // 导入
@@ -674,23 +658,23 @@
      }
    },
    // 分页
    pagination(page){
    pagination(page) {
      this.page.size = page.limit
      this.searchList();
    },
    pagination1(page){
    pagination1(page) {
      this.page1.size = page.limit
      this.pageSearchNewBackups();
    },
    oldPagination(page){
    oldPagination(page) {
      this.oldPage.size = page.limit
      this.searchList();
    },
    //
    getUserList(){
    getUserList() {
      this.$axios.post(this.$api.user.selectUserList, {
        page: {current: -1, size: -1,},
        entity: {name: null}
        page: { current: -1, size: -1, },
        entity: { name: null }
      }, {
        headers: {
          'Content-Type': 'application/json'
@@ -723,6 +707,7 @@
  display: flex;
  justify-content: space-between;
}
.table-tab {
  margin-bottom: 10px;
}
src/views/CNAS/process/nonconformingWork/nonconformingDistribution/index.vue
@@ -178,7 +178,6 @@
    handleDown(row) {
      exportInconsistentDistribution({ distributionId: row.distributionId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '不符合项的分布' + '.docx');
      })
src/views/CNAS/process/nonconformingWork/nonconformingItem/index.vue
@@ -151,7 +151,6 @@
    // 导出
    openDownloadDia(row) {
      superviseDetailAccordingExport({ superviseDetailsId: row.superviseDetailsId }).then(res => {
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '不符合项导出' + '.docx');
      }).catch(err => {
src/views/CNAS/process/reportResults/index.vue
@@ -223,7 +223,6 @@
      exportProcessReport({ ids: this.mutilSelect.map(m => m.id) }).then(res => {
        this.outLoading = false
        if (res.code === 201) return
        this.$message.success('导出成功')
        const url = this.javaApi + '/word/' + res.data;
        this.$download.saveAs(url, "报告结果");
      })
src/views/CNAS/resourceDemand/device/component/borrow.vue
@@ -547,7 +547,6 @@
        })
        const filename = decodeURI(this.clickNodeVal.label + '设备借出统计' + '.xlsx')
        this.$download.saveAs(blob, filename)
        this.$message.success('导出成功')
      })
    },
    handleLookList(row) {
src/views/CNAS/resourceDemand/device/component/calibration.vue
@@ -420,11 +420,9 @@
      if (state) {
        let url = this.javaApi + '/img/' + row.systemFileName;
        this.$download.saveAs(url, row.systemFileName)
        this.$message.success('下载成功')
      } else {
        const url = this.javaApi + '/word/' + row.systemFileName
        this.$download.saveAs(url, row.systemFileName)
        this.$message.success('下载成功')
      }
    },
    //导出
@@ -437,7 +435,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '设备校准.xlsx')
        this.$message.success('导出成功')
      })
    },
    deleteFile() {
src/views/CNAS/resourceDemand/device/component/equipmentAcceptance.vue
@@ -273,7 +273,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '设备验收.doc')
        this.$message.success('导出成功')
      })
    },
    // 删除
src/views/CNAS/resourceDemand/device/component/equipmentFailure.vue
@@ -118,7 +118,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '仪器设备修理申请表.doc')
        this.$message.success('导出成功')
      })
    },
    // 删除
src/views/CNAS/resourceDemand/device/component/equipmentScrap.vue
@@ -118,7 +118,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '仪器设备报废申请表.doc')
        this.$message.success('导出成功')
      })
    },
    // 删除
src/views/CNAS/resourceDemand/device/component/equipmentVerificationPlan.vue
@@ -581,7 +581,6 @@
      this.outLoading = true
      exportReviewExamineRecordContrast({ planDetailsId: this.downRow.planDetailsId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '仪器设备期间核查比对记录表.doc')
      })
src/views/CNAS/resourceDemand/device/component/files.vue
@@ -809,7 +809,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '设备档案卡.doc')
        this.$message.success('导出成功')
      })
    },
    handleSuccessUpImg2(response) {
src/views/CNAS/resourceDemand/device/component/maintenance.vue
@@ -183,7 +183,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '设备维护保养记录.doc')
        this.$message.success('导出成功')
      })
    },
    //操作详情删除
src/views/CNAS/resourceDemand/device/component/state.vue
@@ -430,7 +430,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '设备停/启用.doc')
        this.$message.success('导出成功')
      })
    },
    // 删除
@@ -463,7 +462,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '设备停用/启用.xlsx')
        this.$message.success('导出成功')
      }).finally(() => {
        this.outLoading = false
      })
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue
@@ -4,14 +4,8 @@
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="日期" prop="registerDate">
            <el-date-picker v-model="searchForm.registerDate"
                            clearable
                            format="yyyy-MM-dd"
                            placeholder="选择日期"
                            size="small"
                            style="width: 100%"
                            type="date"
                            value-format="yyyy-MM-dd">
            <el-date-picker v-model="searchForm.registerDate" clearable format="yyyy-MM-dd" placeholder="选择日期"
              size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
            </el-date-picker>
          </el-form-item>
          <el-form-item>
@@ -27,9 +21,10 @@
    </div>
    <div class="table">
      <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination"
                  :page="page" :tableLoading="tableLoading"></lims-table>
        :page="page" :tableLoading="tableLoading"></lims-table>
    </div>
    <personnel-management-dia v-if="threeWastesDia" ref="threeWastesDia" @closeThreeWastesDia="closeThreeWastesDia"></personnel-management-dia>
    <personnel-management-dia v-if="threeWastesDia" ref="threeWastesDia"
      @closeThreeWastesDia="closeThreeWastesDia"></personnel-management-dia>
  </div>
</template>
@@ -46,7 +41,7 @@
export default {
  name: 'Personnel-management',
  // import 引入的组件需要注入到对象中才能使用
  components: { limsTable, PersonnelManagementDia},
  components: { limsTable, PersonnelManagementDia },
  data() {
    // 这里存放数据
    return {
@@ -135,14 +130,14 @@
  // 方法集合
  methods: {
    // 查询列表
    searchList () {
    searchList() {
      this.tableLoading = true
      pageForeignRegister({
        ...this.page,
        ...this.searchForm
      }).then(res => {
        this.tableLoading = false
        if (res.code === 200){
        if (res.code === 200) {
          this.tableData = res.data.records
          this.page.total = res.data.total
        }
@@ -153,16 +148,16 @@
      })
    },
    // 删除
    delPlan (row) {
    delPlan(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        delForeignRegister({registerId:row.registerId}).then(res =>{
        delForeignRegister({ registerId: row.registerId }).then(res => {
          this.tableLoading = false
          if (res.code === 200){
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.searchList()
          }
@@ -178,26 +173,25 @@
      });
    },
    // 新增,编辑,批准弹框
    openFormDia (type, row) {
    openFormDia(type, row) {
      this.threeWastesDia = true
      this.$nextTick(() => {
        this.$refs.threeWastesDia.openDia(type, row)
      })
    },
    // 导出
    handleDown () {
    handleDown() {
      exportForeignRegister(this.searchForm).then(res => {
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '外来人员登记.docx')
        this.$message.success('导出成功')
      })
    },
    closeThreeWastesDia () {
    closeThreeWastesDia() {
      this.threeWastesDia = false
      this.searchList()
    },
    // 重置查询条件
    resetSearchForm () {
    resetSearchForm() {
      this.searchForm.registerDate = '';
      this.searchList()
    },
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/illuminance-recording.vue
@@ -6,10 +6,7 @@
        <el-button size="small" type="primary" @click="clickAdd">新 增</el-button>
      </div>
    </div>
    <el-table
      :data="tableData"
      height="calc(100vh - 18em)"
      style="width: 100%">
    <el-table :data="tableData" height="calc(100vh - 18em)" style="width: 100%">
      <el-table-column label="序号" type="index" width="120">
        <template v-slot="scope">
          <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
@@ -32,44 +29,29 @@
        </template>
      </el-table-column>
    </el-table>
    <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
                   :total="search.total" layout="->,total, sizes, prev, pager, next, jumper"
                   @size-change="handleSizeChange"
                   @current-change="handleCurrentChange">
    <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total"
      layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
      @current-change="handleCurrentChange">
    </el-pagination>
    <el-dialog
      :visible.sync="dialogVisible"
      title="新增"
      width="50%"
      @open="openDialog">
    <el-dialog :visible.sync="dialogVisible" title="新增" width="50%" @open="openDialog">
      <div style="height: 50vh; overflow-y: auto">
        <el-form ref="form" :model="form" label-width="120px">
          <el-row>
            <el-col :span="12">
              <el-form-item :rules="[{ required: true, message: '请输入测试地点', trigger: 'change' }]" label="测试日期"
                            prop="testDate">
                <el-date-picker
                  v-model="form.testDate"
                  format="yyyy-MM-dd"
                  placeholder="选择日期"
                  size="small"
                  style="width: 100%"
                  type="date"
                  value-format="yyyy-MM-dd">
                prop="testDate">
                <el-date-picker v-model="form.testDate" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                  style="width: 100%" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item :rules="[{ required: true, message: '请输入设备名称', trigger: 'change' }]" label="设备名称"
                            prop="deviceId">
                <el-select v-model="form.deviceId"
                           class="table_input"
                           clearable
                           filterable
                           placeholder="设备名称"
                           size="small" @change="getCalibrationDateFun">
                  <el-option v-for="item in equipOptions" :key="item.id"  :label="item.deviceName" :value="item.id">
                    {{item.deviceName + item.managementNumber}}
                prop="deviceId">
                <el-select v-model="form.deviceId" class="table_input" clearable filterable placeholder="设备名称"
                  size="small" @change="getCalibrationDateFun">
                  <el-option v-for="item in equipOptions" :key="item.id" :label="item.deviceName" :value="item.id">
                    {{ item.deviceName + item.managementNumber }}
                  </el-option>
                </el-select>
              </el-form-item>
@@ -91,8 +73,8 @@
            </el-col>
            <el-col :span="12">
              <el-form-item label="检测者" prop="recipientUser">
                <el-select v-model="form.testerId" clearable filterable placeholder="请选择"
                           size="small" style="width: 100%;">
                <el-select v-model="form.testerId" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;">
                  <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                  </el-option>
                </el-select>
@@ -100,8 +82,8 @@
            </el-col>
            <el-col :span="12">
              <el-form-item label="核查人" prop="recipientUser">
                <el-select v-model="form.checkerId" clearable filterable placeholder="请选择"
                           size="small" style="width: 100%;" >
                <el-select v-model="form.checkerId" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;">
                  <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                  </el-option>
                </el-select>
@@ -109,11 +91,7 @@
            </el-col>
            <el-col :span="24">
              <el-form-item label="结论">
                <el-input
                  v-model="form.conclusion"
                  :rows="2"
                  placeholder="请输入内容"
                  type="textarea">
                <el-input v-model="form.conclusion" :rows="2" placeholder="请输入内容" type="textarea">
                </el-input>
              </el-form-item>
            </el-col>
@@ -123,25 +101,14 @@
              <el-button size="small" type="primary" @click="feMeasuredQuantityListAdd">新增</el-button>
            </div>
            <div>
              <el-table
                :data="form.illuminationDetectionAreaList"
                height="40vh"
                style="width: 100%; margin: auto">
              <el-table :data="form.illuminationDetectionAreaList" height="40vh" style="width: 100%; margin: auto">
                <el-table-column label="序号" type="index" width="80"></el-table-column>
                <el-table-column
                  align="center"
                  label="检测区域名称"
                  min-width="180"
                  prop="detectionAreaLabel">
                <el-table-column align="center" label="检测区域名称" min-width="180" prop="detectionAreaLabel">
                  <template #default="{ row }">
                    <el-input v-model="row.detectionAreaLabel" :rows="1" type="textarea"></el-input>
                  </template>
                </el-table-column>
                <el-table-column
                  align="center"
                  label="检测值"
                  min-width="300"
                  prop="name">
                <el-table-column align="center" label="检测值" min-width="300" prop="name">
                  <template>
                    <el-table-column align="center" label="第一次" min-width="100" prop="valueOne">
                      <template #default="{ row }">
@@ -165,19 +132,12 @@
                    </el-table-column>
                  </template>
                </el-table-column>
                <el-table-column
                  align="center"
                  label="备注"
                  min-width="180"
                  prop="detectionAreaLabel">
                <el-table-column align="center" label="备注" min-width="180" prop="detectionAreaLabel">
                  <template #default="{ row }">
                    <el-input v-model="row.remark" :rows="1" type="textarea"></el-input>
                  </template>
                </el-table-column>
                <el-table-column
                  fixed="right"
                  label="操作"
                  width="100">
                <el-table-column fixed="right" label="操作" width="100">
                  <template slot-scope="scope">
                    <el-button size="small" type="text" @click="feMeasuredQuantityListDelete(scope.row, scope.$index)">
                      删除
@@ -190,9 +150,9 @@
        </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">确 定</el-button>
  </span>
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
@@ -256,22 +216,22 @@
        if (!isNaN(row.valueOne) && !isNaN(row.valueTwo) && !isNaN(row.valueThree)) {
          const avg = Number(row.valueOne) + Number(row.valueTwo) + Number(row.valueThree)
          console.log(avg)
          row.average = Math.round(avg/3);
          row.average = Math.round(avg / 3);
        } else {
          this.$message.warning("必须为数字!")
        }
      }
    },
    edit(row) {
      getFeIlluminationDetectionArea({intensityIlluminationId:row.intensityIlluminationId}).then(res => {
        this.form = {...row}
      getFeIlluminationDetectionArea({ intensityIlluminationId: row.intensityIlluminationId }).then(res => {
        this.form = { ...row }
        this.form.illuminationDetectionAreaList = res.data;
        this.dialogVisible = true
      });
    },
    initData() {
      getFeLightningProtection({...this.search}).then(res => {
        if (res.code === 200){
      getFeLightningProtection({ ...this.search }).then(res => {
        if (res.code === 200) {
          this.tableData = res.data.records;
          this.search.total = res.data.total;
        }
@@ -291,7 +251,7 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteFeLightningProtection({intensityIlluminationId: row.intensityIlluminationId}).then(res => {
        deleteFeLightningProtection({ intensityIlluminationId: row.intensityIlluminationId }).then(res => {
          this.$message.success('删除成功!')
          this.initData()
        })
@@ -299,8 +259,8 @@
    },
    feMeasuredQuantityListDelete(row, index) {
      if (row.detectionAreaId) {
        deleteFeIlluminationDetectionArea({detectionAreaId:row.detectionAreaId}).then(res => {
          if (res.code === 200){
        deleteFeIlluminationDetectionArea({ detectionAreaId: row.detectionAreaId }).then(res => {
          if (res.code === 200) {
            this.form.illuminationDetectionAreaList.splice(index, 1)
            this.$message.success('删除成功!')
          }
@@ -326,7 +286,7 @@
    // 获取所有设备
    getEquipOptions() {
      this.equipOptions = []
      deviceScopeSearch({status:'0'}).then(res => {
      deviceScopeSearch({ status: '0' }).then(res => {
        if (res.code === 200 && res.data) {
          this.equipOptions = res.data
        }
@@ -379,11 +339,10 @@
    },
    // 导出
    downLoadPost(row) {
      exportFeIllumination({intensityIlluminationId: row.intensityIlluminationId}).then(res => {
      exportFeIllumination({ intensityIlluminationId: row.intensityIlluminationId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '照度记录.docx')
        this.$message.success('导出成功')
      })
    },
  }
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue
@@ -6,10 +6,7 @@
        <el-button size="small" type="primary" @click="openAddDia">新 增</el-button>
      </div>
    </div>
    <el-table
      :data="tableData"
      height="calc(100vh - 18em)"
      style="width: 100%">
    <el-table :data="tableData" height="calc(100vh - 18em)" style="width: 100%">
      <el-table-column label="序号" type="index" width="120">
        <template v-slot="scope">
          <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span>
@@ -33,50 +30,35 @@
        </template>
      </el-table-column>
    </el-table>
    <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
                   :total="search.total" layout="->,total, sizes, prev, pager, next, jumper"
                   @size-change="handleSizeChange"
                   @current-change="handleCurrentChange">
    <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total"
      layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
      @current-change="handleCurrentChange">
    </el-pagination>
    <el-dialog
      :visible.sync="dialogVisible"
      title="新增"
      width="50%"
      @open="openDialog">
    <el-dialog :visible.sync="dialogVisible" title="新增" width="50%" @open="openDialog">
      <div style="height: 50vh; overflow-y: auto">
        <el-form ref="form" :model="form" label-width="120px">
          <el-row>
            <el-col :span="12">
              <el-form-item :rules="[{ required: true, message: '请输入测试地点', trigger: 'blur' }]" label="测试地点"
                            prop="testLocation">
                prop="testLocation">
                <el-input v-model="form.testLocation" size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item :rules="[{ required: true, message: '请输入测试日期', trigger: 'change' }]" label="测试日期"
                            prop="testDate">
                <el-date-picker
                  v-model="form.testDate"
                  format="yyyy-MM-dd"
                  placeholder="选择日期"
                  size="small"
                  style="width: 100%"
                  type="date"
                  value-format="yyyy-MM-dd">
                prop="testDate">
                <el-date-picker v-model="form.testDate" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                  style="width: 100%" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item :rules="[{ required: true, message: '请输入设备名称', trigger: 'change' }]" label="设备名称"
                            prop="deviceId">
                <el-select v-model="form.deviceId"
                           class="table_input"
                           clearable
                           filterable
                           placeholder="设备名称"
                           size="small" @change="getCalibrationDateFun">
                  <el-option v-for="item in equipOptions" :key="item.id"  :label="item.deviceName" :value="item.id">
                    {{item.deviceName + item.managementNumber}}
                prop="deviceId">
                <el-select v-model="form.deviceId" class="table_input" clearable filterable placeholder="设备名称"
                  size="small" @change="getCalibrationDateFun">
                  <el-option v-for="item in equipOptions" :key="item.id" :label="item.deviceName" :value="item.id">
                    {{ item.deviceName + item.managementNumber }}
                  </el-option>
                </el-select>
              </el-form-item>
@@ -98,8 +80,8 @@
            </el-col>
            <el-col :span="12">
              <el-form-item label="检测者" prop="recipientUser">
                <el-select v-model="form.testerId" clearable filterable placeholder="请选择"
                           size="small" style="width: 100%;">
                <el-select v-model="form.testerId" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;">
                  <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                  </el-option>
                </el-select>
@@ -107,8 +89,8 @@
            </el-col>
            <el-col :span="12">
              <el-form-item label="核查人" prop="recipientUser">
                <el-select v-model="form.checkerId" clearable filterable placeholder="请选择"
                           size="small" style="width: 100%;" >
                <el-select v-model="form.checkerId" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;">
                  <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                  </el-option>
                </el-select>
@@ -116,11 +98,7 @@
            </el-col>
            <el-col :span="24">
              <el-form-item label="结论">
                <el-input
                  v-model="form.conclusion"
                  :rows="2"
                  placeholder="请输入内容"
                  type="textarea">
                <el-input v-model="form.conclusion" :rows="2" placeholder="请输入内容" type="textarea">
                </el-input>
              </el-form-item>
            </el-col>
@@ -130,25 +108,14 @@
              <el-button size="small" type="primary" @click="feMeasuredQuantityListAdd">新增</el-button>
            </div>
            <div>
              <el-table
                :data="form.feMeasuredQuantityList"
                height="40vh"
                style="width: 100%; margin: auto">
              <el-table :data="form.feMeasuredQuantityList" height="40vh" style="width: 100%; margin: auto">
                <el-table-column label="序号" type="index" width="80"></el-table-column>
                <el-table-column
                  align="center"
                  label="测定量名称"
                  min-width="180"
                  prop="measuredQuantityLabel">
                <el-table-column align="center" label="测定量名称" min-width="180" prop="measuredQuantityLabel">
                  <template #default="{ row }">
                    <el-input v-model="row.measuredQuantityLabel" :rows="1" type="textarea"></el-input>
                  </template>
                </el-table-column>
                <el-table-column
                  align="center"
                  label="值"
                  min-width="300"
                  prop="name">
                <el-table-column align="center" label="值" min-width="300" prop="name">
                  <template>
                    <el-table-column align="center" label="A" min-width="100" prop="valueA">
                      <template #default="{ row }">
@@ -167,10 +134,7 @@
                    </el-table-column>
                  </template>
                </el-table-column>
                <el-table-column
                  fixed="right"
                  label="操作"
                  width="100">
                <el-table-column fixed="right" label="操作" width="100">
                  <template slot-scope="scope">
                    <el-button size="small" type="text" @click="feMeasuredQuantityListDelete(scope.row, scope.$index)">
                      删除
@@ -250,7 +214,7 @@
      getLaboratoryFacilityPowerStablePage({
        ...this.search
      }).then(res => {
        if (res.code === 200){
        if (res.code === 200) {
          this.tableData = res.data.records;
          this.search.total = res.data.total;
        }
@@ -271,20 +235,20 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteLaboratoryFacilityPowerStable({powerStableId:row.powerStableId}).then(res => {
        deleteLaboratoryFacilityPowerStable({ powerStableId: row.powerStableId }).then(res => {
          this.$message.success('删除成功!')
          this.initData()
        })
      })
    },
    openAddDia () {
    openAddDia() {
      this.dialogVisible = true
      this.getEquipOptions()
    },
    // 获取所有设备
    getEquipOptions() {
      this.equipOptions = []
      deviceScopeSearch({status:'0'}).then(res => {
      deviceScopeSearch({ status: '0' }).then(res => {
        if (res.code === 200 && res.data) {
          this.equipOptions = res.data
        }
@@ -314,7 +278,7 @@
    // 电源稳定性-测定量弹框中表格的删除行
    feMeasuredQuantityListDelete(row, index) {
      if (row.measuredQuantityId) {
        deleteFeMeasuredQuantity({measuredQuantityId:row.measuredQuantityId}).then(res => {
        deleteFeMeasuredQuantity({ measuredQuantityId: row.measuredQuantityId }).then(res => {
          if (res.code === 201) return
          this.form.feMeasuredQuantityList.splice(index, 1)
          this.$message.success('删除成功!')
@@ -353,17 +317,16 @@
    },
    // 导出
    downLoadPost(row) {
      exportFePowerStable({powerStableId: row.powerStableId}).then(res => {
      exportFePowerStable({ powerStableId: row.powerStableId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '电源稳定性.docx')
        this.$message.success('导出成功')
      })
    },
    // 电源稳定性 点击行编辑触发
    edit(row) {
      getFeMeasuredQuantityService({powerStableId: row.powerStableId}).then((res => {
        this.form = {...row}
      getFeMeasuredQuantityService({ powerStableId: row.powerStableId }).then((res => {
        this.form = { ...row }
        this.form.feMeasuredQuantityList = res.data;
        this.dialogVisible = true
      }))
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/temperature-humidity-record.vue
@@ -11,12 +11,8 @@
            <el-button size="small" type="primary" @click="clickAdd">新 增</el-button>
          </div>
        </div>
        <el-table
            :data="tableData"
            height="calc(100vh - 18em)"
            highlight-current-row
            style="width: 100%"
            @row-click="clickRow">
        <el-table :data="tableData" height="calc(100vh - 18em)" highlight-current-row style="width: 100%"
          @row-click="clickRow">
          <el-table-column label="序号" type="index" width="60" align="center"></el-table-column>
          <el-table-column label="月度时间" min-width="180" prop="monthDate"></el-table-column>
          <el-table-column label="试验区域名称" min-width="180" prop="testAreaName"></el-table-column>
@@ -31,33 +27,32 @@
            <template v-slot="scope">
              <el-button size="small" type="text" @click="downLoadPost(scope.row)">导出</el-button>
              <el-button size="small" type="text" @click="edit(scope.row)">编辑</el-button>
              <el-button :disabled="scope.row.isAffirm === '1'" size="small" type="text" @click="openApprovalDialog(scope.row)">确认</el-button>
              <el-button :disabled="scope.row.isAffirm === '1'" size="small" type="text"
                @click="openApprovalDialog(scope.row)">确认</el-button>
              <el-button size="small" type="text" @click="deleteRowFun(scope.row)">删除</el-button>
            </template>
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
                       :total="search.total" layout="->,total, sizes, prev, pager, next, jumper"
                       @size-change="handleSizeChange"
                       @current-change="handleCurrentChange">
          :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
          @current-change="handleCurrentChange">
        </el-pagination>
      </el-col>
      <el-col :span="12">
        <div class="header">
          <div>温湿度记录:{{ saveRow.monthDate }}</div>
          <div>
            <el-button v-if="saveRow.monthDate" size="small" type="primary" @click="dialogVisible1 = true">新 增</el-button>
            <el-button v-if="saveRow.monthDate" size="small" type="primary" @click="dialogVisible1 = true">新
              增</el-button>
          </div>
        </div>
        <el-table
            :data="tableData1"
            height="calc(100vh - 18em)"
            style="width: 100%">
        <el-table :data="tableData1" height="calc(100vh - 18em)" style="width: 100%">
          <el-table-column label="序号" type="index" width="60" align="center"></el-table-column>
          <el-table-column label="日期" min-width="100" prop="recordDate"></el-table-column>
          <el-table-column align="center" label="上午" min-width="200">
            <template>
              <el-table-column label="时间" min-width="110" prop="morningTestTime" show-overflow-tooltip></el-table-column>
              <el-table-column label="时间" min-width="110" prop="morningTestTime"
                show-overflow-tooltip></el-table-column>
              <el-table-column label="温度" min-width="80" prop="morningTemp" show-overflow-tooltip></el-table-column>
              <el-table-column label="湿度" min-width="80" prop="morningHum" show-overflow-tooltip></el-table-column>
            </template>
@@ -80,36 +75,26 @@
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="search1.size" :page-sizes="[10, 20, 30, 50, 100]"
                       :total="search1.total" layout="->,total, sizes, prev, pager, next, jumper"
                       @size-change="handleSizeChange1"
                       @current-change="handleCurrentChange1">
          :total="search1.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange1"
          @current-change="handleCurrentChange1">
        </el-pagination>
      </el-col>
    </el-row>
    <el-dialog
        :visible.sync="dialogVisible"
        title="提示"
        width="50%">
    <el-dialog :visible.sync="dialogVisible" title="提示" width="50%">
      <div style="height: 20vh;">
        <el-form ref="form" :model="form" label-width="80px">
          <el-row>
            <el-col :span="24">
              <el-form-item :rules="[{ required: true, message: '请输入月度时间', trigger: 'blur' }]" label="月度时间"
                            prop="monthDate">
                <el-date-picker
                    v-model="form.monthDate"
                    format="yyyy-MM"
                    placeholder="选择月份"
                    size="small"
                    style="width: 100%"
                    type="month"
                    value-format="yyyy-MM">
                prop="monthDate">
                <el-date-picker v-model="form.monthDate" format="yyyy-MM" placeholder="选择月份" size="small"
                  style="width: 100%" type="month" value-format="yyyy-MM">
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="24">
              <el-form-item :rules="[{ required: true, message: '请输入试验区域', trigger: 'blur' }]" label="试验区域"
                            prop="testAreaName">
                prop="testAreaName">
                <el-input v-model="form.testAreaName"></el-input>
              </el-form-item>
            </el-col>
@@ -117,40 +102,25 @@
        </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">确 定</el-button>
  </span>
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog
        :visible.sync="dialogVisible1"
        title="提示"
        width="50%"
        @open="openDialog">
    <el-dialog :visible.sync="dialogVisible1" title="提示" width="50%" @open="openDialog">
      <div style="height: 40vh;">
        <el-form ref="form1" :model="form1" label-width="120px">
          <el-row>
            <el-col :span="24">
              <el-form-item label="日期">
                <el-date-picker
                  v-model="form1.recordDate"
                  format="yyyy-MM-dd"
                  placeholder="请选择日期"
                  size="small"
                  style="width: 50%"
                  type="date"
                  value-format="yyyy-MM-dd">
                <el-date-picker v-model="form1.recordDate" format="yyyy-MM-dd" placeholder="请选择日期" size="small"
                  style="width: 50%" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="上午时间">
                <el-time-picker
                  v-model="form1.morningTestTime"
                  size="small"
                  value-format="HH:mm:ss"
                  format="HH:mm:ss"
                  style="width: 100%"
                  placeholder="请选择时间">
                <el-time-picker v-model="form1.morningTestTime" size="small" value-format="HH:mm:ss" format="HH:mm:ss"
                  style="width: 100%" placeholder="请选择时间">
                </el-time-picker>
              </el-form-item>
            </el-col>
@@ -166,8 +136,8 @@
            </el-col>
            <el-col :span="12">
              <el-form-item label="上午记录员">
                <el-select v-model="form1.morningRecorderId" clearable filterable placeholder="请选择"
                           size="small" style="width: 100%;">
                <el-select v-model="form1.morningRecorderId" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;">
                  <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                  </el-option>
                </el-select>
@@ -175,13 +145,8 @@
            </el-col>
            <el-col :span="12">
              <el-form-item label="下午时间">
                <el-time-picker
                  v-model="form1.afternoonTime"
                  size="small"
                  value-format="HH:mm:ss"
                  format="HH:mm:ss"
                  style="width: 100%"
                  placeholder="请选择时间">
                <el-time-picker v-model="form1.afternoonTime" size="small" value-format="HH:mm:ss" format="HH:mm:ss"
                  style="width: 100%" placeholder="请选择时间">
                </el-time-picker>
              </el-form-item>
            </el-col>
@@ -197,8 +162,8 @@
            </el-col>
            <el-col :span="12">
              <el-form-item label="下午记录员">
                <el-select v-model="form1.afternoonRecorderId" clearable filterable placeholder="请选择"
                           size="small" style="width: 100%;">
                <el-select v-model="form1.afternoonRecorderId" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;">
                  <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
                  </el-option>
                </el-select>
@@ -206,11 +171,7 @@
            </el-col>
            <el-col :span="24">
              <el-form-item label="备注">
                <el-input
                    v-model="form1.note"
                    :rows="2"
                    placeholder="请输入内容"
                    type="textarea">
                <el-input v-model="form1.note" :rows="2" placeholder="请输入内容" type="textarea">
                </el-input>
              </el-form-item>
            </el-col>
@@ -218,9 +179,9 @@
        </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible1 = false">取 消</el-button>
    <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability1">确 定</el-button>
  </span>
        <el-button @click="dialogVisible1 = false">取 消</el-button>
        <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability1">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog :visible.sync="approvalDialog" title="确认" width="30%" @close="subjoin = ''">
      <span>
@@ -295,11 +256,11 @@
    }
  },
  methods: {
    openApprovalDialog (row) {
    openApprovalDialog(row) {
      this.approvalDialog = true
      this.approvalRow = row
    },
    handleApproval () {
    handleApproval() {
      this.approvalLoading = true
      const params = {
        dateId: this.approvalRow.dateId,
@@ -367,7 +328,7 @@
      this.initData1(row.dateId)
    },
    edit(row) {
      this.form = {...row}
      this.form = { ...row }
      this.dialogVisible = true
    },
    deleteRowFun(row) {
@@ -376,23 +337,22 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteFeTempHumDate({dateId:row.dateId}).then(res => {
        deleteFeTempHumDate({ dateId: row.dateId }).then(res => {
          this.$message.success('删除成功!')
          this.initData()
        })
      })
    },
    edit1(row) {
      this.form1 = {...row}
      this.form1 = { ...row }
      this.dialogVisible1 = true
    },
    // 导出
    downLoadPost(row) {
      exportTemperatureAndHumidityRecords({dateId:row.dateId}).then(res => {
      exportTemperatureAndHumidityRecords({ dateId: row.dateId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '温湿度记录.docx')
        this.$message.success('导出成功')
      })
    },
    deleteRowFun1(row) {
@@ -401,7 +361,7 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteFeTempHumRecord({tempHumId:row.tempHumId}).then(res => {
        deleteFeTempHumRecord({ tempHumId: row.tempHumId }).then(res => {
          this.$message.success('删除成功!')
          this.initData1(this.saveRow.dateId)
        })
@@ -410,8 +370,9 @@
    initData() {
      getFeTempHumDate({
        ...this.search,
        ...this.search}).then(res => {
        if (res.code === 200){
        ...this.search
      }).then(res => {
        if (res.code === 200) {
          this.tableData = res.data.records;
          this.search.total = res.data.total;
          if (res.data.records.length === 0) {
@@ -423,12 +384,12 @@
      })
    },
    initData1(dateId) {
      let form = {dateId: dateId}
      let form = { dateId: dateId }
      getFeTempHumRecordPage({
        ...this.search1,
        ...form
      }).then(res => {
        if (res.code === 200){
        if (res.code === 200) {
          this.tableData1 = res.data.records;
          this.search1.total = res.data.total;
        }
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-treatment.vue
@@ -4,12 +4,12 @@
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="备注" prop="remark">
              <el-input size="small" placeholder="请输入" clearable v-model="searchForm.remark">
              </el-input>
            <el-input size="small" placeholder="请输入" clearable v-model="searchForm.remark">
            </el-input>
          </el-form-item>
          <el-form-item>
              <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">查 询</el-button>
              <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">重 置</el-button>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">查 询</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">重 置</el-button>
          </el-form-item>
        </el-form>
      </div>
@@ -20,9 +20,10 @@
    </div>
    <div class="table">
      <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination"
                  :page="page" :tableLoading="tableLoading"></lims-table>
        :page="page" :tableLoading="tableLoading"></lims-table>
    </div>
    <three-wastes-dialog v-if="threeWastesDia" ref="threeWastesDia" @closeThreeWastesDia="closeThreeWastesDia"></three-wastes-dialog>
    <three-wastes-dialog v-if="threeWastesDia" ref="threeWastesDia"
      @closeThreeWastesDia="closeThreeWastesDia"></three-wastes-dialog>
  </div>
</template>
@@ -121,11 +122,11 @@
  // 方法集合
  methods: {
    // 查询列表
    searchList () {
    searchList() {
      this.tableLoading = true
      pageInternalWastes({...this.page,...this.searchForm}).then(res => {
      pageInternalWastes({ ...this.page, ...this.searchForm }).then(res => {
        this.tableLoading = false
        if (res.code === 200){
        if (res.code === 200) {
          this.tableData = res.data.records
          this.page.total = res.data.total
        }
@@ -135,16 +136,16 @@
      })
    },
    // 删除
    delPlan (row) {
    delPlan(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        removeStandardSubstance({wastesId:row.wastesId}).then(res => {
        removeStandardSubstance({ wastesId: row.wastesId }).then(res => {
          this.tableLoading = false
          if (res.code === 200){
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.searchList()
          }
@@ -160,27 +161,26 @@
      });
    },
    // 新增,编辑,批准弹框
    openFormDia (type, row) {
    openFormDia(type, row) {
      this.threeWastesDia = true
      this.$nextTick(() => {
        this.$refs.threeWastesDia.openDia(type, row)
      })
    },
    // 导出
    handleDown (row) {
      exportInternalWastes({wastesId:row.wastesId}).then(res =>{
    handleDown(row) {
      exportInternalWastes({ wastesId: row.wastesId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res],{ type: 'application/msword' });
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '三废处理导出.docx')
        this.$message.success('导出成功')
      })
    },
    closeThreeWastesDia () {
    closeThreeWastesDia() {
      this.threeWastesDia = false
      this.searchList()
    },
    // 重置查询条件
    resetSearchForm () {
    resetSearchForm() {
      this.searchForm.remark = '';
      this.searchList()
    },
src/views/CNAS/resourceDemand/standardMaterial/index.vue
@@ -5,11 +5,11 @@
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="标准物质名称" prop="name">
            <el-input size="small" placeholder="请输入" clearable v-model="searchForm.name"
                      @keyup.enter.native="searchList"></el-input>
              @keyup.enter.native="searchList"></el-input>
          </el-form-item>
          <el-form-item label="生产厂家" prop="factoryManufacturer">
            <el-input size="small" placeholder="请输入" clearable v-model="searchForm.factoryManufacturer"
                      @keyup.enter.native="searchList"></el-input>
              @keyup.enter.native="searchList"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">查 询</el-button>
@@ -24,7 +24,7 @@
    </div>
    <div class="table">
      <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination"
                  :page="page" :tableLoading="tableLoading"></lims-table>
        :page="page" :tableLoading="tableLoading"></lims-table>
    </div>
    <form-dia v-if="formDia" ref="formDia" @closeYearDia="closeYearDia"></form-dia>
    <borrow-dia v-if="borrowDia" ref="borrowDia" @closeYearDia="closeBorrowDia"></borrow-dia>
@@ -177,39 +177,38 @@
  mounted() {
    this.searchList()
  },
  methods :{
  methods: {
    exportFun() {
      this.outLoading = true
      exportOfStandardSubstanceList(this.searchForm).then(res =>{
      exportOfStandardSubstanceList(this.searchForm).then(res => {
        this.outLoading = false
        const blob = new Blob([res], {type: 'application/octet-stream'},false);
        const blob = new Blob([res], { type: 'application/octet-stream' }, false);
        this.$download.saveAs(blob, '标准物质清单.xlsx')
        this.$message.success('导出成功')
      })
    },
    // 查询列表
    searchList () {
    searchList() {
      this.tableLoading = true
      getPageStandardSubstance({
        ...this.page,
        ...this.searchForm
      }).then(res => {
        this.tableLoading = false
        if (res.code === 200){
        if (res.code === 200) {
          this.tableData = res.data.records
          this.page.total = res.data.total
        }
      })
    },
    // 删除
    delPlan (row) {
    delPlan(row) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableLoading = true
        removeStandardSubstance({id:row.id}).then(res => {
        removeStandardSubstance({ id: row.id }).then(res => {
          this.tableLoading = false
          if (res.code === 200) {
            this.$message.success('删除成功')
@@ -226,40 +225,40 @@
      });
    },
    // 新增,编辑,批准弹框
    openFormDia (type, row) {
    openFormDia(type, row) {
      this.formDia = true
      this.$nextTick(() => {
        this.$refs.formDia.openDia(type, row)
      })
    },
    closeYearDia () {
    closeYearDia() {
      this.formDia = false
      this.searchList()
    },
    // 借用
    borrow (row) {
    borrow(row) {
      this.borrowDia = true
      this.$nextTick(() => {
        this.$refs.borrowDia.openDia(row)
      })
    },
    closeBorrowDia () {
    closeBorrowDia() {
      this.borrowDia = false
      this.searchList()
    },
    // 归还
    return (row) {
    return(row) {
      this.returnDia = true
      this.$nextTick(() => {
        this.$refs.returnDia.openDia(row)
      })
    },
    closeReturnDia () {
    closeReturnDia() {
      this.returnDia = false
      this.searchList()
    },
    // 重置查询条件
    resetSearchForm () {
    resetSearchForm() {
      this.searchForm.name = '';
      this.searchForm.factoryManufacturer = '';
      this.searchList()
src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue
@@ -142,7 +142,6 @@
      exportFeStandardSubstanceAcceptance().then(res => {
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '标准物质验收.xlsx');
        this.$message.success('导出成功')
      })
    },
    // 分页切换
src/views/CNAS/systemManagement/correctiveAction/index.vue
@@ -141,7 +141,6 @@
    handleDown(row) {
      exportSuperviseDetaillCorrect({ superviseDetailsCorrectId: row.superviseDetailsCorrectId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '监督纠正措施' + '.docx');
      })
src/views/CNAS/systemManagement/documentControl/components/FileObsoletionRequest.vue
@@ -427,7 +427,6 @@
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '文件作废表.xlsx')
        this.$message.success('导出成功')
      })
    },
    handleDelete(row) {
src/views/CNAS/systemManagement/documentRecords/approvalRecord.vue
@@ -284,7 +284,6 @@
      exportOutManageRecordCheck(this.queryParams).then(res => {
        this.outLoading = false
        if (res.code == 201) return this.$message.error('导出失败')
        this.$message.success('导出成功')
        let url = this.javaApi + '/word/' + res.message
        this.$download.saveAs(url, '文件审批记录')
      })
src/views/CNAS/systemManagement/documentRecords/cancellationRecord.vue
@@ -244,7 +244,6 @@
      exportOutManageRecordCancel(this.queryParams).then(res => {
        this.outLoading = false
        if (res.code == 201) return this.$message.error('导出失败')
        this.$message.success('导出成功')
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, "作废文件销毁记录");
      })
src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue
@@ -301,7 +301,6 @@
      exportOutManageRecordIssueRecycle(this.queryParams).then(res => {
        this.outLoading = false
        if (res.code == 201) return this.$message.error('导出失败')
        this.$message.success('导出成功')
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, '文件发放与回收记录')
      })
src/views/CNAS/systemManagement/documentRecords/regularReviewsRecord.vue
@@ -450,7 +450,6 @@
      exportOutManageRecordIntervals(this.queryParams).then(res => {
        this.outLoading = false
        if (res.code == 201) return this.$message.error('导出失败')
        this.$message.success('导出成功')
        let url = this.javaApi + 'word/' + res.message
        this.$download.saveAs(url, "文件定期审查记录");
      })
src/views/CNAS/systemManagement/documentRecords/revisionRecord.vue
@@ -550,7 +550,6 @@
      exportOutManageRecordAudit(this.queryParams).then(res => {
        this.outLoading = false
        if (res.code == 201) return this.$message.error('导出失败')
        this.$message.success('导出成功')
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, "文件修订表");
      })
src/views/CNAS/systemManagement/internalAuditManagement/components/auditInspection.vue
@@ -223,7 +223,6 @@
    handleDown(row) {
      exportInternalCheck({ checkId: row.checkId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '内审检查' + '.docx');
      })
src/views/CNAS/systemManagement/internalAuditManagement/components/auditMeetingSign.vue
@@ -171,7 +171,6 @@
    handleDown(row) {
      exportInternalMeeting({ meetingId: row.meetingId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '内审会议签到' + '.docx');
      })
src/views/CNAS/systemManagement/internalAuditManagement/components/auditReport.vue
@@ -281,7 +281,6 @@
    handleDown(row) {
      exportInternalReport({ reportId: row.reportId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '内审报告' + '.docx');
      })
src/views/CNAS/systemManagement/internalAuditManagement/components/correctiveAction.vue
@@ -147,7 +147,6 @@
    handleDown(row) {
      exportInternalCorrect({ correctId: row.correctId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '内审纠正措施' + '.docx');
      })
src/views/CNAS/systemManagement/internalAuditManagement/components/implementationPlan.vue
@@ -261,7 +261,6 @@
    handleDown(row) {
      exportInternalImplement({ implementId: row.implementId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '内审实施计划' + '.docx');
      })
src/views/CNAS/systemManagement/internalAuditManagement/components/yearPlan.vue
@@ -274,7 +274,6 @@
    handleDown(row) {
      exportInternalPlan({ planId: row.planId }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '内审年度计划' + '.docx');
      })
src/views/CNAS/systemManagement/measuresDealRisks/components/hazardIdentificationRiskAssessment.vue
@@ -310,7 +310,6 @@
    openDownloadDia() {
      exportHazardFactorIdentification().then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '危险因素辨识与风险评价结果一览' + '.docx');
      })
src/views/CNAS/systemManagement/measuresDealRisks/components/listRiskAnalysisControlPlans.vue
@@ -277,7 +277,6 @@
    openDownloadDia() {
      exportSignificantRiskFactors().then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '重大风险因素分析及控制计划清单' + '.docx');
      })
src/views/business/materialOrder/index.vue
@@ -59,7 +59,8 @@
        <div class="table-tab">
          <div>
            <ul class="tab">
              <li v-for="(m, i) in tabList" :key="m.value" :class="{ active: m.value === tabIndex }" @click="handleTab(m)">
              <li v-for="(m, i) in tabList" :key="m.value" :class="{ active: m.value === tabIndex }"
                @click="handleTab(m)">
                {{ m.label }}</li>
            </ul>
          </div>
@@ -72,40 +73,33 @@
        </div>
        <!--待下单-->
        <div class="table">
          <lims-table :tableData="tableData" :column="column"
                      v-if="tabIndex === 0" @pagination="pagination"
                      :rowClassName="changeRowClass"
                      :height="'calc(100vh - 290px)'" key="tableData"
                      :page="page" :tableLoading="tableLoading"></lims-table>
          <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination"
            :rowClassName="changeRowClass" :height="'calc(100vh - 290px)'" key="tableData" :page="page"
            :tableLoading="tableLoading"></lims-table>
        </div>
        <!--检验中-->
        <div class="table">
          <lims-table :tableData="tableData1" :column="column1"
                      v-if="tabIndex === 1" :isSelection="true"
                      :rowClassName="changeRowClass"
                      :handleSelectionChange="selectMethod" @pagination="pagination1" :height="'calc(100vh - 290px)'"
                      key="tableData1" :page="page1" :tableLoading="tableLoading1"></lims-table>
          <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1" :isSelection="true"
            :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination1"
            :height="'calc(100vh - 290px)'" key="tableData1" :page="page1" :tableLoading="tableLoading1"></lims-table>
        </div>
        <!--已检验-->
        <div class="table">
          <lims-table :tableData="tableData2" :column="column2" v-if="tabIndex === 2" :isSelection="true"
                      :rowClassName="changeRowClass"
            :handleSelectionChange="selectMethod" @pagination="pagination2" :height="'calc(100vh - 290px)'"
            key="tableData2" :page="page2" :tableLoading="tableLoading2"></lims-table>
            :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination2"
            :height="'calc(100vh - 290px)'" key="tableData2" :page="page2" :tableLoading="tableLoading2"></lims-table>
        </div>
        <!--全部-->
        <div class="table">
          <lims-table :tableData="tableData3" :column="column3" v-if="tabIndex === 3" :isSelection="true"
                      :rowClassName="changeRowClass"
            :handleSelectionChange="selectMethod" @pagination="pagination3" :height="'calc(100vh - 290px)'"
            key="tableData3" :page="page3" :tableLoading="tableLoading3"></lims-table>
            :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination3"
            :height="'calc(100vh - 290px)'" key="tableData3" :page="page3" :tableLoading="tableLoading3"></lims-table>
        </div>
        <!--季度检验-->
        <div class="table">
          <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" :isSelection="true"
                      :rowClassName="changeRowClass"
            :handleSelectionChange="selectMethod" @pagination="pagination4" :height="'calc(100vh - 290px)'"
            key="tableData4" :page="page4" :tableLoading="tableLoading4"></lims-table>
            :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination4"
            :height="'calc(100vh - 290px)'" key="tableData4" :page="page4" :tableLoading="tableLoading4"></lims-table>
        </div>
      </div>
    </div>
@@ -125,8 +119,8 @@
    </el-dialog>
    <!-- 撤销报检 -->
    <el-dialog :visible.sync="declareDialogVisible" title="报检撤销" width="30%">
      <p style="font-size:16px;color:#333333">批号<span
          style="color:#34BD66">{{ this.insOrderRow.updateBatchNo }}</span>的信息是否<span style="color: #FF4902">撤销报检</span>
      <p style="font-size:16px;color:#333333">批号<span style="color:#34BD66">{{ this.insOrderRow.updateBatchNo
          }}</span>的信息是否<span style="color: #FF4902">撤销报检</span>
      </p>
      <span slot="footer" class="dialog-footer">
        <el-row>
@@ -1081,9 +1075,8 @@
      let entity = this.tabIndex === 3 ? { ...this.entity, isInspect: 2 } : { ...this.entity, state: 2, orderState: 4, }
      delete entity.orderBy
      this.outLoading = true
      rawAllExport({entity: entity}).then(res => {
      rawAllExport({ entity: entity }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, '原材料检测信息导出.xlsx');
      })
@@ -1116,7 +1109,7 @@
    selectMethod(val) {
      this.multipleSelection = val
    },
    changeRowClass({row, rowIndex}) {
    changeRowClass({ row, rowIndex }) {
      if (row.isFirst == 1) {
        return 'highlight-danger-row-border'
      }
src/views/business/productOrder/index.vue
@@ -3,47 +3,42 @@
    <div class="search">
      <el-form :model="entity" ref="entity" size="small" :inline="true">
        <el-form-item label="委托编号" prop="entrustCode">
          <el-input v-model="entity.entrustCode" clearable placeholder="请输入"
                    size="small"
                    @keyup.enter.native="refreshTable">
          <el-input v-model="entity.entrustCode" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable">
          </el-input>
        </el-form-item>
        <el-form-item label="样品名称" prop="sampleName">
          <el-input v-model="entity.partNo" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="refreshTable"></el-input>
            @keyup.enter.native="refreshTable"></el-input>
        </el-form-item>
        <el-form-item label="样品型号" prop="sampleModel">
          <el-input v-model="entity.sampleModel" clearable placeholder="请输入"
                    size="small" @keyup.enter.native="refreshTable()"></el-input>
          <el-input v-model="entity.sampleModel" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input>
        </el-form-item>
        <el-form-item>
          <el-button :icon="!more?'el-icon-arrow-down':'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" @click="more=!more">{{!more?'更多':'收起'}}</el-button>
          <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
            @click="more = !more">{{ !more ? '更多' : '收起' }}</el-button>
          <el-button size="small" @click="refresh()">重 置</el-button>
          <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
        </el-form-item>
        <el-form-item label="样品编号" prop="sampleCode" v-if="more">
          <el-input v-model="entity.sampleCode" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="refreshTable">
            @keyup.enter.native="refreshTable">
          </el-input>
        </el-form-item>
        <el-form-item label="下单时间" prop="createTime" v-if="more">
          <el-date-picker v-model="entity.createTime" clearable
                          format="yyyy-MM-dd"
                          placeholder="选择日期"
                          size="small"
                          style="width:100%"
                          type="date"
                          value-format="yyyy-MM-dd HH:mm:ss">
          <el-date-picker v-model="entity.createTime" clearable format="yyyy-MM-dd" placeholder="选择日期" size="small"
            style="width:100%" type="date" value-format="yyyy-MM-dd HH:mm:ss">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="委托人" prop="prepareUser" v-if="more">
          <el-input v-model="entity.prepareUser" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="refreshTable">
            @keyup.enter.native="refreshTable">
          </el-input>
        </el-form-item>
        <el-form-item label="委托单位" prop="company" v-if="more">
          <el-input v-model="entity.company" clearable placeholder="请输入" size="small"
                    @keyup.enter.native="refreshTable">
            @keyup.enter.native="refreshTable">
          </el-input>
        </el-form-item>
      </el-form>
@@ -51,62 +46,63 @@
    <div class="table-tab">
      <div>
        <ul class="tab">
          <li v-for="(m,i) in tabList" :key="i+'afgh'" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
          <li v-for="(m, i) in tabList" :key="i + 'afgh'" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">{{ m.label }}
          </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 === 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 size="small" type="primary" @click="playOrder(1)">下单</el-button>
      </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>
      <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>
      <!-- 审核 -->
      <el-dialog :before-close="handleClose" :visible.sync="verifyDialogVisible" title="下单审核" width="30%">
        <p v-if="!isPass" style="font-size:16px;color:#333333">委托编号<span
          style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
            style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
        <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px">
          <el-form-item label="请输入样品库位号:">
            <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
          </el-form-item>
        </el-form>
        <span slot="footer" class="dialog-footer">
                    <el-row v-if="!isPass">
                        <el-button @click="handleClose">退 回</el-button>
                        <el-button :loading="upLoad" type="primary" @click="submitForm">通 过</el-button>
                    </el-row>
                    <el-row v-else>
                        <el-button @click="handleClose">返 回</el-button>
                        <el-button :loading="upLoad" type="primary" @click="submitForm">确 定</el-button>
                    </el-row>
                </span>
          <el-row v-if="!isPass">
            <el-button @click="handleClose">退 回</el-button>
            <el-button :loading="upLoad" type="primary" @click="submitForm">通 过</el-button>
          </el-row>
          <el-row v-else>
            <el-button @click="handleClose">返 回</el-button>
            <el-button :loading="upLoad" type="primary" @click="submitForm">确 定</el-button>
          </el-row>
        </span>
      </el-dialog>
      <!-- 撤销 -->
      <el-dialog :before-close="handleClose" :visible.sync="quashDialogVisible" title="下单撤销" width="30%">
        <p v-if="!isQuash" style="font-size:16px;color:#333333">委托编号<span
          style="color:#34BD66">{{this.insOrderRow.entrustCode}}</span>的信息是否撤销</p>
            style="color:#34BD66">{{ this.insOrderRow.entrustCode }}</span>的信息是否撤销</p>
        <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px">
          <el-form-item label="请输入撤销原因:">
            <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
          </el-form-item>
        </el-form>
        <span slot="footer" class="dialog-footer">
                    <el-row v-if="!isQuash">
                        <el-button @click="handleClose">取 消</el-button>
                        <el-button :loading="upLoad" type="primary" @click="submitForm">确 定</el-button>
                    </el-row>
                    <el-row v-else>
                        <el-button @click="handleClose">返 回</el-button>
                        <el-button :loading="upLoad" type="primary" @click="submitForm">确 定</el-button>
                    </el-row>
                </span>
          <el-row v-if="!isQuash">
            <el-button @click="handleClose">取 消</el-button>
            <el-button :loading="upLoad" type="primary" @click="submitForm">确 定</el-button>
          </el-row>
          <el-row v-else>
            <el-button @click="handleClose">返 回</el-button>
            <el-button :loading="upLoad" type="primary" @click="submitForm">确 定</el-button>
          </el-row>
        </span>
      </el-dialog>
      <!-- 下发 -->
      <el-dialog :before-close="handleClose" :visible.sync="issuedDialogVisible" title="检验分配" width="400px">
@@ -116,24 +112,27 @@
              <div class="search_label"><span class="required-span">* </span>约定时间:</div>
              <div class="search_input">
                <el-date-picker v-model="distributeData.appointed" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                                style="width: 100%;" type="date" value-format="yyyy-MM-dd">
                  style="width: 100%;" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </div>
            </el-col>
            <el-col class="search_thing" style="width: 95%;">
              <div class="search_label"><span class="required-span">* </span>指派人员:</div>
              <div class="search_input">
                <el-select v-model="distributeData.userId" clearable filterable placeholder="请选择" size="small" style="width: 100%;" @change="changeUser">
                  <el-option v-for="(item,i) in personList" :key="i+'gbnm.'" :label="item.label" :value="item.value">
                <el-select v-model="distributeData.userId" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;" @change="changeUser">
                  <el-option v-for="(item, i) in personList" :key="i + 'gbnm.'" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
            </el-col>
            <el-col class="search_thing" style="width: 95%;">
              <div class="search_label"><span class="required-span" >* </span>试验室:</div>
              <div class="search_label"><span class="required-span">* </span>试验室:</div>
              <div class="search_input">
                <el-select v-model="distributeData.sonLaboratory" clearable filterable placeholder="请选择" size="small" style="width: 100%;">
                  <el-option v-for="(item,i) in sonLaboratoryList" :key="i+'oooo'" :label="item.label" :value="item.value">
                <el-select v-model="distributeData.sonLaboratory" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;">
                  <el-option v-for="(item, i) in sonLaboratoryList" :key="i + 'oooo'" :label="item.label"
                    :value="item.value">
                  </el-option>
                </el-select>
              </div>
@@ -141,37 +140,36 @@
          </el-row>
        </div>
        <span slot="footer" class="dialog-footer">
                    <el-row>
                        <el-button @click="handleClose2">取 消</el-button>
                        <el-button :loading="upLoad" type="primary" @click="submitForm2">确 定</el-button>
                    </el-row>
                </span>
          <el-row>
            <el-button @click="handleClose2">取 消</el-button>
            <el-button :loading="upLoad" type="primary" @click="submitForm2">确 定</el-button>
          </el-row>
        </span>
      </el-dialog>
      <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%">
        <div v-if="dataDialogVisible">
          <lims-table :tableData="tableDataLook" :column="tableDataLookColumn"
                      @pagination="tableDataLookPagination" height="500px" key="tableDataLook"
                      :page="tableDataLookPage" :tableLoading="tableDataLookTableLoading"></lims-table>
          <lims-table :tableData="tableDataLook" :column="tableDataLookColumn" @pagination="tableDataLookPagination"
            height="500px" key="tableDataLook" :page="tableDataLookPage"
            :tableLoading="tableDataLookTableLoading"></lims-table>
        </div>
      </el-dialog>
      <el-dialog :visible.sync="filesDialogVisible" title="附件查看" width="80%">
        <div v-if="filesDialogVisible">
          <lims-table :tableData="tableDataFile" :column="columnFile"
                      @pagination="paginationFile" height="500px" key="tableDataFile"
                      :page="pageFile" :tableLoading="tableLoadingFile"></lims-table>
          <lims-table :tableData="tableDataFile" :column="columnFile" @pagination="paginationFile" height="500px"
            key="tableDataFile" :page="pageFile" :tableLoading="tableLoadingFile"></lims-table>
        </div>
      </el-dialog>
      <el-dialog :title="deleteTilte" :visible.sync="deleteDialogVisible" width="80%">
        <div v-if="deleteDialogVisible" style="height: 70vh;overflow-y: auto;">
          <lims-table :tableData="componentDataDelete" :column="columnDelete"
                      :isSelection="true" :handleSelectionChange="selectDelete"
                      @pagination="paginationDelete" height="500px" key="componentDataDelete"
                      :page="pageDelete" :tableLoading="tableLoadingDelete"></lims-table>
          <lims-table :tableData="componentDataDelete" :column="columnDelete" :isSelection="true"
            :handleSelectionChange="selectDelete" @pagination="paginationDelete" height="500px"
            key="componentDataDelete" :page="pageDelete" :tableLoading="tableLoadingDelete"></lims-table>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-row>
            <el-button @click="handleNo">{{deleteTilte=='撤销'?'取 消':'不通过'}}</el-button>
            <el-button :loading="printLoading" type="primary" @click="submitDelete">{{deleteTilte=='撤销'?'确 定':'通 过'}}</el-button>
            <el-button @click="handleNo">{{ deleteTilte == '撤销' ? '取 消' : '不通过' }}</el-button>
            <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '撤销' ? '确 定' : '通
              过'}}</el-button>
          </el-row>
        </span>
      </el-dialog>
@@ -179,17 +177,15 @@
    <el-dialog :visible.sync="printDialogVisible" title="标签打印" top="5vh" width="40%">
      <div v-loading="loadPint" style="width:100%;height: 400px;overflow-y: auto;">
        <div class="dia_body">
          <el-checkbox
            v-model="checkAll"
            :indeterminate="isIndeterminate"
            style="margin: 10px 5px;"
          <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" style="margin: 10px 5px;"
            @change="handleCheckAllChange">全选</el-checkbox>
          <el-checkbox-group v-model="checkIndexList" @change="changePrintCode()">
            <el-card v-for="(item, i) in qrData" :key="i+'wwwww'" class="box-card" style="margin-bottom: 15px; font-size: 16px !important;">
            <el-card v-for="(item, i) in qrData" :key="i + 'wwwww'" class="box-card"
              style="margin-bottom: 15px; font-size: 16px !important;">
              <el-checkbox :key="i" :label="i" style="position: relative;top:-20px;left:5px"><br></el-checkbox>
              <div>
                <el-row style="font-size: 14px;padding-left: 20px;">
                  <el-col  style="font-weight: bold;">{{ item.pName }}</el-col>
                  <el-col style="font-weight: bold;">{{ item.pName }}</el-col>
                </el-row>
                <div style="display: flex;">
                  <div>
@@ -199,27 +195,29 @@
                  </div>
                  <div style="margin-left: 50px;width: 100%;">
                    <el-row>
                      <el-col  style="font-weight: bold;font-size: 14px;"><span>样品编号:&nbsp; </span>{{ item.sampleCode }}</el-col>
                      <el-col style="font-weight: bold;font-size: 14px;"><span>样品编号:&nbsp; </span>{{ item.sampleCode
                        }}</el-col>
                    </el-row>
                    <el-row style="margin-top: 1px;font-size: 14px;">
                      <el-col  style="font-weight: bold;"><span>委托单号:&nbsp; </span>{{ item.code }}</el-col>
                      <el-col style="font-weight: bold;"><span>委托单号:&nbsp; </span>{{ item.code }}</el-col>
                    </el-row>
                    <el-row style="margin-top: 1px;font-size: 14px;">
                      <el-col  style="font-weight: bold;"><span>规格型号:&nbsp; </span>{{ item.model }}</el-col>
                      <el-col style="font-weight: bold;"><span>规格型号:&nbsp; </span>{{ item.model }}</el-col>
                    </el-row>
                    <el-row style="margin-top: 1px;font-size: 14px;">
                      <el-col  style="font-weight: bold;"><span>样品名称:&nbsp; </span>{{ item.sample }}</el-col>
                      <el-col style="font-weight: bold;"><span>样品名称:&nbsp; </span>{{ item.sample }}</el-col>
                    </el-row>
                    <el-row class="ellipsis-multiline" style="margin-top: 1px;font-size: 14px;">
                      <el-col  style="font-weight: bold;"><span>检测项目:&nbsp; </span>{{ item.item }}</el-col>
                      <el-col style="font-weight: bold;"><span>检测项目:&nbsp; </span>{{ item.item }}</el-col>
                    </el-row>
                    <el-row style="margin-top: 3px;font-size: 14px;">
                      <el-col  style="font-weight: bold;display: flex;align-items: center;"><span>样品状态:&nbsp; </span>
                      <el-col style="font-weight: bold;display: flex;align-items: center;"><span>样品状态:&nbsp; </span>
                        <el-radio-group :value="item.insState" disabled style="margin-top: 7px;margin-left: 4px;">
                          <el-radio :label="0" style="font-weight: bold;margin-right: 7px;">待检</el-radio>
                          <el-radio :label="1" style="font-weight: bold;margin-right: 7px;">在检</el-radio>
                          <el-radio :label="2" style="font-weight: bold;margin-right: 7px;">已检</el-radio>
                        </el-radio-group><el-radio v-model="item.isLeave" :label="1" disabled style="font-weight: bold;margin-top: 7px;">留样</el-radio></el-col>
                        </el-radio-group><el-radio v-model="item.isLeave" :label="1" disabled
                          style="font-weight: bold;margin-top: 7px;">留样</el-radio></el-col>
                    </el-row>
                  </div>
                </div>
@@ -230,14 +228,16 @@
      </div>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button @click="printDialogVisible=false">取 消</el-button>
          <el-button @click="printDialogVisible = false">取 消</el-button>
          <el-button :loading="printLoading" type="primary" @click="submitPrint">打 印</el-button>
        </el-row>
      </span>
    </el-dialog>
    <div class="el-dialog__body" style="overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;display: none;">
    <div class="el-dialog__body"
      style="overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;display: none;">
      <div id="printMOrder" ref="printMOrder" class="printMOrder">
        <el-card v-for="(item, i) in checkDataList" :key="i+'uuuuu'" class="box-card" style="font-size: 0.20cm !important;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;">
        <el-card v-for="(item, i) in checkDataList" :key="i + 'uuuuu'" class="box-card"
          style="font-size: 0.20cm !important;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;">
          <div style="display: flex;">
            <div>
              <el-col :offset="2" :span="10">
@@ -246,7 +246,8 @@
            </div>
            <div style="margin-left: 0.32cm;line-height: 0.22cm;">
              <el-row>
                <el-col  class="single-line-ellipsis" style="font-size: 0.20cm;width: 4cm;"><span>样品编号:&nbsp; </span>{{ item.sampleCode }}</el-col>
                <el-col class="single-line-ellipsis" style="font-size: 0.20cm;width: 4cm;"><span>样品编号:&nbsp; </span>{{
                  item.sampleCode }}</el-col>
              </el-row>
              <el-row style="font-size: 0.20cm;">
                <el-col><span>委托单号:&nbsp; </span>{{ item.code }}</el-col>
@@ -255,18 +256,19 @@
                <el-col><span>规格型号:&nbsp; </span>{{ item.model }}</el-col>
              </el-row>
              <el-row style="font-size: 0.20cm;">
                <el-col ><span>样品名称:&nbsp; </span>{{ item.sample }}</el-col>
                <el-col><span>样品名称:&nbsp; </span>{{ item.sample }}</el-col>
              </el-row>
              <el-row style="font-size: 0.20cm;width: 4cm;">
                <el-col class="ellipsis-multiline"><span>检测项目:&nbsp; </span>{{ item.item }}</el-col>
              </el-row>
              <el-row style="margin-top: 0.01cm;font-size: 0.20cm;">
                <el-col  style="display: flex;align-items: center;"><span>样品状态:&nbsp;
                <el-col style="display: flex;align-items: center;"><span>样品状态:&nbsp;
                  </span>
                  <span style="white-space: nowrap;"><span v-if="item.insState==0">√</span><span v-if="item.insState!=0" class="scor"></span>待检
                    <span v-if="item.insState==1">√</span><span v-if="item.insState!=1" class="scor"></span>在检
                    <span v-if="item.insState==2">√</span><span v-if="item.insState!=2" class="scor"></span>已检
                    <span v-if="item.isLeave==1">√</span><span v-if="item.isLeave!=1" class="scor"></span>留样</span>
                  <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span v-if="item.insState != 0"
                      class="scor"></span>待检
                    <span v-if="item.insState == 1">√</span><span v-if="item.insState != 1" class="scor"></span>在检
                    <span v-if="item.insState == 2">√</span><span v-if="item.insState != 2" class="scor"></span>已检
                    <span v-if="item.isLeave == 1">√</span><span v-if="item.isLeave != 1" class="scor"></span>留样</span>
                  <!-- <el-radio-group :value="item.insState" style="margin-top: 3px;margin-left: 1px;" disabled>
                  <el-radio :label="0" style="margin-right: 3px;font-size: 6px;">待检</el-radio>
                  <el-radio :label="1" style="margin-right: 3px;font-size: 6px;">在检</el-radio>
@@ -288,14 +290,13 @@
      </span>
    </el-dialog>
    <!--标签打印弹框-->
    <print-dialog v-if="printDialog" ref="printDialog"
                  :printDialog="printDialog"
                  @closePrintDialog="closePrintDialog"></print-dialog>
    <print-dialog v-if="printDialog" ref="printDialog" :printDialog="printDialog"
      @closePrintDialog="closePrintDialog"></print-dialog>
    <!--添加遗漏检验项弹框-->
    <add-inspection-dia v-if="addInspectionDia" ref="addInspectionDia"></add-inspection-dia>
<!--    <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"-->
<!--                :sonLaboratory="sonLaboratory" :state="state"-->
<!--                :typeSource="typeSource" @goback="goback" @refreshView="refreshView"/>-->
    <!--    <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"-->
    <!--                :sonLaboratory="sonLaboratory" :state="state"-->
    <!--                :typeSource="typeSource" @goback="goback" @refreshView="refreshView"/>-->
  </div>
</template>
@@ -313,8 +314,8 @@
  updateInspected,
  updateOrderEntrustCode, updateStatus, upInsOrder, upPlanUser2
} from "@/api/business/productOrder";
import {selectUserCondition} from "@/api/performance/class";
import {downFile, getFileList, selectSampleAndProductByOrderId} from "@/api/business/rawMaterialOrder";
import { selectUserCondition } from "@/api/performance/class";
import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
// import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
export default {
  components: {
@@ -333,12 +334,12 @@
      tableData: [],
      tableLoading: false,
      column: [
        {label: '委托编号', prop: 'entrustCode'},
        {label: '委托单位', prop: 'company'},
        {label: '样品名称', prop: 'sampleName'},
        {label: '样品型号', prop: 'sampleModel'},
        {label: '样品数量', prop: 'sampleNum'},
        {label: '检验人', prop: 'testingName'},
        { label: '委托编号', prop: 'entrustCode' },
        { label: '委托单位', prop: 'company' },
        { label: '样品名称', prop: 'sampleName' },
        { label: '样品型号', prop: 'sampleModel' },
        { label: '样品数量', prop: 'sampleNum' },
        { label: '检验人', prop: 'testingName' },
        {
          dataType: 'tag',
          label: '紧急程度',
@@ -362,9 +363,9 @@
            }
          }
        },
        {label: '备注', prop: 'remark'},
        {label: '检验进度%', prop: 'insProgress'},
        {label: '约定时间', prop: 'appointed'},
        { label: '备注', prop: 'remark' },
        { label: '检验进度%', prop: 'insProgress' },
        { label: '约定时间', prop: 'appointed' },
        {
          dataType: 'tag',
          label: '检验结果',
@@ -387,15 +388,15 @@
              return 'danger'
            } else if (params == 3) {
              return ''
            }  else {
            } else {
              return null
            }
          }
        },
        {label: '下单时间', prop: 'createTime'},
        {label: '下发时间', prop: 'sendTime'},
        {label: '退回理由', prop: 'tell'},
        {label: '委托人', prop: 'prepareUser'},
        { label: '下单时间', prop: 'createTime' },
        { label: '下发时间', prop: 'sendTime' },
        { label: '退回理由', prop: 'tell' },
        { label: '委托人', prop: 'prepareUser' },
        {
          dataType: 'action',
          fixed: 'right',
@@ -473,7 +474,7 @@
                this.handlEquashCheck(row);
              },
              disabled: (row, index) => {
                return (row.state != 1 && row.state != 0)||(this.tabIndex!=1)||row.isRevocation!=1
                return (row.state != 1 && row.state != 0) || (this.tabIndex != 1) || row.isRevocation != 1
              },
              showHide: (row) => {
                return this.tabIndex === 1
@@ -516,23 +517,23 @@
        }
      ],
      page: {
        total:0,
        size:10,
        current:1
        total: 0,
        size: 10,
        current: 1
      },
      state:0,// 0:台账页,1:检验页面,2检验页面(复核),默认为0,3数据查看
      state: 0,// 0:台账页,1:检验页面,2检验页面(复核),默认为0,3数据查看
      InspectionKey: 1,
      inspectorList: [],//检验人员列表
      sonLaboratory: null,// 0:委托,1:原材料
      typeSource: null,// 0:成品下单,1:原材料下单
      deleteTilte:'撤销',
      deleteTilte: '撤销',
      examine: null,
      deleteList:[],
      loadPint:false,
      deleteList: [],
      loadPint: false,
      checkAll: false,
      isIndeterminate: true,
      printLoading:false,
      printDialogVisible:false,
      printLoading: false,
      printDialogVisible: false,
      //是否审核通过  true是 false不是
      isPass: false,
      //是否审核撤销  true是 false不是
@@ -544,22 +545,22 @@
      tableDataLookTableLoading: false, // 数据查看弹框
      tableDataLook: [],
      tableDataLookPage: {
        total:0,
        size:10,
        current:1
        total: 0,
        size: 10,
        current: 1
      },
      tableDataLookColumn: [
        {label: '样品编号', prop: 'sampleCode'},
        {label: '样品名称', prop: 'sample'},
        {label: '检验项分类', prop: 'inspectionItemClass'},
        {label: '检验项', prop: 'inspectionItem'},
        {label: '检验子项', prop: 'inspectionItemSubclass'},
        {label: '单位', prop: 'unit'},
        {label: '样品型号', prop: 'model'},
        {label: '条件', prop: 'radius'},
        {label: '电缆标识', prop: 'cableTag'},
        {label: '试验要求', prop: 'tell'},
        {label: '检验结果', prop: 'lastValue'},
        { label: '样品编号', prop: 'sampleCode' },
        { label: '样品名称', prop: 'sample' },
        { label: '检验项分类', prop: 'inspectionItemClass' },
        { label: '检验项', prop: 'inspectionItem' },
        { label: '检验子项', prop: 'inspectionItemSubclass' },
        { label: '单位', prop: 'unit' },
        { label: '样品型号', prop: 'model' },
        { label: '条件', prop: 'radius' },
        { label: '电缆标识', prop: 'cableTag' },
        { label: '试验要求', prop: 'tell' },
        { label: '检验结果', prop: 'lastValue' },
        {
          dataType: 'tag',
          label: '结果判定',
@@ -582,7 +583,7 @@
              return 'danger'
            } else if (params == 3) {
              return ''
            }  else {
            } else {
              return ''
            }
          }
@@ -615,9 +616,9 @@
            }
          }
        },
        {label: '附件名称', prop: 'fileName'},
        {label: '上传人', prop: 'name'},
        {label: '上传时间', prop: 'createTime'},
        { label: '附件名称', prop: 'fileName' },
        { label: '上传人', prop: 'name' },
        { label: '上传时间', prop: 'createTime' },
        {
          dataType: 'action',
          fixed: 'right',
@@ -635,9 +636,9 @@
        }
      ],
      pageFile: {
        total:0,
        size:10,
        current:1
        total: 0,
        size: 10,
        current: 1
      },
      formData: {},
      formData0: {},
@@ -647,36 +648,36 @@
        sampleId: '',
        appointed: '',
        userId: '',
        sonLaboratory:''
        sonLaboratory: ''
      },
      entrustCodeVisible: false, // 修改委托编号弹框
      entrustCodeInfo: {},
      submitCodeLoading: false,
      // 人员列表
      personList: [],
      orderId:'',
      revocationInsProductIds:'',
      orderId: '',
      revocationInsProductIds: '',
      componentDataDelete: [],
      tableLoadingDelete: false,
      columnDelete: [
        {label: '样品编号', prop: 'sampleCode'},
        {label: '检验项分类', prop: 'inspectionItemClass'},
        {label: '检验项', prop: 'inspectionItem'},
        {label: '检验项子类', prop: 'inspectionItemSubclass'},
        {label: '样品分类', prop: 'sampleType'},
        {label: '样品', prop: 'sample'},
        {label: '型号', prop: 'model'},
        {label: '线芯', prop: 'cableTag'},
        {label: '试验室', prop: 'sonLaboratory'},
        {label: '要求值', prop: 'ask'},
        {label: '要求描述', prop: 'tell'},
        { label: '样品编号', prop: 'sampleCode' },
        { label: '检验项分类', prop: 'inspectionItemClass' },
        { label: '检验项', prop: 'inspectionItem' },
        { label: '检验项子类', prop: 'inspectionItemSubclass' },
        { label: '样品分类', prop: 'sampleType' },
        { label: '样品', prop: 'sample' },
        { label: '型号', prop: 'model' },
        { label: '线芯', prop: 'cableTag' },
        { label: '试验室', prop: 'sonLaboratory' },
        { label: '要求值', prop: 'ask' },
        { label: '要求描述', prop: 'tell' },
      ],
      pageDelete: {
        total:0,
        size:10,
        current:1
        total: 0,
        size: 10,
        current: 1
      },
      deleteDialogVisible:false,
      deleteDialogVisible: false,
      upLoad: false,
      tabList: [
        {
@@ -710,24 +711,24 @@
      tabIndex: 0,
      active: 0, //1:下单,2:查看,3:审核,4:光纤配置,默认为0
      currentId: null,
      more:false,
      insOrderRow:{},
      checkIndexList:[],
      checkDataList:[
      more: false,
      insOrderRow: {},
      checkIndexList: [],
      checkDataList: [
        {
          sampleCode:'11111'
          sampleCode: '11111'
        }
      ],
      qrData:[],
      multipleSelection:[],
      sonLaboratoryList:[],
      qrData: [],
      multipleSelection: [],
      sonLaboratoryList: [],
      printDialog: false,
      addInspectionDia: false
    }
  },
  watch:{
    printDialogVisible(newVal){
      if(!newVal){
  watch: {
    printDialogVisible(newVal) {
      if (!newVal) {
        this.qrData = []
        this.checkIndexList = []
        this.checkDataList = []
@@ -742,7 +743,7 @@
  methods: {
    // 查询列表数据
    refreshTable() {
      if (this.tabIndex !== 2 && this.tabIndex !==3) {
      if (this.tabIndex !== 2 && this.tabIndex !== 3) {
        this.entity.orderType = ''
      } else {
        if (this.tabIndex === 2) {
@@ -751,7 +752,7 @@
          this.entity.orderType = '抽检'
        }
      }
      const params = {...this.entity, state: this.tabList[this.tabIndex].value}
      const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
      this.tableLoading = true
      selectInsOrderParameter(params).then(res => {
        this.upIndex++
@@ -768,17 +769,17 @@
      this.resetForm('entity')
      this.refreshTable()
    },
    pagination (page) {
    pagination(page) {
      this.page.size = page.limit
      this.refreshTable()
    },
    // 打开修改委托编号弹框
    changeEntrustCode (row) {
    changeEntrustCode(row) {
      this.entrustCodeVisible = true
      this.entrustCodeInfo = {...row}
      this.entrustCodeInfo = { ...row }
    },
    // 提交修改委托编号
    submitCode () {
    submitCode() {
      this.submitCodeLoading = true
      updateOrderEntrustCode({
        id: this.entrustCodeInfo.id,
@@ -794,33 +795,33 @@
        this.submitCodeLoading = false
      })
    },
    selectMethod(val){
    selectMethod(val) {
      this.multipleSelection = val
    },
    //选择要打印的二维码
    changePrintCode(){
    changePrintCode() {
      let indexList = this.checkIndexList
      let arr = []
      indexList.forEach(i=>{
      indexList.forEach(i => {
        arr.push(this.qrData[i])
      })
      this.checkDataList = arr
    },
    //全选
    handleCheckAllChange(val) {
      if(val){
        for(var i=0;i<this.qrData.length;i++){
      if (val) {
        for (var i = 0; i < this.qrData.length; i++) {
          this.checkIndexList.push(i)
        }
        this.checkDataList = this.qrData
      }else{
      } else {
        this.checkIndexList = []
        this.checkDataList = []
      }
      this.isIndeterminate = false;
    },
    submitPrint(){
      if(this.checkDataList.length < 1){
    submitPrint() {
      if (this.checkDataList.length < 1) {
        this.$message.warning("请选择要打印的二维码")
        return
      }
@@ -828,7 +829,7 @@
      PrintJS({
        printable: 'printMOrder',//页面
        type: "html",//文档类型
        maxWidth:360,
        maxWidth: 360,
        style: `@page {
                margin:0;
                size: 400px 75px collapse;
@@ -845,13 +846,13 @@
                height: 75px;
                margin:0;
              }`,
        onPrintDialogClose: this.erexcel=false,
        onPrintDialogClose: this.erexcel = false,
        targetStyles: ["*"], // 使用dom的所有样式,很重要
        font_size: '0.20cm',
      });
    },
    // 打开添加检验项弹框
    openAddIns () {
    openAddIns() {
      if (this.multipleSelection.length === 0) {
        this.$message.warning('请选择需要添加检验项的数据')
        return
@@ -866,9 +867,8 @@
      })
    },
    // 导出记录
    downLoad () {
      rawAllInsOrderExport({...this.entity}).then(res => {
        this.$message.success('导出成功')
    downLoad() {
      rawAllInsOrderExport({ ...this.entity }).then(res => {
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, '委托检测信息导出.xlsx');
      }).catch(err => {
@@ -876,7 +876,7 @@
      })
    },
    // 打开标签打印弹框
    openPrint () {
    openPrint() {
      if (this.multipleSelection.length > 0) {
        this.printDialog = true
        this.$nextTick(() => {
@@ -888,12 +888,12 @@
      }
    },
    // 关闭标签打印弹框
    closePrintDialog () {
    closePrintDialog() {
      this.printDialog = false
    },
    // 获取指派人员下拉列表
    getAuthorizedPerson() {
      selectUserCondition({type: 1}).then(res => {
      selectUserCondition({ type: 1 }).then(res => {
        let data = []
        res.data.forEach(a => {
          data.push({
@@ -936,9 +936,9 @@
      this.getDataTableList(row)
    },
    // 查询数据查看列表数据
    getDataTableList (row) {
    getDataTableList(row) {
      this.tableDataLookTableLoading = true
      selectSampleAndProductByOrderId({id: row.id}).then(res => {
      selectSampleAndProductByOrderId({ id: row.id }).then(res => {
        this.tableDataLookTableLoading = false
        if (res.code === 200) {
          this.tableDataLook = res.data.records
@@ -948,18 +948,18 @@
        this.tableDataLookTableLoading = false
      })
    },
    tableDataLookPagination (page) {
    tableDataLookPagination(page) {
      this.tableDataLookPage.size = page.limit
      this.getDataTableList()
    },
    // 附件查看
    handleFileLook (row) {
    handleFileLook(row) {
      this.filesDialogVisible = true
      this.getFileList(row)
    },
    getFileList(row) {
      this.tableLoadingFile = true
      getFileList({insOrderId: row.id}).then(res => {
      getFileList({ insOrderId: row.id }).then(res => {
        this.tableLoadingFile = false
        if (res.code === 200) {
          this.tableDataFile = res.data.records
@@ -969,22 +969,22 @@
        this.tableLoadingFile = false
      })
    },
    paginationFile (page) {
    paginationFile(page) {
      this.pageFile.size = page.limit
      this.getFileList()
    },
    // 附件下载
    handleDown(row){
    handleDown(row) {
      downFile({
        id: row.id,
      }).then(res => {
        if (res.code === 200) {
          let url = '';
          if(res.data.type==1){
            url = this.javaApi+'/img/'+res.data.fileUrl
          if (res.data.type == 1) {
            url = this.javaApi + '/img/' + res.data.fileUrl
            this.$download.saveAs(url, row.fileName);
          }else{
            url = this.javaApi+'/word/'+res.data.fileUrl
          } else {
            url = this.javaApi + '/word/' + res.data.fileUrl
            this.$download.saveAs(url, row.fileName);
          }
        }
@@ -994,17 +994,17 @@
    },
    // 下载报告
    download(row) {
      let url = this.javaApi+'/word/' + row.urlS?row.urlS:row.url;
      if(url){
      let url = this.javaApi + '/word/' + row.urlS ? row.urlS : row.url;
      if (url) {
        this.$download.saveAs(url, this.downLoadInfo.fileName);
      }
    },
    // 撤销
    handlEquash(row) {
      if(this.tabIndex!=1){
      if (this.tabIndex != 1) {
        this.quashDialogVisible = true;
        this.insOrderRow=row
      }else{
        this.insOrderRow = row
      } else {
        this.orderId = row.id
        this.revocationInsProductIds = ''
        this.deleteTilte = '撤销'
@@ -1012,9 +1012,9 @@
        this.getDeleteList()
      }
    },
    getDeleteList () {
    getDeleteList() {
      this.tableLoadingDelete = true
      selectNoProducts({orderId: this.orderId, revocationInsProductIds: this.revocationInsProductIds}).then(res => {
      selectNoProducts({ orderId: this.orderId, revocationInsProductIds: this.revocationInsProductIds }).then(res => {
        this.tableLoadingDelete = false
        this.componentDataDelete = res.data.records
        this.pageDelete.total = res.data.total
@@ -1022,54 +1022,54 @@
        this.tableLoadingDelete = false
      })
    },
    paginationDelete (page) {
    paginationDelete(page) {
      this.pageDelete.size = page.limit
      this.getDeleteList()
    },
    selectDelete(arr){
    selectDelete(arr) {
      this.deleteList = arr;
    },
    submitDelete(){
      if(this.deleteTilte=='撤销'){
        if(this.deleteList.length==0){
    submitDelete() {
      if (this.deleteTilte == '撤销') {
        if (this.deleteList.length == 0) {
          this.$message.error('请选择要撤销的项')
          return
        }
        let ids = this.deleteList.map(m=>m.id).join(',')
        let ids = this.deleteList.map(m => m.id).join(',')
        this.printLoading = true;
        updateInspected({ids: ids,orderId: this.orderId}).then(res=>{
          if (res.code===200){
            this.printLoading=false
            this.deleteDialogVisible=false
        updateInspected({ ids: ids, orderId: this.orderId }).then(res => {
          if (res.code === 200) {
            this.printLoading = false
            this.deleteDialogVisible = false
            this.refreshTable('page')
            this.$message.success("更新成功")
          }
        })
      }else{
        checkUpdate({orderId: this.orderId, state: 1}).then(res=>{
          if (res.code===200){
            this.printLoading=false
            this.deleteDialogVisible=false
      } else {
        checkUpdate({ orderId: this.orderId, state: 1 }).then(res => {
          if (res.code === 200) {
            this.printLoading = false
            this.deleteDialogVisible = false
            this.refreshTable('page')
            this.$message.success("更新成功")
          }
        })
      }
    },
    handlEquashCheck(row){
    handlEquashCheck(row) {
      this.orderId = row.id
      this.revocationInsProductIds = row.revocationInsProductIds
      this.deleteTilte = '撤销审核'
      this.deleteDialogVisible = true;
    },
    handleNo(){
      if(this.deleteTilte=='撤销'){
        this.deleteDialogVisible=false
      }else{
        checkUpdate({orderId: this.orderId, state: 0}).then(res=>{
          if (res.code===200){
            this.printLoading=false
            this.deleteDialogVisible=false
    handleNo() {
      if (this.deleteTilte == '撤销') {
        this.deleteDialogVisible = false
      } else {
        checkUpdate({ orderId: this.orderId, state: 0 }).then(res => {
          if (res.code === 200) {
            this.printLoading = false
            this.deleteDialogVisible = false
            this.refreshTable('page')
            this.$message.success("更新成功")
          }
@@ -1088,14 +1088,14 @@
        this.distributeData.type = row.type
      })
      upPlanUser2({
        orderId:row.id,
        orderId: row.id,
      }).then(res => {
        if (res.code === 200&&res.data.length>0) {
        if (res.code === 200 && res.data.length > 0) {
          this.sonLaboratoryList = [];
          res.data.forEach(m=>{
          res.data.forEach(m => {
            this.sonLaboratoryList.push({
              value:m,
              label:m
              value: m,
              label: m
            })
          })
        }
@@ -1107,11 +1107,11 @@
        return
      }
      //
      if(this.distributeData.userId==null||this.distributeData.userId==''){
      if (this.distributeData.userId == null || this.distributeData.userId == '') {
        this.$message.error('指派人员未填写')
        return
      }
      if(this.distributeData.userId&&(this.distributeData.sonLaboratory==null||this.distributeData.sonLaboratory=='')){
      if (this.distributeData.userId && (this.distributeData.sonLaboratory == null || this.distributeData.sonLaboratory == '')) {
        this.$message.error('试验室未填写')
        return
      }
@@ -1121,7 +1121,7 @@
        sampleId: this.distributeData.sampleId,
        appointed: this.distributeData.appointed,
        userId: this.distributeData.userId,
        sonLaboratory:this.distributeData.sonLaboratory,
        sonLaboratory: this.distributeData.sonLaboratory,
      }).then(res => {
        if (res.code === 201) {
          this.upLoad = false
@@ -1138,18 +1138,18 @@
    },
    submitForm() {
      this.upLoad = true;
      if (this.tabIndex==1){
        updateInspected({id: this.insOrderRow.id}).then(res=>{
          if (res.code===200){
            this.upLoad=false
            this.quashDialogVisible=false
      if (this.tabIndex == 1) {
        updateInspected({ id: this.insOrderRow.id }).then(res => {
          if (res.code === 200) {
            this.upLoad = false
            this.quashDialogVisible = false
            this.refreshTable()
            this.$message.success("更新成功")
          }
        })
      }else{
        updateStatus({id: this.insOrderRow.id}).then(res=>{
          if (res.code===200){
      } else {
        updateStatus({ id: this.insOrderRow.id }).then(res => {
          if (res.code === 200) {
            this.upLoad = false
            this.quashDialogVisible = false
            this.refreshTable('page')
@@ -1166,25 +1166,25 @@
    },
    // 下单
    playOrder(num) {
      this.$router.push({ path: "/productOrder/add", query: {examine: 0,active: num, tabIndex: this.tabIndex} });
      this.$router.push({ path: "/productOrder/add", 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/add", query: { examine: 1, active: 3, currentId: row.id } });
    },
    handleTab(m, i) {
      this.tabIndex = i;
      this.refreshTable()
    },
    // 查看检验数据
    viewInspectInfo (row) {
    viewInspectInfo(row) {
      //当前检验任务的检验人列表
      let inspectorList = []
      if(row.userName){
      if (row.userName) {
        inspectorList = row.userName.split(',')
      }
      let user = JSON.parse(localStorage.getItem('user'))
      if(user){
      if (user) {
        inspectorList.push(user.name)
      }
      this.inspectorList = inspectorList
@@ -1198,27 +1198,27 @@
      this.refreshTable('page')
    },
    // 刷新页面
    refreshView () {
    refreshView() {
      this.InspectionKey++
    },
    changeUser(){
      if(this.sonLaboratoryList.length>0){
    changeUser() {
      if (this.sonLaboratoryList.length > 0) {
        this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value
      }
    },
    handleDelete(row){
    handleDelete(row) {
      this.$confirm('是否删除当前数据?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        delInsOrder({insOrderId: row.id}).then(res => {
        delInsOrder({ insOrderId: row.id }).then(res => {
          this.$message.success('删除成功')
          this.refreshTable()
        }).catch(e => {
          this.$message.error('删除失败')
        })
      }).catch(() => {})
      }).catch(() => { })
    }
  }
}
@@ -1229,6 +1229,7 @@
  justify-content: space-between;
  align-items: center;
}
.tab {
  list-style-type: none;
  display: flex;
@@ -1258,10 +1259,12 @@
  border-color: #3A7BFA;
  color: #3A7BFA;
}
.box-card >>>.el-radio__inner {
.box-card>>>.el-radio__inner {
  border-radius: 2px !important;
}
.box-card >>>.el-radio__input.is-checked .el-radio__inner::after {
.box-card>>>.el-radio__input.is-checked .el-radio__inner::after {
  content: '';
  width: 8px;
  height: 3px;
@@ -1277,13 +1280,16 @@
  border-radius: 0px;
  background: none;
}
>>>.el-radio__label{
>>>.el-radio__label {
  color: #000 !important;
}
.el-dialog__body >>>.el-radio__label{
.el-dialog__body>>>.el-radio__label {
  font-size: 8px;
}
.el-dialog__body >>>.el-radio__input.is-checked .el-radio__inner::after {
.el-dialog__body>>>.el-radio__input.is-checked .el-radio__inner::after {
  content: '';
  width: 4px;
  height: 3px;
@@ -1299,38 +1305,48 @@
  border-radius: 0px;
  background: none;
}
>>>.el-radio__input.is-disabled.is-checked .el-radio__inner{
>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
  background: #3A7BFA;
}
.el-dialog__body >>>.el-radio__input.is-disabled.is-checked .el-radio__inner{
.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
  background: transparent;
}
.el-dialog__body >>>.el-radio__inner{
.el-dialog__body>>>.el-radio__inner {
  width: 8px !important;
  height: 8px !important;
}
.el-dialog__body >>>.el-radio__label{
.el-dialog__body>>>.el-radio__label {
  padding-left: 2px !important;
}
.el-dialog__body >>>.el-card__body{
.el-dialog__body>>>.el-card__body {
  padding: 0 !important;
}
.el-dialog__body >>>.el-card {
.el-dialog__body>>>.el-card {
  border: none;
}
.el-dialog__body >>>.el-radio__input.is-disabled .el-radio__inner{
.el-dialog__body>>>.el-radio__input.is-disabled .el-radio__inner {
  border-color: #000 !important;
}
.el-dialog__body >>>.el-radio__input.is-disabled.is-checked .el-radio__inner{
.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
  border: none !important;
}
.scor{
.scor {
  width: 0.01cm;
  height: 0.01cm;
  border-radius: 1px;
  border: 1px solid #000;
  display: inline-block;
}
.ellipsis-multiline {
  display: -webkit-box;
  -webkit-line-clamp: 2;
@@ -1338,8 +1354,11 @@
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
  max-height: 3.0em; /* 高度为字体大小的两倍 */
  line-height: 1.5em; /* 行高 */
  height: 3.0em; /* 高度为行高的两倍 */
  max-height: 3.0em;
  /* 高度为字体大小的两倍 */
  line-height: 1.5em;
  /* 行高 */
  height: 3.0em;
  /* 高度为行高的两倍 */
}
</style>
src/views/business/productSamplingInfo/index.vue
@@ -3,9 +3,8 @@
    <div style="display: flex;justify-content: space-between">
      <el-form :model="entity" ref="entity" size="small" :inline="true">
        <el-form-item label="编号" prop="quarterNo" v-show="tabIndex === 0">
          <el-input v-model="entity.quarterNo" clearable placeholder="请输入"
                    size="small"
                    @keyup.enter.native="refreshTable">
          <el-input v-model="entity.quarterNo" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable">
          </el-input>
        </el-form-item>
        <el-form-item>
@@ -20,26 +19,25 @@
    <div>
      <div class="table">
        <ul class="tab">
          <li v-for="(m,i) in tabList" :key="i" :class="{active:i===tabIndex}" @click="handleTab(m,i)">{{m.label}}</li>
          <li v-for="(m, i) in tabList" :key="i" :class="{ active: i === tabIndex }" @click="handleTab(m, i)">{{ m.label }}</li>
        </ul>
        <!--季度-->
        <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0"
                    @pagination="pagination" :height="'calc(100vh - 290px)'"
                    :page="page" :tableLoading="tableLoading"></lims-table>
        <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination"
          :height="'calc(100vh - 290px)'" :page="page" :tableLoading="tableLoading"></lims-table>
        <!--年度-->
        <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1"
                    @pagination="pagination1" :height="'calc(100vh - 290px)'"
                    key="tableData1" :page="page1" :tableLoading="tableLoading1"></lims-table>
        <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1" @pagination="pagination1"
          :height="'calc(100vh - 290px)'" key="tableData1" :page="page1" :tableLoading="tableLoading1"></lims-table>
      </div>
    </div>
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="yearSampleDia" title="年度抽样" width="70%"
               @close="closeYearSampleDia">
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="yearSampleDia" title="年度抽样"
      width="70%" @close="closeYearSampleDia">
      <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 10px">
        <div style="width: 30%;display: flex;align-items: center;" >
          <el-input v-if="operationType !=='view'" v-model="currentYear" size="small"/>
          <span v-if="operationType ==='view'" style="width: 160px;font-size: 18px;font-weight: 600">{{currentYear}}</span>
        <div style="width: 30%;display: flex;align-items: center;">
          <el-input v-if="operationType !== 'view'" v-model="currentYear" size="small" />
          <span v-if="operationType === 'view'"
            style="width: 160px;font-size: 18px;font-weight: 600">{{ currentYear }}</span>
        </div>
        <div  v-if="operationType !== 'view'">
        <div v-if="operationType !== 'view'">
          <el-button size="small" type="primary" @click="addQuarter">添加</el-button>
          <el-button size="small" type="danger" @click="clearTable">清空</el-button>
        </div>
@@ -49,174 +47,181 @@
          <el-table-column label="类别" prop="yearType" width="240">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.yearType" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.yearType" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.yearType}}</span>
                <span size="small">{{ row.yearType }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="1" prop="january" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.january" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.january" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.january}}</span>
                <span size="small">{{ row.january }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="2" prop="february" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.february" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.february" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.february}}</span>
                <span size="small">{{ row.february }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="3" prop="march" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.march" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.march" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.march}}</span>
                <span size="small">{{ row.march }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="4" prop="april" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.april" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.april" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.april}}</span>
                <span size="small">{{ row.april }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="5" prop="may" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.may" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.may" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.may}}</span>
                <span size="small">{{ row.may }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="6" prop="june" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.june" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.june" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.june}}</span>
                <span size="small">{{ row.june }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="7" prop="july" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.july" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.july" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.july}}</span>
                <span size="small">{{ row.july }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="8" prop="august" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.august" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.august" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.august}}</span>
                <span size="small">{{ row.august }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="9" prop="september" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.september" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.september" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.september}}</span>
                <span size="small">{{ row.september }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="10" prop="october" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.october" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.october" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.october}}</span>
                <span size="small">{{ row.october }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="11" prop="november" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.november" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.november" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.november}}</span>
                <span size="small">{{ row.november }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column header-align="center" label="12" prop="december" width="160">
            <template slot-scope="{row}">
              <template v-if="operationType !== 'view'">
                <el-input v-model="row.december" size="small" type="textarea" :rows="4"/>
                <el-input v-model="row.december" size="small" type="textarea" :rows="4" />
              </template>
              <template v-else>
                <span size="small">{{row.december}}</span>
                <span size="small">{{ row.december }}</span>
              </template>
            </template>
          </el-table-column>
          <el-table-column v-if="operationType !== 'view'" fixed="right" label="操作"  width="100">
          <el-table-column v-if="operationType !== 'view'" fixed="right" label="操作" width="100">
            <template slot-scope="scope">
              <el-button size="small" style="color: #f56c6c" type="text" @click="deleteScope(scope.$index)">删除</el-button>
              <el-button size="small" style="color: #f56c6c" type="text"
                @click="deleteScope(scope.$index)">删除</el-button>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <div style="display: flex;align-items: center;margin-top: 10px">
        <span style="width: 70px">注意事项:</span>
        <el-input v-model="yearSampleForm.tableRemark" :disabled="operationType === 'view'" size="small" style="width: 50%" type="textarea"></el-input>
        <el-input v-model="yearSampleForm.tableRemark" :disabled="operationType === 'view'" size="small"
          style="width: 50%" type="textarea"></el-input>
      </div>
      <div style="display: flex;align-items: center;margin-top: 10px">
        <span style="width: 70px">备注:</span>
        <el-input v-model="yearSampleForm.remark" :disabled="operationType === 'view'" size="small" style="width: 50%" type="textarea"></el-input>
        <el-input v-model="yearSampleForm.remark" :disabled="operationType === 'view'" size="small" style="width: 50%"
          type="textarea"></el-input>
      </div>
      <div v-if="operationType !== 'add'">
        <el-form ref="form" :model="editYearFormRow" label-width="70px">
          <el-col :span="12">
            <el-form-item label="编制人:">
              <el-select v-model="editYearFormRow.writeUser" :disabled="operationType !=='edit'" placeholder="请选择" size="small" style="width: 100%">
              <el-select v-model="editYearFormRow.writeUser" :disabled="operationType !== 'edit'" placeholder="请选择"
                size="small" style="width: 100%">
                <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="会签人:">
              <el-select v-model="editYearFormRow.countersignUser" :disabled="operationType !=='edit'" multiple placeholder="请选择" size="small" style="width: 100%">
              <el-select v-model="editYearFormRow.countersignUser" :disabled="operationType !== 'edit'" multiple
                placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="审核人:">
              <el-select v-model="editYearFormRow.examineUser" :disabled="operationType !=='edit'" placeholder="请选择" size="small" style="width: 100%">
              <el-select v-model="editYearFormRow.examineUser" :disabled="operationType !== 'edit'" placeholder="请选择"
                size="small" style="width: 100%">
                <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="批准人:">
              <el-select v-model="editYearFormRow.ratifyUser" :disabled="operationType !=='edit'" placeholder="请选择" size="small" style="width: 100%">
              <el-select v-model="editYearFormRow.ratifyUser" :disabled="operationType !== 'edit'" placeholder="请选择"
                size="small" style="width: 100%">
                <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option>
              </el-select>
            </el-form-item>
@@ -242,12 +247,12 @@
  finalReportSpotCheckYear,
  getQuarterPage, getSpotCheckYear, getSpotCheckYearPage, updateSpotCheckYear
} from "@/api/business/productSamplingInfo";
import {selectUserCondition} from "@/api/performance/class";
import { selectUserCondition } from "@/api/performance/class";
export default {
  name: "b1-product-sampling-info",
  // import 引入的组件需要注入到对象中才能使用
  components: {limsTable, AddQuarterItem},
  components: { limsTable, AddQuarterItem },
  data() {
    // 这里存放数据
    return {
@@ -269,10 +274,10 @@
      tableData: [],
      tableLoading: false,
      column: [
        {label: '编号', prop: 'quarterNo'},
        {label: '备注', prop: 'remark'},
        {label: '创建人', prop: 'createUserName'},
        {label: '创建时间', prop: 'createTime'},
        { label: '编号', prop: 'quarterNo' },
        { label: '备注', prop: 'remark' },
        { label: '创建人', prop: 'createUserName' },
        { label: '创建时间', prop: 'createTime' },
        {
          dataType: 'action',
          label: '操作',
@@ -309,9 +314,9 @@
        }
      ],
      page: {
        total:0,
        size:10,
        current:1
        total: 0,
        size: 10,
        current: 1
      },
      tableData1: [],
      tableLoading1: false,
@@ -391,10 +396,10 @@
        this.getSpotCheckYearPageList()
      }
    },
    getQuarterPageList () {
    getQuarterPageList() {
      this.tableLoading = true
      getQuarterPage({
        ...this.page,...this.entity
        ...this.page, ...this.entity
      }).then(res => {
        this.tableLoading = false
        this.page.total = res.data.total
@@ -403,7 +408,7 @@
        this.tableLoading = false
      })
    },
    getSpotCheckYearPageList () {
    getSpotCheckYearPageList() {
      this.tableLoading1 = true
      getSpotCheckYearPage({
        ...this.page1
@@ -420,78 +425,76 @@
      this.resetForm('entity')
      this.refreshTable()
    },
    pagination (page) {
    pagination(page) {
      this.page.size = page.limit
      this.refreshTable()
    },
    pagination1 (page) {
    pagination1(page) {
      this.page1.size = page.limit
      this.refreshTable()
    },
    // 编辑季度抽样
    editForm (row) {
    editForm(row) {
      this.$refs.addQuarterItem.openDia(row, 'edit')
    },
    // 查看季度抽样
    viewQuarterInfo (row) {
    viewQuarterInfo(row) {
      this.$refs.addQuarterItem.openDia(row, 'view')
    },
    // 删除季度抽样
    deleteQuarterInfo (row) {
    deleteQuarterInfo(row) {
      this.$confirm('是否删除当前数据?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        deleteQuarter({quarterId: row.quarterId}).then(res => {
        deleteQuarter({ quarterId: row.quarterId }).then(res => {
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.refreshTable()
          }
        })
      }).catch(() => {})
      }).catch(() => { })
    },
    // 导出
    handleDown (row) {
    handleDown(row) {
      let randomNum = Math.random();
      finalReportQuarter({quarterId: row.quarterId, random: randomNum}).then(res => {
      finalReportQuarter({ quarterId: row.quarterId, random: randomNum }).then(res => {
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '季度抽样信息导出.docx')
        this.$message.success('导出成功')
      })
    },
    // 年度下载
    download(row) {
      finalReportSpotCheckYear({yearId: row.yearId}).then(res => {
      finalReportSpotCheckYear({ yearId: row.yearId }).then(res => {
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, row.yearHead + '.docx')
        this.$message.success('导出成功')
      })
    },
    // 删除年度抽样
    deleteYearInfo (row) {
    deleteYearInfo(row) {
      this.$confirm('是否删除当前数据?', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        deleteSpotCheckYear({yearId: row.yearId}).then(res => {
        deleteSpotCheckYear({ yearId: row.yearId }).then(res => {
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.refreshTable()
          }
        })
      }).catch(() => {})
      }).catch(() => { })
    },
    // 查看年度详情
    viewYearInfo (row) {
    viewYearInfo(row) {
      this.operationType = 'view'
      this.getUserList()
      this.yearSampleDia = true
      this.yearRow = row
      getSpotCheckYear({yearId: row.yearId}).then(res => {
      getSpotCheckYear({ yearId: row.yearId }).then(res => {
        if (res.code === 200) {
          this.currentYear = res.data.yearHead
          this.yearItems = res.data.yearItems
@@ -508,11 +511,11 @@
      })
    },
    // 编辑年度抽样
    editYearForm (row) {
    editYearForm(row) {
      this.operationType = 'edit'
      this.getUserList()
      this.yearSampleDia = true
      getSpotCheckYear({yearId: row.yearId}).then(res => {
      getSpotCheckYear({ yearId: row.yearId }).then(res => {
        if (res.code === 200) {
          this.currentYear = res.data.yearHead
          this.yearItems = res.data.yearItems
@@ -529,7 +532,7 @@
      })
    },
    // 提交年度计划
    handleSample () {
    handleSample() {
      if (this.operationType === 'add') {
        this.yearSampleForm.yearItems = JSON.parse(JSON.stringify(this.yearItems))
        this.yearSampleForm.yearHead = this.currentYear
@@ -543,7 +546,7 @@
          }
        })
      } else {
        const params = {...this.editYearFormRow}
        const params = { ...this.editYearFormRow }
        if (params.countersignUser != null) {
          params.countersignUser = params.countersignUser.join(',')
        }
@@ -568,22 +571,22 @@
        })
      }
    },
    yearSample (type) {
    yearSample(type) {
      this.operationType = type
      const currentDate = new Date();
      this.yearSampleDia = true
      this.currentYear = currentDate.getFullYear() + '年年度抽检计划'
    },
    // 添加年度计划
    addQuarter () {
    addQuarter() {
      this.yearItems.push({})
    },
    // 清空抽样计划
    clearTable () {
    clearTable() {
      this.yearItems = []
    },
    // 手动删除
    deleteScope (index) {
    deleteScope(index) {
      this.yearItems.splice(index, 1)
    },
    // 切换下单tab表格
@@ -594,7 +597,7 @@
      }
      this.refreshTable()
    },
    closeYearSampleDia () {
    closeYearSampleDia() {
      this.yearSampleForm = {
        tableRemark: '',
        remark: ''
@@ -602,10 +605,10 @@
      this.yearItems = []
      this.yearSampleDia = false
    },
    getStyle(){
      return 'height: calc(100% - '+'44'+'px)'
    getStyle() {
      return 'height: calc(100% - ' + '44' + 'px)'
    },
    getUserList(){
    getUserList() {
      selectUserCondition({ type: 0 }).then((res) => {
        this.userList = res.data;
      })
src/views/business/rawMaterialInspection/index.vue
@@ -4,59 +4,47 @@
      <el-form :model="componentData" ref="componentData" size="small" :inline="true">
        <el-row>
          <el-form-item label="批号" prop="updateBatchNo">
            <el-input v-model="componentData.updateBatchNo" clearable placeholder="请输入"
                      size="small"
                      @keyup.enter.native="refreshTable"></el-input>
            <el-input v-model="componentData.updateBatchNo" clearable placeholder="请输入" size="small"
              @keyup.enter.native="refreshTable"></el-input>
          </el-form-item>
          <el-form-item label="零件号" prop="partNo">
            <el-input v-model="componentData.partNo" clearable placeholder="请输入"
                      size="small"
                      @keyup.enter.native="refreshTable">
            <el-input v-model="componentData.partNo" clearable placeholder="请输入" size="small"
              @keyup.enter.native="refreshTable">
            </el-input>
          </el-form-item>
          <el-form-item label="零件描述" prop="partDesc">
            <el-input v-model="componentData.partDesc" clearable placeholder="请输入"
                      size="small"
                      @keyup.enter.native="refreshTable">
            <el-input v-model="componentData.partDesc" clearable placeholder="请输入" size="small"
              @keyup.enter.native="refreshTable">
            </el-input>
          </el-form-item>
          <el-form-item label="供应商" prop="supplierName" v-if="(tabIndex === 3 || tabIndex === 4)">
            <el-input v-model="componentData.supplierName" clearable placeholder="请输入"
                      size="small"
                      @keyup.enter.native="refreshTable">
            <el-input v-model="componentData.supplierName" clearable placeholder="请输入" size="small"
              @keyup.enter.native="refreshTable">
            </el-input>
          </el-form-item>
          <el-form-item>
            <el-button v-if="tabIndex === 3 || tabIndex === 4" :icon="!more?'el-icon-arrow-down':'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" @click="more=!more">{{!more?'更多':'收起'}}</el-button>
            <el-button v-if="tabIndex === 3 || tabIndex === 4" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
              style="color: #3A7BFA;" type="text" @click="more = !more">{{ !more ? '更多' : '收起' }}</el-button>
            <el-button size="mini" icon="el-icon-search" type="primary" @click="refreshTable()">查 询</el-button>
            <el-button size="mini" @click="refresh()" icon="el-icon-refresh">重 置</el-button>
          </el-form-item>
        </el-row>
        <el-row>
          <el-form-item label="检验状态" prop="inspectStatus" v-if="(tabIndex === 3 || tabIndex === 4) && more">
            <el-select v-model="componentData.inspectStatus" clearable
                       size="small" style="width: 100%;" @change="refreshTable()">
            <el-select v-model="componentData.inspectStatus" clearable size="small" style="width: 100%;"
              @change="refreshTable()">
              <el-option v-for="(a, i) in queryStatusList" :key="i" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="下发时间" prop="date" v-if="(tabIndex === 3 || tabIndex === 4) && more">
            <el-date-picker
              v-model="componentData.date"
              end-placeholder="结束日期"
              format="yyyy-MM-dd"
              placeholder="选择日期"
              range-separator="至"
              size="small"
              start-placeholder="开始日期"
              style="width: 100%;"
              type="daterange"
            <el-date-picker v-model="componentData.date" end-placeholder="结束日期" format="yyyy-MM-dd" placeholder="选择日期"
              range-separator="至" size="small" start-placeholder="开始日期" style="width: 100%;" type="daterange"
              value-format="yyyy-MM-dd">
            </el-date-picker>
          </el-form-item>
          <el-form-item label="委托编号" prop="entrustCode" v-if="(tabIndex === 3 || tabIndex === 4) && more">
            <el-input v-model="componentData.entrustCode" clearable placeholder="请输入"
                      size="small"
                      @keyup.enter.native="refreshTable">
            <el-input v-model="componentData.entrustCode" clearable placeholder="请输入" size="small"
              @keyup.enter.native="refreshTable">
            </el-input>
          </el-form-item>
        </el-row>
@@ -66,80 +54,88 @@
      <div class="table-tab">
        <div>
          <ul class="tab">
            <li v-for="m in tabList" :key="m.value" :class="{active:m.value===tabIndex}" @click="handleTab(m)">{{m.label}}</li>
            <li v-for="m in tabList" :key="m.value" :class="{ active: m.value === tabIndex }" @click="handleTab(m)">
              {{ m.label }}</li>
          </ul>
        </div>
        <div>
          <el-button v-show="tabIndex === 4" :loading="outLoading" size="small" type="primary" @click="handleDown">导出</el-button>
          <el-button v-if="tabIndex === 0" :loading="btnLoading" size="small" type="primary" @click="openIFS">获取IFS订单</el-button>
          <el-button v-show="tabIndex === 4" :loading="outLoading" size="small" type="primary"
            @click="handleDown">导出</el-button>
          <el-button v-if="tabIndex === 0" :loading="btnLoading" size="small" type="primary"
            @click="openIFS">获取IFS订单</el-button>
          <el-button v-if="tabIndex === 0" size="small" type="primary" @click="declareS">报检</el-button>
          <el-button v-if="tabIndex === 0" size="small" type="primary" @click="addDeclare">新增报检信息</el-button>
        </div>
      </div>
      <!--待报检、待下单-->
      <div class="table">
        <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0 || tabIndex === 1"
                    :isSelection="true" :handleSelectionChange="selectMethod"
                    @pagination="pagination" :height="'calc(100vh - 290px)'"
                    :page="page" :tableLoading="tableLoading"></lims-table>
        <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0 || tabIndex === 1" :isSelection="true"
          :handleSelectionChange="selectMethod" @pagination="pagination" :height="'calc(100vh - 290px)'" :page="page"
          :tableLoading="tableLoading"></lims-table>
      </div>
      <!--已完成、全部-->
      <div class="table">
        <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 3 || tabIndex === 4"
                    @pagination="pagination1" :height="'calc(100vh - 290px)'"
                    :page="page1" :tableLoading="tableLoading1"></lims-table>
          @pagination="pagination1" :height="'calc(100vh - 290px)'" :page="page1"
          :tableLoading="tableLoading1"></lims-table>
      </div>
    </div>
    <!-- 批量报检 -->
    <el-dialog :visible.sync="declareDialogSVisible" title="确认报检" width="30%">
      <p style="font-size:16px;color:#333333">是否确认报检选择的数据?</p>
      <span slot="footer" class="dialog-footer">
                    <el-row>
                        <el-button @click="declareDialogSVisible = false">取 消</el-button>
                        <el-button :loading="submitDeclareLoading" type="primary" @click="submitDeclareS">确 定</el-button>
                    </el-row>
                </span>
        <el-row>
          <el-button @click="declareDialogSVisible = false">取 消</el-button>
          <el-button :loading="submitDeclareLoading" type="primary" @click="submitDeclareS">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
    <!-- 确认报检 -->
    <el-dialog :close-on-click-modal="false" :title="declareType === 'add' ? '新增报检信息' : '原材料报检'"
               :visible.sync="declareDialogVisible"
               width="800px" @close="resetForm">
      <el-form ref="declareObj" :inline="true" :model="declareObj" :rules="declareObjRules"
               label-width="130px" label-position="right">
      :visible.sync="declareDialogVisible" width="800px" @close="resetForm">
      <el-form ref="declareObj" :inline="true" :model="declareObj" :rules="declareObjRules" label-width="130px"
        label-position="right">
        <el-form-item class="declareObj-form-item" label="订单号:" prop="orderNo">
          <el-input v-model="declareObj.orderNo" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
          <el-input v-model="declareObj.orderNo" :disabled="declareType !== 'add'" class="addObj-info" clearable
            placeholder="" size="small"></el-input>
        </el-form-item>
        <el-form-item class="declareObj-form-item" label="零件号:" prop="partNo">
          <el-input v-model="declareObj.partNo" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
          <el-input v-model="declareObj.partNo" :disabled="declareType !== 'add'" class="addObj-info" clearable
            placeholder="" size="small"></el-input>
        </el-form-item>
        <el-form-item class="declareObj-form-item" label="零件描述:" prop="partDesc">
          <el-input v-model="declareObj.partDesc" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
          <el-input v-model="declareObj.partDesc" :disabled="declareType !== 'add'" class="addObj-info" clearable
            placeholder="" size="small"></el-input>
        </el-form-item>
        <el-form-item class="declareObj-form-item" label="抵达的采购数量:" prop="qtyArrived">
          <el-input v-model="declareObj.qtyArrived" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
          <el-input v-model="declareObj.qtyArrived" :disabled="declareType !== 'add'" class="addObj-info" clearable
            placeholder="" size="small"></el-input>
        </el-form-item>
        <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="供应商编号:" prop="supplierId">
          <el-input v-model="declareObj.supplierId" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
          <el-input v-model="declareObj.supplierId" :disabled="declareType !== 'add'" class="addObj-info" clearable
            placeholder="" size="small"></el-input>
        </el-form-item>
        <el-form-item class="declareObj-form-item" label="供应商名称:" prop="supplierName">
          <el-input v-model="declareObj.supplierName" :disabled="declareType !== 'add'" class="addObj-info" clearable placeholder="" size="small"></el-input>
          <el-input v-model="declareObj.supplierName" :disabled="declareType !== 'add'" class="addObj-info" clearable
            placeholder="" size="small"></el-input>
        </el-form-item>
        <el-form-item class="declareObj-form-item" label="批号:" prop="updateBatchNo">
          <el-input v-model="declareObj.updateBatchNo" class="addObj-info" clearable size="small"></el-input>
        </el-form-item>
        <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="库位号:" prop="locationNo">
          <el-input v-model="declareObj.locationNo" :disabled="declareType !== 'add'" class="addObj-info" clearable size="small"></el-input>
          <el-input v-model="declareObj.locationNo" :disabled="declareType !== 'add'" class="addObj-info" clearable
            size="small"></el-input>
        </el-form-item>
        <el-form-item v-if="declareType !== 'add'" class="declareObj-form-item" label="接收时间:" prop="receiverDate">
          <el-input v-model="declareObj.receiverDate" class="addObj-info" clearable disabled size="small"></el-input>
        </el-form-item>
        <el-form-item class="declareObj-form-item" label="单位:" prop="buyUnitMeas">
          <el-input v-model="declareObj.buyUnitMeas" :disabled="declareType !== 'add'" clearable class="addObj-info" size="small"></el-input>
          <el-input v-model="declareObj.buyUnitMeas" :disabled="declareType !== 'add'" clearable class="addObj-info"
            size="small"></el-input>
        </el-form-item>
        <el-form-item class="declareObj-form-item" label="物料类型:" prop="isExpire">
          <el-select v-model="declareObj.isExpire" prop="isExpire"
                     :disabled="declareType !== 'add'"
                     clearable size="small">
          <el-select v-model="declareObj.isExpire" prop="isExpire" :disabled="declareType !== 'add'" clearable
            size="small">
            <el-option :value="1" label="过期物料"></el-option>
          </el-select>
        </el-form-item>
@@ -155,27 +151,26 @@
    <el-dialog :visible.sync="deleteVisible" title="确认删除" width="30%">
      <p style="font-size:16px;color:#333333">是否确认删除?</p>
      <span slot="footer" class="dialog-footer">
                    <el-row>
                        <el-button @click="deleteVisible = false">取 消</el-button>
                        <el-button :loading="deleteLoading" type="primary" @click="submitDelete">确 定</el-button>
                    </el-row>
                </span>
        <el-row>
          <el-button @click="deleteVisible = false">取 消</el-button>
          <el-button :loading="deleteLoading" type="primary" @click="submitDelete">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
    <!-- 撤销报检 -->
    <el-dialog :visible.sync="declareDialogVisible1" title="报检撤销" width="30%">
      <p style="font-size:16px;color:#333333">批号<span
        style="color:#34BD66">{{insOrderRow.updateBatchNo}}</span>的信息是否<span style="color: #FF4902">撤销报检</span></p>
          style="color:#34BD66">{{ insOrderRow.updateBatchNo }}</span>的信息是否<span style="color: #FF4902">撤销报检</span></p>
      <span slot="footer" class="dialog-footer">
                    <el-row>
                        <el-button @click="declareDialogVisible1 = false">取 消</el-button>
                        <el-button :loading="upLoad" type="primary" @click="submitDeclare1">确 定</el-button>
                    </el-row>
                </span>
        <el-row>
          <el-button @click="declareDialogVisible1 = false">取 消</el-button>
          <el-button :loading="upLoad" type="primary" @click="submitDeclare1">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
    <!--数据查看弹框-->
    <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible"
                       :dataDialogVisible="dataDialogVisible"
                       :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible>
    <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible" :dataDialogVisible="dataDialogVisible"
      :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible>
  </div>
</template>
@@ -195,7 +190,7 @@
export default {
  // import 引入的组件需要注入到对象中才能使用
  components: {limsTable, DataLookVisible},
  components: { limsTable, DataLookVisible },
  data() {
    // 这里存放数据
    return {
@@ -237,12 +232,12 @@
            }
          }
        },
        {label: '订单号', prop: 'orderNo'},
        {label: '抵达的采购数量', prop: 'qtyArrived',width: '140px',},
        {label: '批号', prop: 'updateBatchNo'},
        {label: '零件号', prop: 'partNo'},
        {label: '零件描述', prop: 'partDesc'},
        {label: '供应商名称', prop: 'supplierName'},
        { label: '订单号', prop: 'orderNo' },
        { label: '抵达的采购数量', prop: 'qtyArrived', width: '140px', },
        { label: '批号', prop: 'updateBatchNo' },
        { label: '零件号', prop: 'partNo' },
        { label: '零件描述', prop: 'partDesc' },
        { label: '供应商名称', prop: 'supplierName' },
        {
          dataType: 'tag',
          label: '物料类型',
@@ -262,9 +257,9 @@
            }
          }
        },
        {label: '单位', prop: 'buyUnitMeas'},
        {label: '接收时间', prop: 'receiverDate'},
        {label: '报检时间', prop: 'declareDate'},
        { label: '单位', prop: 'buyUnitMeas' },
        { label: '接收时间', prop: 'receiverDate' },
        { label: '报检时间', prop: 'declareDate' },
        {
          dataType: 'action',
          label: '操作',
@@ -303,14 +298,14 @@
        }
      ],
      page: {
        total:0,
        size:10,
        current:1
        total: 0,
        size: 10,
        current: 1
      },
      tableData1: [],
      tableLoading1: false,
      column1: [
        {label: '委托编号', prop: 'entrustCode', width: '160px'},
        { label: '委托编号', prop: 'entrustCode', width: '160px' },
        {
          dataType: 'tag',
          label: '检验状态',
@@ -346,18 +341,18 @@
            }
          }
        },
        {label: '订单号', prop: 'orderNo'},
        {label: '抵达的采购数量', prop: 'qtyArrived'},
        {label: '下发时间', prop: 'sendTime'},
        {label: '批号', prop: 'updateBatchNo'},
        {label: '零件号', prop: 'partNo'},
        {label: '零件描述', prop: 'partDesc'},
        {label: '供应商名称', prop: 'supplierName'},
        {label: '不合格描述', prop: 'unqualifiedDesc'},
        {label: '免检', prop: 'isExemption'},
        {label: '样品名称', prop: 'sampleName'},
        {label: '样品型号', prop: 'sampleModel'},
        {label: '检验人', prop: 'userName'},
        { label: '订单号', prop: 'orderNo' },
        { label: '抵达的采购数量', prop: 'qtyArrived' },
        { label: '下发时间', prop: 'sendTime' },
        { label: '批号', prop: 'updateBatchNo' },
        { label: '零件号', prop: 'partNo' },
        { label: '零件描述', prop: 'partDesc' },
        { label: '供应商名称', prop: 'supplierName' },
        { label: '不合格描述', prop: 'unqualifiedDesc' },
        { label: '免检', prop: 'isExemption' },
        { label: '样品名称', prop: 'sampleName' },
        { label: '样品型号', prop: 'sampleModel' },
        { label: '检验人', prop: 'userName' },
        {
          dataType: 'tag',
          label: '物料类型',
@@ -377,9 +372,9 @@
            }
          }
        },
        {label: '单位', prop: 'buyUnitMeas'},
        {label: '接收时间', prop: 'receiverDate'},
        {label: '报检时间', prop: 'declareDate'},
        { label: '单位', prop: 'buyUnitMeas' },
        { label: '接收时间', prop: 'receiverDate' },
        { label: '报检时间', prop: 'declareDate' },
        {
          dataType: 'action',
          fixed: 'right',
@@ -425,11 +420,11 @@
        }
      ],
      page1: {
        total:0,
        size:10,
        current:1
        total: 0,
        size: 10,
        current: 1
      },
      more:false,
      more: false,
      declareObj: {
        id: null,
        orderNo: '', // 订单号
@@ -514,13 +509,13 @@
      dataLookInfo: {}, // 数据查看弹框数据
      declareType: '', // 操作报检的类型
      queryStatusList: [
        {label: '检验中', value: 0},
        {label: '合格', value: 1},
        {label: '不合格', value: 2},
        {label: '未下单', value: 3},
        {label: '让步放行', value: 4},
        { label: '检验中', value: 0 },
        { label: '合格', value: 1 },
        { label: '不合格', value: 2 },
        { label: '未下单', value: 3 },
        { label: '让步放行', value: 4 },
      ],
      outLoading:false
      outLoading: false
    }
  },
  mounted() {
@@ -547,9 +542,9 @@
      }
    },
    // 待报检、待下单查询
    getWarehouseSubmitApi () {
    getWarehouseSubmitApi() {
      this.tableLoading = true
      const params = {...this.componentData, isInspect: this.tabIndex, state: this.tabIndex === 0 ? null : 0, ...this.page}
      const params = { ...this.componentData, isInspect: this.tabIndex, state: this.tabIndex === 0 ? null : 0, ...this.page }
      getWarehouseSubmit(params).then(res => {
        this.tableLoading = false
        if (res.code === 200) {
@@ -561,9 +556,9 @@
      })
    },
    // 已完成部查询
    getIfsByFinishList () {
    getIfsByFinishList() {
      this.tableLoading1 = true
      getIfsByFinish({...this.componentData, ...this.page1}).then(res => {
      getIfsByFinish({ ...this.componentData, ...this.page1 }).then(res => {
        this.tableLoading1 = false
        if (res.code === 200) {
          this.tableData1 = res.data.records
@@ -574,9 +569,9 @@
      })
    },
    // 全部查询
    getIfsByAllList () {
    getIfsByAllList() {
      this.tableLoading1 = true
      getIfsByAll({...this.componentData, ...this.page1}).then(res => {
      getIfsByAll({ ...this.componentData, ...this.page1 }).then(res => {
        this.tableLoading1 = false
        if (res.code === 200) {
          this.tableData1 = res.data.records
@@ -591,22 +586,22 @@
      this.resetForm('componentData')
      this.refreshTable()
    },
    pagination (page) {
    pagination(page) {
      this.page.size = page.limit
      this.refreshTable()
    },
    pagination1 (page) {
    pagination1(page) {
      this.page1.size = page.limit
      this.refreshTable()
    },
    // 打开撤销报检弹框
    cancelDeclare (row) {
    cancelDeclare(row) {
      this.declareDialogVisible1 = true
      this.insOrderRow = row
    },
    // 提交撤销报检申请
    submitDeclare1 () {
      revokeInspectionReport({id: this.insOrderRow.id}).then(res => {
    submitDeclare1() {
      revokeInspectionReport({ id: this.insOrderRow.id }).then(res => {
        if (res.code === 200) {
          this.declareDialogVisible1 = false
          this.refreshTable('page')
@@ -622,13 +617,13 @@
      this.dataDialogVisible = true;
    },
    // 直接放行
    goPass (row) {
    goPass(row) {
      this.$confirm('是否放行当前数据?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        concessionRelease({ifsInventoryId: row.id}).then(res => {
        concessionRelease({ ifsInventoryId: row.id }).then(res => {
          if (res.code === 200) {
            this.$message({
              type: 'success',
@@ -645,13 +640,13 @@
      });
    },
    // 提前入库
    advancedGodown (row) {
    advancedGodown(row) {
      this.$confirm('当前原材料是否提前入库?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        advancedGodown({ifsInventoryId: row.id}).then(res => {
        advancedGodown({ ifsInventoryId: row.id }).then(res => {
          if (res.code === 200) {
            this.$message({
              type: 'success',
@@ -668,17 +663,17 @@
      });
    },
    // 关闭数据查看弹框
    closeDataLook () {
    closeDataLook() {
      this.dataDialogVisible = false
    },
    // 手动报检
    addDeclare () {
    addDeclare() {
      this.clear()
      this.declareDialogVisible = true
      this.declareType = 'add'
    },
    // 选择报检数据
    declareS () {
    declareS() {
      if (this.multipleSelection.length > 0) {
        this.declareDialogSVisible = true
      } else {
@@ -686,13 +681,13 @@
      }
    },
    // 提交批量报检
    submitDeclareS () {
    submitDeclareS() {
      let ids = []
      this.multipleSelection.forEach(item => {
        ids.push(item.id)
      })
      this.declareDialogSVisible = true
      inspectionReport({ids: ids}).then(res => {
      inspectionReport({ ids: ids }).then(res => {
        if (res.code === 200) {
          this.declareDialogSVisible = false
          this.$message.success('报检成功')
@@ -706,12 +701,12 @@
    },
    // 打开报检确认弹框
    declare(row) {
      this.declareObj = {...row}
      this.declareObj = { ...row }
      this.declareDialogVisible = true
      this.declareType = 'edit'
    },
    // 提交报检
    submitDeclare () {
    submitDeclare() {
      if (this.declareType === 'add') {
        this.$refs['declareObj'].validate((valid) => {
          if (valid) {
@@ -751,19 +746,19 @@
        });
      }
    },
    resetForm () {
    resetForm() {
      this.$refs['declareObj'].resetFields();
      this.declareDialogVisible = false
    },
    // 打开删除弹框
    deleteMaterial (row) {
    deleteMaterial(row) {
      this.deleteVisible = true
      this.deleteInfo = row
    },
    // 确认删除
    submitDelete () {
    submitDelete() {
      this.deleteLoading = true
      delIfsInventory({id: this.deleteInfo.id}).then(res => {
      delIfsInventory({ id: this.deleteInfo.id }).then(res => {
        this.deleteVisible = false
        this.$message.success('删除成功')
        this.refreshTable()
@@ -789,15 +784,14 @@
      })
    },
    // 全部导出
    handleDown(){
      let entity = {...this.componentData}
    handleDown() {
      let entity = { ...this.componentData }
      delete entity.orderBy
      this.outLoading = true
      rawAllExport({
        entity:entity
        entity: entity
      }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        let url = this.javaApi + '/word/' + res.data
        this.$download.saveAs(url, "原材料检测信息导出.xlsx");
      })
@@ -827,6 +821,7 @@
  display: flex;
  justify-content: space-between;
}
.tab {
  list-style-type: none;
  display: flex;
src/views/business/reportPreparation/index.vue
@@ -3,8 +3,8 @@
    <div>
      <el-form :model="entity" ref="entity" size="small" :inline="true">
        <el-form-item label="报告编号" prop="code">
          <el-input v-model="entity.code" clearable placeholder="请输入"
                    size="small" @keyup.enter.native="refreshTable()"></el-input>
          <el-input v-model="entity.code" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input>
        </el-form-item>
        <el-form-item label="状态" prop="queryStatus">
          <el-select v-model="entity.queryStatus" clearable size="small" @change="refreshTable()">
@@ -30,26 +30,28 @@
    </div>
    <div>
      <lims-table :tableData="valueTableData" :column="column" :page="page" :tableLoading="tableLoading"
                  :isSelection="true" :handleSelectionChange="handleChange"
                  :height="'calc(100vh - 290px)'" @pagination="pagination" key="valueTableData">
        :isSelection="true" :handleSelectionChange="handleChange" :height="'calc(100vh - 290px)'"
        @pagination="pagination" key="valueTableData">
        <div slot="action" slot-scope="scope">
          <el-button size="small" type="text" @click="viewIssued(scope.row)">查看报告</el-button>
          <el-upload ref='upload1'
                     style="display: inline;margin: 0 6px"
                     :action="fileAction1 +'?id='+ scope.row.id"
                     :auto-upload="true"
                     :before-upload="fileBeforeUpload1"
                     :headers="uploadHeader" :on-error="onError1"
                     :on-success="handleSuccessUp1"
                     :show-file-list="false"
                     accept='.doc,.docx'>
            <el-button size="small" type="text" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName">上传</el-button>
          <el-upload ref='upload1' style="display: inline;margin: 0 6px" :action="fileAction1 + '?id=' + scope.row.id"
            :auto-upload="true" :before-upload="fileBeforeUpload1" :headers="uploadHeader" :on-error="onError1"
            :on-success="handleSuccessUp1" :show-file-list="false" accept='.doc,.docx'>
            <el-button size="small" type="text"
              :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName">上传</el-button>
          </el-upload>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName" @click="handleRestore(scope.row)">还原</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName" @click="sendBackTask(scope.row)">退回任务</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName" @click="handle(scope.row)">提交</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state == null || scope.row.state == 0 ||scope.row.isExamine == 1 || nickName !== scope.row.examineUser" @click="handleIssued(scope.row)">审核</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state == null || scope.row.state == 0 || scope.row.isExamine == 0 || scope.row.isExamine == null || scope.row.isRatify == 1 || nickName !== scope.row.ratifyUser" @click="handleApprove(scope.row)">批准</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName"
            @click="handleRestore(scope.row)">还原</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName"
            @click="sendBackTask(scope.row)">退回任务</el-button>
          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName"
            @click="handle(scope.row)">提交</el-button>
          <el-button type="text" size="small"
            :disabled="scope.row.state == null || scope.row.state == 0 || scope.row.isExamine == 1 || nickName !== scope.row.examineUser"
            @click="handleIssued(scope.row)">审核</el-button>
          <el-button type="text" size="small"
            :disabled="scope.row.state == null || scope.row.state == 0 || scope.row.isExamine == 0 || scope.row.isExamine == null || scope.row.isRatify == 1 || nickName !== scope.row.ratifyUser"
            @click="handleApprove(scope.row)">批准</el-button>
          <el-popover placement="bottom" trigger="hover" style="margin-left: 6px">
            <template #reference>
              <el-button link type="text" size="small">更多</el-button>
@@ -64,31 +66,32 @@
      </lims-table>
    </div>
    <el-dialog :fullscreen="fullscreen" :modal-append-to-body="false" :visible.sync="claimVisible" title="在线编制"
               width="22cm">
      width="22cm">
      <div class="full-screen">
        <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px"
           @click="fullscreen=true;"></i>
        <img v-else alt="" src="@/assets/images/no-full.svg" style="cursor: pointer;" @click="fullscreen=false;">
          @click="fullscreen = true;"></i>
        <img v-else alt="" src="@/assets/images/no-full.svg" style="cursor: pointer;" @click="fullscreen = false;">
      </div>
      <Word v-if="claimVisible" ref="Word" :class="{fullscreen:fullscreen}" :value="value" style="height:70vh" />
      <Word v-if="claimVisible" ref="Word" :class="{ fullscreen: fullscreen }" :value="value" style="height:70vh" />
      <span slot="footer" class="dialog-footer">
        <el-button @click="claimVisible = false">取 消</el-button>
        <el-button type="primary" @click="confirmClaim">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog :fullscreen="fullscreen" :modal-append-to-body="false" :visible.sync="issuedVisible" title="报告审核"
               width="80vw">
      width="80vw">
      <div class="full-screen">
        <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;"></i>
        <img v-else alt="" src="@/assets/images/no-full.svg" style="cursor: pointer;" @click="fullscreen=false;" >
        <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px"
          @click="fullscreen = true;"></i>
        <img v-else alt="" src="@/assets/images/no-full.svg" style="cursor: pointer;" @click="fullscreen = false;">
      </div>
      <div v-if="issuedVisible" style="height: 80vh;">
        <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
      </div>
      <span slot="footer" class="dialog-footer">
                <el-button :disabled="loadingIssued" @click="issuedReasonVisible=true">不通过</el-button>
                <el-button type="primary" @click="subIssued">通 过</el-button>
            </span>
        <el-button :disabled="loadingIssued" @click="issuedReasonVisible = true">不通过</el-button>
        <el-button type="primary" @click="subIssued">通 过</el-button>
      </span>
    </el-dialog>
    <el-dialog :modal-append-to-body="false" :visible.sync="issuedReasonVisible" title="不通过原因" width="400px">
      <div class="search_thing">
@@ -96,22 +99,24 @@
        <div class="search_input"><el-input v-model="reason" clearable placeholder="请输入" size="small"></el-input></div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button :disabled="loadingIssuedReason" @click="issuedReasonVisible=false">取消</el-button>
                <el-button :loading="loadingIssuedReason" type="primary" @click="handleIssuedReason">确定</el-button>
            </span>
        <el-button :disabled="loadingIssuedReason" @click="issuedReasonVisible = false">取消</el-button>
        <el-button :loading="loadingIssuedReason" type="primary" @click="handleIssuedReason">确定</el-button>
      </span>
    </el-dialog>
    <el-dialog :fullscreen="fullscreen" :modal-append-to-body="false" :visible.sync="approveVisible" title="报告批准" width="80vw">
    <el-dialog :fullscreen="fullscreen" :modal-append-to-body="false" :visible.sync="approveVisible" title="报告批准"
      width="80vw">
      <div class="full-screen">
        <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;"></i>
        <img v-else alt="" src="@/assets/images/no-full.svg" style="cursor: pointer;" @click="fullscreen=false;" >
        <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px"
          @click="fullscreen = true;"></i>
        <img v-else alt="" src="@/assets/images/no-full.svg" style="cursor: pointer;" @click="fullscreen = false;">
      </div>
      <div v-if="approveVisible" style="height: 80vh;">
        <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
      </div>
      <span slot="footer" class="dialog-footer">
                <el-button :disabled="loadingApprove" @click="approveReasonVisible=true">不批准</el-button>
                <el-button :loading="loadingApprove" type="primary" @click="subApprove">批 准</el-button>
            </span>
        <el-button :disabled="loadingApprove" @click="approveReasonVisible = true">不批准</el-button>
        <el-button :loading="loadingApprove" type="primary" @click="subApprove">批 准</el-button>
      </span>
    </el-dialog>
    <el-dialog :modal-append-to-body="false" :visible.sync="approveReasonVisible" title="不批准原因" width="400px">
      <div class="search_thing">
@@ -119,18 +124,17 @@
        <div class="search_input"><el-input v-model="reason" clearable placeholder="请输入" size="small"></el-input></div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button :disabled="loadingApproveReason" @click="approveReasonVisible=false">取消</el-button>
                <el-button :loading="loadingApproveReason" type="primary" @click="handleApproveReason">确定</el-button>
            </span>
        <el-button :disabled="loadingApproveReason" @click="approveReasonVisible = false">取消</el-button>
        <el-button :loading="loadingApproveReason" type="primary" @click="handleApproveReason">确定</el-button>
      </span>
    </el-dialog>
    <el-dialog :close-on-click-modal="false" :visible.sync="addApproverDia" title="指定批准人员"
               width="400px"
               @close="closeAddApproverDia">
    <el-dialog :close-on-click-modal="false" :visible.sync="addApproverDia" title="指定批准人员" width="400px"
      @close="closeAddApproverDia">
      <div class="body" style="display: flex;padding: 10px;align-items: center;">
        <div class="search_label" style="width: 150px;"><span class="required-span">*</span>批准人:</div>
        <div class="search_input" style="width: 100%;">
          <el-select v-model="approver" clearable filterable placeholder="请选择" size="small" style="width: 100%;">
            <el-option v-for="(item,i) in approverList" :key="i" :label="item.label" :value="item.value">
            <el-option v-for="(item, i) in approverList" :key="i" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
        </div>
@@ -140,15 +144,13 @@
        <el-button :loading="loadingIssued" type="primary" @click="submitAddApprover">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog :close-on-click-modal="false" :visible.sync="addVerifyDia"
               title="指定审核人员"
               width="400px"
               @close="closeAddVerifyDia">
    <el-dialog :close-on-click-modal="false" :visible.sync="addVerifyDia" title="指定审核人员" width="400px"
      @close="closeAddVerifyDia">
      <div class="body" style="display: flex;padding: 10px;align-items: center;">
        <div class="search_label" style="width: 150px;"><span class="required-span">*</span>审核人:</div>
        <div class="search_input" style="width: 100%;">
          <el-select v-model="verifyUser" clearable filterable placeholder="请选择" size="small" style="width: 100%;">
            <el-option v-for="(item,i) in approverList" :key="i" :label="item.label" :value="item.value">
            <el-option v-for="(item, i) in approverList" :key="i" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
        </div>
@@ -159,13 +161,14 @@
      </span>
    </el-dialog>
    <!--产业链信息查看-->
<!--    <ShowInfo v-if="showInfoDialog" ref="showInfoDialog" :showInfoDialog="showInfoDialog"></ShowInfo>-->
    <!--    <ShowInfo v-if="showInfoDialog" ref="showInfoDialog" :showInfoDialog="showInfoDialog"></ShowInfo>-->
    <!--报告查看-->
    <el-dialog :fullscreen="fullscreen" :modal-append-to-body="false" :visible.sync="viewIssuedVisible" title="报告查看"
               width="80vw">
      width="80vw">
      <div class="full-screen">
        <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;"></i>
        <img v-else alt="" src="@/assets/images/no-full.svg" style="cursor: pointer;" @click="fullscreen=false;" >
        <i v-if="!fullscreen" class="el-icon-full-screen" style="cursor: pointer;font-size: 18px"
          @click="fullscreen = true;"></i>
        <img v-else alt="" src="@/assets/images/no-full.svg" style="cursor: pointer;" @click="fullscreen = false;">
      </div>
      <div v-if="viewIssuedVisible" style="height: 80vh;">
        <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
@@ -174,19 +177,15 @@
    <!--附件查看-->
    <el-dialog :visible.sync="filesDialogVisible" title="附件查看" width="80%" @closed="closeFilesLook">
      <div style="margin-bottom: 10px">
        <el-upload ref='upload'
                   :action="fileAction"
                   :auto-upload="true"
                   :before-upload="fileBeforeUpload" :data="{orderId: filesLookInfo.insOrderId}"
                   :headers="uploadHeader" :on-error="onError"
                   :on-success="handleSuccessUp"
                   :show-file-list="false"
                   accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' style="width: 80px !important;">
        <el-upload ref='upload' :action="fileAction" :auto-upload="true" :before-upload="fileBeforeUpload"
          :data="{ orderId: filesLookInfo.insOrderId }" :headers="uploadHeader" :on-error="onError"
          :on-success="handleSuccessUp" :show-file-list="false"
          accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' style="width: 80px !important;">
          <el-button size="small" style="height: 38px" type="primary">附件上传</el-button>
        </el-upload>
      </div>
      <lims-table :tableData="tableDataFile" :column="columnFile" @pagination="paginationFile" height="500px"
                  key="tableDataFile" :page="pageFile" :tableLoading="tableLoadingFile"></lims-table>
        key="tableDataFile" :page="pageFile" :tableLoading="tableLoadingFile"></lims-table>
    </el-dialog>
  </div>
</template>
@@ -204,12 +203,12 @@
  upReportUrl,
  writeReport
} from "@/api/business/insReport";
import {mapGetters} from "vuex";
import {selectUserCondition} from "@/api/business/inspectionTask";
import { mapGetters } from "vuex";
import { selectUserCondition } from "@/api/business/inspectionTask";
import limsTable from "@/components/Table/lims-table.vue";
import {delfile, downFile, getFileList} from "@/api/business/rawMaterialOrder";
import { delfile, downFile, getFileList } from "@/api/business/rawMaterialOrder";
export default {
  components: {limsTable, onlyoffice},
  components: { limsTable, onlyoffice },
  data() {
    return {
      entity: {
@@ -237,10 +236,10 @@
      value: ``,
      reason: '',
      currentInfo: null,
      option:null,
      mutiList:[],
      outLoading:false,
      inLoading:false,
      option: null,
      mutiList: [],
      outLoading: false,
      inLoading: false,
      addApproverDia: false, // 指定审批人员弹框
      approver: '', // 审批人员
      approverId: '', // 审批人员
@@ -249,14 +248,14 @@
      verifyUser: null, // 审核人员
      loadingVerify: false, // 审核人员
      typeSourceList: [
        {label: '成品下单', value: 0},
        {label: '原材料下单', value: 1},
        { label: '成品下单', value: 0 },
        { label: '原材料下单', value: 1 },
      ],
      orderTypeList: [
        {label: '委托试验', value: 'Customer-ordered test'},
        {label: '抽检', value: '抽检'},
        {label: '进厂检验', value: '进厂检验'},
        {label: '季度检验', value: 'Quarterly inspection'},
        { label: '委托试验', value: 'Customer-ordered test' },
        { label: '抽检', value: '抽检' },
        { label: '进厂检验', value: '进厂检验' },
        { label: '季度检验', value: 'Quarterly inspection' },
      ],
      showInfoDialog: false, // 产业链信息查看
      isReport: 1,
@@ -266,9 +265,9 @@
      examine: null,
      viewIssuedVisible: false,
      queryStatusList: [
        {label: '待提交', value: 0},
        {label: '待审核', value: 1},
        {label: '待批准', value: 2},
        { label: '待提交', value: 0 },
        { label: '待审核', value: 1 },
        { label: '待批准', value: 2 },
      ],
      state: 0,
      orderId: 0,
@@ -470,7 +469,7 @@
    refreshTable() {
      this.tableLoading = true
      pageInsReport({
        ...this.page,...this.entity
        ...this.page, ...this.entity
      }).then(res => {
        this.tableLoading = false
        this.page.total = res.data.body.total
@@ -486,14 +485,14 @@
      this.resetForm('entity')
      this.refreshTable();
    },
    handleChange(arr){
    handleChange(arr) {
      this.mutiList = arr
    },
    // 查看检验数据
    viewInspectInfo (row) {
    viewInspectInfo(row) {
      //当前检验任务的检验人列表
      let inspectorList = []
      if(row.userName){
      if (row.userName) {
        inspectorList = row.userName.split(',')
      }
      inspectorList.push(this.nickName)
@@ -509,7 +508,7 @@
      })
    },
    // 打开查看附件弹框
    handleFileLook (row) {
    handleFileLook(row) {
      this.filesLookInfo = row
      this.filesDialogVisible = true
      this.getFileList()
@@ -517,7 +516,7 @@
    // 查询附件查看列表回调
    getFileList() {
      this.tableLoadingFile = true
      getFileList({insOrderId: this.filesLookInfo.insOrderId}).then(res => {
      getFileList({ insOrderId: this.filesLookInfo.insOrderId }).then(res => {
        this.tableLoadingFile = false
        if (res.code === 200) {
          this.tableDataFile = res.data.records
@@ -531,33 +530,33 @@
      this.pageFile.size = page.limit
      this.getFileList()
    },
    closeFilesLook () {
    closeFilesLook() {
      this.filesDialogVisible = false
    },
    handleSuccessUp(response, ) {
    handleSuccessUp(response,) {
      this.upLoading = false;
      if (response.code == 200) {
        this.$message.success('上传成功');
        this.getFileList()
      }
    },
    handleSuccessUp1(response, ) {
    handleSuccessUp1(response,) {
      if (response.code == 200) {
        this.$message.success('上传成功');
      }
    },
    // 下载附件的文件
    handleDown(row){
    handleDown(row) {
      downFile({
        id: row.id,
      }).then(res => {
        if (res.code === 200) {
          let url = '';
          if(res.data.type==1){
            url = this.javaApi+'/img/'+res.data.fileUrl
          if (res.data.type == 1) {
            url = this.javaApi + '/img/' + res.data.fileUrl
            this.$download.saveAs(url, row.fileName);
          }else{
            url = this.javaApi+'/word/'+res.data.fileUrl
          } else {
            url = this.javaApi + '/word/' + res.data.fileUrl
            this.$download.saveAs(url, row.fileName);
          }
        }
@@ -584,31 +583,30 @@
      }).catch(() => { })
    },
    // 查看产业链信息
    openInfoDialog (row) {
    openInfoDialog(row) {
      this.showInfoDialog = true
      this.$nextTick(() => {
        this.$refs.showInfoDialog.getInfo(row.ifsInventoryId)
      })
    },
    handleDowns(){
      if(this.mutiList.length==0){
    handleDowns() {
      if (this.mutiList.length == 0) {
        this.$message.error('请选择报告')
        return
      }
      let str = this.mutiList.map(m=>m.id).join(',')
      let str = this.mutiList.map(m => m.id).join(',')
      this.outLoading = true
      downAll({ids: str}).then(res => {
      downAll({ ids: str }).then(res => {
        this.outLoading = false
        this.$message.success('导出成功')
        this.$download.saveAs(this.javaApi + res.message, row.fileName);
      })
    },
    beforeUpload(file){
    beforeUpload(file) {
      const isZip = file.type === 'application/zip' || file.name.endsWith('.zip');
      if (!isZip) {
        this.$message.error('上传文件只能是 ZIP 格式!');
      }
      if(isZip){
      if (isZip) {
        this.inLoading = true;
      }
      return isZip;
@@ -635,20 +633,20 @@
        return Promise.reject(flag); //正确的终止
      }
    },
    handleSuccess(response,){
    handleSuccess(response,) {
      this.inLoading = false;
      if (response.code == 200) {
        this.$message.success('导入成功')
        this.refreshTable()
      }else{
      } else {
        this.$message.error(response.message)
      }
    },
    onError(err, file, fileList,type) {
    onError(err, file, fileList, type) {
      this.$message.error('上传失败')
      this.$refs.upload.clearFiles()
    },
    onError1(err, file, fileList,type) {
    onError1(err, file, fileList, type) {
      this.$message.error('上传失败')
      this.$refs.upload1.clearFiles()
    },
@@ -717,13 +715,13 @@
    // 审核按钮
    handleIssued(row) {
      this.currentInfo = row;
      let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS
      let fileName = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
      let fileType = "docx"
      if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
        fileName = row.tempUrlPdf
        fileType = "pdf"
      }
      fileName = fileName.replace('/word/','')
      fileName = fileName.replace('/word/', '')
      const userName = this.nickName
      this.option = {
        url: this.javaApi + "/word/" + fileName,
@@ -741,13 +739,13 @@
    // 查看报告
    viewIssued(row) {
      this.currentInfo = row;
      let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS
      let fileName = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
      let fileType = "docx"
      if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
        fileName = row.tempUrlPdf
        fileType = "pdf"
      }
      fileName = fileName.replace('/word/','')
      fileName = fileName.replace('/word/', '')
      const userName = this.nickName
      this.option = {
        url: this.javaApi + "/word/" + fileName,
@@ -770,7 +768,7 @@
        type: 'warning'
      }).then(() => {
        this.upLoad = true
        sendBackTask({id: row.id}).then(res => {
        sendBackTask({ id: row.id }).then(res => {
          this.upLoad = false
          this.$message.success('退回成功!')
          this.refreshTable('page')
@@ -785,7 +783,7 @@
      });
    },
    // 审核通过
    submitAddApprover () {
    submitAddApprover() {
      if (!this.approver) {
        this.$message.error('请选择审批人')
        return
@@ -807,7 +805,7 @@
        this.loadingIssued = false;
      })
    },
    closeAddApproverDia () {
    closeAddApproverDia() {
      this.addApproverDia = false
      this.approver = ''
    },
@@ -832,13 +830,13 @@
    // 批准按钮
    handleApprove(row) {
      this.currentInfo = row;
      let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS
      let fileName = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
      let fileType = "docx"
      if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
        fileName = row.tempUrlPdf
        fileType = "pdf"
      }
      fileName = fileName.replace('/word/','')
      fileName = fileName.replace('/word/', '')
      const userName = this.nickName
      this.option = {
        url: this.javaApi + "/word/" + fileName,
@@ -867,7 +865,7 @@
        this.approveVisible = false;
      })
    },
    handle (row) {
    handle(row) {
      this.getAuthorizedPerson()
      this.currentInfo = row;
      this.addVerifyDia = true
@@ -888,7 +886,7 @@
        this.$message.error('提交失败')
      })
    },
    closeAddVerifyDia () {
    closeAddVerifyDia() {
      this.addVerifyDia = false
      this.verifyUser = ''
    },
src/views/performance/manHour/workTimeManagement.vue
@@ -4,308 +4,146 @@
    <div class="search">
      <div class="search_thing" style="width: 200px">
        <div class="search_label">星期:</div>
        <el-select
          v-model="entity.weekDay"
          clearable
          placeholder="全部"
          size="small"
          @change="refreshTable()"
        >
          <el-option
            v-for="item in weekList"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          >
        <el-select v-model="entity.weekDay" clearable placeholder="全部" size="small" @change="refreshTable()">
          <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </div>
      <div class="search_thing" style="width: 390px">
        <div class="search_label" style="width: 90px">时间范围:</div>
        <div class="search_input">
          <el-date-picker
            v-model="entity.dateTime"
            clearable
            end-placeholder="结束日期"
            format="yyyy-MM-dd"
            range-separator="至"
            size="small"
            start-placeholder="开始日期"
            style="width: 100%"
            type="daterange"
            value-format="yyyy-MM-dd"
            @change="refreshTable()"
          >
          <el-date-picker v-model="entity.dateTime" clearable end-placeholder="结束日期" format="yyyy-MM-dd"
            range-separator="至" size="small" start-placeholder="开始日期" style="width: 100%" type="daterange"
            value-format="yyyy-MM-dd" @change="refreshTable()">
          </el-date-picker>
        </div>
      </div>
      <!-- 以下这两个为组长角色特有的 -->
      <div class="search_thing" style="width: 200px">
        <div class="search_label">名字:</div>
        <el-input
          v-model="entity.name"
          clearable
          placeholder="请输入"
          size="small"
          @keyup.enter.native="refreshTable()"
        ></el-input>
        <el-input v-model="entity.name" clearable placeholder="请输入" size="small"
          @keyup.enter.native="refreshTable()"></el-input>
      </div>
      <div
        v-if="currentTable == 'ValueTable1'"
        class="search_thing"
        style="width: 250px"
      >
      <div v-if="currentTable == 'ValueTable1'" class="search_thing" style="width: 250px">
        <div class="search_label" style="width: 120px">样品编号:</div>
        <el-input
          v-model="entity.sample"
          clearable
          placeholder="请输入"
          size="small"
          @keyup.enter.native="refreshTable()"
        ></el-input>
        <el-input v-model="entity.sample" clearable placeholder="请输入" size="small"
          @keyup.enter.native="refreshTable()"></el-input>
      </div>
      <div
        v-if="currentTable == 'ValueTable0'"
        class="search_thing"
        style="width: 200px"
      >
      <div v-if="currentTable == 'ValueTable0'" class="search_thing" style="width: 200px">
        <div class="search_label">状态:</div>
        <el-select
          v-model="entity.state"
          placeholder="全部"
          size="small"
          @change="refreshTable()"
          clearable
        >
          <el-option
            v-for="item in stateList"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          >
        <el-select v-model="entity.state" placeholder="全部" size="small" @change="refreshTable()" clearable>
          <el-option v-for="item in stateList" :key="item.value" :label="item.label" :value="item.value">
          </el-option>
        </el-select>
      </div>
      <div class="search_thing" style="padding-left: 30px; width: 100px">
        <el-button size="small" @click="refresh()">重 置</el-button>
        <el-button size="small" type="primary" @click="refreshTable()"
          >查 询</el-button
        >
        <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
      </div>
    </div>
    <div
      style="display: flex; align-items: center; justify-content: space-between"
    >
    <div style="display: flex; align-items: center; justify-content: space-between">
      <el-radio-group :key="'111'" v-model="currentTable" size="small">
        <el-radio-button label="ValueTable0"> 辅助工时 </el-radio-button>
        <el-radio-button label="ValueTable1"> 产量工时 </el-radio-button>
      </el-radio-group>
      <div style="display: flex; align-items: center">
        <p style="font-size: 14px; margin-right: 30px">
          总工时汇总:<span
            v-if="totalInfo"
            style="font-size: 16px; color: #3a7bfa"
            >{{
              totalInfo["产量工时汇总"] + totalInfo["辅助工时汇总"]
                ? Number(
                    totalInfo["产量工时汇总"] + totalInfo["辅助工时汇总"]
                  ).tofixed(4)
                : 0
            }}</span
          >&nbsp;&nbsp;&nbsp;&nbsp;产量工时汇总:<span
            v-if="totalInfo"
            style="font-size: 16px; color: #3a7bfa"
            >{{
          总工时汇总:<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{
            totalInfo["产量工时汇总"] + totalInfo["辅助工时汇总"]
              ? Number(
                totalInfo["产量工时汇总"] + totalInfo["辅助工时汇总"]
              ).tofixed(4)
              : 0
          }}</span>&nbsp;&nbsp;&nbsp;&nbsp;产量工时汇总:<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{
              totalInfo["产量工时汇总"]
                ? Number(totalInfo["产量工时汇总"]).tofixed(4)
                : 0
            }}</span
          >&nbsp;&nbsp;&nbsp;&nbsp;辅助工时汇总:<span
            v-if="totalInfo"
            style="font-size: 16px; color: #3a7bfa"
            >{{
            }}</span>&nbsp;&nbsp;&nbsp;&nbsp;辅助工时汇总:<span v-if="totalInfo" style="font-size: 16px; color: #3a7bfa">{{
              totalInfo["辅助工时汇总"]
                ? Number(totalInfo["辅助工时汇总"]).tofixed(4)
                : 0
            }}</span
          >
            }}</span>
        </p>
        <el-button
          v-show="
            currentTable == 'ValueTable0' &&
            checkPermi(['performance:manHour:workTimeManagement:add'])
          "
          size="small"
          type="primary"
          @click="openAdd"
          >录入数据</el-button
        >
        <el-button
          v-if="down && currentTable === 'ValueTable0'"
          :loading="outLoading"
          size="small"
          type="primary"
          @click="handleOut"
          >导 出</el-button
        >
        <el-button
          v-if="down && currentTable === 'ValueTable1'"
          :loading="outLoading"
          size="small"
          type="primary"
          @click="handleOut1"
          >导 出</el-button
        >
        <el-button
          v-show="
            currentTable == 'ValueTable0' &&
            checkPermi(['performance:manHour:workTimeManagement:add'])
          "
          size="small"
          type="primary"
          @click="openBatchCheck(1)"
          >批量批准</el-button
        >
        <el-button v-show="currentTable == 'ValueTable0' &&
          checkPermi(['performance:manHour:workTimeManagement:add'])
          " size="small" type="primary" @click="openAdd">录入数据</el-button>
        <el-button v-if="down && currentTable === 'ValueTable0'" :loading="outLoading" size="small" type="primary"
          @click="handleOut">导 出</el-button>
        <el-button v-if="down && currentTable === 'ValueTable1'" :loading="outLoading" size="small" type="primary"
          @click="handleOut1">导 出</el-button>
        <el-button v-show="currentTable == 'ValueTable0' &&
          checkPermi(['performance:manHour:workTimeManagement:add'])
          " size="small" type="primary" @click="openBatchCheck(1)">批量批准</el-button>
      </div>
    </div>
    <div class="table">
      <lims-table
        :tableData="tableData"
        :column="column"
        :page="page"
        :tableLoading="tableLoading"
        :height="'calc(100vh - 350px)'"
        :isSelection="true"
        v-if="currentTable == 'ValueTable0'"
        @pagination="pagination"
        :handleSelectionChange="handleSelectionChange"
      ></lims-table>
      <lims-table
        :tableData="tableData0"
        :column="column0"
        :page="page0"
        :tableLoading="tableLoading"
        :height="'calc(100vh - 350px)'"
        v-if="currentTable == 'ValueTable1'"
        @pagination="pagination0"
      ></lims-table>
      <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
        :height="'calc(100vh - 350px)'" :isSelection="true" v-if="currentTable == 'ValueTable0'"
        @pagination="pagination" :handleSelectionChange="handleSelectionChange"></lims-table>
      <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading"
        :height="'calc(100vh - 350px)'" v-if="currentTable == 'ValueTable1'" @pagination="pagination0"></lims-table>
    </div>
    <el-dialog
      :before-close="handleClose"
      :title="formData.id ? '编辑' : '录入数据'"
      :visible.sync="addVisible"
      width="600px"
    >
    <el-dialog :before-close="handleClose" :title="formData.id ? '编辑' : '录入数据'" :visible.sync="addVisible"
      width="600px">
      <el-row style="display: flex; justify-content: space-around">
        <el-col :span="12">
          <el-form :model="formData" label-width="90px">
            <el-form-item label="录入时间:">
              <el-radio-group v-model="formData.dateTime" size="small">
                <el-radio :label="getYearAndMonthAndDays() + ' 00:00:00'"
                  >今天</el-radio
                >
                <el-radio
                  :label="
                    getYearAndMonthAndDays(
                      new Date(new Date().getTime() - 24 * 60 * 60 * 1000)
                    ) + ' 00:00:00'
                  "
                  >昨天</el-radio
                >
                <el-radio :label="getYearAndMonthAndDays() + ' 00:00:00'">今天</el-radio>
                <el-radio :label="getYearAndMonthAndDays(
                  new Date(new Date().getTime() - 24 * 60 * 60 * 1000)
                ) + ' 00:00:00'
                  ">昨天</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item label="年份:">
              <el-input
                v-model="formData.year"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.year" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="周次:">
              <el-input
                v-model="formData.week"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.week" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="星期:">
              <!-- <el-input v-model="formData.weekDay" size="small" disabled></el-input> -->
              <el-select
                v-model="formData.weekDay"
                disabled
                placeholder="请选择"
                size="small"
              >
                <el-option
                  v-for="item in weekList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
              <el-select v-model="formData.weekDay" disabled placeholder="请选择" size="small">
                <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="班次:">
              <el-input
                v-model="formData.shift"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.shift" disabled size="small"></el-input>
            </el-form-item>
          </el-form>
        </el-col>
        <el-col :span="12">
          <el-form :model="formData" label-width="90px">
            <el-form-item label="编号:" required>
              <el-input
                v-model="formData.number"
                size="small"
                @blur="getInfoByCode"
              ></el-input>
              <el-input v-model="formData.number" size="small" @blur="getInfoByCode"></el-input>
            </el-form-item>
            <el-form-item label="数量:" required>
              <el-input v-model="formData.amount" size="small"></el-input>
            </el-form-item>
            <el-form-item label="核准工时:">
              <el-input
                v-model="formData.approvedWorkingHour"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.approvedWorkingHour" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="辅助工时:">
              <el-input
                v-model="formData.nonproductiveTime"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.nonproductiveTime" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="辅助项目:">
              <el-input
                v-model="formData.auxiliaryProject"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData.auxiliaryProject" disabled size="small"></el-input>
            </el-form-item>
          </el-form>
        </el-col>
      </el-row>
      <el-form :model="formData" label-width="90px">
        <el-form-item label="辅助说明:">
          <el-input
            v-model="formData.remarks"
            :rows="3"
            size="small"
            type="textarea"
          ></el-input>
          <el-input v-model="formData.remarks" :rows="3" size="small" type="textarea"></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button @click="handleClose">取 消</el-button>
          <el-button :loading="addLoad" type="primary" @click="submitAdd"
            >确 定</el-button
          >
          <el-button :loading="addLoad" type="primary" @click="submitAdd">确 定</el-button>
        </el-row>
      </span>
    </el-dialog>
@@ -315,134 +153,63 @@
        <el-col :span="12">
          <el-form :model="formData0" label-width="90px">
            <el-form-item label="年份:">
              <el-input
                v-model="formData0.year"
                :disabled="title == '批准'"
                size="small"
              ></el-input>
              <el-input v-model="formData0.year" :disabled="title == '批准'" size="small"></el-input>
            </el-form-item>
            <el-form-item label="周次:">
              <el-input
                v-model="formData0.week"
                :disabled="title == '批准'"
                size="small"
              ></el-input>
              <el-input v-model="formData0.week" :disabled="title == '批准'" size="small"></el-input>
            </el-form-item>
            <el-form-item label="星期:">
              <el-select
                v-model="formData0.weekDay"
                :disabled="title == '批准'"
                placeholder="请选择"
                size="small"
              >
                <el-option
                  v-for="item in weekList"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
              <el-select v-model="formData0.weekDay" :disabled="title == '批准'" placeholder="请选择" size="small">
                <el-option v-for="item in weekList" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="姓名:">
              <el-input
                v-model="formData0.name"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData0.name" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="班次:">
              <el-select
                v-model="formData0.shift"
                :disabled="title == '批准'"
                placeholder="请选择"
                size="small"
              >
                <el-option
                  v-for="item in classType"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value"
                >
              <el-select v-model="formData0.shift" :disabled="title == '批准'" placeholder="请选择" size="small">
                <el-option v-for="item in classType" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="复核说明:">
              <el-input
                v-model="formData0.reviewerRemark"
                :rows="3"
                size="small"
                type="textarea"
              ></el-input>
              <el-input v-model="formData0.reviewerRemark" :rows="3" size="small" type="textarea"></el-input>
            </el-form-item>
          </el-form>
        </el-col>
        <el-col :span="12">
          <el-form :model="formData0" label-width="90px">
            <el-form-item label="编号:" required>
              <el-input
                v-model="formData0.number"
                :disabled="title == '批准'"
                size="small"
              ></el-input>
              <el-input v-model="formData0.number" :disabled="title == '批准'" size="small"></el-input>
            </el-form-item>
            <el-form-item label="数量:" required>
              <el-input
                v-model="formData0.amount"
                :disabled="title == '批准'"
                size="small"
              ></el-input>
              <el-input v-model="formData0.amount" :disabled="title == '批准'" size="small"></el-input>
            </el-form-item>
            <el-form-item label="复核数量:" required>
              <el-input
                v-model="formData0.reviewerNumber"
                size="small"
              ></el-input>
              <el-input v-model="formData0.reviewerNumber" size="small"></el-input>
            </el-form-item>
            <el-form-item label="核准工时:">
              <el-input
                v-model="formData0.approvedWorkingHour"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData0.approvedWorkingHour" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="复核工时:">
              <el-input
                v-model="formData0.reviewerNonproductiveTime"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData0.reviewerNonproductiveTime" disabled size="small"></el-input>
            </el-form-item>
            <el-form-item label="辅助项目:">
              <el-input
                v-model="formData0.auxiliaryProject"
                disabled
                size="small"
              ></el-input>
              <el-input v-model="formData0.auxiliaryProject" disabled size="small"></el-input>
            </el-form-item>
          </el-form>
        </el-col>
      </el-row>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button :loading="checkLoadN" @click="submitCheck(0)"
            >不批准</el-button
          >
          <el-button
            :loading="checkLoadY"
            type="primary"
            @click="submitCheck(1)"
            >批 准</el-button
          >
          <el-button :loading="checkLoadN" @click="submitCheck(0)">不批准</el-button>
          <el-button :loading="checkLoadY" type="primary" @click="submitCheck(1)">批 准</el-button>
        </el-row>
      </span>
    </el-dialog>
    <el-dialog
      :before-close="closeBatchCheckDialog"
      :title="batchCheckTitle"
      :visible.sync="batchCheckDialog"
      width="30%"
    >
    <el-dialog :before-close="closeBatchCheckDialog" :title="batchCheckTitle" :visible.sync="batchCheckDialog"
      width="30%">
      <span>{{ batchCheckDialogMessage }}</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="batchCheck(0)">不批准</el-button>
@@ -875,7 +642,7 @@
            this.refreshTable("page");
          });
        })
        .catch(() => {});
        .catch(() => { });
    },
    handleClose() {
      this.addVisible = false;
@@ -1096,7 +863,6 @@
      exportAssistantHours({ entity: entity })
        .then((res) => {
          this.outLoading = false;
          this.$message.success("导出成功");
          const blob = new Blob([res]);
          this.$download.saveAs(blob, "辅助工时信息导出.xlsx");
        })
@@ -1115,7 +881,6 @@
      exportOutputHours({ entity: entity })
        .then((res) => {
          this.outLoading = false;
          this.$message.success("导出成功");
          const blob = new Blob([res]);
          this.$download.saveAs(blob, "产量工时信息导出.xlsx");
        })
@@ -1139,6 +904,7 @@
  padding-top: 0;
  /* scrollbar-width: none;  */
}
/* .work-time-management::-webkit-scrollbar {
  display: none;
} */