spring
2025-04-07 9f571972ce45d45facd8ca667376e2d4c99da3af
src/views/structural/capabilityAndLaboratory/capability/index.vue
@@ -9,11 +9,9 @@
          </el-radio-group>
        </el-col>
        <el-col :span="12" style="text-align: right;">
          <el-upload v-if="radio === 0" ref='upload1'
                     style="display: inline;margin-right: 8px"
                     :action="uploadAction1"
                     :before-upload="beforeUpload1" :headers="token" :on-error="onError1"
                     :on-success="handleSuccessUp" :show-file-list="false" accept='.doc,.docx,.xls,.xlsx'>
          <el-upload v-if="radio === 0" ref='upload1' style="display: inline;margin-right: 8px" :action="uploadAction1"
            :before-upload="beforeUpload1" :headers="token" :on-error="onError1" :on-success="handleSuccessUp1"
            :show-file-list="false" accept='.doc,.docx,.xls,.xlsx'>
            <el-button size="small" type="primary">导入</el-button>
          </el-upload>
          <el-button size="small" type="primary" v-if="radio === 1" @click="uploadDia = true">导入</el-button>
@@ -23,19 +21,19 @@
    </div>
    <div>
      <el-form :model="itemParameterForm" ref="itemParameterForm" size="small" :inline="true">
        <el-form-item label="检验项" prop="inspectionItem" v-if="radio===0">
          <el-input size="small" placeholder="请输入" clearable
                    v-model="itemParameterForm.inspectionItem" @keyup.enter.native="refreshTable()">
        <el-form-item label="检验项" prop="inspectionItem" v-if="radio === 0">
          <el-input size="small" placeholder="请输入" clearable v-model="itemParameterForm.inspectionItem"
            @keyup.enter.native="refreshTable()">
          </el-input>
        </el-form-item>
        <el-form-item label="检验子项" prop="inspectionItemSubclass" v-if="radio===0">
          <el-input size="small" placeholder="请输入" clearable
                    v-model="itemParameterForm.inspectionItemSubclass" @keyup.enter.native="refreshTable()">
        <el-form-item label="检验子项" prop="inspectionItemSubclass" v-if="radio === 0">
          <el-input size="small" placeholder="请输入" clearable v-model="itemParameterForm.inspectionItemSubclass"
            @keyup.enter.native="refreshTable()">
          </el-input>
        </el-form-item>
        <el-form-item label="检验对象" prop="sample">
          <el-input size="small" placeholder="请输入" clearable
                    v-model="itemParameterForm.sample" @keyup.enter.native="refreshTable()">
          <el-input size="small" placeholder="请输入" clearable v-model="itemParameterForm.sample"
            @keyup.enter.native="refreshTable()">
          </el-input>
        </el-form-item>
        <el-form-item>
@@ -43,23 +41,22 @@
          <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 置</el-button>
        </el-form-item>
      </el-form>
<!--      检验项目参数表格-->
      <div class="table" v-if="radio===0">
        <lims-table :tableData="tableData" :column="column"
                    :page="page" :tableLoading="tableLoading"></lims-table>
      <!--      检验项目参数表格-->
      <div class="table" v-if="radio === 0">
        <lims-table :tableData="tableData" :column="column" key="tableData" @pagination="pagination"
          :height="'calc(100vh - 290px)'" :page="page" :tableLoading="tableLoading"></lims-table>
      </div>
