spring
2025-03-07 d66ab921c996c38da3aa373ffdc7c974c157df33
Merge branch 'dev' of http://114.132.189.42:9002/r/lims-ruoyi-before into dev
已修改18个文件
已删除11个文件
已添加2个文件
2772 ■■■■ 文件已修改
public/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/logo.ico 补丁 | 查看 | 原始文档 | blame | 历史
src/api/business/inspectionTask.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/cnas/personal/personalList.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/monitor/job.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/tool/gen.js 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/externalService/supplierManage/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/tabs/personnel-information.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/files.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/resourceDemand/device/component/management.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/components/EditInspectionItem.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/components/viewManHourDia.vue 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/index.vue 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/inspection.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrder/index.vue 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/components/add.vue 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/rawMaterialInspection/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/monitor/job/index.vue 513 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/monitor/job/log.vue 295 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/performance/manHour/workTimeManagement.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/laboratory/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/gen/basicInfoForm.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/gen/createTable.vue 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/gen/editTable.vue 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/gen/genInfoForm.vue 312 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/gen/importTable.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/gen/index.vue 354 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tool/swagger/index.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/index.html
@@ -8,7 +8,7 @@
      name="viewport"
      content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
    />
    <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
    <link rel="icon" href="<%= BASE_URL %>logo.ico" />
    <link
      href="<%= BASE_URL %>luckysheet/plugins/css/pluginsCss.css"
      rel="stylesheet"
public/logo.ico
src/api/business/inspectionTask.js
@@ -287,3 +287,19 @@
    params: query,
  });
}
// æŸ¥è¯¢å·¥æ—¶
export function getWorkingHoursByOrderId(query) {
  return request({
    url: "/insOrderPlan/getWorkingHoursByOrderId",
    method: "get",
    params: query,
  });
}
// ä¿®æ”¹å·¥æ—¶è¯¦æƒ…
export function updateWorkingHours(query) {
  return request({
    url: "/insOrderPlan/updateWorkingHours",
    method: "post",
    data: query,
  });
}
src/api/cnas/personal/personalList.js
@@ -30,7 +30,7 @@
  return request({
    url: "/personBasicInfo/exportPersonBasicInfoById",
    method: "get",
    data: query,
    params: query,
    responseType: "blob"
  });
}
src/api/monitor/job.js
ÎļþÒÑɾ³ý
src/api/tool/gen.js
ÎļþÒÑɾ³ý
src/router/index.js
@@ -205,34 +205,6 @@
    hidden: true,
    permissions: ["customer:edit"],
  },
  {
    path: "/monitor/job-log",
    component: Layout,
    hidden: true,
    permissions: ["monitor:job:list"],
    children: [
      {
        path: "index/:jobId(\\d+)",
        component: () => import("@/views/monitor/job/log"),
        name: "JobLog",
        meta: { title: "调度日志", activeMenu: "/monitor/job" },
      },
    ],
  },
  {
    path: "/tool/gen-edit",
    component: Layout,
    hidden: true,
    permissions: ["tool:gen:edit"],
    children: [
      {
        path: "index/:tableId(\\d+)",
        component: () => import("@/views/tool/gen/editTable"),
        name: "GenEdit",
        meta: { title: "修改生成配置", activeMenu: "/tool/gen" },
      },
    ],
  },
];
// é˜²æ­¢è¿žç»­ç‚¹å‡»å¤šæ¬¡è·¯ç”±æŠ¥é”™
src/views/CNAS/externalService/supplierManage/index.vue
@@ -13,7 +13,7 @@
        </el-form>
      </div>
      <div>
        <el-button size="medium" @click="exportExcel">导 å‡º</el-button>
<!--        <el-button size="medium" @click="exportExcel">导 å‡º</el-button>-->
        <el-button size="medium" type="primary" @click="showDialog('add')">新 å¢ž</el-button>
      </div>
    </div>
