spring
2025-03-19 379ad4226bc5a3ad175635b5c40e6bf5b68e4069
能力范围功能更新70%
已修改14个文件
606 ■■■■■ 文件已修改
src/api/structural/structureTestObjectPart.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/styles/sidebar.scss 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Preview/filePreview.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Table/lims-table.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Sidebar/SidebarItem.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/materialOrder/customsInspection.vue 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/rawMaterialInspection/index.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/standard/standardLibrary/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/capability/index.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/workshop/components/fileList.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/structural/capabilityAndLaboratory/workshop/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/structural/structureTestObjectPart.js
@@ -64,3 +64,21 @@
    params: query,
  });
}
// 根据检验对象查询检验
export function inspectionItems(query) {
  return request({
    url: "/productPart/inspectionItems",
    method: "get",
    params: query,
  });
}
// 零件复核
export function productPartReview(query) {
  return request({
    url: "/productPart/productPartReview",
    method: "post",
    data: query,
  });
}
src/assets/styles/sidebar.scss
@@ -1,8 +1,7 @@
#app {
  .main-container {
    height: 100%;
    transition: margin-left .28s;
    transition: margin-left 0.28s;
    margin-left: $base-sidebar-width;
    position: relative;
  }
@@ -12,7 +11,7 @@
  }
  .sidebar-container {
    -webkit-transition: width .28s;
    -webkit-transition: width 0.28s;
    transition: width 0.28s;
    width: $base-sidebar-width !important;
    background-color: $base-menu-background;
@@ -24,12 +23,13 @@
    left: 0;
    z-index: 1001;
    overflow: hidden;
    -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
    -webkit-box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
    //box-shadow: 2px 0 6px rgba(0,21,41,.35);
    // reset element-ui css
    .horizontal-collapse-transition {
      transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
      transition: 0s width ease-in-out, 0s padding-left ease-in-out,
        0s padding-right ease-in-out;
    }
    .scrollbar-wrapper {
@@ -70,7 +70,8 @@
      width: 100% !important;
    }
    .el-menu-item, .el-submenu__title {
    .el-menu-item,
    .el-submenu__title {
      overflow: hidden !important;
      text-overflow: ellipsis !important;
      white-space: nowrap !important;
@@ -109,11 +110,11 @@
  .hideSidebar {
    .sidebar-container {
      width: 54px !important;
      width: 70px !important;
    }
    .main-container {
      margin-left: 54px;
      margin-left: 70px;
    }
    .submenu-title-noDropdown {
@@ -124,11 +125,16 @@
        padding: 0 !important;
        .svg-icon {
          margin-left: 20px;
          width: 1.5em;
          height: 1.5em;
          margin-left: 25px;
        }
      }
    }
    .el-menu-item.is-active,
    .el-submenu.is-active > .el-submenu__title {
      background-color: transparent !important;
    }
    .el-submenu {
      overflow: hidden;
@@ -136,21 +142,26 @@
        padding: 0 !important;
        .svg-icon {
          margin-left: 20px;
          width: 1.5em;
          height: 1.5em;
          margin-left: 25px;
        }
      }
    }
    .el-menu--collapse {
      .el-submenu {
        &>.el-submenu__title {
          height: auto; /* 根据内容自动调整高度 */
          flex-direction: column; /* 改变布局方向为垂直 */
          align-items: center; /* 居中对齐 */
          margin-bottom: 10px;
          &>span {
            height: 0;
            width: 0;
            overflow: hidden;
            visibility: hidden;
            display: inline-block;
            display: block !important;
            visibility: visible !important;
            white-space: normal; /* 允许换行 */
            text-align: center; /* 文本居中对齐 */
            line-height: normal;
          }
        }
      }
@@ -168,7 +179,7 @@
    }
    .sidebar-container {
      transition: transform .28s;
      transition: transform 0.28s;
      width: $base-sidebar-width !important;
    }
@@ -182,7 +193,6 @@
  }
  .withoutAnimation {
    .main-container,
    .sidebar-container {
      transition: none;
src/components/Preview/filePreview.vue
@@ -96,6 +96,7 @@
      if (state) {
        this.imgUrl = this.fileUrl.replaceAll('word', 'img')
      }
      console.log(2222, this.imgUrl)
      return state;
    },
    isPdf() {
src/components/Table/lims-table.vue
@@ -99,7 +99,7 @@
        </template>
      </el-table-column>
    </el-table>
    <pagination v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current"
    <pagination v-if="page" v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current"
      :limit.sync="page.size" @pagination="pagination" />
  </div>
</template>
@@ -422,6 +422,17 @@
      //   }
      // }
    },
    // 回显多选选中状态
    toggleRowSelection(list) {
      this.$nextTick(() => {
        this.tableData.forEach(row => {
          let obj = list.find(m => m == row[this.rowKey])
          if (obj) {
            this.$refs.multipleTable.toggleRowSelection(obj, true);
          }
        });
      });
    }
  },
};
</script>
src/layout/components/Sidebar/SidebarItem.vue
@@ -1,6 +1,7 @@
<template>
  <div v-if="!item.hidden">
    <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
    <template
      v-if="hasOneShowingChild(item.children, item) && (!onlyOneChild.children || onlyOneChild.noShowingChildren) && !item.alwaysShow">
      <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
        <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
          <item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
@@ -12,14 +13,8 @@
      <template slot="title">
        <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
      </template>
      <sidebar-item
        v-for="(child, index) in item.children"
        :key="child.path + index"
        :is-nest="true"
        :item="child"
        :base-path="resolvePath(child.path)"
        class="nest-menu"
      />
      <sidebar-item v-for="(child, index) in item.children" :key="child.path + index" :is-nest="true" :item="child"
        :base-path="resolvePath(child.path)" class="nest-menu" />
    </el-submenu>
  </div>