<!--      检验对象表格-->
      <div class="table" v-if="radio===1">
        <lims-table :tableData="testObjectTableData" :column="testObjectColumn"
                    :page="testObjectPage" :tableLoading="tableLoading"></lims-table>
      <!--      检验对象表格-->
      <div class="table" v-if="radio === 1">
        <lims-table :tableData="testObjectTableData" :column="testObjectColumn" key="testObjectTableData"
          @pagination="pagination" :height="'calc(100vh - 290px)'" :page="testObjectPage"
          :tableLoading="tableLoading"></lims-table>
      </div>
    </div>
    <!--产品维护弹框-->
    <el-dialog title="产品维护" :visible.sync="diaProduct" width="600px">
      <div class="body" v-if="diaProduct" style="height: 350px;overflow-y: auto;padding: 5px 0;">
        <lims-table :tableData="productData" :column="productColumn"
                    :page="productPage" :tableLoading="productableLoading"></lims-table>
      </div>
    <el-dialog title="产品维护" :visible.sync="diaProduct" width="900px">
      <lims-table :tableData="productData" :column="productColumn" height="460" @pagination="productPagination"
        :page="productPage" :tableLoading="productableLoading"></lims-table>
      <span slot="footer" class="dialog-footer">
        <el-button @click="diaProduct = false">取 消</el-button>
        <el-button type="primary" @click="editProduct('add')" :loading="productLoad">新 增</el-button>
@@ -67,7 +64,8 @@
    </el-dialog>
    <!--产品维护编辑-->
    <el-dialog title="操作产品维护" :visible.sync="productEditDia" width="400px">
      <el-form :model="productEditForm" ref="productEditForm" :rules="productRules" label-position="right" label-width="100px">
      <el-form :model="productEditForm" ref="productEditForm" :rules="productRules" label-position="right"
        label-width="100px">
        <el-form-item label="产品名称" prop="name">
          <el-input size="small" placeholder="请输入" clearable v-model="productEditForm.name"></el-input>
        </el-form-item>
@@ -83,11 +81,9 @@
    </el-dialog>
    <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px">
      <div style="margin: 0 auto;">
        <el-upload ref="upload" :action="uploadAction"
                   :auto-upload="false" :file-list="fileList"
                   :headers="token" :limit="1"
                   :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag
                   name="file">
        <el-upload ref="upload" :action="uploadAction" :auto-upload="false" :file-list="fileList" :headers="token"
          :limit="1" :on-change="beforeUpload" :on-error="onError" :on-success="onSuccess" accept=".xlsx" drag
          name="file">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>
@@ -100,56 +96,72 @@
    <!--检验项目参数-编辑弹框-->
    <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>
    <BindSupplierDensityDialog v-if="bindSupplierDensityDialog"
                               :bindSupplierDensityDialog="bindSupplierDensityDialog"
                               :currentRow="currentSupplierDensityRow"
                               @closeBindPartDialog="closeBindSupplierDensityDialog"></BindSupplierDensityDialog>
    <BindPartDialog v-if="bindPartDialog" :bindPartDialog="bindPartDialog" :currentRow="currentRow" :type="type"
      @closeBindPartDialog="closeBindPartDialog" :currentObj="currentObj">
    </BindPartDialog>
    <BindSupplierDensityDialog v-if="bindSupplierDensityDialog" :bindSupplierDensityDialog="bindSupplierDensityDialog"
      :currentRow="currentSupplierDensityRow" @closeBindPartDialog="closeBindSupplierDensityDialog">
    </BindSupplierDensityDialog>
    <el-dialog title="车间绑定" :visible.sync="workshopVisible" width="400px">
      <el-form :model="workshopForm" ref="workshopForm" :rules="workshopRules" label-position="right"
        label-width="100px">
        <el-form-item label="车间名称" prop="workShopId">
          <el-select v-model="workshopForm.workShopId" placeholder="请选择" size="small">
            <el-option v-for="item in workshopList" :key="item.id" :label="item.name" :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="workshopVisible = false">取 消</el-button>
        <el-button :loading="uploading" type="primary" @click="submitWorkshop">确 认</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import BindPartDialog from "@/components/capability/bindPartDialog.vue"
