spring
2025-02-20 ff0d18ecf8781e9f75a83e305142a753c3a7098d
解决页面缓存问题
已修改8个文件
1225 ■■■■ 文件已修改
src/components/Table/lims-table.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/CNAS/process/method/standardMethod/index.vue 141 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/inspectionTask/inspection.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/performance/class/index.vue 491 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/performance/manHour/index.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/standard/model/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/standard/standardLibrary/index.vue 564 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/lims-table.vue
@@ -268,7 +268,7 @@
      row.forEach((a) => {
        count += a.name.length;
      });
      return count * 15 + 40 + "px";
      return count * 15 + 60 + "px";
    },
    iconFn(row) {
      if (row.name === "编辑" || row.name === "修改") {
src/views/CNAS/process/method/standardMethod/index.vue
@@ -37,157 +37,70 @@
      <div class="search_thing">
        <div class="search_label">标准编号:</div>
        <div class="search_input">
          <el-input
            size="small"
            placeholder="请输入"
            clearable
            v-model="queryParams.code"
            @keyup.enter.native="refreshTable()"
          ></el-input>
          <el-input size="small" placeholder="请输入" clearable v-model="queryParams.code"
            @keyup.enter.native="refreshTable()"></el-input>
        </div>
      </div>
      <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>
          <el-input size="small" placeholder="请输入" clearable v-model="queryParams.name"
            @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
        >
        <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
      </div>
      <div class="btn">
        <el-button
          size="small"
          @click="$refs.ValueTable.openUpload()"
          v-if="inPower"
        >
        <el-button size="small" @click="$refs.ValueTable.openUpload()" v-if="inPower">
          <i class="el-icon-upload2" style="color: #3a7bfa"></i>
          <span style="color: #3a7bfa">导入</span></el-button
        >
        <el-button size="small" type="primary" @click="openAdd" v-if="addPower"
          >新增</el-button
        >
          <span style="color: #3a7bfa">导入</span></el-button>
        <el-button size="small" type="primary" @click="openAdd" v-if="addPower">新增</el-button>
      </div>
    </div>
    <lims-table
      :tableData="tableData"
      :column="column"
      :page="page"
      :tableLoading="tableLoading"
      :height="'calc(100vh - 250px)'"
      style="padding: 20px; padding-top: 0"
      @pagination="pagination"
    ></lims-table>
    <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
      :height="'calc(100vh - 250px)'" style="padding: 20px; padding-top: 0" @pagination="pagination"></lims-table>
    <!-- 新增/编辑 -->
    <el-dialog :title="title" :visible.sync="addDlog" 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="120px">
        <el-form-item label="领域" prop="field">
          <el-input
            size="small"
            placeholder="请输入"
            clearable
            v-model="addForm.field"
          ></el-input>
          <el-input size="small" placeholder="请输入" clearable v-model="addForm.field"></el-input>
        </el-form-item>
        <el-form-item label="标准编号" prop="code">
          <el-input
            size="small"
            placeholder="请输入"
            clearable
            v-model="addForm.code"
          >
          <el-input size="small" placeholder="请输入" clearable v-model="addForm.code">
          </el-input>
        </el-form-item>
        <el-form-item label="检验对象" prop="structureTestObjectId">
          <el-cascader
            size="small"
            :options="tandardTree"
            v-model="addForm.structureTestObjectId"
            collapse-tags
            :props="{ multiple: true, checkStrictly: true }"
            clearable
            style="width: 100%"
          ></el-cascader>
          <el-cascader size="small" :options="tandardTree" v-model="addForm.structureTestObjectId" collapse-tags
            :props="{ multiple: true, checkStrictly: true }" clearable style="width: 100%"></el-cascader>
        </el-form-item>
        <el-form-item label="标准描述" prop="name">
          <el-input
            size="small"
            placeholder="请输入"
            clearable
            v-model="addForm.name"
          >
          <el-input size="small" placeholder="请输入" clearable v-model="addForm.name">
          </el-input>
        </el-form-item>
        <el-form-item label="标准描述EN" prop="nameEn">
          <el-input
            size="small"
            placeholder="请输入"
            clearable
            v-model="addForm.nameEn"
          >
          <el-input size="small" placeholder="请输入" clearable v-model="addForm.nameEn">
          </el-input>
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input
            size="small"
            placeholder="请输入"
            clearable
            v-model="addForm.remark"
          >
          <el-input size="small" placeholder="请输入" clearable v-model="addForm.remark">
          </el-input>
        </el-form-item>
        <el-form-item label="资质" prop="qualificationId">
          <el-select
            v-model="addForm.qualificationId"
            size="small"
            clearable
            placeholder="请选择"
            style="width: 100%"
          >
            <el-option
              v-for="item in qualificationList"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
          <el-select v-model="addForm.qualificationId" size="small" clearable placeholder="请选择" style="width: 100%">
            <el-option v-for="item in qualificationList" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否产品标准" prop="isProduct">
          <el-select
            v-model="addForm.isProduct"
            size="small"
            clearable
            placeholder="请选择"
            style="width: 100%"
          >
          <el-select v-model="addForm.isProduct" size="small" clearable placeholder="请选择" style="width: 100%">
            <el-option label="否" :value="0"> </el-option>
            <el-option label="是" :value="1"> </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否启用" prop="isUse">
          <el-select
            v-model="addForm.isUse"
            size="small"
            clearable
            placeholder="请选择"
            style="width: 100%"
          >
          <el-select v-model="addForm.isUse" size="small" clearable placeholder="请选择" style="width: 100%">
            <el-option label="否" :value="0"> </el-option>
            <el-option label="是" :value="1"> </el-option>
          </el-select>
@@ -195,12 +108,7 @@
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="addDlog = false">取 消</el-button>
        <el-button
          :loading="addLoading"
          type="primary"
          @click="submitProduct('addForm')"
          >确 认</el-button
        >
        <el-button :loading="addLoading" type="primary" @click="submitProduct('addForm')">确 认</el-button>
      </span>
    </el-dialog>
  </div>
@@ -216,6 +124,7 @@
  upStandardMethod,
} from "@/api/cnas/process/method/standardMethod";
export default {
  name: 'StandardMethod',
  components: {
    limsTable,
  },
@@ -481,7 +390,7 @@
            this.getList();
          });
        })
        .catch(() => {});
        .catch(() => { });
    },
  },
};
src/views/business/inspectionTask/index.vue
@@ -254,6 +254,7 @@
} from "@/api/business/inspectionTask.js";
import { mapGetters } from "vuex";
export default {
  name: 'InspectionTask',
  components: {
    EditInspectionItem,
    limsTable,
src/views/business/inspectionTask/inspection.vue
@@ -547,6 +547,7 @@
import html2canvas from "html2canvas";
import { mapGetters } from "vuex";
export default {
  name: 'inspection',
  components: {
    PurchaseVerification,
    AddUnPass,
src/views/performance/class/index.vue
@@ -4,123 +4,57 @@
      <div class="search_thing">
        <div class="search_label">选择时间:</div>
        <div class="search_input">
          <el-date-picker
            v-model="query.year"
            type="year"
            size="small"
            format="yyyy"
            placeholder="选择年"
            @change="refreshTable()"
            style="width: 140px"
            :clearable="false"
          >
          <el-date-picker v-model="query.year" type="year" size="small" format="yyyy" placeholder="选择年"
            @change="refreshTable()" style="width: 140px" :clearable="false">
          </el-date-picker>
          <el-select
            v-model="query.month"
            clearable
            placeholder="选择月"
            style="width: 140px; margin-left: 16px"
            size="small"
            @change="refreshTable()"
          >
            <el-option
              v-for="item in monthOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
          <el-select v-model="query.month" clearable placeholder="选择月" style="width: 140px; margin-left: 16px"
            size="small" @change="refreshTable()">
            <el-option v-for="item in monthOptions" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
          </el-select>
          <el-input
            v-model="query.userName"
            placeholder="请输入人员名称"
            size="small"
            style="width: 140px; margin: 0 16px"
            clearable
            @keyup.enter.native="refreshTable()"
          ></el-input>
          <el-select
            v-model="query.laboratory"
            placeholder="请选择实验室"
            style="width: 140px"
            size="small"
            clearable
            @change="refreshTable()"
          >
            <el-option
              v-for="item in laboratory"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
          <el-input v-model="query.userName" placeholder="请输入人员名称" size="small" style="width: 140px; margin: 0 16px"
            clearable @keyup.enter.native="refreshTable()"></el-input>
          <el-select v-model="query.laboratory" placeholder="请选择实验室" style="width: 140px" size="small" clearable
            @change="refreshTable()">
            <el-option v-for="item in laboratory" :key="item.value" :label="item.label" :value="item.value">
            </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
        >
        <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
      </div>
      <div class="search_thing btns" style="padding-left: 30px">
        <el-button
          size="small"
          type="primary"
          v-if="checkPermi(['performance:class:time'])"
          @click="configTime"
          >时间配置</el-button
        >
        <el-button
          size="small"
          type="primary"
          v-if="checkPermi(['performance:class:down'])"
          @click="handleDown"
          :loading="downLoading"
          >导 出</el-button
        >
        <el-button
          size="small"
          type="primary"
          @click="schedulingVisible = true"
          v-if="checkPermi(['performance:class:add'])"
          >排 班</el-button
        >
        <el-button size="small" type="primary" v-if="checkPermi(['performance:class:time'])"
          @click="configTime">时间配置</el-button>
        <el-button size="small" type="primary" v-if="checkPermi(['performance:class:down'])" @click="handleDown"
          :loading="downLoading">导 出</el-button>
        <el-button size="small" type="primary" @click="schedulingVisible = true"
          v-if="checkPermi(['performance:class:add'])">排 班</el-button>
      </div>
    </div>
    <div class="center" v-loading="pageLoading">
      <div class="clearfix" style="width: 100%" v-show="query.month">
        <div class="fixed-left">
          <div
            class="content-title"
            style="padding-left: 16px; box-sizing: border-box"
          >
          <div class="content-title" style="padding-left: 16px; box-sizing: border-box">
            人员名称
          </div>
          <div
            class="content-user"
            :class="{ hoverType: currentUserIndex == index }"
            v-for="(item, index) in list"
            :key="'e' + index"
            v-on:mouseenter="onMouseEnter(index)"
            v-on:mouseleave="currentUserIndex = null"
          >
          <div class="content-user" :class="{ hoverType: currentUserIndex == index }" v-for="(item, index) in list"
            :key="'e' + index" v-on:mouseenter="onMouseEnter(index)" v-on:mouseleave="currentUserIndex = null">
            <div class="user-pic">
              {{ item.name ? item.name.charAt(0) : "" }}
            </div>
            <div class="user-info">
              <p
                style="
              <p style="
                  font-size: 14px;
                  color: #3a7bfa;
                  line-height: 24px;
                  margin: 0;
                "
              >
                ">
                {{ item.name }}
              </p>
              <p
                style="
              <p style="
                  color: #999999;
                  font-size: 12px;
                  transform: scale(0.8) translateX(-20px);
@@ -128,102 +62,60 @@
                  width: 150px;
                  overflow-x: show;
                  margin: 0;
                "
              >
                ">
                早:{{ item.day0 }},中:{{ item.day1 }},夜:{{ item.day2 }},休:{{
                  item.day3
                }},假:{{ item.day4 }},差:{{ item.day6 }}
              </p>
              <p style="margin-top: 4px; margin: 0">
                <span
                  style="
                <span style="
                    color: #999999;
                    font-size: 12px;
                    display: inline-block;
                    transform: scale(0.8) translateX(-10px);
                  "
                  >合计出勤: </span
                ><span style="font-size: 16px; color: #ff4902"
                  >{{
                  ">合计出勤: </span><span style="font-size: 16px; color: #ff4902">{{
                    query.month
                      ? item.monthlyAttendance.totalAttendance
                      : item.sidebarAnnualAttendance.totalAttendance
                  }}天</span
                >
                  }}天</span>
              </p>
            </div>
          </div>
        </div>
        <div class="scroll-right">
          <div class="content">
            <div
              class="content-title content-title-right"
              style="border-bottom: 0"
            >
              <div
                class="content-title-item"
                v-for="(item, index) in weeks"
                :key="'b' + index"
              >
                <span
                  class="month"
                  style="position: absolute; top: 0px"
                  v-if="item.week == '周日'"
                  >{{ item.weekNum }}周</span
                >
            <div class="content-title content-title-right" style="border-bottom: 0">
              <div class="content-title-item" v-for="(item, index) in weeks" :key="'b' + index">
                <span class="month" style="position: absolute; top: 0px" v-if="item.week == '周日'">{{ item.weekNum
                  }}周</span>
                <p style="height: 26px; position: absolute; bottom: 12px">
                  <span class="day">{{ item.day }}</span>
                  <span class="week">{{ item.week.charAt(1) }}</span>
                </p>
              </div>
            </div>
            <div
              class="content-body"
              v-for="(item, index) in list"
              :key="'c' + index"
              v-on:mouseenter="onMouseEnter(index)"
              v-on:mouseleave="currentUserIndex = null"
            >
              <div
                class="content-body-item"
                v-for="(m, i) in item.list"
                :key="'d' + i"
                :class="{ hoverType: currentUserIndex == index }"
              >
                <el-dropdown
                  trigger="click"
                  placement="bottom"
                  @command="(e) => handleCommand(e, m)"
            <div class="content-body" v-for="(item, index) in list" :key="'c' + index"
              v-on:mouseenter="onMouseEnter(index)" v-on:mouseleave="currentUserIndex = null">
              <div class="content-body-item" v-for="(m, i) in item.list" :key="'d' + i"
                :class="{ hoverType: currentUserIndex == index }">
                <el-dropdown trigger="click" placement="bottom" @command="(e) => handleCommand(e, m)"
                  :disabled="!checkPermi(['performance:class:edit'])"
                  style="width: 100%; height: 100%; cursor: pointer"
                >
                  <div
                    class="work-box"
                    :class="{
                      type0: m.shift === '0',
                      type1: m.shift === '1',
                      type2: m.shift === '2',
                      type3: m.shift === '3',
                      type4: m.shift === '4',
                      type5: m.shift === '5',
                      type6: m.shift === '6',
                    }"
                  >
                    <span
                      style="cursor: pointer"
                      :style="`opacity: ${
                        getShiftByDic(m.shift) == '无' ? 0 : 1
                      };`"
                      >{{ getShiftByDic(m.shift) }}</span
                    >
                  style="width: 100%; height: 100%; cursor: pointer">
                  <div class="work-box" :class="{
                    type0: m.shift === '0',
                    type1: m.shift === '1',
                    type2: m.shift === '2',
                    type3: m.shift === '3',
                    type4: m.shift === '4',
                    type5: m.shift === '5',
                    type6: m.shift === '6',
                  }">
                    <span style="cursor: pointer" :style="`opacity: ${getShiftByDic(m.shift) == '无' ? 0 : 1
                      };`">{{ getShiftByDic(m.shift) }}</span>
                  </div>
                  <el-dropdown-menu slot="dropdown">
                    <el-dropdown-item
                      v-for="(n, j) in classType"
                      :key="'h' + j"
                      :command="n.dictValue"
                      >{{ n.dictLabel }}</el-dropdown-item
                    >
                    <el-dropdown-item v-for="(n, j) in classType" :key="'h' + j" :command="n.dictValue">{{ n.dictLabel
                      }}</el-dropdown-item>
                  </el-dropdown-menu>
                </el-dropdown>
              </div>
@@ -231,42 +123,26 @@
          </div>
        </div>
      </div>
      <div
        class="clearfix year-table"
        style="width: 100%"
        v-show="!query.month"
      >
      <div class="clearfix year-table" style="width: 100%" v-show="!query.month">
        <div class="fixed-left">
          <div
            class="content-title"
            style="padding-left: 16px; box-sizing: border-box"
          >
          <div class="content-title" style="padding-left: 16px; box-sizing: border-box">
            人员名称
          </div>
          <div
            class="content-user"
            :class="{ hoverType: currentUserIndex == index }"
            v-for="(item, index) in yearList"
            :key="'e' + index"
            v-on:mouseenter="onMouseEnter(index)"
            v-on:mouseleave="currentUserIndex = null"
          >
          <div class="content-user" :class="{ hoverType: currentUserIndex == index }" v-for="(item, index) in yearList"
            :key="'e' + index" v-on:mouseenter="onMouseEnter(index)" v-on:mouseleave="currentUserIndex = null">
            <div class="user-pic">
              {{ item.name ? item.name.charAt(0) : "" }}
            </div>
            <div class="user-info">
              <p
                style="
              <p style="
                  font-size: 14px;
                  color: #3a7bfa;
                  line-height: 24px;
                  margin: 0;
                "
              >
                ">
                {{ item.name }}
              </p>
              <p
                style="
              <p style="
                  color: #999999;
                  font-size: 12px;
                  transform: scale(0.8) translateX(-20px);
@@ -274,24 +150,18 @@
                  width: 150px;
                  overflow-x: show;
                  margin: 0;
                "
              >
                ">
                早:{{ item.day0 }},中:{{ item.day1 }},夜:{{ item.day2 }},休:{{
                  item.day3
                }},假:{{ item.day4 }},差:{{ item.day6 }}
              </p>
              <p style="margin-top: 4px; margin: 0">
                <span
                  style="
                <span style="
                    color: #999999;
                    font-size: 12px;
                    display: inline-block;
                    transform: scale(0.8) translateX(-10px);
                  "
                  >合计出勤: </span
                ><span style="font-size: 16px; color: #ff4902"
                  >{{ item.work_time }}天</span
                >
                  ">合计出勤: </span><span style="font-size: 16px; color: #ff4902">{{ item.work_time }}天</span>
              </p>
            </div>
          </div>
@@ -299,36 +169,18 @@
        <div class="scroll-right">
          <div class="content">
            <div>
              <div
                class="content-title content-title-right"
                style="border-bottom: 0; height: 52px"
                :style="`display: grid;
                grid-template-columns: repeat(${monthList.length}, 1fr);`"
              >
                <div
                  class="content-title-item"
                  v-for="(item, index) in monthList"
                  :key="'b' + index"
                  style="height: 52px"
                >
              <div class="content-title content-title-right" style="border-bottom: 0; height: 52px" :style="`display: grid;
                grid-template-columns: repeat(${monthList.length}, 1fr);`">
                <div class="content-title-item" v-for="(item, index) in monthList" :key="'b' + index"
                  style="height: 52px">
                  <span class="month">{{ item }}月</span>
                </div>
              </div>
              <div
                class="content-body"
                v-for="(item, index) in yearList"
                :key="'c' + index"
                v-on:mouseenter="onMouseEnter(index)"
                v-on:mouseleave="currentUserIndex = null"
                :style="`display: grid;
              grid-template-columns: repeat(${monthList.length}, 1fr);`"
              >
                <div
                  class="content-body-item"
                  v-for="(m, i) in item.monthList"
                  :key="'d' + i"
                  :class="{ hoverType: currentUserIndex == index }"
                >
              <div class="content-body" v-for="(item, index) in yearList" :key="'c' + index"
                v-on:mouseenter="onMouseEnter(index)" v-on:mouseleave="currentUserIndex = null" :style="`display: grid;
              grid-template-columns: repeat(${monthList.length}, 1fr);`">
                <div class="content-body-item" v-for="(m, i) in item.monthList" :key="'d' + i"
                  :class="{ hoverType: currentUserIndex == index }">
                  <p style="color: rgb(153, 153, 153); font-size: 12px">
                    合计出勤:<span style="font-size: 14px; color: #000">{{
                      m.totalMonthAttendance
@@ -346,41 +198,23 @@
        </div>
      </div>
    </div>
    <el-pagination
      background
      @current-change="currentChange"
      :page-size="pageSize"
      :current-page="currentPage"
      layout="total, prev, pager, next, jumper"
      :total="total"
      style="margin-top: 10px; text-align: right; margin-right: 30px"
    >
    <el-pagination background @current-change="currentChange" :page-size="pageSize" :current-page="currentPage"
      layout="total, prev, pager, next, jumper" :total="total"
      style="margin-top: 10px; text-align: right; margin-right: 30px">
    </el-pagination>
    <el-dialog title="时间配置" :visible.sync="configTimeVisible" width="620px">
      <div v-loading="configTimeVisibleLoading" style="min-height: 200px">
        <div v-for="(item, index) in timeQuery">
          <div
            class="form"
            style="display: flex; justify-content: space-between"
          >
          <div class="form" style="display: flex; justify-content: space-between">
            <div style="margin-bottom: 12px; width: 200px">
              <span class="form_label">班次:</span>
              <span v-if="!item.isEdit"> {{ item.type }} </span>
              <span class="form_input" v-if="item.isEdit">
                <el-select
                  v-model="item.shift"
                  placeholder="请选择"
                  style="width: 70%; margin-right: 8px"
                  clearable
                  size="small"
                >
                  <el-option
                    v-for="obj in timeTypeList"
                    :key="obj.dictValue"
                    :label="obj.dictLabel"
                    :value="obj.dictValue"
                  >
                <el-select v-model="item.shift" placeholder="请选择" style="width: 70%; margin-right: 8px" clearable
                  size="small">
                  <el-option v-for="obj in timeTypeList" :key="obj.dictValue" :label="obj.dictLabel"
                    :value="obj.dictValue">
                  </el-option>
                </el-select>
              </span>
@@ -395,67 +229,36 @@
                }}
              </span>
              <span class="form_input" v-if="item.isEdit">
                <el-time-select
                  placeholder="起始时间"
                  v-model="item.startTime"
                  size="small"
                  :picker-options="{
                    start: '00:00',
                    step: '00:15',
                    end: '24:00',
                  }"
                  style="width: 120px"
                >
                <el-time-select placeholder="起始时间" v-model="item.startTime" size="small" :picker-options="{
                  start: '00:00',
                  step: '00:15',
                  end: '24:00',
                }" style="width: 120px">
                </el-time-select>
                <el-time-select
                  style="width: 120px"
                  placeholder="结束时间"
                  v-model="item.endTime"
                  size="small"
                <el-time-select style="width: 120px" placeholder="结束时间" v-model="item.endTime" size="small"
                  :picker-options="{
                    start: '00:00',
                    step: '00:15',
                    end: '24:00',
                  }"
                >
                  }">
                </el-time-select>
              </span>
            </div>
            <span>
              <i
                class="el-icon-circle-check"
                v-if="item.isEdit"
                style="margin-left: 10px; color: #4b79f2; cursor: pointer"
                @click="saveEdit(item, index)"
              ></i>
              <i
                class="el-icon-edit"
                v-if="!item.isEdit"
                style="margin-left: 10px; color: #4b79f2; cursor: pointer"
                @click="item.isEdit = true"
              ></i>
              <i
                class="el-icon-delete"
                v-if="timeQuery.length > 1"
                style="margin-left: 10px; color: #ff4902; cursor: pointer"
                @click="deleteTime(item, index)"
              ></i>
              <i class="el-icon-circle-check" v-if="item.isEdit"
                style="margin-left: 10px; color: #4b79f2; cursor: pointer" @click="saveEdit(item, index)"></i>
              <i class="el-icon-edit" v-if="!item.isEdit" style="margin-left: 10px; color: #4b79f2; cursor: pointer"
                @click="item.isEdit = true"></i>
              <i class="el-icon-delete" v-if="timeQuery.length > 1"
                style="margin-left: 10px; color: #ff4902; cursor: pointer" @click="deleteTime(item, index)"></i>
            </span>
          </div>
          <el-divider></el-divider>
          <div
            @click="addTimeForm"
            style="color: #4b79f2; cursor: pointer"
            v-if="index === timeQuery.length - 1"
          >
          <div @click="addTimeForm" style="color: #4b79f2; cursor: pointer" v-if="index === timeQuery.length - 1">
            添加时间配置
          </div>
        </div>
        <div
          @click="addTimeForm"
          style="color: #4b79f2"
          v-if="timeQuery.length === 0"
        >
        <div @click="addTimeForm" style="color: #4b79f2" v-if="timeQuery.length === 0">
          添加时间配置
        </div>
      </div>
@@ -466,13 +269,8 @@
          <span style="color: red; margin-right: 4px">*</span>周次:
        </div>
        <div class="search_input" style="width: calc(100% - 90px)">
          <el-date-picker
            v-model="schedulingQuery.week"
            type="week"
            format="yyyy 第 WW 周"
            placeholder="选择周次"
            style="width: 100%"
          >
          <el-date-picker v-model="schedulingQuery.week" type="week" format="yyyy 第 WW 周" placeholder="选择周次"
            style="width: 100%">
          </el-date-picker>
        </div>
      </div>
@@ -481,20 +279,9 @@
          <span style="color: red; margin-right: 4px">*</span>人员名称:
        </div>
        <div class="search_input" style="width: calc(100% - 90px)">
          <el-select
            v-model="schedulingQuery.userId"
            placeholder="请选择"
            style="width: 100%"
            multiple
            clearable
            collapse-tags
          >
            <el-option
              v-for="item in personList"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            >
          <el-select v-model="schedulingQuery.userId" placeholder="请选择" style="width: 100%" multiple clearable
            collapse-tags>
            <el-option v-for="item in personList" :key="item.id" :label="item.name" :value="item.id">
            </el-option>
          </el-select>
        </div>
@@ -504,26 +291,15 @@
          <span style="color: red; margin-right: 4px">*</span>班次:
        </div>
        <div class="search_input" style="width: calc(100% - 90px)">
          <el-select
            v-model="schedulingQuery.shift"
            placeholder="请选择"
            style="width: 100%"
          >
            <el-option
              v-for="item in classType"
              :key="item.dictValue"
              :label="item.dictLabel"
              :value="item.dictValue"
            >
          <el-select v-model="schedulingQuery.shift" placeholder="请选择" style="width: 100%">
            <el-option v-for="item in classType" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
            </el-option>
          </el-select>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="schedulingVisible = false">取 消</el-button>
        <el-button type="primary" @click="confirmScheduling" :loading="loading"
          >确 定</el-button
        >
        <el-button type="primary" @click="confirmScheduling" :loading="loading">确 定</el-button>
      </span>
    </el-dialog>
  </div>
@@ -545,6 +321,7 @@
  selectUserCondition,
} from "@/api/performance/class";
export default {
  name: 'Class',
  data() {
    return {
      query: {
@@ -727,8 +504,8 @@
            (i == 0 && strArr[i] == 0
              ? ""
              : i > 0 && strArr[i] == 0 && strArr[i - 1] == 0
              ? ""
              : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i])) +
                ? ""
                : changeNum[strArr[i]] + (strArr[i] == 0 ? unit[0] : unit[i])) +
            newNum;
        }
        return newNum;
@@ -1060,6 +837,7 @@
.class-page {
  padding: 10px;
}
.form_title {
  height: 36px;
  display: flex;
@@ -1067,6 +845,7 @@
  justify-content: space-between;
  font-weight: 800;
}
.search {
  height: 50px;
  display: flex;
@@ -1085,16 +864,19 @@
  font-size: 14px;
  text-align: right;
}
.search_input {
  display: flex;
  align-items: center;
}
.btns {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translate(0, -50%);
}
.center {
  width: 100%;
  height: calc(100vh - 220px);
@@ -1102,43 +884,56 @@
  overflow-y: auto;
  display: flex;
}
>>> .scroll-pagination {
>>>.scroll-pagination {
  overflow-y: scroll;
  scrollbar-width: none;
}
>>> .scroll-pagination::-webkit-scrollbar {
>>>.scroll-pagination::-webkit-scrollbar {
  display: none;
}
.fixed-left {
  float: left;
  width: 220px; /* 左边区域宽度 */
  width: 220px;
  /* 左边区域宽度 */
  background-color: #fff;
  box-shadow: 2px -2px 5px rgba(51, 51, 51, 0.12); /* 左边阴影 */
  box-shadow: 2px -2px 5px rgba(51, 51, 51, 0.12);
  /* 左边阴影 */
}
.clearfix::after {
  content: "";
  display: table;
  clear: both;
}
.scroll-right {
  width: calc(100% - 220px); /* 减去左边区域宽度 */
  min-height: calc(100% - 10px); /* 视口高度 */
  width: calc(100% - 220px);
  /* 减去左边区域宽度 */
  min-height: calc(100% - 10px);
  /* 视口高度 */
  margin-left: 220px;
  overflow-x: scroll;
}
.content {
  min-height: calc(100% - 10px); /* 视口高度 */
  min-height: calc(100% - 10px);
  /* 视口高度 */
}
.content-title {
  height: 58px;
  line-height: 58px;
  border-bottom: 1px solid #eeeeee;
}
.content-title-right {
  display: flex;
  align-items: center;
}
.content-title-item {
  height: 100%;
  width: 50px;
@@ -1151,6 +946,7 @@
  flex-direction: column;
  position: relative;
}
.content-title-item .month {
  font-size: 12px;
  color: #3a7bfa;
@@ -1161,19 +957,23 @@
  text-align: center;
  line-height: 22px;
}
.content-title-item .day {
  font-size: 14px;
  color: #333333;
  margin-right: 4px;
}
.content-title-item .week {
  font-size: 12px;
  color: #999999;
}
.content-body {
  display: flex;
  align-items: center;
}
.content-body-item {
  height: 70px;
  width: 50px;
@@ -1184,6 +984,7 @@
  border-right: 1px solid #eeeeee;
  border-bottom: 1px solid #eeeeee;
}
.work-box {
  width: 100%;
  height: 100%;
@@ -1195,61 +996,77 @@
  color: #999;
  font-size: 14px;
}
.work-box.type0 {
  background: rgba(58, 123, 250, 0.15);
  color: #3a7bfa !important;
}
.work-box.type0 span {
  color: #3a7bfa !important;
}
.work-box.type1 {
  background: #e3dcfe;
  color: #635998 !important;
}
.work-box.type1 span {
  color: #635998 !important;
}
.work-box.type2 {
  background: #fae2ca;
  color: #bc8d5e !important;
}
.work-box.type2 span {
  color: #bc8d5e !important;
}
.work-box.type3 {
  background: #e1f3d8;
  color: #67c23a !important;
}
.work-box.type3 span {
  color: #67c23a !important;
}
.work-box.type4 {
  background: #fde2e2;
  color: #f56c6c !important;
}
.work-box.type4 span {
  color: #f56c6c !important;
}
.work-box.type5 {
  background: #ff46c145;
  color: #ff46c0 !important;
}
.work-box.type5 span {
  color: #ff46c0 !important;
}
.work-box.type6 {
  background: #00036418;
  color: #000464 !important;
}
.work-box.type6 span {
  color: #000464 !important;
}
.work-box-left {
  display: flex;
  justify-content: center;
  flex-direction: column;
  line-height: 24px;
}
.content-user {
  width: 100%;
  height: 70px;
@@ -1258,6 +1075,7 @@
  display: flex;
  align-items: center;
}
.user-pic {
  width: 50px;
  height: 50px;
@@ -1269,19 +1087,24 @@
  line-height: 50px;
  margin-left: 10px;
}
.user-info {
  flex: 1;
  margin-left: 10px;
}
.hoverType {
  background: rgba(58, 123, 250, 0.03);
}
.year-table {
  width: 100%;
}
.year-table .scroll-right {
  flex: 1;
}
.year-table .month {
  font-size: 14px;
  color: #3a7bfa;
@@ -1292,9 +1115,11 @@
  text-align: center;
  line-height: 30px;
}
.year-table .content-title-item {
  width: 100%;
}
.year-table .content-body-item {
  width: 100%;
  height: 70px;
src/views/performance/manHour/index.vue
@@ -1,27 +1,14 @@
<template>
  <div class="work-time-management">
    <div style="text-align: left">
      <el-radio-group
        v-model="currentComponent"
        size="small"
        style="margin-top: 16px; margin-left: 16px"
      >
        <el-radio-button
          v-if="checkPermi(['performance:manHour:workTimeStatistics'])"
          label="workTimeStatistics"
        >
      <el-radio-group v-model="currentComponent" size="small" style="margin-top: 16px; margin-left: 16px">
        <el-radio-button v-if="checkPermi(['performance:manHour:workTimeStatistics'])" label="workTimeStatistics">
          工时汇总
        </el-radio-button>
        <el-radio-button
          v-if="checkPermi(['performance:manHour:workTimeManagement'])"
          label="workTimeManagement"
        >
        <el-radio-button v-if="checkPermi(['performance:manHour:workTimeManagement'])" label="workTimeManagement">
          日工时管理
        </el-radio-button>
        <el-radio-button
          v-if="checkPermi(['performance:manHour:workTimeConfig'])"
          label="workTimeConfig"
        >
        <el-radio-button v-if="checkPermi(['performance:manHour:workTimeConfig'])" label="workTimeConfig">
          辅助工时配置
        </el-radio-button>
      </el-radio-group>
@@ -35,12 +22,13 @@
import workTimeManagement from "./workTimeManagement.vue";
import workTimeConfig from "./workTimeConfig.vue";
export default {
  name: "ManHour",
  components: {
    workTimeStatistics,
    workTimeManagement,
    workTimeConfig,
  },
  created() {},
  created() { },
  data() {
    return {
      currentComponent: "workTimeStatistics",
src/views/standard/model/index.vue
@@ -63,6 +63,7 @@
  getEditTemplatePreparation,
} from "@/api/standard/model";
export default {
  name: 'Model',
  components: {
    Excel,
    limsTable,
src/views/standard/standardLibrary/index.vue
@@ -77,21 +77,21 @@
  overflow: hidden;
}
>>> .el-table__body-wrapper {
>>>.el-table__body-wrapper {
  height: calc(100% - 46px) !important;
}
>>> .header-class {
>>>.header-class {
  height: 40px !important;
}
>>> .header-class th.el-table__cell > .cell {
>>>.header-class th.el-table__cell>.cell {
  line-height: 20px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
>>> .el-table__row {
>>>.el-table__row {
  height: 35px !important;
}
@@ -125,11 +125,13 @@
  right: 70px;
}
>>> .is-disabled .el-textarea__inner {
>>>.is-disabled .el-textarea__inner {
  background: rgba(0, 0, 0, 0.05) !important;
}
>>> .el-table__body-wrapper::-webkit-scrollbar {
  height: 14px; /* 设置滚动条宽度 */
>>>.el-table__body-wrapper::-webkit-scrollbar {
  height: 14px;
  /* 设置滚动条宽度 */
}
</style>
<style>
@@ -139,10 +141,7 @@
  border-radius: 2px;
}
.standard
  .el-tree--highlight-current
  .el-tree-node.is-current
  > .el-tree-node__content {
.standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
  color: #3a7bfa;
}
@@ -193,104 +192,49 @@
    <div class="left">
      <el-row>
        <el-col :span="20">
          <el-input
            v-model="search"
            clearable
            placeholder="输入关键字进行搜索"
            size="small"
            style="margin-bottom: 5px"
            suffix-icon="el-icon-search"
            @blur="searchFilter"
            @clear="searchFilter"
          ></el-input>
          <el-input v-model="search" clearable placeholder="输入关键字进行搜索" size="small" style="margin-bottom: 5px"
            suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter"></el-input>
        </el-col>
        <el-col
          v-if="checkPermi(['standard:standardLibrary:add'])"
          :span="4"
          style="text-align: center; line-height: 30px"
        >
          <el-button
            circle
            icon="el-icon-plus"
            size="mini"
            type="primary"
            @click="addDia = true"
          ></el-button>
        <el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4"
          style="text-align: center; line-height: 30px">
          <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button>
        </el-col>
      </el-row>
      <el-tree
        ref="tree"
        v-loading="treeLoad"
        :allow-drop="allowDrop"
        :data="list"
        :default-expanded-keys="expandedKeys"
        :draggable="true"
        :filter-node-method="filterNode"
        :props="{ children: 'children', label: 'label' }"
        highlight-current
        node-key="label"
        style="
      <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list"
        :default-expanded-keys="expandedKeys" :draggable="true" :filter-node-method="filterNode"
        :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" style="
          height: calc(100% - 30px);
          overflow-y: scroll;
          scrollbar-width: none;
        "
        @node-click="handleNodeClick"
        @node-expand="nodeOpen"
        @node-collapse="nodeClose"
        @node-drop="handleDrop"
      >
        " @node-click="handleNodeClick" @node-expand="nodeOpen" @node-collapse="nodeClose" @node-drop="handleDrop">
        <div slot-scope="{ node, data }" class="custom-tree-node">
          <el-row style="width: 100%">
            <el-col
              :class="{ sort: node.level > 3 }"
              :span="19"
              :title="data.label"
              style="text-align: left"
            >
            <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left">
              <span>
                <i
                  :class="`node_i ${
                    data.children != undefined
                      ? data.code === '[1]'
                        ? 'el-icon-folder-opened'
                        : 'el-icon-folder'
                      : 'el-icon-tickets'
                  }`"
                ></i>
                <i :class="`node_i ${data.children != undefined
                    ? data.code === '[1]'
                      ? 'el-icon-folder-opened'
                      : 'el-icon-folder'
                    : 'el-icon-tickets'
                  }`"></i>
                {{ data.label }}
              </span>
            </el-col>
            <el-col
              v-if="
                checkPermi(['standard:standardLibrary:delStandardTree']) &&
                (node.data.children === null ||
                  node.data.children === undefined)
              "
              :span="2"
              style="text-align: right"
            >
              <el-button
                size="mini"
                type="text"
                @click="editTreeName(node.data)"
              >
            <el-col v-if="
              checkPermi(['standard:standardLibrary:delStandardTree']) &&
              (node.data.children === null ||
                node.data.children === undefined)
            " :span="2" style="text-align: right">
              <el-button size="mini" type="text" @click="editTreeName(node.data)">
                <i class="el-icon-edit"></i>
              </el-button>
            </el-col>
            <el-col
              v-if="
                checkPermi(['standard:standardLibrary:delStandardTree']) &&
                (node.data.children === null ||
                  node.data.children === undefined)
              "
              :span="2"
              style="text-align: right"
            >
              <el-button
                size="mini"
                type="text"
                @click.stop="remove(node, data)"
              >
            <el-col v-if="
              checkPermi(['standard:standardLibrary:delStandardTree']) &&
              (node.data.children === null ||
                node.data.children === undefined)
            " :span="2" style="text-align: right">
              <el-button size="mini" type="text" @click.stop="remove(node, data)">
                <i class="el-icon-delete"></i>
              </el-button>
            </el-col>
@@ -304,304 +248,128 @@
          selectTree
        }}</el-col>
        <el-col :span="4">
          <el-button
            v-if="isShowCopy"
            size="small"
            style="position: absolute; right: 20px; top: 1px"
            type="primary"
            @click="openCopyDia"
            >批量复制</el-button
          >
          <el-button v-if="isShowCopy" size="small" style="position: absolute; right: 20px; top: 1px" type="primary"
            @click="openCopyDia">批量复制</el-button>
        </el-col>
      </el-row>
      <el-row v-loading="tableLoad" class="standard_table">
        <el-table
          ref="standard"
          :data="standardList"
          class="el-table"
          header-row-class-name="header-class"
          height="220"
          highlight-current-row
          style="width: 100%; height: 220px !important"
          tooltip-effect="dark"
          @row-click="rowClick"
        >
          <el-table-column
            label="标准编号"
            prop="code"
            show-overflow-tooltip
            width="200"
          >
        <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220"
          highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark"
          @row-click="rowClick">
          <el-table-column label="标准编号" prop="code" show-overflow-tooltip width="200">
            <template slot-scope="scope">
              <span style="color: red; font-size: 14px">{{
                scope.row["code"]
              }}</span>
            </template>
          </el-table-column>
          <el-table-column
            label="标准名称"
            prop="name"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            label="备注"
            prop="remark"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column label="标准名称" prop="name" show-overflow-tooltip></el-table-column>
          <el-table-column label="备注" prop="remark" show-overflow-tooltip></el-table-column>
        </el-table>
      </el-row>
      <el-row v-loading="tableLoad2" class="product_table">
        <el-table
          id="templateParamTable"
          ref="productTable"
          v-loading="productTableLoading"
          :data="productList"
          :fit="true"
          :row-class-name="tableRowClassName"
          border
          class="productTable"
          header-row-class-name="header-class"
          height="100%"
          row-key="id"
          stripe
          style="width: 100%"
          tooltip-effect="dark"
          @select="upProductSelect"
          @selection-change="handleSelectionChange"
          @select-all="handleAll"
        >
        <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList"
          :fit="true" :row-class-name="tableRowClassName" border class="productTable"
          header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%"
          tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange"
          @select-all="handleAll">
          <el-table-column type="selection" width="50"> </el-table-column>
          <el-table-column
            label="产品"
            min-width="100"
            prop="sample"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            label="型号"
            min-width="100"
            prop="model"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            label="检验项分类"
            min-width="140"
            prop="inspectionItemClass"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            label="检验项"
            min-width="140"
            prop="inspectionItem"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            label="检验项子项"
            min-width="140"
            prop="inspectionItemSubclass"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            label="子实验室"
            prop="sonLaboratory"
            show-overflow-tooltip
            width="130"
          ></el-table-column>
          <el-table-column label="产品" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
          <el-table-column label="型号" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
          <el-table-column label="检验项分类" min-width="140" prop="inspectionItemClass"
            show-overflow-tooltip></el-table-column>
          <el-table-column label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column>
          <el-table-column label="检验项子项" min-width="140" prop="inspectionItemSubclass"
            show-overflow-tooltip></el-table-column>
          <el-table-column label="子实验室" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column>
          <el-table-column label="要求值" min-width="200px" prop="ask">
            <template slot-scope="scope">
              <el-input
                v-if="
                  checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                v-model="scope.row.ask"
                :autosize="{ minRows: 1, maxRows: 3 }"
                clearable
                placeholder="要求值"
                size="small"
                type="textarea"
                @change="(value) => upStandardProductList(value, scope.row.id)"
              ></el-input>
              <el-input v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求值"
                size="small" type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
              <span v-else>{{ scope.row.ask }}</span>
            </template>
          </el-table-column>
          <el-table-column label="要求描述" min-width="220px" prop="tell">
            <template slot-scope="scope">
              <el-input
                v-if="
                  checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                v-model="scope.row.tell"
                :autosize="{ minRows: 1, maxRows: 3 }"
                clearable
                placeholder="要求描述"
                size="small"
                type="textarea"
                @change="
                  (value) => upStandardProductListOfTell(value, scope.row.id)
                "
              ></el-input>
              <el-input v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求描述"
                size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id)
                  "></el-input>
              <span v-else>{{ scope.row.ask }}</span>
            </template>
          </el-table-column>
          <el-table-column label="试验方法" prop="method" width="200">
            <template slot-scope="scope">
              <el-select
                v-if="
                  checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                v-model="scope.row.methodS"
                clearable
                placeholder="试验方法"
                size="small"
                @change="
                  (value) => upStandardProductListOfMethodS(value, scope.row.id)
                "
              >
                <el-option
                  v-for="(a, i) in scope.row.method &&
                  JSON.parse(scope.row.method)"
                  :key="i"
                  :label="a"
                  :value="a"
                ></el-option>
              <el-select v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.methodS" clearable placeholder="试验方法" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id)
                  ">
                <el-option v-for="(a, i) in scope.row.method &&
                  JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option>
              </el-select>
              <span v-else>{{ scope.row.methodS }}</span>
            </template>
          </el-table-column>
          <el-table-column
            label="条件"
            min-width="140"
            prop="radius"
            show-overflow-tooltip
          >
          <el-table-column label="条件" min-width="140" prop="radius" show-overflow-tooltip>
            <template slot-scope="scope">
              <el-select
                v-if="
                  checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                v-model="scope.row.radius"
                clearable
                placeholder="条件"
                size="small"
                @change="
                  (value) => upStandardProductListOfRadius(value, scope.row.id)
                "
              >
                <el-option
                  v-for="(a, i) in scope.row.radiusList &&
                  JSON.parse(scope.row.radiusList)"
                  :key="i"
                  :label="a"
                  :value="a"
                ></el-option>
              <el-select v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.radius" clearable placeholder="条件" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id)
                  ">
                <el-option v-for="(a, i) in scope.row.radiusList &&
                  JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
              </el-select>
              <span v-else>{{ scope.row.radius }}</span>
            </template>
          </el-table-column>
          <el-table-column
            label="计量单位"
            prop="unit"
            show-overflow-tooltip
            width="100"
          ></el-table-column>
          <el-table-column label="计量单位" prop="unit" show-overflow-tooltip width="100"></el-table-column>
          <el-table-column label="单价(元)" prop="price" width="120">
            <template slot-scope="scope">
              <el-input
                v-if="
                  checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                v-model="scope.row.price"
                placeholder="单价(元)"
                size="small"
                @change="
                  (value) => upStandardProductListOfPrice(value, scope.row.id)
                "
              >
              <el-input v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.price" placeholder="单价(元)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id)
                  ">
              </el-input>
              <span v-else>{{ scope.row.price }}</span>
            </template>
          </el-table-column>
          <el-table-column label="工时系数" prop="manHour" width="120">
            <template slot-scope="scope">
              <el-input
                v-if="
                  checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                v-model="scope.row.manHour"
                placeholder="单价(元)"
                size="small"
                @change="
                  (value) => upStandardProductListOfManHour(value, scope.row.id)
                "
              >
              <el-input v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.manHour" placeholder="单价(元)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id)
                  ">
              </el-input>
              <span v-else>{{ scope.row.manHour }}</span>
            </template>
          </el-table-column>
          <el-table-column
            label="工时分组"
            prop="manHourGroup"
            show-overflow-tooltip
            width="100"
          ></el-table-column>
          <el-table-column label="工时分组" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column>
          <el-table-column label="模板" prop="templateId" width="200">
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.templateId"
                :disabled="
                  !checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                filterable
                size="small"
                @change="
                  (value) =>
              <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                " filterable size="small" @change="(value) =>
                    upStandardProductListOfTemplate(value, scope.row.id)
                "
              >
                <el-option
                  v-for="(a, ai) in templateList"
                  :key="ai"
                  :label="a.name"
                  :value="a.id"
                ></el-option>
                  ">
                <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            label="区间"
            prop="section"
            show-overflow-tooltip
            width="120"
          ></el-table-column>
          <el-table-column label="区间" prop="section" show-overflow-tooltip width="120"></el-table-column>
          <el-table-column label="操作" prop="section" width="160">
            <template slot-scope="scope">
              <el-button
                type="text"
                @click="sectionUp(scope.row)"
                :disabled="
                  !checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                >区间设置</el-button
              >
              <el-button
                type="text"
                :disabled="
                  !checkPermi(['standard:standardLibrary:upStandardProduct'])
                "
                @click="bindSupplierDensitySecond(scope.row)"
                >绑定厂家</el-button
              >
              <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                ">区间设置</el-button>
              <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                " @click="bindSupplierDensitySecond(scope.row)">绑定厂家</el-button>
            </template>
          </el-table-column>
        </el-table>
        <el-pagination
          :current-page="currentPage"
          :page-size="300"
          :total="total"
          layout="total, prev, pager, next, jumper"
          style="position: absolute; right: 16px; bottom: 1px"
          @current-change="handleCurrentChange"
        >
        <el-pagination :current-page="currentPage" :page-size="300" :total="total"
          layout="total, prev, pager, next, jumper" style="position: absolute; right: 16px; bottom: 1px"
          @current-change="handleCurrentChange">
        </el-pagination>
      </el-row>
    </div>
@@ -613,21 +381,14 @@
            <span class="required-span">* </span>型号:
          </el-col>
          <el-col :offset="1" :span="16">
            <el-input
              v-model="addOb.model"
              clearable
              placeholder="请输入型号"
              size="small"
              @keyup.enter.native="addStandardTree"
            ></el-input>
            <el-input v-model="addOb.model" clearable placeholder="请输入型号" size="small"
              @keyup.enter.native="addStandardTree"></el-input>
          </el-col>
        </el-row>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="addDia = false">取 消</el-button>
        <el-button :loading="addLoad" type="primary" @click="addStandardTree"
          >确 定</el-button
        >
        <el-button :loading="addLoad" type="primary" @click="addStandardTree">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog :visible.sync="updateDia" title="分类修改" width="400px">
@@ -637,96 +398,50 @@
            <span class="required-span">* </span>型号:
          </el-col>
          <el-col :offset="1" :span="16">
            <el-input
              v-model="addOb.model"
              clearable
              placeholder="请输入型号"
              size="small"
              @keyup.enter.native="updateStandardTree"
            ></el-input>
            <el-input v-model="addOb.model" clearable placeholder="请输入型号" size="small"
              @keyup.enter.native="updateStandardTree"></el-input>
          </el-col>
        </el-row>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="updateDia = false">取 消</el-button>
        <el-button
          :loading="updateLoad"
          type="primary"
          @click="updateStandardTree"
          >确 定</el-button
        >
        <el-button :loading="updateLoad" type="primary" @click="updateStandardTree">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :close-on-click-modal="false"
      :visible.sync="sectionUpDia"
      title="区间设置"
      width="80%"
    >
    <el-dialog :close-on-click-modal="false" :visible.sync="sectionUpDia" title="区间设置" width="80%">
      <div class="body" style="padding: 5px 0">
        <el-table :data="sectionList" border height="350px" style="width: 100%">
          <el-table-column align="center" label="序号" type="index" width="70">
          </el-table-column>
          <el-table-column align="center" label="区间">
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.thing"
                clearable
                placeholder="区间"
                size="small"
              ></el-input>
              <el-input v-model="scope.row.thing" clearable placeholder="区间" size="small"></el-input>
            </template>
          </el-table-column>
          <el-table-column align="center" label="芯数">
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.cores"
                clearable
                placeholder="芯数"
                size="small"
              ></el-input>
              <el-input v-model="scope.row.cores" clearable placeholder="芯数" size="small"></el-input>
            </template>
          </el-table-column>
          <el-table-column align="center" label="要求值">
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.ask"
                clearable
                placeholder="要求值"
                size="small"
              ></el-input>
              <el-input v-model="scope.row.ask" clearable placeholder="要求值" size="small"></el-input>
            </template>
          </el-table-column>
          <el-table-column align="center" label="要求描述">
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.tell"
                :autosize="{ minRows: 1, maxRows: 2 }"
                clearable
                placeholder="要求描述"
                size="small"
                type="textarea"
              ></el-input>
              <el-input v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 2 }" clearable placeholder="要求描述"
                size="small" type="textarea"></el-input>
            </template>
          </el-table-column>
          <el-table-column align="center" label="导体材质">
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.conductorMaterial"
                clearable
                placeholder="导体材质"
                size="small"
              ></el-input>
              <el-input v-model="scope.row.conductorMaterial" clearable placeholder="导体材质" size="small"></el-input>
            </template>
          </el-table-column>
          <el-table-column align="center" label="导体类型">
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.conductorType"
                clearable
                placeholder="导体类型"
                size="small"
              ></el-input>
              <el-input v-model="scope.row.conductorType" clearable placeholder="导体类型" size="small"></el-input>
            </template>
          </el-table-column>
          <!--          <el-table-column align="center" label="单价" width="120">-->
@@ -741,42 +456,24 @@
          <!--          </el-table-column>-->
          <el-table-column align="center" label="操作" width="70">
            <template slot-scope="scope">
              <el-button
                circle
                icon="el-icon-minus"
                size="mini"
                type="danger"
                @click="sectionList.splice(scope.$index, 1)"
              ></el-button>
              <el-button circle icon="el-icon-minus" size="mini" type="danger"
                @click="sectionList.splice(scope.$index, 1)"></el-button>
            </template>
          </el-table-column>
        </el-table>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="sectionUpDia = false">取 消</el-button>
        <el-button :loading="sectionLoad" type="primary" @click="sectionLoadAdd"
          >保 存</el-button
        >
        <el-button
          icon="el-icon-plus"
          type="primary"
          @click="sectionList.push({ thing: '' })"
        ></el-button>
        <el-button :loading="sectionLoad" type="primary" @click="sectionLoadAdd">保 存</el-button>
        <el-button icon="el-icon-plus" type="primary" @click="sectionList.push({ thing: '' })"></el-button>
      </span>
    </el-dialog>
    <bindSupplierDensityDialogAsk
      v-if="bindSupplierDensityDialog"
      :bindSupplierDensityDialog="bindSupplierDensityDialog"
      :currentRow="currentSupplierDensityRow"
      @closeBindPartDialog="closeBindSupplierDensityDialog"
    ></bindSupplierDensityDialogAsk>
    <BatchCopy
      v-if="batchCopyDia"
      ref="BatchCopy"
      :selectTree1="selectTree"
      :standardId="standardId"
      @refreshList="refreshList"
    ></BatchCopy>
    <bindSupplierDensityDialogAsk v-if="bindSupplierDensityDialog"
      :bindSupplierDensityDialog="bindSupplierDensityDialog" :currentRow="currentSupplierDensityRow"
      @closeBindPartDialog="closeBindSupplierDensityDialog">
    </bindSupplierDensityDialogAsk>
    <BatchCopy v-if="batchCopyDia" ref="BatchCopy" :selectTree1="selectTree" :standardId="standardId"
      @refreshList="refreshList"></BatchCopy>
  </div>
</template>
@@ -809,6 +506,7 @@
import bindSupplierDensityDialogAsk from "./components/bindSupplierDensityDialogAsk.vue";
import BatchCopy from "./components/BatchCopy.vue";
export default {
  name: 'StandardLibrary',
  components: {
    BatchCopy,
    bindSupplierDensityDialogAsk,
@@ -1059,7 +757,7 @@
            this.productList = [];
          });
        })
        .catch((e) => {});
        .catch((e) => { });
    },
    deleteStandard(arr, label) {
      arr.forEach((item, index) => {
@@ -1358,7 +1056,7 @@
            this.selectsStandardMethodByFLSSM();
          });
        })
        .catch(() => {});
        .catch(() => { });
    },
    handleSelectionChange(val) {
      this.selects = [];
@@ -1392,7 +1090,7 @@
            this.selectsStandardMethodByFLSSM();
          });
        })
        .catch(() => {});
        .catch(() => { });
    },
    addStandardProductDo() {
      let selects = this.$refs.ValueTable.multipleSelection;