</template>
@@ -97,3 +92,8 @@
  }
}
</script>
<style scoped>
::v-deep .el-submenu__title i {
  color: #ffffff !important;
}
</style>
src/views/business/materialOrder/customsInspection.vue
@@ -5,7 +5,8 @@
        <div>
          <span>采购订单信息</span>
          <ul class="tab" v-if="active > 1 && isShowTab">
            <li v-for="(m,i) in dataTitle" :key="i" :class="{active:i===dataIndex}" @click="handleDataTab(m,i)">{{m.label}}</li>
            <li v-for="(m, i) in dataTitle" :key="i" :class="{ active: i === dataIndex }" @click="handleDataTab(m, i)">
              {{ m.label }}</li>
          </ul>
        </div>
        <div>
@@ -20,7 +21,8 @@
          <el-button v-show="active==1" size="small" @click="templateDia=true">
            <span style="color: #3A7BFA;">保存模板</span>
          </el-button>
          <el-button v-show="active==1 && addObj.orderType === '进厂检验'" :loading="noNeedCheckLoad" size="small" type="primary" @click="noNeedCheck">免检</el-button>
          <el-button v-show="active == 1 && addObj.orderType === '进厂检验'" :loading="noNeedCheckLoad" size="small"
            type="primary" @click="noNeedCheck">免检</el-button>
          <el-button v-show="active==1" :loading="saveLoad" size="small" type="primary" @click="save">提交</el-button>
          <el-button size="small" @click="goBack">
            <span style="color: #3A7BFA;">返回</span>
@@ -33,42 +35,41 @@
        <el-row>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="采购订单号:">
              <el-input v-model="addObj.orderNo" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
              <el-input v-model="addObj.orderNo" class="addObj-info" clearable disabled placeholder=""
                size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="委托单位:">
              <el-input v-model="addObj.company" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
              <el-input v-model="addObj.company" class="addObj-info" clearable disabled placeholder=""
                size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="接收时间:">
              <el-date-picker
                v-model="addObj.receiverDate"
                disabled
                placeholder="选择日期"
                size="small"
                style="width: 100%;"
                type="date"
                value-format="yyyy-MM-dd">
              <el-date-picker v-model="addObj.receiverDate" disabled placeholder="选择日期" size="small"
                style="width: 100%;" type="date" value-format="yyyy-MM-dd">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="零件号:">
              <el-input v-model="addObj.partNo" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
              <el-input v-model="addObj.partNo" class="addObj-info" clearable disabled placeholder=""
                size="small"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="样品名称:">
              <el-input v-model="addObj.sample" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
              <el-input v-model="addObj.sample" class="addObj-info" clearable disabled placeholder=""
                size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="样品总数:">
              <el-input v-model="addObj.qtyArrived" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
              <el-input v-model="addObj.qtyArrived" class="addObj-info" clearable disabled placeholder=""
                size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="6">
@@ -90,22 +91,24 @@
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="抽检数量:" prop="testQuantity">
              <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info"
                        clearable
              <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info" clearable
                        placeholder="请填写抽检数量" size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="检验类别:" prop="orderType">
              <el-select v-model="addObj.orderType" :disabled="active>1 || orderType==1" clearable size="small" style="width: 100%">
                <el-option v-for="a in dict.type.check_type" :key="a.value" :label="a.label" :value="a.value"></el-option>
              <el-select v-model="addObj.orderType" :disabled="active > 1 || orderType == 1" clearable size="small"
                style="width: 100%">
                <el-option v-for="a in dict.type.check_type" :key="a.value" :label="a.label"
                  :value="a.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="规格型号:" placeholder="请填写" prop="partDetail">
              <el-tooltip :content="addObj.partDetail" :disabled="!addObj.partDetail">
                <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info" size="small"></el-input>
                <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info"
                  size="small"></el-input>
              </el-tooltip>
            </el-form-item>
          </el-col>
@@ -113,29 +116,24 @@
        <el-row>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="紧急程度:" placeholder="请选择" prop="type">
              <el-select v-model="addObj.type" :disabled="active>1" class="addObj-info" clearable size="small" style="width: 100%">
                <el-option v-for="a in dict.type.urgency_level" :key="a.value" :label="a.label" :value="a.value"></el-option>
              <el-select v-model="addObj.type" :disabled="active > 1" class="addObj-info" clearable size="small"
                style="width: 100%">
                <el-option v-for="a in dict.type.urgency_level" :key="a.value" :label="a.label"
                  :value="a.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="约定时间:" prop="appointed">
              <el-date-picker
                v-model="addObj.appointed"
                :disabled="active > 1"
                format="yyyy-MM-dd"
                placeholder="选择日期"
                size="small"
                style="width: 100%"
                type="date"
                value-format="yyyy-MM-dd">
              <el-date-picker v-model="addObj.appointed" :disabled="active > 1" format="yyyy-MM-dd" placeholder="选择日期"
                size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item class="addObj-form-item" label="备注:">
              <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1" :placeholder="active>1 ? '' : '请输入'" clearable
                        size="small" type="textarea"></el-input>
              <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2 }" :disabled="active > 1"
                :placeholder="active > 1 ? '' : '请输入'" clearable size="small" type="textarea"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