import BindSupplierDensityDialog from "@/components/capability/bindSupplierDensityDialog.vue"
import BindPartDialog from "@/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue"
import BindSupplierDensityDialog from "@/views/structural/capabilityAndLaboratory/capabilityComponents/bindSupplierDensityDialog.vue"
import {
  addProduct,
  delItemParameter, delProduct, delTestObject, selectItemParameterList, selectProductListByObjectId,
  selectTestObjectList, upProduct,
  selectTestObjectList, upProduct, updateWorkShop, updateObjectWorkShop
} from "@/api/structural/capability";
import limsTable from "@/components/Table/lims-table.vue";
import EditForm from "@/components/capability/EditForm.vue";
import testObjectEditForm from "@/components/capability/testObjectEditForm.vue";
import {getToken} from "@/utils/auth";
import EditForm from "@/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue";
import testObjectEditForm from "@/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue";
import { getToken } from "@/utils/auth";
import { obtainItemParameterList } from '@/api/structural/laboratoryScope'
import { selectWorkShop } from "@/api/structural/workshop.js"
export default {
  components: {limsTable, EditForm, testObjectEditForm, BindPartDialog, BindSupplierDensityDialog},
  name: 'Capability',
  components: { limsTable, EditForm, testObjectEditForm, BindPartDialog, BindSupplierDensityDialog },
  data() {
    return {
      uploadAction: process.env.VUE_APP_BASE_API + '/capacityScope/importExcel',
      uploadAction1: process.env.VUE_APP_BASE_API + '/capacityScope/importEquipData',
      tableData: [],
      tableLoading: false,
      column: [
        {label: '检验项', prop: 'inspectionItem'},
        {label: '检验项EN', prop: 'inspectionItemEn'},
        {label: '检验子项', prop: 'inspectionItemSubclass'},
        {label: '检验子项EN', prop: 'inspectionItemSubclassEn'},
        {label: '检验项分类', prop: 'inspectionItemClass'},
        {label: '检验项分类EN', prop: 'inspectionItemClassEn'},
        {label: '检验对象', prop: 'sample'},
        {label: '单价(元)', prop: 'price'},
        {label: '试验室', prop: 'sonLaboratory'},
        {label: '要求描述', prop: 'askTell'},
        {label: '要求值', prop: 'ask'},
        {label: '计量单位', prop: 'unit'},
        {label: '工时(H)', prop: 'manHour'},
        {label: '预计时间(H)', prop: 'manDay'},
        {label: '工时分组', prop: 'manHourGroup'},
        {label: '创建时间', prop: 'createTime'},
        {label: '修改时间', prop: 'updateTime'},
        {label: '条件', prop: 'radiusList'},
        { label: '检验项', prop: 'inspectionItem' },
        { label: '检验项EN', prop: 'inspectionItemEn' },
        { label: '检验子项', prop: 'inspectionItemSubclass' },
        { label: '检验子项EN', prop: 'inspectionItemSubclassEn' },
        { label: '检验项分类', prop: 'inspectionItemClass' },
        { label: '检验项分类EN', prop: 'inspectionItemClassEn' },
        { label: '检验对象', prop: 'sample' },
        { label: '单价(元)', prop: 'price' },
        { label: '试验室', prop: 'sonLaboratory' },
        { label: '要求描述', prop: 'askTell' },
        { label: '要求值', prop: 'ask' },
        // { label: '试验条件', prop: 'radiusList' },
        { label: '计量单位', prop: 'unit' },
        { label: '工时(H)', prop: 'manHour' },
        { label: '预计时间(H)', prop: 'manDay' },
        { label: '工时分组', prop: 'manHourGroup' },
        { label: '创建时间', prop: 'createTime' },
        { label: '修改时间', prop: 'updateTime' },
        {
          dataType: 'action',
          fixed: 'right',
@@ -174,9 +186,9 @@
        }
      ],
      page: {
        total:0,
        size:10,
        current:0
        total: 0,
        size: 10,
        current: 1
      },
      testObjectTableData: [],
      testObjectColumn: [
@@ -186,17 +198,23 @@
          prop: 'laboratoryId',
          minWidth: '130',
          formatData: (params) => {
            if (params == 1) {
              return '装备电缆试验室'
            } else if (params == 5) {
              return '通信产品实验室'
            } else if (params == 6) {
              return '电力产品实验室'
            } else if (params == 8) {
              return '储能产品实验室'
            let index = this.laboratoryList.findIndex(item => item.value == params)
            if (index > -1) {
              return this.laboratoryList[index].label
            } else {
              return '射频线缆实验室'
              return null
            }
            // if (params == 1) {
            //   return '装备电缆试验室'
            // } else if (params == 5) {
            //   return '通信产品实验室'
            // } else if (params == 6) {
            //   return '电力产品实验室'
            // } else if (params == 8) {
            //   return '储能产品实验室'
            // } else {
            //   return '射频线缆实验室'
            // }
          },
          formatType: (params) => {
            if (params == 1) {
@@ -208,38 +226,29 @@
            } else if (params == 8) {
              return 'danger'
            } else {
              return ''
              return null
            }
          }
        },
        {label: '检验对象', prop: 'specimenName'},
        {label: '检验对象EN', prop: 'specimenNameEn'},
        {label: '产品', prop: 'product'},
        {label: '对象代号', prop: 'code'},
        {label: '对象类型', prop: 'objectType',
        { label: '检验对象', prop: 'specimenName' },
        { label: '检验对象EN', prop: 'specimenNameEn' },
        { label: '产品', prop: 'product' },
        // { label: '对象代号', prop: 'code' },
        {
          label: '对象类型', prop: 'objectType',
          dataType: 'tag',
          formatData: (params) => {
            if (params == 1) {
              return '原材料'
            } else if (params == 2) {
              return '成品'
            } else {
              return '辅材'
            let obj = this.productClassification.find(m => params == m.value)
            if (obj) {
              return obj.label
            }
          },
          formatType: (params) => {
            if (params == 1) {
              return 'success'
            } else if (params == 2) {
              return 'info'
            } else {
              return 'warning'
            }
          }},
        {label: '创建人', prop: 'createUserName'},
        {label: '更新人', prop: 'updateUserName'},
        {label: '创建时间', prop: 'createTime'},
        {label: '更新时间', prop: 'updateTime'},
        },
        { label: '车间名称', prop: 'workShopName' },
        { label: '创建人', prop: 'createUserName' },
        { label: '更新人', prop: 'updateUserName' },
        { label: '创建时间', prop: 'createTime' },
        { label: '更新时间', prop: 'updateTime' },
        {
          dataType: 'action',
          fixed: 'right',
@@ -273,16 +282,28 @@
              clickFun: (row) => {
                this.bindPartFirst(row);
              },
              disabled: (row) => {
                return row.product
              }
            },
            {
              name: '车间绑定',
              type: 'text',
              clickFun: (row) => {
                this.bindWokshop1(row);
              },
              disabled: (row) => {
                return row.objectType != '原辅材' && row.objectType != '包材'
              }
            },
          ]
        }
      ],
      testObjectPage: {
        total:0,
        size:10,
        current:0
        total: 0,
        size: 10,
        current: 0
      },
      tableLoading: false,
      addOrUpdate: '',
      tree: null,
      loading: true,
@@ -295,17 +316,16 @@
      productLoad: false,
      diaProduct: false,
      productColumn: [
        {label: '产品名称', prop: 'name'},
        {label: '产品名称EN', prop: 'nameEn'},
        { label: '产品名称', prop: 'name' },
        { label: '产品名称EN', prop: 'nameEn' },
        // { label: '车间名称', prop: 'workShopName' },
        {
          dataType: 'action',
          fixed: 'right',
          label: '操作',
          operation: [
            {
              name: '编辑',
              type: 'text',
              icon: 'el-icon-edit',
              clickFun: (row) => {
                this.editProduct('edit', row);
              },
@@ -313,7 +333,6 @@
            {
              name: '删除',
              type: 'text',
              icon: 'el-icon-delete',
              clickFun: (row) => {
                this.deleteProduct(row);
              },
@@ -325,21 +344,36 @@
                this.bindPartSecond(row);
              },
            },
            {
              name: '厂家密度绑定',
              type: 'text',
              clickFun: (row) => {
                this.bindSupplierDensitySecond(row);
              },
            },
            // {
            //   name: '车间绑定',
            //   type: 'text',
            //   clickFun: (row) => {
            //     this.bindWokshop(row);
            //   },
            //   showHide: (row) => {
            //     if (this.currentObj.objectType != '原辅材' && row.objectType != '包材') {
            //       return false
            //     } else {
            //       return true
            //     }
            //   }
            // },
            // {
            //   name: '厂家密度绑定',
            //   type: 'text',
            //   clickFun: (row) => {
            //     this.bindSupplierDensitySecond(row);
            //   },
            // },
          ]
        }
      ],
      productData: [],
      productPage: {
        total:0,
        size:10,
        current:0
        total: 0,
        size: 10,
        current: 1,
        layout: 'total, prev, pager, next'
      },
      productableLoading: false,
      productEditDia: false,
@@ -357,17 +391,32 @@
      },
      uploadDia: false,
      fileList: [],
      token: {Authorization: "Bearer " + getToken()},
      token: { Authorization: "Bearer " + getToken() },
      uploading: false,
      currentRow: {}, // 选择零件绑定本条数据的信息
      currentSupplierDensityRow: {}, // 选择零件绑定本条数据的信息
      bindSupplierDensityDialog: false,
      bindPartDialog: false,
      type: null,  // 零件绑定的类型--0:检验对象,1:产品维护
      type: null,  // 零件绑定的类型--0:检验对象,1:产品维护,
      laboratoryList: [],
      productClassification: [],//产品类型
      currentObj: {},//当前对象
      currentProduct: {},//当前产品
      workshopVisible: false,
      workshopForm: {},
      workshopRules: {
        workShopId: [{ required: true, message: '请选择车间', trigger: 'change' }]
      },
      workshopList: [],//车间列表
    }
  },
  created() {
    this.getItemParameterList()
    this.refreshTable()
    this.getDicts("product_classification").then((response) => {
      this.productClassification = this.dictToValue(response.data);
    });
    this.selectWorkShop()
  },
  computed: {
    title() {
@@ -375,6 +424,11 @@
    }
  },
  methods: {
    selectWorkShop() {
      selectWorkShop({ size: -1, current: -1 }).then(res => {
        this.workshopList = res.data.records
      })
    },
    submitUpload() {
      if (this.$refs.upload.uploadFiles.length === 0) {
        this.$message.error('未选择文件')
@@ -387,8 +441,8 @@
      this.$refs.upload.clearFiles()
      this.uploadDia = false
      this.uploading = false
      if (response.code === 201) {
        this.$message.error(response.message)
      if (response.code !== 200) {
        this.$message.error(response.msg)
        return
      }
      this.$message.success('上传成功')
@@ -423,25 +477,25 @@
        return true;
      }
    },
    handleSuccessUp (response, file, fileList) {
      this.$refs.upload.clearFiles()
      if (response.code === 201) {
        this.$message.error(response.message)
    handleSuccessUp1(response, file, fileList) {
      this.$refs.upload1.clearFiles()
      if (response.code !== 200) {
        this.$message.error(response.msg)
        return
      }
      this.$message.success('上传成功')
      this.refreshTable()
    },
    refreshList () {
    refreshList() {
      this.refreshTable()
    },
    refreshList1 () {
    refreshList1() {
      this.refreshTable()
    },
    refreshTable() {
      this.tableLoading = true
      if (this.radio === 0) {
        selectItemParameterList({...this.page, ...this.itemParameterForm}).then(res => {
        selectItemParameterList({ ...this.page, ...this.itemParameterForm }).then(res => {
          this.tableLoading = false
          if (res.code === 200) {
            this.tableData = res.data.records
@@ -451,7 +505,7 @@
          this.tableLoading = false
        })
      } else {
        selectTestObjectList({...this.testObjectPage, ...this.itemParameterForm}).then(res => {
        selectTestObjectList({ ...this.testObjectPage, ...this.itemParameterForm }).then(res => {
          this.tableLoading = false
          if (res.code === 200) {
            this.testObjectTableData = res.data.records
@@ -463,7 +517,17 @@
      }
    },
    refresh() {
      this.itemParameterForm = {
        inspectionItem: null,
        inspectionItemSubclass: null,
        sample: null
      }
      this.resetForm('itemParameterForm')
      this.page.current = 1
      this.refreshTable()
    },
    pagination(page) {
      this.page.size = page.limit
      this.refreshTable()
    },
    // 检验项目参数新增
@@ -475,17 +539,17 @@
      }
    },
    // 检验项目参数-打开修改弹框
    editForm (row) {
    editForm(row) {
      this.$refs.editForm.openDia('edit', row)
    },
    // 检验项目参数-删除
    delete (row) {
    delete(row) {
      this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delItemParameter({id:row.id}).then(res => {
        delItemParameter({ id: row.id }).then(res => {
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.refreshTable();
@@ -499,17 +563,17 @@
      })
    },
    // 检验对象-打开修改弹框
    editTestObjectForm (row) {
    editTestObjectForm(row) {
      this.$refs.testObjectEditForm.openDia('edit', row)
    },
    // 检验项目参数-删除
    deleteTest (row) {
    deleteTest(row) {
      this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delTestObject({id:row.id}).then(res => {
        delTestObject({ id: row.id }).then(res => {
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.refreshTable();
@@ -524,73 +588,95 @@
    },
    // 产品维护
    upProduct(row) {
      this.currentObj = row;
      // if (this.currentObj.objectType == '原辅材') {
      //   if (this.productColumn.length < 4) {
      //     this.productColumn.splice(2, 0, { label: '车间名称', prop: 'workShopName' })
      //   }
      // } else {
      //   if (this.productColumn.length == 4) {
      //     this.productColumn.splice(2, 1)
      //   }
      // }
      this.diaProduct = true
      this.objectId = row.id
      this.productPage.current = 1
      this.getProductList(row)
    },
    getProductList (row) {
    // 查询产品维护列表数据
    getProductList() {
      const params = {
        objectId: 0,
        partNo: row.partNo
        objectId: this.objectId,
      }
      this.productableLoading = true
      selectProductListByObjectId({...params, ...this.productPage}).then(res => {
      selectProductListByObjectId({ ...params, ...this.productPage }).then(res => {
        this.productableLoading = false
        if (res.code === 200) return
        this.productData = res.data.records
        this.productPage.total = res.data.total
      }).catch(err => {
        this.productableLoading = false
      })
    },
    // 产品维护列表分页
    productPagination(page) {
      this.productPage.current = page.page
      this.getProductList()
    },
    // 产品维护-新增-编辑
    editProduct (type, row) {
    editProduct(type, row) {
      this.productEditDia = true
      this.operationType = type
      if (type === 'edit') {
        this.productEditForm = row
        this.productEditForm = this.HaveJson(row)
      }
    },
    // 提交产品维护修改
    submitProduct () {
    submitProduct() {
      this.$refs['productEditForm'].validate((valid) => {
        if (valid) {
          this.uploading = true
          this.productEditForm.objectId = this.objectId
          if (this.operationType === 'add') {
            addProduct(this.productEditForm).then(res => {
              this.uploading = false
              if (res.code === 200) {
                this.$message.success('新增成功')
                this.productEditDia = false
                this.refreshTable();
                this.closeProduct()
                this.getProductList();
              }
            }).catch(err => {
              this.uploading = false
            })
          } else {
            upProduct(this.productEditForm).then(res => {
              this.uploading = false
              if (res.code === 200) {
                this.$message.success('新增成功')
                this.productEditDia = false
                this.refreshTable();
                this.closeProduct()
                this.getProductList();
              }
            }).catch(err => {
              this.uploading = false
            })
          }
        }
      })
    },
    closeProduct() {
      this.productEditDia = false
      this.resetForm('productEditForm')
      this.productEditDia = false
    },
    // 产品维护-删除
    deleteProduct (row) {
    deleteProduct(row) {
      this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        delProduct({id:row.id}).then(res => {
        delProduct({ id: row.id }).then(res => {
          if (res.code === 200) {
            this.$message.success('删除成功')
            this.refreshTable();
            this.getProductList();
          }
        })
      }).catch(() => {
@@ -601,33 +687,102 @@
      })
    },
    // 零件绑定
    bindPartFirst (row) {
    bindPartFirst(row) {
      this.bindPart(row, 0)
    },
    bindPartSecond (row) {
    bindPartSecond(row) {
      this.bindPart(row, 1)
    },
    // 产品-车间绑定
    bindWokshop(row) {
      this.workshopForm.workShopId = row.workShopId
      this.currentProduct = row;
      this.workshopVisible = true
    },
    // 对象-车间绑定
    bindWokshop1(row) {
      this.$set(this.workshopForm, 'workShopId', row.workShopId)
      this.currentProduct = {};
      this.currentObj = row;
      this.workshopVisible = true
    },
    // 厂家密度绑定
    bindSupplierDensitySecond (row) {
    bindSupplierDensitySecond(row) {
      this.bindSupplierDensity(row)
    },
    // 打开厂家密度绑定弹框
    bindSupplierDensity (row) {
    bindSupplierDensity(row) {
      this.currentSupplierDensityRow = row
      this.bindSupplierDensityDialog = true
    },
    // 打开零件绑定弹框
    bindPart (row, index) {
    bindPart(row, index) {
      if (index == 0) {
        this.currentObj = row
      }
      this.type = index
      this.currentRow = row
      this.bindPartDialog = true
    },
    closeBindPartDialog () {
    closeBindPartDialog() {
      this.bindPartDialog = false
    },
    closeBindSupplierDensityDialog () {
    closeBindSupplierDensityDialog() {
      this.bindSupplierDensityDialog = false
    },
    getItemParameterList() {
      obtainItemParameterList().then(res => {
        let data = []
        res.data.forEach(a => {
          data.push({
            label: a.laboratoryName,
            value: a.id
          })
        })
        this.laboratoryList = data
      })
    },
    // 绑定车间
    submitWorkshop() {
      this.$refs['workshopForm'].validate((valid) => {
        if (valid) {
          this.uploading = true
          if (this.currentProduct.id) {
            // 产品绑定车间
            updateWorkShop({
              id: this.currentProduct.id ? this.currentProduct.id : null,
              workShopId: this.workshopForm.workShopId,
              workShopName: this.workshopList.find(m => m.id == this.workshopForm.workShopId).name,
            }).then(res => {
              this.uploading = false
              if (res.code === 200) {
                this.$message.success('绑定成功')
                this.getProductList();
                this.workshopVisible = false
              }
            }).catch(err => {
              this.uploading = false
            })
          } else {
            // 对象绑定车间
            updateObjectWorkShop({
              id: this.currentObj.id ? this.currentObj.id : null,
              workShopId: this.workshopForm.workShopId,
              workShopName: this.workshopList.find(m => m.id == this.workshopForm.workShopId).name,
            }).then(res => {
              this.uploading = false
              if (res.code === 200) {
                this.$message.success('绑定成功')
                this.refreshTable()
                this.workshopVisible = false
              }
            }).catch(err => {
              this.uploading = false
            })
          }
        }
      })
    }
  }
}
</script>