新增报表

This commit is contained in:
‘937886381’
2023-12-13 16:50:55 +08:00
55 changed files with 14420 additions and 9579 deletions

View File

@@ -6,7 +6,7 @@
-->
<template>
<el-form ref="form" :model="dataForm" label-width="120px" v-loading="formLoading">
<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"
@@ -24,8 +24,22 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<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' },
{
@@ -65,28 +79,36 @@
<el-option v-for="opt in inspectionDetList" :key="opt.value" :label="opt.label" :value="opt.value" />
</el-select>
</el-form-item>
</el-col>
</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 {
name: 'DialogForm',
model: {
prop: 'dataForm',
event: 'update',
},
emits: ['update'],
components: {},
props: {
dataForm: {
type: Object,
default: () => ({}),
},
},
mixins: [basicAdd],
data() {
return {
return {
urlOptions: {
// isGetCode: false,
// codeURL: getCode,
createURL: createQualityInspectionBoxBtn,
updateURL: updateQualityInspectionBoxBtn,
infoURL: getQualityInspectionBoxBtn,
},
dataForm: {
// id: null,
sectionId: null,
productionLineId: null,
inspectionDetIdList:[],
},
formLoading: true,
productionLineList: [],
inspectionDetList:[],
@@ -96,6 +118,7 @@ export default {
mounted() {
this.getProductionLineList()
this.getQualityInspectionDetList()
// this.getList()
// this.getWorksectionList();
// this.getCode('/base/equipment-group-alarm/getCode').then((code) => {
// this.formLoading = false;
@@ -108,13 +131,56 @@ export default {
watch: {
'dataForm.productionId': {
handler(id) {
if (id != null) this.getWorksectionList(id);
if (id != null) this.getWorksectionList(id)
},
immediate: true,
immediate: true
},
},
methods: {
/** 模拟透传 ref */
methods: {
init(obj) {
// console.log(productionLineId);
console.log(obj);
this.visible = true;
// if(obj.id)
this.dataForm.id = obj.id ? obj.id : ""
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
})
}
if (this.dataForm.id) {
this.urlOptions.infoURL(obj.id).then(response => {
this.dataForm.id = response.data.id
this.dataForm.productionLineId = response.data.productionLineId
this.dataForm.sectionId = response.data.sectionId
// 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);
},
@@ -138,14 +204,34 @@ export default {
async getQualityInspectionDetList() {
this.formLoading = true;
const res = await this.$axios({
url: '/base/quality-inspection-det/listAll',
url: '/base/quality-inspection-det/inspectionMap',
method: 'get',
});
if (res.code == 0) {
this.inspectionDetList = res.data.map((item) => ({
label: item.content,
value: item.content,
}));
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;
},

View File

@@ -1,47 +1,24 @@
<template>
<div class="app-container">
<!-- 搜索工作栏 -->
<SearchBar
:formConfigs="searchBarFormConfig"
ref="search-bar"
@headBtnClick="handleSearchBarBtnClick" />
<div class="app-container">
<!-- 搜索工作栏 -->
<SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="buttonClick" />
<!-- 列表 -->
<base-table
:table-props="tableProps"
:page="queryParams.pageNo"
:limit="queryParams.pageSize"
:table-data="list"
@emitFun="handleEmitFun">
<method-btn
v-if="tableBtn.length"
slot="handleBtn"
label="操作"
:width="120"
fixed="right"
:method-list="tableBtn"
@clickBtn="handleTableBtnClick" />
</base-table>
<!-- 列表 -->
<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
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 分页组件 -->
<pagination :limit.sync="listQuery.pageSize" :page.sync="listQuery.pageNo" :total="listQuery.total"
@pagination="getDataList" />
<!-- 对话框(添加 / 修改) -->
<base-dialog
:dialogTitle="title"
:dialogVisible="open"
width="50%"
@close="cancel"
@cancel="cancel"
@confirm="submitForm">
<DialogForm v-if="open" ref="form" v-model="form" :rows="rows" />
</base-dialog>
</div>
<!-- 对话框(添加 / 修改) -->
<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>
@@ -53,84 +30,21 @@ import {
getQualityInspectionBoxBtnPage,
exportQualityInspectionBoxBtnExcel,
} from '@/api/base/qualityInspectionBoxBtn';
import basicPageMixin from '@/mixins/lb/basicPageMixin';
import basicPage from '../../mixins/basic-page';
import moment from 'moment';
import DialogForm from './dialogForm.vue';
import addOrUpdate from './dialogForm.vue';
export default {
name: 'QualityInspectionBoxBtn',
mixins: [basicPageMixin],
components: { DialogForm },
mixins: [basicPage],
components: { addOrUpdate },
data() {
return {
rows: [
[
{
select: true,
label: '产线',
url: '/base/production-line/listAll',
prop: 'productionId',
rules: [{ required: true, message: '产线不能为空', trigger: 'blur' }],
bind: {
filterable: true,
},
},
{
select: true,
label: '工段',
url: '/base/workshop-section/listAll',
prop: 'sectionId',
rules: [{ required: true, message: '工段不能为空', trigger: 'blur' }],
bind: {
filterable: true,
},
},
],
[
{
input: true,
label: '按钮盒识别码',
prop: 'buttonId',
rules: [
{
type: 'number',
message: '请输入整数',
trigger: 'blur',
transform: (val) =>
Number.isInteger(Number(val)) && Number(val),
},
],
},
{ input: true, label: '按钮盒模式', prop: 'model' },
],
[
{
input: true,
label: '按钮值',
prop: 'keyValue',
rules: [
{
type: 'number',
message: '请输入100以内的整数',
trigger: 'blur',
transform: (val) =>
Number(val) <= 100 && Number.isInteger(+val) && Number(val),
},
],
bind: { type: 'number', min: 0, max: 100 },
},
{
select: true,
label: '检测内容',
url: '/base/quality-inspection-det/listAll',
prop: 'inspectionDetId',
rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
bind: {
filterable: true,
},
},
],
],
return {
urlOptions: {
getDataListURL: getQualityInspectionBoxBtnPage,
deleteURL: deleteQualityInspectionBoxBtn,
// exportURL: exportFactoryExcel,
},
searchBarFormConfig: [
{
type: 'input',
@@ -170,15 +84,17 @@ export default {
btnName: '删除',
}
: undefined,
].filter((v) => v),
].filter((v) => v),
tableData: [],
tableProps: [
{
prop: 'createTime',
label: '添加时间',
fixed: true,
width: 180,
filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
},
// {
// prop: 'createTime',
// label: '添加时间',
// fixed: true,
// width: 180,
// filter: (val) => moment(val).format('yyyy-MM-DD HH:mm:ss'),
// },
{
prop: 'productionLineName',
label: '产线',
@@ -190,39 +106,22 @@ export default {
{
prop: 'inspectionDetContent',
label: '检测内容',
},
{
width: 160,
prop: 'buttonId',
label: '按钮盒识别码',
},
// {
// width: 256,
// prop: 'productionId',
// label: '按钮盒所在产线ID',
// ,
// },
// {
// width: 256,
// prop: 'sectionId',
// label: '按钮盒所在工段ID',
// ,
// },
{ width: 90, prop: 'keyValue', label: '按钮值' },
{ width: 128, prop: 'model', label: '按钮盒模式' },
}
],
// 查询参数
queryParams: {
listQuery: {
pageNo: 1,
pageSize: 10,
inspectionDetContent: null,
},
// 搜索框需要的 keys, 与上面 queryParams 的除 pageNo, pageSize 之外的 key 一一对应
},
addOrUpdateVisible: false,
addOrEditTitle:'',
// 搜索框需要的 keys, 与上面 listQuery 的除 pageNo, pageSize 之外的 key 一一对应
searchBarKeys: ['inspectionDetContent'],
form: {
id: null,
buttonId: null,
inspectionDetContent: null,
inspectionDetContent: [],
productionLineId: null,
sectionId: null,
model: null,
@@ -231,19 +130,19 @@ export default {
};
},
created() {
this.getList();
// this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
// 执行查询
getQualityInspectionBoxBtnPage(this.queryParams).then((response) => {
this.list = response.data.list;
this.total = response.data.total;
this.loading = false;
});
},
// getList() {
// this.loading = true;
// // 执行查询
// getQualityInspectionBoxBtnPage(this.listQuery).then((response) => {
// this.list = response.data.list;
// this.total = response.data.total;
// this.loading = false;
// });
// },
/** 表单重置 */
reset() {
this.form = {
@@ -256,78 +155,28 @@ export default {
keyValue: null,
};
this.resetForm('form');
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = '添加安灯按钮16键对应';
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id;
getQualityInspectionBoxBtn(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = '修改安灯按钮16键对应';
});
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate((valid) => {
if (!valid) {
return;
}
// 修改的提交
if (this.form.id != null) {
updateQualityInspectionBoxBtn(this.form).then((response) => {
this.$modal.msgSuccess('修改成功');
this.open = false;
this.getList();
});
return;
}
// 添加的提交
createQualityInspectionBoxBtn(this.form).then((response) => {
this.$modal.msgSuccess('新增成功');
this.open = false;
this.getList();
});
});
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.id;
this.$modal
.confirm('是否确认删除"' + row.sectionName + '"?')
.then(function () {
return deleteQualityInspectionBoxBtn(id);
})
.then(() => {
this.getList();
this.$modal.msgSuccess('删除成功');
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
// 处理查询参数
let params = { ...this.queryParams };
params.pageNo = undefined;
params.pageSize = undefined;
this.$modal
.confirm('是否确认导出所有安灯按钮16键对应数据项?')
.then(() => {
this.exportLoading = true;
return exportQualityInspectionBoxBtnExcel(params);
})
.then((response) => {
this.$download.excel(response, '安灯按钮16键对应.xls');
this.exportLoading = false;
})
.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.addOrUpdateHandle();
break;
case 'export':
this.handleExport();
break;
default:
console.log(val);
}
},
},
};
</script>