@@ -146,54 +144,52 @@
        <div v-if="active==1">
          <el-form :inline="true" :model="addObj1" label-width="90px">
            <el-form-item label="样品型号:" style="margin-bottom: 6px;margin-top: 6px">
              <el-select v-model="model" :placeholder="active>1 ? '' : '请输入'"
                         allow-create clearable default-first-option filterable
                         size="small"
                         @change="changeModel">
              <el-select v-model="model" :placeholder="active > 1 ? '' : '请输入'" allow-create clearable
                default-first-option filterable size="small" @change="changeModel">
                <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="检验标准:" style="margin-bottom: 6px;margin-top: 6px">
              <el-select v-model="standardMethodListId" :loading="methodLoad"
                         :placeholder="active>1 ? '' : '请输入'" clearable size="small"
                         @change="changeStandardMethodListId" @focus="methodFocus">
              <el-select v-model="standardMethodListId" :loading="methodLoad" :placeholder="active > 1 ? '' : '请输入'"
                clearable size="small" @change="changeStandardMethodListId" @focus="methodFocus">
                <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="" style="margin-bottom: 6px;margin-top: 6px">
              <el-button type="primary" size="small">车间附件查看</el-button>
            </el-form-item>
          </el-form>
        </div>
        <div style="margin-bottom: 6px;margin-top: 6px">
          <el-button v-show="active==1" :disabled="sampleList.length === 2" size="small" type="primary" @click="handleSplitCountNum">拆分</el-button>
          <el-button v-show="active == 1" :disabled="sampleList.length === 2" size="small" type="primary"
            @click="handleSplitCountNum">拆分</el-button>
        </div>
      </div>
      <el-table ref="sampleTable" :data="sampleList"
                class="el-table sampleTable"
                highlight-current-row
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
                max-height="400px"
                tooltip-effect="dark"
      <el-table ref="sampleTable" :data="sampleList" class="el-table sampleTable" highlight-current-row
        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border max-height="400px" tooltip-effect="dark"
                @selection-change="selectSample" @row-click="rowClick">
        <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column>
        <el-table-column align="center" label="序号" prop="index" type="index" width="65"></el-table-column>
        <el-table-column align="center" label="样品名称" min-width="100" prop="sample">
          <template slot-scope="scope">
            <el-input v-model="scope.row.sample" :disabled="active>1 || scope.$index !== 0" size="small" @change="(val)=>changeValue(val, 'sample')"></el-input>
            <el-input v-model="scope.row.sample" :disabled="active > 1 || scope.$index !== 0" size="small"
              @change="(val) => changeValue(val, 'sample')"></el-input>
          </template>
        </el-table-column>
        <el-table-column align="center" label="样品编号" min-width="140" prop="sampleCode">
          <template slot-scope="scope">
            <el-input v-model="scope.row.sampleCode" :disabled="active>1 || scope.$index !== 0" clearable placeholder="不填写则系统自动生成"
                      size="small"
                      @change="(val)=>changeValue(val, 'sampleCode')"></el-input>
            <el-input v-model="scope.row.sampleCode" :disabled="active > 1 || scope.$index !== 0" clearable
              placeholder="不填写则系统自动生成" size="small" @change="(val) => changeValue(val, 'sampleCode')"></el-input>
          </template>
        </el-table-column>
        <el-table-column align="center" label="样品型号" min-width="100" prop="model">
          <template slot-scope="scope">
            <el-select v-model="scope.row.model" :disabled="active>1 || scope.$index !== 0" allow-create default-first-option filterable
                       placeholder="样品型号" size="small" style="width: 100%;" @change="handleChangeModel">
            <el-select v-model="scope.row.model" :disabled="active > 1 || scope.$index !== 0" allow-create
              default-first-option filterable placeholder="样品型号" size="small" style="width: 100%;"
              @change="handleChangeModel">
              <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
              </el-option>
            </el-select>
@@ -201,16 +197,17 @@
        </el-table-column>
        <el-table-column v-if="!(active>1)" align="center" label="型号参数" prop="modelNum" width="130">
          <template slot-scope="scope">
            <el-input v-model="scope.row.modelNum" :disabled="active>1|| scope.$index !== 0" clearable placeholder="非必填"
                      size="small"
            <el-input v-model="scope.row.modelNum" :disabled="active > 1 || scope.$index !== 0" clearable
              placeholder="非必填" size="small"
                      @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
          </template>
        </el-table-column>
        <el-table-column align="center" label="检验标准" min-width="100" prop="standardMethodListId">
          <template slot-scope="scope">
            <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1|| scope.$index !== 0"
                       :loading="methodLoad" clearable placeholder="检验标准" size="small"
                       style="width: 100%;" @change="(value)=>methodChange(value, scope.row)" @clear="productList = []" @focus="methodFocus">
            <el-select v-model="scope.row.standardMethodListId"
              :disabled="scope.row.model == null || active > 1 || scope.$index !== 0" :loading="methodLoad" clearable
              placeholder="检验标准" size="small" style="width: 100%;" @change="(value) => methodChange(value, scope.row)"
              @clear="productList = []" @focus="methodFocus">
              <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
              </el-option>
            </el-select>
