Compare commits
8 Commits
4801287c01
...
e45c14de30
Author | SHA1 | Date | |
---|---|---|---|
e45c14de30 | |||
14afb6d4b1 | |||
fe0ec015b3 | |||
|
96de42dc6a | ||
|
f7aa5375d0 | ||
76c1caae6a | |||
d70887fef0 | |||
7bc5947a43 |
4
.env.dev
4
.env.dev
@ -1,7 +1,7 @@
|
|||||||
###
|
###
|
||||||
# @Author: Do not edit
|
# @Author: Do not edit
|
||||||
# @Date: 2023-08-29 09:40:39
|
# @Date: 2023-08-29 09:40:39
|
||||||
# @LastEditTime: 2024-03-13 14:57:16
|
# @LastEditTime: 2024-03-21 14:45:52
|
||||||
# @LastEditors: zhp
|
# @LastEditors: zhp
|
||||||
# @Description:
|
# @Description:
|
||||||
###
|
###
|
||||||
@ -25,7 +25,7 @@ VUE_APP_BASE_API = 'http://192.168.0.33:48082'
|
|||||||
# VUE_APP_BASE_API = 'http://192.168.1.78:48082'
|
# VUE_APP_BASE_API = 'http://192.168.1.78:48082'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.47:48082'
|
# VUE_APP_BASE_API = 'http://192.168.1.47:48082'
|
||||||
# socket地址
|
# socket地址
|
||||||
VUE_APP_Socket_API = 'ws://192.168.0.30:8888'
|
VUE_APP_Socket_API = 'ws://192.168.0.33:48082'
|
||||||
VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081'
|
VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081'
|
||||||
|
|
||||||
# 积木报表指向地址
|
# 积木报表指向地址
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2021-07-19 15:18:30
|
* @Date: 2021-07-19 15:18:30
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @LastEditTime: 2024-03-12 09:34:06
|
* @LastEditTime: 2024-03-21 16:07:39
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
@ -633,7 +633,7 @@ export default {
|
|||||||
this.eqConfig.data = eqArr
|
this.eqConfig.data = eqArr
|
||||||
this.$refs['eqScrollBoard'].updateRows(eqArr)
|
this.$refs['eqScrollBoard'].updateRows(eqArr)
|
||||||
this.$refs.productLineChart.initChart(['D61', 'D62', 'D63', 'D64', 'D65',], [98, 97, 98.7, 98.5, 98.3,], [3134, 2323, 3232, 3233, 2321])
|
this.$refs.productLineChart.initChart(['D61', 'D62', 'D63', 'D64', 'D65',], [98, 97, 98.7, 98.5, 98.3,], [3134, 2323, 3232, 3233, 2321])
|
||||||
this.getList()
|
// this.getList()
|
||||||
this.initWebSocket()
|
this.initWebSocket()
|
||||||
this.SJGInitWebSocket()
|
this.SJGInitWebSocket()
|
||||||
this.getTimes()
|
this.getTimes()
|
||||||
@ -671,52 +671,52 @@ export default {
|
|||||||
// removeEventListener('resize', resizeFun)
|
// removeEventListener('resize', resizeFun)
|
||||||
// },
|
// },
|
||||||
methods: {
|
methods: {
|
||||||
getList() {
|
// getList() {
|
||||||
this.$axios.get(
|
// // this.$axios.get(
|
||||||
'base/core-production-line/listAll',
|
// // 'base/core-production-line/listAll',
|
||||||
'get',
|
// // 'get',
|
||||||
this.queryParams
|
// // this.queryParams
|
||||||
).then((res) => {
|
// // ).then((res) => {
|
||||||
// console.log('11111', res);
|
// // // console.log('11111', res);
|
||||||
this.productLineList = res.data
|
// // this.productLineList = res.data
|
||||||
})
|
// // })
|
||||||
this.$axios.get(
|
// this.$axios.get(
|
||||||
'base/quality-inspection-record/dayStatistics',
|
// 'base/quality-inspection-record/dayStatistics',
|
||||||
'get',
|
// 'get',
|
||||||
).then((res) => {
|
// ).then((res) => {
|
||||||
// console.log('11111', res);
|
// // console.log('11111', res);
|
||||||
let processArr = qualityMonthList.map((item, index) => [
|
// let processArr = qualityMonthList.map((item, index) => [
|
||||||
// console.log(item)
|
// // console.log(item)
|
||||||
`<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''}
|
// `<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''}
|
||||||
</span>`,
|
// </span>`,
|
||||||
// formatDate(item.planStartTime) || '',
|
// // formatDate(item.planStartTime) || '',
|
||||||
`
|
// `
|
||||||
<span style="color:rgba(255,255,255,0.5)" >${item.productionLineName || ''}
|
// <span style="color:rgba(255,255,255,0.5)" >${item.productionLineName || ''}
|
||||||
</span>`,
|
// </span>`,
|
||||||
`<span style="color:rgba(255,255,255,0.5)">${item.sectionName || ''}</span>`,
|
// `<span style="color:rgba(255,255,255,0.5)">${item.sectionName || ''}</span>`,
|
||||||
`<span style="color:rgba(255,255,255,0.5)">${item.count || ''}</span>`,
|
// `<span style="color:rgba(255,255,255,0.5)">${item.count || ''}</span>`,
|
||||||
`<span style="color:rgba(255,255,255,0.5)">${item.inspectionTypeName || ''}</span>`,
|
// `<span style="color:rgba(255,255,255,0.5)">${item.inspectionTypeName || ''}</span>`,
|
||||||
])
|
// ])
|
||||||
this.processConfig.data = processArr
|
// this.processConfig.data = processArr
|
||||||
this.$refs['processScrollBoard'].updateRows(processArr)
|
// this.$refs['processScrollBoard'].updateRows(processArr)
|
||||||
// if (res.data.length !==0) {
|
// // if (res.data.length !==0) {
|
||||||
// let processArr = res.data.map((item, index) => [
|
// // let processArr = res.data.map((item, index) => [
|
||||||
// // console.log(item)
|
// // // console.log(item)
|
||||||
// `<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''}
|
// // `<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''}
|
||||||
// </span>`,
|
// // </span>`,
|
||||||
// // formatDate(item.planStartTime) || '',
|
// // // formatDate(item.planStartTime) || '',
|
||||||
// `
|
// // `
|
||||||
// <span style="color:rgba(255,255,255,0.5)" >${item.productionLineName || ''}
|
// // <span style="color:rgba(255,255,255,0.5)" >${item.productionLineName || ''}
|
||||||
// </span>`,
|
// // </span>`,
|
||||||
// `<span style="color:rgba(255,255,255,0.5)">${item.sectionName || ''}</span>`,
|
// // `<span style="color:rgba(255,255,255,0.5)">${item.sectionName || ''}</span>`,
|
||||||
// `<span style="color:rgba(255,255,255,0.5)">${item.count || ''}</span>`,
|
// // `<span style="color:rgba(255,255,255,0.5)">${item.count || ''}</span>`,
|
||||||
// `<span style="color:rgba(255,255,255,0.5)">${item.inspectionTypeName || ''}</span>`,
|
// // `<span style="color:rgba(255,255,255,0.5)">${item.inspectionTypeName || ''}</span>`,
|
||||||
// ])
|
// // ])
|
||||||
// this.processConfig.data = processArr
|
// // this.processConfig.data = processArr
|
||||||
// this.$refs['processScrollBoard'].updateRows(processArr)
|
// // this.$refs['processScrollBoard'].updateRows(processArr)
|
||||||
// }
|
// // }
|
||||||
})
|
// })
|
||||||
},
|
// },
|
||||||
getTimes() {
|
getTimes() {
|
||||||
setInterval(this.getTimesInterval, 1000);
|
setInterval(this.getTimesInterval, 1000);
|
||||||
},
|
},
|
||||||
@ -837,24 +837,25 @@ export default {
|
|||||||
this.$refs['eqScrollBoard'].updateRows(eqArr)
|
this.$refs['eqScrollBoard'].updateRows(eqArr)
|
||||||
// console.log(SJGWsData.orderList)
|
// console.log(SJGWsData.orderList)
|
||||||
} else if (this.SJGWsData.type === 'productline') {
|
} else if (this.SJGWsData.type === 'productline') {
|
||||||
|
console.log('aaaaaaaaaaaaaaaaaaa', this.SJGWsData);
|
||||||
// console.log(this.wsData.detData);
|
// console.log(this.wsData.detData);
|
||||||
let nameList = []
|
let nameList = []
|
||||||
let passRateList = []
|
let passRateList = []
|
||||||
let outputNumList = []
|
let outputNumList = []
|
||||||
|
|
||||||
// console.log('2222222222', this.productLineList);
|
// console.log('2222222222', this.productLineList);
|
||||||
this.productLineList.forEach((item) => {
|
// this.productLineList.forEach((item) => {
|
||||||
this.SJGWsData.detData.forEach((ele) => {
|
this.SJGWsData.detData.forEach((ele) => {
|
||||||
if (item.id == ele.productionLineId) {
|
// if (item.id == ele.productionLineId) {
|
||||||
if (item.name.substr(0, 1) == "D") {
|
// if (item.name.substr(0, 1) == "D") {
|
||||||
console.log(ele)
|
// console.log(ele)
|
||||||
nameList.push(item.name)
|
nameList.push(ele.lineName)
|
||||||
outputNumList.push(ele.outputNum)
|
outputNumList.push(ele.outputNum)
|
||||||
passRateList.push(ele.passRate)
|
passRateList.push(ele.passRate)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
})
|
})
|
||||||
})
|
// })
|
||||||
// progressRateList = EnergyNameList
|
// progressRateList = EnergyNameList
|
||||||
// let EnergyDataList = []
|
// let EnergyDataList = []
|
||||||
// this.SJGWsData.detData.forEach((ele) => {
|
// this.SJGWsData.detData.forEach((ele) => {
|
||||||
@ -864,7 +865,22 @@ export default {
|
|||||||
// console.log(this.EnergyMonitoringNameList)
|
// console.log(this.EnergyMonitoringNameList)
|
||||||
// console.log(this.EnergyMonitoringList)
|
// console.log(this.EnergyMonitoringList)
|
||||||
// this.$nextTick(() => {
|
// this.$nextTick(() => {
|
||||||
this.$refs.productLineChart.initChart(Array.from(new Set(nameList)), passRateList, outputNumList)
|
this.$refs.productLineChart.initChart(nameList, passRateList, outputNumList)
|
||||||
|
} else if (this.SJGInitWebSocket === 'inspection') {
|
||||||
|
let processArr = qualityMonthList.map((item, index) => [
|
||||||
|
// console.log(item)
|
||||||
|
`<span style="color:rgba(255,255,255,0.5)" >${index + 1 || ''}
|
||||||
|
</span>`,
|
||||||
|
// formatDate(item.planStartTime) || '',
|
||||||
|
`
|
||||||
|
<span style="color:rgba(255,255,255,0.5)" >${item.productionLineName || ''}
|
||||||
|
</span>`,
|
||||||
|
`<span style="color:rgba(255,255,255,0.5)">${item.sectionName || ''}</span>`,
|
||||||
|
`<span style="color:rgba(255,255,255,0.5)">${item.count || ''}</span>`,
|
||||||
|
`<span style="color:rgba(255,255,255,0.5)">${item.inspectionTypeName || ''}</span>`,
|
||||||
|
])
|
||||||
|
this.processConfig.data = processArr
|
||||||
|
this.$refs['processScrollBoard'].updateRows(processArr)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 数据发送
|
// 数据发送
|
||||||
|
@ -111,6 +111,7 @@ export default {
|
|||||||
startPlaceholder: '开始时间',
|
startPlaceholder: '开始时间',
|
||||||
endPlaceholder: '结束时间',
|
endPlaceholder: '结束时间',
|
||||||
param: 'searchTime',
|
param: 'searchTime',
|
||||||
|
defaultSelect: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
@ -132,6 +133,14 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
created() {
|
created() {
|
||||||
|
const end = new Date();
|
||||||
|
const start = new Date();
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
||||||
|
this.formConfig[2].defaultSelect = [start, end];
|
||||||
|
this.listQuery.reportTime = [
|
||||||
|
moment(start).startOf('day').format('x'),
|
||||||
|
moment(end).endOf('day').format('x'),
|
||||||
|
];
|
||||||
getEnergyTypeListAll().then((response) => {
|
getEnergyTypeListAll().then((response) => {
|
||||||
this.formConfig[1].selectOptions = response.data;
|
this.formConfig[1].selectOptions = response.data;
|
||||||
});
|
});
|
||||||
|
@ -110,6 +110,7 @@ export default {
|
|||||||
startPlaceholder: '开始时间',
|
startPlaceholder: '开始时间',
|
||||||
endPlaceholder: '结束时间',
|
endPlaceholder: '结束时间',
|
||||||
param: 'searchTime',
|
param: 'searchTime',
|
||||||
|
defaultSelect: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
@ -131,6 +132,14 @@ export default {
|
|||||||
},
|
},
|
||||||
components: {},
|
components: {},
|
||||||
created() {
|
created() {
|
||||||
|
const end = new Date();
|
||||||
|
const start = new Date();
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
|
||||||
|
this.formConfig[2].defaultSelect = [start, end];
|
||||||
|
this.listQuery.times = [
|
||||||
|
moment(start).startOf('day').format('x'),
|
||||||
|
moment(end).endOf('day').format('x'),
|
||||||
|
];
|
||||||
getHotMaterialList().then((response) => {
|
getHotMaterialList().then((response) => {
|
||||||
this.formConfig[1].selectOptions = response.data;
|
this.formConfig[1].selectOptions = response.data;
|
||||||
});
|
});
|
||||||
|
@ -112,7 +112,7 @@ export default class GanttGraph {
|
|||||||
// top: 12 + 128 * this.gridIndex,
|
// top: 12 + 128 * this.gridIndex,
|
||||||
top: 12 + 104 * this.gridIndex,
|
top: 12 + 104 * this.gridIndex,
|
||||||
right: 48,
|
right: 48,
|
||||||
left: 88,
|
left: 183,
|
||||||
height: 56
|
height: 56
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -119,7 +119,7 @@ export default {
|
|||||||
selectOptions: [],
|
selectOptions: [],
|
||||||
param: 'lineId',
|
param: 'lineId',
|
||||||
onchange: true,
|
onchange: true,
|
||||||
filterable: true
|
filterable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'select',
|
type: 'select',
|
||||||
@ -127,7 +127,7 @@ export default {
|
|||||||
placeholder: '请选择工段',
|
placeholder: '请选择工段',
|
||||||
selectOptions: [],
|
selectOptions: [],
|
||||||
param: 'sectionId',
|
param: 'sectionId',
|
||||||
filterable: true
|
filterable: true,
|
||||||
},
|
},
|
||||||
// 时间段
|
// 时间段
|
||||||
{
|
{
|
||||||
@ -171,26 +171,26 @@ export default {
|
|||||||
eqList: [],
|
eqList: [],
|
||||||
startTime: null,
|
startTime: null,
|
||||||
gantt: null,
|
gantt: null,
|
||||||
// demo: [
|
demo: [
|
||||||
// [
|
[
|
||||||
// {
|
{
|
||||||
// equipmentName: '下片机',
|
equipmentName: '一大线四区2小线清洗机',
|
||||||
// duration: 30,
|
duration: 30,
|
||||||
// relativeDuration: 0.6,
|
relativeDuration: 0.6,
|
||||||
// status: 0,
|
status: 0,
|
||||||
// startPos: 0,
|
startPos: 0,
|
||||||
// startTime: 1691568181000,
|
startTime: 1711073203686,
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// equipmentName: '下片机',
|
equipmentName: '一大线四区2小线清洗机',
|
||||||
// duration: 20,
|
duration: 20,
|
||||||
// relativeDuration: 0.4,
|
relativeDuration: 0.4,
|
||||||
// status: 2,
|
status: 2,
|
||||||
// startPos: 30,
|
startPos: 30,
|
||||||
// startTime: 1691569981000
|
startTime: 1711072203686,
|
||||||
// },
|
},
|
||||||
// ],
|
],
|
||||||
// ],
|
],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
@ -258,7 +258,11 @@ export default {
|
|||||||
this.existingEquipments = Object.values(data).map(
|
this.existingEquipments = Object.values(data).map(
|
||||||
(eq) => eq[0].equipmentId
|
(eq) => eq[0].equipmentId
|
||||||
);
|
);
|
||||||
this.graphList = this.objectToArray(data);
|
// this.graphList = this.objectToArray(data);
|
||||||
|
this.graphList = this.demo.map(item => {
|
||||||
|
item.key = item[0].equipmentName;
|
||||||
|
return item;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-12-08 13:46:17
|
* @Date: 2023-12-08 13:46:17
|
||||||
* @LastEditTime: 2024-03-15 14:54:38
|
* @LastEditTime: 2024-03-21 10:40:52
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<el-drawer :visible.sync="visible" :show-close="true" :wrapper-closable="false" class="drawer" size="50%">
|
<el-drawer :visible.sync="visible" :show-close="true" :wrapper-closable="true" class="drawer" size="50%">
|
||||||
<small-title slot="title" :no-padding="true" @close="handleClose">
|
<small-title slot="title" :no-padding="true" @close="handleClose">
|
||||||
{{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }}
|
{{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }}
|
||||||
</small-title>
|
</small-title>
|
||||||
@ -114,7 +114,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="原料等级" prop="materialGrade">
|
<el-form-item label="原料等级" prop="materialGrade">
|
||||||
<el-select :disabled="isdetail" v-model="dataForm.materialGrade" placeholder="请选择" style="width: 100%;">
|
<el-select :disabled="isdetail" v-model="dataForm.materialGrade" placeholder="请选择">
|
||||||
<el-option v-for="item in gradeList" :key="item.value" :label="item.label" :value="item.value">
|
<el-option v-for="item in gradeList" :key="item.value" :label="item.label" :value="item.value">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -122,14 +122,14 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input :disabled="isdetail" v-model="dataForm.remark" placeholder="请填写备注" style="width: 100%;">
|
<el-input @input="onInput" :disabled="isdetail" v-model="dataForm.remark" placeholder="请填写备注">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<!-- </div> -->
|
<!-- </div> -->
|
||||||
<div class="attr-list" v-if="idAttrShow">
|
<!-- <div class="attr-list" v-if="idAttrShow"> -->
|
||||||
<!-- <small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true">
|
<!-- <small-title style="margin: 16px 0; padding-left: 8px" :no-padding="true">
|
||||||
设备物料明细
|
设备物料明细
|
||||||
</small-title>
|
</small-title>
|
||||||
|
|
||||||
@ -147,9 +147,9 @@
|
|||||||
</base-table>
|
</base-table>
|
||||||
<pagination v-show="listQuery.total > 0" :total="listQuery.total" :page.sync="listQuery.pageNo"
|
<pagination v-show="listQuery.total > 0" :total="listQuery.total" :page.sync="listQuery.pageNo"
|
||||||
:limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" /> -->
|
:limit.sync="listQuery.pageSize" :page-sizes="[5, 10, 15]" @pagination="getList" /> -->
|
||||||
</div>
|
<!-- </div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="drawer-body__footer">
|
<div v-if="!isdetail" class="drawer-body__footer">
|
||||||
<el-button style="" @click="goback()">取消</el-button>
|
<el-button style="" @click="goback()">取消</el-button>
|
||||||
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
<el-button type="primary" @click="dataFormSubmit()">确定</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -237,7 +237,7 @@ export default {
|
|||||||
checkValueList: [],
|
checkValueList: [],
|
||||||
checkResult: '',
|
checkResult: '',
|
||||||
materialGrade: undefined,
|
materialGrade: undefined,
|
||||||
remark:null,
|
remark:undefined,
|
||||||
},
|
},
|
||||||
productAttrList: [],
|
productAttrList: [],
|
||||||
visible: false,
|
visible: false,
|
||||||
@ -257,6 +257,9 @@ export default {
|
|||||||
mounted() {
|
mounted() {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
onInput() {
|
||||||
|
this.$forceUpdate();
|
||||||
|
},
|
||||||
judgeValue(val, minValue, maxValue, index) {
|
judgeValue(val, minValue, maxValue, index) {
|
||||||
if (val >= minValue && val <= maxValue) {
|
if (val >= minValue && val <= maxValue) {
|
||||||
console.log(val)
|
console.log(val)
|
||||||
@ -268,7 +271,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.ingredientList = undefined
|
this.ingredientList = []
|
||||||
console.log(222222222);
|
console.log(222222222);
|
||||||
},
|
},
|
||||||
dataFormSubmit() {
|
dataFormSubmit() {
|
||||||
@ -454,17 +457,17 @@ export default {
|
|||||||
// });
|
// });
|
||||||
// },
|
// },
|
||||||
init(id, isdetail) {
|
init(id, isdetail) {
|
||||||
this.initData()
|
// this.initData()
|
||||||
this.getDict()
|
this.getDict()
|
||||||
this.ingredientList = []
|
this.ingredientList = []
|
||||||
this.isdetail = isdetail || false;
|
this.isdetail = isdetail || false;
|
||||||
this.dataForm.id = id || undefined;
|
this.dataForm.id = id || undefined;
|
||||||
this.visible = true;
|
this.visible = true;
|
||||||
if (id) {
|
// if (id) {
|
||||||
this.idAttrShow = true
|
// this.idAttrShow = true
|
||||||
} else {
|
// } else {
|
||||||
this.idAttrShow = false
|
// this.idAttrShow = false
|
||||||
}
|
// }
|
||||||
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs['dataForm'].resetFields();
|
this.$refs['dataForm'].resetFields();
|
||||||
@ -537,9 +540,9 @@ export default {
|
|||||||
// 获取产品属性列表
|
// 获取产品属性列表
|
||||||
// this.getList();
|
// this.getList();
|
||||||
} else {
|
} else {
|
||||||
if (this.urlOptions.isGetCode) {
|
// if (this.urlOptions.isGetCode) {
|
||||||
this.getCode()
|
// this.getCode()
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@ -553,12 +556,12 @@ export default {
|
|||||||
this.isdetail = false;
|
this.isdetail = false;
|
||||||
},
|
},
|
||||||
// 新增 / 修改
|
// 新增 / 修改
|
||||||
addNew(id) {
|
// addNew(id) {
|
||||||
this.addOrUpdateVisible = true;
|
// this.addOrUpdateVisible = true;
|
||||||
this.$nextTick(() => {
|
// this.$nextTick(() => {
|
||||||
this.$refs.addOrUpdate.init(id,this.dataForm.id);
|
// this.$refs.addOrUpdate.init(id,this.dataForm.id);
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -118,6 +118,7 @@ export default {
|
|||||||
labelField: 'name',
|
labelField: 'name',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
param: 'materialId',
|
param: 'materialId',
|
||||||
|
filterable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'datePicker',
|
type: 'datePicker',
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
<!-- </span> -->
|
<!-- </span> -->
|
||||||
<el-tabs style="margin-top: 10px;" v-model="activeName" type="card" @tab-click="handleClick">
|
<el-tabs style="margin-top: 10px;" v-model="activeName" type="card" @tab-click="handleClick">
|
||||||
<el-tab-pane label="天" name="day">
|
<el-tab-pane label="天" name="day">
|
||||||
<div id="mapDayMain" style="height: 500px;width: 1000px;"></div>
|
<div id="mapDayMain" style="margin-bottom: 30px;height: 500px;width: 1000px;"></div>
|
||||||
<div id="listDayMain" style="height: 500px;width: 1000px;"></div>
|
<div id="listDayMain" style="height: 500px;width: 1000px;"></div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="周" name="week">
|
<el-tab-pane label="周" name="week">
|
||||||
@ -232,18 +232,23 @@ export default {
|
|||||||
var option;
|
var option;
|
||||||
option = {
|
option = {
|
||||||
title: {
|
title: {
|
||||||
text: '各类型缺陷对比图'
|
text: '各类型缺陷对比图',
|
||||||
|
// top:'5px'
|
||||||
},
|
},
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis'
|
trigger: 'axis'
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
data: mapLegendData
|
data: mapLegendData,
|
||||||
|
top: "10%",
|
||||||
|
y: 'top',
|
||||||
|
x:'left'
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
left: '3%',
|
left: '3%',
|
||||||
right: '4%',
|
right: '4%',
|
||||||
bottom: '3%',
|
bottom: '3%',
|
||||||
|
top:'20%',
|
||||||
containLabel: true
|
containLabel: true
|
||||||
},
|
},
|
||||||
// toolbox: {
|
// toolbox: {
|
||||||
@ -299,7 +304,7 @@ export default {
|
|||||||
trigger: 'axis'
|
trigger: 'axis'
|
||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
data: ['缺陷数量', '缺陷率']
|
data: ['缺陷数量', '缺陷率'],
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
left: '3%',
|
left: '3%',
|
||||||
@ -345,15 +350,15 @@ export default {
|
|||||||
type: 'bar',
|
type: 'bar',
|
||||||
barWidth: '3%',
|
barWidth: '3%',
|
||||||
data: listNumArr,
|
data: listNumArr,
|
||||||
label: {
|
// label: {
|
||||||
show: true, //开启显示
|
// show: true, //开启显示
|
||||||
position: 'top', //在上方显示
|
// position: 'top', //在上方显示
|
||||||
// formatter: '{c}%',//显示百分号
|
// // formatter: '{c}%',//显示百分号
|
||||||
textStyle: { //数值样式
|
// textStyle: { //数值样式
|
||||||
color: 'black',//字体颜色
|
// color: 'black',//字体颜色
|
||||||
fontSize: 20//字体大小
|
// fontSize: 12//字体大小
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '缺陷率',
|
name: '缺陷率',
|
||||||
@ -464,6 +469,7 @@ export default {
|
|||||||
this.queryParams.endTime = val.checkTime ? val.checkTime[1] : undefined
|
this.queryParams.endTime = val.checkTime ? val.checkTime[1] : undefined
|
||||||
|
|
||||||
this.getList()
|
this.getList()
|
||||||
|
this.getData()
|
||||||
}
|
}
|
||||||
console.log(val);
|
console.log(val);
|
||||||
}
|
}
|
||||||
|
@ -101,6 +101,7 @@ export default {
|
|||||||
label: '报废原因',
|
label: '报废原因',
|
||||||
placeholder: '报废原因',
|
placeholder: '报废原因',
|
||||||
param: 'content',
|
param: 'content',
|
||||||
|
// filterable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'select',
|
type: 'select',
|
||||||
@ -109,6 +110,7 @@ export default {
|
|||||||
labelField: 'name',
|
labelField: 'name',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
param: 'typeId',
|
param: 'typeId',
|
||||||
|
filterable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
|
@ -107,6 +107,7 @@ export default {
|
|||||||
labelField: 'name',
|
labelField: 'name',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
param: 'workOrderId',
|
param: 'workOrderId',
|
||||||
|
filterable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'select',
|
type: 'select',
|
||||||
@ -115,6 +116,7 @@ export default {
|
|||||||
labelField: 'name',
|
labelField: 'name',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
param: 'teamId',
|
param: 'teamId',
|
||||||
|
filterable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
|
@ -17,10 +17,10 @@
|
|||||||
@mouseleave="factoryListOpen = false">
|
@mouseleave="factoryListOpen = false">
|
||||||
{{ currentFactory?.label || '点我选择设备' }}
|
{{ currentFactory?.label || '点我选择设备' }}
|
||||||
<div class="factory-list__wrapper" :class="{ open: factoryListOpen }">
|
<div class="factory-list__wrapper" :class="{ open: factoryListOpen }">
|
||||||
<ul class="factory-list" v-if="sidebarContent.length" @click.prevent="factoryChangeHandler">
|
<ul class="factory-list" v-if="sidebarContent.length" @click.capture="factoryChangeHandler">
|
||||||
<li v-for="fc in sidebarContent" :key="fc.id" :data-value="fc.id" class="factory-list__item"
|
<li v-for="fc in sidebarContent" :key="fc.id" class="factory-list__item"
|
||||||
:class="{ 'is-current': fc.id == currentFactory?.id }">
|
:class="{ 'is-current': fc.id == currentFactory?.id }">
|
||||||
<span>
|
<span :data-value="fc.id">
|
||||||
{{ fc.label }}
|
{{ fc.label }}
|
||||||
</span>
|
</span>
|
||||||
<svg-icon v-if="fc.id == currentFactory?.id" icon-class="Confirm" style="height: 14px; width: 14px" />
|
<svg-icon v-if="fc.id == currentFactory?.id" icon-class="Confirm" style="height: 14px; width: 14px" />
|
||||||
@ -95,12 +95,12 @@ export default {
|
|||||||
factoryListOpen: false,
|
factoryListOpen: false,
|
||||||
currentFactory: null,
|
currentFactory: null,
|
||||||
factoryList: [
|
factoryList: [
|
||||||
{ name: '1', value: 1 },
|
// { name: '1', value: 1 },
|
||||||
{ name: '2', value: 2 },
|
// { name: '2', value: 2 },
|
||||||
{ name: '3', value: 3 },
|
// { name: '3', value: 3 },
|
||||||
{ name: '4', value: 4 },
|
// { name: '4', value: 4 },
|
||||||
{ name: '5', value: 5 },
|
// { name: '5', value: 5 },
|
||||||
{ name: '6', value: 6 },
|
// { name: '6', value: 6 },
|
||||||
],
|
],
|
||||||
sidebarContent: [
|
sidebarContent: [
|
||||||
// {
|
// {
|
||||||
@ -486,14 +486,12 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
async getTree(id) {
|
async getTree(id) {
|
||||||
getTreeData({id:id}).then((res) => {
|
const res = await getTreeData({ id: id })
|
||||||
console.log(res.data);
|
console.log(res.data)
|
||||||
this.sidebarContent = res.data;
|
this.buildTree(res.data);
|
||||||
this.buildTree(res.data);
|
this.sidebarContent = res.data;
|
||||||
console.log('tree', this.sidebarContent);
|
console.log('tree', this.sidebarContent)
|
||||||
// console.log(this.formConfig[0].selectOptions);
|
console.log(this.sidebarContent);
|
||||||
// this.listQuery.total = response.data.total;
|
|
||||||
})
|
|
||||||
// const { data } = await this.$axios('/base/core-factory/getTreeByWorkOrder');
|
// const { data } = await this.$axios('/base/core-factory/getTreeByWorkOrder');
|
||||||
// console.log(data)
|
// console.log(data)
|
||||||
|
|
||||||
@ -504,10 +502,13 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
factoryChangeHandler(event) {
|
factoryChangeHandler(event) {
|
||||||
this.factoryListOpen = false;
|
this.currentFactory =undefined
|
||||||
|
this.factoryListOpen = false
|
||||||
|
console.log(event.target.dataset);
|
||||||
const fcId = event.target.dataset.value;
|
const fcId = event.target.dataset.value;
|
||||||
this.handleSidebarItemClick({ id: fcId, type: '工厂' });
|
this.handleSidebarItemClick({ id: fcId, type: '工厂' });
|
||||||
this.currentFactory = this.sidebarContent.find((item) => item.id == fcId);
|
this.currentFactory = this.sidebarContent.find((item) => item.id == fcId)
|
||||||
|
console.log(this.currentFactory);
|
||||||
},
|
},
|
||||||
|
|
||||||
handleSidebarItemClick({ label, id, type }) {
|
handleSidebarItemClick({ label, id, type }) {
|
||||||
|
@ -6,83 +6,60 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container allow-overflow">
|
<div class="app-container allow-overflow">
|
||||||
<!-- 搜索工作栏 -->
|
<!-- 搜索工作栏 -->
|
||||||
<SearchBar
|
<SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="handleSearchBarBtnClick" />
|
||||||
:formConfigs="searchBarFormConfig"
|
|
||||||
ref="search-bar"
|
|
||||||
@headBtnClick="handleSearchBarBtnClick" />
|
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col class="custom-tabs">
|
<el-col class="custom-tabs">
|
||||||
<el-tabs
|
<el-tabs v-model="activeName" :stretch="true" @tab-click="handleTabClick">
|
||||||
v-model="activeName"
|
<el-tab-pane :label="'\u2002数据列表\u2002'" name="table">
|
||||||
:stretch="true"
|
<!-- 列表 -->
|
||||||
@tab-click="handleTabClick">
|
<base-table class="base-table__margin" :table-props="tableProps" :page="1" :limit="10" :max-height="tableH"
|
||||||
<el-tab-pane :label="'\u2002数据列表\u2002'" name="table">
|
:table-data="list" @emitFun="handleEmitFun"></base-table>
|
||||||
<!-- 列表 -->
|
</el-tab-pane>
|
||||||
<base-table
|
<el-tab-pane :label="'\u3000可视化\u3000'" name="graph" style="overflow: inherit">
|
||||||
class="base-table__margin"
|
<div v-if="activeName == 'graph'" class="graph" style="
|
||||||
:table-props="tableProps"
|
|
||||||
:page="1"
|
|
||||||
:limit="10"
|
|
||||||
:table-data="list"
|
|
||||||
@emitFun="handleEmitFun"></base-table>
|
|
||||||
</el-tab-pane>
|
|
||||||
<el-tab-pane
|
|
||||||
:label="'\u3000可视化\u3000'"
|
|
||||||
name="graph"
|
|
||||||
style="overflow: inherit">
|
|
||||||
<div
|
|
||||||
v-if="activeName == 'graph'"
|
|
||||||
class="graph"
|
|
||||||
style="
|
|
||||||
overflow: inherit;
|
overflow: inherit;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
position: relative;
|
position: relative;
|
||||||
">
|
">
|
||||||
<div class="blue-title">各设备加工数量</div>
|
<div class="blue-title">各设备加工数量</div>
|
||||||
<div class="legend">
|
<div class="legend">
|
||||||
<div class="legend-item">
|
<div class="legend-item">
|
||||||
<span class="icon blue"></span>
|
<span class="icon blue"></span>
|
||||||
<span class="text">工作时长</span>
|
<span class="text">工作时长</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="legend-item">
|
<div class="legend-item">
|
||||||
<span class="icon green"></span>
|
<span class="icon green"></span>
|
||||||
<span class="text">停机时长</span>
|
<span class="text">停机时长</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="legend-item">
|
<div class="legend-item">
|
||||||
<span class="icon purple"></span>
|
<span class="icon purple"></span>
|
||||||
<span class="text">故障时长</span>
|
<span class="text">故障时长</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="legend-item">
|
<div class="legend-item">
|
||||||
<span class="icon yellow"></span>
|
<span class="icon yellow"></span>
|
||||||
<span class="text">速度开动率</span>
|
<span class="text">速度开动率</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="graph-grid">
|
<div class="graph-grid">
|
||||||
<div class="bg-grid grid-line">
|
<div class="bg-grid grid-line">
|
||||||
<div
|
<div class="grid-item" v-for="item in list.length" :key="item"></div>
|
||||||
class="grid-item"
|
</div>
|
||||||
v-for="item in list.length"
|
|
||||||
:key="item"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="bg-grid grid-charts">
|
<div class="bg-grid grid-charts">
|
||||||
<pie-chart
|
<pie-chart v-for="item in list" :key="item.id" :value="item" />
|
||||||
v-for="item in list"
|
<!-- <pie-chart v-for="item in 5" :key="item" :value="item" /> -->
|
||||||
:key="item.id"
|
</div>
|
||||||
:value="item" />
|
</div>
|
||||||
<!-- <pie-chart v-for="item in 5" :key="item" :value="item" /> -->
|
</div>
|
||||||
</div>
|
</el-tab-pane>
|
||||||
</div>
|
</el-tabs>
|
||||||
</div>
|
</el-col>
|
||||||
</el-tab-pane>
|
</el-row>
|
||||||
</el-tabs>
|
</div>
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -116,7 +93,8 @@ export default {
|
|||||||
// btnName: '删除',
|
// btnName: '删除',
|
||||||
// }
|
// }
|
||||||
// : undefined,
|
// : undefined,
|
||||||
// ].filter((v) => v),
|
// ].filter((v) => v),
|
||||||
|
tableH: this.tableHeight(260),
|
||||||
tableProps: [
|
tableProps: [
|
||||||
{ prop: 'factoryName', label: '工厂' },
|
{ prop: 'factoryName', label: '工厂' },
|
||||||
{ prop: 'lineName', label: '产线' },
|
{ prop: 'lineName', label: '产线' },
|
||||||
@ -331,7 +309,10 @@ export default {
|
|||||||
list: [],
|
list: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
window.addEventListener('resize', () => {
|
||||||
|
this.tableH = this.tableHeight(260)
|
||||||
|
})
|
||||||
this.getWorkOrder()
|
this.getWorkOrder()
|
||||||
// this.getLine();
|
// this.getLine();
|
||||||
this.getList();
|
this.getList();
|
||||||
|
@ -2,13 +2,14 @@
|
|||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2023-08-01 14:55:51
|
* @Date: 2023-08-01 14:55:51
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @LastEditTime: 2023-12-01 16:41:40
|
* @LastEditTime: 2024-03-21 15:14:04
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
|
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
|
||||||
<base-table :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize" :table-data="list">
|
<base-table :max-height="tableH" :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize"
|
||||||
|
:table-data="list">
|
||||||
<!-- <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
|
<!-- <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
|
||||||
@clickBtn="handleClick" /> -->
|
@clickBtn="handleClick" /> -->
|
||||||
</base-table>
|
</base-table>
|
||||||
@ -81,6 +82,7 @@ export default {
|
|||||||
// // exportURL: exportPackingExcel,
|
// // exportURL: exportPackingExcel,
|
||||||
// },
|
// },
|
||||||
tableProps,
|
tableProps,
|
||||||
|
tableH: this.tableHeight(260),
|
||||||
tableBtn: [
|
tableBtn: [
|
||||||
this.$auth.hasPermi(`base:packaging-print-log:update`)
|
this.$auth.hasPermi(`base:packaging-print-log:update`)
|
||||||
? {
|
? {
|
||||||
@ -172,6 +174,9 @@ export default {
|
|||||||
// AddOrUpdate,
|
// AddOrUpdate,
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
window.addEventListener('resize', () => {
|
||||||
|
this.tableH = this.tableHeight(260)
|
||||||
|
})
|
||||||
this.getList()
|
this.getList()
|
||||||
this.getDict()
|
this.getDict()
|
||||||
},
|
},
|
||||||
|
@ -2,13 +2,14 @@
|
|||||||
* @Author: zwq
|
* @Author: zwq
|
||||||
* @Date: 2023-08-01 14:55:51
|
* @Date: 2023-08-01 14:55:51
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @LastEditTime: 2024-03-01 10:27:29
|
* @LastEditTime: 2024-03-21 15:17:05
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
|
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" />
|
||||||
<base-table :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize" :table-data="list">
|
<base-table :max-height="tableH" :table-props="tableProps" :page="listQuery.pageNo" :limit="listQuery.pageSize"
|
||||||
|
:table-data="list">
|
||||||
<!-- <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
|
<!-- <method-btn v-if="tableBtn.length" slot="handleBtn" :width="120" label="操作" :method-list="tableBtn"
|
||||||
@clickBtn="handleClick" /> -->
|
@clickBtn="handleClick" /> -->
|
||||||
</base-table>
|
</base-table>
|
||||||
@ -118,6 +119,7 @@ export default {
|
|||||||
startTime: undefined,
|
startTime: undefined,
|
||||||
endTime:undefined,
|
endTime:undefined,
|
||||||
},
|
},
|
||||||
|
tableH: this.tableHeight(260),
|
||||||
formConfig: [
|
formConfig: [
|
||||||
{
|
{
|
||||||
type: 'select',
|
type: 'select',
|
||||||
@ -125,7 +127,8 @@ export default {
|
|||||||
selectOptions: [],
|
selectOptions: [],
|
||||||
labelField: 'name',
|
labelField: 'name',
|
||||||
valueField: 'name',
|
valueField: 'name',
|
||||||
param: 'workOrderName'
|
param: 'workOrderName',
|
||||||
|
filterable: true
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// type: 'datePicker',
|
// type: 'datePicker',
|
||||||
@ -181,6 +184,9 @@ export default {
|
|||||||
// AddOrUpdate,
|
// AddOrUpdate,
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
window.addEventListener('resize', () => {
|
||||||
|
this.tableH = this.tableHeight(260)
|
||||||
|
})
|
||||||
this.getList()
|
this.getList()
|
||||||
this.getDict()
|
this.getDict()
|
||||||
},
|
},
|
||||||
|
@ -74,14 +74,16 @@ export default {
|
|||||||
multiple: true,
|
multiple: true,
|
||||||
labelField: 'name',
|
labelField: 'name',
|
||||||
valueField: 'id',
|
valueField: 'id',
|
||||||
defaultSelect: []
|
defaultSelect: [],
|
||||||
|
filterable: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'select',
|
type: 'select',
|
||||||
label: '产品',
|
label: '产品',
|
||||||
placeholder: '请选择产品',
|
placeholder: '请选择产品',
|
||||||
param: 'productionId',
|
param: 'productionId',
|
||||||
selectOptions: [],
|
selectOptions: [],
|
||||||
|
filterable: true
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// type: 'input',
|
// type: 'input',
|
||||||
|
Loading…
Reference in New Issue
Block a user