修改看板
This commit is contained in:
@@ -0,0 +1,280 @@
|
||||
<!--
|
||||
filename: dialogForm.vue
|
||||
author: liubin
|
||||
date: 2023-09-11 15:55:13
|
||||
description: DialogForm for equipmentBindSection only
|
||||
-->
|
||||
|
||||
<template>
|
||||
<el-form ref="dataForm" :model="dataForm" label-width="120px" v-loading="formLoading" label-position="top">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="产线" prop="productionLineId"
|
||||
:rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
|
||||
<el-select v-model="dataForm.productionLineId" placeholder="请选择产线" filterable
|
||||
@change="handleProductlineChange">
|
||||
<el-option v-for="opt in productionLineList" :key="opt.value" :label="opt.label" :value="opt.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="工段" prop="sectionId" :rules="[{ required: true, message: '不能为空', trigger: 'blur' }]">
|
||||
<el-select v-model="dataForm.sectionId" placeholder="请选择工段" filterable @change="$emit('update', dataForm)">
|
||||
<el-option v-for="opt in workshopSectionList" :key="opt.value" :label="opt.label" :value="opt.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="检测内容" prop="inspectionDetIdList"
|
||||
:rules="[{ required: true, message: '不能为空', trigger: 'change' }]">
|
||||
<div class="itemDet" v-for="item in inspectionDetList" :key="item.typeId" style="padding: 0 20px;">
|
||||
<div>{{ item.typeName}} </div>
|
||||
<!-- <div>{{ item.data }} </div> -->
|
||||
<div class="content">
|
||||
<el-checkbox-group v-model="dataForm.inspectionDetIdList" @change="handleCheckedCitiesChange">
|
||||
<el-checkbox v-for="i in item.data" :key="i.content" :label="i.detId">{{ i.content }}
|
||||
</el-checkbox>
|
||||
</el-checkbox-group>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="按钮盒识别码" prop="buttonId" :rules="[
|
||||
{ required: true, message: '不能为空', trigger: 'blur' },
|
||||
{
|
||||
type: 'number',
|
||||
message: '请输入整数',
|
||||
trigger: 'blur',
|
||||
transform: (val) => Number.isInteger(Number(val)) && Number(val),
|
||||
},
|
||||
]">
|
||||
<el-input v-model="dataForm.buttonId" @change="$emit('update', dataForm)" placeholder="请输入整数" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="按钮值" prop="keyValue" :rules="[
|
||||
{ required: true, message: '不能为空', trigger: 'blur' },
|
||||
{
|
||||
type: 'number',
|
||||
message: '请输入100以内的整数',
|
||||
trigger: 'blur',
|
||||
transform: (val) =>
|
||||
Number.isInteger(+val) &&
|
||||
Number(val) >= 0 &&
|
||||
Number(val) <= 100 &&
|
||||
Number(val),
|
||||
},
|
||||
]">
|
||||
<el-input v-model="dataForm.keyValue" type="number" min="0" max="100" @change="$emit('update', dataForm)"
|
||||
placeholder="请输入按钮盒模式" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-form-item label="检测内容" prop="inspectionDetContent"
|
||||
:rules="[{ required: true, message: '不能为空', trigger: 'change' }]">
|
||||
<el-select v-model="dataForm.inspectionDetContent" placeholder="请选择检测内容" filterable
|
||||
@change="$emit('update', dataForm)">
|
||||
<el-option v-for="opt in inspectionDetList" :key="opt.value" :label="opt.label" :value="opt.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
</el-row>
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import basicAdd from '../../mixins/basic-add';
|
||||
import {
|
||||
createQualityInspectionBoxBtn,
|
||||
updateQualityInspectionBoxBtn,
|
||||
getQualityInspectionBoxBtn,
|
||||
getListByLineSection
|
||||
} from '@/api/base/qualityInspectionBoxBtn';
|
||||
export default {
|
||||
mixins: [basicAdd],
|
||||
data() {
|
||||
return {
|
||||
urlOptions: {
|
||||
// isGetCode: false,
|
||||
// codeURL: getCode,
|
||||
createURL: createQualityInspectionBoxBtn,
|
||||
updateURL: updateQualityInspectionBoxBtn,
|
||||
infoURL: getQualityInspectionBoxBtn,
|
||||
},
|
||||
dataForm: {
|
||||
// id: null,
|
||||
sectionId: null,
|
||||
productionLineId: null,
|
||||
inspectionDetIdList:[],
|
||||
},
|
||||
formLoading: true,
|
||||
productionLineList: [],
|
||||
inspectionDetList:[],
|
||||
workshopSectionList: [],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getProductionLineList()
|
||||
this.getQualityInspectionDetList()
|
||||
// this.getList()
|
||||
// this.getWorksectionList();
|
||||
// this.getCode('/base/equipment-group-alarm/getCode').then((code) => {
|
||||
// this.formLoading = false;
|
||||
// this.$emit('update', {
|
||||
// ...this.dataForm,
|
||||
// code,
|
||||
// });
|
||||
// });
|
||||
},
|
||||
watch: {
|
||||
'dataForm.productionId': {
|
||||
handler(id) {
|
||||
if (id != null) this.getWorksectionList(id)
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
init(obj) {
|
||||
// console.log(productionLineId);
|
||||
console.log(obj);
|
||||
this.visible = true
|
||||
// if(obj.id)
|
||||
if (obj) {
|
||||
this.dataForm.id = obj.id || null;
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.$refs["dataForm"].resetFields()
|
||||
if (obj) {
|
||||
getListByLineSection({
|
||||
productionLineId: obj.productionLineId,
|
||||
sectionId: obj.sectionId,
|
||||
}).then((res) => {
|
||||
console.log(res);
|
||||
this.dataForm.inspectionDetIdList = res.data
|
||||
this.dataForm.productionLineId = obj.productionLineId
|
||||
this.getWorksectionList(obj.productionLineId)
|
||||
this.dataForm.sectionId = obj.sectionId
|
||||
})
|
||||
}
|
||||
if (this.dataForm.id) {
|
||||
console.log(1111);
|
||||
this.urlOptions.infoURL(obj.id).then(response => {
|
||||
this.dataForm.id = response.data.id
|
||||
|
||||
// if (this.setData) {
|
||||
// this.setDataForm()
|
||||
// }
|
||||
});
|
||||
} else {
|
||||
// if (this.urlOptions.isGetCode) {
|
||||
// this.getCode()
|
||||
// }
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 模拟透传 ref */
|
||||
handleCheckedCitiesChange(value) {
|
||||
;console.log(value);
|
||||
// let checkedCount = value.length;
|
||||
// this.checkAll = checkedCount === this.cities.length;
|
||||
// this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
|
||||
},
|
||||
// getList() {
|
||||
// console.log(this.dataForm.sectionId);
|
||||
|
||||
// },
|
||||
validate(cb) {
|
||||
return this.$refs.form.validate(cb);
|
||||
},
|
||||
resetFields(args) {
|
||||
return this.$refs.form.resetFields(args);
|
||||
},
|
||||
async getProductionLineList() {
|
||||
this.formLoading = true;
|
||||
const res = await this.$axios({
|
||||
url: '/base/core-production-line/listAll',
|
||||
method: 'get',
|
||||
});
|
||||
if (res.code == 0) {
|
||||
this.productionLineList = res.data.map((item) => ({
|
||||
label: item.name,
|
||||
value: item.id,
|
||||
}));
|
||||
}
|
||||
this.formLoading = false;
|
||||
},
|
||||
async getQualityInspectionDetList() {
|
||||
this.formLoading = true;
|
||||
const res = await this.$axios({
|
||||
url: '/base/quality-inspection-det/inspectionMap',
|
||||
method: 'get',
|
||||
});
|
||||
if (res.code == 0) {
|
||||
console.log(res)
|
||||
let arr = []
|
||||
for (let i in res.data) {
|
||||
let obj = {
|
||||
typeName: res.data[i].length !== 0 ? res.data[i][0].typeName : '',
|
||||
typeId: res.data[i].length !== 0 ? res.data[i][0].typeId : '',
|
||||
data:[]
|
||||
}
|
||||
let detArr = []
|
||||
res.data[i].forEach(ele => {
|
||||
detArr.push({
|
||||
detId: ele.id,
|
||||
content: ele.content
|
||||
})
|
||||
})
|
||||
obj.data = detArr
|
||||
arr.push(obj)
|
||||
}
|
||||
this.inspectionDetList = arr
|
||||
console.log(this.inspectionDetList);
|
||||
// this.inspectionDetList = res.data.map((item) => ({
|
||||
// label: item.content,
|
||||
// value: item.content,
|
||||
// }));
|
||||
}
|
||||
this.formLoading = false;
|
||||
},
|
||||
async getWorksectionList(id) {
|
||||
this.formLoading = true;
|
||||
const res = await this.$axios({
|
||||
url: '/base/core-workshop-section/listByParentId',
|
||||
method: 'get',
|
||||
params: {
|
||||
id,
|
||||
},
|
||||
});
|
||||
if (res.code == 0) {
|
||||
this.workshopSectionList = res.data.map((item) => ({
|
||||
label: item.name,
|
||||
value: item.id,
|
||||
}));
|
||||
}
|
||||
this.formLoading = false;
|
||||
},
|
||||
|
||||
async handleProductlineChange(id) {
|
||||
await this.getWorksectionList(id);
|
||||
this.dataForm.sectionId = null;
|
||||
this.$emit('update', this.dataForm);
|
||||
},
|
||||
|
||||
// async getCode(url) {
|
||||
// const response = await this.$axios(url);
|
||||
// return response.data;
|
||||
// },
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.el-date-editor,
|
||||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,222 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 搜索工作栏 -->
|
||||
<SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="buttonClick" />
|
||||
|
||||
<!-- 列表 -->
|
||||
<base-table :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize" :table-data="tableData">
|
||||
<method-btn v-if="tableBtn.length" slot="handleBtn" label="操作" :width="120" fixed="right" :method-list="tableBtn"
|
||||
@clickBtn="handleClick" />
|
||||
</base-table>
|
||||
|
||||
<!-- 分页组件 -->
|
||||
<!-- <pagination :limit.sync="listQuery.pageSize" :page.sync="listQuery.pageNo" :total="listQuery.total"
|
||||
@pagination="getDataList" /> -->
|
||||
|
||||
<!-- 对话框(添加 / 修改) -->
|
||||
<base-dialog :dialogTitle="addOrEditTitle" :dialogVisible="addOrUpdateVisible" width="50%" @cancel="handleCancel"
|
||||
@confirm="handleConfirm" :before-close="handleCancel">
|
||||
<add-or-update ref="addOrUpdate" @refreshDataList="successSubmit"></add-or-update>
|
||||
</base-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
createQualityInspectionBoxBtn,
|
||||
updateQualityInspectionBoxBtn,
|
||||
deleteQualityInspectionBoxBtn,
|
||||
getQualityInspectionBoxBtn,
|
||||
getQualityInspectionBoxBtnPage,
|
||||
exportQualityInspectionBoxBtnExcel,
|
||||
getUserList
|
||||
} from '@/api/base/qualityInspectionBoxPermissions';
|
||||
import basicPage from '../../mixins/basic-page';
|
||||
import moment from 'moment';
|
||||
import addOrUpdate from './dialogForm.vue';
|
||||
|
||||
export default {
|
||||
name: 'QualityInspectionBoxBtn',
|
||||
mixins: [basicPage],
|
||||
components: { addOrUpdate },
|
||||
data() {
|
||||
return {
|
||||
urlOptions: {
|
||||
getDataListURL: getQualityInspectionBoxBtnPage,
|
||||
deleteURL: deleteQualityInspectionBoxBtn,
|
||||
// exportURL: exportFactoryExcel,
|
||||
},
|
||||
searchBarFormConfig: [
|
||||
{
|
||||
type: 'select',
|
||||
label: '用户名称',
|
||||
selectOptions: [],
|
||||
labelField: 'name',
|
||||
valueField: 'id',
|
||||
param: 'userName',
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '查询',
|
||||
name: 'search',
|
||||
color: 'primary',
|
||||
},
|
||||
{
|
||||
type: 'separate',
|
||||
},
|
||||
{
|
||||
type: this.$auth.hasPermi('base:quality-inspection-box-permissions:create')
|
||||
? 'button'
|
||||
: '',
|
||||
btnName: '新增',
|
||||
name: 'add',
|
||||
plain: true,
|
||||
color: 'success',
|
||||
},
|
||||
],
|
||||
tableBtn: [
|
||||
this.$auth.hasPermi('base:quality-inspection-box-permissions:update')
|
||||
? {
|
||||
type: 'edit',
|
||||
btnName: '修改',
|
||||
}
|
||||
: undefined,
|
||||
this.$auth.hasPermi('base:quality-inspection-box-permissions:delete')
|
||||
? {
|
||||
type: 'delete',
|
||||
btnName: '删除',
|
||||
}
|
||||
: undefined,
|
||||
].filter((v) => v),
|
||||
tableData: [],
|
||||
|
||||
tableProps: [
|
||||
// {
|
||||
// prop: 'createTime',
|
||||
// label: '添加时间',
|
||||
// fixed: true,
|
||||
// width: 180,
|
||||
// filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
|
||||
// },
|
||||
{
|
||||
prop: 'productionLineName',
|
||||
label: '用户名',
|
||||
},
|
||||
{
|
||||
prop: 'sectionName',
|
||||
label: '用户昵称',
|
||||
},
|
||||
{
|
||||
prop: 'inspectionInfoList',
|
||||
label: '产线及工段',
|
||||
}
|
||||
],
|
||||
// 查询参数
|
||||
listQuery: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
inspectionDetContent: null,
|
||||
},
|
||||
addOrUpdateVisible: false,
|
||||
addOrEditTitle:'',
|
||||
// 搜索框需要的 keys, 与上面 listQuery 的除 pageNo, pageSize 之外的 key 一一对应
|
||||
searchBarKeys: ['inspectionDetContent'],
|
||||
form: {
|
||||
id: null,
|
||||
buttonId: null,
|
||||
inspectionDetContent: [],
|
||||
productionLineId: null,
|
||||
sectionId: null,
|
||||
model: null,
|
||||
keyValue: null,
|
||||
},
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getDict()
|
||||
},
|
||||
methods: {
|
||||
getDict() {
|
||||
getUserList({
|
||||
pageNo: 1,
|
||||
pageSize:999
|
||||
}).then((res) => {
|
||||
this.searchBarFormConfig[0].selectOptions = res.data
|
||||
})
|
||||
},
|
||||
getDataList() {
|
||||
this.dataListLoading = true;
|
||||
this.urlOptions.getDataListURL(this.listQuery).then(response => {
|
||||
this.tableData = response.data.map((item) => {
|
||||
// console.log(item);
|
||||
return {
|
||||
inspectionInfoList: item.inspectionInfoList.toString(),
|
||||
productionLineId:item.productionLineId,
|
||||
productionLineName:item.productionLineName,
|
||||
sectionId: item.sectionId,
|
||||
sectionName: item.sectionName
|
||||
}
|
||||
})
|
||||
this.listQuery.total = response.data.total;
|
||||
this.dataListLoading = false;
|
||||
});
|
||||
},
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
buttonId: null,
|
||||
inspectionDetContent: null,
|
||||
productionId: null,
|
||||
sectionId: null,
|
||||
model: null,
|
||||
keyValue: null,
|
||||
};
|
||||
this.resetForm('form');
|
||||
},
|
||||
deleteHandle(id, name, index, data) {
|
||||
this.$confirm(`确认要删除产线名为${data.productionLineName}的数据项?`, "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
this.urlOptions.deleteURL(id).then(({ data }) => {
|
||||
this.$message({
|
||||
message: "操作成功",
|
||||
type: "success",
|
||||
duration: 1500,
|
||||
onClose: () => {
|
||||
this.getDataList();
|
||||
},
|
||||
});
|
||||
});
|
||||
})
|
||||
.catch(() => { });
|
||||
},
|
||||
buttonClick(val) {
|
||||
switch (val.btnName) {
|
||||
case 'search':
|
||||
this.listQuery.pageNo = 1;
|
||||
this.listQuery.pageSize = 10;
|
||||
this.listQuery.inspectionDetContent = val.inspectionDetContent ? val.inspectionDetContent : undefined;
|
||||
// this.listQuery.teamId = val.teamId ? val.teamId : undefined;
|
||||
this.getDataList()
|
||||
break;
|
||||
case 'add':
|
||||
this.addOrEditTitle = '新增';
|
||||
this.addOrUpdateVisible = true;
|
||||
// this.addOrUpdateVisible = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.addOrUpdate.init();
|
||||
});
|
||||
break;
|
||||
case 'export':
|
||||
this.handleExport();
|
||||
break;
|
||||
default:
|
||||
console.log(val);
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -118,7 +118,7 @@ export default {
|
||||
{
|
||||
type: 'datePicker',
|
||||
label: '时间段',
|
||||
dateType: 'daterange', // datetimerange
|
||||
dateType: 'datetimerange', // datetimerange
|
||||
// format: 'yyyy-MM-dd HH:mm:ss',
|
||||
format: 'yyyy-MM-dd HH:mm:ss',
|
||||
valueFormat: 'yyyy-MM-dd HH:mm:ss',
|
||||
|
||||
Reference in New Issue
Block a user