@@ -236,55 +233,40 @@
        </el-table-column>
        <el-table-column align="center" label="待检项数量" prop="quantity" width="105">
          <template slot-scope="scope">
            <el-select v-model="scope.row.quantity" disabled clearable
                       size="small">
              <el-option v-for="item in quantityList" :key="item.value" :label="item.label" :value="item.value"></el-option>
            <el-select v-model="scope.row.quantity" disabled clearable size="small">
              <el-option v-for="item in quantityList" :key="item.value" :label="item.label"
                :value="item.value"></el-option>
            </el-select>
          </template>
        </el-table-column>
      </el-table>
      <el-table ref="productTable" v-loading="getProductLoad" :data="productList"
                :row-class-name="tableRowClassName"
                class="el-table"
                max-height="400px"
                style="margin-bottom: 10px;"
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
                tooltip-effect="dark"
                @select="selectOne"
                @selection-change="selectProduct"
                @select-all="handleAll">
      <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName"
        class="el-table" max-height="400px" style="margin-bottom: 10px;"
        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border tooltip-effect="dark"
        @select="selectOne" @selection-change="selectProduct" @select-all="handleAll">
        <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column>
        <el-table-column label="检验项" min-width="140" prop="inspectionItem" show-overflow-tooltip>
          <template slot="header" slot-scope="scope">
            <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
              <span>检验项</span>
              <el-input
                v-if="active==1"
                v-model="inspectionItem"
                placeholder="请输入"
                size="mini"
              <el-input v-if="active == 1" v-model="inspectionItem" placeholder="请输入" size="mini"
                @input="searchFilterList"/>
            </div>
          </template>
        </el-table-column>
        <el-table-column label="检验项子项" min-width="140" prop="inspectionItemSubclass"
                         show-overflow-tooltip>
        <el-table-column label="检验项子项" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip>
          <template slot="header" slot-scope="scope">
            <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
              <span>检验项子项</span>
              <el-input
                v-if="active==1"
                v-model="inspectionItemSubclass"
                placeholder="请输入"
                size="mini"
              <el-input v-if="active == 1" v-model="inspectionItemSubclass" placeholder="请输入" size="mini"
                @input="searchFilterList"/>
            </div>
          </template>
        </el-table-column>
        <el-table-column label="要求值" min-width="220px" prop="ask">
          <template slot-scope="scope">
            <el-input v-if="active==1&&isAskOnlyRead" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="要求值"
                      size="small" type="textarea"
            <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }"
              clearable placeholder="要求值" size="small" type="textarea"
                      @change="e=>requestChange(e,scope.row)"></el-input>
            <span v-else>
              <template >{{ scope.row.ask }}</template>
@@ -293,8 +275,8 @@
        </el-table-column>
        <el-table-column label="要求描述" min-width="220px" prop="tell">
          <template slot-scope="scope">
            <el-input v-if="active==1&&isAskOnlyRead" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="要求描述"
                      size="small" type="textarea"
            <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.tell"
              :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求描述" size="small" type="textarea"
                      @change="e=>requestChange(e,scope.row,'tell')"></el-input>
            <span v-else>
                <template >{{ scope.row.tell }}</template>
@@ -306,27 +288,20 @@
          <template slot="header" slot-scope="scope">
            <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
              <span>试验方法</span>
              <el-input
                v-if="active==1"
                v-model="methodS"
                placeholder="请输入"
                size="mini"
                @input="searchFilterList"/>
              <el-input v-if="active == 1" v-model="methodS" placeholder="请输入" size="mini" @input="searchFilterList" />
            </div>
          </template>
        </el-table-column>
        <el-table-column label="计量单位" prop="unit" show-overflow-tooltip width="100"></el-table-column>
        <el-table-column label="单价" prop="price" show-overflow-tooltip width="100"></el-table-column>
        <el-table-column label="区间" min-width="120" prop="section" show-overflow-tooltip></el-table-column>
        <el-table-column :filter-method="filterHandler" :filters="filters" label="子实验室" min-width="130" prop="sonLaboratory"
                         show-overflow-tooltip></el-table-column>
        <el-table-column :filter-method="filterHandler" :filters="filters" label="子实验室" min-width="130"
          prop="sonLaboratory" show-overflow-tooltip></el-table-column>
      </el-table>
    </div>
    <!--特殊值处理框-->
    <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
               :visible.sync="bsm1DiaAll"
               min-width="400px"
               title="检测到特殊项,请作出以下选择">
    <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false"
      :show-close="false" :visible.sync="bsm1DiaAll" min-width="400px" title="检测到特殊项,请作出以下选择">
      <div v-for="(item, index) in bsm1DiaList" :key="item.id" class="body" style="max-height: 60vh;">
        <span>{{item.inspectionItem}}</span>
        <el-row v-if="item.bsm1">
@@ -334,7 +309,8 @@
            <div class="search_label" style="width: 80px;"><span class="required-span">* </span>选项:</div>
            <div class="search_input">
              <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)">
                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a" style="margin-bottom: 2px;margin-top: 2px;"></el-radio>
                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a"
                  style="margin-bottom: 2px;margin-top: 2px;"></el-radio>
              </el-radio-group>
            </div>
          </el-col>
@@ -342,8 +318,8 @@
            <div class="search_label" style="width: 80px;">要求值:</div>
            <div class="search_input">
              <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)">
                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai"
                          :label="a">{{JSON.parse(item.bsmRow.askCopy)[ai]}}</el-radio>
                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a">{{
                  JSON.parse(item.bsmRow.askCopy)[ai] }}</el-radio>
              </el-radio-group>
            </div>
          </el-col>
@@ -356,9 +332,8 @@
      </span>
    </el-dialog>
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
               :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
               :show-close="false" :visible.sync="bsm3Dia"
               title="区间值填写" width="800px">
      :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :show-close="false"
      :visible.sync="bsm3Dia" title="区间值填写" width="800px">
      <el-table :data="editTable" height="80vh" style="width: 100%">
        <!-- inspectionItemList -->
        <el-table-column label="检验项" prop="inspectionItemList" width="180">
@@ -371,7 +346,8 @@
        </el-table-column>
        <el-table-column label="识别符值" prop="value">
          <template slot-scope="scope">
            <el-input v-model="scope.row.value" placeholder="请输入" size="small" @input="inputValueHandler(scope.row,scope.$index)"></el-input>
            <el-input v-model="scope.row.value" placeholder="请输入" size="small"
              @input="inputValueHandler(scope.row, scope.$index)"></el-input>
          </template>
        </el-table-column>
      </el-table>
