Reviewed-on: http://git.picaiba.com/mt-fe-group/yudao-dev/pulls/45pull/47/head
@@ -1,7 +1,7 @@ | |||
### | |||
# @Author: Do not edit | |||
# @Date: 2023-08-29 09:40:39 | |||
# @LastEditTime: 2023-09-18 10:44:07 | |||
# @LastEditTime: 2023-10-16 09:22:52 | |||
# @LastEditors: DY | |||
# @Description: | |||
### | |||
@@ -12,9 +12,9 @@ ENV = 'development' | |||
VUE_APP_TITLE = 产线监控系统 | |||
# 芋道管理系统/开发环境 | |||
VUE_APP_BASE_API = 'http://192.168.1.49:48080' | |||
# VUE_APP_BASE_API = 'http://192.168.1.49:48080' | |||
# VUE_APP_BASE_API = 'http://192.168.1.8:48080' | |||
# VUE_APP_BASE_API = 'http://192.168.0.33:48080' | |||
VUE_APP_BASE_API = 'http://192.168.0.33:48080' | |||
# VUE_APP_BASE_API = 'http://192.168.1.188:48080' | |||
# 路由懒加载 | |||
@@ -1,7 +1,7 @@ | |||
<!-- | |||
* @Author: zhp | |||
* @Date: 2023-09-13 09:02:25 | |||
* @LastEditTime: 2023-10-08 15:39:38 | |||
* @LastEditTime: 2023-10-16 14:56:58 | |||
* @LastEditors: DY | |||
* @Description: | |||
--> | |||
@@ -1,8 +1,12 @@ | |||
<template> | |||
<div class="app-container"> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | |||
<base-table v-loading="dataListLoading" :span-method="mergeColumnHandler" :table-props="tableProps" :table-data="tableData" /> | |||
<balance-chart ref="lineChart" /> | |||
<div v-if="tableData.length"> | |||
<base-table v-loading="dataListLoading" :span-method="mergeColumnHandler" :table-props="tableProps" :table-data="tableData" /> | |||
<SearchBar :formConfigs="[{ label: '产线平衡分析图', type: 'title' }]" /> | |||
<balance-chart ref="lineChart" /> | |||
</div> | |||
<div v-else class="no-data-bg"></div> | |||
<!-- <pagination | |||
:limit.sync="listQuery.pageSize" | |||
:page.sync="listQuery.pageNo" | |||
@@ -89,7 +93,7 @@ export default { | |||
}, | |||
{ | |||
type: 'button', | |||
btnName: '搜索', | |||
btnName: '查询', | |||
name: 'search', | |||
color: 'primary', | |||
} | |||
@@ -1,8 +1,12 @@ | |||
<template> | |||
<div class="app-container"> | |||
<search-bar :formConfigs="formConfig" ref="searchBarForm" @headBtnClick="buttonClick" /> | |||
<base-table v-loading="dataListLoading" :table-props="tableProps" :table-data="tableData" /> | |||
<line-chart ref="lineChart" /> | |||
<div v-if="tableData.length"> | |||
<base-table v-loading="dataListLoading" :table-props="tableProps" :table-data="tableData" /> | |||
<SearchBar :formConfigs="[{ label: '产品产量对比图', type: 'title' }]" /> | |||
<line-chart ref="lineChart" /> | |||
</div> | |||
<div v-else class="no-data-bg"></div> | |||
<!-- <pagination | |||
:limit.sync="listQuery.pageSize" | |||
:page.sync="listQuery.pageNo" | |||
@@ -82,7 +86,7 @@ export default { | |||
}, | |||
{ | |||
type: 'button', | |||
btnName: '搜索', | |||
btnName: '查询', | |||
name: 'search', | |||
color: 'primary', | |||
} | |||
@@ -101,6 +105,8 @@ export default { | |||
this.optionArrUrl.forEach((item, index) => { | |||
item(params).then((response) => { | |||
this.formConfig[index].selectOptions = response.data.list | |||
// this.formConfig[0].defaultSelect = response.data.list[0].id | |||
this.$set(this.formConfig[0], 'defaultSelect', response.data.list[0].id) | |||
}); | |||
}); | |||
}, | |||
@@ -112,11 +118,13 @@ export default { | |||
let arr = [ | |||
{ | |||
prop: 'lineName', | |||
label: '产线' | |||
label: '产线', | |||
fixed: 'left' | |||
}, | |||
{ | |||
prop: 'sum', | |||
label: '合计' | |||
label: '合计', | |||
fixed: 'left' | |||
}, | |||
{ | |||
prop: res.data ? res.data.nameData[0].name : undefined, | |||
@@ -1,8 +1,8 @@ | |||
<!-- | |||
* @Author: zwq | |||
* @Date: 2021-11-18 14:16:25 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2023-08-01 16:59:06 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2023-10-16 11:16:48 | |||
* @Description: | |||
--> | |||
<template> | |||
@@ -12,21 +12,30 @@ | |||
ref="dataForm" | |||
@keyup.enter.native="dataFormSubmit()" | |||
label-width="80px"> | |||
<el-form-item label="工厂编码" prop="code"> | |||
<el-input | |||
v-model="dataForm.code" | |||
clearable | |||
placeholder="请输入工厂编码" /> | |||
</el-form-item> | |||
<el-form-item label="工厂名称" prop="name"> | |||
<el-input | |||
v-model="dataForm.name" | |||
clearable | |||
placeholder="请输入工厂名称" /> | |||
</el-form-item> | |||
<el-form-item label="地址" prop="address"> | |||
<el-input v-model="dataForm.address" clearable placeholder="请输入地址" /> | |||
</el-form-item> | |||
<el-row :gutter="20"> | |||
<el-col :span="12"> | |||
<el-form-item label="工厂编码" prop="code"> | |||
<el-input | |||
v-model="dataForm.code" | |||
clearable | |||
placeholder="请输入工厂编码" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item label="工厂名称" prop="name"> | |||
<el-input | |||
v-model="dataForm.name" | |||
clearable | |||
placeholder="请输入工厂名称" /> | |||
</el-form-item> | |||
</el-col> | |||
</el-row> | |||
<el-row :gutter="20"> | |||
<el-col :span="12"> | |||
<el-form-item label="地址" prop="address"> | |||
<el-input v-model="dataForm.address" clearable placeholder="请输入地址" /> | |||
</el-form-item> | |||
</el-col> | |||
<!-- <el-form-item label="启用状态" prop="enabled"> | |||
<el-select | |||
v-model="dataForm.enabled" | |||
@@ -38,9 +47,12 @@ | |||
:value="dict.value" /> | |||
</el-select> | |||
</el-form-item> --> | |||
<el-form-item label="备注" prop="remark"> | |||
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" /> | |||
</el-form-item> | |||
<el-col :span="12"> | |||
<el-form-item label="备注" prop="remark"> | |||
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" /> | |||
</el-form-item> | |||
</el-col> | |||
</el-row> | |||
</el-form> | |||
</template> | |||
@@ -29,7 +29,7 @@ | |||
@cancel="handleCancel" | |||
@confirm="handleConfirm" | |||
:before-close="handleCancel" | |||
width="70%"> | |||
width="50%"> | |||
<add-or-update | |||
ref="addOrUpdate" | |||
@refreshDataList="successSubmit"></add-or-update> | |||
@@ -28,24 +28,20 @@ import { getProductPage } from '@/api/core/base/product'; | |||
const tableProps = [ | |||
{ | |||
prop: 'productionLineName', | |||
label: '产线', | |||
align: 'center', | |||
label: '产线' | |||
}, | |||
{ | |||
prop: 'productName', | |||
label: '在制产品', | |||
align: 'center', | |||
label: '在制产品' | |||
}, | |||
{ | |||
prop: 'startTime', | |||
label: '开始时间', | |||
align: 'center', | |||
filter: parseTime, | |||
}, | |||
{ | |||
prop: 'endTime', | |||
label: '结束时间', | |||
align: 'center', | |||
filter: parseTime, | |||
}, | |||
]; | |||
@@ -2,7 +2,7 @@ | |||
* @Author: zwq | |||
* @Date: 2023-08-01 13:52:10 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2023-09-21 10:48:54 | |||
* @LastEditTime: 2023-10-16 13:40:00 | |||
* @Description: | |||
--> | |||
<template> | |||
@@ -12,33 +12,45 @@ | |||
ref="dataForm" | |||
@keyup.enter.native="dataFormSubmit()" | |||
label-width="90px"> | |||
<el-form-item label="工段编码" prop="code"> | |||
<el-input | |||
v-model="dataForm.code" | |||
clearable | |||
placeholder="请输入工段编码" /> | |||
</el-form-item> | |||
<el-form-item label="工段名称" prop="name"> | |||
<el-input | |||
v-model="dataForm.name" | |||
clearable | |||
placeholder="请输入工段名称" /> | |||
</el-form-item> | |||
<el-form-item prop="productionLineId" label="产线"> | |||
<el-select | |||
v-model="dataForm.productionLineId" filterable clearable placeholder="请选择产线"> | |||
<el-option | |||
v-for="item in urlOptions.optionArr.arr0" | |||
:key="item.id" | |||
:label="item.name" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</el-form-item> | |||
<el-form-item label="排序" prop="sort"> | |||
<el-input-number v-model="dataForm.sort" :min="1" :max="100" clearable placeholder="请输入排序" /> | |||
</el-form-item> | |||
<el-row :gutter="20"> | |||
<el-col :span="12"> | |||
<el-form-item label="工段编码" prop="code"> | |||
<el-input | |||
v-model="dataForm.code" | |||
clearable | |||
placeholder="请输入工段编码" /> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item label="工段名称" prop="name"> | |||
<el-input | |||
v-model="dataForm.name" | |||
clearable | |||
placeholder="请输入工段名称" /> | |||
</el-form-item> | |||
</el-col> | |||
</el-row> | |||
<el-row :gutter="20"> | |||
<el-col :span="12"> | |||
<el-form-item prop="productionLineId" label="产线"> | |||
<el-select | |||
v-model="dataForm.productionLineId" filterable clearable placeholder="请选择产线"> | |||
<el-option | |||
v-for="item in urlOptions.optionArr.arr0" | |||
:key="item.id" | |||
:label="item.name" | |||
:value="item.id" | |||
> | |||
</el-option> | |||
</el-select> | |||
</el-form-item> | |||
</el-col> | |||
<el-col :span="12"> | |||
<el-form-item label="排序" prop="sort"> | |||
<el-input-number v-model="dataForm.sort" :min="1" :max="100" clearable placeholder="请输入排序" /> | |||
</el-form-item> | |||
</el-col> | |||
</el-row> | |||
<el-form-item label="备注" prop="remark"> | |||
<el-input v-model="dataForm.remark" clearable placeholder="请输入备注" /> | |||
</el-form-item> | |||
@@ -29,7 +29,7 @@ | |||
@cancel="handleCancel" | |||
@confirm="handleConfirm" | |||
:before-close="handleCancel" | |||
width="70%"> | |||
width="50%"> | |||
<add-or-update | |||
ref="addOrUpdate" | |||
@refreshDataList="successSubmit"></add-or-update> | |||
@@ -50,34 +50,28 @@ import { | |||
const tableProps = [ | |||
{ | |||
prop: 'code', | |||
label: '工段编码', | |||
align: 'center', | |||
label: '工段编码' | |||
}, | |||
{ | |||
prop: 'name', | |||
label: '工段名称', | |||
align: 'center', | |||
label: '工段名称' | |||
}, | |||
{ | |||
prop: 'productionLineName', | |||
label: '产线', | |||
align: 'center', | |||
label: '产线' | |||
}, | |||
{ | |||
prop: 'sort', | |||
label: '排序', | |||
align: 'center', | |||
label: '排序' | |||
}, | |||
{ | |||
prop: 'remark', | |||
label: '备注', | |||
align: 'center', | |||
label: '备注' | |||
}, | |||
{ | |||
prop: 'createTime', | |||
label: '创建时间', | |||
align: 'center', | |||
filter: parseTime, | |||
filter: parseTime | |||
}, | |||
]; | |||
@@ -119,14 +113,14 @@ export default { | |||
name: 'search', | |||
color: 'primary', | |||
}, | |||
{ | |||
type: 'separate', | |||
}, | |||
{ | |||
type: 'button', | |||
btnName: '重置', | |||
name: 'reset', | |||
}, | |||
// { | |||
// type: 'separate', | |||
// }, | |||
// { | |||
// type: 'button', | |||
// btnName: '重置', | |||
// name: 'reset', | |||
// }, | |||
{ | |||
type: 'separate', | |||
}, | |||
@@ -1,7 +1,7 @@ | |||
<!-- | |||
* @Author: Do not edit | |||
* @Date: 2023-08-29 14:59:29 | |||
* @LastEditTime: 2023-10-13 11:03:11 | |||
* @LastEditTime: 2023-10-16 15:10:42 | |||
* @LastEditors: DY | |||
* @Description: | |||
--> | |||
@@ -12,6 +12,7 @@ | |||
ref="searchBarForm" | |||
@headBtnClick="buttonClick" /> | |||
<base-table | |||
v-if="showData.length" | |||
class="right-aside" | |||
v-loading="dataListLoading" | |||
:table-props="tableProps" | |||
@@ -22,6 +23,7 @@ | |||
@selection-change="selectChange" | |||
> | |||
</base-table> | |||
<div v-else class="no-data-bg"></div> | |||
<pagination | |||
:limit.sync="listQuery.pageSize" | |||
:page.sync="listQuery.pageNo" | |||
@@ -195,7 +197,8 @@ export default { | |||
type: 'button', | |||
btnName: '导出', | |||
name: 'export', | |||
color: 'warning', | |||
color: 'primary', | |||
plain: true | |||
} | |||
], | |||
}; | |||
@@ -1,7 +1,7 @@ | |||
<!-- | |||
* @Author: Do not edit | |||
* @Date: 2023-08-29 14:59:29 | |||
* @LastEditTime: 2023-10-13 11:00:59 | |||
* @LastEditTime: 2023-10-16 15:18:23 | |||
* @LastEditors: DY | |||
* @Description: | |||
--> | |||
@@ -12,6 +12,7 @@ | |||
ref="searchBarForm" | |||
@headBtnClick="buttonClick" /> | |||
<base-table | |||
v-if="showData.length" | |||
class="right-aside" | |||
v-loading="dataListLoading" | |||
:table-props="tableProps" | |||
@@ -29,6 +30,7 @@ | |||
:method-list="tableBtn" | |||
@clickBtn="handleClick" /> | |||
</base-table> | |||
<div v-else class="no-data-bg"></div> | |||
<pagination | |||
:limit.sync="listQuery.pageSize" | |||
:page.sync="listQuery.pageNo" | |||
@@ -145,7 +147,8 @@ export default { | |||
type: 'button', | |||
btnName: '导出', | |||
name: 'export', | |||
color: 'warning', | |||
color: 'primary', | |||
plain: true | |||
} | |||
], | |||
}; | |||
@@ -11,13 +11,14 @@ | |||
ref="search-bar" /> | |||
<el-skeleton v-if="initing" :rows="6" animated /> | |||
<!-- :span-method="mergeColumnHandler" --> | |||
<div v-else :class="{ 'no-data-bg': !tableData || tableData.length == 0 }"> | |||
<base-table | |||
v-else | |||
v-if="tableData && tableData.length > 0" | |||
:table-props="tableProps" | |||
:table-data="tableData" | |||
@emitFun="handleEmitFun"></base-table> | |||
<!-- :page="queryParams.pageNo" | |||
:limit="queryParams.pageSize" --> | |||
@emitFun="handleEmitFun" | |||
/> | |||
</div> | |||
</div> | |||
</template> | |||
@@ -65,10 +66,10 @@ export default { | |||
label: times.slice(0, 10) + ' ' + times.slice(11), | |||
align: 'center', | |||
children: [ | |||
{ prop: times + '_in', label: '投入数量', align: 'center' }, | |||
{ prop: times + '_out', label: '产出数量', align: 'center' }, | |||
{ prop: times + '_junk', label: '报废数量', align: 'center' }, | |||
{ prop: times + '_area', label: '产出面积', align: 'center' } | |||
{ prop: times + '_in', label: '投入数量' }, | |||
{ prop: times + '_out', label: '产出数量' }, | |||
{ prop: times + '_junk', label: '报废数量' }, | |||
{ prop: times + '_area', label: '产出面积' } | |||
] | |||
} | |||
this.arr.push(subprop) | |||
@@ -149,14 +150,14 @@ export default { | |||
{ | |||
prop: 'proLineName', | |||
label: '生产线', | |||
align: 'center', | |||
fixed: 'left' | |||
fixed: 'left', | |||
showOverflowTooltip: true | |||
}, | |||
{ | |||
prop: 'spec', | |||
label: '产品规格', | |||
align: 'center', | |||
fixed: 'left' | |||
fixed: 'left', | |||
showOverflowTooltip: true | |||
} | |||
] | |||
this.buildProps(res.data.nameData); | |||
@@ -1,7 +1,7 @@ | |||
<!-- | |||
* @Author: Do not edit | |||
* @Date: 2023-08-29 14:59:29 | |||
* @LastEditTime: 2023-10-13 11:03:43 | |||
* @LastEditTime: 2023-10-16 15:19:04 | |||
* @LastEditors: DY | |||
* @Description: | |||
--> | |||
@@ -13,6 +13,7 @@ | |||
ref="searchBarForm" | |||
@headBtnClick="buttonClick" /> | |||
<base-table | |||
v-if="showData.length" | |||
class="right-aside" | |||
v-loading="dataListLoading" | |||
:table-props="tableProps" | |||
@@ -30,6 +31,7 @@ | |||
:method-list="tableBtn" | |||
@clickBtn="handleClick" /> | |||
</base-table> | |||
<div v-else class="no-data-bg"></div> | |||
<pagination | |||
:limit.sync="listQuery.pageSize" | |||
:page.sync="listQuery.pageNo" | |||
@@ -188,7 +190,8 @@ export default { | |||
type: 'button', | |||
btnName: '导出', | |||
name: 'export', | |||
color: 'warning', | |||
color: 'primary', | |||
plain: true | |||
} | |||
], | |||
}; | |||
@@ -6,13 +6,17 @@ | |||
@select-changed="handleSearchBarChanged" | |||
@headBtnClick="buttonClick" /> | |||
<base-table | |||
v-if="showData.length" | |||
class="right-aside" | |||
v-loading="dataListLoading" | |||
:table-props="tableProps" | |||
:table-data="showData" | |||
:page="listQuery.pageNo" | |||
:limit="listQuery.pageSize" | |||
:selectWidth="55" | |||
:table-data="showData" | |||
@selection-change="selectChange" | |||
/> | |||
<div v-else class="no-data-bg"></div> | |||
<pagination | |||
:limit.sync="listQuery.pageSize" | |||
:page.sync="listQuery.pageNo" | |||
@@ -46,38 +50,31 @@ import html2canvas from 'html2canvas' | |||
const tableProps = [ | |||
{ | |||
prop: 'proLineName', | |||
label: '产线名称', | |||
align: 'center', | |||
label: '产线名称' | |||
}, | |||
{ | |||
prop: 'sectionName', | |||
label: '工段名称', | |||
align: 'center', | |||
label: '工段名称' | |||
}, | |||
{ | |||
prop: 'inputNum', | |||
label: '进片数量/片', | |||
align: 'center', | |||
label: '进片数量/片' | |||
}, | |||
{ | |||
prop: 'outputNum', | |||
label: '出片数量/片', | |||
align: 'center', | |||
label: '出片数量/片' | |||
}, | |||
{ | |||
prop: 'lossNum', | |||
label: '损耗数量/片', | |||
align: 'center', | |||
label: '损耗数量/片' | |||
}, | |||
{ | |||
prop: 'lossArea', | |||
label: '损耗面积/m²', | |||
align: 'center', | |||
label: '损耗面积/m²' | |||
}, | |||
{ | |||
prop: 'lossRate', | |||
label: '损耗比例/%', | |||
align: 'center', | |||
label: '损耗比例/%' | |||
} | |||
]; | |||
@@ -134,15 +131,20 @@ export default { | |||
}, | |||
{ | |||
type: 'button', | |||
btnName: '搜索', | |||
btnName: '查询', | |||
name: 'search', | |||
color: 'primary', | |||
}, | |||
{ | |||
type: 'separate', | |||
}, | |||
{ | |||
type: 'button', | |||
btnName: '导出', | |||
name: 'export', | |||
}, | |||
color: 'primary', | |||
plain: true | |||
} | |||
], | |||
}; | |||
}, | |||