spring
2025-02-17 7ff62e110f5ebf6f39ac55b275c550f14e335bd2
src/components/view/b2-standard.vue
@@ -17,7 +17,7 @@
  }
  .custom-tree-node .el-icon-delete {
    color: #3A7BFA;
  color: #3a7bfa;
    opacity: 0;
    font-size: 18px;
  }
@@ -125,8 +125,11 @@
    border-radius: 2px;
  }
  .standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
    color: #3A7BFA;
.standard
  .el-tree--highlight-current
  .el-tree-node.is-current
  > .el-tree-node__content {
  color: #3a7bfa;
  }
  .standard .has-gutter .el-table__cell .cell {
@@ -160,7 +163,7 @@
  }
  .standard .handleBtn.is-disabled .el-upload:focus {
    color: #C0C4CC !important;
  color: #c0c4cc !important;
  }
  .standard .avatar-uploader .el-upload {
@@ -176,28 +179,83 @@
    <div class="left">
      <el-row>
        <el-col :span="20">
          <el-input placeholder="输入关键字进行搜索" suffix-icon="el-icon-search" v-model="search" size="small"
            style="margin-bottom: 5px;" clearable @blur="searchFilter" @clear="searchFilter"></el-input>
          <el-input
            placeholder="输入关键字进行搜索"
            suffix-icon="el-icon-search"
            v-model="search"
            size="small"
            style="margin-bottom: 5px;"
            clearable
            @blur="searchFilter"
            @clear="searchFilter"
          ></el-input>
        </el-col>
        <el-col :span="4" style="text-align: center;line-height: 30px;" v-if="addPower">
          <el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button>
        <el-col
          :span="4"
          style="text-align: center;line-height: 30px;"
          v-if="addPower"
        >
          <el-button
            type="primary"
            icon="el-icon-plus"
            size="mini"
            circle
            @click="addDia = true"
          ></el-button>
        </el-col>
      </el-row>
      <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label"
        :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
        @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"
      <el-tree
        :data="list"
        ref="tree"
        :props="{ children: 'children', label: 'label' }"
        node-key="label"
        :filter-node-method="filterNode"
        @node-click="handleNodeClick"
        highlight-current
        @node-expand="nodeOpen"
        @node-collapse="nodeClose"
        v-loading="treeLoad"
        :expand-on-click-node="false"
        :default-expanded-keys="expandedKeys"
        style="height:calc(100% - 30px);overflow-y: scroll;scrollbar-width: none;">
        style="height:calc(100% - 30px);overflow-y: scroll;scrollbar-width: none;"
      >
        <div class="custom-tree-node" slot-scope="{ node, data }">
          <el-row style="width: 100%;">
            <el-col :span="21" :class="{sort:node.level>3}" :title="data.label" style="text-align: left;">
            <el-col
              :span="21"
              :class="{ sort: node.level > 3 }"
              :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 :span="2" style="text-align: right;" v-if="delStandardTree&&(node.data.children===null||node.data.children===undefined)">
              <el-button type="text" size="mini" @click.stop="remove(node, data)">
            <el-col
              :span="2"
              style="text-align: right;"
              v-if="
                delStandardTree &&
                  (node.data.children === null ||
                    node.data.children === undefined)
              "
            >
              <el-button
                type="text"
                size="mini"
                @click.stop="remove(node, data)"
              >
                <i class="el-icon-delete"></i>
              </el-button>
            </el-col>
@@ -207,100 +265,250 @@
    </div>
    <div class="right">
      <el-row class="title" style="width: 100%;">
        <el-col :span="20" style="font-size: 14px;color: #999;">{{selectTree}}</el-col>
        <el-button size="small" type="primary" style="position: absolute;right: 170px;top: 1px;" @click="handleDown" v-if="inExcelOfTreePower" :loading="outLoading">导出</el-button>
        <el-col :span="20" style="font-size: 14px;color: #999;">{{
          selectTree
        }}</el-col>
        <!-- <el-button size="small" type="primary" style="position: absolute;right: 170px;top: 1px;" @click="handleDown" v-if="inExcelOfTreePower" :loading="outLoading">导出</el-button>
        <el-button size="small" type="primary" style="position: absolute;right: 100px;top: 1px;" @click="uploadDia = true" v-if="inExcelOfTreePower">导入</el-button>
        <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 5px;top: 1px;"
          v-if="upStandardProduct">批量编辑</el-button>
          v-if="upStandardProduct">批量编辑</el-button> -->
      </el-row>
      <el-row class="standard_table" v-loading="tableLoad">
        <el-table class="el-table" :data="standardList" style="width: 100%;height: 220px !important;" height="220"
          tooltip-effect="dark" highlight-current-row @row-click="rowClick" ref="standard"
          header-row-class-name="header-class">
          <el-table-column prop="code" label="标准编号" show-overflow-tooltip width="200">
        <el-table
          class="el-table"
          :data="standardList"
          style="width: 100%;height: 220px !important;"
          height="220"
          tooltip-effect="dark"
          highlight-current-row
          @row-click="rowClick"
          ref="standard"
          header-row-class-name="header-class"
        >
          <el-table-column
            prop="code"
            label="标准编号"
            show-overflow-tooltip
            width="200"
          >
            <template slot-scope="scope">
              <span style="color: red;font-size: 14px;">{{scope.row['code']}}</span>
              <span style="color: red;font-size: 14px;">{{
                scope.row["code"]
              }}</span>
            </template>
          </el-table-column>
          <el-table-column prop="name" label="标准名称" show-overflow-tooltip></el-table-column>
          <el-table-column prop="remark" label="备注" show-overflow-tooltip></el-table-column>
          <el-table-column
            prop="name"
            label="标准名称"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            prop="remark"
            label="备注"
            show-overflow-tooltip
          ></el-table-column>
        </el-table>
      </el-row>
      <el-row class="product_table" v-loading="tableLoad2">
        <el-table :data="productList" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe
          :fit="true" border @selection-change="handleSelectionChange" :row-class-name="tableRowClassName"
          @select="upProductSelect" @select-all="handleAll" class="productTable" header-row-class-name="header-class">
          <el-table-column type="selection" width="50">
          </el-table-column>
          <el-table-column prop="sample" label="产品" min-width="100" show-overflow-tooltip></el-table-column>
          <el-table-column prop="model" label="型号" min-width="100" show-overflow-tooltip></el-table-column>
          <el-table-column prop="inspectionItemClass" v-if="PROJECT === '装备电缆'" label="检验项分类" min-width="140" show-overflow-tooltip></el-table-column>
          <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '装备电缆'" label="检验项分类(EN)" min-width="140" show-overflow-tooltip></el-table-column>
          <el-table-column prop="inspectionItem" label="检验项" min-width="140" show-overflow-tooltip></el-table-column>
        <el-table
          :data="productList"
          ref="productTable"
          style="width: 100%;"
          height="100%"
          tooltip-effect="dark"
          stripe
          :fit="true"
          border
          @selection-change="handleSelectionChange"
          :row-class-name="tableRowClassName"
          @select="upProductSelect"
          @select-all="handleAll"
          class="productTable"
          header-row-class-name="header-class"
        >
          <el-table-column type="selection" width="50"> </el-table-column>
          <el-table-column
            prop="sample"
            label="产品"
            min-width="100"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            prop="model"
            label="型号"
            min-width="100"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            prop="inspectionItemClass"
            v-if="PROJECT === '装备电缆'"
            label="检验项分类"
            min-width="140"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            prop="inspectionItemClassEn"
            v-if="PROJECT === '装备电缆'"
            label="检验项分类(EN)"
            min-width="140"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            prop="inspectionItem"
            label="检验项"
            min-width="140"
            show-overflow-tooltip
          ></el-table-column>
          <!-- <el-table-column prop="inspectionItemClassify" label="检验项类型" width="120" show-overflow-tooltip></el-table-column> -->
          <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140"
            show-overflow-tooltip></el-table-column>
          <el-table-column prop="sonLaboratory" label="子实验室" width="130" show-overflow-tooltip></el-table-column>
          <el-table-column
            prop="inspectionItemSubclass"
            label="检验项子项"
            min-width="140"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column
            prop="sonLaboratory"
            label="子实验室"
            width="130"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column prop="ask" label="要求值" min-width="200px">
            <template slot-scope="scope">
              <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable
                @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea"
                :autosize="{ minRows: 1, maxRows: 3}"></el-input>
              <el-input
                size="small"
                placeholder="要求值"
                v-model="scope.row.ask"
                clearable
                @change="value => upStandardProductList(value, scope.row.id)"
                v-if="upStandardProduct"
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
              ></el-input>
              <span v-else>{{scope.row.ask}}</span>
            </template>
          </el-table-column>
          <el-table-column prop="tell" label="要求描述" min-width="220px">
            <template slot-scope="scope">
              <el-input size="small" placeholder="要求描述" v-model="scope.row.tell" clearable
                @change="(value)=>upStandardProductListOfTell(value,scope.row.id)" v-if="upStandardProduct"
                type="textarea" :autosize="{ minRows: 1, maxRows: 3}"></el-input>
              <el-input
                size="small"
                placeholder="要求描述"
                v-model="scope.row.tell"
                clearable
                @change="
                  value => upStandardProductListOfTell(value, scope.row.id)
                "
                v-if="upStandardProduct"
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 3 }"
              ></el-input>
              <span v-else>{{scope.row.ask}}</span>
            </template>
          </el-table-column>
          <el-table-column prop="method" label="试验方法" width="200">
            <template slot-scope="scope">
              <el-select v-model="scope.row.methodS" size="small" placeholder="试验方法"
                @change="(value)=>upStandardProductListOfMethodS(value,scope.row.id)" v-if="upStandardProduct">
                <el-option v-for="(a,i) in JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option>
              <el-select
                v-model="scope.row.methodS"
                size="small"
                placeholder="试验方法"
                @change="
                  value => upStandardProductListOfMethodS(value, scope.row.id)
                "
                v-if="upStandardProduct"
              >
                <el-option
                  v-for="(a, i) in 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 prop="unit" label="计量单位" width="100" show-overflow-tooltip></el-table-column>
          <el-table-column
            prop="unit"
            label="计量单位"
            width="100"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column prop="price" label="单价(元)" width="120">
            <template slot-scope="scope">
              <el-input v-model="scope.row.price" size="small" placeholder="单价(元)"
                @change="(value)=>upStandardProductListOfPrice(value,scope.row.id)" v-if="upStandardProduct">
              <el-input
                v-model="scope.row.price"
                size="small"
                placeholder="单价(元)"
                @change="
                  value => upStandardProductListOfPrice(value, scope.row.id)
                "
                v-if="upStandardProduct"
              >
              </el-input>
              <span v-else>{{scope.row.price}}</span>
            </template>
          </el-table-column>
          <el-table-column prop="manHour" label="工时系数" width="120">
            <template slot-scope="scope">
              <el-input v-model="scope.row.manHour" size="small" placeholder="单价(元)"
                @change="(value)=>upStandardProductListOfManHour(value,scope.row.id)" v-if="upStandardProduct">
              <el-input
                v-model="scope.row.manHour"
                size="small"
                placeholder="单价(元)"
                @change="
                  value => upStandardProductListOfManHour(value, scope.row.id)
                "
                v-if="upStandardProduct"
              >
              </el-input>
              <span v-else>{{scope.row.manHour}}</span>
            </template>
          </el-table-column>
          <el-table-column prop="manHourGroup" label="工时分组" width="100" show-overflow-tooltip></el-table-column>
          <el-table-column
            prop="manHourGroup"
            label="工时分组"
            width="100"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column prop="templateId" label="模板" width="200">
            <template slot-scope="scope">
              <el-select v-model="scope.row.templateId" size="small" filterable :disabled="!upStandardProduct"
                @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-select
                v-model="scope.row.templateId"
                size="small"
                filterable
                :disabled="!upStandardProduct"
                @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-select>
            </template>
          </el-table-column>
          <el-table-column prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column>
          <el-table-column
            prop="section"
            label="区间"
            width="120"
            show-overflow-tooltip
          ></el-table-column>
          <el-table-column prop="section" label="操作" width="120">
            <template slot-scope="scope">
              <el-button type="text" @click="sectionUp(scope.row)">区间设置</el-button>
              <el-button type="text" @click="sectionUp(scope.row)"
                >区间设置</el-button
              >
            </template>
          </el-table-column>
        </el-table>
        <el-pagination style="position: absolute;right: 16px;bottom: 1px;" @current-change="handleCurrentChange"
          :current-page="currentPage" layout="total, prev, pager, next, jumper" :page-size="50" :total="total">
        <el-pagination
          style="position: absolute;right: 16px;bottom: 1px;"
          @current-change="handleCurrentChange"
          :current-page="currentPage"
          layout="total, prev, pager, next, jumper"
          :page-size="50"
          :total="total"
        >
        </el-pagination>
      </el-row>
    </div>