@@ -382,25 +358,15 @@
        </el-row>
      </span>
    </el-dialog>
    <el-dialog
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :show-close="false"
      :visible.sync="dialogVisible"
      title="提示"
      width="32%">
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
      :visible.sync="dialogVisible" title="提示" width="32%">
      <span>{{ dialogMessage }}</span>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="dialogVisible= false,closeOpenPage()">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :show-close="false"
      :visible.sync="dialogVisible2"
      title="提示"
      width="32%">
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
      :visible.sync="dialogVisible2" title="提示" width="32%">
      <span>{{ dialogMessage2 }}</span>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="dialogVisible2 = false">确 定</el-button>
@@ -418,13 +384,8 @@
        <el-button :loading="templateLoading" type="primary" @click="addTemplateDia">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog
      :close-on-click-modal="false"
      :close-on-press-escape="false"
      :show-close="false"
      :visible.sync="noNeedCheckDia"
      title="免检提示"
      width="32%">
    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
      :visible.sync="noNeedCheckDia" title="免检提示" width="32%">
      <span>确认免检当前检验单?</span>
      <span slot="footer" class="dialog-footer">
        <el-button :loading="noNeedCheckLoad" type="primary" @click="handleNoNeedCheck">确 定</el-button>
@@ -1869,6 +1830,7 @@
  justify-content: space-between;
  margin-bottom: 10px;
}
.tab {
  list-style-type: none;
  display: flex;
@@ -1897,5 +1859,4 @@
  background-color: #ffffff;
}
</style>
src/views/business/rawMaterialInspection/index.vue
@@ -141,6 +141,11 @@
            <el-option :value="1" label="过期物料"></el-option>
          </el-select>
        </el-form-item>
        <!-- TODO:必填 -->
        <el-form-item class="declareObj-form-item" label="供应商批号:" prop="buyUnitMeas">
          <el-input v-model="declareObj.buyUnitMeas" :disabled="declareType !== 'add'" clearable class="addObj-info"
            size="small"></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-row>
@@ -161,8 +166,8 @@
    </el-dialog>
    <!-- 撤销报检 -->
    <el-dialog :visible.sync="declareDialogVisible1" title="报检撤销" width="30%">
      <p style="font-size:16px;color:#333333">批号<span
          style="color:#34BD66">{{ insOrderRow.updateBatchNo }}</span>的信息是否<span style="color: #FF4902">撤销报检</span></p>
      <p style="font-size:16px;color:#333333">批号<span style="color:#34BD66">{{ insOrderRow.updateBatchNo
          }}</span>的信息是否<span style="color: #FF4902">撤销报检</span></p>
      <span slot="footer" class="dialog-footer">
        <el-row>
          <el-button @click="declareDialogVisible1 = false">取 消</el-button>
src/views/standard/standardLibrary/index.vue
@@ -17,8 +17,7 @@
          height: calc(100% - 30px);
          overflow-y: scroll;
          scrollbar-width: none;
        " @node-click="handleNodeClick"
               @node-drop="handleDrop">
        " @node-click="handleNodeClick" @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">
@@ -66,9 +65,8 @@
      </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"
                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
          highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark"
          @row-click="rowClick">
          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border 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">{{
@@ -82,11 +80,10 @@
      </el-row>
      <el-row v-loading="tableLoad2" class="product_table">
        <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList"
                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
          :fit="true" :row-class-name="tableRowClassName" 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">
          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :fit="true"
          :row-class-name="tableRowClassName" 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>
@@ -176,8 +173,8 @@
            <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" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                " @click="bindSupplierDensitySecond(scope.row)">绑定厂家</el-button> -->
            </template>
          </el-table-column>
        </el-table>
src/views/structural/capabilityAndLaboratory/capability/index.vue
@@ -97,7 +97,8 @@
    <EditForm ref="editForm" @refreshList="refreshList1"></EditForm>
    <testObjectEditForm ref="testObjectEditForm" @refreshList="refreshList"></testObjectEditForm>
    <BindPartDialog v-if="bindPartDialog" :bindPartDialog="bindPartDialog" :currentRow="currentRow" :type="type"
      @closeBindPartDialog="closeBindPartDialog"></BindPartDialog>
      @closeBindPartDialog="closeBindPartDialog" :currentObj="currentObj">
    </BindPartDialog>
    <BindSupplierDensityDialog v-if="bindSupplierDensityDialog" :bindSupplierDensityDialog="bindSupplierDensityDialog"
      :currentRow="currentSupplierDensityRow" @closeBindPartDialog="closeBindSupplierDensityDialog">
    </BindSupplierDensityDialog>
@@ -232,7 +233,7 @@
        { label: '检验对象', prop: 'specimenName' },
        { label: '检验对象EN', prop: 'specimenNameEn' },
        { label: '产品', prop: 'product' },
        { label: '对象代号', prop: 'code' },
        // { label: '对象代号', prop: 'code' },
        {
          label: '对象类型', prop: 'objectType',
          dataType: 'tag',
@@ -274,13 +275,13 @@
                this.upProduct(row);
              },
            },
            // {
            //   name: '零件绑定',
            //   type: 'text',
            //   clickFun: (row) => {
            //     this.bindPartFirst(row);
            //   },
            // },
            {
              name: '零件绑定',
              type: 'text',
              clickFun: (row) => {
                this.bindPartFirst(row);
              },
            },
          ]
        }
      ],
@@ -343,13 +344,13 @@
                }
              }
            },
            {
              name: '厂家密度绑定',
              type: 'text',
              clickFun: (row) => {
                this.bindSupplierDensitySecond(row);
              },
            },
            // {
            //   name: '厂家密度绑定',
            //   type: 'text',
            //   clickFun: (row) => {
            //     this.bindSupplierDensitySecond(row);
            //   },
            // },
          ]
        }
      ],
