| | |
| | | <div> |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="text-align: left"> |
| | | <el-radio-group v-model="radio" size="medium" fill="#409EFF"> |
| | | <el-radio-group v-model="radio" size="medium" fill="#409EFF" @change="refreshTable"> |
| | | <el-radio-button :label="0">检验项目参数</el-radio-button> |
| | | <el-radio-button :label="1">检验对象</el-radio-button> |
| | | </el-radio-group> |
| | |
| | | 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'> |
| | | :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> |
| | |
| | | v-model="itemParameterForm.inspectionItemSubclass" @keyup.enter.native="refreshTable()"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="检验对象" prop="sample"> |
| | | <el-form-item label="检验对象" prop="sample" v-if="radio===0"> |
| | | <el-input size="small" placeholder="请输入" clearable |
| | | v-model="itemParameterForm.sample" @keyup.enter.native="refreshTable()"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="检验对象" prop="specimenName" v-if="radio===1"> |
| | | <el-input size="small" placeholder="请输入" clearable |
| | | v-model="itemParameterForm.specimenName" @keyup.enter.native="refreshTable()"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="零件号" prop="partNo" v-if="radio===1"> |
| | | <el-input size="small" placeholder="请输入" clearable |
| | | v-model="itemParameterForm.partNo" @keyup.enter.native="refreshTable()"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">查 询</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="refresh">重 置</el-button> |
| | | <el-button type="primary" size="mini" @click="refreshTable">查询</el-button> |
| | | <el-button size="mini" @click="refresh">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- 检验项目参数表格--> |
| | | <div class="table" v-if="radio===0"> |
| | | <lims-table :tableData="tableData" :column="column" |
| | | <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" |
| | | <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="openAdd2" :loading="productLoad">新 增</el-button> |
| | | <el-button type="primary" @click="editProduct('add')" :loading="productLoad">新 增</el-button> |
| | | </span> |
| | | </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-item label="产品名称" prop="name"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="productEditForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="产品名称EN" prop="nameEn"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="productEditForm.nameEn"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="closeProduct">取 消</el-button> |
| | | <el-button :loading="uploading" type="primary" @click="submitProduct">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="uploadDia" title="数据导入" width="500px"> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | <!--检验项目参数-编辑弹框--> |
| | | <EditForm ref="editForm"></EditForm> |
| | | <testObjectEditForm ref="testObjectEditForm"></testObjectEditForm> |
| | | <EditForm ref="editForm" @refreshList="refreshList1"></EditForm> |
| | | <testObjectEditForm ref="testObjectEditForm" @refreshList="refreshList"></testObjectEditForm> |
| | | <BindPartDialog v-if="bindPartDialog" :bindPartDialog="bindPartDialog" |
| | | :currentRow="currentRow" |
| | | :type="type" |
| | |
| | | </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, |
| | | selectTestObjectList, upProduct, |
| | | } 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 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' |
| | | |
| | | export default { |
| | | 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'}, |
| | |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | | label: '操作', |
| | | width: '140px', |
| | | operation: [ |
| | | { |
| | | name: '编辑', |
| | |
| | | page: { |
| | | total:0, |
| | | size:10, |
| | | current:0 |
| | | current:1 |
| | | }, |
| | | testObjectTableData: [], |
| | | testObjectColumn: [ |
| | |
| | | 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 '储能产品实验室' |
| | | } else { |
| | | return '射频线缆实验室' |
| | | let index = this.laboratoryList.findIndex(item => item.value == params) |
| | | if(index > -1) { |
| | | return this.laboratoryList[index].label |
| | | }else { |
| | | 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) { |
| | |
| | | } else if (params == 8) { |
| | | return 'danger' |
| | | } else { |
| | | return '' |
| | | return null |
| | | } |
| | | } |
| | | }, |
| | |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | | label: '操作', |
| | | width: '240px', |
| | | operation: [ |
| | | { |
| | | name: '编辑', |
| | |
| | | size:10, |
| | | current:0 |
| | | }, |
| | | tableLoading: false, |
| | | addOrUpdate: '', |
| | | tree: null, |
| | | loading: true, |
| | | itemParameterForm: { |
| | | inspectionItem: null, |
| | | inspectionItemSubclass: null, |
| | | sample: null |
| | | sample: null, |
| | | specimenName: null, |
| | | partNo: null |
| | | }, |
| | | radio: 0, |
| | | productLoad: false, |
| | |
| | | {label: '产品名称EN', prop: 'nameEn'}, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | | label: '操作', |
| | | operation: [ |
| | | { |
| | | name: '编辑', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.editProduct(row); |
| | | this.editProduct('edit', row); |
| | | }, |
| | | }, |
| | | { |
| | |
| | | productPage: { |
| | | total:0, |
| | | size:10, |
| | | current:0 |
| | | current:1, |
| | | partNo: null, |
| | | layout: 'total, prev, pager, next' |
| | | }, |
| | | productableLoading: false, |
| | | inPower: true, |
| | | productEditDia: false, |
| | | operationType: '', |
| | | productEditForm: { |
| | | objectId: '', |
| | | id: '', |
| | | name: '', |
| | | nameEn: '' |
| | | }, |
| | | objectId: '', |
| | | productRules: { |
| | | name: [{ required: true, message: '请填写产品名称', trigger: 'blur' }], |
| | | nameEn: [{ required: true, message: '请填写产品名称EN', trigger: 'blur' }] |
| | | }, |
| | | uploadDia: false, |
| | | fileList: [], |
| | | token: {Authorization: "Bearer " + getToken()}, |
| | |
| | | currentSupplierDensityRow: {}, // 选择零件绑定本条数据的信息 |
| | | bindSupplierDensityDialog: false, |
| | | bindPartDialog: false, |
| | | type: null, // 零件绑定的类型--0:检验对象,1:产品维护 |
| | | type: null, // 零件绑定的类型--0:检验对象,1:产品维护, |
| | | laboratoryList:[] |
| | | } |
| | | }, |
| | | created() { |
| | | this.refreshTable() |
| | | }, |
| | | mounted() { |
| | | this.token = { |
| | | 'token': sessionStorage.getItem('token') |
| | | } |
| | | this.getItemParameterList() |
| | | this.refreshTable() |
| | | }, |
| | | computed: { |
| | |
| | | }, |
| | | methods: { |
| | | submitUpload() { |
| | | if (this.$refs.upload.uploadFiles.length == 0) { |
| | | if (this.$refs.upload.uploadFiles.length === 0) { |
| | | this.$message.error('未选择文件') |
| | | return |
| | | } |
| | |
| | | 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('上传成功') |
| | |
| | | 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 () { |
| | | this.refreshTable() |
| | | }, |
| | | refreshList1 () { |
| | | this.refreshTable() |
| | | }, |
| | | refreshTable() { |
| | |
| | | selectItemParameterList({...this.page, ...this.itemParameterForm}).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.tableData = res.data |
| | | this.page.total = res.total |
| | | this.tableData = res.data.records |
| | | this.page.total = res.data.total |
| | | } |
| | | }).catch(err => { |
| | | this.tableLoading = false |
| | |
| | | selectTestObjectList({...this.testObjectPage, ...this.itemParameterForm}).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.testObjectTableData = res.data |
| | | this.testObjectPage.total = res.total |
| | | this.testObjectTableData = res.data.records |
| | | this.testObjectPage.total = res.data.total |
| | | } |
| | | }).catch(err => { |
| | | this.tableLoading = false |
| | |
| | | }, |
| | | refresh() { |
| | | this.resetForm('itemParameterForm') |
| | | this.page.current = 1 |
| | | this.refreshTable() |
| | | }, |
| | | pagination (page) { |
| | | this.page.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | // 检验项目参数新增 |
| | |
| | | }, |
| | | // 检验项目参数-删除 |
| | | delete (row) { |
| | | this.$modal.confirm('是否确认删除此数据项?').then(function() { |
| | | return delItemParameter(row.id); |
| | | this.$confirm('此操作将删除该数据, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | delItemParameter({id:row.id}).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('删除成功') |
| | | this.refreshTable(); |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消删除' |
| | | }); |
| | | }) |
| | | }, |
| | | // 检验对象-打开修改弹框 |
| | | editTestObjectForm (row) { |
| | |
| | | }, |
| | | // 检验项目参数-删除 |
| | | deleteTest (row) { |
| | | this.$modal.confirm('是否确认删除此数据项?').then(function() { |
| | | return delTestObject(row.id); |
| | | this.$confirm('此操作将删除该数据, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | delTestObject({id:row.id}).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('删除成功') |
| | | this.refreshTable(); |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消删除' |
| | | }); |
| | | }) |
| | | }, |
| | | // 产品维护 |
| | | upProduct(row) { |
| | | this.diaProduct = true |
| | | this.objectId = row.id |
| | | this.productPage.current = 1 |
| | | this.productPage.partNo = this.itemParameterForm.partNo |
| | | 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 => { |
| | | this.productableLoading = false |
| | | if (res.code === 200) return |
| | | this.productData = res.data |
| | | this.productData = res.data.records |
| | | this.productPage.total = res.data.total |
| | | }).catch(err => { |
| | | this.productableLoading = false |
| | | }) |
| | | }, |
| | | // 产品维护-新增 |
| | | openAdd2(){ |
| | | |
| | | // 产品维护列表分页 |
| | | productPagination(page) { |
| | | this.productPage.current = page.page |
| | | this.getProductList() |
| | | }, |
| | | // 产品维护-编辑 |
| | | editProduct () { |
| | | |
| | | // 产品维护-新增-编辑 |
| | | editProduct (type, row) { |
| | | this.productEditDia = true |
| | | this.operationType = type |
| | | if (type === 'edit') { |
| | | this.productEditForm = this.HaveJson(row) |
| | | } |
| | | }, |
| | | // 提交产品维护修改 |
| | | 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.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.closeProduct() |
| | | this.getProductList(); |
| | | } |
| | | }).catch(err => { |
| | | this.uploading = false |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | closeProduct() { |
| | | this.resetForm('productEditForm') |
| | | this.productEditDia = false |
| | | }, |
| | | // 产品维护-删除 |
| | | deleteProduct (row) { |
| | | this.$modal.confirm('是否确认删除此数据项?').then(function() { |
| | | return delProduct(row.id); |
| | | this.$confirm('此操作将删除该数据, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | delProduct({id:row.id}).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('删除成功') |
| | | this.getProductList(); |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消删除' |
| | | }); |
| | | }) |
| | | }, |
| | | // 零件绑定 |
| | | bindPartFirst (row) { |
| | |
| | | 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 |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |