10 changed files with 5377 additions and 1 deletions
-
82src/api/qc/qc.js
-
1src/views/modules/common/Chooselist_eam.vue
-
311src/views/modules/qc/qcCheckOutMethod.vue
-
917src/views/modules/qc/qcCheckOutModel.vue
-
621src/views/modules/qc/qcFamily.vue
-
271src/views/modules/qc/qcInformation.vue
-
371src/views/modules/qc/qcInspector.vue
-
884src/views/modules/qc/qcItemMaintenance.vue
-
784src/views/modules/qc/qcMasterInformationModel.vue
-
1136src/views/modules/qc/qcResultEntry.vue
@ -0,0 +1,82 @@ |
|||
import { createAPI } from "@/utils/httpRequest.js"; |
|||
|
|||
// ===================================== 检验方法 =====================================
|
|||
export const qcCheckOutMethodSearch = data => createAPI(`/pms/qc/qcCheckOutMethodSearch`,'post',data) |
|||
export const qcCheckOutMethodSave = data => createAPI(`/pms/qc/qcCheckOutMethodSave`,'post',data) |
|||
export const qcCheckOutMethodUpdate = data => createAPI(`/pms/qc/qcCheckOutMethodUpdate`,'post',data) |
|||
export const qcCheckOutMethodDelete = data => createAPI(`/pms/qc/qcCheckOutMethodDelete`,'post',data) |
|||
|
|||
|
|||
// ===================================== 检验项目 =====================================
|
|||
export const qcCheckOutItemSearch = data => createAPI(`/pms/qc/qcCheckOutItemSearch`,'post',data) |
|||
export const qcCheckOutItemSave = data => createAPI(`/pms/qc/qcCheckOutItemSave`,'post',data) |
|||
export const qcCheckOutItemUpdate = data => createAPI(`/pms/qc/qcCheckOutItemUpdate`,'post',data) |
|||
export const qcCheckOutItemDelete = data => createAPI(`/pms/qc/qcCheckOutItemDelete`,'post',data) |
|||
export const searchItemAvailable = data => createAPI(`/pms/qc/searchItemAvailable`,'post',data) |
|||
export const saveItemAvailable = data => createAPI(`/pms/qc/saveItemAvailable`,'post',data) |
|||
export const deleteItemAvailable = data => createAPI(`/pms/qc/deleteItemAvailable`,'post',data) |
|||
export const searchItemDetails = data => createAPI(`/pms/qc/searchItemDetails`,'post',data) |
|||
export const deleteItemDetails = data => createAPI(`/pms/qc/deleteItemDetails`,'post',data) |
|||
export const saveItemDetails = data => createAPI(`/pms/qc/saveItemDetails`,'post',data) |
|||
|
|||
|
|||
// ===================================== 检验模板 =====================================
|
|||
export const qcCheckOutModelSearch = data => createAPI(`/pms/qc/qcCheckOutModelSearch`,'post',data) |
|||
export const qcCheckOutModelSave = data => createAPI(`/pms/qc/qcCheckOutModelSave`,'post',data) |
|||
export const qcCheckOutModelUpdate = data => createAPI(`/pms/qc/qcCheckOutModelUpdate`,'post',data) |
|||
export const qcCheckOutModelDelete = data => createAPI(`/pms/qc/qcCheckOutModelDelete`,'post',data) |
|||
export const searchModalDetails = data => createAPI(`/pms/qc/searchModalDetails`,'post',data) |
|||
export const saveModalDetails = data => createAPI(`/pms/qc/saveModalDetails`,'post',data) |
|||
export const deleteModalDetails = data => createAPI(`/pms/qc/deleteModalDetails`,'post',data) |
|||
export const getItemLists= data => createAPI(`/pms/qc/getItemLists`,'post',data) |
|||
|
|||
// ===================================== 检验分类 =====================================
|
|||
export const qcFamilySearch = data => createAPI(`/pms/qc/qcFamilySearch`,'post',data) |
|||
export const qcFamilySave = data => createAPI(`/pms/qc/qcFamilySave`,'post',data) |
|||
export const qcFamilyUpdate = data => createAPI(`/pms/qc/qcFamilyUpdate`,'post',data) |
|||
export const qcFamilyDelete = data => createAPI(`/pms/qc/qcFamilyDelete`,'post',data) |
|||
export const saveFamilyDetails = data => createAPI(`/pms/qc/saveFamilyDetails`,'post',data) |
|||
export const searchFamilyDetails = data => createAPI(`/pms/qc/searchFamilyDetails`,'post',data) |
|||
export const deleteFamilyDetails = data => createAPI(`/pms/qc/deleteFamilyDetails`,'post',data) |
|||
|
|||
// ===================================== 检验录入 =====================================
|
|||
export const qcInspectionInformationSearch = data => createAPI(`/pms/qc/qcInspectionInformationSearch`,'post',data) |
|||
export const modalCodeBlur = data => createAPI(`/pms/qc/modalCodeBlur`,'post',data) |
|||
export const qcInspectionInformationSave = data => createAPI(`/pms/qc/qcInspectionInformationSave`,'post',data) |
|||
export const masterInformationSearch = data => createAPI(`/pms/qc/masterInformationSearch`,'post',data) |
|||
export const saveMasterInformationValue = data => createAPI(`/pms/qc/saveMasterInformationValue`,'post',data) |
|||
export const searchModelTree = data => createAPI(`/pms/qc/searchModelTree`,'post',data) |
|||
export const detailInformationSearch = data => createAPI(`/pms/qc/detailInformationSearch`,'post',data) |
|||
export const saveDetailInformation = data => createAPI(`/pms/qc/saveDetailInformation`,'post',data) |
|||
export const qcInspectionInformationDelete = data => createAPI(`/pms/qc/qcInspectionInformationDelete`,'post',data) |
|||
|
|||
|
|||
// ===================================== 主记录栏信息 =====================================
|
|||
export const searchMasterInformation = data => createAPI(`/pms/qc/searchMasterInformation`,'post',data) |
|||
export const saveMasterInformation = data => createAPI(`/pms/qc/saveMasterInformation`,'post',data) |
|||
export const getInformationLists = data => createAPI(`/pms/qc/getInformationLists`,'post',data) |
|||
export const deleteMasterInformation = data => createAPI(`/pms/qc/deleteMasterInformation`,'post',data) |
|||
export const qcMasterInformationModelDelete = data => createAPI(`/pms/qc/qcMasterInformationModelDelete`,'post',data) |
|||
|
|||
|
|||
// ===================================== 主记录栏信息 =====================================
|
|||
export const qcInformationSearch = data => createAPI(`/pms/qc/qcInformationSearch`,'post',data) |
|||
export const qcInformationSave = data => createAPI(`/pms/qc/qcInformationSave`,'post',data) |
|||
export const qcInformationUpdate = data => createAPI(`/pms/qc/qcInformationUpdate`,'post',data) |
|||
export const qcInformationDelete = data => createAPI(`/pms/qc/qcInformationDelete`,'post',data) |
|||
|
|||
|
|||
// ===================================== 质检员信息 =====================================
|
|||
export const inspectorSearch = data => createAPI(`/pms/qc/inspectorSearch`,'post',data) |
|||
export const inspectorSave = data => createAPI(`/pms/qc/inspectorSave`,'post',data) |
|||
export const inspectorUpdate = data => createAPI(`/pms/qc/inspectorUpdate`,'post',data) |
|||
export const inspectorDelete = data => createAPI(`/pms/qc/inspectorDelete`,'post',data) |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
@ -0,0 +1,311 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<!-- 条件查询 --> |
|||
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'检验方法编码'"> |
|||
<el-input v-model="searchData.methodNo" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检验方法名称'"> |
|||
<el-input v-model="searchData.methodName" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="addModal()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 展示列表 --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="160" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="updateModal(scope.row)">修改</a> |
|||
<a type="text" size="small" @click="deleteEamPropertiesItem(scope.row)">删除</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<!-- 新增和修改 --> |
|||
<el-dialog title="检验方法" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="检验方法编码:"> |
|||
<el-input v-model="modalData.methodNo" :disabled="modalDisableFlag" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="检验方法名称:"> |
|||
<el-input v-model="modalData.methodName" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="检验方法说明:"> |
|||
<el-input v-model="modalData.methodRemark" style="width: 254px"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="saveData()">保存</el-button> |
|||
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
qcCheckOutMethodSearch, |
|||
qcCheckOutMethodSave, |
|||
qcCheckOutMethodUpdate, |
|||
qcCheckOutMethodDelete, |
|||
} from "@/api/qc/qc.js" |
|||
export default { |
|||
watch: { |
|||
searchData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.searchData.methodNo = this.searchData.methodNo.toUpperCase() |
|||
} |
|||
}, |
|||
|
|||
methodData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.methodData.methodNo = this.methodData.methodNo.toUpperCase() |
|||
} |
|||
}, |
|||
modalData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.modalData.methodNo = this.modalData.methodNo.toUpperCase() |
|||
} |
|||
} |
|||
}, |
|||
data () { |
|||
return { |
|||
searchData: { |
|||
methodNo: '', |
|||
methodName: '', |
|||
methodType: 'D' |
|||
}, |
|||
height: 200, |
|||
dataList: [], |
|||
dataListLoading: false, |
|||
modalFlag: false, |
|||
modalDisableFlag: false, |
|||
methodData: { |
|||
methodNo: '', |
|||
valueNo: '', |
|||
availableValue: '', |
|||
methodType: 'D', |
|||
createdBy: this.$store.state.user.name |
|||
}, |
|||
modalData: { |
|||
flag: '', |
|||
methodNo: '', |
|||
methodName: '', |
|||
createdBy: this.$store.state.user.name, |
|||
methodRemark: '', |
|||
methodType: 'D' |
|||
}, |
|||
// 标头展示 |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemID', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'methodNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '检验方法编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemDesc', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'methodName', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '检验方法名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemRemark', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'methodRemark', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '检验方法说明', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
}, |
|||
] |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 180 |
|||
}) |
|||
}, |
|||
created () { |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
// 查询获取数据列表 |
|||
getDataList () { |
|||
qcCheckOutMethodSearch(this.searchData).then(({data}) => { |
|||
this.dataList = data.rows |
|||
}) |
|||
}, |
|||
// 新增按钮 |
|||
addModal () { |
|||
this.modalData = { |
|||
flag: '1', |
|||
methodNo: '', |
|||
methodName: '', |
|||
createdBy: this.$store.state.user.name, |
|||
methodRemark: '', |
|||
methodType: 'D' |
|||
} |
|||
this.modalDisableFlag = false |
|||
this.modalFlag = true |
|||
}, |
|||
// 修改按钮 |
|||
updateModal (row) { |
|||
this.modalData = { |
|||
flag: '2', |
|||
methodNo: row.methodNo, |
|||
methodName: row.methodName, |
|||
createdBy: this.$store.state.user.name, |
|||
methodRemark: row.methodRemark, |
|||
methodType: 'D' |
|||
} |
|||
this.modalDisableFlag = true |
|||
this.modalFlag = true |
|||
}, |
|||
// 删除方法 |
|||
deleteEamPropertiesItem (row) { |
|||
this.$confirm(`是否删除这个点检方法?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
qcCheckOutMethodDelete(row).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
// 新增/修改方法 |
|||
saveData () { |
|||
if (this.modalData.methodNo == '' || this.modalData.methodNo == null) { |
|||
this.$alert('请输入检验方法编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.methodName == '' || this.modalData.methodName == null) { |
|||
this.$alert('请输入检验方法名称!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.flag == '1') { // 新增 |
|||
qcCheckOutMethodSave(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} else { // 修改 |
|||
qcCheckOutMethodUpdate(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,917 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<!-- 条件查询 --> |
|||
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'检验模板编码'"> |
|||
<el-input v-model="searchData.codeNo" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检验模板名称'"> |
|||
<el-input v-model="searchData.codeDesc" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'是否在用'"> |
|||
<el-select filterable v-model="searchData.active" style="width: 130px"> |
|||
<el-option label="请选择" value=""></el-option> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="addModal()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 展示列表 --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="160" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="updateModal(scope.row)">修改</a> |
|||
<a type="text" size="small" @click="detailModal(scope.row)">检验项目</a> |
|||
<a type="text" size="small" @click="deletePropertiesModel(scope.row)">删除</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<!-- 分页栏 --> |
|||
<el-pagination |
|||
@size-change="sizeChangeHandle" |
|||
@current-change="currentChangeHandle" |
|||
:current-page="pageIndex" |
|||
:page-sizes="[20, 50, 100, 1000]" |
|||
:page-size="pageSize" |
|||
:total="totalPage" |
|||
layout="total, sizes, prev, pager, next, jumper"> |
|||
</el-pagination> |
|||
|
|||
<!-- 检验模板新增/修改 --> |
|||
<el-dialog title="检验模板" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="检验模板编码:"> |
|||
<el-input v-model="modalData.codeNo" :disabled="modalDisableFlag" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="检验模板名称:"> |
|||
<el-input v-model="modalData.codeDesc" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="是否在用:"> |
|||
<el-select filterable v-model="modalData.active" style="width: 120px"> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 10px;text-align:center"> |
|||
<el-button type="primary" @click="saveData()">保存</el-button> |
|||
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验项目 --> |
|||
<el-dialog title="检验项目清单" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="830px"> |
|||
<el-form :inline="true" label-position="top" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'检验模板编码'"> |
|||
<el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检验模板名称'"> |
|||
<el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="addDetailModal()">新增</el-button> |
|||
<el-button type="primary" @click="addFastModal()">快速新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<!-- 检验项目展示列表 --> |
|||
<el-table |
|||
:height="300" |
|||
:data="detailList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnDetailList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
|
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="130" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" v-if="scope.row.valueChooseFlag=='Y'" @click="chooseModal(scope.row)">可选值</a> |
|||
<a type="text" size="small" @click="deleteModalDetails(scope.row)">删除项目</a> |
|||
</template> |
|||
</el-table-column> |
|||
|
|||
</el-table> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="detailModelFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验项目->新增 --> |
|||
<el-dialog title="添加项目" :close-on-click-modal="false" v-drag :visible.sync="addDetailModalFlag" width="300px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item > |
|||
<span slot="label" style="" @click="getBaseList(1034)"><a herf="#">检验项目编码</a></span> |
|||
<el-input v-model="detailData.itemNo" @blur="itemNoBlur" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="检验项目名称:"> |
|||
<el-input v-model="detailData.itemDesc" disabled style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 10px;text-align:center"> |
|||
<el-button type="primary" @click="saveModalDetails()">保存</el-button> |
|||
<el-button type="primary" @click="addDetailModalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验项目->快速新增 --> |
|||
<el-dialog title="快速添加" @close="refreshDetailList" :close-on-click-modal="false" v-drag :visible.sync="fastAddFlag" width="800px"> |
|||
<div style="font-size: 12px"> |
|||
检验模板编码:<el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input> |
|||
检验模板名称:<el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input> |
|||
</div> |
|||
<el-container style="margin-top: -12px;"> |
|||
<el-main style="width: 300px"> |
|||
<span style="font-size: 12px" >可选项目:</span> |
|||
<el-table |
|||
height="300px" |
|||
:data="itemList1" |
|||
border |
|||
@row-click="clickItem1" |
|||
highlight-current-row |
|||
v-loading="dataListLoading" |
|||
style="width: 100%"> |
|||
<el-table-column |
|||
prop="itemNo" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="110" |
|||
label="项目编码"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="itemDesc" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="170" |
|||
label="项目名称"> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-main> |
|||
<el-main style="width: 100px"> |
|||
<div style="margin-top: 100px"> |
|||
<el-button type="primary" @click="addItem()">添加>></el-button> |
|||
</div> |
|||
<div style="margin-top: 20px"> |
|||
<el-button type="primary" @click="deleteItem()">删除<<</el-button> |
|||
</div> |
|||
</el-main> |
|||
<el-main style="width: 300px"> |
|||
<span style="font-size: 12px" >已有项目:</span> |
|||
<el-table |
|||
height="300px" |
|||
:data="itemList2" |
|||
border |
|||
@row-click="clickItem2" |
|||
highlight-current-row |
|||
v-loading="dataListLoading" |
|||
style="width: 100%"> |
|||
<el-table-column |
|||
prop="itemNo" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="110" |
|||
label="项目编码"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="itemDesc" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="170" |
|||
label="项目名称"> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-main> |
|||
</el-container> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="fastAddFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验项目->可选值 --> |
|||
<el-dialog title="可选值" :close-on-click-modal="false" v-drag :visible.sync="chooseModalFlag" width="350px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="检验项目名称:"> |
|||
<el-input v-model="chooseModalData.itemDesc" disabled style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检测值类型'"> |
|||
<el-select filterable v-model="chooseModalData.valueTypeDb" disabled style="width: 120px"> |
|||
<el-option label="文本" value="T"></el-option> |
|||
<el-option label="数字" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-table |
|||
:height="300" |
|||
:data="chooseTableData" |
|||
border |
|||
style="width: 100%"> |
|||
<el-table-column |
|||
prop="availableValue" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="200" |
|||
label="属性值"> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-footer style="height:40px;margin-top: 10px;text-align:center"> |
|||
<el-button type="primary" @click="chooseModalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
qcCheckOutModelSearch, |
|||
qcCheckOutModelSave, |
|||
qcCheckOutModelUpdate, |
|||
qcCheckOutModelDelete, |
|||
searchItemAvailable, |
|||
searchModalDetails, |
|||
saveModalDetails, |
|||
deleteModalDetails, |
|||
qcCheckOutItemSearch, // 搜索项目 |
|||
getItemLists // 获取项目列表 |
|||
} from "@/api/qc/qc.js" |
|||
import Chooselist from '@/views/modules/common/Chooselist_eam' |
|||
export default { |
|||
components: { |
|||
Chooselist |
|||
}, |
|||
watch: { |
|||
searchData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.searchData.codeNo = this.searchData.codeNo.toUpperCase() |
|||
} |
|||
}, |
|||
|
|||
itemData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.itemData.itemNo = this.itemData.itemNo.toUpperCase() |
|||
} |
|||
}, |
|||
modalData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.modalData.codeNo = this.modalData.codeNo.toUpperCase() |
|||
} |
|||
}, |
|||
detailData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.detailData.codeNo = this.detailData.codeNo.toUpperCase() |
|||
this.detailData.itemNo = this.detailData.itemNo.toUpperCase() |
|||
} |
|||
} |
|||
}, |
|||
data () { |
|||
return { |
|||
tagNo:'', |
|||
searchData: { |
|||
codeNo: '', |
|||
codeDesc: '', |
|||
active:'', |
|||
functionType:'D', |
|||
page: 1, |
|||
limit: 10, |
|||
}, |
|||
height: 200, |
|||
pageIndex: 1, |
|||
pageSize: 100, |
|||
totalPage: 0, |
|||
addDetailModalFlag:false, |
|||
modalFlag:false, |
|||
modalDisableFlag:false, |
|||
modalData:{ |
|||
flag:'', |
|||
codeNo:'', |
|||
codeDesc:'', |
|||
active:'', |
|||
functionType:'D', |
|||
userId:this.$store.state.user.name |
|||
}, |
|||
detailData:{ |
|||
codeNo:'', |
|||
codeDesc:'', |
|||
functionType:'D', |
|||
itemNo:'', |
|||
itemDesc:'', |
|||
itemType:'D', |
|||
userId:this.$store.state.user.name |
|||
}, |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003TableCodeNo', |
|||
tableId: "301003Table", |
|||
tableName: "检验模板表", |
|||
columnProp: 'codeNo', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验模板编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003TableCodeDesc', |
|||
tableId: "301003Table", |
|||
tableName: "检验模板表", |
|||
columnProp: 'codeDesc', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验模板名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003TableActive', |
|||
tableId: "301003Table", |
|||
tableName: "检验模板表", |
|||
columnProp: 'active', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '在用', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 40, |
|||
}, |
|||
], |
|||
detailModelFlag:false, |
|||
detailList: [], |
|||
chooseTableData:[], |
|||
dataListLoading: false, |
|||
dataListSelections: [], |
|||
|
|||
// modalDisableFlag:false, |
|||
chooseModalFlag:false, |
|||
itemFlag:'text', |
|||
itemData:{ |
|||
itemNo:'', |
|||
valueNo:'', |
|||
availableValue:'', |
|||
itemType:'D', |
|||
createdBy: this.$store.state.user.name |
|||
}, |
|||
dataList:[], |
|||
departmentList:[], |
|||
// 展示列集 |
|||
columnDetailList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003Table2EamPropertiesItemID', |
|||
tableId: "301003Table2", |
|||
tableName: "检验项目表", |
|||
columnProp: 'itemNo', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验项目编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 90, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003Table2EamPropertiesItemDesc', |
|||
tableId: "301003Table2", |
|||
tableName: "检验项目表", |
|||
columnProp: 'itemDesc', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验项目名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 90, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003Table2ValueType', |
|||
tableId: "301003Table2", |
|||
tableName: "检验项目表", |
|||
columnProp: 'valueType', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检测值类型', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 70, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003Table2DefaultValue', |
|||
tableId: "301003Table2", |
|||
tableName: "检验项目表", |
|||
columnProp: 'defaultValue', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '参照值', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 70, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003Table2MaxValue', |
|||
tableId: "301003Table2", |
|||
tableName: "检验项目表", |
|||
columnProp: 'maxValue', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '最大值', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 70, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003Table2MinValue', |
|||
tableId: "301003Table2", |
|||
tableName: "检验项目表", |
|||
columnProp: 'minValue', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '最小值', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 70, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003TableValueChooseFlag', |
|||
tableId: "301003Table2", |
|||
tableName: "common", |
|||
columnProp: 'valueChooseFlag', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '是否值可选', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 70, |
|||
}, |
|||
], |
|||
levelList:[], |
|||
chooseModalData:{ |
|||
itemNo: '', |
|||
itemDesc: '', |
|||
itemType:'D', |
|||
valueTypeDb:'', |
|||
}, |
|||
// 快速添加 |
|||
fastAddFlag:false, |
|||
itemList1:[], |
|||
itemList2:[], |
|||
itemListRow1:{}, |
|||
itemListRow2:{}, |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 210 |
|||
}) |
|||
}, |
|||
created () { |
|||
this.getDataList(); |
|||
}, |
|||
methods: { |
|||
// 获取基础数据列表S |
|||
getBaseList (val,type) { |
|||
this.tagNo = val |
|||
this.$nextTick(() => { |
|||
let strVal = '' |
|||
if (val === 1034) { |
|||
strVal = this.detailData.itemNo |
|||
} |
|||
this.$refs.baseList.init(val, strVal) |
|||
}) |
|||
}, |
|||
/* 列表方法的回调 */ |
|||
getBaseData (val) { |
|||
if (this.tagNo === 1034) { |
|||
this.detailData.itemNo = val.ItemNo |
|||
this.detailData.itemDesc = val.ItemDesc |
|||
} |
|||
}, |
|||
// 获取数据列表 |
|||
getDataList () { |
|||
this.searchData.limit = this.pageSize |
|||
this.searchData.page = this.pageIndex |
|||
qcCheckOutModelSearch(this.searchData).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.dataList = data.page.list |
|||
this.pageIndex = data.page.currPage |
|||
this.pageSize = data.page.pageSize |
|||
this.totalPage = data.page.totalCount |
|||
} |
|||
this.dataListLoading = false |
|||
}) |
|||
}, |
|||
// 每页数 |
|||
sizeChangeHandle (val) { |
|||
this.pageSize = val |
|||
this.pageIndex = 1 |
|||
this.getDataList() |
|||
}, |
|||
// 当前页 |
|||
currentChangeHandle (val) { |
|||
this.pageIndex = val |
|||
this.getDataList() |
|||
}, |
|||
addModal(){ |
|||
this.modalData={ |
|||
flag:'1', |
|||
codeNo:'', |
|||
codeDesc:'', |
|||
active:'Y', |
|||
functionType:'D', |
|||
userId:this.$store.state.user.name |
|||
}; |
|||
this.modalDisableFlag=false; |
|||
this.modalFlag=true; |
|||
}, |
|||
updateModal(row){ |
|||
this.modalData={ |
|||
flag:'2', |
|||
codeNo:row.codeNo, |
|||
codeDesc:row.codeDesc, |
|||
active:row.active, |
|||
functionType:'D', |
|||
userId:this.$store.state.user.name |
|||
}; |
|||
this.modalDisableFlag=true; |
|||
this.modalFlag=true; |
|||
}, |
|||
// 删除 |
|||
deletePropertiesModel (row) { |
|||
this.$confirm(`是否删除这个检验模板?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
qcCheckOutModelDelete(row).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
this.getDataList() |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
saveData(){ |
|||
if (this.modalData.codeNo == '' || this.modalData.codeNo == null) { |
|||
this.$alert('请输入检验模板编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.codeDesc == '' || this.modalData.codeDesc == null) { |
|||
this.$alert('请输入检验模板名称!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.active == '' || this.modalData.active == null) { |
|||
this.$alert('选择是否在用!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if(this.modalData.flag=='1'){ |
|||
qcCheckOutModelSave(this.modalData).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
this.getDataList() |
|||
this.modalFlag=false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}else { |
|||
qcCheckOutModelUpdate(this.modalData).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
this.getDataList() |
|||
this.modalFlag=false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
//打开检验项目清单 |
|||
detailModal(row){ |
|||
this.detailData.codeNo = row.codeNo |
|||
this.detailData.codeDesc = row.codeDesc |
|||
searchModalDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.detailModelFlag = true; |
|||
}, |
|||
|
|||
// 普通新增 |
|||
addDetailModal(){ |
|||
this.detailData.itemNo = ''; |
|||
this.detailData.itemDesc = ''; |
|||
this.addDetailModalFlag = true; |
|||
}, |
|||
|
|||
// 快速新增 |
|||
addFastModal(){ |
|||
this.itemListRow2 = null |
|||
this.itemListRow1 = null |
|||
getItemLists(this.detailData).then(({data}) => { |
|||
this.itemList1 = data.row1; |
|||
this.itemList2 = data.row2; |
|||
}) |
|||
this.fastAddFlag = true; |
|||
}, |
|||
|
|||
clickItem1(row){ |
|||
this.itemListRow1 = JSON.parse(JSON.stringify(row)); |
|||
}, |
|||
clickItem2(row){ |
|||
this.itemListRow2 = JSON.parse(JSON.stringify(row)); |
|||
}, |
|||
// 添加项目 |
|||
addItem(){ |
|||
if(this.itemListRow1==null){ |
|||
this.$alert("请选择可选项目!", '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false; |
|||
} |
|||
let inData={ |
|||
codeNo:this.detailData.codeNo, |
|||
codeDesc:this.detailData.codeDesc, |
|||
functionType:this.detailData.functionType, |
|||
itemNo: this.itemListRow1.itemNo, |
|||
itemDesc:this.itemListRow1.itemDesc, |
|||
itemType:this.detailData.itemType, |
|||
userId:this.$store.state.user.name |
|||
} |
|||
saveModalDetails(inData).then(({data}) => { |
|||
if (data && data.code == 0) { |
|||
getItemLists(this.detailData).then(({data}) => { |
|||
this.itemList1=data.row1; |
|||
this.itemList2=data.row2; |
|||
}) |
|||
this.itemListRow1=null |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
// 删除项目 |
|||
deleteItem(){ |
|||
if(this.itemListRow2 == null){ |
|||
this.$alert("请选择已选项目!", '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false; |
|||
} |
|||
let inData = { |
|||
codeNo:this.detailData.codeNo, |
|||
codeDesc:this.detailData.codeDesc, |
|||
functionType:this.detailData.functionType, |
|||
itemNo: this.itemListRow2.itemNo, |
|||
itemDesc:this.itemListRow2.itemDesc, |
|||
itemType:this.detailData.itemType, |
|||
userId:this.$store.state.user.name |
|||
} |
|||
deleteModalDetails(inData).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
getItemLists(this.detailData).then(({data}) => { |
|||
this.itemList1 = data.row1; |
|||
this.itemList2 = data.row2; |
|||
}) |
|||
this.itemListRow2 = null |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
// 关闭后刷新列表 |
|||
refreshDetailList(){ |
|||
searchModalDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
}, |
|||
|
|||
// 保存模板中的项目明细 |
|||
saveModalDetails(){ |
|||
if(this.detailData.itemNo == "" || this.detailData.itemNo == null){ |
|||
this.$alert('请选择检验项目编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
saveModalDetails(this.detailData).then(({data}) => { |
|||
if (data && data.code == 0) { |
|||
searchModalDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.addDetailModalFlag=false; |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
itemNoBlur(){ |
|||
let inData={ |
|||
itemType:'D', |
|||
itemNo:this.detailData.itemNo |
|||
} |
|||
qcCheckOutItemSearch(inData).then(({data}) => { |
|||
if(data.rows.length>0){ |
|||
this.detailData.itemDesc = data.rows[0].itemDesc |
|||
}else { |
|||
this.detailData.itemDesc='' |
|||
} |
|||
}) |
|||
}, |
|||
// 删除模板中的项目 |
|||
deleteModalDetails(row){ |
|||
console.log(row) |
|||
this.$confirm(`是否删除这个检验项目?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
deleteModalDetails(row).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
searchModalDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
|
|||
chooseModal(row){ |
|||
this.chooseModalData.itemNo=row.itemNo; |
|||
this.chooseModalData.itemDesc=row.itemDesc; |
|||
this.chooseModalData.valueTypeDb=row.valueTypeDb; |
|||
searchItemAvailable(this.chooseModalData).then(({data}) => { |
|||
this.chooseTableData = data.rows |
|||
}) |
|||
this.chooseModalFlag=true; |
|||
}, |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,621 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<!-- 条件查询 --> |
|||
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'工厂编码'"> |
|||
<el-input v-model="searchData.site" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'分类编码'"> |
|||
<el-input v-model="searchData.familyID" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'分类名称'"> |
|||
<el-input v-model="searchData.familyDesc" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'是否在用'"> |
|||
<el-select filterable v-model="searchData.active" style="width: 130px"> |
|||
<el-option label="全部" value=""></el-option> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="addModal()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 展示列表 --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
|
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="160" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="updateModal(scope.row)">修改</a> |
|||
<a type="text" size="small" @click="detailFamily(scope.row)">检验模板</a> |
|||
<a type="text" size="small" @click="deleteFamily(scope.row)">删除</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<el-pagination |
|||
@size-change="sizeChangeHandle" |
|||
@current-change="currentChangeHandle" |
|||
:current-page="pageIndex" |
|||
:page-sizes="[20, 50, 100, 1000]" |
|||
:page-size="pageSize" |
|||
:total="totalPage" |
|||
layout="total, sizes, prev, pager, next, jumper"> |
|||
</el-pagination> |
|||
|
|||
<!-- 新增/修改分类 --> |
|||
<el-dialog title="检验分类" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="分类编码:"> |
|||
<el-input v-model="modalData.familyID" :disabled="modalDisableFlag" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="分类名称:"> |
|||
<el-input v-model="modalData.familyDesc" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="是否在用:"> |
|||
<el-select filterable v-model="modalData.active" style="width: 120px"> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 10px;text-align:center"> |
|||
<el-button type="primary" @click="saveData()">保存</el-button> |
|||
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验模板 --> |
|||
<el-dialog title="检验模板清单" :close-on-click-modal="false" v-drag :visible.sync="detailFamilyFlag" width="830px"> |
|||
<el-form :inline="true" label-position="top" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'检验分类编码'"> |
|||
<el-input v-model="detailData.familyID" readonly style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检验分类名称'"> |
|||
<el-input v-model="detailData.familyDesc" readonly style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="addDetailFamily()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<!-- 检验模板展示列表 --> |
|||
<el-table |
|||
:height="300" |
|||
:data="detailList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnDetailList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="130" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="deleteFamilyDetails(scope.row)">删除模板</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="detailFamilyFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验模板->新增 --> |
|||
<el-dialog title="添加项目" :close-on-click-modal="false" v-drag :visible.sync="addDetailFamilyFlag" width="300px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item > |
|||
<span slot="label" style="" @click="getBaseList(1035)"><a herf="#">检验模板编码</a></span> |
|||
<el-input v-model="detailData.codeNo" @blur="modelNoBlur" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="检验模板名称:"> |
|||
<el-input v-model="detailData.codeDesc" disabled style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 10px;text-align:center"> |
|||
<el-button type="primary" @click="saveFamilyDetails()">保存</el-button> |
|||
<el-button type="primary" @click="addDetailFamilyFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
qcFamilySearch, |
|||
qcFamilySave, |
|||
qcFamilyUpdate, |
|||
qcFamilyDelete, |
|||
qcCheckOutModelSearch, // 查询模板集合 |
|||
saveFamilyDetails, // 新增类别中的模板明细 |
|||
searchFamilyDetails, // 查询类别中的模板详情 |
|||
deleteFamilyDetails // 删除分类中的模板 |
|||
} from "@/api/qc/qc.js" |
|||
import Chooselist from '@/views/modules/common/Chooselist_eam' |
|||
export default { |
|||
components: { |
|||
Chooselist |
|||
}, |
|||
watch: { |
|||
searchData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.searchData.familyID = this.searchData.familyID.toUpperCase() |
|||
} |
|||
}, |
|||
modalData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.modalData.familyID = this.modalData.familyID.toUpperCase() |
|||
} |
|||
} |
|||
}, |
|||
data () { |
|||
return { |
|||
tagNo:'', |
|||
searchData: { |
|||
site: this.$store.state.user.site, |
|||
familyID: '', |
|||
familyDesc: '', |
|||
active: 'Y', |
|||
familyType:'D', |
|||
page: 1, |
|||
limit: 10 |
|||
}, |
|||
detailData: { |
|||
familyID:'', |
|||
familyDesc:'', |
|||
familyType:'D', |
|||
codeNo:'', |
|||
codeDesc:'', |
|||
functionType:'D', |
|||
userId:this.$store.state.user.name |
|||
}, |
|||
height: 200, |
|||
pageIndex: 1, |
|||
pageSize: 100, |
|||
totalPage: 0, |
|||
dataList: [], |
|||
detailList: [], |
|||
dataListLoading: false, |
|||
dataListSelections: [], |
|||
modalFlag:false, |
|||
modalDisableFlag:false, |
|||
detailFamilyFlag:false, |
|||
addDetailFamilyFlag:false, |
|||
modalData:{ |
|||
flag:'', |
|||
site: this.$store.state.user.site, |
|||
familyID:'', |
|||
familyDesc:'', |
|||
active:'', |
|||
familyType:'D', |
|||
}, |
|||
departmentList:[], |
|||
// 展示列集 |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301004, |
|||
serialNumber: '301004TableSite', |
|||
tableId: "301004Table", |
|||
tableName: "common", |
|||
columnProp: 'site', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '工厂编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 80 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301004, |
|||
serialNumber: '301004TableFamilyID', |
|||
tableId: "301004Table", |
|||
tableName: "common", |
|||
columnProp: 'familyID', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '分类编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301004, |
|||
serialNumber: '301004TableFamilyDesc', |
|||
tableId: "301004Table", |
|||
tableName: "common", |
|||
columnProp: 'familyDesc', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '分类名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301004, |
|||
serialNumber: '301004TableActive', |
|||
tableId: "301004Table", |
|||
tableName: "common", |
|||
columnProp: 'active', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '是否在用', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 40 |
|||
} |
|||
], |
|||
columnDetailList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301004, |
|||
serialNumber: '301004Table2CodeNo', |
|||
tableId: "301004Table2", |
|||
tableName: "检验模板表", |
|||
columnProp: 'codeNo', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验模板编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 90, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301004, |
|||
serialNumber: '301004Table2CodeDesc', |
|||
tableId: "301004Table2", |
|||
tableName: "检验模板表", |
|||
columnProp: 'codeDesc', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验模板名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 90, |
|||
} |
|||
], |
|||
levelList:[] |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 210 |
|||
}) |
|||
}, |
|||
created () { |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
|
|||
// 获取基础数据列表 |
|||
getBaseList (val,type) { |
|||
this.tagNo = val |
|||
this.$nextTick(() => { |
|||
let strVal = '' |
|||
if (val === 1035) { |
|||
strVal = this.detailData.codeNo |
|||
} |
|||
this.$refs.baseList.init(val, strVal) |
|||
}) |
|||
}, |
|||
/* 列表方法的回调 */ |
|||
getBaseData (val) { |
|||
if (this.tagNo === 1035) { |
|||
this.detailData.codeNo = val.code_no |
|||
this.detailData.codeDesc = val.code_desc |
|||
} |
|||
}, |
|||
|
|||
// 点击查询模板集合 |
|||
modelNoBlur(){ |
|||
let inData={ |
|||
functionType:'D', |
|||
codeNo:this.detailData.codeNo |
|||
} |
|||
qcCheckOutModelSearch(inData).then(({data}) => { |
|||
if(data.rows.length>0){ |
|||
this.detailData.codeDesc = data.rows[0].codeDesc |
|||
}else { |
|||
this.detailData.codeDesc='' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 保存分类中的模板明细 |
|||
saveFamilyDetails(){ |
|||
if(this.detailData.codeNo == "" || this.detailData.codeNo == null){ |
|||
this.$alert('请选择检验模板编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
saveFamilyDetails(this.detailData).then(({data}) => { |
|||
if (data && data.code == 0) { |
|||
searchFamilyDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.addDetailFamilyFlag = false; |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 删除分类中的模板 |
|||
deleteFamilyDetails(row){ |
|||
console.log(row) |
|||
this.$confirm(`是否删除这个检验模板?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
deleteFamilyDetails(row).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
searchFamilyDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
|
|||
// 获取数据列表 |
|||
getDataList () { |
|||
this.searchData.limit = this.pageSize |
|||
this.searchData.page = this.pageIndex |
|||
qcFamilySearch(this.searchData).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.dataList = data.page.list |
|||
this.pageIndex = data.page.currPage |
|||
this.pageSize = data.page.pageSize |
|||
this.totalPage = data.page.totalCount |
|||
} |
|||
this.dataListLoading = false |
|||
}) |
|||
}, |
|||
// 每页数 |
|||
sizeChangeHandle (val) { |
|||
this.pageSize = val |
|||
this.pageIndex = 1 |
|||
this.getDataList() |
|||
}, |
|||
// 当前页 |
|||
currentChangeHandle (val) { |
|||
this.pageIndex = val |
|||
this.getDataList() |
|||
}, |
|||
// 多选 |
|||
selectionChangeHandle (val) { |
|||
this.dataListSelections = val |
|||
}, |
|||
|
|||
//打开检验模板清单 |
|||
detailFamily(row){ |
|||
this.detailData.familyID = row.familyID |
|||
this.detailData.familyDesc = row.familyDesc |
|||
searchFamilyDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.detailFamilyFlag = true; |
|||
}, |
|||
|
|||
addDetailFamily(){ |
|||
console.log(this.detailData) |
|||
this.detailData.codeNo = ''; |
|||
this.detailData.codeDesc = ''; |
|||
this.addDetailFamilyFlag = true; |
|||
}, |
|||
|
|||
// 新增检验分类 |
|||
addModal(){ |
|||
this.modalData={ |
|||
flag:'1', |
|||
site: this.$store.state.user.site, |
|||
familyID:'', |
|||
familyDesc:'', |
|||
active:'', |
|||
familyType:'D' |
|||
}; |
|||
this.modalDisableFlag = false; |
|||
this.modalFlag = true; |
|||
}, |
|||
|
|||
// 修改检验分类 |
|||
updateModal(row){ |
|||
this.modalData = { |
|||
flag:'2', |
|||
site: row.site, |
|||
familyID:row.familyID, |
|||
familyDesc:row.familyDesc, |
|||
active:row.active, |
|||
familyType:'D' |
|||
}; |
|||
this.modalDisableFlag = true; |
|||
this.modalFlag = true; |
|||
}, |
|||
|
|||
// 删除检验分类 |
|||
deleteFamily (row) { |
|||
this.$confirm(`是否删除这个分类?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
qcFamilyDelete(row).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
|
|||
// 执行新增/修改方法 |
|||
saveData(){ |
|||
if (this.modalData.familyID == '' || this.modalData.familyID == null) { |
|||
this.$alert('请输入分类编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.familyDesc == '' || this.modalData.familyDesc == null) { |
|||
this.$alert('请输入分类名称!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.active == '' || this.modalData.active == null) { |
|||
this.$alert('选择是否在用!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if(this.modalData.flag == '1'){ |
|||
qcFamilySave(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}else { |
|||
qcFamilyUpdate(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,271 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<!-- 条件查询 --> |
|||
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'主记录信息编码'"> |
|||
<el-input v-model="searchData.informationNo" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'主记录信息名称'"> |
|||
<el-input v-model="searchData.informationName" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="addModal()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 展示列表 --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="160" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="updateModal(scope.row)">修改</a> |
|||
<a type="text" size="small" @click="deleteModal(scope.row)">删除</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<!-- 新增和修改 --> |
|||
<el-dialog title="主记录信息" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="主记录信息编码:"> |
|||
<el-input v-model="modalData.informationNo" :disabled="modalDisableFlag" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="主记录信息名称:"> |
|||
<el-input v-model="modalData.informationName" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="saveData()">保存</el-button> |
|||
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
qcInformationSearch, // 搜索信息 |
|||
qcInformationSave, // 新增信息 |
|||
qcInformationUpdate, // 修改信息 |
|||
qcInformationDelete, // 删除信息 |
|||
} from "@/api/qc/qc.js" |
|||
export default { |
|||
watch: { |
|||
searchData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.searchData.methodNo = this.searchData.methodNo.toUpperCase() |
|||
} |
|||
}, |
|||
modalData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.modalData.methodNo = this.modalData.methodNo.toUpperCase() |
|||
} |
|||
} |
|||
}, |
|||
data () { |
|||
return { |
|||
searchData: { |
|||
informationNo: '', |
|||
informationName: '', |
|||
informationType: 'E' |
|||
}, |
|||
height: 200, |
|||
dataList: [], |
|||
dataListLoading: false, |
|||
modalFlag: false, |
|||
modalDisableFlag: false, |
|||
modalData: { |
|||
flag: '', |
|||
informationNo: '', |
|||
informationName: '', |
|||
createdBy: this.$store.state.user.name, |
|||
informationType: 'E' |
|||
}, |
|||
// 标头展示 |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemID', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'informationNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '主记录信息编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemDesc', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'informationName', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '主记录信息名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 180 |
|||
}) |
|||
}, |
|||
created () { |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
// 查询获取数据列表 |
|||
getDataList () { |
|||
qcInformationSearch(this.searchData).then(({data}) => { |
|||
this.dataList = data.rows |
|||
}) |
|||
}, |
|||
// 新增按钮 |
|||
addModal () { |
|||
this.modalData = { |
|||
flag: '1', |
|||
informationNo: '', |
|||
informationName: '', |
|||
createdBy: this.$store.state.user.name, |
|||
informationType: 'E' |
|||
} |
|||
this.modalDisableFlag = false |
|||
this.modalFlag = true |
|||
}, |
|||
// 修改按钮 |
|||
updateModal (row) { |
|||
this.modalData = { |
|||
flag: '2', |
|||
informationNo: row.informationNo, |
|||
informationName: row.informationName, |
|||
createdBy: this.$store.state.user.name, |
|||
informationType: 'E' |
|||
} |
|||
this.modalDisableFlag = true |
|||
this.modalFlag = true |
|||
}, |
|||
// 删除方法 |
|||
deleteModal (row) { |
|||
this.$confirm(`是否删除这个点检方法?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
qcInformationDelete(row).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
// 新增/修改方法 |
|||
saveData () { |
|||
if (this.modalData.informationNo == '' || this.modalData.informationNo == null) { |
|||
this.$alert('请输入检验方法编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.informationName == '' || this.modalData.informationName == null) { |
|||
this.$alert('请输入检验方法名称!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.flag == '1') { // 新增 |
|||
qcInformationSave(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} else { // 修改 |
|||
qcInformationUpdate(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,371 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<!-- 条件查询 --> |
|||
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'质检员工号'"> |
|||
<el-input v-model="searchData.inspectorNo" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'质检员姓名'"> |
|||
<el-input v-model="searchData.inspectorName" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'所处检验工序'"> |
|||
<el-input v-model="searchData.inspectorType" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'是否在岗'"> |
|||
<el-select filterable v-model="searchData.inspectorActive" style="width: 120px"> |
|||
<el-option label="请选择" value=""></el-option> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="addModal()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 展示列表 --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="160" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="updateModal(scope.row)">修改</a> |
|||
<a type="text" size="small" @click="deleteModal(scope.row)">删除</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<!-- 新增和修改 --> |
|||
<el-dialog title="质检员信息" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="质检员工号:"> |
|||
<el-input v-model="modalData.inspectorNo" :disabled="modalDisableFlag" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="质检员姓名:"> |
|||
<el-input v-model="modalData.inspectorName" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="质检员电话:"> |
|||
<el-input v-model="modalData.inspectorPhone" type="number" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'所处检验工序'"> |
|||
<el-input v-model="modalData.inspectorType" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'是否在岗'"> |
|||
<el-select filterable v-model="modalData.inspectorActive" style="width: 120px"> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="saveData()">保存</el-button> |
|||
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
inspectorSearch, // 搜索质检员信息 |
|||
inspectorSave, // 新增质检员信息 |
|||
inspectorUpdate, // 修改质检员信息 |
|||
inspectorDelete, // 删除质检员信息 |
|||
} from "@/api/qc/qc.js" |
|||
export default { |
|||
watch: { |
|||
searchData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.searchData.inspectorNo = this.searchData.inspectorNo.toUpperCase() |
|||
} |
|||
}, |
|||
modalData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.modalData.inspectorNo = this.modalData.inspectorNo.toUpperCase() |
|||
this.modalData.inspectorType = this.modalData.inspectorType.toUpperCase() |
|||
} |
|||
} |
|||
}, |
|||
data () { |
|||
return { |
|||
searchData: { |
|||
inspectorNo: '', |
|||
inspectorName: '', |
|||
inspectorPhone: '', |
|||
inspectorType: '', |
|||
inspectorActive: '' |
|||
}, |
|||
height: 200, |
|||
dataList: [], |
|||
dataListLoading: false, |
|||
modalFlag: false, |
|||
modalDisableFlag: false, |
|||
modalData: { |
|||
flag: '', |
|||
inspectorNo: '', |
|||
inspectorName: '', |
|||
inspectorPhone: '', |
|||
inspectorType: '', |
|||
inspectorActive: '' |
|||
}, |
|||
// 标头展示 |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemID', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'inspectorNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '质检员工号', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemDesc', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'inspectorName', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '质检员姓名', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemDesc', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'inspectorPhone', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '质检员电话', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemDesc', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'inspectorType', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '所处检验工序', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemDesc', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'inspectorActive', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '是否在岗', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 180 |
|||
}) |
|||
}, |
|||
created () { |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
// 查询获取数据列表 |
|||
getDataList () { |
|||
inspectorSearch(this.searchData).then(({data}) => { |
|||
this.dataList = data.rows |
|||
}) |
|||
}, |
|||
// 新增按钮 |
|||
addModal () { |
|||
this.modalData = { |
|||
flag: '1', |
|||
inspectorNo: '', |
|||
inspectorName: '', |
|||
inspectorPhone: '', |
|||
inspectorType: '', |
|||
inspectorActive: '' |
|||
} |
|||
this.modalDisableFlag = false |
|||
this.modalFlag = true |
|||
}, |
|||
// 修改按钮 |
|||
updateModal (row) { |
|||
this.modalData = { |
|||
flag: '2', |
|||
inspectorNo: row.inspectorNo, |
|||
inspectorName: row.inspectorName, |
|||
inspectorPhone: row.inspectorPhone, |
|||
inspectorType: row.inspectorType, |
|||
inspectorActive: row.inspectorActive |
|||
} |
|||
this.modalDisableFlag = true |
|||
this.modalFlag = true |
|||
}, |
|||
// 删除方法 |
|||
deleteModal (row) { |
|||
this.$confirm(`是否删除这个质检员信息?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
inspectorDelete(row).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
// 新增/修改方法 |
|||
saveData () { |
|||
if (this.modalData.inspectorNo == '' || this.modalData.inspectorNo == null) { |
|||
this.$alert('请输入质检员工号!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.inspectorName == '' || this.modalData.inspectorName == null) { |
|||
this.$alert('请输入质检员姓名!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.inspectorPhone == '' || this.modalData.inspectorPhone == null) { |
|||
this.$alert('请输入质检员电话!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.inspectorType == '' || this.modalData.inspectorType == null) { |
|||
this.$alert('请输入质检员职责!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.inspectorActive == '' || this.modalData.inspectorActive == null) { |
|||
this.$alert('请选择质检员是否在岗!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.flag == '1') { // 新增 |
|||
inspectorSave(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} else { // 修改 |
|||
inspectorUpdate(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,884 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
|
|||
<!-- 条件查询 --> |
|||
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'检验项目编码'"> |
|||
<el-input v-model="searchData.itemNo" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检验项目名称'"> |
|||
<el-input v-model="searchData.itemDesc" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="addModal()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 展示列表 --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="160" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="updateModal(scope.row)">修改</a> |
|||
<!-- <a type="text" size="small" @click="detailModal(scope.row)">检验方法</a>--> |
|||
<a type="text" size="small" @click="deleteEamPropertiesItem(scope.row)">删除</a> |
|||
<a type="text" size="small" v-if="scope.row.valueChooseFlag=='Y'" @click="chooseModal(scope.row)">可选值</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<!-- 新增和修改 --> |
|||
<el-dialog title="检验项目" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px"> |
|||
|
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="检验项目编码:"> |
|||
<el-input v-model="modalData.itemNo" :disabled="modalDisableFlag" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="检验项目名称:"> |
|||
<el-input v-model="modalData.itemDesc" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检验值类型'"> |
|||
<el-select filterable v-model="modalData.valueTypeDb" style="width: 120px"> |
|||
<el-option label="文本" value="T"></el-option> |
|||
<el-option label="数字" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item > |
|||
<span slot="label" style="" @click="getBaseList(1036)"><a herf="#">检验方法编码</a></span> |
|||
<el-input v-model="modalData.methodNo" @blur="itemNoBlur" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="检验方法名称:"> |
|||
<el-input v-model="modalData.methodName" disabled style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'是否值可选'"> |
|||
<el-select filterable v-model="modalData.valueChooseFlag" style="width: 120px"> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="参照值:"> |
|||
<el-input v-model="modalData.defaultValue" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="最大值:"> |
|||
<el-input v-model="modalData.maxValue" type="number" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="最小值:"> |
|||
<el-input v-model="modalData.minValue" type="number" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="saveData()">保存</el-button> |
|||
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 操作->可选值 --> |
|||
<el-dialog title="可选值" :close-on-click-modal="false" v-drag :visible.sync="chooseModalFlag" width="430px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="检验项目名称:"> |
|||
<el-input v-model="chooseModalData.itemDesc" disabled style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检验值类型'"> |
|||
<el-select filterable v-model="chooseModalData.valueTypeDb" disabled style="width: 120px"> |
|||
<el-option label="文本" value="T"></el-option> |
|||
<el-option label="数字" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="addChooseModal()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-table |
|||
:height="300" |
|||
:data="chooseTableData" |
|||
border |
|||
style="width: 100%"> |
|||
<el-table-column |
|||
prop="availableValue" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="200" |
|||
label="属性值"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="" |
|||
header-align="center" |
|||
align="center" |
|||
min-width="100" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="updateChooseModal(scope.row)">修改</a> |
|||
<a type="text" size="small" @click="deleteItemAvailable(scope.row)">删除</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验方法 --> |
|||
<el-dialog title="检验方法清单" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="830px"> |
|||
<el-form :inline="true" label-position="top" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'检验项目编码'"> |
|||
<el-input v-model="detailData.itemNo" readonly style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'检验项目名称'"> |
|||
<el-input v-model="detailData.itemDesc" readonly style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="addItemMethods()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<!-- 检验方法展示列表 --> |
|||
<el-table |
|||
:height="300" |
|||
:data="detailList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnDetailList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="130" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="deleteItemDetails(scope.row)">删除方法</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="detailModelFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验方法->新增 --> |
|||
<el-dialog title="添加方法" :close-on-click-modal="false" v-drag :visible.sync="addItemMethodFlag" width="300px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item > |
|||
<span slot="label" style="" @click="getBaseList(1036)"><a herf="#">检验方法编码</a></span> |
|||
<el-input v-model="detailData.methodNo" @blur="itemNoBlur" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="检验方法名称:"> |
|||
<el-input v-model="detailData.methodName" disabled style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 10px;text-align:center"> |
|||
<el-button type="primary" @click="saveItemDetails()">保存</el-button> |
|||
<el-button type="primary" @click="addItemMethodFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 可选值->新增/修改可选值 --> |
|||
<el-dialog title="可选值维护" :close-on-click-modal="false" v-drag :visible.sync="itemModalFlag" width="215px" > |
|||
<el-form :inline="true" label-position="top" style="margin-left: 22px;margin-top: -5px;" @submit.native.prevent> |
|||
<el-form-item :label="'可选值:'"> |
|||
<el-input v-model="itemData.availableValue" :type="itemFlag" style="width: 130px;"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="saveItemAvailable()">保存</el-button> |
|||
<el-button type="primary" @click="itemModalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
qcCheckOutItemSearch, // 查询项目 |
|||
qcCheckOutItemSave, // 新增项目 |
|||
qcCheckOutItemUpdate, // 修改项目 |
|||
qcCheckOutItemDelete, // 删除项目 |
|||
searchItemAvailable, // 搜索项目的可选值 |
|||
saveItemAvailable, // 新增项目的可选值 |
|||
deleteItemAvailable, // 删除项目的可选值 |
|||
searchItemDetails, // 检查项目里的方法详情 |
|||
deleteItemDetails, // 删除项目里的方法详情 |
|||
qcCheckOutMethodSearch, // 查询方法 |
|||
saveItemDetails // 新增项目中的方法明细 |
|||
} from "@/api/qc/qc.js" |
|||
import Chooselist from '@/views/modules/common/Chooselist_eam' |
|||
export default { |
|||
components: { |
|||
Chooselist |
|||
}, |
|||
watch: { |
|||
searchData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.searchData.itemNo = this.searchData.itemNo.toUpperCase() |
|||
} |
|||
}, |
|||
|
|||
itemData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.itemData.itemNo = this.itemData.itemNo.toUpperCase() |
|||
} |
|||
}, |
|||
modalData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.modalData.itemNo = this.modalData.itemNo.toUpperCase() |
|||
} |
|||
}, |
|||
chooseModalData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.chooseModalData.itemNo = this.chooseModalData.itemNo.toUpperCase() |
|||
} |
|||
} |
|||
}, |
|||
data () { |
|||
return { |
|||
searchData: { |
|||
itemNo: '', |
|||
itemDesc: '', |
|||
itemType: 'D' |
|||
}, |
|||
height: 200, |
|||
dataList: [], |
|||
chooseTableData: [], |
|||
dataListLoading: false, |
|||
dataListSelections: [], |
|||
modalFlag: false, |
|||
modalDisableFlag: false, |
|||
chooseModalFlag: false, |
|||
itemModalFlag: false, |
|||
detailModelFlag:false, |
|||
addItemMethodFlag:false, |
|||
itemFlag: 'text', |
|||
itemData: { |
|||
itemNo: '', |
|||
valueNo: '', |
|||
availableValue: '', |
|||
itemType: 'D', |
|||
createdBy: this.$store.state.user.name |
|||
}, |
|||
modalData: { |
|||
flag: '', |
|||
itemNo: '', |
|||
itemDesc: '', |
|||
valueTypeDb: '', |
|||
defaultValue: '', |
|||
valueChooseFlag: '', |
|||
createdBy: this.$store.state.user.name, |
|||
maxValue: '', |
|||
minValue: '', |
|||
itemRemark: '', |
|||
itemType: 'D', |
|||
methodNo:'', |
|||
methodName:'' |
|||
}, |
|||
detailData:{ |
|||
itemNo:'', |
|||
itemDesc:'', |
|||
itemType:'D', |
|||
methodNo:'', |
|||
methodName:'', |
|||
methodType:'D', |
|||
createdBy:this.$store.state.user.name |
|||
}, |
|||
departmentList: [], |
|||
// 检验项目展示标头 |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemID', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'itemNo', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '检验项目编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemDesc', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'itemDesc', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '检验项目名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableEamPropertiesItemRemark', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'itemRemark', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '检验方法说明', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableValueType', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'valueType', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '检验值类型', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableDefaultValue', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'defaultValue', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '参照值', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableMaxValue', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'maxValue', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '最大值', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableMinValue', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'minValue', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '最小值', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 101008, |
|||
serialNumber: '101008TableValueChooseFlag', |
|||
tableId: '101008Table', |
|||
tableName: 'common', |
|||
columnProp: 'valueChooseFlag', |
|||
headerAlign: 'center', |
|||
align: 'left', |
|||
columnLabel: '是否值可选', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 100 |
|||
} |
|||
], |
|||
// 检验方法展示标头 |
|||
columnDetailList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301002, |
|||
serialNumber: '301002Table2EamPropertiesItemID', |
|||
tableId: "301002Table2", |
|||
tableName: "检验方法表", |
|||
columnProp: 'methodNo', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验方法编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 90, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301002, |
|||
serialNumber: '301002Table2EamPropertiesItemDesc', |
|||
tableId: "301002Table2", |
|||
tableName: "检验方法表", |
|||
columnProp: 'methodName', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验方法名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 90, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301002, |
|||
serialNumber: '301002Table2EamPropertiesItemRemark', |
|||
tableId: "301002Table2", |
|||
tableName: "检验方法表", |
|||
columnProp: 'methodRemark', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '检验方法说明', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120, |
|||
} |
|||
], |
|||
detailList: [], |
|||
levelList: [], |
|||
chooseModalData: { |
|||
itemNo: '', |
|||
itemDesc: '', |
|||
itemType: 'D', |
|||
valueTypeDb: '' |
|||
} |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 180 |
|||
}) |
|||
}, |
|||
created () { |
|||
this.getDataList() |
|||
}, |
|||
methods: { |
|||
// 获取数据列表 |
|||
getDataList () { |
|||
qcCheckOutItemSearch(this.searchData).then(({data}) => { |
|||
this.dataList = data.rows |
|||
}) |
|||
}, |
|||
|
|||
// 获取方法数据列表 |
|||
getBaseList (val,type) { |
|||
this.tagNo = val |
|||
this.$nextTick(() => { |
|||
let strVal = '' |
|||
if (val === 1036) { |
|||
strVal = this.detailData.methodNo |
|||
} |
|||
this.$refs.baseList.init(val, strVal) |
|||
}) |
|||
}, |
|||
/* 列表方法的回调 */ |
|||
getBaseData (val) { |
|||
if (this.tagNo === 1036) { |
|||
this.detailData.methodNo = val.method_no |
|||
this.detailData.methodName = val.method_name |
|||
this.modalData.methodNo = val.method_no |
|||
this.modalData.methodName = val.method_name |
|||
} |
|||
}, |
|||
|
|||
// 点击查询并显示方法列表 |
|||
itemNoBlur(){ |
|||
let inData = { |
|||
methodType:'D', |
|||
methodNo:this.detailData.methodNo |
|||
} |
|||
qcCheckOutMethodSearch(inData).then(({data}) => { |
|||
if(data.rows.length > 0){ |
|||
this.detailData.methodName = data.rows[0].methodName |
|||
}else { |
|||
this.detailData.methodName = '' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 保存项目中的方法明细 |
|||
saveItemDetails(){ |
|||
if(this.detailData.methodNo == "" || this.detailData.methodNo == null){ |
|||
this.$alert('请选择检验项目编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
saveItemDetails(this.detailData).then(({data}) => { |
|||
if (data && data.code == 0) { |
|||
searchItemDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.addItemMethodFlag = false; |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 新增项目中的方法 |
|||
addItemMethods(){ |
|||
this.detailData.methodNo=''; |
|||
this.detailData.methodName=''; |
|||
this.addItemMethodFlag = true; |
|||
}, |
|||
|
|||
//打开方法清单 |
|||
detailModal(row){ |
|||
this.detailData.itemNo = row.itemNo |
|||
this.detailData.itemDesc = row.itemDesc |
|||
searchItemDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.detailModelFlag=true; |
|||
}, |
|||
|
|||
// 删除项目中的方法 |
|||
deleteItemDetails(row){ |
|||
this.$confirm(`是否删除这个检验方法?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
deleteItemDetails(row).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
searchItemDetails(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
addModal () { |
|||
this.modalData = { |
|||
flag: '1', |
|||
itemNo: '', |
|||
itemDesc: '', |
|||
valueTypeDb: 'T', |
|||
defaultValue: '', |
|||
valueChooseFlag: 'N', |
|||
createdBy: this.$store.state.user.name, |
|||
maxValue: '', |
|||
minValue: '', |
|||
itemRemark: '', |
|||
itemType: 'D' |
|||
} |
|||
this.modalDisableFlag = false |
|||
this.modalFlag = true |
|||
}, |
|||
chooseModal (row) { |
|||
this.chooseModalData.itemNo = row.itemNo |
|||
this.chooseModalData.itemDesc = row.itemDesc |
|||
this.chooseModalData.valueTypeDb = row.valueTypeDb |
|||
searchItemAvailable(this.chooseModalData).then(({data}) => { |
|||
this.chooseTableData = data.rows |
|||
}) |
|||
this.chooseModalFlag = true |
|||
}, |
|||
updateModal (row) { |
|||
console.log(row) |
|||
this.modalData = { |
|||
flag: '2', |
|||
itemNo: row.itemNo, |
|||
itemDesc: row.itemDesc, |
|||
valueTypeDb: row.valueTypeDb, |
|||
defaultValue: row.defaultValue, |
|||
valueChooseFlag: row.valueChooseFlag, |
|||
createdBy: this.$store.state.user.name, |
|||
maxValue: row.maxValue, |
|||
minValue: row.minValue, |
|||
itemRemark: row.itemRemark, |
|||
itemType: 'D', |
|||
methodNo: row.methodNo, |
|||
methodName: row.methodName |
|||
} |
|||
this.modalDisableFlag = true |
|||
this.modalFlag = true |
|||
}, |
|||
// 删除 |
|||
deleteEamPropertiesItem (row) { |
|||
this.$confirm(`是否删除这个点检项目?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
qcCheckOutItemDelete(row).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
saveData () { |
|||
if (this.modalData.itemNo == '' || this.modalData.itemNo == null) { |
|||
this.$alert('请输入检验项目编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.itemDesc == '' || this.modalData.itemDesc == null) { |
|||
this.$alert('请输入检验项目名称!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.methodNo == '' || this.modalData.methodNo == null) { |
|||
this.$alert('请输入检验方法编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.methodName == '' || this.modalData.methodName == null) { |
|||
this.$alert('请输入检验方法名称!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.flag == '1') { |
|||
qcCheckOutItemSave(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} else { |
|||
qcCheckOutItemUpdate(this.modalData).then(({data}) => { |
|||
if (data && data.code === '0') { |
|||
this.getDataList() |
|||
this.modalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
addChooseModal () { |
|||
this.itemFlag = this.chooseModalData.valueTypeDb == 'T' ? 'text' : 'number' |
|||
this.itemData = { |
|||
itemNo: this.chooseModalData.itemNo, |
|||
valueNo: 0, |
|||
availableValue: '', |
|||
itemType: 'D', |
|||
createdBy: this.$store.state.user.name |
|||
} |
|||
this.itemModalFlag = true |
|||
}, |
|||
updateChooseModal (row) { |
|||
this.itemFlag = this.chooseModalData.valueTypeDb == 'T' ? 'text' : 'number' |
|||
this.itemData = { |
|||
itemNo: this.chooseModalData.itemNo, |
|||
valueNo: row.valueNo, |
|||
availableValue: row.availableValue, |
|||
itemType: 'D', |
|||
createdBy: row.createdBy |
|||
} |
|||
this.itemModalFlag = true |
|||
}, |
|||
saveItemAvailable () { |
|||
if (this.itemData.availableValue == '' || this.itemData.availableValue == null) { |
|||
this.$alert('请输入可选值!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
saveItemAvailable(this.itemData).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
searchItemAvailable(this.chooseModalData).then(({data}) => { |
|||
this.chooseTableData = data.rows |
|||
}) |
|||
this.itemModalFlag = false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
deleteItemAvailable (row) { |
|||
this.$confirm(`是否删除这个可选值?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
deleteItemAvailable(row).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
searchItemAvailable(this.chooseModalData).then(({data}) => { |
|||
this.chooseTableData = data.rows |
|||
}) |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,784 @@ |
|||
<template> |
|||
<div class="mod-config"> |
|||
<!-- 条件查询 --> |
|||
<el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'主记录栏模板编码'"> |
|||
<el-input v-model="searchData.codeNo" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'主记录栏模板名称'"> |
|||
<el-input v-model="searchData.codeDesc" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'在用'"> |
|||
<el-select filterable v-model="searchData.active" style="width: 130px"> |
|||
<el-option label="全部" value=""></el-option> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button @click="getDataList()">查询</el-button> |
|||
<el-button type="primary" @click="addModal()">新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- 展示列表 --> |
|||
<el-table |
|||
:height="height" |
|||
:data="dataList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="160" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="updateModal(scope.row)">修改</a> |
|||
<a type="text" size="small" @click="detailModal(scope.row)">检验项目</a> |
|||
<a type="text" size="small" @click="deleteMasterInformationModel(scope.row)">删除</a> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
|
|||
<!-- 分页栏 --> |
|||
<el-pagination |
|||
@size-change="sizeChangeHandle" |
|||
@current-change="currentChangeHandle" |
|||
:current-page="pageIndex" |
|||
:page-sizes="[20, 50, 100, 1000]" |
|||
:page-size="pageSize" |
|||
:total="totalPage" |
|||
layout="total, sizes, prev, pager, next, jumper"> |
|||
</el-pagination> |
|||
|
|||
<!-- 检验模板新增/修改 --> |
|||
<el-dialog title="检验模板" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="430px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item label="主记录模板编码:"> |
|||
<el-input v-model="modalData.codeNo" :disabled="modalDisableFlag" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="主记录模板名称:"> |
|||
<el-input v-model="modalData.codeDesc" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="是否在用:"> |
|||
<el-select filterable v-model="modalData.active" style="width: 120px"> |
|||
<el-option label="是" value="Y"></el-option> |
|||
<el-option label="否" value="N"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 10px;text-align:center"> |
|||
<el-button type="primary" @click="saveData()">保存</el-button> |
|||
<el-button type="primary" @click="modalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验项目 --> |
|||
<el-dialog title="检验项目清单" :close-on-click-modal="false" v-drag :visible.sync="detailModelFlag" width="830px"> |
|||
<el-form :inline="true" label-position="top" @keyup.enter.native="getDataList()"> |
|||
<el-form-item :label="'主记录模板编码'"> |
|||
<el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="'主记录模板名称'"> |
|||
<el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item :label="' '"> |
|||
<el-button type="primary" @click="addDetailModal()">新增</el-button> |
|||
<el-button type="primary" @click="addFastModal()">快速新增</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<!-- 检验项目展示列表 --> |
|||
<el-table |
|||
:height="300" |
|||
:data="detailList" |
|||
border |
|||
v-loading="dataListLoading" |
|||
style="width: 100%;"> |
|||
<el-table-column |
|||
v-for="(item,index) in columnDetailList" :key="index" |
|||
:sortable="item.columnSortable" |
|||
:prop="item.columnProp" |
|||
:header-align="item.headerAlign" |
|||
:show-overflow-tooltip="item.showOverflowTooltip" |
|||
:align="item.align" |
|||
:fixed="item.fixed==''?false:item.fixed" |
|||
:min-width="item.columnWidth" |
|||
:label="item.columnLabel"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span> |
|||
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|||
</template> |
|||
</el-table-column> |
|||
|
|||
<el-table-column |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="130" |
|||
label="操作"> |
|||
<template slot-scope="scope"> |
|||
<a type="text" size="small" @click="deleteMasterInformation(scope.row)">删除信息</a> |
|||
</template> |
|||
</el-table-column> |
|||
|
|||
</el-table> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="detailModelFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 主记录信息->新增 --> |
|||
<el-dialog title="添加项目" :close-on-click-modal="false" v-drag :visible.sync="addDetailModalFlag" width="300px"> |
|||
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> |
|||
<el-form-item > |
|||
<span slot="label" style="" @click="getBaseList(1041)"><a herf="#">主记录信息编码</a></span> |
|||
<el-input v-model="detailData.informationNo" @blur="itemNoBlur" style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="主记录信息名称:"> |
|||
<el-input v-model="detailData.informationName" disabled style="width: 120px"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-footer style="height:40px;margin-top: 10px;text-align:center"> |
|||
<el-button type="primary" @click="saveMasterInformation()">保存</el-button> |
|||
<el-button type="primary" @click="addDetailModalFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<!-- 检验项目->快速新增 --> |
|||
<el-dialog title="快速添加" @close="refreshDetailList" :close-on-click-modal="false" v-drag :visible.sync="fastAddFlag" width="800px"> |
|||
<div style="font-size: 12px"> |
|||
主记录模板编码:<el-input v-model="detailData.codeNo" readonly style="width: 120px"></el-input> |
|||
主记录模板名称:<el-input v-model="detailData.codeDesc" readonly style="width: 120px"></el-input> |
|||
</div> |
|||
<el-container style="margin-top: -12px;"> |
|||
<el-main style="width: 300px"> |
|||
<span style="font-size: 12px" >可选信息:</span> |
|||
<el-table |
|||
height="300px" |
|||
:data="itemList1" |
|||
border |
|||
@row-click="clickItem1" |
|||
highlight-current-row |
|||
v-loading="dataListLoading" |
|||
style="width: 100%"> |
|||
<el-table-column |
|||
prop="informationNo" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="110" |
|||
label="信息编码"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="informationName" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="170" |
|||
label="信息名称"> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-main> |
|||
<el-main style="width: 100px"> |
|||
<div style="margin-top: 100px"> |
|||
<el-button type="primary" @click="addItem()">添加>></el-button> |
|||
</div> |
|||
<div style="margin-top: 20px"> |
|||
<el-button type="primary" @click="deleteItem()">删除<<</el-button> |
|||
</div> |
|||
</el-main> |
|||
<el-main style="width: 300px"> |
|||
<span style="font-size: 12px" >已有信息:</span> |
|||
<el-table |
|||
height="300px" |
|||
:data="itemList2" |
|||
border |
|||
@row-click="clickItem2" |
|||
highlight-current-row |
|||
v-loading="dataListLoading" |
|||
style="width: 100%"> |
|||
<el-table-column |
|||
prop="informationNo" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="110" |
|||
label="信息编码"> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="informationName" |
|||
header-align="center" |
|||
align="left" |
|||
min-width="170" |
|||
label="信息名称"> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-main> |
|||
</el-container> |
|||
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|||
<el-button type="primary" @click="fastAddFlag = false">关闭</el-button> |
|||
</el-footer> |
|||
</el-dialog> |
|||
|
|||
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
qcCheckOutModelSearch, |
|||
qcCheckOutModelSave, |
|||
qcCheckOutModelUpdate, |
|||
qcMasterInformationModelDelete, // 删除主记录信息模板 |
|||
searchMasterInformation, // 查询模板中的主信息 |
|||
saveMasterInformation, // 新增模板中的主信息 |
|||
deleteMasterInformation, // 删除模板中的主信息 |
|||
qcCheckOutItemSearch, // 搜索项目 |
|||
getInformationLists // 获取项目列表 |
|||
} from "@/api/qc/qc.js" |
|||
import Chooselist from '@/views/modules/common/Chooselist_eam' |
|||
export default { |
|||
components: { |
|||
Chooselist |
|||
}, |
|||
watch: { |
|||
searchData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.searchData.codeNo = this.searchData.codeNo.toUpperCase() |
|||
} |
|||
}, |
|||
|
|||
itemData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.itemData.itemNo = this.itemData.itemNo.toUpperCase() |
|||
} |
|||
}, |
|||
modalData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.modalData.codeNo = this.modalData.codeNo.toUpperCase() |
|||
} |
|||
}, |
|||
detailData: { |
|||
deep: true, |
|||
handler: function (newV, oldV) { |
|||
this.detailData.codeNo = this.detailData.codeNo.toUpperCase() |
|||
this.detailData.itemNo = this.detailData.itemNo.toUpperCase() |
|||
} |
|||
} |
|||
}, |
|||
data () { |
|||
return { |
|||
tagNo:'', |
|||
searchData: { |
|||
codeNo: '', |
|||
codeDesc: '', |
|||
active:'Y', |
|||
functionType:'E', |
|||
page: 1, |
|||
limit: 10, |
|||
}, |
|||
height: 200, |
|||
pageIndex: 1, |
|||
pageSize: 100, |
|||
totalPage: 0, |
|||
addDetailModalFlag:false, |
|||
modalFlag:false, |
|||
modalDisableFlag:false, |
|||
modalData:{ |
|||
flag:'', |
|||
codeNo:'', |
|||
codeDesc:'', |
|||
active:'', |
|||
functionType:'E', |
|||
userId:this.$store.state.user.name |
|||
}, |
|||
detailData:{ |
|||
codeNo:'', |
|||
codeDesc:'', |
|||
functionType:'E', |
|||
informationNo:'', |
|||
informationName:'', |
|||
informationType:'E', |
|||
userId:this.$store.state.user.name |
|||
}, |
|||
columnList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003TableCodeNo', |
|||
tableId: "301003Table", |
|||
tableName: "检验模板表", |
|||
columnProp: 'codeNo', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '主记录模板编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 120, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003TableCodeDesc', |
|||
tableId: "301003Table", |
|||
tableName: "检验模板表", |
|||
columnProp: 'codeDesc', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '主记录模板名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 140, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003TableActive', |
|||
tableId: "301003Table", |
|||
tableName: "检验模板表", |
|||
columnProp: 'active', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '是否在用', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 40, |
|||
}, |
|||
], |
|||
detailModelFlag:false, |
|||
detailList: [], |
|||
chooseTableData:[], |
|||
dataListLoading: false, |
|||
dataListSelections: [], |
|||
|
|||
// modalDisableFlag:false, |
|||
chooseModalFlag:false, |
|||
itemFlag:'text', |
|||
itemData:{ |
|||
itemNo:'', |
|||
valueNo:'', |
|||
availableValue:'', |
|||
itemType:'E', |
|||
createdBy: this.$store.state.user.name |
|||
}, |
|||
dataList:[], |
|||
departmentList:[], |
|||
// 展示列集 |
|||
columnDetailList: [ |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003Table2EamPropertiesItemID', |
|||
tableId: "301003Table2", |
|||
tableName: "主信息表", |
|||
columnProp: 'informationNo', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '主信息编码', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 90, |
|||
}, |
|||
{ |
|||
userId: this.$store.state.user.name, |
|||
functionId: 301003, |
|||
serialNumber: '301003Table2EamPropertiesItemDesc', |
|||
tableId: "301003Table2", |
|||
tableName: "主信息表", |
|||
columnProp: 'informationName', |
|||
headerAlign: "center", |
|||
align: "left", |
|||
columnLabel: '主信息名称', |
|||
columnHidden: false, |
|||
columnImage: false, |
|||
columnSortable: false, |
|||
sortLv: 0, |
|||
status: true, |
|||
fixed: '', |
|||
columnWidth: 90, |
|||
} |
|||
], |
|||
levelList:[], |
|||
chooseModalData:{ |
|||
itemNo: '', |
|||
itemDesc: '', |
|||
itemType:'E', |
|||
valueTypeDb:'', |
|||
}, |
|||
// 快速添加 |
|||
fastAddFlag:false, |
|||
itemList1:[], |
|||
itemList2:[], |
|||
itemListRow1:{}, |
|||
itemListRow2:{}, |
|||
} |
|||
}, |
|||
mounted () { |
|||
this.$nextTick(() => { |
|||
this.height = window.innerHeight - 210 |
|||
}) |
|||
}, |
|||
created () { |
|||
this.getDataList(); |
|||
}, |
|||
methods: { |
|||
// 获取基础数据列表S |
|||
getBaseList (val,type) { |
|||
this.tagNo = val |
|||
this.$nextTick(() => { |
|||
let strVal = '' |
|||
if (val === 1041) { |
|||
strVal = this.detailData.informationNo |
|||
} |
|||
this.$refs.baseList.init(val, strVal) |
|||
}) |
|||
}, |
|||
/* 列表方法的回调 */ |
|||
getBaseData (val) { |
|||
if (this.tagNo === 1041) { |
|||
this.detailData.informationNo = val.information_no |
|||
this.detailData.informationName = val.information_name |
|||
} |
|||
}, |
|||
// 获取数据列表 |
|||
getDataList () { |
|||
this.searchData.limit = this.pageSize |
|||
this.searchData.page = this.pageIndex |
|||
qcCheckOutModelSearch(this.searchData).then(({data}) => { |
|||
if (data.code == 0) { |
|||
this.dataList = data.page.list |
|||
this.pageIndex = data.page.currPage |
|||
this.pageSize = data.page.pageSize |
|||
this.totalPage = data.page.totalCount |
|||
} |
|||
this.dataListLoading = false |
|||
}) |
|||
}, |
|||
// 每页数 |
|||
sizeChangeHandle (val) { |
|||
this.pageSize = val |
|||
this.pageIndex = 1 |
|||
this.getDataList() |
|||
}, |
|||
// 当前页 |
|||
currentChangeHandle (val) { |
|||
this.pageIndex = val |
|||
this.getDataList() |
|||
}, |
|||
addModal(){ |
|||
this.modalData={ |
|||
flag:'1', |
|||
codeNo:'', |
|||
codeDesc:'', |
|||
active:'Y', |
|||
functionType:'E', |
|||
userId:this.$store.state.user.name |
|||
}; |
|||
this.modalDisableFlag = false; |
|||
this.modalFlag = true; |
|||
}, |
|||
updateModal(row){ |
|||
this.modalData={ |
|||
flag:'2', |
|||
codeNo:row.codeNo, |
|||
codeDesc:row.codeDesc, |
|||
active:row.active, |
|||
functionType:'E', |
|||
userId:this.$store.state.user.name |
|||
}; |
|||
this.modalDisableFlag=true; |
|||
this.modalFlag=true; |
|||
}, |
|||
// 删除 |
|||
deleteMasterInformationModel (row) { |
|||
this.$confirm(`是否删除这个主记录信息模板?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
qcMasterInformationModelDelete(row).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
this.getDataList() |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
saveData(){ |
|||
if (this.modalData.codeNo == '' || this.modalData.codeNo == null) { |
|||
this.$alert('请输入检验模板编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.codeDesc == '' || this.modalData.codeDesc == null) { |
|||
this.$alert('请输入检验模板名称!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if (this.modalData.active == '' || this.modalData.active == null) { |
|||
this.$alert('选择是否在用!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
if(this.modalData.flag=='1'){ |
|||
qcCheckOutModelSave(this.modalData).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
this.getDataList() |
|||
this.modalFlag=false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}else { |
|||
qcCheckOutModelUpdate(this.modalData).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
this.getDataList() |
|||
this.modalFlag=false |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
} |
|||
}, |
|||
//打开检验项目清单 |
|||
detailModal(row){ |
|||
this.detailData.codeNo = row.codeNo |
|||
this.detailData.codeDesc = row.codeDesc |
|||
searchMasterInformation(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.detailModelFlag = true; |
|||
}, |
|||
|
|||
// 普通新增 |
|||
addDetailModal(){ |
|||
this.detailData.informationNo = ''; |
|||
this.detailData.informationName = ''; |
|||
this.addDetailModalFlag = true; |
|||
}, |
|||
|
|||
// 快速新增 |
|||
addFastModal(){ |
|||
this.itemListRow2 = null |
|||
this.itemListRow1 = null |
|||
getInformationLists(this.detailData).then(({data}) => { |
|||
this.itemList1 = data.row1; |
|||
this.itemList2 = data.row2; |
|||
}) |
|||
this.fastAddFlag = true; |
|||
}, |
|||
|
|||
clickItem1(row){ |
|||
this.itemListRow1 = JSON.parse(JSON.stringify(row)); |
|||
}, |
|||
clickItem2(row){ |
|||
this.itemListRow2 = JSON.parse(JSON.stringify(row)); |
|||
}, |
|||
// 添加项目 |
|||
addItem(){ |
|||
if(this.itemListRow1==null){ |
|||
this.$alert("请选择可选项目!", '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false; |
|||
} |
|||
let inData={ |
|||
codeNo: this.detailData.codeNo, |
|||
codeDesc: this.detailData.codeDesc, |
|||
functionType: this.detailData.functionType, |
|||
informationNo: this.itemListRow1.informationNo, |
|||
informationName: this.itemListRow1.informationName, |
|||
informationType: this.detailData.informationType, |
|||
userId: this.$store.state.user.name |
|||
} |
|||
saveMasterInformation(inData).then(({data}) => { |
|||
if (data && data.code == 0) { |
|||
getInformationLists(this.detailData).then(({data}) => { |
|||
this.itemList1 = data.row1; |
|||
this.itemList2 = data.row2; |
|||
}) |
|||
this.itemListRow1=null |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
// 删除信息 |
|||
deleteItem(){ |
|||
if(this.itemListRow2 == null){ |
|||
this.$alert("请选择已选项目!", '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false; |
|||
} |
|||
let inData = { |
|||
codeNo: this.detailData.codeNo, |
|||
codeDesc: this.detailData.codeDesc, |
|||
functionType: this.detailData.functionType, |
|||
informationNo: this.itemListRow2.informationNo, |
|||
informationName: this.itemListRow2.informationName, |
|||
informationType: this.detailData.informationType, |
|||
userId: this.$store.state.user.name |
|||
} |
|||
deleteMasterInformation(inData).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
getInformationLists(this.detailData).then(({data}) => { |
|||
this.itemList1 = data.row1; |
|||
this.itemList2 = data.row2; |
|||
}) |
|||
this.itemListRow2 = null |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
// 关闭后刷新列表 |
|||
refreshDetailList(){ |
|||
searchMasterInformation(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
}, |
|||
|
|||
// 保存模板中的信息明细 |
|||
saveMasterInformation(){ |
|||
if(this.detailData.informationNo == "" || this.detailData.informationNo == null){ |
|||
this.$alert('请选择主记录信息编码!', '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
return false |
|||
} |
|||
saveMasterInformation(this.detailData).then(({data}) => { |
|||
if (data && data.code == 0) { |
|||
searchMasterInformation(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.addDetailModalFlag = false; |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
itemNoBlur(){ |
|||
let inData={ |
|||
itemType:'E', |
|||
itemNo:this.detailData.itemNo |
|||
} |
|||
qcCheckOutItemSearch(inData).then(({data}) => { |
|||
if(data.rows.length>0){ |
|||
this.detailData.itemDesc = data.rows[0].itemDesc |
|||
}else { |
|||
this.detailData.itemDesc='' |
|||
} |
|||
}) |
|||
}, |
|||
// 删除模板中的信息 |
|||
deleteMasterInformation(row){ |
|||
console.log(row) |
|||
this.$confirm(`是否删除这个检验项目?`, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
deleteMasterInformation(row).then(({data}) => { |
|||
if (data && data.code === 0) { |
|||
searchMasterInformation(this.detailData).then(({data}) => { |
|||
this.detailList = data.rows |
|||
}) |
|||
this.$message({ |
|||
message: '操作成功', |
|||
type: 'success', |
|||
duration: 1500, |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
} else { |
|||
this.$alert(data.msg, '错误', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
1136
src/views/modules/qc/qcResultEntry.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save
Reference in new issue