@@ -674,6 +675,7 @@
      this.bindPart(row, 1)
    },
    bindWokshop(row) {
      this.workshopForm.workShopId = row.workShopId
      this.currentProduct = row;
      this.workshopVisible = true
    },
@@ -688,6 +690,9 @@
    },
    // 打开零件绑定弹框
    bindPart(row, index) {
      if (index == 0) {
        this.currentObj = row
      }
      this.type = index
      this.currentRow = row
      this.bindPartDialog = true
src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
@@ -30,9 +30,8 @@
          <el-col :span="12">
            <el-form-item label="检验对象:" prop="sample">
              <el-cascader v-model="editForm.sample" :options="itemParameterData.cascaderField.sample.tree"
                           :props="{value:'name',label:'name',checkStrictly: true, multiple: true}"
                           :show-all-levels="false"  clearable
                           filterable placeholder="请选择" size="small" style="width: 100%;"></el-cascader>
                :props="{ value: 'name', label: 'name', checkStrictly: true, multiple: true }" :show-all-levels="false"
                clearable filterable placeholder="请选择" size="small" style="width: 100%;"></el-cascader>
            </el-form-item>
          </el-col>
          <el-col :span="12">
@@ -45,14 +44,16 @@
          <el-col :span="12">
            <el-form-item label="场所:" prop="laboratory">
              <el-select v-model="editForm.laboratory" clearable placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in laboratoryList" :key="item.label" :label="item.label" :value="item.label"></el-option>
                <el-option v-for="item in laboratoryList" :key="item.label" :label="item.label"
                  :value="item.label"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="试验室:" prop="sonLaboratory">
              <el-select v-model="editForm.sonLaboratory" clearable placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in dict.type.sys_sub_lab" :key="item.value" :label="item.label" :value="item.value"></el-option>
                <el-option v-for="item in dict.type.sys_sub_lab" :key="item.value" :label="item.label"
                  :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
@@ -73,7 +74,8 @@
          <el-col :span="12">
            <el-form-item label="计量单位:" prop="unit">
              <el-select v-model="editForm.unit" clearable placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in dict.type.sys_unit" :key="item.value" :label="item.label" :value="item.value"></el-option>
                <el-option v-for="item in dict.type.sys_unit" :key="item.value" :label="item.label"
                  :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
@@ -98,15 +100,19 @@
        <el-row>
          <el-col :span="12">
            <el-form-item label="检验项类型:" prop="inspectionItemType">
              <el-select v-model="editForm.inspectionItemType" clearable placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in dict.type.inspection_item_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
              <el-select v-model="editForm.inspectionItemType" clearable placeholder="请选择" size="small"
                style="width: 100%">
                <el-option v-for="item in dict.type.inspection_item_type" :key="item.value" :label="item.label"
                  :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="检验值类型:" prop="inspectionValueType">
              <el-select v-model="editForm.inspectionValueType" clearable placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in dict.type.inspection_value_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
              <el-select v-model="editForm.inspectionValueType" clearable placeholder="请选择" size="small"
                style="width: 100%">
                <el-option v-for="item in dict.type.inspection_value_type" :key="item.value" :label="item.label"
                  :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
@@ -115,14 +121,16 @@
          <el-col :span="12">
            <el-form-item label="特殊标识:" prop="bsm">
              <el-select v-model="editForm.bsm" clearable placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in dict.type.inspection_bsm" :key="item.value" :label="item.label" :value="item.value"></el-option>
                <el-option v-for="item in dict.type.inspection_bsm" :key="item.value" :label="item.label"
                  :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="原始记录模板:" prop="templateId">
              <el-select v-model="editForm.templateId" clearable placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in templateIdList" :key="item.value" :label="item.label" :value="item.value"></el-option>
                <el-option v-for="item in templateIdList" :key="item.value" :label="item.label"
                  :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
@@ -142,18 +150,19 @@
        <el-row>
          <el-col :span="12">
            <el-form-item label="试验方法:" prop="method">
              <el-select v-model="editForm.method" clearable multiple placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in methodList" :key="item.value" :label="item.label" :value="item.label"></el-option>
              <el-select v-model="editForm.method" clearable multiple placeholder="请选择" size="small"
                style="width: 100%">
                <el-option v-for="item in methodList" :key="item.value" :label="item.label"
                  :value="item.label"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="条件:" prop="radiusList">
            <el-form-item label="试验条件:" prop="radiusList">
              <el-select v-model="editForm.radiusList" allow-create default-first-option filterable multiple
                         placeholder="请选择"
                         size="small"
                         style="width: 100%">
                <el-option v-for="item in radiusListList" :key="item.value" :label="item.label" :value="item.value"></el-option>
                placeholder="请选择" size="small" style="width: 100%">
                <el-option v-for="item in radiusListList" :key="item.value" :label="item.label"
                  :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
src/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue
@@ -1,8 +1,8 @@
<template>
  <div>
    <el-dialog title="零件绑定" :visible.sync="isShow" width="800px" @close="$emit('closeBindPartDialog')">
      <lims-table :tableData="tableData" :column="column" height="460"
                  :page="page" :tableLoading="tableLoading"></lims-table>
      <lims-table :tableData="tableData" :column="column" height="460" :page="page" :tableLoading="tableLoading"
        :key="1"></lims-table>
      <span slot="footer" class="dialog-footer">
        <el-button @click="$emit('closeBindPartDialog')">取 消</el-button>
        <el-button type="primary" @click="addBindPart('add')" :loading="addBindLoad">新 增</el-button>
@@ -11,12 +11,10 @@
    <el-dialog :title="dialogTitle" :visible.sync="addBindPartDialog" width="400px" @close="closeBindPartDialog"
               :close-on-click-modal="false" >
      <div class="body" v-if="addBindPartDialog">
        <el-form label-position="right" label-width="80px"
                 ref="bindPartData"
                 :rules="bindPartDataRules"
        <el-form label-position="right" label-width="80px" ref="bindPartData" :rules="bindPartDataRules"
                 :model="bindPartData">
          <el-form-item label="零件号:" prop="partNo">
            <el-input v-model="bindPartData.partNo" size="small"></el-input>
            <el-input v-model="bindPartData.partNo" size="small" :disabled="dialogTitle == '修改零件绑定'"></el-input>
          </el-form-item>
          <el-form-item label="颜色:" prop="color">
            <el-input v-model="bindPartData.color" size="small"></el-input>
@@ -24,12 +22,30 @@
          <el-form-item label="色标:" prop="colorCode">
            <el-input v-model="bindPartData.colorCode" size="small"></el-input>
          </el-form-item>
          <el-form-item label="进厂检验项:" prop="inspectionItem" v-if="currentObj.objectType == '原材料'" label-width="100px">
            <!-- <el-input v-model="bindPartData.inspectionItem" disabled placeholder="选择检验项" size="small">
              <template slot="append">
                <el-button slot="append" icon="el-icon-search" @click="openItems"></el-button>
              </template>
</el-input> -->
            <el-select v-model="bindPartData.inspectionItem" multiple collapse-tags placeholder="请选择" size="small">
              <el-option v-for="item in itemList" :key="item.inspectionItem" :label="item.inspectionItem"
                :value="item.inspectionItem">
              </el-option>
            </el-select>
          </el-form-item>
        </el-form>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="closeBindPartDialog">取 消</el-button>
        <el-button type="primary" @click="submitBind" :loading="bindLoad">确 认</el-button>
      </span>
    </el-dialog>
    <el-dialog title="修改记录" :visible.sync="editItem" width="600px">
      <div class="body" v-if="editItem">
        <lims-table :tableData="editList" :column="editColumn" height="460px" :tableLoading="tableLoading0" :key="2"
          :page="editPage" @pagination="editPagination"></lims-table>
      </div>
    </el-dialog>
  </div>
</template>
@@ -40,9 +56,8 @@
  addProductPart,
  addTestObjectPart, deleteProductPart, deleteTestObjectPart,
  selectByProductId,
  selectByTestObjectId, updateProductPart, updateTestObjectPart
  selectByTestObjectId, updateProductPart, updateTestObjectPart, inspectionItems, productPartReview
} from "@/api/structural/structureTestObjectPart";
import {delProduct} from "@/api/structural/capability";
export default {
  name: "bindPartDialog",
@@ -60,7 +75,11 @@
    currentRow : { // 选择本条数据的信息
      type: Object,
      default: () => {}
    }
    },
    currentObj: {//当前对象
      type: Object,
      default: () => { }
    },
  },
  data() {
    // 这里存放数据
@@ -74,6 +93,17 @@
        {label: '零件号', prop: 'partNo'},
        {label: '颜色', prop: 'color'},
        {label: '色标', prop: 'colorCode'},
        {
          label: '状态', prop: 'review',
          dataType: "tag",
          formatType: (params) => {
            if (params == '待复核') {
              return 'danger'
            } else {
              return 'success'
            }
          },
        },
        {
          dataType: 'action',
          fixed: 'right',
@@ -91,6 +121,33 @@
              type: 'text',
              clickFun: (row) => {
                this.delete(row);
              },
            },
            {
              name: '复核',
              type: 'text',
              clickFun: (row) => {
                this.$confirm("是否复核通过?", "复核", {
                  confirmButtonText: "确定",
                  cancelButtonText: "取消",
                  type: "warning",
                })
                  .then(() => {
                    productPartReview({ id: row.id }).then((res) => {
                      if (res.code == 200) {
                        this.$message.success("复核通过");
                        this.getList()();
                      }
                    });
                  })
                  .catch(() => { });
              },
            },
            {
              name: '记录',
              type: 'text',
              clickFun: (row) => {
                this.lookList(row);
              },
            },
          ]
