已修改4个文件
371 ■■■■■ 文件已修改
src/components/Table/lims-table.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/productOrder/index.vue 305 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/unpass/index-manage.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/performance/attendance/index.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/lims-table.vue
@@ -39,7 +39,7 @@
          <div v-else-if="item.dataType == 'tag'">
            <el-tag v-if="
              typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
              'string'
              'string' && item.formatType!=null
            " :title="scope.row[item.prop] | formatters(item.formatData)"
              :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] |
                formatters(item.formatData) }}</el-tag>
@@ -48,7 +48,7 @@
              item.formatData
            )" v-else-if="
              typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
              'object'
              'object' && item.formatType!=null
            " :key="index" :title="scope.row[item.prop] | formatters(item.formatData)"
              :type="formatType(tag, item.formatType)">{{
                item.tagGroup
@@ -57,9 +57,10 @@
                    : tag
                  : tag
              }}</el-tag>
            <el-tag v-else :title="scope.row[item.prop] | formatters(item.formatData)"
            <el-tag v-else-if="item.formatType!=null" :title="scope.row[item.prop] | formatters(item.formatData)"
              :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] |
                formatters(item.formatData) }}</el-tag>
            <span v-else>{{item.formatData}}</span>
          </div>
          <!-- 按钮 -->
src/views/business/productOrder/index.vue
@@ -4,36 +4,37 @@
      <el-form :model="entity" ref="entity" size="small" :inline="true">
        <el-form-item label="委托编号" prop="entrustCode">
          <el-input v-model="entity.entrustCode" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable">
                    @keyup.enter.native="refreshTable">
          </el-input>
        </el-form-item>
        <el-form-item label="样品名称" prop="sampleName">
          <el-input v-model="entity.sampleName" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable"></el-input>
                    @keyup.enter.native="refreshTable"></el-input>
        </el-form-item>
        <el-form-item label="样品型号" prop="sampleModel">
          <el-input v-model="entity.sampleModel" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable()"></el-input>
                    @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"
                          @change="refreshTable"
            style="width:100%" type="date" value-format="yyyy-MM-dd HH:mm:ss">
                          style="width:100%" type="date" value-format="yyyy-MM-dd HH:mm:ss">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="委托人" prop="prepareUser" v-if="more">
          <el-input v-model="entity.prepareUser" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable">
                    @keyup.enter.native="refreshTable">
          </el-input>
        </el-form-item>
        <el-form-item label="委托单位" prop="company" v-if="more">
          <el-input v-model="entity.company" clearable placeholder="请输入" size="small"
            @keyup.enter.native="refreshTable">
                    @keyup.enter.native="refreshTable">
          </el-input>
        </el-form-item>
        <el-form-item>
          <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
                     @click="more = !more">{{ !more ? '更多' : '收起' }}</el-button>
                     @click="more = !more">{{ !more ? '更多' : '收起' }}
          </el-button>
          <el-button size="mini" type="primary" @click="refreshTable()">查询</el-button>
          <el-button size="mini" @click="refresh()">重置</el-button>
        </el-form-item>
@@ -43,21 +44,36 @@
      <div class="table-tab">
        <div>
          <ul class="tab">
            <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核</li>
            <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中</li>
            <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">委托已检</li>
            <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">抽样已检</li>
            <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回</li>
            <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">撤销</li>
            <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部</li>
            <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">
              待审核
            </li>
            <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">
              检验中
            </li>
            <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])"
                @click="handleTab(2)">委托已检
            </li>
            <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">
              抽样已检
            </li>
            <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">
              退回
            </li>
            <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])"
                @click="handleTab(5)">撤销
            </li>
            <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部
            </li>
          </ul>
        </div>
        <div>
          <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 6" size="small"
                     @click="downLoad">导出</el-button>
                     @click="downLoad">导出
          </el-button>
          <el-button v-if="tabIndex === 1" size="small" type="primary" @click="openAddIns">添加检验项</el-button>
          <el-button size="small" type="primary" @click="openPrint">标签打印</el-button>
          <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">下单</el-button>
          <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">下单
          </el-button>
        </div>
      </div>
      <div class="table">
@@ -70,7 +86,7 @@
      <!-- 审核 -->
      <el-dialog :before-close="handleClose" :visible.sync="verifyDialogVisible" title="下单审核" width="30%">
        <p v-if="!isPass" style="font-size:16px;color:#333333">委托编号<span
            style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
          style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p>
        <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px">
          <el-form-item label="请输入样品库位号:">
            <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
@@ -90,7 +106,7 @@
      <!-- 撤销 -->
      <el-dialog :before-close="handleClose" :visible.sync="quashDialogVisible" title="下单撤销" width="30%">
        <p v-if="!isQuash" style="font-size:16px;color:#333333">委托编号<span
            style="color:#34BD66">{{ this.insOrderRow.entrustCode }}</span>的信息是否撤销</p>
          style="color:#34BD66">{{ this.insOrderRow.entrustCode }}</span>的信息是否撤销</p>
        <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px">
          <el-form-item label="请输入撤销原因:">
            <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
@@ -114,8 +130,9 @@
            <el-col class="search_thing" style="width: 95%;">
              <div class="search_label"><span class="required-span">* </span>约定时间:</div>
              <div class="search_input">
                <el-date-picker v-model="distributeData.appointed" format="yyyy-MM-dd" placeholder="选择日期" size="small"
                  style="width: 100%;" type="date" value-format="yyyy-MM-dd">
                <el-date-picker v-model="distributeData.appointed" format="yyyy-MM-dd" placeholder="选择日期"
                                size="small"
                                style="width: 100%;" type="date" value-format="yyyy-MM-dd">
                </el-date-picker>
              </div>
            </el-col>
@@ -123,7 +140,7 @@
              <div class="search_label"><span class="required-span">* </span>指派人员:</div>
              <div class="search_input">
                <el-select v-model="distributeData.userId" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;" @change="changeUser">
                           style="width: 100%;" @change="changeUser">
                  <el-option v-for="(item, i) in personList" :key="i + 'gbnm.'" :label="item.label" :value="item.value">
                  </el-option>
                </el-select>
@@ -133,9 +150,9 @@
              <div class="search_label"><span class="required-span">* </span>试验室:</div>
              <div class="search_input">
                <el-select v-model="distributeData.sonLaboratory" clearable filterable placeholder="请选择" size="small"
                  style="width: 100%;">
                           style="width: 100%;">
                  <el-option v-for="(item, i) in sonLaboratoryList" :key="i + 'oooo'" :label="item.label"
                    :value="item.value">
                             :value="item.value">
                  </el-option>
                </el-select>
              </div>
@@ -152,26 +169,35 @@
      <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%" @close="closeDia">
        <div v-if="dataDialogVisible">
          <lims-table :tableData="tableDataLook" :column="tableDataLookColumn" @pagination="tableDataLookPagination"
            height="500px" key="tableDataLook" :page="tableDataLookPage"
            :tableLoading="tableDataLookTableLoading"></lims-table>
                      :height="100" key="tableDataLook" :page="tableDataLookPage"
                      :tableLoading="tableDataLookTableLoading"></lims-table>
        </div>
      </el-dialog>
      <el-dialog :visible.sync="filesDialogVisible" title="附件查看" width="80%">
        <div v-if="filesDialogVisible">
          <lims-table :tableData="tableDataFile" :column="columnFile" @pagination="paginationFile" height="500px"
            key="tableDataFile" :page="pageFile" :tableLoading="tableLoadingFile"></lims-table>
          <lims-table :tableData="tableDataFile" :column="columnFile" @pagination="paginationFile" :height="100"
                      key="tableDataFile" :page="pageFile" :tableLoading="tableLoadingFile"></lims-table>
        </div>
      </el-dialog>
      <!--      撤销&撤销审核-->
      <el-dialog :title="deleteTilte" :visible.sync="deleteDialogVisible" width="80%">
        <div v-if="deleteDialogVisible" style="height: 70vh;overflow-y: auto;">
          <lims-table :tableData="componentDataDelete" :column="columnDelete" :isSelection="true"
            :handleSelectionChange="selectDelete" @pagination="paginationDelete" height="500px"
            key="componentDataDelete" :page="pageDelete" :tableLoading="tableLoadingDelete"></lims-table>
        </div>
        <lims-table
          v-if="deleteDialogVisible"
          :tableData="componentDataDelete"
          :column="columnDelete"
          :isSelection="deleteTilte==='撤销'"
          :handleSelectionChange="selectDelete"
          @pagination="paginationDelete"
          :height="150"
          key="componentDataDelete"
          :page="pageDelete"
          :tableLoading="tableLoadingDelete">
        </lims-table>
        <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>