@@ -335,196 +543,443 @@
            <span class="required-span">* </span>型号:
          </el-col>
          <el-col :span="16" :offset="1">
            <el-input v-model="addOb.model" placeholder="请输入型号" clearable size="small" @keyup.enter.native="addStandardTree"></el-input>
            <el-input
              v-model="addOb.model"
              placeholder="请输入型号"
              clearable
              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 type="primary" @click="addStandardTree" :loading="addLoad">确 定</el-button>
        <el-button type="primary" @click="addStandardTree" :loading="addLoad"
          >确 定</el-button
        >
      </span>
    </el-dialog>
    <el-dialog title="批量编辑" :visible.sync="moreEdit" width="90%" class="more-edit">
      <div class="body" style="display: flex;flex-direction: column;height: 85vh;">
    <el-dialog
      title="批量编辑"
      :visible.sync="moreEdit"
      width="90%"
      class="more-edit"
    >
      <div
        class="body"
        style="display: flex;flex-direction: column;height: 85vh;"
      >
        <div class="search">
          <div class="search-item">
            <el-row style="width: 25%;margin-bottom: 16px;">
              <el-col :span="6" style="text-align: right;">
                <!-- <span class="required-span">* </span> -->
                要求值:</el-col>
                要求值:</el-col
              >
              <el-col :span="16">
                <el-input size="small" v-model="moreInfo.ask" clearable :disabled="moreSelects.length==0"></el-input>
                <el-input
                  size="small"
                  v-model="moreInfo.ask"
                  clearable
                  :disabled="moreSelects.length == 0"
                ></el-input>
              </el-col>
            </el-row>
            <el-row style="width: 25%;margin-bottom: 16px;">
              <el-col :span="6" style="text-align: right;">
                <!-- <span class="required-span">* </span> -->
                要求描述:</el-col>
              <el-col :span="16" style="display: flex;align-items: flex-start;height: 100%;">
                <el-input size="small" clearable type="textarea" :autosize="{ minRows: 1, maxRows: 3}"
                  v-model="moreInfo.tell" :disabled="moreSelects.length==0"></el-input>
                要求描述:</el-col
              >
              <el-col
                :span="16"
                style="display: flex;align-items: flex-start;height: 100%;"
              >
                <el-input
                  size="small"
                  clearable
                  type="textarea"
                  :autosize="{ minRows: 1, maxRows: 3 }"
                  v-model="moreInfo.tell"
                  :disabled="moreSelects.length == 0"
                ></el-input>
              </el-col>
            </el-row>
            <el-row style="width: 25%;margin-bottom: 16px;">
              <el-col :span="6" style="text-align: right;">
                <!-- <span class="required-span">* </span> -->
                试验方法:</el-col>
                试验方法:</el-col
              >
              <el-col :span="16">
                <el-select v-model="moreInfo.methodS" size="small" filterable style="width: 100%;"
                  :disabled="moreSelects.length==0" clearable>
                  <el-option v-for="(a, ai) in methodList" :key="ai" :label="a.label" :value="a.value"></el-option>
                <el-select
                  v-model="moreInfo.methodS"
                  size="small"
                  filterable
                  style="width: 100%;"
                  :disabled="moreSelects.length == 0"
                  clearable
                >
                  <el-option
                    v-for="(a, ai) in methodList"
                    :key="ai"
                    :label="a.label"
                    :value="a.value"
                  ></el-option>
                </el-select>
              </el-col>
            </el-row>
            <el-row style="width: 25%;margin-bottom: 16px;">
              <el-col :span="6" style="text-align: right;">
                <!-- <span class="required-span">* </span> -->
                单价(元):</el-col>
                单价(元):</el-col
              >
              <el-col :span="16">
                <el-input size="small" v-model="moreInfo.price" clearable :disabled="moreSelects.length==0"></el-input>
                <el-input
                  size="small"
                  v-model="moreInfo.price"
                  clearable
                  :disabled="moreSelects.length == 0"
                ></el-input>
              </el-col>
            </el-row>
            <el-row style="width: 25%;">
              <el-col :span="6" style="text-align: right;">
                <!-- <span class="required-span">* </span> -->
                工时系数:</el-col>
                工时系数:</el-col
              >
              <el-col :span="16">
                <el-input size="small" v-model="moreInfo.manHour" clearable
                  :disabled="moreSelects.length==0"></el-input>
                <el-input
                  size="small"
                  v-model="moreInfo.manHour"
                  clearable
                  :disabled="moreSelects.length == 0"
                ></el-input>
              </el-col>
            </el-row>
            <el-row style="width: 25%;">
              <el-col :span="6" style="text-align: right;">
                <!-- <span class="required-span">* </span> -->
                模板:</el-col>
                模板:</el-col
              >
              <el-col :span="16">
                <el-select v-model="moreInfo.templateId" size="small" filterable placeholder="模板" style="width: 100%;"
                  :disabled="moreSelects.length==0">
                  <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
                <el-select
                  v-model="moreInfo.templateId"
                  size="small"
                  filterable
                  placeholder="模板"
                  style="width: 100%;"
                  :disabled="moreSelects.length == 0"
                >
                  <el-option
                    v-for="(a, ai) in templateList"
                    :key="ai"
                    :label="a.name"
                    :value="a.id"
                  ></el-option>
                </el-select>
              </el-col>
            </el-row>
            <el-row style="width: 25%;">
              <el-col :span="6" style="text-align: right;">
                是否启用:</el-col>
              <el-col :span="6" style="text-align: right;"> 是否启用:</el-col>
              <el-col :span="16">
                <el-select v-model="moreInfo.state" size="small" filterable placeholder="模板" style="width: 100%;"
                  :disabled="moreSelects.length==0" clearable>
                <el-select
                  v-model="moreInfo.state"
                  size="small"
                  filterable
                  placeholder="模板"
                  style="width: 100%;"
                  :disabled="moreSelects.length == 0"
                  clearable
                >
                  <el-option label="启用" :value="1"></el-option>
                  <el-option label="不启用" :value="0"></el-option>
                </el-select>
              </el-col>
            </el-row>
            <el-row style="width: 100%;margin-top: 8px;">
              <el-col :span="24" style="display: flex;align-items: center;justify-content: end;">
                <el-button @click="clearProduct(1)" size="small" type="danger">重置单价</el-button>
                <el-button @click="clearProduct(2)" size="small" type="danger">重置工时系数</el-button>
                <el-button type="primary" size="small" @click="sectionUp(moreSelects)">设置区间</el-button>
                <el-button @click="moreEdit = false" size="small">取 消</el-button>
                <el-button type="primary" @click="subMoreEdit" :loading="moreEditLoad" size="small">保 存</el-button>
              <el-col
                :span="24"
                style="display: flex;align-items: center;justify-content: end;"
              >
                <el-button @click="clearProduct(1)" size="small" type="danger"
                  >重置单价</el-button
                >
                <el-button @click="clearProduct(2)" size="small" type="danger"
                  >重置工时系数</el-button
                >
                <el-button
                  type="primary"
                  size="small"
                  @click="sectionUp(moreSelects)"
                  >设置区间</el-button
                >
                <el-button @click="moreEdit = false" size="small"
                  >取 消</el-button
                >
                <el-button
                  type="primary"
                  @click="subMoreEdit"
                  :loading="moreEditLoad"
                  size="small"
                  >保 存</el-button
                >
              </el-col>
            </el-row>
          </div>
        </div>
        <div style="flex: 1;overflow-y: auto;" v-loading="productTableLoading0">
          <el-table :data="productList0" ref="productTable0" style="width: 100%;" height="96%" tooltip-effect="dark"
            stripe :fit="true" border @select-all="handleSelectAll0" @select="handleSelectionChange0"
            header-row-class-name="header-class" :row-key="row=>row.id" @filter-change="filterHandler" highlight-current-row>
            <el-table-column type="selection" width="50">
            </el-table-column>
            <el-table-column prop="sample" label="产品" min-width="100" show-overflow-tooltip></el-table-column>
            <el-table-column prop="model" label="型号" min-width="100" show-overflow-tooltip></el-table-column>
            <el-table-column prop="inspectionItem" label="检验项" min-width="140" show-overflow-tooltip :filters="filters0"
              :filter-multiple="false" column-key="inspectionItem" filter-placement="bottom-start"></el-table-column>
            <el-table-column prop="inspectionItemSubclass" label="检验项子项" min-width="140" show-overflow-tooltip
              :filters="filters1" :filter-multiple="false" column-key="inspectionItemSubclass"
              filter-placement="bottom-start"></el-table-column>
            <el-table-column prop="sonLaboratory" label="子实验室" width="130" show-overflow-tooltip :filters="filters"
              :filter-multiple="false" column-key="sonLaboratory" filter-placement="bottom-start"></el-table-column>
            <el-table-column prop="ask" label="要求值" min-width="200px"></el-table-column>
            <el-table-column prop="tell" label="要求描述" min-width="220px"></el-table-column>
            <el-table-column prop="methodS" label="试验方法" width="200"></el-table-column>
            <el-table-column prop="unit" label="计量单位" width="100" show-overflow-tooltip></el-table-column>
            <el-table-column prop="price" label="单价(元)" width="120"></el-table-column>
            <el-table-column prop="manHour" label="工时系数" width="120"></el-table-column>
            <el-table-column prop="manHourGroup" label="工时分组" width="100" show-overflow-tooltip></el-table-column>
          <el-table
            :data="productList0"
            ref="productTable0"
            style="width: 100%;"
            height="96%"
            tooltip-effect="dark"
            stripe
            :fit="true"
            border
            @select-all="handleSelectAll0"
            @select="handleSelectionChange0"
            header-row-class-name="header-class"
            :row-key="row => row.id"
            @filter-change="filterHandler"
            highlight-current-row
          >
            <el-table-column type="selection" width="50"> </el-table-column>
            <el-table-column
              prop="sample"
              label="产品"
              min-width="100"
              show-overflow-tooltip
            ></el-table-column>
            <el-table-column
              prop="model"
              label="型号"
              min-width="100"
              show-overflow-tooltip
            ></el-table-column>
            <el-table-column
              prop="inspectionItem"
              label="检验项"
              min-width="140"
              show-overflow-tooltip
              :filters="filters0"
              :filter-multiple="false"
              column-key="inspectionItem"
              filter-placement="bottom-start"
            ></el-table-column>
            <el-table-column
              prop="inspectionItemSubclass"
              label="检验项子项"
              min-width="140"
              show-overflow-tooltip
              :filters="filters1"
              :filter-multiple="false"
              column-key="inspectionItemSubclass"
              filter-placement="bottom-start"
            ></el-table-column>
            <el-table-column
              prop="sonLaboratory"
              label="子实验室"
              width="130"
              show-overflow-tooltip
              :filters="filters"
              :filter-multiple="false"
              column-key="sonLaboratory"
              filter-placement="bottom-start"
            ></el-table-column>
            <el-table-column
              prop="ask"
              label="要求值"
              min-width="200px"
            ></el-table-column>
            <el-table-column
              prop="tell"
              label="要求描述"
              min-width="220px"
            ></el-table-column>
            <el-table-column
              prop="methodS"
              label="试验方法"
              width="200"
            ></el-table-column>
            <el-table-column
              prop="unit"
              label="计量单位"
              width="100"
              show-overflow-tooltip
            ></el-table-column>
            <el-table-column
              prop="price"
              label="单价(元)"
              width="120"
            ></el-table-column>
            <el-table-column
              prop="manHour"
              label="工时系数"
              width="120"
            ></el-table-column>
            <el-table-column
              prop="manHourGroup"
              label="工时分组"
              width="100"
              show-overflow-tooltip
            ></el-table-column>
            <el-table-column prop="templateId" label="模板" width="200">
              <template slot-scope="scope">
                {{ templateList.find(item => item.id == scope.row.templateId)?templateList.find(item => item.id == scope.row.templateId).name:'' }}
                {{
                  templateList.find(item => item.id == scope.row.templateId)
                    ? templateList.find(item => item.id == scope.row.templateId)
                        .name
                    : ""
                }}
              </template>
            </el-table-column>
            <el-table-column prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column>
            <el-table-column
              prop="section"
              label="区间"
              width="120"
              show-overflow-tooltip
            ></el-table-column>
          </el-table>
          <el-pagination style="position: absolute;right: 16px;bottom: 4px;" @current-change="handleCurrentChange0"
            :current-page="currentPage0" layout="total, prev, pager, next, jumper" :page-size="100" :total="total0">
          <el-pagination
            style="position: absolute;right: 16px;bottom: 4px;"
            @current-change="handleCurrentChange0"
            :current-page="currentPage0"
            layout="total, prev, pager, next, jumper"
            :page-size="100"
            :total="total0"
          >
          </el-pagination>
        </div>
      </div>
    </el-dialog>
    <el-dialog title="区间设置" :visible.sync="sectionUpDia" width="70%" :close-on-click-modal="false">
    <el-dialog
      title="区间设置"
      :visible.sync="sectionUpDia"
      width="70%"
      :close-on-click-modal="false"
    >
      <div class="body" style="padding: 5px 0;">
        <el-table :data="sectionList" border style="width: 100%" height="350px">
          <el-table-column type="index" label="序号" width="70" align="center">
          </el-table-column>
          <el-table-column label="区间" align="center">
            <template slot-scope="scope">
              <el-input size="small" v-model="scope.row.thing" clearable placeholder="区间"></el-input>
              <el-input
                size="small"
                v-model="scope.row.thing"
                clearable
                placeholder="区间"
              ></el-input>
            </template>
          </el-table-column>
          <el-table-column label="要求值" align="center">
            <template slot-scope="scope">
              <el-input size="small" v-model="scope.row.ask" clearable placeholder="要求值"></el-input>
              <el-input
                size="small"
                v-model="scope.row.ask"
                clearable
                placeholder="要求值"
              ></el-input>
            </template>
          </el-table-column>
          <el-table-column label="要求描述" align="center">
            <template slot-scope="scope">
              <el-input size="small" placeholder="要求描述" v-model="scope.row.tell" clearable type="textarea"
                :autosize="{ minRows: 1, maxRows: 2}"></el-input>
              <el-input
                size="small"
                placeholder="要求描述"
                v-model="scope.row.tell"
                clearable
                type="textarea"
                :autosize="{ minRows: 1, maxRows: 2 }"
              ></el-input>
            </template>
          </el-table-column>
          <el-table-column label="单价" align="center" width="120">
            <template slot-scope="scope">
              <el-input size="small" v-model="scope.row.price" clearable placeholder="单价"></el-input>
              <el-input
                size="small"
                v-model="scope.row.price"
                clearable
                placeholder="单价"
              ></el-input>
            </template>
          </el-table-column>
          <el-table-column label="工时系数" align="center" width="120">
            <template slot-scope="scope">
              <el-input size="small" v-model="scope.row.manHour" clearable placeholder="工时系数"></el-input>
              <el-input
                size="small"
                v-model="scope.row.manHour"
                clearable
                placeholder="工时系数"
              ></el-input>
            </template>
          </el-table-column>
          <el-table-column label="操作" width="70" align="center">
            <template slot-scope="scope">
              <el-button size="mini" type="danger" icon="el-icon-minus" circle
                @click="sectionList.splice(scope.$index, 1)"></el-button>
              <el-button
                size="mini"
                type="danger"
                icon="el-icon-minus"
                circle
                @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 type="primary" @click="sectionLoadAdd" :loading="sectionLoad">保 存</el-button>
        <el-button type="primary" @click="sectionList.push({thing: '',price: sectionRow.price,manHour: sectionRow.manHour})" icon="el-icon-plus"></el-button>
        <el-button type="primary" @click="sectionLoadAdd" :loading="sectionLoad"
          >保 存</el-button
        >
        <el-button
          type="primary"
          @click="
            sectionList.push({
              thing: '',
              price: sectionRow.price,
              manHour: sectionRow.manHour
            })
          "
          icon="el-icon-plus"
        ></el-button>
      </span>
    </el-dialog>
    <el-dialog title="数据导入" :visible.sync="uploadDia" width="500px">
      <div style="margin: 0 auto;">
        <el-upload ref="upload" drag :action="javaApi + $api.standardTree.inExcelOfTree + '/' + isEquipment" :headers="token" :file-list="fileList" name="file"
          :auto-upload="false" accept=".xlsx" :limit="1" :on-change="beforeUpload" :on-success="onSuccess"
          :on-error="onError">
        <el-upload
          ref="upload"
          drag
          :action="
            javaApi + $api.standardTree.inExcelOfTree + '/' + isEquipment
          "
          :headers="token"
          :file-list="fileList"
          name="file"
          :auto-upload="false"
          accept=".xlsx"
          :limit="1"
          :on-change="beforeUpload"
          :on-success="onSuccess"
          :on-error="onError"
        >
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="uploadDia = false">取 消</el-button>
        <el-button type="primary" @click="submitUpload()" :loading="uploading">上 传</el-button>
        <el-button type="primary" @click="submitUpload()" :loading="uploading"
          >上 传</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>