@@ -135,6 +192,7 @@
        partNo: '', // 零件号
        color: '', // 颜色
        colorCode: '', // 色标
        inspectionItem: [],//原材料进厂检验对象列表
      },
      bindPartDataRules: {
        partNo: [
@@ -143,14 +201,55 @@
      },
      bindLoad: false,
      upIndex: 0,
      addBindLoad: false,
      itemList: [],//原材料进厂检验对象列表
      editItem: false,
      editList: [],
      editColumn: [
        { label: '零件号', prop: 'inspectionItem' },
        { label: '颜色', prop: 'inspectionItemSubclass' },
        { label: '色标', prop: 'ask' },
        { label: '进厂检验项', prop: 'askTell' },
        { label: '修改时间', prop: 'method' },
        { label: '修改人', prop: 'method' },
      ],
      editPage: {
        total: 0,
        size: 10,
        current: 0,
      },
      tableLoading0: false,
      // mutilSelect: []
    }
  },
  mounted() {
    this.getList()
    this.getItemList()
  },
  // 方法集合
  methods: {
    getItemList() {
      // this.tableLoading0 = true;
      inspectionItems({
        sample: this.currentObj.specimenName,
        productName: this.type == 0 ? null : this.currentRow.name
      }).then(res => {
        this.itemList = res.data
        // this.tableLoading0 = false;
      })
    },
    // 修改记录
    lookList() {
      this.editItem = true;
      this.getEditList()
    },
    getEditList() { },
    editPagination() {
      this.editPage.current = page;
      this.editPage.size = limit;
      this.getEditList();
    },
    getList() {
      this.tableLoading = true
      // 根据类型判断是检验对象零件绑定还是产品维护零件绑定
@@ -182,6 +281,7 @@
      this.operationType = type
      if (type === 'edit') {
        this.bindPartData = this.HaveJson(row)
        this.bindPartData.inspectionItem = this.bindPartData.inspectionItem ? this.bindPartData.inspectionItem.split(',') : []
      }
    },
    // 提交零件绑定
@@ -194,16 +294,19 @@
            color: this.bindPartData.color,
            colorCode: this.bindPartData.colorCode,
            partNo: this.bindPartData.partNo,
            inspectionItem: this.bindPartData.inspectionItem && this.bindPartData.inspectionItem.length > 0 ? this.bindPartData.inspectionItem.join(',') : ''
            } : {
            productId: this.currentRow.id,
            color: this.bindPartData.color,
            colorCode: this.bindPartData.colorCode,
            partNo: this.bindPartData.partNo,
            inspectionItem: this.bindPartData.inspectionItem && this.bindPartData.inspectionItem.length > 0 ? this.bindPartData.inspectionItem.join(',') : ''
          }
          this.bindLoad = true
          if (this.operationType === 'add') {
            if (this.type === 0) {
              addTestObjectPart(params).then(res => {
                this.bindLoad = false
                if (res.code === 200) {
                  this.resetForm('bindPartData')
                  this.addBindPartDialog = false
@@ -292,9 +395,19 @@
      this.resetForm('bindPartData')
      this.addBindPartDialog = false
    },
    // openItems() {
    //   this.mutilSelect = this.bindPartData.inspectionItem ? this.bindPartData.inspectionItem.split(',') : []
    //   this.$refs.itemTable.toggleRowSelection(this.mutilSelect)
    //   this.addBindItem = true;
    // },
    // submitBindItem() {
    //   this.bindPartData.inspectionItem = this.mutilSelect.join(',')
    // },
    // handleSelectionChange(val) {
    //   this.mutilSelect = val
    // }
  },
}
</script>
<style scoped>
</style>
<style scoped></style>
src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue
@@ -15,9 +15,9 @@
        <el-form-item label="检验对象EN:" prop="specimenNameEn">
          <el-input v-model="editForm.specimenNameEn" clearable size="small"></el-input>
        </el-form-item>
        <el-form-item label="对象代号:" prop="code">
        <!-- <el-form-item label="对象代号:" prop="code">
          <el-input v-model="editForm.code" clearable size="small"></el-input>
        </el-form-item>
        </el-form-item> -->
        <el-form-item label="对象类型:" prop="objectType">
          <el-select v-model="editForm.objectType" clearable placeholder="请选择" size="small" style="width: 100%">
            <el-option v-for="item in dict.type.product_classification" :key="item.value" :label="item.label"
@@ -53,7 +53,7 @@
        laboratoryId: '', // 场所
        specimenName: '', // 检验对象
        specimenNameEn: '', // 检验对象EN
        code: '', // 对象代号
        // code: '', // 对象代号
        objectType: '', // 对象类型
      },
      laboratoryList: [],
@@ -64,9 +64,9 @@
        specimenName: [
          { required: true, message: '请输入检验对象', trigger: 'blur' }
        ],
        code: [
          { required: true, message: '请输入对象代号', trigger: 'blur' }
        ],
        // code: [
        //   { required: true, message: '请输入对象代号', trigger: 'blur' }
        // ],
      },
      operationType: ''
    }
src/views/structural/capabilityAndLaboratory/workshop/components/fileList.vue
@@ -10,15 +10,21 @@
    </div>
    <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" key="tableDataFile"
      :tableLoading="tableLoadingFile"></lims-table>
    <el-dialog title="查看附件" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen append-to-body>
      <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.fileUrl" :currentFile="{}"
        style="max-height: 90vh;overflow-y: auto;" />
    </el-dialog>
  </div>
</template>
<script>
import limsTable from "@/components/Table/lims-table.vue";
import { fileList, delFile } from "@/api/structural/workshop.js"
import filePreview from "@/components/Preview/filePreview.vue";
export default {
  components: {
    limsTable,
    filePreview,
  },
  props: ['currentId'],
  computed: {
@@ -75,11 +81,21 @@
                this.delete(row);
              }
            },
            {
              name: '预览',
              type: 'text',
              clickFun: (row) => {
                this.currentInfo = row
                this.lookDialogVisible = true
              }
            },
          ]
        }
      ],
      tableDataFile: [],
      tableLoadingFile: false,
      lookDialogVisible: false,
      currentInfo: {},
    }
  },
  mounted() {
@@ -119,13 +135,7 @@
    },
    // 下载附件的文件
    handleDown(row) {
      downFile({
        id: row.id,
      }).then(res => {
        this.$download.saveAs(res.data.fileUrl, row.fileName);
      }).catch(error => {
      })
      this.$download.saveAs(row.fileUrl, row.fileName);
    },
    // 删除附件文件
    delete(row) {
src/views/structural/capabilityAndLaboratory/workshop/index.vue
@@ -2,7 +2,7 @@
  <div class="workshop">
    <div class="search">
      <div class="search_thing">
        <div class="search_label">名称:</div>
        <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>
@@ -32,7 +32,7 @@
      </span>
    </el-dialog>
    <el-dialog :visible.sync="filesDialogVisible" title="附件查看" width="80%">
      <fileList :currentId="id" />
      <fileList :currentId="id" v-if="filesDialogVisible" />
    </el-dialog>
  </div>
</template>
@@ -223,7 +223,7 @@
}
.search_label {
  width: 70px;
  width: 90px;
  font-size: 14px;
  text-align: right;
}