yfy 3 years ago
parent
commit
a0188752fd
  1. 82
      src/api/qc/qc.js
  2. 1
      src/views/modules/common/Chooselist_eam.vue
  3. 311
      src/views/modules/qc/qcCheckOutMethod.vue
  4. 917
      src/views/modules/qc/qcCheckOutModel.vue
  5. 621
      src/views/modules/qc/qcFamily.vue
  6. 271
      src/views/modules/qc/qcInformation.vue
  7. 371
      src/views/modules/qc/qcInspector.vue
  8. 884
      src/views/modules/qc/qcItemMaintenance.vue
  9. 784
      src/views/modules/qc/qcMasterInformationModel.vue
  10. 1136
      src/views/modules/qc/qcResultEntry.vue

82
src/api/qc/qc.js

@ -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)

1
src/views/modules/common/Chooselist_eam.vue

@ -197,7 +197,6 @@ export default {
getRowData(row) { getRowData(row) {
this.visible = false this.visible = false
this.$emit('getBaseData',row) this.$emit('getBaseData',row)
}, },
closeDialog(){ closeDialog(){
this.param1= '' this.param1= ''

311
src/views/modules/qc/qcCheckOutMethod.vue

@ -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>

917
src/views/modules/qc/qcCheckOutModel.vue

@ -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>

621
src/views/modules/qc/qcFamily.vue

@ -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>

271
src/views/modules/qc/qcInformation.vue

@ -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>

371
src/views/modules/qc/qcInspector.vue

@ -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>

884
src/views/modules/qc/qcItemMaintenance.vue

@ -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>

784
src/views/modules/qc/qcMasterInformationModel.vue

@ -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

Loading…
Cancel
Save