Crunchy
2025-03-17 0a26d58a3906b9e13946c7cb46fae51a0de98920
Merge branch 'dev' into dev_tides
已修改110个文件
已删除2个文件
3792 ■■■■■ 文件已修改
src/InspectionWorker.worker.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/styles/sidebar.scss 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Excel/luckysheet.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Preview/filePreview.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/lims-table.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/TableCard/index.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/UpPdfStamp/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/index/scroll-paging.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/permission.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/user.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/serviceAndSupplyPro/component/ConsumableList.vue 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/serviceAndSupplyPro/component/ConsumableOverview.vue 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/serviceAndSupplyPro/component/ConsumableProject.vue 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/serviceAndSupplyPro/component/Store.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/serviceAndSupplyPro/component/index.vue 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/serviceAndSupplyPro/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/supplierManage/index.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personalOverview/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/components/Edit.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/complaint/index.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/demand/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/ensureResultsValidity/components/evaluateDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/ensureResultsValidity/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/qualityControlPlan/components/detailFormDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/qualityControlPlan/components/rectifyDialogNew.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/method/methodVerification/index.vue 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/method/standardMethodsChange/index.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/nonconformingWork/nonconformingDistribution/index.vue 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/nonconformingWork/nonconformingItem/index.vue 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/reportResults/index.vue 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/sampleDisposal/index.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/uncertainty/index.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/acquisitionConfig.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/management.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/illuminance-recording.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/lightning-protection-detection.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/temperature-humidity-record.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-treatment.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/standardMaterailRequistion/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/standardMaterial/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/correctiveAction/index.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/customerSatisfaction/index.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentControl/components/ControlledFileApplication.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentControl/components/DistributionCollectionRecord.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue 413 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentControl/components/FileList.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentControl/components/FileObsoletionRequest.vue 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentControl/index.vue 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/approvalRecord.vue 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/cancellationRecord.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/outDocumenRecordt.vue 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/regularReviewsRecord.vue 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/documentRecords/revisionRecord.vue 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/auditInspection.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/auditMeetingSign.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/auditReport.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/correctiveAction.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/implementationPlan.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/components/yearPlan.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/internalAuditManagement/index.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/managementReview/components/managementReviewPlan.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/managementReview/components/meetingRecords.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/managementReview/components/reviewReport.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/managementReview/index.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/measuresDealRisks/components/hazardIdentificationRiskAssessment.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/measuresDealRisks/components/listRiskAnalysisControlPlans.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/systemManagement/measuresDealRisks/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/finishedProductSampling/components/addQuarterItem.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/finishedProductSampling/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionReview/index.vue 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/components/InspectionWord.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/index.vue 216 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/inspection.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrder/copperOrder.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrder/customsInspection.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrder/index.vue 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/components/add.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/components/auxiliaryWireCore.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/components/cable-config.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/index.vue 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productSamplingInfo/components/addQuarterItem.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productSamplingInfo/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/rawMaterialInspection/index.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/reportPreparation/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/sample/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/unpass/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/logindemo.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/performance/manHour/workTimeManagement.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/performance/manHour/workTimeStatistics.vue 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/standard/standardLibrary/index.vue 377 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/statisticalCharts/itemInspectionAnalysis/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/capability/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/laboratory/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/customer/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/InspectionWorker.worker.js
@@ -30,7 +30,6 @@
let currentInsItem = null;
// æŽ¥æ”¶åˆ°ä¸»çº¿ç¨‹å¤„理逻辑的消息
self.onmessage = function (event) {
  console.log(2222, event);
  // ä¿å­˜ä¸»çº¿ç¨‹ä¼ è¿‡æ¥çš„值
  const data = JSON.parse(event.data);
  if (currentTable != data.currentTable) {
src/assets/styles/sidebar.scss
@@ -71,9 +71,27 @@
    }
    .el-menu-item, .el-submenu__title {
      overflow: hidden !important;
      text-overflow: ellipsis !important;
      white-space: nowrap !important;
      display: flex;
      align-items: center;
    }
    .el-submenu__title span {
      white-space: normal;
      word-break: break-all;
      line-height: 20px;
      flex: 1;
      padding-right: 20px;
    }
    .el-menu-item {
      display: flex;
      align-items: center;
      padding-right: 20px !important;
    }
    .el-menu-item span {
      white-space: normal;
      word-break: break-all;
      line-height: 20px;
      flex: 1;
    }
    // menu hover
src/components/Excel/luckysheet.vue
@@ -69,10 +69,8 @@
  methods: {
    templateWrite() {
      var option = {};
      console.log(2222, this.data);
      if (this.data != null && this.data != "") {
        option = JSON.parse(this.data);
        console.log(11111, option);
      } else {
        let rowlen = {};
        let columnlen = {};
src/components/Preview/filePreview.vue
@@ -96,7 +96,6 @@
      if (state) {
        this.imgUrl = this.fileUrl.replaceAll('word', 'img')
      }
      console.log(11111, this.imgUrl)
      return state;
    },
    isPdf() {
src/components/Table/lims-table.vue
@@ -13,7 +13,7 @@
        :filter-method="item.filterHandler" :filter-multiple="item.filterMultiple" :filtered-value="item.filteredValue"
        :filters="item.filters" :fixed="item.fixed" :label="item.label" :min-width="item.minWidth" :prop="item.prop"
        :show-overflow-tooltip="item.dataType === 'action' || item.dataType === 'slot' ? false : true"
        :sortable="item.sortable ? true : false" :type="item.type" :width="item.dataType === 'action' ? getWidth(item.operation) : item.width" align="center">
        :sortable="item.sortable ? true : false" :type="item.type" :width="item.dataType == 'action' ? btnWidth : item.width" align="center">
        <!-- <div class="123" v-if="item.type == ''"> -->
        <template v-if="item.hasOwnProperty('colunmTemplate')" :slot="item.colunmTemplate" slot-scope="scope">
          <slot v-if="item.theadSlot" :index="index" :name="item.theadSlot" :row="scope.row" />
@@ -62,7 +62,8 @@
          </div>
          <!-- æŒ‰é’® -->
          <div v-else-if="item.dataType == 'action'">
          <div v-else-if="item.dataType == 'action'"
               :style="`width:${getWidth(item.operation, scope.row)}`">
            <template v-for="(o, key) in item.operation">
              <el-button v-show="o.type != 'upload'" size="mini" v-if="o.showHide ? o.showHide(scope.row) : true"
                :disabled="o.disabled ? o.disabled(scope.row) : false" :icon="iconFn(o)" :plain="o.plain"
@@ -230,7 +231,7 @@
    },
    rowStyle: {
      type: Object || Function,
      default: () => { },
      default: () => null,
    },
    tableData: {
      type: Array,
@@ -257,6 +258,7 @@
  data() {
    return {
      spanList: [],
      btnWidth: "120px",
    };
  },
  mounted() {
@@ -266,16 +268,17 @@
    });
  },
  methods: {
    getWidth(row) {
    getWidth(row, row0) {
      let count = 0;
      row.forEach((a) => {
        if (a.showHide!==undefined && a.showHide()) {
        if (a.showHide !== undefined && a.showHide(row0)) {
          count += a.name.length;
        } else if(!a.showHide) {
        } else if (!a.showHide) {
          count += a.name.length;
        }
      });
      return count * 15 + 70 + "px";
      this.btnWidth = count * 15 + 50 + "px";
      return count * 15 + 50 + "px";
    },
    iconFn(row) {
      if (row.name === "编辑" || row.name === "修改") {
@@ -327,7 +330,6 @@
      this.$emit("pagination", { page: page, limit: limit });
    },
    indexMethod(index) {
      // return index * 2;
      return (this.page.current - 1) * this.page.size + index + 1;
    },
    // ç‚¹å‡»å•元格link事件
src/components/TableCard/index.vue
ÎļþÒÑɾ³ý
src/components/UpPdfStamp/index.vue
@@ -4,7 +4,7 @@
      v-if="isUpFile">
      <input type="file" @change="handleFileUpload" accept="application/pdf" ref="fileInput" />
    </div>
    <p style="color: red;font-size: 12px;margin: 16px 0;" v-if="canvasNumPages > 0">提示:在文件范围内,单击鼠标盖章,双击鼠标已盖好章处可删除当前章</p>
    <div style="color: red;font-size: 12px;margin: 16px 0;" v-if="canvasNumPages > 0">提示:在文件范围内,单击鼠标盖章,双击鼠标已盖好章处可删除当前章</div>
    <canvas ref="pdfCanvas" @click="e => handleCanvasClick(e, index)" style="border: 1px solid #000;"
      @dblclick="e => removeStamp(e, index)" v-for="(item, index) in canvasNumPages" :key="index"></canvas>
  </div>
src/components/index/scroll-paging.vue
@@ -66,7 +66,6 @@
      }
    },
    loadMore(){
      console.log('滚动了',this.isLoding)
      if (this.isLoding) return
      this.isLoding = true
      setTimeout(() => {
src/main.js
@@ -66,9 +66,7 @@
Vue.prototype.HaveJson = (val) => {
  return JSON.parse(JSON.stringify(val));
};
Vue.prototype.javaApi = process.env.VUE_APP_BASE_API
  ? process.env.VUE_APP_BASE_API
  : "http://localhost:8001";
Vue.prototype.javaApi = "http://114.132.189.42:7012";
Vue.prototype.checkPermi = checkPermi;
Vue.prototype.uploadHeader = {
  Authorization: "Bearer " + getToken(),
src/permission.js
@@ -19,6 +19,7 @@
  NProgress.start()
  if (getToken()) {
    to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
    console.log(to.path)
    /* has token*/
    if (to.path === '/login') {
      next({ path: '/' })
src/router/index.js
@@ -46,6 +46,18 @@
    component: () => import("@/views/login"),
    hidden: true,
  },
  // ç¬¬ä¸‰æ–¹ç™»å½•页
  {
    path: "/thirdpartylogin",
    component: () => import("@/views/thirdpartylogin"),
    hidden: true,
  },
  // ç¬¬ä¸‰æ–¹ç™»å½•页中转
  {
    path: "/logindemo",
    component: () => import("@/views/logindemo"),
    hidden: true,
  },
  {
    path: "/callbacklccpn",
    component: () => import("@/views/tideLogin.vue"),
@@ -67,7 +79,7 @@
    hidden: true,
  },
  {
    path: "",
    path: "/",
    component: Layout,
    redirect: "index",
    children: [
src/store/modules/user.js
@@ -113,12 +113,16 @@
    LogOut({ commit, state }) {
      return new Promise((resolve, reject) => {
        logout(state.token)
          .then(() => {
            commit("SET_TOKEN", "");
            commit("SET_ROLES", []);
            commit("SET_PERMISSIONS", []);
            removeToken();
            resolve();
          .then((res) => {
            if (res.data) {
              window.location.href = res.data
            } else {
              commit("SET_TOKEN", "");
              commit("SET_ROLES", []);
              commit("SET_PERMISSIONS", []);
              removeToken();
              resolve();
            }
          })
          .catch((error) => {
            reject(error);
src/views/CNAS/externalService/serviceAndSupplyPro/component/ConsumableList.vue
@@ -1,39 +1,24 @@
<template>
  <div>
    <TableCard :showTitle="false">
      <template slot="form">
        <div class="action-box">
          <div></div>
          <div class="flex">
            <el-button icon="el-icon-plus" size="small" type="primary" @click="showDialog(undefined)">
              æ–°å»º
            </el-button>
            <el-button icon="el-icon-upload2" size="small" @click="exportExcel">
              å¯¼å‡ºExcel
            </el-button>
          </div>
        </div>
    <div class="flex">
      <el-button icon="el-icon-plus" size="small" type="primary" @click="showDialog(undefined)">
        æ–°å»º
      </el-button>
      <el-button icon="el-icon-upload2" size="small" @click="exportExcel">
        å¯¼å‡ºExcel
      </el-button>
    </div>
    <limsTable :column="columns" :currentChange="rowClick" :height="'25vh'" :highlightCurrentRow="true"
               :isSelection="false" :rowStyle="tableRowStyle" :table-data="tableData" rowKey="id"
               @pagination="pagination" :page="page" style="margin-top: 18px;">
      <template v-slot:consumablesTypeSlot="{ row }">
        {{ findType(row.consumablesType) }}
      </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 }">
            {{ findType(row.consumablesType) }}
          </template>
          <template v-slot:operation="scope">
            <el-button size="small" type="text" @click="showDialog(scope.row)">编辑</el-button>
            <el-button size="small" style="color: #f56c6c" type="text" @click="handleDelete(scope.row)">删除</el-button>
          </template>
        </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>
        </div>
      <template v-slot:operation="scope">
        <el-button size="small" type="text" @click="showDialog(scope.row)">编辑</el-button>
        <el-button size="small" style="color: #f56c6c" type="text" @click="handleDelete(scope.row)">删除</el-button>
      </template>
    </TableCard>
    </limsTable>
    <el-divider></el-divider>
    <div>
      <ConsumableProject ref="consumableProject"></ConsumableProject>
@@ -43,7 +28,6 @@
</template>
<script>
import TableCard from './index.vue';
import Edit from "./Edit.vue"
import limsTable from '@/components/Table/lims-table.vue'
import {
@@ -55,9 +39,7 @@
export default {
  dicts: ["consumables_type"],
  components: {
    TableCard, limsTable, Edit, ConsumableProject
  },
  components: {limsTable, Edit, ConsumableProject},
  props: {
    contentsId: {
      type: Number,
@@ -133,9 +115,9 @@
        }
      ],
      tableData: [],
      pagination: {
      page: {
        current: 1,
        pageSize: 20,
        size: 20,
        total: 0
      },
      options: [],
@@ -147,9 +129,10 @@
  },
  methods: {
    async fetchData() {
      procurementSuppliesList({ contentId: this.contentsId }).then(res => {
      procurementSuppliesList({ contentId: this.contentsId, ...this.page }).then(res => {
        if (res.code === 200) {
          this.tableData = res.data.records
          this.page.total = res.data.total
          if (this.tableData.length > 0) {
            this.rowClick(this.tableData[0])
          }
@@ -176,9 +159,9 @@
        this.$download.saveAs(blob, '耗材列表.xlsx')
      })
    },
    handleCurrent() {
    },
    handleSize() {
    pagination(page) {
      this.page.size = page.limit
      this.fetchData()
    },
    handleDelete(row) {
      deleteProcurementSuppliesList({ id: row.id }).then(res => {
@@ -192,10 +175,10 @@
      this.$refs.consumableProject.fetchListId(row)
    },
    tableRowStyle({ row }) {
      if (row.currentAmount <= row.lowerLimit) {
      if(row.currentAmount <= row.lowerLimit) {
        return { background: '#ffcaca' }
      } else {
        return {}
        return { background: '#fff' }
      }
    }
  }
@@ -205,21 +188,6 @@
<style scoped>
.flex {
  display: flex;
}
.action-box {
  width: 100%;
  padding-top: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.pagination {
  padding-top: 15px;
  padding-right: 10px;
  display: flex;
  justify-content: space-between
  text-align: right;
}
</style>
src/views/CNAS/externalService/serviceAndSupplyPro/component/ConsumableOverview.vue
@@ -1,37 +1,33 @@
<template>
    <div>
        <el-row class="card-box">
            <el-col :span="4" v-for="(item, index) in cardList" :key="index">
                <CardPanel
                    :isActive="isActive"
                    :data="item"
                    :index="index"
                    @handleCard="handleCard"
                />
            </el-col>
            <el-col :span="24" v-if="cardList.length==0" style="color: #909399;font-size: 14px;text-align: center;margin-top: 20px;">暂无数据</el-col>
        </el-row>
        <TableCard title="耗材信息" :showForm="false" style="margin-top: 5px">
            <template v-slot:table>
                <limsTable
                    style="margin-top: 18px; padding: 0 15px;"
                    :height="'20vh'"
                    :column="columns"
                    :table-data="tableData"
                >
                </limsTable>
            </template>
        </TableCard>
    </div>
  <div>
    <el-row class="card-box">
      <el-col :span="4" v-for="(item, index) in cardList" :key="index">
        <CardPanel
          :isActive="isActive"
          :data="item"
          :index="index"
          @handleCard="handleCard"
        />
      </el-col>
      <el-col :span="24" v-if="cardList.length==0" style="color: #909399;font-size: 14px;text-align: center;margin-top: 20px;">暂无数据</el-col>
    </el-row>
    <div class="title">耗材信息</div>
    <limsTable
      style="margin-top: 18px; padding: 0 15px;"
      :height="'20vh'"
      :column="columns"
      :table-data="tableData"
    >
    </limsTable>
  </div>
</template>
<script>
import CardPanel from './CardPanel.vue';
import TableCard from './index.vue';
import { procurementSuppliesList } from "@/api/cnas/externalService/serviceAndSupplyPro/serviceAndSupplyPro"
import limsTable from '@/components/Table/lims-table.vue'
export default {
    components: { CardPanel, TableCard, limsTable },
    components: { CardPanel, limsTable },
    props: {
        contentsId: {
            type: Number,
@@ -110,6 +106,25 @@
}
</script>
<style scoped>
.title {
  position: relative;
  font-size: 18px;
  color: #333;
  font-weight: 400;
  padding-left: 10px;
  margin-left: 15px;
}
.title::before {
  position: absolute;
  left: 0;
  top: 4px;
  content: '';
  width: 4px;
  height: 18px;
  background-color: #3A7BFA;
  border-radius: 2px;
}
.card-box {
    width: 100%;
    padding-left: 5px;
src/views/CNAS/externalService/serviceAndSupplyPro/component/ConsumableProject.vue
@@ -1,51 +1,31 @@
<template>
  <div>
    <TableCard :showTitle="false">
      <template slot="form">
        <div class="action-box">
          <div></div>
          <div class="flex">
            <el-button icon="el-icon-plus" size="small" type="primary" @click="showDialog">
              æ·»åŠ é¡¹ç›®
            </el-button>
            <el-button icon="el-icon-upload2" size="small" @click="exportExcel">
              å¯¼å‡º
            </el-button>
          </div>
        </div>
    <div class="flex">
      <el-button icon="el-icon-plus" size="small" type="primary" @click="showDialog">
        æ·»åŠ é¡¹ç›®
      </el-button>
<!--      <el-button icon="el-icon-upload2" size="small" @click="exportExcel">-->
<!--        å¯¼å‡º-->
<!--      </el-button>-->
    </div>
    <limsTable
      :column="columns"
      :height="'25vh'"
      :isSelection="true"
      :table-data="tableData"
      @pagination="pagination"
      :page="page"
      style="margin-top: 18px;"
    >
      <template v-slot:operation="scope">
        <el-button size="small" type="text" @click="deleteData(scope.row)">删除</el-button>
      </template>
      <template v-slot:table>
        <limsTable
          :column="columns"
          :height="'25vh'"
          :isSelection="true"
          :table-data="tableData"
          style="margin-top: 18px; padding: 0 15px;"
        >
          <template v-slot:operation="scope">
            <el-button size="small" type="text" @click="deleteData(scope.row)">删除</el-button>
          </template>
        </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>
        </div>
      </template>
    </TableCard>
    </limsTable>
    <AddProject ref="AddProjectRef" @submit="fetchData"/>
  </div>
</template>
<script>
import TableCard from './index.vue';
import limsTable from '@/components/Table/lims-table.vue'
import Edit from "./Edit.vue"
import AddProject from './AddProject.vue';
@@ -55,9 +35,7 @@
} from "@/api/cnas/externalService/serviceAndSupplyPro/serviceAndSupplyPro";
export default {
  components: {
    TableCard, limsTable, Edit, AddProject
  },
  components: {limsTable, Edit, AddProject},
  data() {
    return {
      columns: [
@@ -91,9 +69,9 @@
        }
      ],
      tableData: [],
      pagination: {
      page: {
        current: 1,
        pageSize: 20,
        size: 20,
        total: 0
      },
      listId: 0,
@@ -114,12 +92,17 @@
    async fetchData() {
      if (this.listId === 0) return
      procurementSuppliesExpendlist({
        procurementSuppliesListId:this.listId
        procurementSuppliesListId:this.listId,
        ...this.page
      }).then(res => {
        if (res.code === 200) {
          this.tableData = res.data
        }
      })
    },
    pagination (page) {
      this.page.size = page.limit
      this.fetchData()
    },
    showDialog() {
      this.$refs.AddProjectRef.openDialog(this.row);
@@ -132,10 +115,6 @@
        }
      })
    },
    handleCurrent() {
    },
    handleSize() {
    },
    exportExcel() {
    }
  }
@@ -144,15 +123,7 @@
<style scoped>
.flex {
  display: flex;
}
.action-box {
  width: 100%;
  padding-top: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: right;
}
.pagination {
src/views/CNAS/externalService/serviceAndSupplyPro/component/Store.vue
@@ -6,11 +6,9 @@
        margin-right: 20px;
        margin-bottom: 20px;
      ">
      <el-button icon="el-icon-plus" size="small" type="primary" @click="addOrUpdateStore('add')">添加
      </el-button>
      <el-button icon="el-icon-download" size="small" @click="importExcel">
        å¯¼å‡ºexcel
      </el-button>
      <el-button size="small" type="primary" @click="searchList">刷新</el-button>
      <el-button icon="el-icon-plus" size="small" type="primary" @click="addOrUpdateStore('add')">添加</el-button>
      <el-button icon="el-icon-download" size="small" @click="importExcel">导出excel</el-button>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 20em)'" :table-data="storageTableData"
@@ -253,12 +251,6 @@
      consumableOptions: [],
      options: [],
      storageTableData: [],
      searchForm: {
        orderBy: {
          field: "id",
          order: "desc",
        },
      },
      saveLoading: false,
    };
  },
@@ -350,7 +342,7 @@
    // æŸ¥è¯¢åˆ—表
    searchList() {
      this.tableLoading = true
      storeList({ ...this.page, ...this.searchForm }).then(res => {
      storeList({ ...this.page}).then(res => {
        this.tableLoading = false
        if (res.code === 200) {
          this.storageTableData = res.data.records
src/views/CNAS/externalService/serviceAndSupplyPro/component/index.vue
ÎļþÒÑɾ³ý
src/views/CNAS/externalService/serviceAndSupplyPro/index.vue
@@ -23,7 +23,7 @@
      </el-tree>
    </div>
    <div class="purchase-right">
      <el-tabs v-model="activeName" @tab-click="handleClick">
      <el-tabs v-model="activeName">
        <el-tab-pane label="耗材总览" name="first" :lazy="true">
          <ConsumableOverview v-if="activeName == 'first'" :contentsId="contentsId"></ConsumableOverview>
        </el-tab-pane>
@@ -56,6 +56,7 @@
} from '@/api/cnas/externalService/serviceAndSupplyPro/serviceAndSupplyPro'
export default {
  name: 'ServiceAndSupplyPro',
  data() {
    return {
      tabsKey: 0,
@@ -139,9 +140,6 @@
    // ç‚¹å‡»æ ‘节点
    handleNodeClick(data) {
      this.contentsId = data.id;
    },
    handleClick(tab, event) {
      console.log(tab, event);
    },
  },
  created() {
src/views/CNAS/externalService/supplierManage/index.vue
@@ -26,9 +26,6 @@
</template>
<script>
// import ZTTable from "../caorui/ZTTable/index.vue";
// import TableCard from "../caorui/TableCard/index.vue";
// import axios from "axios";
import FormDia from "../supplierManage/component/formDia.vue";
import limsTable from '@/components/Table/lims-table.vue'
import {
@@ -38,7 +35,7 @@
} from '@/api/cnas/externalService/supplierManage/supplierManage'
export default {
  name: "a6-supplier-manage-new",
  name: "SupplierManage",
  // import å¼•入的组件需要注入到对象中才能使用
  components: {
    limsTable,
src/views/CNAS/personnel/personalOverview/index.vue
@@ -49,6 +49,7 @@
import ScrollPagination from '@/components/index/scroll-paging.vue'
import {selectUserCondition} from "@/api/business/inspectionTask";
export default {
  name: 'Personaloverview',
  components: {
    ScrollPagination
  },
src/views/CNAS/personnel/personnelInfo/components/Edit.vue
@@ -371,7 +371,7 @@
      }
    },
    getUserList(){
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition({ type: 2 }).then((res) => {
        this.userList = res.data;
      })
    },
src/views/CNAS/personnel/personnelInfo/index.vue
@@ -119,6 +119,7 @@
import Communicate from './tabs/communicate.vue'
import {addDepartmentLims, delDepartmentLims, selectCNSAPersonTree} from "@/api/cnas/personal/personalList";
export default {
  name: 'PersonnelInfo',
  components: {
    PersonnelList, personnelInformation, PersonnelTraining, JobResponsibilities, rewardPunishmentRecord, TrainingRecord, Mandate, PersonnelCapacity, Communicate
  },
@@ -152,6 +153,7 @@
    };
  },
  mounted() {
    this.activeName = this.$route.query.activeName || '人员基本信息'
    this.geList();
  },
  methods: {
src/views/CNAS/process/complaint/index.vue
@@ -1,23 +1,23 @@
<template>
  <div class="Complaint">
  <div class="capacity-scope">
    <div class="search">
      <div class="search_thing">
        <div class="search_label">样品编号:</div>
        <div class="search_input"><el-input v-model="queryParams.sampleCode" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="样品编号" prop="sampleCode">
            <el-input v-model="queryParams.sampleCode" clearable placeholder="请输入" size="small"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item label="投诉名称" prop="complainName">
            <el-input v-model="queryParams.complainName" clearable placeholder="请输入" size="small"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing">
        <div class="search_label">投诉名称:</div>
        <div class="search_input">
          <el-input v-model="queryParams.complainName" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input>
        </div>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btn">
      <div>
        <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">导出</el-button>
        <el-button size="small" type="primary" @click="openAdd">新增</el-button>
      </div>
@@ -280,11 +280,13 @@
} from '@/api/cnas/process/complaint.js'
import { mapGetters } from "vuex";
export default {
  name: 'Complaint',
  components: {
    limsTable
  },
  data() {
    return {
      tableLoading: false,
      addPower: false,
      outLoading: false,
      addDialogVisible: false,
@@ -491,19 +493,11 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 80px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
}
.search_thing {
  width: 350px;
  display: flex;
@@ -518,12 +512,6 @@
.search_input {
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 80px - 10px - 40px);
  padding: 20px;
}
.dialog-body {
src/views/CNAS/process/demand/index.vue
@@ -23,9 +23,9 @@
          <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
        </el-form-item>
      </el-form>
    </div>
    <div style="text-align: right; margin-bottom: 20px">
      <el-button size="small" type="primary" @click="goAdd">新增</el-button>
      <div style="text-align: right; margin-bottom: 20px">
        <el-button size="small" type="primary" @click="goAdd">新增</el-button>
      </div>
    </div>
    <div class="table">
      <el-table v-loading="tableListLoading" :data="tableList"
@@ -416,7 +416,7 @@
import { selectUserCondition } from "@/api/business/inspectionTask";
export default {
  name: "a7-Inspection-Order-Form",
  name: "Demand",
  components: { limsTable },
  data() {
    return {
src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue
@@ -254,7 +254,7 @@
      this.$emit('closeCarryOutDia')
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then((res) => {
      selectUserCondition({ type: 2 }).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
src/views/CNAS/process/ensureResults/ensureResultsValidity/components/evaluateDialog.vue
@@ -296,7 +296,7 @@
      })
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then((res) => {
      selectUserCondition({ type: 2 }).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
src/views/CNAS/process/ensureResults/ensureResultsValidity/index.vue
@@ -176,7 +176,7 @@
import { mapGetters } from "vuex";
export default {
  name: 'a7-Ensure-results-validity',
  name: 'EnsureResultsValidity',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { limsTable, filePreview, EvaluateDialog, CarryOutDialog, DetailFormDialog },
  data() {
src/views/CNAS/process/ensureResults/qualityControlPlan/components/detailFormDialog.vue
@@ -162,7 +162,7 @@
      this.$emit('closeDia')
    },
    getUserList(){
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition({ type: 2 }).then((res) => {
        this.userList = res.data;
      })
    },
src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue
@@ -449,7 +449,7 @@
      this.$emit('closeProcessingDia')
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then((res) => {
      selectUserCondition({ type: 2 }).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue
@@ -376,7 +376,7 @@
      this.$emit('closeRecordsDia')
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then((res) => {
      selectUserCondition({ type: 2 }).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
src/views/CNAS/process/ensureResults/qualityControlPlan/components/rectifyDialogNew.vue
@@ -406,7 +406,7 @@
      this.showStep = step
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then((res) => {
      selectUserCondition({ type: 2 }).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue
@@ -136,7 +136,7 @@
import { mapGetters } from "vuex";
export default {
  name: 'a7-quality-control-plan',
  name: 'QualityControlPlan',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { limsTable, RectifyDialogNew, ProcessingSheet, RecordsDialog, DetailFormDialog },
  data() {
@@ -200,7 +200,6 @@
          minWidth: '160'
        }, {
          dataType: 'action',
          minWidth: '170',
          label: '操作',
          fixed: 'right',
          operation: [
@@ -284,7 +283,6 @@
          minWidth: '150px'
        }, {
          dataType: 'action',
          width: '260',
          label: '操作',
          fixed: 'right',
          operation: [
@@ -473,7 +471,7 @@
      this.getUserList()
    },
    getUserList() {
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition({ type: 2 }).then((res) => {
        this.userList = res.data;
      })
    },
src/views/CNAS/process/method/methodVerification/index.vue
@@ -17,16 +17,10 @@
      </div>
    </div>
    <div class="table">
      <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"
              @pagination="pagination">
            </limsTable>
          </template>
        </TableCard>
      </div>
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
                 :table-loading="tableLoading" :page="page"
                 @pagination="pagination">
      </limsTable>
    </div>
    <formDIa v-if="formDIa" ref="formDIa" :operationType="operationType" @closeDia="closeDia"></formDIa>
  </div>
@@ -34,14 +28,13 @@
<script>
import limsTable from '@/components/Table/lims-table.vue'
import TableCard from '@/views/CNAS/externalService/serviceAndSupplyPro/component/index.vue';
import formDIa from './component/formDIa.vue';
import { delMethodVerify, exportMethodVerify, pagesMethodVerify } from '@/api/cnas/process/method/methodVerification'
export default {
  name: 'a7-method-verification',
  name: 'MethodVerification',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { TableCard, limsTable, formDIa },
  components: { limsTable, formDIa },
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
@@ -105,6 +98,7 @@
      page: {
        size: 20,
        current: 1,
        total: 0
      },
      total: 0,
      formDIa: false,
src/views/CNAS/process/method/standardMethodsChange/index.vue
@@ -17,21 +17,14 @@
      </div>
    </div>
    <div class="table">
      <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>
          </template>
        </TableCard>
      </div>
      <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'"
                  @pagination="pagination" :page="page" :tableLoading="tableLoading"></lims-table>
    </div>
    <formDIaChange v-if="formDIa" ref="formDIa" :operationType="operationType" @closeDia="closeDia"></formDIaChange>
  </div>
</template>
<script>
import TableCard from '@/views/CNAS/externalService/serviceAndSupplyPro/component/index.vue';
import formDIaChange from './component/formDIaChange.vue';
import limsTable from '@/components/Table/lims-table.vue'
import {
@@ -41,9 +34,9 @@
} from '@/api/cnas/process/method/standardMethodsChange'
export default {
  name: 'a7-changes-standard-methods',
  name: 'StandardMethodschange',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { limsTable, formDIaChange, TableCard },
  components: { limsTable, formDIaChange },
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
src/views/CNAS/process/method/standardNoveltyRetrieval/index.vue
@@ -3,8 +3,11 @@
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="标准号" prop="standardNo">
          <el-form-item label="标准号" prop="standardNo" v-if="tabIndex === '0'">
            <el-input size="small" placeholder="请输入" clearable v-model="searchForm.standardNo"></el-input>
          </el-form-item>
          <el-form-item label="存档名称" prop="archivedName" v-if="tabIndex === '1'">
            <el-input size="small" placeholder="请输入" clearable v-model="searchForm.archivedName"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">查 è¯¢</el-button>
@@ -26,28 +29,20 @@
    <div>
      <div class="table">
        <div class="table-tab">
          <el-radio-group v-model="tabIndex" @input="searchList">
          <el-radio-group v-model="tabIndex" @change="searchList">
            <el-radio-button label="0">今年标准记录</el-radio-button>
            <el-radio-button label="1">历史档案</el-radio-button>
          </el-radio-group>
        </div>
        <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>
            </template>
          </TableCard>
          <lims-table :column="tableColumn" :height="'calc(100vh - 26em)'" :table-data="tableData"
                      :table-loading="tableLoading" :page="page" @pagination="pagination">
          </lims-table>
        </div>
        <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>
            </template>
          </TableCard>
          <lims-table :column="oldTableColumn" :height="'calc(100vh - 20em)'" :table-data="oldTableData"
                      :table-loading="oldTableLoading" :page="oldPage" @pagination="oldPagination">
          </lims-table>
        </div>
      </div>
      <!--      åŽ†å²æ¡£æ¡ˆæ‰¹å‡†å¼¹æ¡†-->
@@ -74,14 +69,10 @@
      <FormDialog v-if="formDialog" ref="formDialog" @closeDia="closeDia"></FormDialog>
      <EditFormDia v-if="editFormDialog" ref="editFormDialog" @closeEditDia="closeEditDia"></EditFormDia>
      <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"
              @pagination="pagination1">
            </limsTable>
          </template>
        </TableCard>
        <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>
      </el-dialog>
    </div>
  </div>
@@ -89,21 +80,18 @@
<script>
import limsTable from '@/components/Table/lims-table.vue'
import TableCard from '@/views/CNAS/externalService/serviceAndSupplyPro/component/index.vue';
import FormDialog from './component/FormDialog.vue';
import EditFormDia from './component/EditFormDia.vue';
import {
  addSearchNewArchived, exportMethodSearchNew,
  pageMethodSearchNew, pageSearchNewArchived, pageSearchNewBackups, ratifySearchNewArchivedr
} from '@/api/cnas/process/method/standardNoveltyRetrieval'
import {selectUserCondition} from "@/api/performance/class";
export default {
  name: 'a7-standard-novelty-retrieval',
  name: 'StandardNoveltyRetrieval',
  // import å¼•入的组件需要注入到对象中才能使用
  components: {
    FormDialog,
    TableCard,
    limsTable,
    EditFormDia
  },
@@ -113,6 +101,7 @@
      searchForm: {
        year: '',
        standardNo: '',
        archivedName: ''
      },
      options: [
        { label: '上半年', value: '1' },
@@ -485,23 +474,9 @@
  methods: {
    // æŸ¥è¯¢åˆ—表
    searchList() {
      let params = {}
      if (this.tabIndex === '0') {
        params = {
          entity: {
            standardNo: this.searchForm.standardNo,
          },
          page: this.page
        }
      } else {
        params = {
          entity: {},
          page: this.oldPage
        }
      }
      if (this.tabIndex === '0') {
        this.tableLoading = true
        pageMethodSearchNew({ ...params.oldPage, ...params.entity }).then(res => {
        pageMethodSearchNew({ standardNo: this.searchForm.standardNo, ...this.page }).then(res => {
          this.tableLoading = false
          if (res.code === 200) {
            this.tableData = res.data.records
@@ -513,12 +488,9 @@
        })
      } else {
        this.oldTableLoading = true
        pageSearchNewArchived({
          ...params.page, ...params.entity
        }).then(res => {
        pageSearchNewArchived({archivedName: this.searchForm.archivedName, ...this.oldPage}).then(res => {
          this.oldTableLoading = false
          if (res.code === 200) {
            console.log('res>>>>>>>>>>>>', res)
            this.oldTableData = res.data.records
            this.oldPage.total = res.data.total
          }
src/views/CNAS/process/nonconformingWork/nonconformingDistribution/index.vue
@@ -1,37 +1,26 @@
<template>
  <div>
    <div>
      <!-- <div class="view-title">
        <span>不符合项的分布</span>
        <span>
          <el-button size="medium" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
        </span>
      </div> -->
      <div class="search-background">
        <span class="search-group">
          <span style="width: 120px">年份:</span>
          <el-input v-model="searchForm.distributionYear" clearable size="small"></el-input>
        </span>
        <span class="search-group">
          <el-button size="small" @click="resetSearchForm">重 ç½®</el-button>
          <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
        </span>
        <div class="btn">
          <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
        </div>
  <div class="capacity-scope">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="年份" prop="laboratoryName">
            <el-input v-model="searchForm.distributionYear" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div class="table">
        <div>
          <TableCard :showForm="false" :showTitle="false">
            <template v-slot:table>
              <limsTable :column="tableColumn" :height="'calc(100vh - 19em)'" :table-data="tableData"
                :table-loading="tableLoading" style="padding: 0 15px;margin-bottom: 16px" :page="page"
                @pagination="pagination">
              </limsTable>
            </template>
          </TableCard>
        </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 19em)'" :table-data="tableData"
                 :table-loading="tableLoading" :page="page"
                 @pagination="pagination">
      </limsTable>
    </div>
    <form-dia v-if="formDia" ref="formDia" @closeDia="closeDia"></form-dia>
  </div>
@@ -39,7 +28,6 @@
<script>
import limsTable from "@/components/Table/lims-table.vue";
import TableCard from '@/components/TableCard/index.vue';
import FormDia from './components/formDia.vue';
import {
  pageInconsistentDistribution,
@@ -48,9 +36,9 @@
} from '@/api/cnas/process/nonconformingWork.js'
export default {
  name: 'a7-distribution-of-nonconforming',
  name: 'NonconformingDistribution',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { FormDia, TableCard, limsTable },
  components: { FormDia, limsTable },
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
@@ -200,36 +188,9 @@
</script>
<style scoped>
.view-title {
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 60px;
  padding-left: 20px;
}
.search-background {
  width: 100%;
  height: 80px;
  line-height: 80px;
  background-color: #ffffff;
  display: flex;
  position: relative;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
.table {
  background-color: #ffffff;
}
.btn {
  position: absolute;
  right: 20px;
  top: 16px;
}
</style>
src/views/CNAS/process/nonconformingWork/nonconformingItem/index.vue
@@ -1,28 +1,21 @@
<template>
  <div>
  <div class="capacity-scope">
    <div>
      <div class="search-background">
        <span class="search-group">
          <span style="width: 120px">发生部门:</span>
      <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
        <el-form-item label="发生部门" prop="occurrenceDepartment">
          <el-input v-model="searchForm.occurrenceDepartment" clearable size="small"></el-input>
        </span>
        <span class="search-group">
          <el-button size="small" @click="resetSearchForm">重 ç½®</el-button>
          <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
        </span>
      </div>
      <div class="table">
        <div>
          <TableCard :showForm="false" :showTitle="false">
            <template v-slot:table>
              <limsTable :column="tableColumn" :height="'calc(100vh - 19em)'" :table-data="tableData"
                :table-loading="tableLoading" style="padding: 0 15px;margin-bottom: 16px" :page="page"
                @pagination="pagination">
              </limsTable>
            </template>
          </TableCard>
        </div>
      </div>
        </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-form-item>
      </el-form>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 19em)'" :table-data="tableData"
                 :table-loading="tableLoading" :page="page"
                 @pagination="pagination">
      </limsTable>
    </div>
    <quality-info v-if="qualityInfo" ref="qualityInfo"></quality-info>
  </div>
@@ -30,7 +23,6 @@
<script>
import limsTable from "@/components/Table/lims-table.vue";
import TableCard from '@/components/TableCard/index.vue';
import QualityInfo from './components/qualityInfo.vue';
import {
  pageSuperviseDetailAccording,
@@ -38,9 +30,9 @@
} from '@/api/cnas/process/nonconformingWork.js'
export default {
  name: 'a7-nonconforming-item',
  name: 'NonconformingItem',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { QualityInfo, TableCard, limsTable },
  components: { QualityInfo, limsTable },
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
@@ -167,29 +159,4 @@
</script>
<style scoped>
.view-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 60px;
  padding-left: 20px;
}
.search-background {
  width: 100%;
  height: 80px;
  line-height: 80px;
  background-color: #ffffff;
  display: flex;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
.table {
  background-color: #ffffff;
}
</style>
src/views/CNAS/process/reportResults/index.vue
@@ -1,16 +1,19 @@
<template>
  <div class="report-results">
  <div class="capacity-scope">
    <div class="search">
      <div class="search_thing">
        <div class="search_label">检验报告编号:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="queryParams.insReportCode"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="检验报告编号" prop="insReportCode">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.insReportCode"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btn">
      <div>
        <el-button size="small" type="primary" @click="handleDown" :loading="outLoading" v-if="outPower">导出</el-button>
        <el-button size="small" type="primary" @click="openAdd" v-if="addPower">新增</el-button>
      </div>
@@ -118,6 +121,7 @@
  selectUserCondition,
} from "@/api/business/inspectionTask.js";
export default {
  name: 'ReportResults',
  components: {
    limsTable
  },
@@ -310,11 +314,9 @@
<style scoped>
.search {
  background-color: #fff;
  height: 80px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
}
.search_thing {
@@ -331,41 +333,5 @@
.search_input {
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 80px - 10px - 40px);
  padding: 20px;
}
.tables {
  table-layout: fixed;
  width: 100%;
}
.tables td {
  height: 40px;
  width: 100px;
  text-align: center;
  font-size: 14px;
  word-wrap: break-word;
  white-space: normal;
}
.en {
  font-size: 12px;
  word-break: break-word;
  /* è‡ªåŠ¨æ–­è¡Œ */
  overflow-wrap: break-word;
  /* é˜²æ­¢æº¢å‡º */
  white-space: normal;
  /* é»˜è®¤æ¢è¡Œ */
}
.btn {
  position: absolute;
  top: 16px;
  right: 20px;
}
</style>
src/views/CNAS/process/sampleDisposal/index.vue
@@ -2,28 +2,24 @@
  <div class="capacity-scope">
    <el-tabs type="border-card" v-model="activeName" style="height: 100%;" @tab-click="queryParams.totaldealId = ''">
      <el-tab-pane label="填写" name="填写" style="height: 100%;" :key="1">
        <el-button size="small" type="primary" @click="handleAdd0" style="margin-left: 20px;">新增</el-button>
        <el-button size="small" type="primary" @click="handleAdd0" style="margin-bottom: 10px">新增</el-button>
        <div class="table" style="height: calc(100% - 200px)" v-if="activeName == '填写'">
          <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading"
                      key="tableData"
            :height="'calc(100vh - 290px)'" :page="page" @pagination="pagination"></lims-table>
                      key="tableData" :height="'calc(100vh - 290px)'" :page="page" @pagination="pagination"></lims-table>
        </div>
      </el-tab-pane>
      <el-tab-pane label="历史记录" name="历史记录" style="height: 100%;" :key="2">
        <div class="search">
          <div class="search_thing">
            <div class="search_label">年月:</div>
            <div class="search_input">
              <el-date-picker v-model="queryParams0.month" type="month" placeholder="选择月" format="yyyy-MM"
                value-format="yyyy-MM" size="small" @change="refreshTable()">
              </el-date-picker>
            </div>
          </div>
          <div class="search_thing" style="padding-left: 30px;">
            <el-button size="small" @click="refresh()">重 ç½®</el-button>
            <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
          </div>
        </div>
        <el-form :model="queryParams0" ref="queryParams0" size="small" :inline="true">
          <el-form-item label="年月" prop="month">
            <el-date-picker v-model="queryParams0.month" type="month" placeholder="选择月" format="yyyy-MM"
                            value-format="yyyy-MM" size="small" @change="refreshTable()">
            </el-date-picker>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
        <div class="table">
          <lims-table :tableData="tableData0" :column="column0" :tableLoading="tableLoading"
                      key="tableData0"
@@ -118,11 +114,11 @@
  pageProcessTotaldeal,
} from "@/api/cnas/process/sampleDisposal";
export default {
  name: 'SampleDisposal',
  components: {
    limsTable,
    filePreview,
  },
  name: "SampleDisposal",
  data() {
    return {
      activeName: '填写',
@@ -486,19 +482,6 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 40px;
  display: flex;
  align-items: center;
  position: relative;
}
.search_thing {
  width: 350px;
  display: flex;
@@ -515,19 +498,8 @@
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 140px);
  padding: 20px;
}
.downPdf {
  opacity: 0 !important;
}
.tables {
  table-layout: fixed;
  width: 100%;
}
.tables td {
@@ -537,23 +509,6 @@
  font-size: 14px;
  word-wrap: break-word;
  white-space: normal;
}
.en {
  font-size: 12px;
  word-break: break-word;
  /* è‡ªåŠ¨æ–­è¡Œ */
  overflow-wrap: break-word;
  /* é˜²æ­¢æº¢å‡º */
  white-space: normal;
  /* é»˜è®¤æ¢è¡Œ */
}
.user-info {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  margin-top: 20px;
}
.user-info .el-button {
src/views/CNAS/process/uncertainty/index.vue
@@ -1,21 +1,23 @@
<template>
  <div class="uncertainty-evaluation">
  <div class="capacity-scope">
    <div class="search">
      <div class="search_thing">
        <div class="search_label">报告名称:</div>
        <div class="search_input"><el-input v-model="queryParams.reportName" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="报告名称" prop="reportName">
            <el-input v-model="queryParams.reportName" clearable placeholder="请输入" size="small"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btn">
        <el-button :loading="outLoading" size="small" style="margin-right: 16px;margin-top: 3px;" type="primary"
          @click="handleDown0">导出</el-button>
      <div style="display: flex;align-items: center;">
        <el-button :loading="outLoading" size="small" type="primary" style="margin-right: 10px" @click="handleDown0">导出</el-button>
        <el-upload ref='upload' :action="action" :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError"
          :on-success="handleSuccessUp" :show-file-list="false"
          accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
                   :on-success="handleSuccessUp" :show-file-list="false"
                   accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
          <el-button :loading="upLoading" size="small" type="primary">导入</el-button></el-upload>
      </div>
    </div>
@@ -66,6 +68,7 @@
} from '@/api/cnas/process/uncertainty.js'
import { mapGetters } from "vuex";
export default {
  name: 'Uncertainty',
  components: {
    limsTable,
    filePreview
@@ -251,17 +254,10 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 80px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
}
.search_thing {
@@ -278,19 +274,5 @@
.search_input {
  width: calc(100% - 80px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 80px - 10px - 40px);
  padding: 20px;
}
.btn {
  position: absolute;
  top: 16px;
  right: 20px;
  display: flex;
  align-items: center;
}
</style>
src/views/CNAS/resourceDemand/device/component/acquisitionConfig.vue
@@ -14,7 +14,7 @@
    <div class="table">
      <el-table :data="tableList.slice((page.current - 1) * page.size,page.current * page.size)"
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
                tooltip-effect="dark" style="width: 74%;" height="100%" :span-method="spanMethod">
                tooltip-effect="dark" height="100%" :span-method="spanMethod">
        <el-table-column type="index" label="序号" align="center" width="65"></el-table-column>
        <el-table-column prop="deviceName" align="center" min-width="100" label="设备名称"></el-table-column>
        <el-table-column prop="fileType" align="center" label="文件后缀"></el-table-column>
@@ -35,7 +35,7 @@
        <el-table-column prop="anotherName" align="center" label="别名" min-width="100"></el-table-column>
        <el-table-column prop="matchingName" align="center" label="匹配名称" min-width="100"></el-table-column>
        <el-table-column prop="formula" align="center" label="公式"></el-table-column>
        <el-table-column prop="section" fixed="right" label="操作" width="120">
        <el-table-column fixed="right" label="操作" width="120" align="center">
          <template slot-scope="scope">
            <el-button type="text" @click="dataConfig(scope.row)">数采配置</el-button>
          </template>
@@ -721,9 +721,7 @@
}
.table {
  margin-top: 10px;
  background-color: #fff;
  width: calc(100vw - 1em);
  height: calc(100vh - 18em);
}
src/views/CNAS/resourceDemand/device/component/management.vue
@@ -491,10 +491,18 @@
                {
                    label: "设备分类", prop: "largeCategory", dataType: "tag",
                    formatData: (params) => {
                        return this.equipmentList.find(m => m.value == params).label
            if (this.equipmentList.find(m => m.value == params)) {
                          return this.equipmentList.find(m => m.value == params).label
            } else {
              return null
            }
                    },
                    formatType: (params) => {
                        return this.equipmentList.find(m => m.value == params).type
            if (this.equipmentList.find(m => m.value == params)) {
              return this.equipmentList.find(m => m.value == params).type
            } else {
              return null
            }
                    }
                },
                { label: "单价", prop: "unitPrice" },
src/views/CNAS/resourceDemand/device/index.vue
@@ -135,6 +135,7 @@
  treeDevice,
} from '@/api/cnas/resourceDemand/device.js'
export default {
  name: 'Device',
  components: {
    QuantityValueTraceabilityPlan,
    EquipmentAcceptance,
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/Personnel-management.vue
@@ -1,5 +1,5 @@
<template>
  <div class="capacity-scope">
  <div>
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions.vue
@@ -1,7 +1,7 @@
<template>
  <el-row>
    <el-col :span="2">
      <el-menu style="height: 100vh;" @select="clickSelect" :default-active="activeName">
      <el-menu @select="clickSelect" :default-active="activeName">
        <el-menu-item index="电源稳定性">
          <span slot="title">电源稳定性</span>
        </el-menu-item>
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/illuminance-recording.vue
@@ -31,7 +31,7 @@
      </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"
      layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" background
      @current-change="handleCurrentChange">
    </el-pagination>
    <el-dialog :visible.sync="dialogVisible" title="新增" width="50%" @open="openDialog">
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/lightning-protection-detection.vue
@@ -10,6 +10,7 @@
    <el-table
      :data="tableData"
      height="calc(100vh - 18em)"
      :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
      style="width: 100%">
      <el-table-column label="序号" type="index" width="120">
        <template v-slot="scope">
@@ -46,7 +47,7 @@
    </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"
                   @size-change="handleSizeChange" background
                   @current-change="handleCurrentChange">
    </el-pagination>
    <el-dialog
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/power-supply-stability.vue
@@ -32,8 +32,8 @@
      </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">
                   background 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">
      <div style="height: 50vh; overflow-y: auto">
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/facilities-environmental-conditions/temperature-humidity-record.vue
@@ -34,7 +34,7 @@
            </template>
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]"
        <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" background
          :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
          @current-change="handleCurrentChange">
        </el-pagination>
@@ -76,7 +76,7 @@
            </template>
          </el-table-column>
        </el-table>
        <el-pagination :current-page="1" :page-size="search1.size" :page-sizes="[10, 20, 30, 50, 100]"
        <el-pagination :current-page="1" :page-size="search1.size" :page-sizes="[10, 20, 30, 50, 100]" background
          :total="search1.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange1"
          @current-change="handleCurrentChange1">
        </el-pagination>
src/views/CNAS/resourceDemand/facilitiesEnvironment/component/three-wastes-treatment.vue
@@ -1,5 +1,5 @@
<template>
  <div class="capacity-scope">
  <div>
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
src/views/CNAS/resourceDemand/facilitiesEnvironment/index.vue
@@ -1,50 +1,41 @@
<template>
    <div class="main">
      <el-tabs v-model="activeName" :lazy="true" type="border-card">
        <el-tab-pane label="设施和环境条件要求" name="设施和环境条件要求">
          <FacilitiesEnvironmentalConditions v-if="activeName === '设施和环境条件要求'"/>
        </el-tab-pane>
  <div class="capacity-scope">
    <el-tabs v-model="activeName" :lazy="true" type="border-card">
      <el-tab-pane label="设施和环境条件要求" name="设施和环境条件要求">
        <FacilitiesEnvironmentalConditions v-if="activeName === '设施和环境条件要求'"/>
      </el-tab-pane>
      <el-tab-pane label="三废处理" name="三废处理">
        <a6-three-wastes-treatment v-if="activeName === '三废处理'"></a6-three-wastes-treatment>
      </el-tab-pane>
      <el-tab-pane label="进出人员管理" name="进出人员管理">
        <personnel-management v-if="activeName === '进出人员管理'"></personnel-management>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
        <el-tab-pane label="三废处理" name="三废处理">
          <a6-three-wastes-treatment v-if="activeName === '三废处理'"></a6-three-wastes-treatment>
        </el-tab-pane>
        <el-tab-pane label="进出人员管理" name="进出人员管理">
          <personnel-management v-if="activeName === '进出人员管理'"></personnel-management>
        </el-tab-pane>
      </el-tabs>
    </div>
  </template>
  <script>
  import FacilitiesEnvironmentalConditions from "../facilitiesEnvironment/component/facilities-environmental-conditions.vue";
//   // å¤–来人员管理
//   import ExternalPersonnelManagement from "../facilitiesEnvironment/component/Personnel-management.vue";
  import A6ThreeWastesTreatment from '../facilitiesEnvironment/component/three-wastes-treatment.vue';
  import PersonnelManagement from '../facilitiesEnvironment/component/Personnel-management.vue';
  export default {
    components: {
    //   PersonnelManagement,
      A6ThreeWastesTreatment,
      PersonnelManagement,
      FacilitiesEnvironmentalConditions
    },
    data() {
      return {
        activeName: '设施和环境条件要求',
      }
<script>
import FacilitiesEnvironmentalConditions from "../facilitiesEnvironment/component/facilities-environmental-conditions.vue";
import A6ThreeWastesTreatment from '../facilitiesEnvironment/component/three-wastes-treatment.vue';
import PersonnelManagement from '../facilitiesEnvironment/component/Personnel-management.vue';
export default {
  name: 'FacilitiesEnvironment',
  components: {
    A6ThreeWastesTreatment,
    PersonnelManagement,
    FacilitiesEnvironmentalConditions
  },
  data() {
    return {
      activeName: '设施和环境条件要求',
    }
  }
  </script>
}
</script>
<style scoped>
.main {
  width: 100%;
  border-radius: 15px;
}
  <style scoped>
  .main {
    padding: 15px 0;
    width: 100%;
    border-radius: 15px;
  }
  v-deep .el-tabs--border-card>.el-tabs__content {
    height: calc(100vh - 9em);
    padding: 0;
  }
  </style>
</style>
src/views/CNAS/resourceDemand/standardMaterailRequistion/index.vue
@@ -32,10 +32,9 @@
} from '@/api/cnas/resourceDemand/standardMaterailRequistion/standardMaterailRequistion'
export default {
  name: 'StandardMaterailRequistion',
  components: {
    limsTable
    // TableCard,
    // ZTTable,
  },
  data() {
    return {
src/views/CNAS/resourceDemand/standardMaterial/index.vue
@@ -45,6 +45,7 @@
import BorrowDia from '../standardMaterial/component/borrowDia.vue';
import ReturnDia from '../standardMaterial/component/returnDia.vue';
export default {
  name: 'StandardMaterial',
  components: {
    limsTable,
    FormDia,
src/views/CNAS/resourceDemand/standardMaterialAccept/index.vue
@@ -113,7 +113,7 @@
  },
  methods: {
    getTableData() {
      getPageAcceptance(this.form).then(res => {
      getPageAcceptance({...this.form, ...this.page}).then(res => {
        this.tableData = res.data.records;
        this.page.total = res.data.total;
      })
src/views/CNAS/systemManagement/correctiveAction/index.vue
@@ -1,26 +1,21 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 150px">不合格描述:</span>
        <el-input v-model="searchForm.raiseResult" clearable size="small"></el-input>
      </span>
      <span class="search-group">
        <el-button size="small" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
  <div class="capacity-scope">
    <div>
      <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
        <el-form-item label="不合格描述" prop="raiseResult">
          <el-input v-model="searchForm.raiseResult" clearable size="small"></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-form-item>
      </el-form>
    </div>
    <div class="table">
      <div>
        <TableCard :showForm="false" :showTitle="false">
          <template v-slot:table>
            <limsTable :column="tableColumn" :height="'calc(100vh - 17em)'" :table-data="tableData"
              :table-loading="tableLoading" style="padding: 0 15px;margin-bottom: 16px" @pagination="pagination"
              :page="page">
            </limsTable>
          </template>
        </TableCard>
      </div>
      <limsTable :column="tableColumn" :height="'calc(100vh - 17em)'" :table-data="tableData"
                 :table-loading="tableLoading" @pagination="pagination"
                 :page="page">
      </limsTable>
    </div>
    <corrective-info v-if="correctiveInfo" ref="correctiveInfo"></corrective-info>
    <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog"></ViewTestRecord>
@@ -28,10 +23,8 @@
</template>
<script>
import TableCard from '@/components/TableCard/index.vue';
import limsTable from "@/components/Table/lims-table.vue";
import CorrectiveInfo from './components/correctiveInfo.vue';
// import QualityInfo from '../do/a7-nonconforming-item/qualityInfo.vue';
import ViewTestRecord from './components/ViewTestRecord.vue';
import {
  pageSuperviseDetailCorrect,
@@ -39,13 +32,12 @@
} from '@/api/cnas/systemManagement/correctiveAction.js'
export default {
  name: 'a8-corrective-action',
  name: 'CorrectiveAction',
  // import å¼•入的组件需要注入到对象中才能使用
  components: {
    // QualityInfo,
    CorrectiveInfo,
    limsTable,
    TableCard,
    ViewTestRecord
  },
  data() {
src/views/CNAS/systemManagement/customerSatisfaction/index.vue
@@ -1,24 +1,26 @@
<template>
  <div>
  <div class="capacity-scope">
    <div>
      <div class="search-background">
        <span v-if="tabIndex === '0'" class="search-group">
          <span style="width: 150px">单位名称:</span>
          <el-input v-model="searchForm.unitName" clearable size="small"></el-input>
        </span>
        <span v-if="tabIndex === '1'" class="search-group">
          <span style="width: 150px">文件名称:</span>
          <el-input v-model="searchForm1.fileName" clearable size="small"></el-input>
        </span>
        <span class="search-group">
          <el-button size="small" @click="resetSearchForm">重 ç½®</el-button>
          <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
        </span>
        <div class="btn">
      <div class="search">
        <div>
          <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
            <el-form-item label="单位名称" prop="unitName" v-if="tabIndex === '0'">
              <el-input v-model="searchForm.unitName" clearable size="small"></el-input>
            </el-form-item>
            <el-form-item label="文件名称" prop="fileName" v-if="tabIndex === '1'">
              <el-input v-model="searchForm1.fileName" clearable size="small"></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-form-item>
          </el-form>
        </div>
        <div>
          <el-button v-if="tabIndex === '0'" size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
          <el-upload v-if="tabIndex === '1'" ref='upload' :action="action" :before-upload="beforeUpload"
            :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'>
                     :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'>
            <el-button :loading="upLoading" size="small" type="primary">导入</el-button>
          </el-upload>
        </div>
@@ -31,23 +33,15 @@
          </el-radio-group>
        </div>
        <div v-if="tabIndex === '0'">
          <TableCard :showForm="false" :showTitle="false">
            <template v-slot:table>
              <limsTable :column="tableColumn" :height="'calc(100vh - 22em)'" :table-data="tableData"
                :table-loading="tableLoading" style="padding: 0 15px;margin-bottom: 16px" @pagination="pagination"
                :page="page">
              </limsTable>
            </template>
          </TableCard>
          <limsTable :column="tableColumn" :height="'calc(100vh - 22em)'" :table-data="tableData"
                     :table-loading="tableLoading" @pagination="pagination"
                     :page="page">
          </limsTable>
        </div>
        <div v-if="tabIndex === '1'">
          <TableCard :showForm="false" :showTitle="false">
            <template v-slot:table>
              <limsTable :column="tableColumn1" :height="'calc(100vh - 22em)'" :table-data="tableData1"
                :table-loading="tableLoading1" style="padding: 0 15px;margin-bottom: 16px" @pagination="pagination0">
              </limsTable>
            </template>
          </TableCard>
          <limsTable :column="tableColumn1" :height="'calc(100vh - 22em)'" :table-data="tableData1"
                     :table-loading="tableLoading1" @pagination="pagination0">
          </limsTable>
        </div>
      </div>
    </div>
@@ -60,7 +54,6 @@
</template>
<script>
import TableCard from '@/components/TableCard/index.vue';
import limsTable from "@/components/Table/lims-table.vue";
import FormDialog from './components/formDialog.vue';
import filePreview from '@/components/Preview/filePreview.vue'
@@ -72,9 +65,9 @@
} from '@/api/cnas/systemManagement/customerSatisfaction.js'
export default {
  name: 'a8-customer-satisfaction',
  name: 'CustomerSatisfaction',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { filePreview, FormDialog, limsTable, TableCard },
  components: { filePreview, FormDialog, limsTable },
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
@@ -352,40 +345,13 @@
</script>
<style scoped>
.view-title {
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 60px;
  padding-left: 20px;
}
.search-background {
  width: 100%;
  height: 80px;
  line-height: 80px;
  background-color: #ffffff;
  display: flex;
  position: relative;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
.table {
  background-color: #ffffff;
}
.table-tab {
  margin: 0 20px 20px 20px;
}
.btn {
  position: absolute;
  top: 16px;
  right: 20px;
  margin: 0 0 20px 0;
}
</style>
src/views/CNAS/systemManagement/documentControl/components/ControlledFileApplication.vue
@@ -1,24 +1,22 @@
<template>
  <!-- æ–‡ä»¶å—控申请 -->
  <div class="controlled-file-application" style="height: 100%;">
  <div>
    <div class="search">
      <div class="search_thing">
        <div class="search_label">申请文件编号:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="申请文件编号" prop="laboratoryName">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <!-- <div class="search_thing">
        <div class="search_label">申请人:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable
            v-model="queryParams.createUserName" @keyup.enter.native="refreshTable()"></el-input></div>
      </div> -->
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btns" style="padding-left: 30px;">
        <el-button size="small" type="primary"
          @click="addDialogVisible = true, addInfo = {}, file = null">文件受控申请</el-button>
      <div>
        <el-button size="small" type="primary" icon="el-icon-plus"
                   @click="addDialogVisible = true, addInfo = {}, file = null">文件受控申请</el-button>
      </div>
    </div>
    <div class="table">
@@ -502,17 +500,10 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 40px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
}
.search_thing {
@@ -530,19 +521,6 @@
.search_input {
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 80px);
  padding: 20px;
}
.btns {
  position: absolute;
  right: 20px;
  top: 5px;
}
.stamp {
  cursor: pointer;
  border: #fff 1px solid;
src/views/CNAS/systemManagement/documentControl/components/DistributionCollectionRecord.vue
@@ -1,24 +1,26 @@
<template>
  <!-- å‘放回收记录 -->
  <div class="distribution-collection-record" style="height: 100%;">
  <div>
    <div class="search">
      <div class="search_thing">
        <div class="search_label">文件编号:</div>
        <div class="search_input"><el-input v-model="queryParams.documentCode" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="文件编号" prop="documentCode">
            <el-input v-model="queryParams.documentCode" clearable placeholder="请输入" size="small"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item label="文件名称" prop="laboratoryNumber">
            <el-input v-model="queryParams.name" clearable placeholder="请输入" size="small"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing">
        <div class="search_label">文件名称:</div>
        <div class="search_input"><el-input v-model="queryParams.name" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input></div>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btns" style="padding-left: 30px;">
        <el-button v-if="addPower" size="small" type="primary"
          @click="addDialogVisible = true, addInfo = {}, radio = '发放', file = null">添加发放记录</el-button>
      <div>
        <el-button v-if="addPower" size="small" type="primary" icon="el-icon-plus"
                   @click="addDialogVisible = true, addInfo = {}, radio = '发放', file = null">添加发放记录</el-button>
        <el-button v-if="outPower" :loading="outLoading" size="small" type="primary" @click="handleOut">导出</el-button>
      </div>
    </div>
@@ -521,17 +523,10 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 40px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
}
.search_thing {
@@ -548,17 +543,5 @@
.search_input {
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 80px);
  padding: 20px;
}
.btns {
  position: absolute;
  right: 20px;
  top: 5px;
}
</style>
src/views/CNAS/systemManagement/documentControl/components/FileChangeRequest.vue
@@ -1,19 +1,22 @@
<template>
  <!-- æ–‡ä»¶å˜æ›´ç”³è¯· -->
  <div class="file-change-request" style="height: 100%;">
  <div>
    <div class="search">
      <div class="search_thing">
        <div class="search_label">申请文件编号:</div>
        <div class="search_input"><el-input v-model="queryParams.code" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="申请文件编号" prop="code">
            <el-input v-model="queryParams.code" clearable placeholder="请输入" size="small"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btns">
        <el-button size="small" type="primary"
          @click="addDialogVisible = true, addInfo = {}, currentFile = {}, title = '文件变更申请', file = null">文件变更申请</el-button>
      <div>
        <el-button size="small" type="primary" icon="el-icon-plus"
                   @click="addDialogVisible = true, addInfo = {}, currentFile = {}, title = '文件变更申请', file = null">文件变更申请</el-button>
        <el-button :loading="outLoading" size="small" type="primary" @click="handleOut">导出</el-button>
      </div>
    </div>
@@ -22,198 +25,175 @@
        :height="'calc(100vh - 290px)'" @pagination="pagination"></lims-table>
    </div>
    <el-dialog :title="title" :visible.sync="addDialogVisible" top="0vh" width="950px">
      <el-row>
        <el-col :span="12" style="margin-bottom: 16px;">
          <div class="search_thing">
            <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>申请编号:</div>
            <div class="search_input"><el-input v-model="addInfo.code" :disabled="title == '审核'" clearable
                placeholder="请输入" size="small"></el-input></div>
          </div>
        </el-col>
        <el-col :span="12" style="margin-bottom: 16px;">
          <div class="search_thing">
            <div class="search_label">审批人:</div>
            <div class="search_input">
              <el-select v-model="addInfo.checkUser" :disabled="title == '审核'" filterable size="small"
                style="width: 100%;">
                <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
      <div v-loading="diaLoading">
        <el-row>
          <el-col :span="12" style="margin-bottom: 16px;">
            <div class="search_thing">
              <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>申请编号:</div>
              <div class="search_input"><el-input v-model="addInfo.code" :disabled="title == '审核'" clearable
                                                  placeholder="请输入" size="small"></el-input></div>
            </div>
          </div>
        </el-col>
        <el-col :span="12" style="margin-bottom: 16px;">
          <div class="search_thing">
            <div class="search_label">期望变更时间:</div>
            <div class="search_input">
              <el-date-picker v-model="addInfo.expectAlterDate" :disabled="title == '审核'" format="yyyy-MM-dd"
                placeholder="选择日期" size="small" style="width: 100%;" type="date" value-format="yyyy-MM-dd">
              </el-date-picker>
          </el-col>
          <el-col :span="12" style="margin-bottom: 16px;">
            <div class="search_thing">
              <div class="search_label">审批人:</div>
              <div class="search_input">
                <el-select v-model="addInfo.checkUser" :disabled="title == '审核'" filterable size="small"
                           style="width: 100%;">
                  <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
            </div>
          </div>
        </el-col>
        <el-col :span="12" style="margin-bottom: 16px;">
          <div class="search_thing">
            <div class="search_label">实际变更时间:</div>
            <div class="search_input">
              <el-date-picker v-model="addInfo.actuallyAlterDate" :disabled="title == '审核'" format="yyyy-MM-dd"
                placeholder="选择日期" size="small" style="width: 100%;" type="date" value-format="yyyy-MM-dd">
              </el-date-picker>
          </el-col>
          <el-col :span="12" style="margin-bottom: 16px;">
            <div class="search_thing">
              <div class="search_label">期望变更时间:</div>
              <div class="search_input">
                <el-date-picker v-model="addInfo.expectAlterDate" :disabled="title == '审核'" format="yyyy-MM-dd"
                                placeholder="选择日期" size="small" style="width: 100%;" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </div>
            </div>
          </div>
        </el-col>
        <el-col :span="24" style="margin-bottom: 16px;">
          <div class="search_thing">
            <div class="search_label">选择文件:</div>
            <div class="search_input">
              <el-select v-model="addInfo.alterBeforeCode" :disabled="title == '审核'" allow-create clearable filterable
                size="small" style="width: 100%;" @change="getCurrentFile">
                <el-option v-for="item in fileList" :key="item.documentCode" :label="item.title"
                  :value="item.documentCode">
                </el-option>
              </el-select>
          </el-col>
          <el-col :span="12" style="margin-bottom: 16px;">
            <div class="search_thing">
              <div class="search_label">实际变更时间:</div>
              <div class="search_input">
                <el-date-picker v-model="addInfo.actuallyAlterDate" :disabled="title == '审核'" format="yyyy-MM-dd"
                                placeholder="选择日期" size="small" style="width: 100%;" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </div>
            </div>
          </div>
        </el-col>
        <el-col :span="24">
          <h4 class="title">当前文件信息</h4>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">文件编号:</div>
            <div class="search_input"><el-input v-model="currentFile.documentCode" :disabled="title == '审核'" clearable
                placeholder="请输入" size="small"></el-input></div>
          </div>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">文件名称:</div>
            <div class="search_input"><el-input v-model="currentFile.name" :disabled="title == '审核'" clearable
                placeholder="请输入" size="small"></el-input></div>
          </div>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">文件版本:</div>
            <div class="search_input"><el-input v-model="currentFile.version" :disabled="title == '审核'" clearable
                placeholder="请输入" size="small"></el-input></div>
          </div>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">提交人:</div>
            <div class="search_input"><el-select v-model="currentFile.createUser" disabled filterable size="small"
                style="width: 100%;">
          </el-col>
          <el-col :span="24" style="margin-bottom: 16px;">
            <div class="search_thing">
              <div class="search_label">选择文件:</div>
              <div class="search_input">
                <el-select v-model="addInfo.alterBeforeCode" :disabled="title == '审核'" allow-create clearable filterable
                           size="small" style="width: 100%;" @change="getCurrentFile">
                  <el-option v-for="item in fileList" :key="item.documentCode" :label="item.title"
                             :value="item.documentCode">
                  </el-option>
                </el-select>
              </div>
            </div>
          </el-col>
          <el-col :span="24">
            <h4 class="title">当前文件信息</h4>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">文件编号:</div>
              <div class="search_input"><el-input v-model="currentFile.documentCode" :disabled="title == '审核'" clearable
                                                  placeholder="请输入" size="small"></el-input></div>
            </div>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">文件名称:</div>
              <div class="search_input"><el-input v-model="currentFile.name" :disabled="title == '审核'" clearable
                                                  placeholder="请输入" size="small"></el-input></div>
            </div>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">文件版本:</div>
              <div class="search_input"><el-input v-model="currentFile.version" :disabled="title == '审核'" clearable
                                                  placeholder="请输入" size="small"></el-input></div>
            </div>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">提交人:</div>
              <div class="search_input"><el-select v-model="currentFile.createUser" disabled filterable size="small"
                                                   style="width: 100%;">
                <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select></div>
          </div>
        </el-col>
        <!-- <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">审核人:</div>
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="addInfo.version" disabled></el-input></div>
          </div>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">作废人:</div>
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="addInfo.version" disabled></el-input></div>
          </div>
        </el-col> -->
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">提交时间:</div>
            <div class="search_input"><el-input v-model="currentFile.createTime" clearable disabled placeholder="请输入"
                size="small"></el-input></div>
          </div>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">审核时间:</div>
            <div class="search_input"><el-input v-model="currentFile.effectiveDate" clearable disabled placeholder="请输入"
                size="small"></el-input></div>
          </div>
        </el-col>
        <!-- <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">作废时间:</div>
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="addInfo.version" disabled></el-input></div>
          </div>
        </el-col> -->
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">文件状态:</div>
            <div class="search_input">
              <el-select v-model="currentFile.state" disabled size="small" style="width: 100%;">
                <el-option v-for="item in fileState" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </div>
          </div>
        </el-col>
        <!-- <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">文件说明:</div>
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="addInfo.instructions" type="textarea"
              :rows="2" disabled></el-input></div>
          </div>
        </el-col> -->
        <el-col :span="24">
          <h4 class="title">文件变更申请</h4>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">变更后编号:</div>
            <div class="search_input"><el-input v-model="addInfo.alterAfterCode" :disabled="title == '审核'" clearable
                placeholder="请输入" size="small"></el-input></div>
          </div>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">变更后名称:</div>
            <div class="search_input"><el-input v-model="addInfo.alterAfterName" :disabled="title == '审核'" clearable
                placeholder="请输入" size="small"></el-input></div>
          </div>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">前一版本处理:</div>
            <div class="search_input">
              <el-select v-model="addInfo.method" :disabled="title == '审核'" size="small" style="width: 100%;">
                <el-option label="作废" value="作废"></el-option>
                <el-option label="存档不可用" value="存档不可用">
                </el-option>
              </el-select>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">提交时间:</div>
              <div class="search_input"><el-input v-model="currentFile.createTime" clearable disabled placeholder="请输入"
                                                  size="small"></el-input></div>
            </div>
          </div>
        </el-col>
        <el-col :span="8" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">变更后版本:</div>
            <div class="search_input"><el-input v-model="addInfo.alterAfterVersion" :disabled="title == '审核'" clearable
                placeholder="请输入" size="small"></el-input></div>
          </div>
        </el-col>
        <el-col :span="16" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">变更说明:</div>
            <div class="search_input"><el-input v-model="addInfo.alterNote" :disabled="title == '审核'" :rows="2"
                clearable placeholder="请输入" size="small" type="textarea"></el-input></div>
          </div>
        </el-col>
        <el-col v-if="title != '审核'" :span="24" style="margin-bottom: 16px;">
          <div class="search_thing" style="width: 100%;">
            <div class="search_label">相关附件:</div>
            <div class="search_input"><el-upload v-if="addDialogVisible" :auto-upload="false" :multiple="false"
                :on-change="handleChangeUpload" accept='.pdf' action="#" style="margin: 8px 0 0px 50px;">
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">审核时间:</div>
              <div class="search_input"><el-input v-model="currentFile.effectiveDate" clearable disabled placeholder="请输入"
                                                  size="small"></el-input></div>
            </div>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">文件状态:</div>
              <div class="search_input">
                <el-select v-model="currentFile.state" disabled size="small" style="width: 100%;">
                  <el-option v-for="item in fileState" :key="item.value" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
              </div>
            </div>
          </el-col>
          <el-col :span="24">
            <h4 class="title">文件变更申请</h4>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">变更后编号:</div>
              <div class="search_input"><el-input v-model="addInfo.alterAfterCode" :disabled="title == '审核'" clearable
                                                  placeholder="请输入" size="small"></el-input></div>
            </div>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">变更后名称:</div>
              <div class="search_input"><el-input v-model="addInfo.alterAfterName" :disabled="title == '审核'" clearable
                                                  placeholder="请输入" size="small"></el-input></div>
            </div>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">前一版本处理:</div>
              <div class="search_input">
                <el-select v-model="addInfo.method" :disabled="title == '审核'" size="small" style="width: 100%;">
                  <el-option label="作废" value="作废"></el-option>
                  <el-option label="存档不可用" value="存档不可用">
                  </el-option>
                </el-select>
              </div>
            </div>
          </el-col>
          <el-col :span="8" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">变更后版本:</div>
              <div class="search_input"><el-input v-model="addInfo.alterAfterVersion" :disabled="title == '审核'" clearable
                                                  placeholder="请输入" size="small"></el-input></div>
            </div>
          </el-col>
          <el-col :span="16" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">变更说明:</div>
              <div class="search_input"><el-input v-model="addInfo.alterNote" :disabled="title == '审核'" :rows="2"
                                                  clearable placeholder="请输入" size="small" type="textarea"></el-input></div>
            </div>
          </el-col>
          <el-col v-if="title != '审核'" :span="24" style="margin-bottom: 16px;">
            <div class="search_thing" style="width: 100%;">
              <div class="search_label">相关附件:</div>
              <div class="search_input"><el-upload v-if="addDialogVisible" :auto-upload="false" :multiple="false"
                                                   :on-change="handleChangeUpload" accept='.pdf' action="#" style="margin: 8px 0 0px 50px;">
                <el-button size="small" type="primary">上传附件</el-button>
              </el-upload></div>
          </div>
        </el-col>
        <UpPdfStamp v-if="title == '审核' && addDialogVisible" ref="UpPdfStamp" :isUpFile="false" @uploadPDF="uploadPDF">
        </UpPdfStamp>
      </el-row>
            </div>
          </el-col>
          <UpPdfStamp v-if="title == '审核' && addDialogVisible" ref="UpPdfStamp" :isUpFile="false" @uploadPDF="uploadPDF">
          </UpPdfStamp>
        </el-row>
      </div>
      <span v-if="title != '审核'" slot="footer" class="dialog-footer">
        <el-button @click="addDialogVisible = false">取 æ¶ˆ</el-button>
        <el-button :loading="addLoading" type="primary" @click="handleAdd">ç¡® å®š</el-button>
@@ -263,6 +243,7 @@
      noCheckLoading: false,
      checkLoading: false,
      addDialogVisible: false,
      diaLoading: false,
      addInfo: {},
      addPower: false,
      outPower: false,
@@ -550,35 +531,39 @@
      let alterBeforeCode = this.addInfo.alterBeforeCode
      this.getCurrentFile(alterBeforeCode)
      this.addDialogVisible = true
      this.diaLoading = true
      checkManageDocumentAlterPdf({ id: row.id }).then(res => {
        //
        this.diaLoading = false
        const blob = new Blob([res]);
        const file = new File([blob], row.name, { type: 'application/pdf' })
        this.$refs.UpPdfStamp.lookFile(file)
        this.currentInfo = row
      }).catch(err => {
        this.diaLoading = false
        console.log(err)
      })
    },
    // å®¡æ ¸ä¿å­˜
    async uploadPDF(pdfBlob) {
    uploadPDF(pdfBlob) {
      const file = new File([pdfBlob], this.fileName, { type: 'application/pdf' })
      console.log('file---', file)
      const formData = new FormData();
      formData.append('file', pdfBlob, this.fileName + '.pdf'); // æ–‡ä»¶å­—段
      formData.append('file', file, this.fileName + '.pdf'); // æ–‡ä»¶å­—段
      formData.append('id', this.currentInfo.id); // æ–‡ä»¶åå­—段
      formData.append('state', this.type); // æ–‡ä»¶åå­—段
      let res = await checkManageDocumentAlter(formData)
      this.checkLoading = false
      this.noCheckLoading = false
      if (res.code == 200) {
      checkManageDocumentAlter(formData).then(res => {
        this.$message({ message: '操作成功', type: 'success' });
        this.addDialogVisible = false;
        this.checkLoading = false
        this.noCheckLoading = false
        this.refreshTable()
        return true
      } else {
        this.$message({ message: '操作失败', type: 'error' });
      }).catch(err => {
        this.checkLoading = false
        this.noCheckLoading = false
        return false
      }
      })
    },
    // æäº¤å®¡æ ¸
    handleCheckSub(type) {
@@ -615,14 +600,6 @@
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 40px;
  display: flex;
  align-items: center;
  position: relative;
}
.search_thing {
  width: 350px;
  display: flex;
@@ -639,16 +616,10 @@
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 80px);
  padding: 20px;
}
.btns {
  position: absolute;
  right: 20px;
  top: 5px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
h4.title {
src/views/CNAS/systemManagement/documentControl/components/FileList.vue
@@ -1,29 +1,29 @@
<template>
  <!-- æ–‡ä»¶æ¸…单 -->
  <div class="file-list" style="height: 100%;">
  <div>
    <div class="search">
      <div class="search_thing">
        <div class="search_label">文件名称:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="queryParams.name"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="文件名称" prop="name">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.name"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item label="文件状态" prop="state">
            <el-select v-model="queryParams.state" size="small" @change="refreshTable()">
              <el-option :label="item.label" :value="item.value" v-for="(item, index) in fileState"
                         :key="index"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing">
        <div class="search_label">文件状态:</div>
        <div class="search_input">
          <el-select v-model="queryParams.state" size="small" @change="refreshTable()">
            <el-option :label="item.label" :value="item.value" v-for="(item, index) in fileState"
              :key="index"></el-option>
          </el-select>
        </div>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btns" style="padding-left: 30px;">
      <div>
        <el-upload :action="action" :multiple="false" accept='.xls,.xlsx' :headers="uploadHeader"
          :on-change="beforeUpload" :on-error="onError" ref='upload' :on-success="handleSuccessUp"
          :show-file-list="false">
                   :on-change="beforeUpload" :on-error="onError" ref='upload' :on-success="handleSuccessUp"
                   :show-file-list="false">
          <el-button size="small" type="primary" :loading="upLoading">导入</el-button></el-upload>
      </div>
    </div>
@@ -121,10 +121,18 @@
        {
          label: "类别", prop: "type", width: "120px", dataType: "tag",
          formatData: (params) => {
            return this.fileType.find((m) => m.value == params).label;
            if (this.fileType.find((m) => m.value == params)) {
              return this.fileType.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            return this.fileType.find((m) => m.value == params).type;
            if (this.fileType.find((m) => m.value == params)) {
              return this.fileType.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        {
@@ -137,10 +145,18 @@
        {
          label: "文件状态", prop: "state", dataType: "tag",
          formatData: (params) => {
            return this.fileState.find((m) => m.value == params).label;
            if (this.fileState.find((m) => m.value == params)) {
              return this.fileState.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            return this.fileState.find((m) => m.value == params).type;
            if (this.fileState.find((m) => m.value == params)) {
              return this.fileState.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        {
@@ -369,44 +385,9 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 40px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
}
.search_thing {
  width: 350px;
  display: flex;
  align-items: center;
}
.search_label {
  width: 110px;
  font-size: 14px;
  text-align: right;
}
.search_input {
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 80px);
  padding: 20px;
}
.btns {
  position: absolute;
  right: 20px;
  top: 5px;
  justify-content: space-between;
}
</style>
src/views/CNAS/systemManagement/documentControl/components/FileObsoletionRequest.vue
@@ -1,19 +1,22 @@
<template>
  <!-- æ–‡ä»¶ä½œåºŸç”³è¯· -->
  <div class="file-obsoletion-request" style="height: 100%;">
  <div>
    <div class="search">
      <div class="search_thing">
        <div class="search_label">文件编号:</div>
        <div class="search_input"><el-input v-model="queryParams.documentCode" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="文件编号" prop="documentCode">
            <el-input v-model="queryParams.documentCode" clearable placeholder="请输入" size="small"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btns" style="padding-left: 30px;">
        <el-button size="small" type="primary"
          @click="addDialogVisible = true, addInfo = {}, file = null">文件作废申请</el-button>
      <div>
        <el-button size="small" type="primary" icon="el-icon-plus"
                   @click="addDialogVisible = true, addInfo = {}, file = null">文件作废申请</el-button>
        <el-button :loading="outLoading" size="small" type="primary" @click="handleOut">导出</el-button>
      </div>
    </div>
@@ -72,17 +75,6 @@
            </div>
          </div>
        </el-col>
        <!-- <el-col :span="12" style="margin-bottom: 16px;">
          <div class="search_thing">
            <div class="search_label">作废方式:</div>
            <div class="search_input">
              <el-select v-model="addInfo.method" size="small" style="width: 100%;">
                <el-option label="作废" value="作废"></el-option>
                <el-option label="无效" value="无效"></el-option>
              </el-select>
            </div>
          </div>
        </el-col> -->
        <el-col :span="12" style="margin-bottom: 16px;">
          <div class="search_thing">
            <div class="search_label">期望作废时间:</div>
@@ -417,17 +409,10 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 40px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
}
.search_thing {
@@ -444,17 +429,5 @@
.search_input {
  width: calc(100% - 110px);
}
.table {
  background-color: #fff;
  height: calc(100% - 60px - 80px);
  padding: 20px;
}
.btns {
  position: absolute;
  right: 20px;
  top: 5px;
}
</style>
src/views/CNAS/systemManagement/documentControl/index.vue
@@ -1,9 +1,9 @@
<template>
  <div class="file-handling">
  <div class="capacity-scope">
    <el-tabs type="border-card" v-model="activeName" style="height: 100%;">
      <el-tab-pane :label="item.name" :name="item.component" v-for="(item, index) in tabList" :key="index"
        style="height: 100%;">
        <component :is="item.component" :key="item.component"></component>
        <component :is="item.component" :key="item.component" v-if="activeName === item.component"></component>
      </el-tab-pane>
    </el-tabs>
  </div>
@@ -16,6 +16,7 @@
import FileChangeRequest from './components/FileChangeRequest.vue'
import FileObsoletionRequest from './components/FileObsoletionRequest.vue'
export default {
  name: 'DocumentControl',
  components: {
    FileList,
    ControlledFileApplication,
@@ -54,14 +55,4 @@
</script>
<style scoped>
.file-handling {
  margin-top: 10px;
  height: calc(100% - 20px);
}
>>>.el-tabs__content {
  height: 100%;
  padding: 0;
  padding-top: 10px;
}
</style>
src/views/CNAS/systemManagement/documentRecords/approvalRecord.vue
@@ -1,40 +1,40 @@
<template>
  <!-- æ–‡ä»¶å®¡æ‰¹è®°å½• -->
  <div class="DocumentApprovalRecords">
  <div class="capacity-scope">
    <div class="search">
      <div class="search_thing">
        <div class="search_label">文件名称:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentName"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="文件名称" prop="documentName">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentName"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item label="文件编号" prop="documentCode">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing">
        <div class="search_label">文件编号:</div>
        <div class="search_input">
          <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
            @keyup.enter.native="refreshTable()"></el-input>
        </div>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btn">
      <div>
        <el-button size="small" type="primary" @click="openAdd('新增')">新增</el-button>
        <el-upload :action="action" :multiple="false" :show-file-list="false" accept='.doc,.docx'
          :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload'
          :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
                   :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload'
                   :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
          <el-button type="primary" size="small">导入</el-button></el-upload>
        <el-button size="small" type="primary" @click="handleDown" :loading="outLoading"
          style="display:inline-block;margin-left: 20px;">导出</el-button>
                   style="display:inline-block;margin-left: 20px;">导出</el-button>
      </div>
    </div>
    <div class="table">
      <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
        :height="'calc(100vh - 290px)'" @pagination="pagination"></lims-table>
        :height="'calc(100vh - 230px)'" @pagination="pagination"></lims-table>
    </div>
    <!-- æ–°å¢ž/编辑 -->
    <el-dialog :title="title" :visible.sync="addDia" width="500px">
      <el-form :model="addForm" ref="addForm" :rules="addRules" label-position="right" label-width="120px">
      <el-form :model="addForm" ref="addForm" :rules="addRules" label-position="right" label-width="100px">
        <el-form-item label="文件名称" prop="documentName">
          <el-input size="small" placeholder="请输入" clearable v-model="addForm.documentName"></el-input>
        </el-form-item>
@@ -96,6 +96,7 @@
  pageManageRecordCheck
} from '@/api/cnas/systemManagement/documentRecords.js'
export default {
  name: 'ApprovalRecord',
  components: {
    limsTable
  },
@@ -116,9 +117,9 @@
          prop: "documentVersion",
        },
        { label: "编制", prop: "writeUser" },
        { label: "审核", prop: "checkUser" },
        { label: "批准", prop: "ratifyUser" },
        { label: "批准日期", prop: "ratifyDate" },
        { label: "审核人", prop: "checkUserName" },
        { label: "批准人", prop: "ratifyUserName" },
        // { label: "批准日期", prop: "ratifyDate" },
        { label: "备注", prop: "remark" },
        {
          dataType: "action",
@@ -424,39 +425,8 @@
<style scoped>
.search {
  background-color: #fff;
  height: 80px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
}
.search_thing {
  width: 350px;
  display: flex;
  align-items: center;
}
.search_label {
  width: 110px;
  font-size: 14px;
  text-align: right;
}
.search_input {
  width: calc(100% - 110px);
}
.btn {
  position: absolute;
  right: 16px;
  top: 20px;
}
.table {
  margin-top: 10px;
  background-color: #fff;
  height: calc(100% - 60px - 80px - 10px - 40px);
  padding: 20px;
  justify-content: space-between;
}
</style>
src/views/CNAS/systemManagement/documentRecords/cancellationRecord.vue
@@ -1,31 +1,31 @@
<template>
  <!-- ä½œåºŸæ–‡ä»¶é”€æ¯è®°å½• -->
  <div class="ObsoleteDocumentDestructionRecords">
  <div class="capacity-scope">
    <div class="search">
      <div class="search_thing">
        <div class="search_label">文件名称:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentName"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="文件名称" prop="documentName">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentName"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item label="文件编号" prop="documentCode">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing">
        <div class="search_label">文件编号:</div>
        <div class="search_input">
          <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
            @keyup.enter.native="refreshTable()"></el-input>
        </div>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btn">
      <div>
        <el-button size="small" type="primary" @click="openAdd">新增</el-button>
        <el-upload :action="action" :multiple="false" :show-file-list="false" accept='.doc,.docx'
          :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload'
          :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
                   :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload'
                   :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
          <el-button type="primary" size="small">导入</el-button></el-upload>
        <el-button size="small" type="primary" @click="handleDown" :loading="outLoading"
          style="display:inline-block;margin-left: 20px;">导出</el-button>
                   style="display:inline-block;margin-left: 20px;">导出</el-button>
      </div>
    </div>
    <div class="table">
@@ -101,6 +101,7 @@
  pageManageDocumentList,
} from '@/api/cnas/systemManagement/documentControl.js'
export default {
  name: 'CancellationRecord',
  components: {
    limsTable
  },
@@ -386,16 +387,10 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 80px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.search_thing {
@@ -412,19 +407,5 @@
.search_input {
  width: calc(100% - 110px);
}
.table {
  margin-top: 10px;
  background-color: #fff;
  height: calc(100% - 60px - 80px - 10px - 40px);
  padding: 20px;
  padding-top: 0;
}
.btn {
  position: absolute;
  right: 20px;
  top: 16px;
}
</style>
src/views/CNAS/systemManagement/documentRecords/distributionCollectionRecord.vue
@@ -1,31 +1,31 @@
<template>
  <!-- æ‰€æœ‰æ–‡ä»¶ï¼ˆå†…、外部文件)的发放与回收记录 -->
  <div class="DistributionRetrievalRecordsAllDocuments">
  <div class="capacity-scope">
    <div class="search">
      <div class="search_thing">
        <div class="search_label">文件名称:</div>
        <div class="search_input"><el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentName"
            @keyup.enter.native="refreshTable()"></el-input></div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="文件名称" prop="documentName">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentName"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item label="文件编号" prop="documentCode">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing">
        <div class="search_label">文件编号:</div>
        <div class="search_input">
          <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
            @keyup.enter.native="refreshTable()"></el-input>
        </div>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btn">
      <div>
        <el-button size="small" type="primary" @click="openAdd">新增</el-button>
        <el-upload :action="action" :multiple="false" :show-file-list="false" accept='.doc,.docx'
          :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload'
          :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
                   :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload'
                   :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
          <el-button type="primary" size="small">导入</el-button></el-upload>
        <el-button size="small" type="primary" @click="handleDown" :loading="outLoading"
          style="display:inline-block;margin-left: 20px;">导出</el-button>
                   style="display:inline-block;margin-left: 20px;">导出</el-button>
      </div>
    </div>
    <div class="table">
@@ -149,6 +149,7 @@
} from '@/api/cnas/systemManagement/documentControl.js'
import { mapGetters } from "vuex";
export default {
  name: 'DistributionCollectionRecord',
  components: {
    limsTable
  },
@@ -435,16 +436,10 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 80px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.search_thing {
@@ -461,13 +456,5 @@
.search_input {
  width: calc(100% - 110px);
}
.table {
  margin-top: 10px;
  background-color: #fff;
  height: calc(100% - 60px - 80px - 10px - 40px);
  padding: 20px;
  padding-top: 0;
}
</style>
src/views/CNAS/systemManagement/documentRecords/outDocumenRecordt.vue
@@ -1,42 +1,34 @@
<template>
  <!-- å¤–来文件确认记录 -->
  <div class="ExternalDocumentConfirmationRecords">
    <el-tabs type="border-card" v-model="activeName" style="height: 100%;">
  <div class="capacity-scope">
    <el-tabs type="border-card" v-model="activeName" style="height: 100%;" @change="getTableData">
      <el-tab-pane label="填写" name="填写" style="height: 100%;">
        <div style="display: flex;align-items: center;justify-content: flex-end;margin-right: 20px;">
        <div style="display: flex;align-items: center;justify-content: flex-end;margin-bottom: 10px">
          <el-button size="small" type="primary" @click="openAdd('新增')" style="margin-left: 20px;">新增</el-button>
          <el-upload :action="action" :multiple="false" :show-file-list="false" accept='.doc,.docx'
            :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload'
            :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
            <el-button size="small" type="primary" :loading="upLoading">导入</el-button></el-upload>
        </div>
        <div class="table" style="height: calc(100% - 200px)">
          <!-- <ValueTable ref="ValueTable0" :url="$api.manageRecordTotal.pageManageRecordVerify"
            :componentData="componentData0" :key="upIndex0" :delUrl="$api.manageRecordTotal.delManageRecordVerify"
            :upUrl="$api.manageRecordTotal.doManageRecordVerify" /> -->
          <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading0"
            :height="'calc(100vh - 270px)'" @pagination="pagination0"></lims-table>
        </div>
        <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading0"
                    :height="'calc(100vh - 290px)'" @pagination="pagination0"></lims-table>
      </el-tab-pane>
      <el-tab-pane label="历史记录" name="历史记录" style="height: 100%;">
        <div class="search">
          <div class="search_thing">
            <div class="search_label">年:</div>
            <div class="search_input">
        <div>
          <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
            <el-form-item label="å¹´" prop="year">
              <el-date-picker v-model="queryParams.year" type="year" placeholder="选择年" format="yyyy" value-format="yyyy"
                size="small" @change="refreshTable()">
                              size="small" @change="refreshTable()">
              </el-date-picker>
            </div>
          </div>
          <div class="search_thing" style="padding-left: 30px;">
            <el-button size="small" @click="refresh()">重 ç½®</el-button>
            <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
          </div>
            </el-form-item>
            <el-form-item>
              <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
              <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
            </el-form-item>
          </el-form>
        </div>
        <div class="table">
          <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
            :height="'calc(100vh - 280px)'" @pagination="pagination"></lims-table>
        </div>
        <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
                    :height="'calc(100vh - 290px)'" @pagination="pagination"></lims-table>
      </el-tab-pane>
    </el-tabs>
    <!-- è¯¦æƒ…/下载/审核 -->
@@ -103,6 +95,7 @@
  doManageRecordVerify
} from '@/api/cnas/systemManagement/documentRecords.js'
export default {
  name: 'OutDocumenRecordt',
  components: {
    filePreview,
    limsTable,
@@ -244,11 +237,16 @@
    }
  },
  mounted() {
    // this.entityCopy = this.HaveJson(this.componentData.entity);
    this.getList()
    this.getList0()
    this.getTableData();
  },
  methods: {
    getTableData() {
      if (this.activeName === '填写') {
        this.getList0()
      } else {
        this.getList()
      }
    },
    openAdd(title, row) {
      this.title = title;
      if (row) {
@@ -296,7 +294,7 @@
        });
    },
    pagination0({ page, limit }) {
      this.pag0.current = page;
      this.page0.current = page;
      this.page0.size = limit;
      this.getList0();
    },
src/views/CNAS/systemManagement/documentRecords/regularReviewsRecord.vue
@@ -1,30 +1,30 @@
<template>
  <!-- æ–‡ä»¶å®šæœŸå®¡æŸ¥è®°å½• -->
  <div class="PeriodicDocumentReviewRecords">
  <div class="capacity-scope">
    <el-tabs type="border-card" v-model="activeName" style="height: 100%;">
      <el-tab-pane label="填写" name="填写" style="height: 100%;">
        <div class="search">
          <div class="search_thing">
            <div class="search_label">文件名称:</div>
            <div class="search_input"><el-input size="small" placeholder="请输入" clearable
                v-model="queryParams.documentName" @keyup.enter.native="refreshTable()"></el-input></div>
          <div>
            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
              <el-form-item label="文件名称" prop="documentName">
                <el-input size="small" placeholder="请输入" clearable
                          v-model="queryParams.documentName" @keyup.enter.native="refreshTable()"></el-input>
              </el-form-item>
              <el-form-item label="文件编号" prop="documentCode">
                <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
                          @keyup.enter.native="refreshTable()"></el-input>
              </el-form-item>
              <el-form-item>
                <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
                <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
              </el-form-item>
            </el-form>
          </div>
          <div class="search_thing">
            <div class="search_label">文件编号:</div>
            <div class="search_input">
              <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
                @keyup.enter.native="refreshTable()"></el-input>
            </div>
          </div>
          <div class="search_thing" style="padding-left: 30px;">
            <el-button size="small" @click="refresh()">重 ç½®</el-button>
            <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
          </div>
          <div class="btns">
          <div>
            <el-button size="small" type="primary" @click="openAdd" v-if="addPower">新增</el-button>
            <el-upload :action="action" :multiple="false" :show-file-list="false" accept='.doc,.docx'
              :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload' v-if="upPower"
              :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
                       :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" ref='upload' v-if="upPower"
                       :on-success="handleSuccessUp" style="display:inline-block;margin-left: 20px;">
              <el-button type="primary" size="small">导入</el-button></el-upload>
          </div>
        </div>
@@ -34,19 +34,18 @@
        </div>
      </el-tab-pane>
      <el-tab-pane label="历史记录" name="历史记录" style="height: 100%;">
        <div class="search">
          <div class="search_thing">
            <div class="search_label">年:</div>
            <div class="search_input">
        <div>
          <el-form :model="queryParams0" ref="queryParams0" size="small" :inline="true">
            <el-form-item label="å¹´" prop="year">
              <el-date-picker v-model="queryParams0.year" type="year" placeholder="选择年" format="yyyy"
                value-format="yyyy" size="small" @change="refreshTable(1)">
                              value-format="yyyy" size="small" @change="refreshTable(1)">
              </el-date-picker>
            </div>
          </div>
          <div class="search_thing" style="padding-left: 30px;">
            <el-button size="small" @click="refresh(1)">重 ç½®</el-button>
            <el-button size="small" type="primary" @click="refreshTable(1)">查 è¯¢</el-button>
          </div>
            </el-form-item>
            <el-form-item>
              <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable(1)">查 è¯¢</el-button>
              <el-button icon="el-icon-refresh" size="mini" @click="refresh(1)">重 ç½®</el-button>
            </el-form-item>
          </el-form>
        </div>
        <div class="table">
          <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading"
@@ -143,6 +142,7 @@
  pageManageDocumentList,
} from '@/api/cnas/systemManagement/documentControl.js'
export default {
  name: 'RegularReviewsRecord',
  components: {
    limsTable,
    filePreview
@@ -529,17 +529,10 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 40px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
}
.search_thing {
@@ -558,21 +551,7 @@
  width: calc(100% - 110px);
}
.table {
  margin-top: 10px;
  background-color: #fff;
  height: calc(100% - 60px - 140px);
  padding: 20px;
  padding-top: 0;
}
>>>.el-tabs__content {
  height: 100%;
}
.btns {
  position: absolute;
  right: 20px;
  top: 5px;
}
</style>
src/views/CNAS/systemManagement/documentRecords/revisionRecord.vue
@@ -1,22 +1,23 @@
<template>
  <!-- æ–‡ä»¶ä¿®è®¢ç”³è¯·å®¡æ‰¹è®°å½• -->
  <div class="DocumentRevisionRequestApprovalRecords">
  <div class="capacity-scope">
    <div class="search">
      <div class="search_thing">
        <div class="search_label">文件编号:</div>
        <div class="search_input">
          <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
            @keyup.enter.native="refreshTable()"></el-input>
        </div>
      <div>
        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
          <el-form-item label="文件编号" prop="documentCode">
            <el-input size="small" placeholder="请输入" clearable v-model="queryParams.documentCode"
                      @keyup.enter.native="refreshTable()"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 è¯¢</el-button>
            <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 ç½®</el-button>
          </el-form-item>
        </el-form>
      </div>
      <div class="search_thing" style="padding-left: 30px;">
        <el-button size="small" @click="refresh()">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="refreshTable()">查 è¯¢</el-button>
      </div>
      <div class="btn">
      <div>
        <el-button size="small" type="primary" @click="openAdd" v-if="addPower">新增</el-button>
        <el-button size="small" type="primary" @click="handleDown" :loading="outLoading" v-if="outPower"
          style="display:inline-block;margin-left: 20px;">导出</el-button>
                   style="display:inline-block;margin-left: 20px;">导出</el-button>
      </div>
    </div>
    <div class="table">
@@ -341,10 +342,8 @@
  selectUserCondition,
} from "@/api/business/inspectionTask.js";
export default {
  components: {
    filePreview,
    limsTable
  },
  name: 'RevisionRecord',
  components: {filePreview, limsTable},
  data() {
    return {
      addPower: true,
@@ -704,17 +703,10 @@
</script>
<style scoped>
.title {
  height: 60px;
  line-height: 60px;
}
.search {
  background-color: #fff;
  height: 80px;
  height: 46px;
  display: flex;
  align-items: center;
  position: relative;
  justify-content: space-between;
}
.search_thing {
@@ -731,14 +723,6 @@
.search_input {
  width: calc(100% - 110px);
}
.table {
  margin-top: 10px;
  background-color: #fff;
  height: calc(100% - 60px - 80px - 10px - 40px);
  padding: 20px;
  padding-top: 0;
}
.tables {
@@ -798,13 +782,4 @@
  left: 0;
}
>>>.el-dialog__body {
  height: auto;
}
.btn {
  position: absolute;
  right: 20px;
  top: 16px;
}
</style>
src/views/CNAS/systemManagement/internalAuditManagement/components/auditInspection.vue
@@ -1,19 +1,24 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">受审部门:</span>
        <el-input v-model="searchForm.department" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="受审部门" prop="department">
            <el-input v-model="searchForm.department" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" :page="page" @pagination="pagination">
        :table-loading="tableLoading" :page="page" @pagination="pagination">
      </limsTable>
    </div>
    <audit-inspection-dia v-if="auditInspectionDia" ref="auditInspectionDia"
@@ -235,17 +240,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/internalAuditManagement/components/auditMeetingSign.vue
@@ -1,19 +1,24 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">时间:</span>
        <el-input v-model="searchForm.meetingDate" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="时间" prop="meetingDate">
            <el-input v-model="searchForm.meetingDate" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" :page="page" @pagination="pagination">
        :table-loading="tableLoading" :page="page" @pagination="pagination">
      </limsTable>
    </div>
    <audit-meeting-sign-dia v-if="auditMeetingSignDia" ref="auditMeetingSignDia"
@@ -183,17 +188,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/internalAuditManagement/components/auditReport.vue
@@ -1,15 +1,20 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">审核目的:</span>
        <el-input v-model="searchForm.purposes" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="审核目的" prop="laboratoryName">
            <el-input v-model="searchForm.purposes" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
@@ -293,17 +298,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/internalAuditManagement/components/correctiveAction.vue
@@ -1,19 +1,24 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 200px">不合格描述:</span>
        <el-input v-model="searchForm.raiseResult" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="不合格描述" prop="laboratoryName">
            <el-input v-model="searchForm.raiseResult" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" :page="page" @pagination="pagination">
        :table-loading="tableLoading" :page="page" @pagination="pagination">
      </limsTable>
    </div>
    <corrective-action-d-ia v-if="correctiveActionDIa" ref="correctiveActionDIa"
@@ -23,7 +28,6 @@
</template>
<script>
import TableCard from '@/components/TableCard/index.vue';
import limsTable from "@/components/Table/lims-table.vue";
import CorrectiveActionDIa from './correctiveActionDIa.vue';
import ViewTestRecord from './ViewTestRecord.vue';
@@ -35,7 +39,7 @@
export default {
  name: 'correctiveAction',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { CorrectiveActionDIa, limsTable, TableCard, ViewTestRecord },
  components: { CorrectiveActionDIa, limsTable, ViewTestRecord },
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
@@ -164,17 +168,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/internalAuditManagement/components/implementationPlan.vue
@@ -1,19 +1,24 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">审核目的:</span>
        <el-input v-model="searchForm.purposes" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="审核目的" prop="purposes">
            <el-input v-model="searchForm.purpose" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" @pagination="pagination" :page="page">
        :table-loading="tableLoading" @pagination="pagination" :page="page">
      </limsTable>
    </div>
    <implement-plan-dia v-if="implementPlanDia" ref="implementPlanDia"
@@ -273,17 +278,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/internalAuditManagement/components/yearPlan.vue
@@ -1,19 +1,24 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">内审目的:</span>
        <el-input v-model="searchForm.purpose" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="内审目的" prop="purpose">
            <el-input v-model="searchForm.purpose" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" @pagination="pagination" :page="page">
        :table-loading="tableLoading" @pagination="pagination" :page="page">
      </limsTable>
    </div>
    <year-plan-dia v-if="yearPlanDia" ref="yearPlanDia" @closeYearDia="closeYearDia"></year-plan-dia>
@@ -295,17 +300,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/internalAuditManagement/index.vue
@@ -1,5 +1,5 @@
<template>
  <div class="main">
  <div class="capacity-scope">
    <el-tabs v-model="activeName" class="tab-panel" type="border-card">
      <el-tab-pane label="年度计划" name="yearPlan">
        <year-plan></year-plan>
@@ -47,11 +47,4 @@
</script>
<style scoped>
.main {
  padding: 15px 0;
}
.tab-panel {
  background: #fff;
}
</style>
src/views/CNAS/systemManagement/managementReview/components/managementReviewPlan.vue
@@ -1,19 +1,24 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">评审地点:</span>
        <el-input v-model="searchForm.judgingLocation" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="评审地点" prop="judgingLocation">
            <el-input v-model="searchForm.judgingLocation" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" :page="page" @pagination="pagination">
        :table-loading="tableLoading" :page="page" @pagination="pagination">
      </limsTable>
    </div>
    <management-form-d-ia v-if="managementFormDIa" ref="managementFormDIa"
@@ -287,17 +292,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/managementReview/components/meetingRecords.vue
@@ -1,19 +1,24 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">会议地点:</span>
        <el-input v-model="searchForm.place" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="会议地点" prop="place">
            <el-input v-model="searchForm.place" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" :page="page" @pagination="pagination">
        :table-loading="tableLoading" :page="page" @pagination="pagination">
      </limsTable>
    </div>
    <meeting-records-dia v-if="meetingRecordsDia" ref="meetingRecordsDia"
@@ -174,17 +179,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/managementReview/components/reviewReport.vue
@@ -1,19 +1,24 @@
<template>
  <div>
    <div class="search-background">
      <span class="search-group">
        <span style="width: 160px">地点:</span>
        <el-input v-model="searchForm.place" clearable size="small"></el-input>
        <el-button size="small" style="margin-left: 10px" @click="resetSearchForm">重 ç½®</el-button>
        <el-button size="small" type="primary" @click="searchList">查 è¯¢</el-button>
      </span>
      <span class="search-group">
    <div class="search">
      <div>
        <el-form :model="searchForm" ref="searchForm" size="small" :inline="true">
          <el-form-item label="地点" prop="place">
            <el-input v-model="searchForm.place" clearable size="small"></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-form-item>
        </el-form>
      </div>
      <div>
        <el-button size="small" type="primary" @click="openFormDia('add')">新 å¢ž</el-button>
      </span>
      </div>
    </div>
    <div class="table">
      <limsTable :column="tableColumn" :height="'calc(100vh - 23em)'" :table-data="tableData"
        :table-loading="tableLoading" style="padding: 0 10px;margin-bottom: 16px" :page="page" @pagination="pagination">
        :table-loading="tableLoading" :page="page" @pagination="pagination">
      </limsTable>
    </div>
    <review-report-dia v-if="reviewReportDia" ref="reviewReportDia" @closeYearDia="closeYearDia"></review-report-dia>
@@ -243,17 +248,9 @@
</script>
<style scoped>
.search-background {
  width: 100%;
  height: 60px;
  line-height: 60px;
.search {
  height: 46px;
  display: flex;
  justify-content: space-between;
}
.search-group {
  display: flex;
  align-items: center;
  margin: 0 20px;
}
</style>
src/views/CNAS/systemManagement/managementReview/index.vue
@@ -1,5 +1,5 @@
<template>
  <div class="main">
  <div class="capacity-scope">
    <el-tabs v-model="activeName" class="tab-panel" type="border-card">
      <el-tab-pane label="管理评审计划" name="yearPlan">
        <management-review-plan></management-review-plan>
@@ -38,11 +38,4 @@
</script>
<style scoped>
.main {
  padding: 15px 0;
}
.tab-panel {
  background: #fff;
}
</style>
src/views/CNAS/systemManagement/measuresDealRisks/components/hazardIdentificationRiskAssessment.vue
@@ -58,7 +58,7 @@
      </el-table-column>
    </el-table>
    <el-pagination :current-page="1" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]" :total="page.total"
      layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
      layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" background
      @current-change="handleCurrentChange">
    </el-pagination>
    <el-dialog title="提示" :visible.sync="dialogVisible" width="50%">
src/views/CNAS/systemManagement/measuresDealRisks/components/listRiskAnalysisControlPlans.vue
@@ -50,7 +50,7 @@
      </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"
      layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" background
      @current-change="handleCurrentChange">
    </el-pagination>
    <el-dialog title="提示" :visible.sync="dialogVisible" width="50%">
src/views/CNAS/systemManagement/measuresDealRisks/index.vue
@@ -1,5 +1,5 @@
<template>
  <div class="main">
  <div class="capacity-scope">
    <el-tabs v-model="activeName" type="border-card" :lazy="true">
      <el-tab-pane label="危险因素辨识与风险评价结果一览" name="危险因素辨识与风险评价结果一览">
        <HazardIdentificationRiskAssessment v-if="activeName === '危险因素辨识与风险评价结果一览'" />
@@ -18,6 +18,7 @@
import listRiskAnalysisControlPlans
  from "./components//listRiskAnalysisControlPlans.vue";
export default {
  name: 'MeasuresDealRisks',
  components: { HazardIdentificationRiskAssessment, listRiskAnalysisControlPlans },
  data() {
    return {
@@ -28,10 +29,6 @@
</script>
<style scoped>
.main {
  width: 100%;
}
/deep/ .el-tabs--border-card>.el-tabs__content {
  height: calc(100vh - 9em);
  padding: 0;
src/views/business/finishedProductSampling/components/addQuarterItem.vue
@@ -279,7 +279,7 @@
      }
    },
    getUserList(){
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition().then((res) => {
        this.userList = res.data;
      })
    },
src/views/business/finishedProductSampling/index.vue
@@ -273,6 +273,7 @@
import {mapGetters} from "vuex";
export default {
  name: 'FinishedProductSampling',
  data() {
    return {
      stockList: [],
src/views/business/inspectionReview/index.vue
@@ -23,8 +23,8 @@
    </div>
    <div>
      <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
        :rowClassName="rowClassName" :height="'calc(100vh - 270px)'" @pagination="pagination"
        key="tableData0"></lims-table>
                  :rowClassName="rowClassName" :height="'calc(100vh - 270px)'" @pagination="pagination"
                  key="tableData0"></lims-table>
    </div>
    <!--报告查看-->
    <el-dialog title="报告查看" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false"
@@ -47,7 +47,6 @@
<script>
import { getYearAndMonthAndDays } from "@/utils/date";
// import ShowInfo from "../do/b1-material-ins-order/showInfo.vue";
import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue";
import limsTable from "@/components/Table/lims-table.vue";
import { selectInsOrderPlanList, selectUserCondition } from "@/api/business/inspectionTask";
@@ -56,11 +55,11 @@
import filePreview from "@/components/Preview/filePreview.vue";
export default {
  name: 'InspectionReview',
  components: {
    filePreview,
    onlyoffice,
    limsTable,
    // ShowInfo,
  },
  dicts: ["urgency_level", "inspection_task_state"],
  computed: {
@@ -109,7 +108,18 @@
          prop: "type",
          dataType: "tag",
          formatData: (params) => {
            return this.urgencyLevel.find((m) => m.value == params).label;
            if (this.urgencyLevel.find((m) => m.value == params)) {
              return this.urgencyLevel.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            if (this.urgencyLevel.find((m) => m.value == params)) {
              return this.urgencyLevel.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        {
@@ -129,11 +139,18 @@
          prop: "insState",
          dataType: "tag",
          formatData: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params)
              .label;
            if (this.inspectionTaskState.find((m) => m.value == params)) {
              return this.inspectionTaskState.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params).type;
            if (this.inspectionTaskState.find((m) => m.value == params)) {
              return this.inspectionTaskState.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        { label: "检验人", prop: "userName" },
@@ -154,7 +171,7 @@
                this.handleReview(row);
              },
              disabled: (row) => {
                return row.userName == null || row.userName && !row.userName.includes(this.nickName)
                return row.checkName == null || (row.checkName && !row.checkName.includes(this.nickName))
              }
            },
            {
@@ -230,10 +247,10 @@
      fullscreen: false,
      option: null,
      orderTypeList: [
        { label: '委托试验', value: 'Customer-ordered test' },
        { label: '抽检', value: '抽检' },
        { label: '进厂检验', value: '进厂检验' },
        { label: '季度检验', value: 'Quarterly inspection' },
        { label: '委托试验', value: 'Customer-ordered test', type: 'success' },
        { label: '抽检', value: '抽检', type: 'danger' },
        { label: '进厂检验', value: '进厂检验', type: 'info' },
        { label: '季度检验', value: 'Quarterly inspection', type: '' },
      ],
      urgencyLevel: [],
      inspectionTaskState: [],
@@ -250,6 +267,9 @@
    this.currentTime = getYearAndMonthAndDays()
  },
  mounted() {
    this.refreshTable()
  },
  activated() {
    this.refreshTable()
  },
  methods: {
@@ -284,13 +304,6 @@
      }
      return "";
    },
    // æŸ¥çœ‹äº§ä¸šé“¾ä¿¡æ¯
    // openInfoDialog (row) {
    //   this.showInfoDialog = true
    //   this.$nextTick(() => {
    //     this.$refs.showInfoDialog.getInfo(row.ifsInventoryId)
    //   })
    // },
    selectAllByOne(row) {
      this.isCopper = row.isCopper
      this.customsInspection = row
@@ -371,9 +384,6 @@
    // æŸ¥çœ‹æŠ¥å‘Š
    handleIssued(row) {
      // todo: æŸ¥çœ‹æŠ¥å‘Šç»„ä»¶
/*      if (!row.tempUrlPdf) return this.$message.warning('文件未上传')
      this.currentInfo = row
      this.lookDialogVisible = true*/
      console.log(this.javaApi)
      this.currentInfo = row;
      let fileName = row.url
src/views/business/inspectionTask/components/InspectionWord.vue
@@ -1919,7 +1919,7 @@
      }
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition({ type: 1 }).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
src/views/business/inspectionTask/index.vue
@@ -1,92 +1,3 @@
<style scoped>
.search {
  background-color: #fff;
  height: 40px;
  display: flex;
  align-items: center;
  margin-top: 20px;
}
.search_thing {
  display: flex;
  align-items: center;
  height: 50px;
}
.search_label {
  width: 100px;
  font-size: 14px;
  text-align: right;
}
.search_input {
  width: calc(100% - 120px);
}
.ins-order-plan-main .search {
  width: 100%;
  height: 40px;
  background-color: #fff;
  border-radius: 3px;
}
.ins-order-plan-main .center {
  background-color: #fff;
  border-radius: 3px;
  padding: 20px;
  padding-top: 0px;
}
.tab {
  list-style-type: none;
  display: flex;
  padding-left: 6px;
}
.tab li {
  line-height: 24px;
  padding: 4px 10px;
  font-size: 14px;
  color: #333333;
  border: 1px solid #eeeeee;
  cursor: pointer;
}
.tab li:nth-child(1) {
  border-radius: 8px 0 0 8px;
}
.tab li:nth-last-child(1) {
  border-radius: 0 8px 8px 0;
}
.tab li.active {
  border-color: #3a7bfa;
  color: #3a7bfa;
}
.center .center-options .center-title {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: right;
}
.center .center-options .center-title span:last-child {
  color: #3a7bfa;
  font-size: 23px;
  font-weight: 400;
}
.view-self-checkbox {
  margin-left: 50px;
}
</style>
<style>
.ins-order-plan-main .el-form-item__label {
  color: #000;
}
</style>
<template>
  <div class="ins-order-plan-main">
    <div style="height: 100%">
@@ -180,7 +91,7 @@
      </span>
    </el-dialog>
    <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%">
      <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
      <div v-if="dataDialogVisible" style="height: 74vh; overflow-y: auto">
        <div>
          <el-form :model="entity" :inline="true">
            <el-form-item label="检验项" prop="outputWorkTime">
@@ -431,10 +342,18 @@
          prop: "insState",
          dataType: "tag",
          formatData: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params).label;
            if (this.inspectionTaskState.find((m) => m.value == params)) {
              return this.inspectionTaskState.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params).type;
            if (this.inspectionTaskState.find((m) => m.value == params)) {
              return this.inspectionTaskState.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        { label: "检验人", prop: "userName" },
@@ -465,16 +384,16 @@
                return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan'])
              },
            },
            {
              name: "查看工时",
              type: "text",
              clickFun: (row) => {
                this.viewManHour(row);
              },
              showHide: (row) => {
                return this.checkPermi(['get:working:hours:byOrder'])
              },
            },
            // {
            //   name: "查看工时",
            //   type: "text",
            //   clickFun: (row) => {
            //     this.viewManHour(row);
            //   },
            //   showHide: (row) => {
            //     return this.checkPermi(['get:working:hours:byOrder'])
            //   },
            // },
            {
              name: "检验",
              type: "text",
@@ -517,7 +436,7 @@
      ],
      page: {
        total: 0,
        size: 10,
        size: 20,
        current: 0,
      },
      tableLoading: false,
@@ -616,7 +535,7 @@
      ],
      lookPage: {
        total: 0,
        size: 10,
        size: 20,
        current: 0,
      },
      lookTableLoading: false,
@@ -999,3 +918,92 @@
  },
};
</script>
<style scoped>
.search {
  background-color: #fff;
  height: 40px;
  display: flex;
  align-items: center;
  margin-top: 20px;
}
.search_thing {
  display: flex;
  align-items: center;
  height: 50px;
}
.search_label {
  width: 100px;
  font-size: 14px;
  text-align: right;
}
.search_input {
  width: calc(100% - 120px);
}
.ins-order-plan-main .search {
  width: 100%;
  height: 40px;
  background-color: #fff;
  border-radius: 3px;
}
.ins-order-plan-main .center {
  background-color: #fff;
  border-radius: 3px;
  padding: 20px;
  padding-top: 0px;
}
.tab {
  list-style-type: none;
  display: flex;
  padding-left: 6px;
}
.tab li {
  line-height: 24px;
  padding: 4px 10px;
  font-size: 14px;
  color: #333333;
  border: 1px solid #eeeeee;
  cursor: pointer;
}
.tab li:nth-child(1) {
  border-radius: 8px 0 0 8px;
}
.tab li:nth-last-child(1) {
  border-radius: 0 8px 8px 0;
}
.tab li.active {
  border-color: #3a7bfa;
  color: #3a7bfa;
}
.center .center-options .center-title {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: right;
}
.center .center-options .center-title span:last-child {
  color: #3a7bfa;
  font-size: 23px;
  font-weight: 400;
}
.view-self-checkbox {
  margin-left: 50px;
}
</style>
<style>
.ins-order-plan-main .el-form-item__label {
  color: #000;
}
</style>
src/views/business/inspectionTask/inspection.vue
@@ -23,7 +23,7 @@
          @click="openUnPassDialog('add')">不合格处理</el-button>
        <el-button size="small" type="primary" @click="sampleVisible = true; uploadSample();">样品切换</el-button>
        <!--        <el-button v-if="state == 1" size="small" type="primary" @click="taskVisible = true">任务切换</el-button>-->
        <el-button v-if="state == 1" size="small" type="primary" @click="viewManHour">提交</el-button>
        <el-button v-if="state == 1" size="small" type="primary" @click="addVerifyDia = true">提交</el-button>
        <!-- å¤æ ¸ -->
        <el-button v-if="state == 2" size="medium" type="primary" @click="openAddCheck">通过</el-button>
        <el-button v-if="state == 2" size="medium" @click="upInsReview(0)">不通过</el-button>
@@ -2747,7 +2747,7 @@
      }
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition({ type: 1 }).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
src/views/business/materialOrder/copperOrder.vue
@@ -106,10 +106,10 @@
          </el-row>
        </el-form>
      </div>
      <div style="display: flex;justify-content: space-between;">
      <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px">
        <div v-if="active==1">
          <el-form :inline="true" :model="addObj1" label-width="90px">
            <el-form-item label="样品型号:" style="margin-bottom: 6px">
            <el-form-item label="样品型号:" style="margin-bottom: 6px;margin-top: 6px">
              <el-select v-model="model" :placeholder="active>1 ? '' : '请输入'"
                         allow-create clearable default-first-option filterable
                         size="small"
@@ -118,7 +118,7 @@
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="检验标准:">
            <el-form-item label="检验标准:" style="margin-bottom: 6px;margin-top: 6px">
              <el-select v-model="standardMethodListId" :loading="methodLoad"
                         :placeholder="active>1 ? '' : '请输入'" clearable size="small"
                         @change="changeStandardMethodListId" @focus="methodFocus">
@@ -128,7 +128,7 @@
            </el-form-item>
          </el-form>
        </div>
        <div style="margin-top: 3px">
        <div style="margin-bottom: 6px;margin-top: 6px">
          <el-button v-show="active==1" :disabled="sampleList.length === 2" size="small" type="primary" @click="handleSplitCountNum">拆分</el-button>
        </div>
      </div>
@@ -1808,4 +1808,7 @@
  justify-content: space-between;
  margin-bottom: 10px;
}
>>>.warning-row {
  color: #1890FF;
}
</style>
src/views/business/materialOrder/customsInspection.vue
@@ -142,10 +142,10 @@
      </el-form>
    </div>
    <div>
      <div style="display: flex;justify-content: space-between;">
      <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px">
        <div v-if="active==1">
          <el-form :inline="true" :model="addObj1" label-width="90px">
            <el-form-item label="样品型号:" style="margin-bottom: 6px">
            <el-form-item label="样品型号:" style="margin-bottom: 6px;margin-top: 6px">
              <el-select v-model="model" :placeholder="active>1 ? '' : '请输入'"
                         allow-create clearable default-first-option filterable
                         size="small"
@@ -154,7 +154,7 @@
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="检验标准:">
            <el-form-item label="检验标准:" style="margin-bottom: 6px;margin-top: 6px">
              <el-select v-model="standardMethodListId" :loading="methodLoad"
                         :placeholder="active>1 ? '' : '请输入'" clearable size="small"
                         @change="changeStandardMethodListId" @focus="methodFocus">
@@ -164,7 +164,7 @@
            </el-form-item>
          </el-form>
        </div>
        <div style="margin-top: 3px">
        <div style="margin-bottom: 6px;margin-top: 6px">
          <el-button v-show="active==1" :disabled="sampleList.length === 2" size="small" type="primary" @click="handleSplitCountNum">拆分</el-button>
        </div>
      </div>
@@ -747,8 +747,10 @@
        notificationRawOrder({ifsInventoryId:this.customsInspection.id}).then(res => {
          if (res.code === 200) {
            if (res.data === 1) {
              this.dialogVisible2 = true
              this.dialogMessage2 = '当前批次的样品已检验过, å¯ä»¥å…æ£€'
              if (this.orderType != 1) {
                this.dialogVisible2 = true
                this.dialogMessage2 = '当前批次的样品已检验过, å¯ä»¥å…æ£€'
              }
            } else if (res.data === 2) {
              this.dialogVisible2 = true
              this.dialogMessage2 = '当前批次的样品已超20吨, éœ€è¦å¤šçº§å¤šæ¬¡æ£€éªŒ'
@@ -757,28 +759,32 @@
        })
        // æŠ¥æ£€æµç¨‹
        selectStandardTreeListByPartNo({partNo:this.customsInspection.partNo}).then(res => {
          this.addObj.sample = res.data.label
          this.codeLevel = res.data.code
          this.$set(this.addObj, 'qtyArrived', this.customsInspection.qtyArrived)
          this.$set(this.addObj, 'partNo', this.customsInspection.partNo)
          this.$set(this.addObj, 'receiverDate', this.customsInspection.receiverDate)
          this.$set(this.addObj, 'orderNo', this.customsInspection.orderNo)
          this.$set(this.addObj, 'declareUser', this.customsInspection.declareUser)
          this.$set(this.addObj, 'testQuantity', this.customsInspection.testQuantity)
          this.$set(this.addObj, 'buyUnitMeas', this.customsInspection.buyUnitMeas)
          this.$set(this.addObj, 'updateBatchNo', this.customsInspection.updateBatchNo)
          this.$set(this.addObj, 'partDetail', this.customsInspection.partDesc)
          if (this.orderType == 1) {
            this.$set(this.addObj, 'orderType', 'Quarterly inspection')
          if (res.data !== null) {
            this.addObj.sample = res.data.label
            this.codeLevel = res.data.code
            this.$set(this.addObj, 'qtyArrived', this.customsInspection.qtyArrived)
            this.$set(this.addObj, 'partNo', this.customsInspection.partNo)
            this.$set(this.addObj, 'receiverDate', this.customsInspection.receiverDate)
            this.$set(this.addObj, 'orderNo', this.customsInspection.orderNo)
            this.$set(this.addObj, 'declareUser', this.customsInspection.declareUser)
            this.$set(this.addObj, 'testQuantity', this.customsInspection.testQuantity)
            this.$set(this.addObj, 'buyUnitMeas', this.customsInspection.buyUnitMeas)
            this.$set(this.addObj, 'updateBatchNo', this.customsInspection.updateBatchNo)
            this.$set(this.addObj, 'partDetail', this.customsInspection.partDesc)
            if (this.orderType == 1) {
              this.$set(this.addObj, 'orderType', 'Quarterly inspection')
            }
            const str = res.data.treeName.split('-')
            this.selectTreeTem = str.join(' - ')
            this.selectTree = str.join(' - ')
            this.addListInfo(this.codeLevel, res.data) // åŽŸææ–™æ ·å“æ˜¯å›ºå®šçš„ï¼Œå°±é»˜è®¤èµ‹å€¼ä¸€æ¡æ•°æ®ï¼Œå¯æ‹†åˆ†
            this.selectInsOrderTemplate() // åŽŸææ–™æ¨¡æ¿åˆ—è¡¨æŸ¥è¯¢
          } else {
            this.dialogVisible = true
            this.dialogMessage = res.message
          }
          const str = res.data.treeName.split('-')
          this.selectTreeTem = str.join(' - ')
          this.selectTree = str.join(' - ')
          this.addListInfo(this.codeLevel, res.data) // åŽŸææ–™æ ·å“æ˜¯å›ºå®šçš„ï¼Œå°±é»˜è®¤èµ‹å€¼ä¸€æ¡æ•°æ®ï¼Œå¯æ‹†åˆ†
          this.selectInsOrderTemplate() // åŽŸææ–™æ¨¡æ¿åˆ—è¡¨æŸ¥è¯¢
        }).catch(err => {
          this.dialogVisible = true
          this.dialogMessage = err.message
        })
      }
    },
@@ -1048,6 +1054,9 @@
      this.addObj.model = (trees[4] == undefined ? null : trees[4])
      this.addObj.ifsInventoryId = this.customsInspection.id
      this.saveLoad = true
      if (this.addObj.createTime) {
        delete this.addObj.createTime
      }
      addInsOrder({
        insOrder: this.addObj,
        sampleList: sampleList.map(a => {
@@ -1888,5 +1897,7 @@
  background-color: #ffffff;
}
>>>.warning-row {
  color: #1890FF;
}
</style>
src/views/business/materialOrder/index.vue
@@ -275,7 +275,7 @@
      ],
      page: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      tableData1: [],
@@ -356,7 +356,7 @@
      ],
      page1: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      tableData2: [],
@@ -412,7 +412,25 @@
        { label: '零件描述', prop: 'partDesc' },
        { label: '供应商名称', prop: 'supplierName' },
        { label: '不合格描述', prop: 'unqualifiedDesc' },
        { label: '免检', prop: 'isExemption' },
        {
          dataType: 'tag',
          label: '免检',
          prop: 'isExemption',
          formatData: (params) => {
            if (params == 1) {
              return '免检'
            } else {
              return null
            }
          },
          formatType: (params) => {
            if (params == 1) {
              return 'success'
            } else {
              return null
            }
          }
        },
        {
          label: '样品名称',
          prop: 'sampleName',
@@ -515,7 +533,7 @@
      ],
      page2: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      tableData3: [],
@@ -565,7 +583,25 @@
        { label: '零件描述', prop: 'partDesc' },
        { label: '供应商名称', prop: 'supplierName' },
        { label: '不合格描述', prop: 'unqualifiedDesc' },
        { label: '免检', prop: 'isExemption' },
        {
          dataType: 'tag',
          label: '免检',
          prop: 'isExemption',
          formatData: (params) => {
            if (params == 1) {
              return '免检'
            } else {
              return null
            }
          },
          formatType: (params) => {
            if (params == 1) {
              return 'success'
            } else {
              return null
            }
          }
        },
        {
          label: '样品名称',
          prop: 'sampleName',
@@ -621,7 +657,7 @@
      ],
      page3: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      tableData4: [],
@@ -671,7 +707,25 @@
        { label: '零件描述', prop: 'partDesc' },
        { label: '供应商名称', prop: 'supplierName' },
        { label: '不合格描述', prop: 'unqualifiedDesc' },
        { label: '免检', prop: 'isExemption' },
        {
          dataType: 'tag',
          label: '免检',
          prop: 'isExemption',
          formatData: (params) => {
            if (params == 1) {
              return '免检'
            } else {
              return null
            }
          },
          formatType: (params) => {
            if (params == 1) {
              return 'success'
            } else {
              return null
            }
          }
        },
        {
          label: '样品名称',
          prop: 'sampleName',
@@ -744,7 +798,7 @@
      ],
      page4: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      entity: {
@@ -829,6 +883,9 @@
  mounted() {
    this.refreshTable()
  },
  activated () {
    this.refreshTable()
  },
  // æ–¹æ³•集合
  methods: {
    // ç‚¹å‡»æŸ¥è¯¢å›žè°ƒ
src/views/business/productOrder/components/add.vue
@@ -298,8 +298,7 @@
        </el-table>
        <el-table ref="productTable" v-loading="getProductLoad" :data="productList"
                  :row-class-name="tableRowClassName" border class="el-table"
                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
                  :key="upIndex"
                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"
          max-height="400px" style="margin-bottom: 10px;" tooltip-effect="dark"
          @select="selectOne" @selection-change="selectProduct" @select-all="handleAll">
          <el-table-column v-if="active==1" :selectable="selectable0" type="selection" width="65"></el-table-column>
@@ -599,7 +598,7 @@
} from "@/api/business/rawMaterialOrder";
import {
  addInsOrder, addInsOrderTemplate, delInsOrderTemplate,
  getQuarterOnOrder,
  getQuarterOnOrder, selectInsOrderTemplateById,
  selectOrderManDay,
  updateInsOrder,
  upInsOrder,
@@ -609,6 +608,7 @@
import {selectsStandardMethodByFLSSM} from "@/api/standard/standardLibrary";
import limsTable from "@/components/Table/lims-table.vue";
import {selectCustomPageList} from "@/api/system/customer";
import {mapGetters} from "vuex";
export default {
  name: 'Add',
@@ -616,6 +616,9 @@
    limsTable,
    cableConfig,
    AuxiliaryWireCore
  },
  computed:{
  ...mapGetters(["nickName"]),
  },
  dicts: ['check_type1', 'urgency_level', 'form_type', 'sample_status_list'],
  data() {
@@ -902,7 +905,6 @@
        this.isSpecial = true
        this.$nextTick(() => {
          this.$refs.productTable.doLayout();
          this.upIndex++
        });
      },
      getQuarterOnOrderList () {
@@ -983,7 +985,7 @@
      },
      // èŽ·å–ç”¨æˆ·åˆ—è¡¨
      getAuthorizedPerson() {
        selectUserCondition().then(res => {
        selectUserCondition({ type: 1 }).then(res => {
          let data = []
          res.data.forEach(a => {
            data.push({
@@ -1650,14 +1652,13 @@
        backtrack([], nums);
        return result;
      },
      tableRowClassName({
        row,
        rowIndex
      }) {
        if (row.state === 0) {
      tableRowClassName({row, rowIndex}) {
        if (row.state == 1) {
          console.log('row.state---', row.state)
          return 'warning-row';
        } else {
          return '';
        }
        return 'warning-row';
      },
      selectInsOrderTemplate() {
        selectInsOrderTemplate({company: this.addObj.company}).then(res => {
@@ -1710,12 +1711,13 @@
        selectInsOrderTemplateById({id: e}).then(res => {
          let obj = JSON.parse(res.data)
          //制单人设置为当前登录用户
          let user = JSON.parse(localStorage.getItem('user'))
          let user = this.nickName
          obj.addObj.custom = user.name
          obj.addObj.userId = user.userId
          this.addObj = obj.addObj;
          this.sampleList = obj.sampleList;
          this.selectTree = obj.selectTree
          this.rowClick(this.sampleList[0])
        })
      },
      delSampleAndProduct() {
@@ -2216,7 +2218,7 @@
</script>
<style scoped>
.el-table .warning-row .cell {
  color: #3A7BFA;
>>>.warning-row {
  color: #1890FF;
}
</style>
src/views/business/productOrder/components/auxiliaryWireCore.vue
@@ -250,10 +250,7 @@
        this.$refs.productTable.doLayout()
      })
    },
    tableRowClassName({
                        row,
                        rowIndex
                      }) {
    tableRowClassName({row, rowIndex}) {
      if (row.state === 0) {
        return '';
      }
@@ -397,7 +394,7 @@
  font-size: 12px;
}
.ins_order_config .el-table .warning-row .cell {
  color: #3A7BFA;
>>>.warning-row {
  color: #1890FF;
}
</style>
src/views/business/productOrder/components/cable-config.vue
@@ -384,7 +384,7 @@
  display: flex;
  justify-content: space-between;
}
.el-table .warning-row .cell {
  color: #3A7BFA;
>>>.warning-row {
  color: #1890FF;
}
</style>
src/views/business/productOrder/index.vue
@@ -15,11 +15,6 @@
          <el-input v-model="entity.sampleModel" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input>
        </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">-->
<!--          </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">
@@ -307,7 +302,6 @@
<script>
import vueQr from 'vue-qr'
import PrintJS from 'print-js'
import file from "@/utils/file";
import PrintDialog from "@/views/business/productOrder/components/printDialog.vue";
import AddInspectionDia from "@/views/business/productOrder/components/addInspectionDia.vue";
import limsTable from "@/components/Table/lims-table.vue";
@@ -321,8 +315,8 @@
import { selectUserCondition } from "@/api/performance/class";
import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
import {mapGetters} from "vuex";
// import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
export default {
  name: 'ProductOrder',
  components: {
    limsTable,
    AddInspectionDia,
@@ -339,9 +333,21 @@
      tableData: [],
      tableLoading: false,
      column: [
        { label: '委托编号', prop: 'entrustCode', width: '160px' },
        {
          label: "委托编号",
          prop: "entrustCode",
          width: "160px",
          dataType: "link",
          linkMethod: "changeEntrustCode",
        },
        { label: '委托单位', prop: 'company' },
        { label: '样品名称', prop: 'sampleName' },
        {
          label: "样品名称",
          prop: "sampleName",
          width: "160px",
          dataType: "link",
          linkMethod: "selectAllByOne",
        },
        { label: '样品型号', prop: 'sampleModel' },
        { label: '样品数量', prop: 'sampleNum' },
        { label: '检验人', prop: 'testingName' },
@@ -523,7 +529,7 @@
      ],
      page: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      state: 0,// 0:台账页,1:检验页面,2检验页面(复核),默认为0,3数据查看
@@ -552,7 +558,7 @@
      tableDataLook: [],
      tableDataLookPage: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      tableDataLookColumn: [
@@ -643,7 +649,7 @@
      ],
      pageFile: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      formData: {},
@@ -680,7 +686,7 @@
      ],
      pageDelete: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      deleteDialogVisible: false,
@@ -749,6 +755,9 @@
    this.refreshTable()
    this.getAuthorizedPerson()
  },
  activated() {
    this.refreshTable()
  },
  methods: {
    // æŸ¥è¯¢åˆ—表数据
    refreshTable() {
@@ -784,6 +793,9 @@
    },
    // æ‰“开修改委托编号弹框
    changeEntrustCode(row) {
      if (this.tabIndex !== 1) {
        return
      }
      this.entrustCodeVisible = true
      this.entrustCodeInfo = { ...row }
    },
@@ -930,15 +942,13 @@
    },
    // è¯¦æƒ…
    selectAllByOne(row) {
      this.active = 2;
      // console.log(row);
      // //打开弹框
      // this.dialogVisible = true;
      // //row = ç‚¹å‡»å¯¹åº”行值
      // //复制给formData
      // this.formData = this.HaveJson(row);
      this.currentId = row.id
      this.examine = 1
      this.$router.push({
        path: "/productOrder/add", query: {
          examine: 1,
          active: 2,
          currentId: row.id
        }
      });
    },
    // æ•°æ®æŸ¥çœ‹
    handleDataLook(row) {
@@ -966,7 +976,7 @@
    closeDia () {
      this.tableDataLookPage = {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      }
      this.dataDialogVisible = false
@@ -1005,8 +1015,13 @@
    // ä¸‹è½½æŠ¥å‘Š
    download(row) {
      let url = row.urlS ? row.urlS : row.url;
      if (url) {
        this.$download.saveAs(url, row.entrustCode);
      if(url){
        url = url.split('.')[0]+'.pdf'
        const link = document.createElement('a');
        link.href = this.javaApi + url;
        link.target = '_blank';
        document.body.appendChild(link);
        link.click();
      }
    },
    // æ’¤é”€
src/views/business/productSamplingInfo/components/addQuarterItem.vue
@@ -273,7 +273,7 @@
      }
    },
    getUserList(){
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition().then((res) => {
        this.userList = res.data;
      })
    },
src/views/business/productSamplingInfo/index.vue
@@ -251,7 +251,7 @@
import { selectUserCondition } from "@/api/performance/class";
export default {
  name: "b1-product-sampling-info",
  name: "ProductSamplingInfo",
  // import å¼•入的组件需要注入到对象中才能使用
  components: { limsTable, AddQuarterItem },
  data() {
@@ -316,7 +316,7 @@
      ],
      page: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      tableData1: [],
@@ -362,7 +362,7 @@
      ],
      page1: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      yearSampleDia: false, // å¹´åº¦æŠ½æ ·
@@ -610,7 +610,7 @@
      return 'height: calc(100% - ' + '44' + 'px)'
    },
    getUserList() {
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition().then((res) => {
        this.userList = res.data;
      })
    },
src/views/business/rawMaterialInspection/index.vue
@@ -191,6 +191,7 @@
import limsTable from "@/components/Table/lims-table.vue";
export default {
  name: 'RawMaterialInspection',
  // import å¼•入的组件需要注入到对象中才能使用
  components: { limsTable, DataLookVisible },
  data() {
@@ -301,7 +302,7 @@
      ],
      page: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      tableData1: [],
@@ -351,7 +352,25 @@
        { label: '零件描述', prop: 'partDesc' },
        { label: '供应商名称', prop: 'supplierName' },
        { label: '不合格描述', prop: 'unqualifiedDesc' },
        { label: '免检', prop: 'isExemption' },
        {
          dataType: 'tag',
          label: '免检',
          prop: 'isExemption',
          formatData: (params) => {
            if (params == 1) {
              return '免检'
            } else {
              return null
            }
          },
          formatType: (params) => {
            if (params == 1) {
              return 'success'
            } else {
              return null
            }
          }
        },
        { label: '样品名称', prop: 'sampleName' },
        { label: '样品型号', prop: 'sampleModel' },
        { label: '检验人', prop: 'userName' },
@@ -423,7 +442,7 @@
      ],
      page1: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
      more: false,
@@ -792,6 +811,7 @@
    openIFS() {
      this.btnLoading = true
      getIfsOrder().then(res => {
        this.resetForm('componentData')
        this.refreshTable()
        this.btnLoading = false
      }).catch(err => {
src/views/business/reportPreparation/index.vue
@@ -207,6 +207,7 @@
import limsTable from "@/components/Table/lims-table.vue";
import {delFile, downFile, getFileList} from "@/api/business/rawMaterialOrder";
export default {
  name: 'ReportPreparation',
  components: { limsTable, onlyoffice },
  data() {
    return {
@@ -814,7 +815,7 @@
    },
    // èŽ·å–äººå‘˜åˆ—è¡¨
    getAuthorizedPerson() {
      selectUserCondition({ type: 0 }).then((res) => {
      selectUserCondition({ type: 1 }).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
src/views/business/sample/index.vue
@@ -198,6 +198,7 @@
  upWarehouse
} from "@/api/business/sample";
export default {
  name: 'Sample',
  components: {
    Detail
  },
src/views/business/unpass/index.vue
@@ -31,6 +31,7 @@
import {pageInsUnPass} from "@/api/business/unpass";
export default {
  name: 'Unpass',
  components: {limsTable},
  data() {
    return {
@@ -94,7 +95,7 @@
      ],
      page: {
        total: 0,
        size: 10,
        size: 20,
        current: 1
      },
    }
src/views/index.vue
@@ -194,7 +194,7 @@
  methods: {
    // è·³è½¬é¡µé¢
    goAddList(m) {
      this.$router.push({name: m.jumpPath})
      this.$router.push({name: m.jumpPath, query: { activeName: m.jumpId }})
    },
    getList(){
      const key = `_${this.currentPage}`
src/views/login.vue
@@ -96,11 +96,9 @@
  },
  methods: {
    async goLogin() {
      const {
        data: { data },
      } = await getSsoAuthUrl()
      window.location.href = data
      // this.$router.push({ path: '/thirdpartylogin' })
      await getSsoAuthUrl().then(res => {
        window.location.href = res.data
      })
    },
    getCode() {
      getCodeImg().then(res => {
src/views/logindemo.vue
@@ -13,10 +13,9 @@
  computed: {},
  methods: {
    async goLogin() {
      const {
        data: { data }
      } = await getSsoAuthUrl()
      window.location.href = data
      await getSsoAuthUrl().then(res => {
        window.location.href = res.data
      })
    }
  }
}
src/views/performance/manHour/workTimeManagement.vue
@@ -629,6 +629,8 @@
    },
    refresh() {
      this.entity = {};
      this.entity.dateTime = []
      this.setDate()
      this.refreshTable();
    },
    openAdd() {
src/views/performance/manHour/workTimeStatistics.vue
@@ -37,20 +37,16 @@
        </div>
      </div>
      <div class="table">
        <TableCard :showForm="false" :showTitle="false">
          <template v-slot:table>
            <limsTable
              :column="tableColumn"
              :table-data="tableData"
              :table-loading="tableLoading"
              :page="page"
              style="padding: 0 15px"
              :height="'calc(100vh - 290px)'"
              @pagination="pagination"
            >
            </limsTable>
          </template>
        </TableCard>
        <limsTable
          :column="tableColumn"
          :table-data="tableData"
          :table-loading="tableLoading"
          :page="page"
          style="padding: 0 15px"
          :height="'calc(100vh - 290px)'"
          @pagination="pagination"
        >
        </limsTable>
      </div>
    </div>
  </div>
@@ -58,13 +54,11 @@
<script>
import { getYearAndMonthAndDays } from "@/utils/date";
import TableCard from "@/components/TableCard/index.vue";
import limsTable from "@/components/Table/lims-table.vue";
import { selectAuxiliaryAllByMonth } from "@/api/performance/manHour";
export default {
  components: {
    limsTable,
    TableCard,
    limsTable
  },
  data() {
    return {
src/views/standard/standardLibrary/index.vue
@@ -1,192 +1,3 @@
<style scoped>
.standard {
  padding-top: 10px;
  display: flex;
  height: calc(100vh - 90px);
}
.left {
  width: 330px;
  height: calc(100% - 40px - 10px);
  background-color: white;
  padding: 15px;
}
.custom-tree-node {
  width: 100%;
  line-height: 32px;
}
.custom-tree-node .el-icon-delete {
  color: #3a7bfa;
  opacity: 0;
  font-size: 18px;
}
.custom-tree-node:hover .el-icon-delete {
  opacity: 1;
}
.custom-tree-node .el-icon-edit {
  color: #3a7bfa;
  opacity: 0;
  font-size: 18px;
}
.custom-tree-node:hover .el-icon-edit {
  opacity: 1;
}
.node_i {
  color: orange;
  font-size: 18px;
}
.right {
  margin-left: 5px;
  width: calc(100% - 350px);
  height: calc(100% - 40px);
}
.right .title {
  height: 34px;
  line-height: 34px;
  padding: 0 10px;
  background-color: white;
}
.standard_table {
  border-top: 1px solid #ebeef5;
  background-color: white;
}
.product_table {
  border-top: 1px solid #ebeef5;
  height: calc(100% - 235px);
  margin-top: 5px;
  background-color: white;
  user-select: none;
}
.product_table .el-table {
  height: calc(100% - 35px) !important;
}
.sort {
  width: 80% !important;
  overflow: hidden;
}
>>>.el-table__body-wrapper {
  height: calc(100% - 46px) !important;
}
>>>.header-class {
  height: 40px !important;
}
>>>.header-class th.el-table__cell>.cell {
  line-height: 20px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
>>>.el-table__row {
  height: 35px !important;
}
.search {
  border-bottom: 1px solid #ebeef5;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding-bottom: 10px;
}
.search-item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.search-item .el-row {
  display: flex;
  align-items: center;
}
.search-item .el-col {
  margin-left: 0;
}
.more-edit .dialog-footer {
  position: absolute;
  top: 15px;
  right: 70px;
}
>>>.is-disabled .el-textarea__inner {
  background: rgba(0, 0, 0, 0.05) !important;
}
>>>.el-table__body-wrapper::-webkit-scrollbar {
  height: 14px;
  /* è®¾ç½®æ»šåŠ¨æ¡å®½åº¦ */
}
</style>
<style>
.standard .el-tree-node__content {
  height: 32px;
  font-size: 14px;
  border-radius: 2px;
}
.standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
  color: #3a7bfa;
}
.standard .has-gutter .el-table__cell .cell {
  line-height: 34px;
  background-color: #f8f8f8;
}
.standard .has-gutter .el-table__cell {
  background-color: #fafafa !important;
}
.standard .standard_table .el-table__row .cell {
  font-size: 14px;
}
.standard .el-table .warning-row .cell {
  color: #bababa;
}
.standard .el-table-filter__list {
  max-height: 400px;
  overflow-y: auto;
}
.standard .el-upload {
  width: 100%;
}
.standard .el-upload-dragger {
  width: 100%;
}
.standard .handleBtn.is-disabled .el-upload:focus {
  color: #c0c4cc !important;
}
.standard .avatar-uploader .el-upload {
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}
</style>
<template>
  <div class="standard">
    <div class="left">
@@ -1396,3 +1207,191 @@
  },
};
</script>
<style scoped>
.standard {
  padding-top: 10px;
  display: flex;
  height: calc(100vh - 90px);
}
.left {
  width: 330px;
  height: calc(100% - 40px - 10px);
  background-color: white;
  padding: 15px;
}
.custom-tree-node {
  width: 100%;
  line-height: 32px;
}
.custom-tree-node .el-icon-delete {
  color: #3a7bfa;
  opacity: 0;
  font-size: 18px;
}
.custom-tree-node:hover .el-icon-delete {
  opacity: 1;
}
.custom-tree-node .el-icon-edit {
  color: #3a7bfa;
  opacity: 0;
  font-size: 18px;
}
.custom-tree-node:hover .el-icon-edit {
  opacity: 1;
}
.node_i {
  color: orange;
  font-size: 18px;
}
.right {
  margin-left: 5px;
  width: calc(100% - 350px);
  height: calc(100% - 40px);
}
.right .title {
  height: 34px;
  line-height: 34px;
  padding: 0 10px;
  background-color: white;
}
.standard_table {
  border-top: 1px solid #ebeef5;
  background-color: white;
}
.product_table {
  border-top: 1px solid #ebeef5;
  height: calc(100% - 235px);
  margin-top: 5px;
  background-color: white;
  user-select: none;
}
.product_table .el-table {
  height: calc(100% - 35px) !important;
}
.sort {
  width: 80% !important;
  overflow: hidden;
}
>>>.el-table__body-wrapper {
  height: calc(100% - 46px) !important;
}
>>>.header-class {
  height: 40px !important;
}
>>>.header-class th.el-table__cell>.cell {
  line-height: 20px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
>>>.el-table__row {
  height: 35px !important;
}
.search {
  border-bottom: 1px solid #ebeef5;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding-bottom: 10px;
}
.search-item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}
.search-item .el-row {
  display: flex;
  align-items: center;
}
.search-item .el-col {
  margin-left: 0;
}
.more-edit .dialog-footer {
  position: absolute;
  top: 15px;
  right: 70px;
}
>>>.is-disabled .el-textarea__inner {
  background: rgba(0, 0, 0, 0.05) !important;
}
>>>.el-table__body-wrapper::-webkit-scrollbar {
  height: 14px;
  /* è®¾ç½®æ»šåŠ¨æ¡å®½åº¦ */
}
</style>
<style scoped>
.standard .el-tree-node__content {
  height: 32px;
  font-size: 14px;
  border-radius: 2px;
}
.standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
  color: #3a7bfa;
}
.standard .has-gutter .el-table__cell .cell {
  line-height: 34px;
  background-color: #f8f8f8;
}
.standard .has-gutter .el-table__cell {
  background-color: #fafafa !important;
}
.standard .standard_table .el-table__row .cell {
  font-size: 14px;
}
.standard .el-table .warning-row .cell {
  color: #bababa;
}
.standard .el-table-filter__list {
  max-height: 400px;
  overflow-y: auto;
}
.standard .el-upload {
  width: 100%;
}
.standard .el-upload-dragger {
  width: 100%;
}
.standard .handleBtn.is-disabled .el-upload:focus {
  color: #c0c4cc !important;
}
.standard .avatar-uploader .el-upload {
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}
</style>
src/views/statisticalCharts/itemInspectionAnalysis/index.vue
@@ -423,7 +423,7 @@
    },
    // æŸ¥è¯¢å›žè°ƒ
    refreshTable(row) {
      selectSampleAndProductByOrderId({id: row.id}).then(res => {
      selectSampleAndProductByOrderId({id: row.id, ...this.page}).then(res => {
        this.tableLoading = false
        if (res.code === 200) {
          this.tableData = res.data.records
src/views/structural/capabilityAndLaboratory/capability/index.vue
@@ -127,6 +127,7 @@
import { obtainItemParameterList } from '@/api/structural/laboratoryScope'
export default {
  name: 'Capability',
  components: {limsTable, EditForm, testObjectEditForm, BindPartDialog, BindSupplierDensityDialog},
  data() {
    return {
src/views/structural/capabilityAndLaboratory/laboratory/index.vue
@@ -151,6 +151,7 @@
import { getToken } from "@/utils/auth";
export default {
  name: 'Laboratory',
  components: {
    limsTable,
  },
src/views/system/customer/index.vue
@@ -64,6 +64,7 @@
import limsTable from '@/components/Table/lims-table.vue'
import {addCustom, delCustomById, selectCustomPageList, upCustom} from "@/api/system/customer";
export default {
  name: 'Customer',
  components: {
    limsTable
  },
@@ -105,7 +106,7 @@
      ],
      page: {
        total:0,
        size:10,
        size:20,
        current:0
      },
      tableLoading: false,
src/views/system/user/index.vue
@@ -51,6 +51,7 @@
              <el-table-column label="序号" align="center" type="index" />
              <el-table-column label="姓名" align="center" key="nickName" prop="nickName" :show-overflow-tooltip="true" />
              <el-table-column label="账号" align="center" key="userName" prop="userName" :show-overflow-tooltip="true" />
              <el-table-column label="角色" align="center" key="roleName" prop="roleName" :show-overflow-tooltip="true" />
              <el-table-column label="状态" align="center" key="status">
                <template slot-scope="scope">
                  <el-switch v-model="scope.row.status" active-value="0" inactive-value="1"