mt-yd-ui/src/views/modules/monitoring/qualityInspectionRecord.vue
2022-08-31 11:33:54 +08:00

278 lines
7.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="mod-config">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<!-- <el-form-item>
<el-input v-model="dataForm.key" placeholder="参数名" clearable></el-input>
</el-form-item> -->
<el-form-item>
<el-button @click="getDataList()">查询</el-button>
<el-button v-if="$hasPermission('monitoring:qualityinspectionrecord:save')" type="primary" @click="addOrUpdateHandle()">新增</el-button>
</el-form-item>
</el-form>
<base-table :data="dataList" :table-head-configs="tableConfigs" :max-height="500" @operate-event="handleOperations" @refreshDataList="getDataList" />
<el-pagination
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="totalPage"
layout="total, sizes, prev, pager, next, jumper"
>
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
:configs="addOrUpdateConfigs"
@refreshDataList="getDataList"
@destory-dialog="addOrUpdateVisible = false"
@select-change="handleSelectChange"
/>
</div>
</template>
<script>
import { calcMaxHeight } from '@/utils'
import AddOrUpdate from '@/components/base-dialog/addOrUpdate'
// import AddOrUpdate from './qualityInspectionRecord-add-or-update'
import BaseTable from '@/components/base-table'
import TableOperateComponent from '@/components/base-table/components/operationComponent'
// import TableTextComponent from '@/components/base-table/components/detailComponent'
const tableConfigs = [
{ prop: 'createTime', name: '添加时间' },
{
prop: 'inspectionDetContent',
name: '检测内容'
// "name": "检测内容设备推送消息时可能无对应id只填这个字段"
},
{ prop: 'checkTime', name: '检测时间' },
{ prop: 'productionId', name: '产线id' },
{ prop: 'sectionId', name: '工段id' },
{ prop: 'checkPerson', name: '检测人员' },
// { prop: 'checkPerson', name: '检测人员,可以多个' },
{ prop: 'source', name: '来源', filter: val => ({ 1: '手动', 2: '自动' }[val]) },
// { prop: 'source', name: '来源 1手动默认 2自动' },
{ prop: 'explainText', name: '描述' },
{ prop: 'remark', name: '备注' },
{ prop: 'operations', name: '操作', fixed: 'right', width: 180, subcomponent: TableOperateComponent, options: ['edit', 'delete'] }
]
const addOrUpdateConfigs = {
type: 'dialog',
infoUrl: '/monitoring/qualityInspectionRecord',
fields: [
{ name: 'checkTime', label: '检测时间', type: 'date', props: { style: 'width: 100%', type: 'datetime' }, placeholder: '请选择检测时间' },
{ name: 'productionId', label: '产线', type: 'select', options: [] },
{ name: 'sectionId', label: '工段', type: 'select', options: [] },
{
name: 'source',
label: '来源',
type: 'select',
options: [
{ value: 1, label: '手动', default: true },
{ value: 2, label: '自动' }
]
},
{ name: 'inspectionDetId', label: '检测内容', type: 'select', options: [] },
{ name: 'checkPerson', label: '检测人员' },
{ name: 'explainText', label: '描述' },
'remark'
],
operations: [
{ name: 'cancel', showAlways: true },
{ name: 'save', url: '/monitoring/qualityInspectionRecord', permission: '', showOnEdit: false },
{ name: 'update', url: '/monitoring/qualityInspectionRecord', permission: '', showOnEdit: true }
]
}
export default {
data() {
return {
addOrUpdateConfigs,
tableConfigs,
dataForm: {
key: ''
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
addOrUpdateVisible: false
}
},
components: {
AddOrUpdate,
BaseTable
},
activated() {
this.getDataList()
this.getInspectionDet()
this.getWorkSections()
this.getProductLines()
},
methods: {
// handle
async handleSelectChange({ name, id }) {
if (name === 'productionId') {
// 如果选择了产线,就依据此更新工单的选项
await this.getWorkSections(id)
}
},
// 获取检测内容
getInspectionDet() {
this.$http({
url: this.$http.adornUrl('/monitoring/qualityInspectionDet/page'),
method: 'get',
params: this.$http.adornParams({
page: this.pageIndex,
limit: this.pageSize,
key: this.dataForm.key
})
}).then(({ data: res }) => {
console.log('insdet:', res)
const insDetOpt = this.addOrUpdateConfigs.fields.find(item => item.name === 'inspectionDetId')
if (insDetOpt) {
insDetOpt.options = res.data.list.map(item => ({ value: item.id, label: item.content })) || []
}
})
},
// 获取产线
getProductLines() {
this.$http({
url: this.$http.adornUrl('/monitoring/productionLine/page'),
method: 'get',
params: this.$http.adornParams({
// page: this.pageIndex,
// limit: this.pageSize,
// key: this.dataForm.key
})
}).then(({ data: res }) => {
const plOpt = this.addOrUpdateConfigs.fields.find(item => item.name === 'productionId')
if (plOpt) {
plOpt.options = res.data.list.map(item => ({ value: item.id, label: item.name })) || []
}
})
},
// 获取工段
getWorkSections(lineId) {
this.$http({
url: this.$http.adornUrl('/monitoring/workshopSection/page'),
method: 'get',
params: lineId
? this.$http.adornParams({
// page: this.pageIndex,
// limit: this.pageSize,
// key: this.dataForm.key
lineId
})
: {}
}).then(({ data: res }) => {
if (this.addOrUpdateVisible) {
if (res.data.total === 0) {
this.$message.error('该产线没有工段')
} else {
this.$message.success(`该产线有 ${res.data.total} 条工段`)
}
}
const wsOpt = this.addOrUpdateConfigs.fields.find(item => item.name === 'sectionId')
if (wsOpt) {
wsOpt.options = res.data.list.map(item => ({ value: item.id, label: item.name })) || []
}
})
},
// 获取数据列表
getDataList() {
this.addOrUpdateVisible = false
this.dataListLoading = true
this.$http({
url: this.$http.adornUrl('/monitoring/qualityInspectionRecord/page'),
method: 'get',
params: this.$http.adornParams({
page: this.pageIndex,
limit: this.pageSize,
key: this.dataForm.key
})
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.data.list
this.totalPage = data.data.total
} else {
this.dataList = []
this.totalPage = 0
}
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
},
handleOperations({ type, data: id }) {
switch (type) {
case 'edit':
return this.addOrUpdateHandle(id)
case 'delete':
return this.deleteHandle(id)
}
},
// 新增 / 修改
addOrUpdateHandle(id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
// 删除
deleteHandle(id) {
var ids = id
? [id]
: this.dataListSelections.map(item => {
return item.id
})
this.$confirm(`确定对[id=${ids.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$http({
url: this.$http.adornUrl('/monitoring/qualityInspectionRecord'),
method: 'delete',
data: this.$http.adornData(ids, false, 'raw')
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {
this.getDataList()
}
})
} else {
this.$message.error(data.msg)
}
})
})
}
}
}
</script>