@@ -180,10 +206,11 @@
      <div v-loading="loadPint" style="width:100%;height: 400px;overflow-y: auto;">
        <div class="dia_body">
          <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" style="margin: 10px 5px;"
            @change="handleCheckAllChange">全选</el-checkbox>
                       @change="handleCheckAllChange">全选
          </el-checkbox>
          <el-checkbox-group v-model="checkIndexList" @change="changePrintCode()">
            <el-card v-for="(item, i) in qrData" :key="i + 'wwwww'" class="box-card"
              style="margin-bottom: 15px; font-size: 16px !important;">
                     style="margin-bottom: 15px; font-size: 16px !important;">
              <el-checkbox :key="i" :label="i" style="position: relative;top:-20px;left:5px"><br></el-checkbox>
              <div>
                <el-row style="font-size: 14px;padding-left: 20px;">
@@ -197,8 +224,10 @@
                  </div>
                  <div style="margin-left: 50px;width: 100%;">
                    <el-row>
                      <el-col style="font-weight: bold;font-size: 14px;"><span>样品编号:&nbsp; </span>{{ item.sampleCode
                        }}</el-col>
                      <el-col style="font-weight: bold;font-size: 14px;"><span>样品编号:&nbsp; </span>{{
                          item.sampleCode
                        }}
                      </el-col>
                    </el-row>
                    <el-row style="margin-top: 1px;font-size: 14px;">
                      <el-col style="font-weight: bold;"><span>委托单号:&nbsp; </span>{{ item.code }}</el-col>
@@ -218,8 +247,11 @@
                          <el-radio :label="0" style="font-weight: bold;margin-right: 7px;">待检</el-radio>
                          <el-radio :label="1" style="font-weight: bold;margin-right: 7px;">在检</el-radio>
                          <el-radio :label="2" style="font-weight: bold;margin-right: 7px;">已检</el-radio>
                        </el-radio-group><el-radio v-model="item.isLeave" :label="1" disabled
                          style="font-weight: bold;margin-top: 7px;">留样</el-radio></el-col>
                        </el-radio-group>
                        <el-radio v-model="item.isLeave" :label="1" disabled
                                  style="font-weight: bold;margin-top: 7px;">留样
                        </el-radio>
                      </el-col>
                    </el-row>
                  </div>
                </div>
@@ -236,10 +268,10 @@
      </span>
    </el-dialog>
    <div class="el-dialog__body"
      style="overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;display: none;">
         style="overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;display: none;">
      <div id="printMOrder" ref="printMOrder" class="printMOrder">
        <el-card v-for="(item, i) in checkDataList" :key="i + 'uuuuu'" class="box-card"
          style="font-size: 0.20cm !important;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;">
                 style="font-size: 0.20cm !important;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;">
          <div style="display: flex;">
            <div>
              <el-col :offset="2" :span="10">
@@ -249,7 +281,9 @@
            <div style="margin-left: 0.32cm;line-height: 0.22cm;">
              <el-row>
                <el-col class="single-line-ellipsis" style="font-size: 0.20cm;width: 4cm;"><span>样品编号:&nbsp; </span>{{
                  item.sampleCode }}</el-col>
                    item.sampleCode
                  }}
                </el-col>
              </el-row>
              <el-row style="font-size: 0.20cm;">
                <el-col><span>委托单号:&nbsp; </span>{{ item.code }}</el-col>
@@ -266,11 +300,13 @@
              <el-row style="margin-top: 0.01cm;font-size: 0.20cm;">
                <el-col style="display: flex;align-items: center;"><span>样品状态:&nbsp;
                  </span>
                  <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span v-if="item.insState != 0"
                      class="scor"></span>待检
                  <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span
                    v-if="item.insState != 0"
                    class="scor"></span>待检
                    <span v-if="item.insState == 1">√</span><span v-if="item.insState != 1" class="scor"></span>在检
                    <span v-if="item.insState == 2">√</span><span v-if="item.insState != 2" class="scor"></span>已检
                    <span v-if="item.isLeave == 1">√</span><span v-if="item.isLeave != 1" class="scor"></span>留样</span>
                    <span v-if="item.isLeave == 1">√</span><span v-if="item.isLeave != 1"
                                                                 class="scor"></span>留样</span>
                  <!-- <el-radio-group :value="item.insState" style="margin-top: 3px;margin-left: 1px;" disabled>
                  <el-radio :label="0" style="margin-right: 3px;font-size: 6px;">待检</el-radio>
                  <el-radio :label="1" style="margin-right: 3px;font-size: 6px;">在检</el-radio>
@@ -293,7 +329,7 @@
    </el-dialog>
    <!--标签打印弹框-->
    <print-dialog v-if="printDialog" ref="printDialog" :printDialog="printDialog"
      @closePrintDialog="closePrintDialog"></print-dialog>
                  @closePrintDialog="closePrintDialog"></print-dialog>
    <!--添加遗漏检验项弹框-->
    <add-inspection-dia v-if="addInspectionDia" ref="addInspectionDia"></add-inspection-dia>
    <!--修改样品型号弹框-->
@@ -303,7 +339,7 @@
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"
                max-height="400px" tooltip-effect="dark">
        <el-table-column align="center" label="序号" type="index" width="65"></el-table-column>
        <el-table-column align="center" label="样品名称" min-width="100" prop="sample"> </el-table-column>
        <el-table-column align="center" label="样品名称" min-width="100" prop="sample"></el-table-column>
        <el-table-column align="center" label="样品编号" min-width="100" prop="sampleCode"></el-table-column>
        <el-table-column align="center" label="样品型号" min-width="60" prop="model">
          <template slot-scope="scope">
@@ -334,9 +370,10 @@
  updateInspected,
  updateOrderEntrustCode, updateSampleModel, updateStatus, upInsOrder, upPlanUser2
} from "@/api/business/productOrder";
import { selectUserCondition } from "@/api/performance/class";
import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
import {selectUserCondition} from "@/api/performance/class";
import {downFile, getFileList, selectSampleAndProductByOrderId} from "@/api/business/rawMaterialOrder";
import {mapGetters} from "vuex";
export default {
  name: 'ProductOrder',
  components: {
@@ -363,7 +400,7 @@
          dataType: "link",
          linkMethod: "changeEntrustCode",
        },
        { label: '委托单位', prop: 'company' },
        {label: '委托单位', prop: 'company'},
        {
          label: "样品名称",
          prop: "sampleName",
@@ -378,8 +415,8 @@
          dataType: "link",
          linkMethod: "editSampleModel",
        },
        { label: '样品数量', prop: 'sampleNum' },
        { label: '检验人', prop: 'testingName' },
        {label: '样品数量', prop: 'sampleNum'},
        {label: '检验人', prop: 'testingName'},
        {
          dataType: 'tag',
          label: '紧急程度',
@@ -403,9 +440,9 @@
            }
          }
        },
        { label: '备注', prop: 'remark' },
        { label: '检验进度%', prop: 'insProgress' },
        { label: '约定时间', prop: 'appointed' },
        {label: '备注', prop: 'remark'},
        {label: '检验进度%', prop: 'insProgress'},
        {label: '约定时间', prop: 'appointed'},
        {
          dataType: 'tag',
          label: '检验结果',
@@ -433,10 +470,10 @@
            }
          }
        },
        { label: '下单时间', prop: 'createTime' },
        { label: '下发时间', prop: 'sendTime' },
        { label: '退回理由', prop: 'tell' },
        { label: '委托人', prop: 'prepareUser' },
        {label: '下单时间', prop: 'createTime'},
        {label: '下发时间', prop: 'sendTime'},
        {label: '退回理由', prop: 'tell'},
        {label: '委托人', prop: 'prepareUser'},
        {
          dataType: 'action',
          fixed: 'right',
@@ -501,10 +538,10 @@
                this.handlEquash(row);
              },
              disabled: (row, index) => {
                return row.state != 1 && row.state != 0
                return (row.state !== 1 && row.state !== 0) || row.isRevocation !== 0
              },
              showHide: (row) => {
                return this.tabIndex === 0 || this.tabIndex === 1
                return (this.tabIndex === 0 || this.tabIndex === 1)
              }
            },
            {
@@ -514,7 +551,7 @@
                this.handlEquashCheck(row);
              },
              disabled: (row, index) => {
                return (row.state != 1 && row.state != 0) || (this.tabIndex != 1) || row.isRevocation != 1
                return (row.state !== 1 && row.state !== 0) || (this.tabIndex !== 1) || row.isRevocation !== 1
              },
              showHide: (row) => {
                return this.tabIndex === 1
@@ -591,17 +628,17 @@
        current: 1
      },
      tableDataLookColumn: [
        { label: '样品编号', prop: 'sampleCode', width: '160px' },
        { label: '样品名称', prop: 'sample' },
        { label: '检验项分类', prop: 'inspectionItemClass' },
        { label: '检验项', prop: 'inspectionItem' },
        { label: '检验子项', prop: 'inspectionItemSubclass' },
        { label: '单位', prop: 'unit' },
        { label: '样品型号', prop: 'model' },
        { label: '条件', prop: 'radius' },
        { label: '电缆标识', prop: 'cableTag' },
        { label: '试验要求', prop: 'tell' },
        { label: '检验结果', prop: 'lastValue' },
        {label: '样品编号', prop: 'sampleCode', width: '160px'},
        {label: '样品名称', prop: 'sample'},
        {label: '检验项分类', prop: 'inspectionItemClass'},
        {label: '检验项', prop: 'inspectionItem'},
        {label: '检验子项', prop: 'inspectionItemSubclass'},
        {label: '单位', prop: 'unit'},
        {label: '样品型号', prop: 'model'},
        {label: '条件', prop: 'radius'},
        {label: '电缆标识', prop: 'cableTag'},
        {label: '试验要求', prop: 'tell'},
        {label: '检验结果', prop: 'lastValue'},
        {
          dataType: 'tag',
          label: '结果判定',
@@ -657,9 +694,9 @@
            }
          }
        },
        { label: '附件名称', prop: 'fileName' },
        { label: '上传人', prop: 'name' },
        { label: '上传时间', prop: 'createTime' },
        {label: '附件名称', prop: 'fileName'},
        {label: '上传人', prop: 'name'},
        {label: '上传时间', prop: 'createTime'},
        {
          dataType: 'action',
          fixed: 'right',
@@ -701,17 +738,17 @@
      componentDataDelete: [],
      tableLoadingDelete: false,
      columnDelete: [
        { label: '样品编号', prop: 'sampleCode', width: '160px' },
        { label: '检验项分类', prop: 'inspectionItemClass' },
        { label: '检验项', prop: 'inspectionItem' },
        { label: '检验项子类', prop: 'inspectionItemSubclass' },
        { label: '样品分类', prop: 'sampleType' },
        { label: '样品', prop: 'sample' },
        { label: '型号', prop: 'model' },
        { label: '线芯', prop: 'cableTag' },
        { label: '试验室', prop: 'sonLaboratory' },
        { label: '要求值', prop: 'ask' },
        { label: '要求描述', prop: 'tell' },
        {label: '样品编号', prop: 'sampleCode', width: '160px'},
        {label: '检验项分类', prop: 'inspectionItemClass'},
        {label: '检验项', prop: 'inspectionItem'},
        {label: '检验项子类', prop: 'inspectionItemSubclass'},
        {label: '样品分类', prop: 'sampleType'},
        {label: '样品', prop: 'sample'},
        {label: '型号', prop: 'model'},
        {label: '线芯', prop: 'cableTag'},
        {label: '试验室', prop: 'sonLaboratory'},
        {label: '要求值', prop: 'ask'},
        {label: '要求描述', prop: 'tell'},
      ],
      pageDelete: {
        total: 0,
@@ -807,9 +844,9 @@
          this.entity.orderType = '抽检'
        }
      }
      const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
      const params = {...this.entity, state: this.tabList[this.tabIndex].value}
      this.isLoading = true; // 开始加载
      selectInsOrderParameter({...this.page,...params}).then(res => {
      selectInsOrderParameter({...this.page, ...params}).then(res => {
        this.isLoading = false; // 结束加载
        this.upIndex++
        this.tableLoading = false
@@ -835,7 +872,7 @@
        return
      }
      this.entrustCodeVisible = true
      this.entrustCodeInfo = { ...row }
      this.entrustCodeInfo = {...row}
    },
    // 提交修改委托编号
    submitCode() {
@@ -931,10 +968,10 @@
      if (this.multipleSelection.length > 0) {
        params.ids = this.multipleSelection.map(item => item.id).join(',');
      } else {
        params = { ...this.entity, state: this.tabList[this.tabIndex].value }
        params = {...this.entity, state: this.tabList[this.tabIndex].value}
      }
      rawAllInsOrderExport({ ...params }).then(res => {
        const blob = new Blob([res], { type: 'application/octet-stream' });
      rawAllInsOrderExport({...params}).then(res => {
        const blob = new Blob([res], {type: 'application/octet-stream'});
        this.$download.saveAs(blob, '委托检测信息导出.xlsx');
      }).catch(err => {
        console.log('err---', err);
@@ -958,7 +995,7 @@
    },
    // 获取指派人员下拉列表
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then(res => {
      selectUserCondition({type: 1}).then(res => {
        let data = []
        res.data.forEach(a => {
          data.push({
@@ -1007,7 +1044,7 @@
    },
    // 修改样品型号
    editSampleModel (row) {
    editSampleModel(row) {
      if (this.tabIndex !== 1) {
        return
      }
@@ -1021,7 +1058,7 @@
      })
    },
    // 提交样品型号修改
    submitList () {
    submitList() {
      this.submitListLoad = true
      updateSampleModel(this.sampleList).then(res => {
        this.submitListLoad = false
@@ -1041,7 +1078,7 @@
    // 查询数据查看列表数据
    getDataTableList(row) {
      this.tableDataLookTableLoading = true
      selectSampleAndProductByOrderId({ id: row.id, ...this.tableDataLookPage }).then(res => {
      selectSampleAndProductByOrderId({id: row.id, ...this.tableDataLookPage}).then(res => {
        this.tableDataLookTableLoading = false
        if (res.code === 200) {
          this.tableDataLook = res.data.records
@@ -1055,7 +1092,7 @@
      this.tableDataLookPage.size = page.limit
      this.getDataTableList(this.currentRow)
    },
    closeDia () {
    closeDia() {
      this.tableDataLookPage = {
        total: 0,
        size: 20,
@@ -1070,7 +1107,7 @@
    },
    getFileList(row) {
      this.tableLoadingFile = true
      getFileList({ insOrderId: row.id }).then(res => {
      getFileList({insOrderId: row.id}).then(res => {
        this.tableLoadingFile = false
        if (res.code === 200) {
          this.tableDataFile = res.data.records
@@ -1097,8 +1134,8 @@
    // 下载报告
    download(row) {
      let url = row.urlS ? row.urlS : row.url;
      if(url){
        url = url.split('.')[0]+'.pdf'
      if (url) {
        url = url.split('.')[0] + '.pdf'
        const link = document.createElement('a');
        link.href = this.javaApi + url;
        link.target = '_blank';
@@ -1108,7 +1145,7 @@
    },
    // 撤销
    handlEquash(row) {
      if (this.tabIndex != 1) {
      if (this.tabIndex !== 1) {
        this.quashDialogVisible = true;
        this.insOrderRow = row
      } else {
@@ -1121,7 +1158,11 @@
    },
    getDeleteList() {
      this.tableLoadingDelete = true
      selectNoProducts({ orderId: this.orderId, revocationInsProductIds: this.revocationInsProductIds, ...this.pageDelete }).then(res => {
      selectNoProducts({
        orderId: this.orderId,
        revocationInsProductIds: this.revocationInsProductIds,
        ...this.pageDelete
      }).then(res => {
        this.tableLoadingDelete = false
        this.componentDataDelete = res.data.records
        this.pageDelete.total = res.data.total
@@ -1137,14 +1178,14 @@
      this.deleteList = arr;
    },
    submitDelete() {
      if (this.deleteTilte == '撤销') {
        if (this.deleteList.length == 0) {
          this.$message.error('请选择要撤销的项')
      if (this.deleteTilte === '撤销') {
        if (this.deleteList.length === 0) {
          this.$message.error('请选择要撤销的检验项')
          return
        }
        let ids = this.deleteList.map(m => m.id).join(',')
        let ids = this.deleteList.map(m => m.id)
        this.printLoading = true;
        updateInspected({ ids: ids, orderId: this.orderId }).then(res => {
        updateInspected({ids: ids, orderId: this.orderId}).then(res => {
          if (res.code === 200) {
            this.printLoading = false
            this.deleteDialogVisible = false
@@ -1153,7 +1194,7 @@
          }
        })
      } else {
        checkUpdate({ orderId: this.orderId, state: 1 }).then(res => {
        checkUpdate({orderId: this.orderId, state: 1}).then(res => {
          if (res.code === 200) {
            this.printLoading = false
            this.deleteDialogVisible = false
@@ -1167,13 +1208,16 @@
      this.orderId = row.id
      this.revocationInsProductIds = row.revocationInsProductIds
      this.deleteTilte = '撤销审核'
      this.deleteDialogVisible = true;
      this.getDeleteList()
      this.$nextTick(() => {
        this.deleteDialogVisible = true;
      })
    },
    handleNo() {
      if (this.deleteTilte == '撤销') {
        this.deleteDialogVisible = false
      } else {
        checkUpdate({ orderId: this.orderId, state: 0 }).then(res => {
        checkUpdate({orderId: this.orderId, state: 0}).then(res => {
          if (res.code === 200) {
            this.printLoading = false
            this.deleteDialogVisible = false
@@ -1242,7 +1286,7 @@
    submitForm() {
      this.upLoad = true;
      if (this.tabIndex == 1) {
        updateInspected({ id: this.insOrderRow.id }).then(res => {
        updateInspected({id: this.insOrderRow.id}).then(res => {
          if (res.code === 200) {
            this.upLoad = false
            this.quashDialogVisible = false
@@ -1251,7 +1295,7 @@
          }
        })
      } else {
        updateStatus({ id: this.insOrderRow.id }).then(res => {
        updateStatus({id: this.insOrderRow.id}).then(res => {
          if (res.code === 200) {
            this.upLoad = false
            this.quashDialogVisible = false
@@ -1269,11 +1313,11 @@
    },
    // 下单
    playOrder(num) {
      this.$router.push({ path: "/productOrder/addOrder", query: { examine: 0, active: num, tabIndex: this.tabIndex } });
      this.$router.push({path: "/productOrder/addOrder", query: {examine: 0, active: num, tabIndex: this.tabIndex}});
    },
    // 审核
    handleVerify(row) {
      this.$router.push({ path: "/productOrder/addView", query: { examine: 1, active: 3, currentId: row.id } });
      this.$router.push({path: "/productOrder/addView", query: {examine: 1, active: 3, currentId: row.id}});
    },
    handleTab(i) {
      this.tabIndex = i;
@@ -1331,13 +1375,14 @@
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        delInsOrder({ insOrderId: row.id }).then(res => {
        delInsOrder({insOrderId: row.id}).then(res => {
          this.$message.success('删除成功')
          this.refreshTable()
        }).catch(e => {
          this.$message.error('删除失败')
        })
      }).catch(() => { })
      }).catch(() => {
      })
    }
  }
}
@@ -1379,11 +1424,11 @@
  color: #3A7BFA;
}
.box-card>>>.el-radio__inner {
.box-card >>> .el-radio__inner {
  border-radius: 2px !important;
}
.box-card>>>.el-radio__input.is-checked .el-radio__inner::after {
.box-card >>> .el-radio__input.is-checked .el-radio__inner::after {
  content: '';
  width: 8px;
  height: 3px;
@@ -1400,15 +1445,15 @@
  background: none;
}
>>>.el-radio__label {
>>> .el-radio__label {
  color: #000 !important;
}
.el-dialog__body>>>.el-radio__label {
.el-dialog__body >>> .el-radio__label {
  font-size: 8px;
}
.el-dialog__body>>>.el-radio__input.is-checked .el-radio__inner::after {
.el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after {
  content: '';
  width: 4px;
  height: 3px;
@@ -1425,36 +1470,36 @@
  background: none;
}
>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
>>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
  background: #3A7BFA;
}
.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
  background: transparent;
}
.el-dialog__body>>>.el-radio__inner {
.el-dialog__body >>> .el-radio__inner {
  width: 8px !important;
  height: 8px !important;
}
.el-dialog__body>>>.el-radio__label {
.el-dialog__body >>> .el-radio__label {
  padding-left: 2px !important;
}
.el-dialog__body>>>.el-card__body {
.el-dialog__body >>> .el-card__body {
  padding: 0 !important;
}
.el-dialog__body>>>.el-card {
.el-dialog__body >>> .el-card {
  border: none;
}
.el-dialog__body>>>.el-radio__input.is-disabled .el-radio__inner {
.el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner {
  border-color: #000 !important;
}
.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
  border: none !important;
}
src/views/business/unpass/index-manage.vue
@@ -221,7 +221,8 @@
        { label: '批号', prop: 'updateBatchNo',width:'160' },
        { label: '零件号', prop: 'partNo',width:'140' },
        { label: '零件描述', prop: 'partDesc' },
        { label: '供应商名称', prop: 'supplierName' },
        { label: '供应商编码', prop: 'supplierId',width:'140' },
        { label: '供应商名称', prop: 'supplierName',width:'140' },
        { label: '不合格描述', prop: 'unqualifiedDesc',width:'160' },
        {
          dataType: 'tag',
@@ -372,8 +373,8 @@
        { label: '物料名称', prop: 'materialName',width: "160px" },
        { label: '生产批次', prop: 'productionBatch',width: "160px" },
        { label: '到货数量', prop: 'cargoQuantity' },
        { label: '规格型号', prop: 'specsModels' },
        { label: '报检日期', prop: 'inspectTime' },
        { label: '规格型号', prop: 'specsModels',width:'140' },
        { label: '报检日期', prop: 'inspectTime',width:'120' },
        { label: '状态', prop: 'statusDB' },
        { label: '反馈人', prop: 'feedbackUser' },
        { label: '要检验的采购数量', prop: 'qtyToInspect',width: "140px" },
@@ -402,7 +403,8 @@
            }
          },
        },
        { label: '供应商名称', prop: 'supplierName' },
        { label: '供应商编码', prop: 'supplierId',width:'140' },
        { label: '供应商名称', prop: 'supplierName',width:'140' },
        {
          label: "不合格归属",
          prop: "offGradeAscription",
src/views/performance/attendance/index.vue
@@ -220,7 +220,7 @@
          <label>统计维度:</label>
        </el-col>
        <el-col :span="20">
            <el-radio-group v-model="reportType" size="mini" disabled>
            <el-radio-group @change="()=>{this.reportDate = null}" v-model="reportType" size="mini">
              <el-radio label="YEAR">年度</el-radio>
              <el-radio label="MONTH">月度</el-radio>
            </el-radio-group>
@@ -232,16 +232,24 @@
        </el-col>
        <el-col :span="20">
          <el-date-picker
            v-if="reportType==='YEAR'"
            size="small"
            v-model="reportDateRange"
            v-model="reportDate"
            style="width:100%"
            @change="changeReportDateRange"
            type="datetimerange"
            value-format="yyyy-MM-dd HH:mm:ss"
            :default-time="['00:00:00','23:59:59']"
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期">
            type="year"
            format="yyyy"
            value-format="yyyy"
            placeholder="请选择年份">
          </el-date-picker>
          <el-date-picker
            v-if="reportType==='MONTH'"
            size="small"
            v-model="reportDate"
            style="width:100%"
            type="month"
            format="yyyy-MM"
            value-format="yyyy-MM"
            placeholder="请选择月份">
          </el-date-picker>
        </el-col>
      </el-row>
@@ -274,7 +282,7 @@
  },
  data() {
    return {
      reportDateRange:[],
      reportDate: null,
      reportType:"MONTH",
      attendanceRecordVisible:false,
      syncDateRange:[],
@@ -358,31 +366,16 @@
    window.removeEventListener("resize",this.resizeHandler)
  },
  methods: {
    changeReportDateRange(val){
      //判断时间区间是否超过一个月
      if(val && val.length===2){
        const flag = isOverOneMonth(val[0],val[1]);
        this.reportType = flag?'YEAR':'MONTH'
      }
    },
    openAttendanceRecordDialog (){
      this.reportDateRange = getTimeRange()
      this.$nextTick(()=>{
        this.attendanceRecordVisible = true
      })
      this.attendanceRecordVisible = true
    },
    //导出考勤记录
    exportStaffAttendanceRecords(){
      this.exportLoading = true
      let params = {
        attendanceReportType:this.reportType,
      }
      if (this.reportDateRange && this.reportDateRange.length === 2) {
        params.startDate = this.reportDateRange[0];
        params.endDate = this.reportDateRange[1];
      } else {
        params.startDate = "";
        params.endDate = "";
        reportDate: this.reportDate,
        keyword: this.queryParams.keyword
      }
      exportStaffAttendanceRecords({...params}).then(res=>{
        transformExcel(res, "中天耐丝质量考勤汇总.xlsx")