src/views/CNAS/personnel/personnelInfo/tabs/personnel-information.vue
@@ -688,6 +688,7 @@
  methods: {
    // ä¸‹è½½æ¡£æ¡ˆ
    downPerson() {
      console.log('this.clickNodeVal.userId',this.clickNodeVal.userId)
      exportPersonBasicInfoById({ id: this.clickNodeVal.userId }).then(res => {
        const blob = new Blob([res], { type: 'application/msword' });
        this.$download.saveAs(blob, '人员档案.docx');
src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue
@@ -84,13 +84,13 @@
    </el-dialog>
    <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px">
      <div style="display: flex;align-items: center;">
        <div style="width: 70px">年份:</div>
        <div style="width: 70px"><span class="required-span">* </span>年份:</div>
        <el-date-picker v-model="planYear" type="year" value-format="yyyy" clearable size="small" format="yyyy"
          placeholder="选择年">
        </el-date-picker>
      </div>
      <div style="display: flex;align-items: center;margin: 10px 0">
        <div style="width: 70px">审核人:</div>
        <div style="width: 70px"><span class="required-span">* </span>审核人:</div>
        <el-select v-model="reviewerId" clearable filterable size="small" style="width: 50%;">
          <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
          </el-option>
@@ -625,6 +625,14 @@
    },
    // å¹´åº¦è®¡åˆ’-导入
    submitUpload() {
      if (!this.planYear) {
        this.$message.error('请选择年份')
        return
      }
      if (!this.reviewerId) {
        this.$message.error('请选择审核人')
        return
      }
      if (this.$refs.upload.uploadFiles.length == 0) {
        this.$message.error('未选择文件')
        return
src/views/CNAS/resourceDemand/device/component/files.vue
@@ -264,7 +264,7 @@
        <el-col :span="7">
          <el-form :model="editData" label-width="140px" ref="ruleForm" :rules="rules1">
            <!-- å®žéªŒå®¤åˆ—表 -->
            <el-form-item label="所属部门:">
            <el-form-item label="所属部门:" prop="subordinateDepartmentsId">
              <el-select v-model="editData.subordinateDepartmentsId" placeholder="请选择" size="small" style="width:100%">
                <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
                  :value="item.value">
@@ -512,6 +512,9 @@
        calibrationDate: [
          { required: true, message: '请输入校准周期(月)', trigger: 'blur' },
        ],
        subordinateDepartmentsId: [
          { required: true, message: '请选择所属部门', trigger: 'change' },
        ]
      },
      // dateForm: {
src/views/CNAS/resourceDemand/device/component/management.vue
@@ -119,7 +119,7 @@
                <el-col :span="7">
                    <el-form :label-position="labelPosition" :model="formData" label-width="140px" ref="ruleForm">
                        <!-- å®žéªŒå®¤åˆ—表 -->
                        <el-form-item label="所属部门:">
                        <el-form-item label="所属部门:" required>
                            <el-select :disabled="isUp" v-model="formData.subordinateDepartmentsId" placeholder="请选择" size="small"
                                style="width:100%">
                                <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
@@ -277,7 +277,7 @@
                <el-col :span="7">
                    <el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
                        <!-- å®žéªŒå®¤åˆ—表 -->
                        <el-form-item label="所属部门:">
                        <el-form-item label="所属部门:" required>
                            <el-select v-model="formData2.subordinateDepartmentsId" placeholder="请选择" size="small" style="width:100%">
                                <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label"
                                    :value="item.value">
@@ -813,6 +813,10 @@
                this.$message.error('未输入校准有效期')
                return
            }
            if (!this.formData.subordinateDepartmentsId) {
                this.$message.error('未选择所属部门')
                return
            }
            if (this.formData.deviceStatus === '' || this.formData.deviceStatus === null) {
                this.$message.error('未选择当前状态')
                return
src/views/business/inspectionTask/components/EditInspectionItem.vue
@@ -6,6 +6,16 @@
      width="80%"
      @close="editInspectionDia = false"
    >
      <div>
        <el-form :model="entity" :inline="true">
          <el-form-item label="检验项" prop="outputWorkTime">
            <el-input v-model="entity.inspectionItem" clearable size="small"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button size="small" type="primary" @click="getTableData">查询</el-button>
          </el-form-item>
        </el-form>
      </div>
      <lims-table
        :column="editColumn"
        :table-data="editTableData"
@@ -70,6 +80,7 @@
      editInspectionDia: false,
      entity: {
        id: 0,
        inspectionItem: ''
      },
      editColumn: [
        {
src/views/business/inspectionTask/components/viewManHourDia.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,204 @@
<template>
  <div>
    <el-dialog
      :visible.sync="editInspectionDia"
      title="查看工时"
      width="80%"
      @close="editInspectionDia = false"
    >
      <div>
        <el-form :model="entity" :inline="true">
          <el-form-item label="检验项" prop="outputWorkTime">
            <el-input v-model="entity.inspectionItem" clearable size="small"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button size="small" type="primary" @click="getList0">查询</el-button>
          </el-form-item>
        </el-form>
      </div>
      <lims-table :tableData="tableData0" :column="column0"
                  :page="page0" :tableLoading="tableLoading"
                  height="500" @pagination="pagination0"></lims-table>
      <span slot="footer" class="dialog-footer" v-if="insState == 99">
        <el-button @click="editInspectionDia = false">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="handleSubmit">ç¡® å®š</el-button>
      </span>
    </el-dialog>
    <el-dialog :visible.sync="editAskDia" title="修改" width="50%">
      <el-form ref="form" :model="editForm" label-width="100px">
        <el-form-item label="检测人" prop="name">
          <el-select v-model="editForm.name" clearable size="small">
            <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="产量工时" prop="outputWorkTime">
          <el-input v-model="editForm.outputWorkTime" clearable size="small"></el-input>
        </el-form-item>
        <el-form-item label="日期" prop="dateTime">
          <el-date-picker
            v-model="editForm.dateTime"
            placeholder="选择日期"
            size="small"
            style="width: 100%;"
            type="date"
            format="yyyy-MM-dd"
            value-format="yyyy-MM-dd">
          </el-date-picker>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="editAskDia = false">取 æ¶ˆ</el-button>
        <el-button
          :loading="handleEditLoading"
          type="primary"
          @click="handleEdit"
        >ç¡® å®š</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>
<script>
import limsTable from "@/components/Table/lims-table.vue";
import {
  getWorkingHoursByOrderId, updateWorkingHours,
} from "@/api/business/inspectionTask.js";
import {selectUserCondition} from "@/api/system/user";
export default {
  name: "EditInspectionItem",
  // import å¼•入的组件需要注入到对象中才能使用
  components: { limsTable },
  data() {
    // è¿™é‡Œå­˜æ”¾æ•°æ®
    return {
      editInspectionDia: false,
      entity: {
        orderId: 0,
        inspectionItem: ''
      },
      insState: 0,
      tableData0: [],
      tableLoading: false,
      column0: [
        { label: "检测人", prop: "name" },
        { label: "检测项分类", prop: "inspectionItemClass" },
        { label: "检测项", prop: "inspectionItem", width: 110 },
        { label: "检测子项", prop: "inspectionItemSubclass", width: 110  },
        { label: "样品编号", prop: "sample", width: 160 },
        { label: "委托单号", prop: "orderNo", width: 160 },
        { label: "电缆标识", prop: "cableTag" },
        { label: "产量工时", prop: "outputWorkTime" },
        { label: "工时分组", prop: "manHourGroup" },
        { label: "单价", prop: "price" },
        { label: "日期", prop: "dateTime" },
        { label: "周次", prop: "week" },
        { label: "星期", prop: "weekDay" },
        {
          dataType: "action",
          width: "80px",
          label: "操作",
          fixed: "right",
          operation: [
            {
              name: "编辑",
              type: "text",
              clickFun: (row) => {
                this.editIns(row);
              },
              disabled: (row) => {
                return this.insState == 3 || this.insState == 5 || this.insState == 99
              },
            },
          ],
        },
      ],
      page0: {
        total: 0,
        size: 10,
        current: 1,
      },
      editAskDia: false,
      editForm: {
        id: "",
        name: "",
        outputWorkTime: "",
        inspectionValueType: "",
      },
      handleEditLoading: false,
      inspectionValueType: [],
      responsibleOptions: []
    };
  },
  mounted() {
  },
  // æ–¹æ³•集合
  methods: {
    showDialog(id, insState) {
      this.insState = insState
      this.editInspectionDia = true;
      this.entity.orderId = id;
      this.getList0();
    },
    getList0() {
      this.tableLoading = true;
      getWorkingHoursByOrderId({ ...this.entity, ...this.page0 })
        .then((res) => {
          this.tableLoading = false;
          if (res.code === 200) {
            this.tableData0 = res.data.records;
            this.page0.total = res.data.total;
          }
        })
        .catch((err) => {
          this.tableLoading = false;
        });
    },
    // ä¿®æ”¹å¼¹æ¡†
    editIns(row) {
      this.editAskDia = true;
      this.editForm = { ...row };
      this.getUserList()
    },
    // æäº¤ä¿®æ”¹
    handleEdit() {
      this.handleEditLoading = true;
      updateWorkingHours({...this.editForm})
        .then((res) => {
          this.handleEditLoading = false;
          this.$message.success("修改成功");
          this.editAskDia = false;
          this.getList0();
        })
        .catch(() => {
          this.handleEditLoading = false;
        });
    },
    // ç¡®è®¤å·¥æ—¶
    handleSubmit () {
      this.editInspectionDia = false;
      this.$emit("submit");
    },
    pagination0({ page, limit }) {
      this.page0.current = page;
      this.page0.size = limit;
      this.getList0();
    },
    // èŽ·å–è´Ÿè´£äººä¿¡æ¯æŽ¥å£
    getUserList() {
      selectUserCondition({ type: 1 }).then((res) => {
        this.responsibleOptions = res.data;
      })
    }
  },
};
</script>
<style scoped>
.pagination {
  display: flex;
  justify-content: space-between;
}
</style>
src/views/business/inspectionTask/index.vue
@@ -181,6 +181,16 @@
    </el-dialog>
    <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%">
      <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
        <div>
          <el-form :model="entity" :inline="true">
            <el-form-item label="检验项" prop="outputWorkTime">
              <el-input v-model="entity.inspectionItem" clearable size="small"></el-input>
            </el-form-item>
            <el-form-item>
              <el-button size="small" type="primary" @click="getLookList">查询</el-button>
            </el-form-item>
          </el-form>
        </div>
        <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading"
          :height="'60vh'" @pagination="lookPagination" key="tableData1"></lims-table>
      </div>
@@ -232,7 +242,10 @@
      ref="showInfoDialog"
      :showInfoDialog="showInfoDialog"
    ></ShowInfo> -->
    <!--修改检验值弹框-->
    <edit-inspection-item ref="editInspectionItem"></edit-inspection-item>
    <!--查看工时弹框-->
    <viewManHourDia ref="viewManHourDia"></viewManHourDia>
  </div>
</template>
@@ -240,6 +253,7 @@
import { getYearAndMonthAndDays } from "@/utils/date";
import EditInspectionItem from "./components/EditInspectionItem.vue";
import limsTable from "@/components/Table/lims-table.vue";
import viewManHourDia from "./components/viewManHourDia.vue"
import {
  claimInsOrderPlan,
  upPlanUser2,
@@ -258,6 +272,7 @@
  components: {
    EditInspectionItem,
    limsTable,
    viewManHourDia
  },
  dicts: ["urgency_level", "inspection_task_state"],
  computed: {
@@ -428,9 +443,17 @@
                this.editInspection(row);
              },
              disabled: (row) => {
                return (
                  row.userName == null || row.insState == 3 || row.insState == 5
                );
                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'])
              },
            },
            {
@@ -498,6 +521,9 @@
        },
      ],
      // æ•°æ®æŸ¥çœ‹ç›¸å…³å­—段---开始
      entity: {
        inspectionItem: "",
      },
      lookTableData: [],
      lookColumn: [
        {
@@ -607,7 +633,7 @@
    },
    getLookList() {
      this.lookTableLoading = true;
      let param = { id: this.lookInfo.id, ...this.lookPage };
      let param = { id: this.lookInfo.id, ...this.lookPage, inspectionItem: this.entity.inspectionItem };
      delete param.total;
      selectSampleAndProductByOrderId({ ...param })
        .then((res) => {
@@ -631,9 +657,9 @@
    editInspection(row) {
      this.$refs.editInspectionItem.showDialog(row.id);
    },
    // åˆ·æ–°é¡µé¢
    refreshView() {
      this.getList();
    // æŸ¥çœ‹å·¥æ—¶
    viewManHour(row) {
      this.$refs.viewManHourDia.showDialog(row.id, row.insState);
    },
    // æ•°æ®æŸ¥çœ‹
    handleDataLook(row) {
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="addVerifyDia = true">提交</el-button>
        <el-button v-if="state == 1" size="small" type="primary" @click="viewManHour">提交</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>
@@ -509,6 +509,8 @@
      :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" />
    <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId"
      :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification>
    <!--查看工时弹框-->
    <viewManHourDia ref="viewManHourDia" @submit="openAddVerifyDia"></viewManHourDia>
  </div>
</template>
@@ -542,9 +544,11 @@
import DataWorker from '../../../DataWorker.worker';
import html2canvas from "html2canvas";
import { mapGetters } from "vuex";
import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue";
export default {
  name: 'Inspection',
  components: {
    viewManHourDia,
    PurchaseVerification,
    AddUnPass,
    limsTable,
@@ -2582,6 +2586,13 @@
        this.$message.error("未输入不通过原因");
      }
    },
    // æŸ¥çœ‹å·¥æ—¶
    viewManHour() {
      this.$refs.viewManHourDia.showDialog(this.id, 99);
    },
    openAddVerifyDia () {
      this.addVerifyDia = true;
    },
    submit() {
      if (this.verifyUser === null || this.verifyUser === "") {
        this.$message.error("请指定复核人员");
src/views/business/materialOrder/index.vue
@@ -59,9 +59,11 @@
        <div class="table-tab">
          <div>
            <ul class="tab">
              <li v-for="(m, i) in tabList" :key="m.value" :class="{ active: m.value === tabIndex }"
                @click="handleTab(m)">
                {{ m.label }}</li>
              <li :class="{ active: tabIndex === 0 }" @click="handleTab(0)">待下单</li>
              <li :class="{ active: tabIndex === 1 }" @click="handleTab(1)">检验中</li>
              <li :class="{ active: tabIndex === 2 }" @click="handleTab(2)">已检验</li>
              <li :class="{ active: tabIndex === 4 }" @click="handleTab(4)">季度检验</li>
              <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:Ifs:ByAll'])" @click="handleTab(3)">全部</li>
            </ul>
          </div>
          <div>
@@ -359,7 +361,13 @@
      tableData2: [],
      tableLoading2: false,
      column2: [
        { label: '委托编号', prop: 'entrustCode',width: "160px", },
        {
          label: '委托编号',
          prop: 'entrustCode',
          width: "160px",
          dataType: "link",
          linkMethod: "changeEntrustCode",
        },
        {
          dataType: 'tag',
          label: '检验状态',
@@ -404,7 +412,13 @@
        { label: '供应商名称', prop: 'supplierName' },
        { label: '不合格描述', prop: 'unqualifiedDesc' },
        { label: '免检', prop: 'isExemption' },
        { label: '样品名称', prop: 'sampleName' },
        {
          label: '样品名称',
          prop: 'sampleName',
          width: "160px",
          dataType: "link",
          linkMethod: "selectAllByOne",
        },
        { label: '样品型号', prop: 'sampleModel' },
        { label: '检验人', prop: 'userName' },
        {
@@ -551,7 +565,13 @@
        { label: '供应商名称', prop: 'supplierName' },
        { label: '不合格描述', prop: 'unqualifiedDesc' },
        { label: '免检', prop: 'isExemption' },
        { label: '样品名称', prop: 'sampleName' },
        {
          label: '样品名称',
          prop: 'sampleName',
          width: "160px",
          dataType: "link",
          linkMethod: "selectAllByOne",
        },
        { label: '样品型号', prop: 'sampleModel' },
        { label: '检验人', prop: 'userName' },
        {
@@ -651,7 +671,13 @@
        { label: '供应商名称', prop: 'supplierName' },
        { label: '不合格描述', prop: 'unqualifiedDesc' },
        { label: '免检', prop: 'isExemption' },
        { label: '样品名称', prop: 'sampleName' },
        {
          label: '样品名称',
          prop: 'sampleName',
          width: "160px",
          dataType: "link",
          linkMethod: "selectAllByOne",
        },
        { label: '样品型号', prop: 'sampleModel' },
        { label: '检验人', prop: 'userName' },
        {
@@ -1204,7 +1230,7 @@
    },
    // åˆ‡æ¢ä¸‹å•tab表格
    handleTab(m) {
      this.tabIndex = m.value;
      this.tabIndex = m;
      this.refreshTable()
    },
    // è¡¨æ ¼é€‰æ‹©æ–¹æ³•
src/views/business/productOrder/components/add.vue
@@ -2,9 +2,7 @@
  <div class="app-container">
    <div v-show="!cableConfigShow&&!auxiliaryShow">
      <div style="display: flex;justify-content: space-between;align-items:center;">
        <div>
          å§”托单信息
        </div>
        <div>委托单信息</div>
        <div>
          <el-cascader
            v-model="addObj.quarterItemId"
@@ -41,96 +39,146 @@
    <div v-show="!cableConfigShow&&!auxiliaryShow" style="margin-top: 10px">
      <div class="search">
        <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" label-position="right">
          <el-form-item label="委托编号:">
            <el-input v-model="addObj.entrustCode" clearable disabled placeholder="系统生成" size="small"></el-input>
          </el-form-item>
          <el-form-item label="检验类别:" prop="orderType">
            <el-select v-model="addObj.orderType" :disabled="active>1&&tabIndex!=4" clearable size="small" style="width: 100%;">
              <el-option v-for="(a, ai) in dict.type.check_type1" :key="ai" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="制单人:">
            <el-input v-model="addObj.custom" disabled size="small" clearable></el-input>
          </el-form-item>
          <el-form-item label="委托单位:" prop="company">
            <el-input v-model="addObj.company" disabled placeholder="选择委托单位" size="small" style="width: 208px">
              <template slot="append">
                <el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search"
                           @click="openCompanyList"></el-button>
              </template>
            </el-input>
          </el-form-item>
          <el-form-item label="联系方式:" prop="phone">
            <el-input v-model="addObj.phone" :disabled="active>1&&tabIndex!=4" clearable placeholder="选择委托客户" size="small"></el-input>
          </el-form-item>
          <el-form-item label="紧急程度:" prop="type">
            <el-select v-model="addObj.type" :disabled="active>1&&tabIndex!=4" clearable size="small">
              <el-option v-for="(a, ai) in dict.type.urgency_level" :key="ai" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="样品名称:" prop="sample">
            <el-input v-model="addObj.sample" disabled size="small" style="width: 208px">
              <template slot="append"><el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search"
                                                 @click="selectStandardTree = true"></el-button></template>
            </el-input>
          </el-form-item>
          <el-form-item label="样品数量:" prop="sampleNum" style="margin-right: 0">
            <el-input-number v-model="addObj.sampleNum" :disabled="active>1" :max="100" :min="1" :precision="0"
                             size="small" @change="addStandardTree"></el-input-number>
          </el-form-item>
          <el-form-item label="样品状态:" prop="sampleStatus">
            <el-select v-model="addObj.sampleStatus" :disabled="active>1&&tabIndex!=4" size="small">
              <el-option v-for="(a,ai) in dict.type.sample_status_list" :key="ai" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="抽检数量:" prop="testQuantity">
            <el-input v-model="addObj.testQuantity" :disabled="active>1&&tabIndex!=4" clearable size="small"></el-input>
          </el-form-item>
          <el-form-item label="来样方式:" prop="formType">
            <el-select v-model="addObj.formType" :disabled="active>1&&tabIndex!=4" size="small" clearable>
              <el-option v-for="(a,ai) in dict.type.form_type" :key="ai" :label="a.label" :value="a.value"></el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="生产单位:" prop="production">
            <el-input v-model="addObj.production" :disabled="active>1&&tabIndex!=4" clearable placeholder="请输入"
                      size="small"></el-input>
          </el-form-item>
          <el-form-item label="生产单位EN:" prop="productionEn">
            <el-input v-model="addObj.productionEn" :disabled="active>1&&tabIndex!=4" clearable placeholder="请输入"
                      size="small"></el-input>
          </el-form-item>
          <el-form-item label="样品处理方式:">
            <el-radio-group v-model="addObj.processing" :disabled="active>1&&tabIndex!=4" size="mini">
              <el-radio :label="0" border style="margin-right: 0">委托单位取回</el-radio>
              <el-radio :label="1" border>实验室处理</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="是否留样:">
            <el-radio-group v-model="addObj.isLeave" border :disabled="active>1&&tabIndex!=4" size="mini">
              <el-radio :label="0" border style="margin-right: 0">不留样</el-radio>
              <el-radio :label="1" border>留样</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="报告发送方式:">
            <el-radio-group v-model="addObj.send" :disabled="active>1&&tabIndex!=4" size="mini">
              <el-radio :label="1" border style="margin-right: 0">自取</el-radio>
              <el-radio :label="0" border>其他</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="委托人:">
            <el-input v-model="addObj.prepareUser" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
          </el-form-item>
          <el-form-item label="委托人英文:">
            <el-input v-model="addObj.prepareUserEn" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
          </el-form-item>
          <el-form-item label="备注:">
            <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                      size="small" style="width: 100%" type="textarea"></el-input>
          </el-form-item>
          <el-form-item label="备注英文:">
            <el-input v-model="addObj.remarkEn" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                      size="small" type="textarea"></el-input>
          </el-form-item>
          <el-row>
            <el-col :span="6">
              <el-form-item label="委托编号:">
                <el-input v-model="addObj.entrustCode" clearable disabled placeholder="系统生成" size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="检验类别:" prop="orderType">
                <el-select v-model="addObj.orderType" :disabled="active>1&&tabIndex!=4" clearable size="small" style="width: 100%;">
                  <el-option v-for="(a, ai) in dict.type.check_type1" :key="ai" :label="a.label" :value="a.value"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="制单人:">
                <el-input v-model="addObj.custom" disabled size="small" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="委托单位:" prop="company">
                <el-input v-model="addObj.company" disabled placeholder="选择委托单位" size="small" style="width: 208px">
                  <template slot="append">
                    <el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search"
                               @click="openCompanyList"></el-button>
                  </template>
                </el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="联系方式:" prop="phone">
                <el-input v-model="addObj.phone" :disabled="active>1&&tabIndex!=4" clearable placeholder="选择委托客户" size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="紧急程度:" prop="type">
                <el-select v-model="addObj.type" :disabled="active>1&&tabIndex!=4" clearable size="small">
                  <el-option v-for="(a, ai) in dict.type.urgency_level" :key="ai" :label="a.label" :value="a.value"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="样品名称:" prop="sample">
                <el-input v-model="addObj.sample" disabled size="small" style="width: 208px">
                  <template slot="append"><el-button slot="append" :disabled="active>1&&tabIndex!=4" icon="el-icon-search"
                                                     @click="selectStandardTree = true"></el-button></template>
                </el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="样品数量:" prop="sampleNum" style="margin-right: 0">
                <el-input-number v-model="addObj.sampleNum" :disabled="active>1" :max="100" :min="1" :precision="0"
                                 size="small" @change="addStandardTree"></el-input-number>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="样品状态:" prop="sampleStatus">
                <el-select v-model="addObj.sampleStatus" :disabled="active>1&&tabIndex!=4" size="small">
                  <el-option v-for="(a,ai) in dict.type.sample_status_list" :key="ai" :label="a.label" :value="a.value"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="抽检数量:" prop="testQuantity">
                <el-input v-model="addObj.testQuantity" :disabled="active>1&&tabIndex!=4" clearable size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="来样方式:" prop="formType">
                <el-select v-model="addObj.formType" :disabled="active>1&&tabIndex!=4" size="small" clearable>
                  <el-option v-for="(a,ai) in dict.type.form_type" :key="ai" :label="a.label" :value="a.value"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="生产单位:" prop="production">
                <el-input v-model="addObj.production" :disabled="active>1&&tabIndex!=4" clearable placeholder="请输入"
                          size="small"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="生产单位EN:" prop="productionEn">
                <el-input v-model="addObj.productionEn" :disabled="active>1&&tabIndex!=4" clearable placeholder="请输入"
                          size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="样品处理方式:">
                <el-radio-group v-model="addObj.processing" :disabled="active>1&&tabIndex!=4" size="mini">
                  <el-radio :label="0" border style="margin-right: 0">委托单位取回</el-radio>
                  <el-radio :label="1" border>实验室处理</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="是否留样:">
                <el-radio-group v-model="addObj.isLeave" border :disabled="active>1&&tabIndex!=4" size="mini">
                  <el-radio :label="0" border style="margin-right: 0">不留样</el-radio>
                  <el-radio :label="1" border>留样</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="报告发送方式:">
                <el-radio-group v-model="addObj.send" :disabled="active>1&&tabIndex!=4" size="mini">
                  <el-radio :label="1" border style="margin-right: 0">自取</el-radio>
                  <el-radio :label="0" border>其他</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="委托人:">
                <el-input v-model="addObj.prepareUser" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="委托人英文:">
                <el-input v-model="addObj.prepareUserEn" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable size="small"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="备注:">
                <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small" style="width: 100%" type="textarea"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="6">
              <el-form-item label="备注英文:">
                <el-input v-model="addObj.remarkEn" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '请输入'" clearable
                          size="small" type="textarea"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
          <el-row>
            <el-col :span="6">
              <el-form-item label="样品名称:">
@@ -154,10 +202,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"
@@ -166,7 +214,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">
@@ -176,7 +224,7 @@
              </el-form-item>
            </el-form>
          </div>
          <div style="display: flex;align-items: center;margin-bottom: 10px">
          <div style="display: flex;align-items: center;margin-bottom: 6px;margin-top: 6px">
            <span style="width: 150px;font-size: 14px;text-align: right;">特殊标准:</span>
            <el-input v-model="specialStandardMethod" :disabled="!isSpecial" clearable size="small"></el-input>
            <el-button v-show="active==1" size="small" style="margin-left: 10px"
@@ -248,6 +296,7 @@
          </el-table-column>
        </el-table>
        <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName" border class="el-table"
                  :key="upIndex"
          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>
@@ -686,6 +735,7 @@
      sampleViewEn: null,
      expandedKeys: [],
      sampleList: [],
      upIndex: 0,
      sampleIds: [],
      methodList: [],
      addSampleDia: false,
@@ -847,6 +897,10 @@
      // ç¼–辑要求值表格
      editSpecial () {
        this.isSpecial = true
        this.$nextTick(() => {
          this.$refs.productTable.doLayout();
          this.upIndex++
        });
      },
      getQuarterOnOrderList () {
        getQuarterOnOrder().then(res => {
@@ -1709,6 +1763,7 @@
          this.$refs.sampleTable.setCurrentRow(row)
          this.$nextTick(() => {
            this.$refs.productTable.doLayout();
            this.upIndex++
          });
          setTimeout(() => {
            this.productList.forEach(a => {
src/views/business/productOrder/index.vue
@@ -46,8 +46,13 @@
    <div class="table-tab">
      <div>
        <ul class="tab">
          <li v-for="(m, i) in tabList" :key="i + 'afgh'" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">{{ m.label }}
          </li>
          <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核</li>
          <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中</li>
          <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">委托已检</li>
          <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">抽样已检</li>
          <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回</li>
          <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">撤销</li>
          <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部</li>
        </ul>
      </div>
      <div>
@@ -55,7 +60,7 @@
          @click="downLoad">导出</el-button>
        <el-button v-if="tabIndex === 1" size="small" type="primary" @click="openAddIns">添加检验项</el-button>
        <el-button size="small" type="primary" @click="openPrint">标签打印</el-button>
        <el-button size="small" type="primary" @click="playOrder(1)">下单</el-button>
        <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">下单</el-button>
      </div>
    </div>
    <div class="table">
@@ -168,8 +173,7 @@
        <span slot="footer" class="dialog-footer">
          <el-row>
            <el-button @click="handleNo">{{ deleteTilte == '撤销' ? '取 æ¶ˆ' : '不通过' }}</el-button>
            <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '撤销' ? 'ç¡® å®š' : '通
              è¿‡'}}</el-button>
            <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '撤销' ? 'ç¡® å®š' : '通过'}}</el-button>
          </el-row>
        </span>
      </el-dialog>
@@ -1176,7 +1180,7 @@
    handleVerify(row) {
      this.$router.push({ path: "/productOrder/add", query: { examine: 1, active: 3, currentId: row.id } });
    },
    handleTab(m, i) {
    handleTab(i) {
      this.tabIndex = i;
      this.refreshTable()
    },
src/views/business/rawMaterialInspection/index.vue
@@ -54,8 +54,10 @@
      <div class="table-tab">
        <div>
          <ul class="tab">
            <li v-for="m in tabList" :key="m.value" :class="{ active: m.value === tabIndex }" @click="handleTab(m)">
              {{ m.label }}</li>
            <li :class="{ active: tabIndex === 0 }" @click="handleTab(0)">待报检</li>
            <li :class="{ active: tabIndex === 1 }" @click="handleTab(1)">待下单</li>
            <li :class="{ active: tabIndex === 3 }" @click="handleTab(3)">已完成</li>
            <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:Ifs:ByAll'])" @click="handleTab(4)">全部</li>
          </ul>
        </div>
        <div>
@@ -525,7 +527,7 @@
  methods: {
    // åˆ‡æ¢tab表格
    handleTab(m) {
      this.tabIndex = m.value;
      this.tabIndex = m;
      this.refreshTable()
    },
    // æŸ¥è¯¢å›žè°ƒ
src/views/monitor/job/index.vue
ÎļþÒÑɾ³ý
src/views/monitor/job/log.vue
ÎļþÒÑɾ³ý
src/views/performance/manHour/workTimeManagement.vue
@@ -518,9 +518,10 @@
        param = { ...entity, ...this.page };
      } else {
        param = { ...this.entity, ...this.page };
        param.dateTime = JSON.stringify(param.dateTime);
        param.dateTime = param.dateTime?.length > 0 ? JSON.stringify(param.dateTime) : null;
      }
      delete param.total;
      console.log('11111111111111111')
      selectAuxiliaryWorkingHoursDay({ ...param })
        .then((res) => {
          this.tableLoading = false;
src/views/structural/capabilityAndLaboratory/laboratory/index.vue
@@ -328,7 +328,11 @@
    },
    // èµ„质明细附件下载
    handleDownLoad(row) {
      const url = process.env.VUE_APP_BASE_API + "/img/" + row.fileUrl;
      if (!row.fileUrl) {
        this.$message.warning('暂无附件')
        return;
      }
      const url = this.javaApi + "/img/" + row.fileUrl;
      this.$download.saveAs(url, row.fileUrl);
    },
    openAdd() {
src/views/tool/gen/basicInfoForm.vue
ÎļþÒÑɾ³ý
src/views/tool/gen/createTable.vue
ÎļþÒÑɾ³ý
src/views/tool/gen/editTable.vue
ÎļþÒÑɾ³ý
src/views/tool/gen/genInfoForm.vue
ÎļþÒÑɾ³ý
src/views/tool/gen/importTable.vue
ÎļþÒÑɾ³ý
src/views/tool/gen/index.vue
ÎļþÒÑɾ³ý
src/views/tool/swagger/index.vue
ÎļþÒÑɾ³ý