<script>
  import ValueTable from '../tool/value-table.vue'
import ValueTable from "../tool/value-table.vue";
  export default {
    components: {
      ValueTable
@@ -533,7 +988,7 @@
      return {
        search: null,
        list: [],
        selectTree: '',
      selectTree: "",
        factory: [],
        addDia: false,
        addOb: {
@@ -570,8 +1025,8 @@
        componentData: {
          entity: {
            orderBy: {
              field: 'id',
              order: 'asc'
            field: "id",
            order: "asc"
            }
          },
          isIndex: true,
@@ -595,7 +1050,7 @@
              select: []
            }
          },
          selectField: {},
        selectField: {}
        },
        expandedKeys: [],
        filters: [],
@@ -614,12 +1069,12 @@
        currentPage0: 1,
        productList0: [],
        moreInfo: {
          ask: '',
          tell: '',
          methodS: '',
          price: '',
          manHour: '',
          templateId: '',
        ask: "",
        tell: "",
        methodS: "",
        price: "",
        manHour: "",
        templateId: "",
          state: null
        },
        methodList: [],
@@ -637,45 +1092,45 @@
        uploading: false,
        isEquipment: false,
        outLoading:false
      }
    };
    },
    watch: {
      moreEdit(val) {
        if (!val) {
          this.$refs.productTable0.clearSelection()
          this.moreSelects = []
        this.$refs.productTable0.clearSelection();
        this.moreSelects = [];
          this.currentPage0 = 1;
          this.productList0 = []
        this.productList0 = [];
          this.moreInfo = {
            ask: '',
            tell: '',
            methodS: '',
            price: '',
            manHour: '',
            templateId: ''
          }
          ask: "",
          tell: "",
          methodS: "",
          price: "",
          manHour: "",
          templateId: ""
        };
        }
      }
    },
    mounted() {
      this.getPower()
      this.selectEnumByCategoryForFactory()
      this.selectStandardTreeList()
      this.obtainItemParameterList()
      this.selectTestObjectByName()
      this.selectStandardMethods()
      this.selectEnumByCategoryForDevice()
      this.selectEnumByCategory()
      this.selectEnumByCategoryForValue()
      this.selectEnumByCategoryForSpecial()
      this.selectEnumByCategoryForInspectionValueType()
      this.selectEnumByCategoryForSonLaboratory()
      this.getStandardTemplate()
      this.selectStandardMethods()
      this.token = {
        'token': sessionStorage.getItem('token')
      },
      this.isEquipment = this.PROJECT === '装备电缆' ? true : false
    this.getPower();
    this.selectEnumByCategoryForFactory();
    this.selectStandardTreeList();
    this.obtainItemParameterList();
    this.selectTestObjectByName();
    this.selectStandardMethods();
    this.selectEnumByCategoryForDevice();
    this.selectEnumByCategory();
    this.selectEnumByCategoryForValue();
    this.selectEnumByCategoryForSpecial();
    this.selectEnumByCategoryForInspectionValueType();
    this.selectEnumByCategoryForSonLaboratory();
    this.getStandardTemplate();
    this.selectStandardMethods();
    (this.token = {
      token: sessionStorage.getItem("token")
    }),
      (this.isEquipment = this.PROJECT === "装备电缆" ? true : false);
    },
    methods: {
      filterNode(value, data) {
@@ -683,67 +1138,72 @@
        return data.label.indexOf(value) !== -1;
      },
      searchFilter() {
        this.$refs.tree.filter(this.search)
      this.$refs.tree.filter(this.search);
      },
      refresh() {
        this.upIndex++
      this.upIndex++;
      },
      handleNodeClick(val, node, el) { //树的值
        this.total = 0
        this.currentPage = 1
        this.selectTree = ''
        this.getNodeParent(node)
        this.selectTree = this.selectTree.replace(' - ', '')
        let data = this.selectTree.split(' - ')
        let data2 = ''
    handleNodeClick(val, node, el) {
      //树的值
      this.total = 0;
      this.currentPage = 1;
      this.selectTree = "";
      this.getNodeParent(node);
      this.selectTree = this.selectTree.replace(" - ", "");
      let data = this.selectTree.split(" - ");
      let data2 = "";
        for (let index = data.length - 1; index >= 0; index--) {
          data2 += " - " + data[index]
        data2 += " - " + data[index];
        }
        this.selectTree = data2.replace(' - ', '')
        this.selectsStandardMethodByFLSSM()
        let trees = this.selectTree.split(" - ")
        this.addOb.factory = trees[0]
        this.addOb.laboratory = trees[1]
        this.addOb.sampleType = trees[2]
        this.addOb.sample = trees[3]
      this.selectTree = data2.replace(" - ", "");
      this.selectsStandardMethodByFLSSM();
      let trees = this.selectTree.split(" - ");
      this.addOb.factory = trees[0];
      this.addOb.laboratory = trees[1];
      this.addOb.sampleType = trees[2];
      this.addOb.sample = trees[3];
      },
      getNodeParent(val) {
        if (val.parent != null) {
          if(val.data.children === null){
            this.selectTree += ' - ' + val.label + ' - ' + 'null'
          this.selectTree += " - " + val.label + " - " + "null";
          }else{
            this.selectTree += ' - ' + val.label
          this.selectTree += " - " + val.label;
          }
          this.getNodeParent(val.parent)
        this.getNodeParent(val.parent);
        }
      },
      remove(node, data) {
        this.$confirm("是否删除该层级", "提示", {
          type: "error"
        }).then(() => {
          // this.treeLoad = true
          this.selectTree = ''
          this.getNodeParent(node)
          this.selectTree = this.selectTree.replace(' - ', '')
          let data = this.selectTree.split(' - ')
          let data2 = ''
          for (let index = data.length - 1; index >= 0; index--) {
            data2 += " - " + data[index]
          }
          this.selectTree = data2.replace(' - ', '')
          this.$axios.post(this.$api.standardTree.delStandardTree, {
            tree: this.selectTree
          }).then(res => {
            if (res.code == 201) return
            this.$message.success('已删除')
            let arr = this.selectTree.split(' - ');
            this.deleteStandard(this.list, arr[arr.length - 1])
            // this.selectStandardTreeList()
            this.selectTree = ''
            this.standardList = []
            this.productList = []
          })
        }).catch(e => {})
        .then(() => {
          // this.treeLoad = true
          this.selectTree = "";
          this.getNodeParent(node);
          this.selectTree = this.selectTree.replace(" - ", "");
          let data = this.selectTree.split(" - ");
          let data2 = "";
          for (let index = data.length - 1; index >= 0; index--) {
            data2 += " - " + data[index];
          }
          this.selectTree = data2.replace(" - ", "");
          this.$axios
            .post(this.$api.standardTree.delStandardTree, {
              tree: this.selectTree
            })
            .then(res => {
              if (res.code == 201) return;
              this.$message.success("已删除");
              let arr = this.selectTree.split(" - ");
              this.deleteStandard(this.list, arr[arr.length - 1]);
              // this.selectStandardTreeList()
              this.selectTree = "";
              this.standardList = [];
              this.productList = [];
            });
        })
        .catch(e => {});
      },
      deleteStandard(arr, label) {
        arr.forEach((item, index) => {
@@ -752,479 +1212,539 @@
          } else {
            item.children && this.deleteStandard(item.children, label);
          }
        })
      });
      },
      nodeOpen(data, node, el) {
        $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
      $($(el.$el).find(".node_i")[0]).attr(
        "class",
        "node_i el-icon-folder-opened"
      );
      },
      nodeClose(data, node, el) {
        $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
      $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder");
      },
      selectEnumByCategoryForFactory() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "工厂"
        }).then(res => {
          this.factory = res.data
        })
        .then(res => {
          this.factory = res.data;
        });
      },
      selectEnumByCategoryForSonLaboratory() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "子实验室"
        }).then(res => {
          this.factory = []
        })
        .then(res => {
          this.factory = [];
          res.data.forEach(a => {
            this.filters.push({
              text: a.label,
              value: a.value
            })
          })
        })
            });
          });
        });
      },
      selectEnumByCategoryForDevice() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "设备分类"
        }).then(res => {
          this.componentData.tagField.deviceGroup.select = res.data
        })
        .then(res => {
          this.componentData.tagField.deviceGroup.select = res.data;
        });
      },
      selectEnumByCategory() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "检验项类型"
        }).then(res => {
          res.data[1].type = 'info'
          this.componentData.tagField.inspectionItemType.select = res.data
        })
        .then(res => {
          res.data[1].type = "info";
          this.componentData.tagField.inspectionItemType.select = res.data;
        });
      },
      selectEnumByCategoryForValue() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "取值类型"
        }).then(res => {
          this.componentData.tagField.valueType.select = res.data
        })
        .then(res => {
          this.componentData.tagField.valueType.select = res.data;
        });
      },
      selectEnumByCategoryForSpecial() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "是否"
        }).then(res => {
          this.componentData.tagField.bsm.select = res.data
        })
        .then(res => {
          this.componentData.tagField.bsm.select = res.data;
        });
      },
      selectEnumByCategoryForInspectionValueType() {
        this.$axios.post(this.$api.enums.selectEnumByCategory, {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "检验值类型"
        }).then(res => {
          this.componentData.tagField.inspectionValueType.select = res.data
        })
        .then(res => {
          this.componentData.tagField.inspectionValueType.select = res.data;
        });
      },
      selectStandardTreeList() {
        this.treeLoad = true
        this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => {
          this.list = res.data
      this.treeLoad = true;
      this.$axios
        .get(this.$api.standardTree.selectStandardTreeList)
        .then(res => {
          this.list = res.data;
          this.list.forEach(a => {
            this.expandedKeys.push(a.label)
          })
          this.treeLoad = false
        })
            this.expandedKeys.push(a.label);
          });
          this.treeLoad = false;
        });
      },
      obtainItemParameterList() {
        this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
          let data = []
      this.$axios
        .get(this.$api.laboratoryScope.obtainItemParameterList)
        .then(res => {
          let data = [];
          res.data.forEach(a => {
            data.push({
              label: a.laboratoryName,
              value: a.laboratoryName
            })
          })
          this.laboratory = data
        })
            });
          });
          this.laboratory = data;
        });
      },
      selectTestObjectByName() {
        this.$axios.get(this.$api.capacityScope.selectTestObjectByName).then(res => {
          let data = []
      this.$axios
        .get(this.$api.capacityScope.selectTestObjectByName)
        .then(res => {
          let data = [];
          res.data.forEach(a => {
            data.push({
              label: a.specimenName,
              value: a.specimenName
            })
          })
          this.sampleType = data
        })
            });
          });
          this.sampleType = data;
        });
      },
      selectStandardMethods() {
        this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => {
          let data = []
      this.$axios
        .get(this.$api.standardMethod.selectStandardMethods)
        .then(res => {
          let data = [];
          res.data.forEach(a => {
            data.push({
              label: a.name,
              value: a.id
            })
          })
          this.standardEnum = data
        })
            });
          });
          this.standardEnum = data;
        });
      },
      addStandardMethodList() {
        if (this.standardId == null || this.standardId == '') {
          this.$message.error('标准方法未选择')
          return
      if (this.standardId == null || this.standardId == "") {
        this.$message.error("标准方法未选择");
        return;
        }
        this.addLoad2 = true
        this.$axios.post(this.$api.standardTree.addStandardMethodList, {
      this.addLoad2 = true;
      this.$axios
        .post(this.$api.standardTree.addStandardMethodList, {
          standardId: this.standardId,
          tree: this.selectTree
        }).then(res => {
          this.addLoad2 = false
          this.addStandardDia = false
          this.$message.success('添加成功')
          this.selectsStandardMethodByFLSSM()
        })
        .then(res => {
          this.addLoad2 = false;
          this.addStandardDia = false;
          this.$message.success("添加成功");
          this.selectsStandardMethodByFLSSM();
        });
      },
      addStandardTree() {
        if (this.addOb.sampleType == null || this.addOb.sampleType == '') {
          this.$message.error('对象不存在')
          return
      if (this.addOb.sampleType == null || this.addOb.sampleType == "") {
        this.$message.error("对象不存在");
        return;
        }
        if (this.addOb.model == null || this.addOb.model == '') {
          this.$message.error('请填写型号')
          return
      if (this.addOb.model == null || this.addOb.model == "") {
        this.$message.error("请填写型号");
        return;
        }
        this.addLoad = true
        this.$axios.post(this.$api.standardTree.addStandardTree, this.addOb, {
      this.addLoad = true;
      this.$axios
        .post(this.$api.standardTree.addStandardTree, this.addOb, {
          headers: {
            'Content-Type': 'application/json'
            "Content-Type": "application/json"
          }
        }).then(res => {
        })
        .then(res => {
          if (res.code === 201) {
            this.addLoad = false
            return
            this.addLoad = false;
            return;
          }
          this.$message.success('添加成功')
          this.addDia = false
          this.$message.success("添加成功");
          this.addDia = false;
          this.list
            .find(a => a.label == this.addOb.factory).children
            .find(a => a.label == this.addOb.laboratory).children
            .find(a => a.label == this.addOb.sampleType).children
            .find(a => a.label == this.addOb.sample).children.push({
              code: '[5]',
            .find(a => a.label == this.addOb.factory)
            .children.find(a => a.label == this.addOb.laboratory)
            .children.find(a => a.label == this.addOb.sampleType)
            .children.find(a => a.label == this.addOb.sample)
            .children.push({
              code: "[5]",
              label: this.addOb.model,
              value: this.addOb.model,
              value: this.addOb.model
            });
          this.addLoad = false;
            })
          this.addLoad = false
        }).catch(e => {
          this.addDia = false
          this.addLoad = false
        })
        .catch(e => {
          this.addDia = false;
          this.addLoad = false;
        });
      },
      selectsStandardMethodByFLSSM() {
        this.tableLoad = true
        this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
      this.tableLoad = true;
      this.$axios
        .post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
          tree: this.selectTree
        }).then(res => {
          this.tableLoad = false
          this.standardList = res.data.standardMethodList
        })
        .then(res => {
          this.tableLoad = false;
          this.standardList = res.data.standardMethodList;
          if (this.standardList && this.standardList.length > 0) {
            this.$refs.standard.setCurrentRow(this.standardList[0])
            this.rowClick(this.standardList[0])
            this.$refs.standard.setCurrentRow(this.standardList[0]);
            this.rowClick(this.standardList[0]);
          } else {
            this.productList = [];
          }
        })
        });
      },
      getPower() {
        let power = JSON.parse(sessionStorage.getItem('power'))
        let add = false
        let addStandardMethod = false
        let upStandardProduct = false
        let delStandardMethod = false
        let delStandardProduct = false
        let addStandardProduct = false
        let delStandardTree = false
        let inExcelOfTreePower = false
      let power = JSON.parse(sessionStorage.getItem("power"));
      let add = false;
      let addStandardMethod = false;
      let upStandardProduct = false;
      let delStandardMethod = false;
      let delStandardProduct = false;
      let addStandardProduct = false;
      let delStandardTree = false;
      let inExcelOfTreePower = false;
        for (var i = 0; i < power.length; i++) {
          if (power[i].menuMethod == 'addStandardTree') {
            add = true
        if (power[i].menuMethod == "addStandardTree") {
          add = true;
          }
          if (power[i].menuMethod == 'addStandardMethodList') {
            addStandardMethod = true
        if (power[i].menuMethod == "addStandardMethodList") {
          addStandardMethod = true;
          }
          if (power[i].menuMethod == 'upStandardProductList') {
            upStandardProduct = true
        if (power[i].menuMethod == "upStandardProductList") {
          upStandardProduct = true;
          }
          if (power[i].menuMethod == 'delStandardMethodByFLSSM') {
            delStandardMethod = true
        if (power[i].menuMethod == "delStandardMethodByFLSSM") {
          delStandardMethod = true;
          }
          if (power[i].menuMethod == 'delStandardProductByIds') {
            delStandardProduct = true
        if (power[i].menuMethod == "delStandardProductByIds") {
          delStandardProduct = true;
          }
          if (power[i].menuMethod == 'addStandardProduct') {
            addStandardProduct = true
        if (power[i].menuMethod == "addStandardProduct") {
          addStandardProduct = true;
          }
          if (power[i].menuMethod == 'delStandardTree') {
            delStandardTree = true
        if (power[i].menuMethod == "delStandardTree") {
          delStandardTree = true;
          }
          if (power[i].menuMethod == 'inExcelOfTree') {
            inExcelOfTreePower = true
        if (power[i].menuMethod == "inExcelOfTree") {
          inExcelOfTreePower = true;
          }
        }
        this.addPower = add
        this.addStandardMethod = addStandardMethod
        this.upStandardProduct = upStandardProduct
        this.delStandardMethod = delStandardMethod
        this.delStandardProduct = delStandardProduct
        this.addStandardProduct = addStandardProduct
        this.delStandardTree = delStandardTree
        this.inExcelOfTreePower = inExcelOfTreePower
      this.addPower = add;
      this.addStandardMethod = addStandardMethod;
      this.upStandardProduct = upStandardProduct;
      this.delStandardMethod = delStandardMethod;
      this.delStandardProduct = delStandardProduct;
      this.addStandardProduct = addStandardProduct;
      this.delStandardTree = delStandardTree;
      this.inExcelOfTreePower = inExcelOfTreePower;
      },
      upStandardProductList(value, index) {
        this.$axios.post(this.$api.standardTree.upStandardProductList, {
      this.$axios
        .post(this.$api.standardTree.upStandardProductList, {
          str: JSON.stringify({
            id: index,
            ask: value
          })
        }).then(res => {
          if (res.code == 201) {
            this.$message.error('未保存')
            return
          }
          this.$message.success('已保存')
        })
        .then(res => {
          if (res.code == 201) {
            this.$message.error("未保存");
            return;
          }
          this.$message.success("已保存");
        });
      },
      upStandardProductListOfTell(value, index) {
        this.$axios.post(this.$api.standardTree.upStandardProductList, {
      this.$axios
        .post(this.$api.standardTree.upStandardProductList, {
          str: JSON.stringify({
            id: index,
            tell: value
          })
        }).then(res => {
          if (res.code == 201) {
            this.$message.error('未保存')
            return
          }
          this.$message.success('已保存')
        })
        .then(res => {
          if (res.code == 201) {
            this.$message.error("未保存");
            return;
          }
          this.$message.success("已保存");
        });
      },
      upStandardProductListOfMethodS(value, index) {
        this.$axios.post(this.$api.standardTree.upStandardProductList, {
      this.$axios
        .post(this.$api.standardTree.upStandardProductList, {
          str: JSON.stringify({
            id: index,
            methodS: value
          })
        }).then(res => {
        })
        .then(res => {
          if (res.code == 201) {
            this.$message.error('未保存')
            return
            this.$message.error("未保存");
            return;
          }
          // this.$message.success('已保存')
        })
        });
      },
      upStandardProductListOfPrice(value, index) {
        this.$axios.post(this.$api.standardTree.upStandardProductList, {
      this.$axios
        .post(this.$api.standardTree.upStandardProductList, {
          str: JSON.stringify({
            id: index,
            price: value
          })
        }).then(res => {
        })
        .then(res => {
          if (res.code == 201) {
            this.$message.error('未保存')
            return
            this.$message.error("未保存");
            return;
          }
          // this.$message.success('已保存')
        })
        });
      },
      upStandardProductListOfManHour(value, index) {
        this.$axios.post(this.$api.standardTree.upStandardProductList, {
      this.$axios
        .post(this.$api.standardTree.upStandardProductList, {
          str: JSON.stringify({
            id: index,
            manHour: value
          })
        }).then(res => {
        })
        .then(res => {
          if (res.code == 201) {
            this.$message.error('未保存')
            return
            this.$message.error("未保存");
            return;
          }
          // this.$message.success('已保存')
        })
        });
      },
      upStandardProductListOfTemplate(value, index) {
        this.$axios.post(this.$api.standardTree.upStandardProductList, {
      this.$axios
        .post(this.$api.standardTree.upStandardProductList, {
          str: JSON.stringify({
            id: index,
            templateId: value
          })
        }).then(res => {
        })
        .then(res => {
          if (res.code == 201) {
            this.$message.error('未保存')
            return
            this.$message.error("未保存");
            return;
          }
          // this.$message.success('已保存')
        })
        });
      },
      delStandardMethodByFLSSM(id) {
        this.$confirm('是否删除当前数据?', "警告", {
      this.$confirm("是否删除当前数据?", "警告", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          this.tableLoad = true
          this.$axios.post(this.$api.standardTree.delStandardMethodByFLSSM, {
            id: id
          }).then(res => {
            if (res.code == 201) {
              return
            }
            this.$message.success('已删除')
            this.selectsStandardMethodByFLSSM()
          })
        }).catch(() => {})
        .then(() => {
          this.tableLoad = true;
          this.$axios
            .post(this.$api.standardTree.delStandardMethodByFLSSM, {
              id: id
            })
            .then(res => {
              if (res.code == 201) {
                return;
              }
              this.$message.success("已删除");
              this.selectsStandardMethodByFLSSM();
            });
        })
        .catch(() => {});
      },
      handleSelectionChange(val) {
        this.selects = []
      this.selects = [];
        val.forEach(a => {
          this.selects.push(a.id)
        })
        this.selects.push(a.id);
      });
      },
      delStandardProductByIds() {
        if (this.selects.length == 0) {
          this.$message.error('未选中数据')
          return
        this.$message.error("未选中数据");
        return;
        }
        this.$confirm('是否删除当前选中 ' + this.selects.length + ' 条数据?', "警告", {
      this.$confirm(
        "是否删除当前选中 " + this.selects.length + " 条数据?",
        "警告",
        {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          this.tableLoad = true
          this.$axios.post(this.$api.standardTree.delStandardProductByIds, {
            ids: JSON.stringify(this.selects)
          }).then(res => {
            if (res.code == 201) {
              return
            }
            this.$message.success('已删除')
            this.selectsStandardMethodByFLSSM()
      )
        .then(() => {
          this.tableLoad = true;
          this.$axios
            .post(this.$api.standardTree.delStandardProductByIds, {
              ids: JSON.stringify(this.selects)
          })
        }).catch(() => {})
            .then(res => {
              if (res.code == 201) {
                return;
              }
              this.$message.success("已删除");
              this.selectsStandardMethodByFLSSM();
            });
        })
        .catch(() => {});
      },
      addStandardProductDo() {
        let selects = this.$refs.ValueTable.multipleSelection
      let selects = this.$refs.ValueTable.multipleSelection;
        if (selects.length == 0) {
          this.$message.error('未选择数据')
          return
        this.$message.error("未选择数据");
        return;
        }
        let select = []
      let select = [];
        selects.forEach(a => {
          select.push(a.id)
        })
        this.tableLoad = true
        this.$axios.post(this.$api.standardTree.addStandardProduct, {
        select.push(a.id);
      });
      this.tableLoad = true;
      this.$axios
        .post(this.$api.standardTree.addStandardProduct, {
          ids: JSON.stringify(select),
          tree: this.selectTree
        }).then(res => {
          if (res.code == 201) {
            return
          }
          this.$message.success('添加成功')
          this.selectsStandardMethodByFLSSM()
        })
        this.addProductDia = false
        .then(res => {
          if (res.code == 201) {
            return;
          }
          this.$message.success("添加成功");
          this.selectsStandardMethodByFLSSM();
        });
      this.addProductDia = false;
      },
      rowClick(row, column, event) {
        this.currentPage = 1;
        this.tableLoad2 = true
        this.standardId = row.id
        this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, {
      this.tableLoad2 = true;
      this.standardId = row.id;
      this.$axios
        .post(this.$api.standardTree.selectStandardProductListByMethodId, {
          id: row.id,
          tree: this.selectTree,
          page: this.currentPage
        }).then(res => {
          this.productList = res.data.productList
          this.total = res.data.total
        })
        .then(res => {
          this.productList = res.data.productList;
          this.total = res.data.total;
          setTimeout(() => {
            this.productList.forEach(a => {
              if (a.state == 1) this.toggleSelection(a)
            })
          }, 300)
          this.tableLoad2 = false
        })
              if (a.state == 1) this.toggleSelection(a);
            });
          }, 300);
          this.tableLoad2 = false;
        });
      },
      toggleSelection(row) {
        this.$refs.productTable.toggleRowSelection(row, true);
      },
      tableRowClassName({
        row,
        rowIndex
      }) {
    tableRowClassName({ row, rowIndex }) {
        if (row.state === 0) {
          return 'warning-row';
        return "warning-row";
        }
        return '';
      return "";
      },
      upProductSelect(selection, row) {
        row.state = (row.state == 1 ? 0 : 1)
        this.$axios.post(this.$api.standardTree.upStandardProductList, {
      row.state = row.state == 1 ? 0 : 1;
      this.$axios
        .post(this.$api.standardTree.upStandardProductList, {
          str: JSON.stringify({
            id: row.id,
            state: row.state
          })
        }).then(res => {
        })
        .then(res => {
          if (res.code == 201) {
            this.$message.error('未保存')
            return
            this.$message.error("未保存");
            return;
          }
          // this.$message.success('已保存')
        })
        });
      },
      filterHandler(value) {
        for (let column in value) {
          if (value[column].length === 0) {
            if (column === 'inspectionItem') {
              this.inspectionItem = null
            } else if (column === 'inspectionItemSubclass') {
              this.inspectionItemSubclass = null
            } else if (column === 'sonLaboratory') {
              this.sonLaboratory = null
          if (column === "inspectionItem") {
            this.inspectionItem = null;
          } else if (column === "inspectionItemSubclass") {
            this.inspectionItemSubclass = null;
          } else if (column === "sonLaboratory") {
            this.sonLaboratory = null;
            }
          } else {
            if (column === 'inspectionItem') {
              this.inspectionItem = value[column][0]
            } else if (column === 'inspectionItemSubclass') {
              this.inspectionItemSubclass = value[column][0]
            } else if (column === 'sonLaboratory') {
              this.sonLaboratory = value[column][0]
          if (column === "inspectionItem") {
            this.inspectionItem = value[column][0];
          } else if (column === "inspectionItemSubclass") {
            this.inspectionItemSubclass = value[column][0];
          } else if (column === "sonLaboratory") {
            this.sonLaboratory = value[column][0];
            }
          }
          this.getList()
        this.getList();
        }
      },
      handleAll(e) {
        if (e.length > 0) {
          this.productList.map(m => {
            m.state = 0
            this.upProductSelect(null, m)
            return m
          })
          m.state = 0;
          this.upProductSelect(null, m);
          return m;
        });
        } else {
          this.productList.map(m => {
            m.state = 1
            this.upProductSelect(null, m)
            return m
          })
          m.state = 1;
          this.upProductSelect(null, m);
          return m;
        });
        }
      },
      sectionUp(row) {
        if (Array.isArray(row)) {
          // 值是一个数组
          if (row.length === 0) {
            return this.$message.error('请选择检验项')
          return this.$message.error("请选择检验项");
          }
          this.sectionRow = {}
          this.sectionUpDia = true
          this.sectionList = []
        this.sectionRow = {};
        this.sectionUpDia = true;
        this.sectionList = [];
        } else {
          // 值是一个对象
          this.sectionRow = row
          this.sectionUpDia = true
          this.sectionList = []
          if (this.sectionRow.section != null && this.sectionRow.section != '') {
        this.sectionRow = row;
        this.sectionUpDia = true;
        this.sectionList = [];
        if (this.sectionRow.section != null && this.sectionRow.section != "") {
            JSON.parse(this.sectionRow.section).forEach((a, ai) => {
              this.sectionList.push({
                thing: a,
@@ -1232,42 +1752,43 @@
                tell: JSON.parse(this.sectionRow.tell)[ai],
                price: JSON.parse(this.sectionRow.price)[ai],
                manHour: JSON.parse(this.sectionRow.manHour)[ai]
              })
            })
            });
          });
          }
        }
      },
      sectionLoadAdd() {
        let sectionList = []
        let askList = []
        let tellList = []
        let priceList = []
        let manHourList = []
      let sectionList = [];
      let askList = [];
      let tellList = [];
      let priceList = [];
      let manHourList = [];
        this.sectionList.forEach(a => {
          if (a.thing !== '') {
            sectionList.push(a.thing)
            askList.push(a.ask)
            tellList.push(a.tell)
            priceList.push(a.price)
            manHourList.push(a.manHour)
        if (a.thing !== "") {
          sectionList.push(a.thing);
          askList.push(a.ask);
          tellList.push(a.tell);
          priceList.push(a.price);
          manHourList.push(a.manHour);
          }
        })
      });
        if (sectionList.length === 0) {
          this.sectionRow.section = null
          this.sectionRow.ask = null
          this.sectionRow.tell = null
          this.sectionRow.price = null
          this.sectionRow.manHour = null
        this.sectionRow.section = null;
        this.sectionRow.ask = null;
        this.sectionRow.tell = null;
        this.sectionRow.price = null;
        this.sectionRow.manHour = null;
        } else {
          this.sectionRow.section = JSON.stringify(sectionList)
          this.sectionRow.ask = JSON.stringify(askList)
          this.sectionRow.tell = JSON.stringify(tellList)
          this.sectionRow.price = JSON.stringify(priceList)
          this.sectionRow.manHour = JSON.stringify(manHourList)
        this.sectionRow.section = JSON.stringify(sectionList);
        this.sectionRow.ask = JSON.stringify(askList);
        this.sectionRow.tell = JSON.stringify(tellList);
        this.sectionRow.price = JSON.stringify(priceList);
        this.sectionRow.manHour = JSON.stringify(manHourList);
        }
        this.sectionLoad = true
      this.sectionLoad = true;
        if (this.moreSelects.length === 0) {
          this.$axios.post(this.$api.standardTree.upStandardProductList, {
        this.$axios
          .post(this.$api.standardTree.upStandardProductList, {
            str: JSON.stringify({
              id: this.sectionRow.id,
              section: this.sectionRow.section,
@@ -1276,17 +1797,21 @@
              price: this.sectionRow.price,
              manHour: this.sectionRow.manHour
            })
          }).then(res => {
            this.sectionLoad = false
            if (res.code == 201) {
              this.$message.error('未保存')
              return
            }
            this.$message.success('已保存')
            this.sectionUpDia = false
          })
          .then(res => {
            this.sectionLoad = false;
            if (res.code == 201) {
              this.$message.error("未保存");
              return;
            }
            this.$message.success("已保存");
            this.sectionUpDia = false;
          });
        } else {
          this.$axios.post(this.$api.standardTree.upStandardProducts, {
        this.$axios
          .post(
            this.$api.standardTree.upStandardProducts,
            {
            ids: JSON.stringify(this.moreSelects.map(a => a.id)),
            standardProductList: {
              section: this.sectionRow.section,
@@ -1295,96 +1820,114 @@
              price: this.sectionRow.price,
              manHour: this.sectionRow.manHour
            }
          }, {
            },
            {
            headers: {
              'Content-Type': 'application/json'
                "Content-Type": "application/json"
            }
          }).then(res => {
            this.sectionLoad = false
            }
          )
          .then(res => {
            this.sectionLoad = false;
            if (res.code == 201) {
              this.$message.error('未保存')
              return
              this.$message.error("未保存");
              return;
            }
            this.$message.success('已保存')
            this.sectionUpDia = false
            this.$message.success("已保存");
            this.sectionUpDia = false;
            this.currentPage0 = 1;
            this.getList()
            this.getList();
            this.rowClick({
              id: this.standardId
            })
          })
            });
          });
        }
      },
      getStandardTemplate() {
        this.$axios.get(this.$api.StandardTemplate.getStandardTemplate).then(res => {
          this.templateList = res.data
        })
      this.$axios
        .get(this.$api.StandardTemplate.getStandardTemplate)
        .then(res => {
          this.templateList = res.data;
        });
      },
      handleCurrentChange(val) {
        this.currentPage = val;
        this.tableLoad2 = true
        this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, {
      this.tableLoad2 = true;
      this.$axios
        .post(this.$api.standardTree.selectStandardProductListByMethodId, {
          id: this.standardId,
          tree: this.selectTree,
          page: val
        }).then(res => {
          this.productList = res.data.productList
        })
        .then(res => {
          this.productList = res.data.productList;
          setTimeout(() => {
            this.productList.forEach(a => {
              if (a.state == 1) this.toggleSelection(a)
            })
          }, 200)
          this.tableLoad2 = false
        })
              if (a.state == 1) this.toggleSelection(a);
            });
          }, 200);
          this.tableLoad2 = false;
        });
      },
      async handleMore() {
        if ((!this.standardId && this.standardId != 0) || this.standardList.length == 0) {
          return this.$message.error('请选择实验室、样品')
      if (
        (!this.standardId && this.standardId != 0) ||
        this.standardList.length == 0
      ) {
        return this.$message.error("请选择实验室、样品");
        }
        await this.getList()
        this.moreEdit = true
      await this.getList();
      this.moreEdit = true;
      },
      selectStandardMethods() {
        this.$axios.get(this.$api.standardMethod.selectStandardMethods).then(res => {
          let data = []
      this.$axios
        .get(this.$api.standardMethod.selectStandardMethods)
        .then(res => {
          let data = [];
          res.data.forEach(a => {
            data.push({
              label: a.code,
              value: a.code
            })
          })
          this.methodList = data
        })
            });
          });
          this.methodList = data;
        });
      },
      subMoreEdit() {
        if (this.moreSelects.length === 0) {
          return this.$message.error('请选择检验项')
        return this.$message.error("请选择检验项");
        }
        this.moreEditLoad = true
      this.moreEditLoad = true;
        for (let a in this.moreInfo) {
          if (this.moreInfo[a] == '') {
            delete this.moreInfo[a]
        if (this.moreInfo[a] == "") {
          delete this.moreInfo[a];
          }
        }
        this.$axios.post(this.$api.standardTree.upStandardProducts, {
      this.$axios
        .post(
          this.$api.standardTree.upStandardProducts,
          {
          ids: JSON.stringify(this.moreSelects.map(a => a.id)),
          standardProductList: this.moreInfo
        }, {
          },
          {
          headers: {
            'Content-Type': 'application/json'
              "Content-Type": "application/json"
          }
        }).then(res => {
          this.moreEditLoad = false
          }
        )
        .then(res => {
          this.moreEditLoad = false;
          if (res.code == 201) {
            this.$message.error('未保存')
            return
            this.$message.error("未保存");
            return;
          }
          this.$message.success('已保存')
          this.$message.success("已保存");
          this.currentPage0 = 1;
          this.getList()
          this.getList();
          this.rowClick({
            id: this.standardId
          })
          });
          // this.moreInfo = {
          //   ask:'',
          //   tell:'',
@@ -1393,166 +1936,184 @@
          //   manHour:'',
          //   templateId:''
          // }
        })
        });
      },
      handleSelectAll0(rows) {
        if (rows.length) {
          rows.forEach(a => {
            if (!this.moreSelects.find(b => a.id === b.id)) {
              this.moreSelects.push(a)
            this.moreSelects.push(a);
            }
          })
        });
        } else {
          this.productList0.forEach(a => {
            this.moreSelects = this.moreSelects.filter(b => b.id != a.id)
          })
          this.moreSelects = this.moreSelects.filter(b => b.id != a.id);
        });
        }
      },
      handleSelectionChange0(val, row) {
        if (this.moreSelects.find(a => a.id === row.id)) {
          this.moreSelects = this.moreSelects.filter(a => a.id != row.id)
        this.moreSelects = this.moreSelects.filter(a => a.id != row.id);
        } else {
          this.moreSelects.push(row)
        this.moreSelects.push(row);
        }
      },
      getList() {
        this.productTableLoading0 = true
        this.getItemEnum()
        this.$axios.post(this.$api.standardTree.selectStandardProductByMethodId, {
      this.productTableLoading0 = true;
      this.getItemEnum();
      this.$axios
        .post(this.$api.standardTree.selectStandardProductByMethodId, {
          id: this.standardId,
          tree: this.selectTree,
          page: this.currentPage0,
          laboratory: this.sonLaboratory,
          items: this.inspectionItemSubclass,
          item: this.inspectionItem
        }).then(res => {
          this.productList0 = res.data.records
          this.total0 = res.data.total
          this.productTableLoading0 = false
          this.page = res.data.pages
        })
        .then(res => {
          this.productList0 = res.data.records;
          this.total0 = res.data.total;
          this.productTableLoading0 = false;
          this.page = res.data.pages;
          this.$nextTick(() => {
            this.productList0.forEach((a, i) => {
              if (this.moreSelects.find(b => a.id == b.id)) {
                this.$refs.productTable0.toggleRowSelection(this.productList0[i], true)
                this.$refs.productTable0.toggleRowSelection(
                  this.productList0[i],
                  true
                );
              }
            })
          })
        })
            });
          });
        });
      },
      handleCurrentChange0(e) {
        this.currentPage0 = e;
        this.getList()
      this.getList();
      },
      getItemEnum() {
        this.$axios.post(this.$api.standardTree.selectStandardProductEnumByMethodId, {
      this.$axios
        .post(this.$api.standardTree.selectStandardProductEnumByMethodId, {
          id: this.standardId,
          tree: this.selectTree,
          item:this.inspectionItem
        }).then(res => {
          this.filters0 = []
          this.filters1 = []
        })
        .then(res => {
          this.filters0 = [];
          this.filters1 = [];
          res.data.item.forEach(a => {
            this.filters0.push({
              text: a.inspectionItem,
              value: a.inspectionItem
            })
          })
            });
          });
          res.data.items.forEach(a => {
            if (a != null) {
              this.filters1.push({
                text: a.inspectionItemSubclass,
                value: a.inspectionItemSubclass
              })
              });
            }
          })
        })
          });
        });
      },
      beforeUpload(file, fileList) {
        if (file.raw.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
          this.$message.error('上传文件格式不正确');
          this.$refs.upload.clearFiles()
      if (
        file.raw.type !=
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
      ) {
        this.$message.error("上传文件格式不正确");
        this.$refs.upload.clearFiles();
          return false;
        }
      },
      submitUpload() {
        if (this.$refs.upload.uploadFiles.length == 0) {
          this.$message.error('未选择文件')
          return
        this.$message.error("未选择文件");
        return;
        }
        this.uploading = true
      this.uploading = true;
        this.$refs.upload.submit();
      },
      onSuccess(response, file, fileList) {
        this.$refs.upload.clearFiles()
        this.uploadDia = false
        this.uploading = false
      this.$refs.upload.clearFiles();
      this.uploadDia = false;
      this.uploading = false;
        if (response.code == 201) {
          this.$message.error(response.message)
          return
        this.$message.error(response.message);
        return;
        }
        this.$message.success('上传成功')
        this.standardList = []
        this.productList = []
        this.selectStandardTreeList()
      this.$message.success("上传成功");
      this.standardList = [];
      this.productList = [];
      this.selectStandardTreeList();
      },
      onError(err, file, fileList) {
        this.$message.error('上传失败')
        this.$refs.upload.clearFiles()
        this.uploading = false
      this.$message.error("上传失败");
      this.$refs.upload.clearFiles();
      this.uploading = false;
      },
      clearProduct(type){
        this.$confirm('是否清空?', "警告", {
      this.$confirm("是否清空?", "警告", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
      })
        .then(() => {
          if(type === 1){
            this.$axios.post(this.$api.standardTree.resetTreeOfPrice, {
            this.$axios
              .post(this.$api.standardTree.resetTreeOfPrice, {
              tree: this.selectTree,
              standardId: this.standardId
            }).then(res => {
              })
              .then(res => {
              if (res.code == 201) {
                return
                  return;
              }
              this.$message.success('已清空')
                this.$message.success("已清空");
              this.currentPage0 = 1;
              this.getList()
                this.getList();
              this.rowClick({
                id: this.standardId
              })
            })
                });
              });
          }else if(type === 2){
            this.$axios.post(this.$api.standardTree.resetTreeOfHour, {
            this.$axios
              .post(this.$api.standardTree.resetTreeOfHour, {
              tree: this.selectTree,
              standardId: this.standardId
            }).then(res => {
              })
              .then(res => {
              if (res.code == 201) {
                return
                  return;
              }
              this.$message.success('已清空')
                this.$message.success("已清空");
              this.currentPage0 = 1;
              this.getList()
                this.getList();
              this.rowClick({
                id: this.standardId
              })
            })
                });
              });
          }
        }).catch(() => {})
        })
        .catch(() => {});
      },
      handleDown(){
        this.outLoading = true
        this.$axios.get(this.$api.standardTree.exportStandTree,{responseType: 'blob'}).then(res => {
          this.outLoading = false
          this.$message.success('导出成功')
          const blob = new Blob([res],{ type: 'application/force-download' });
      this.outLoading = true;
      this.$axios
        .get(this.$api.standardTree.exportStandTree, { responseType: "blob" })
        .then(res => {
          this.outLoading = false;
          this.$message.success("导出成功");
          const blob = new Blob([res], { type: "application/force-download" });
          const url = URL.createObjectURL(blob);
          const link = document.createElement('a');
          const link = document.createElement("a");
          link.href = url;
          link.download = '检验标准.xlsx';
          link.download = "检验标准.xlsx";
          link.click();
          document.body.removeChild(link)
        })
          document.body.removeChild(link);
        });
      }
    }
  }
};
</script>