projects/mesxc-zjl #177
13
.env.dev
13
.env.dev
@ -1,8 +1,8 @@
|
|||||||
###
|
###
|
||||||
# @Author: Do not edit
|
# @Author: Do not edit
|
||||||
# @Date: 2023-08-29 09:40:39
|
# @Date: 2023-08-29 09:40:39
|
||||||
# @LastEditTime: 2024-01-08 16:23:54
|
# @LastEditTime: 2024-01-09 16:27:57
|
||||||
# @LastEditors: DY
|
# @LastEditors: zhp
|
||||||
# @Description:
|
# @Description:
|
||||||
###
|
###
|
||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
@ -13,27 +13,24 @@ VUE_APP_TITLE = MES系统
|
|||||||
|
|
||||||
# 芋道管理系统/开发环境
|
# 芋道管理系统/开发环境
|
||||||
# VUE_APP_BASE_API = 'http://100.64.0.26:48082'
|
# VUE_APP_BASE_API = 'http://100.64.0.26:48082'
|
||||||
|
# VUE_APP_BASE_API = 'http://10.70.2.2:8080'
|
||||||
VUE_APP_BASE_API = 'http://192.168.0.33:48082'
|
VUE_APP_BASE_API = 'http://192.168.0.33:48082'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.101:8080'
|
|
||||||
# VUE_APP_BASE_API = 'http://192.168.4.173:48080'
|
# VUE_APP_BASE_API = 'http://192.168.4.173:48080'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
|
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.49:48082'
|
# VUE_APP_BASE_API = 'http://192.168.1.49:48082'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.8:48082'
|
# VUE_APP_BASE_API = 'http://192.168.1.8:48082'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.4.159:48080'
|
# VUE_APP_BASE_API = 'http://192.168.4.159:48080'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.104:48082'
|
# VUE_APP_BASE_API = 'http://192.168.1.104:48082'
|
||||||
|
# VUE_APP_BASE_API = 'http://192.168.0.33:48082'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.62:48082'
|
# VUE_APP_BASE_API = 'http://192.168.1.62:48082'
|
||||||
# VUE_APP_BASE_API = 'http://192.168.1.78:48082'
|
# VUE_APP_BASE_API = 'http://192.168.1.78:48082'
|
||||||
<<<<<<< HEAD
|
|
||||||
|
|
||||||
|
# VUE_APP_BASE_API = 'http://192.168.1.78:48082'
|
||||||
# dcs地址
|
# dcs地址
|
||||||
VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081'
|
VUE_APP_Socket_Dcs_API = 'ws://10.70.180.10:8081'
|
||||||
=======
|
|
||||||
>>>>>>> projects/mesxc-test
|
|
||||||
# socket地址
|
# socket地址
|
||||||
VUE_APP_Socket_API = 'ws://10.70.2.2:8080'
|
VUE_APP_Socket_API = 'ws://10.70.2.2:8080'
|
||||||
# VUE_APP_Socket_API = 'ws://192.168.0.33:48082'
|
# VUE_APP_Socket_API = 'ws://192.168.0.33:48082'
|
||||||
|
|
||||||
# 积木报表指向地址
|
# 积木报表指向地址
|
||||||
VUE_APP_JIMU_API = 'http://10.70.2.22:8080'
|
VUE_APP_JIMU_API = 'http://10.70.2.22:8080'
|
||||||
|
|
||||||
|
BIN
src/assets/img/high.png
Normal file
BIN
src/assets/img/high.png
Normal file
Binary file not shown.
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
BIN
src/assets/img/middle.png
Normal file
BIN
src/assets/img/middle.png
Normal file
Binary file not shown.
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
BIN
src/assets/img/short.png
Normal file
BIN
src/assets/img/short.png
Normal file
Binary file not shown.
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
@ -9,7 +9,7 @@ import store from './store';
|
|||||||
import router from './router';
|
import router from './router';
|
||||||
import directive from './directive'; // directive
|
import directive from './directive'; // directive
|
||||||
import plugins from './plugins'; // plugins
|
import plugins from './plugins'; // plugins
|
||||||
import { scrollBoard } from '@jiaminghi/data-view'
|
// import { scrollBoard } from '@jiaminghi/data-view'
|
||||||
|
|
||||||
import './assets/icons'; // icon
|
import './assets/icons'; // icon
|
||||||
import './permission'; // permission control
|
import './permission'; // permission control
|
||||||
@ -79,7 +79,7 @@ Vue.use(CodeBrickZj)
|
|||||||
Vue.use(directive);
|
Vue.use(directive);
|
||||||
Vue.use(plugins);
|
Vue.use(plugins);
|
||||||
Vue.use(VueMeta);
|
Vue.use(VueMeta);
|
||||||
Vue.use(scrollBoard)
|
// Vue.use(scrollBoard)
|
||||||
// Vue.use(hljs.vuePlugin);
|
// Vue.use(hljs.vuePlugin);
|
||||||
import scroll from 'vue-seamless-scroll'
|
import scroll from 'vue-seamless-scroll'
|
||||||
Vue.use(scroll)
|
Vue.use(scroll)
|
||||||
|
@ -62,7 +62,7 @@ export default {
|
|||||||
url,
|
url,
|
||||||
method,
|
method,
|
||||||
params: (method === 'get' || method === 'delete') ? payload : null,
|
params: (method === 'get' || method === 'delete') ? payload : null,
|
||||||
data: method !== 'get' ? payload : null,
|
data: (method === 'get' || method === 'delete') ? null : payload
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
put(payload) {
|
put(payload) {
|
||||||
|
@ -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: 2023-11-23 11:14:30
|
* @LastEditTime: 2024-01-08 16:07:58
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
@ -29,13 +29,13 @@
|
|||||||
<el-row class="container-main flex-col" type="flex">
|
<el-row class="container-main flex-col" type="flex">
|
||||||
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="15 * beilv" type="flex" class="flex-1">
|
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="15 * beilv" type="flex" class="flex-1">
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
||||||
<base-container :beilv="1" :title="'搬运任务'" :title-icon="'5_1'" :back="'energy'">
|
<base-container :beilv="1" :size="'middle'" :title="'搬运任务'" :title-icon="'5_1'" :back="'energy'">
|
||||||
<base-table1 :page="1" :limit="9" :show-index="false" :beilv="1" :table-config="qualityYearTableProps"
|
<base-table1 :page="1" :limit="999" :show-index="false" :beilv="1" :table-config="qualityYearTableProps"
|
||||||
:table-data="qualityYearList" />
|
:table-data="qualityYearList" />
|
||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
||||||
<base-container :beilv="1" :title="'周转进度'" :title-icon="'5_3'" :back="'energy'">
|
<base-container :beilv="1" :size="'middle'" :title="'周转进度'" :title-icon="'5_3'" :back="'energy'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
@ -85,16 +85,17 @@
|
|||||||
|
|
||||||
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="12 * beilv" type="flex" class="flex-1">
|
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="12 * beilv" type="flex" class="flex-1">
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
||||||
<base-container :beilv="1" :height="256" :title="'库存管理'" :title-icon="'5_5'" :back="'energy'">
|
<base-container :beilv="1" :height="256" :size="'middle'" :title="'库存管理'" :title-icon="'5_5'"
|
||||||
|
:back="'energy'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
<!-- <el-row :gutter="9 * beilv"> -->
|
<!-- <el-row :gutter="9 * beilv"> -->
|
||||||
<!-- <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="24"> -->
|
<!-- <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="24"> -->
|
||||||
<base-table :page="1" :limit="9" :show-index="false" :beilv="1" :table-config="inventoryTableProps"
|
<base-table :page="1" :limit="999" :show-index="false" :beilv="1" :table-config="inventoryTableProps"
|
||||||
:table-data="inventoryList" />
|
:table-data="inventoryList" />
|
||||||
<!-- </el-col> -->
|
<!-- </el-col> -->
|
||||||
<!-- <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
<!-- <el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
||||||
<base-table3
|
<base-table3
|
||||||
:page="2"
|
:page="2"
|
||||||
:limit="5"
|
:limit="5"
|
||||||
@ -107,12 +108,13 @@
|
|||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
||||||
<base-container :beilv="1" :height="318 + 338 + 16" :title="'库位信息'" :title-icon="'5_4'" :back="'energy'">
|
<base-container :beilv="1" :height="318 + 338 + 16" :size="'middle'" :title="'库位信息'" :title-icon="'5_4'"
|
||||||
|
:back="'energy'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
<!-- 像下面这样表格里的limit值,也许可以用js动态计算出来 -->
|
<!-- 像下面这样表格里的limit值,也许可以用js动态计算出来 -->
|
||||||
<base-table2 :page="1" :limit="9" :show-index="false" :beilv="1" :table-config="locationTableProps"
|
<base-table2 :page="1" :limit="999" :show-index="false" :beilv="1" :table-config="locationTableProps"
|
||||||
:table-data="locationList" />
|
:table-data="locationList" />
|
||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -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-01-04 16:41:17
|
* @LastEditTime: 2024-01-09 15:34:00
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
@ -29,14 +29,14 @@
|
|||||||
<el-row class="container-main flex-col" type="flex">
|
<el-row class="container-main flex-col" type="flex">
|
||||||
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="15" type="flex" class="flex-1">
|
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="15" type="flex" class="flex-1">
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8">
|
||||||
<base-container :title="'切割数据'" :title-icon="'eqAlarm'">
|
<base-container :title="'切割数据'" :size="'small'" :title-icon="'eqAlarm'">
|
||||||
<base-table1 :page="1" :limit="9" :show-index="false" :table-config="cutProps"
|
<base-table1 :page="1" :limit="999" :show-index="false" :table-config="cutProps"
|
||||||
:table-data="cutTableDataList" />
|
:table-data="cutTableDataList" />
|
||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8">
|
||||||
<base-container :title="'产量及良率统计'" :title-icon="'productLine'">
|
<base-container :title="'产量及良率统计'" :size="'small'" :title-icon="'energyMonitoring'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
@ -47,8 +47,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8">
|
||||||
<base-container :title="'ISRA 缺陷数据'" :title-icon="'eqMonitoring'">
|
<base-container :title="'ISRA 缺陷数据'" :size="'small'" :title-icon="'scrap'">
|
||||||
<base-table1 :page="1" :limit="9" :show-index="false" :table-config="ISRATableProps"
|
<base-table1 :page="1" :limit="999" :show-index="false" :table-config="ISRATableProps"
|
||||||
:table-data="ISRAList" />
|
:table-data="ISRAList" />
|
||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -56,7 +56,7 @@
|
|||||||
|
|
||||||
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="10" type="flex" class="flex-1">
|
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="10" type="flex" class="flex-1">
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
||||||
<base-container :height="256" :title="'废片 缺陷数据'" :title-icon="'energyMonitoring'">
|
<base-container :height="256" :title="'废片 缺陷数据'" :size="'middle'" :title-icon="'scrap'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
@ -78,24 +78,24 @@
|
|||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="14">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="14">
|
||||||
<base-container :height="318 + 338 + 16" :title="'设备状态监控'" :title-icon="'scrap'">
|
<base-container :height="318 + 338 + 16" :size="'middle'" :title="'设备状态监控'" :title-icon="'eqMonitoring'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
<!-- 像下面这样表格里的limit值,也许可以用js动态计算出来 -->
|
<!-- 像下面这样表格里的limit值,也许可以用js动态计算出来 -->
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<h4 style="margin: 5px 0 5px 0;">融化风机</h4>
|
<h4 style="margin: 5px 0 5px 0;">融化风机</h4>
|
||||||
<base-table1 :page="1" :limit="9" :show-index="false" :table-config="EqMonitoringPropsFun"
|
<base-table1 :page="1" :limit="999" :show-index="false" :table-config="EqMonitoringPropsFun"
|
||||||
:table-data="funList" />
|
:table-data="funList" />
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<h3 style="margin: 5px 0 5px 0;">退火风机</h3>
|
<h4 style="margin: 5px 0 5px 0;">退火风机</h4>
|
||||||
<base-table1 :page="1" :limit="9" :show-index="false" :table-config="EqMonitoringPropsFun"
|
<base-table1 :page="1" :limit="999" :show-index="false" :table-config="EqMonitoringPropsFun"
|
||||||
:table-data="annealFunList" />
|
:table-data="annealFunList" />
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" style="float: right;">
|
<el-col :span="12" style="float: right;">
|
||||||
<h3 style="margin: 5px 0 5px 0;">产线设备</h3>
|
<h4 style="margin: 5px 0 5px 0;">产线设备</h4>
|
||||||
<base-table1 :page="1" :limit="9" :show-index="false" :table-config="EqMonitoringProps"
|
<base-table1 :page="1" :limit="999" :show-index="false" :table-config="EqMonitoringProps"
|
||||||
:table-data="realEqList" />
|
:table-data="realEqList" />
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <double-y-chart :id="'doubleYChart'" :name-list="cxNameList" :data-list="cxDataList" :height="359"
|
<!-- <double-y-chart :id="'doubleYChart'" :name-list="cxNameList" :data-list="cxDataList" :height="359"
|
||||||
@ -133,6 +133,7 @@ import screenfull from 'screenfull'
|
|||||||
// import BaseVideo from './components/baseVideo.vue'
|
// import BaseVideo from './components/baseVideo.vue'
|
||||||
import alarmLevel from './components/alarmLevel'
|
import alarmLevel from './components/alarmLevel'
|
||||||
import pileBarChart from './components/pileBarChart'
|
import pileBarChart from './components/pileBarChart'
|
||||||
|
import colorDiv from './components/colorDiv'
|
||||||
|
|
||||||
// import axios from '@/utils/request'
|
// import axios from '@/utils/request'
|
||||||
import doubleYChart from './components/doubleYChart '
|
import doubleYChart from './components/doubleYChart '
|
||||||
@ -170,7 +171,10 @@ const cutProps = [
|
|||||||
{ prop: 'size', label: '规格' },
|
{ prop: 'size', label: '规格' },
|
||||||
{ prop: 'productArea', label: '良品面积', width: 80 },
|
{ prop: 'productArea', label: '良品面积', width: 80 },
|
||||||
{ prop: 'wasteArea', label: '废片面积', width: 80 },
|
{ prop: 'wasteArea', label: '废片面积', width: 80 },
|
||||||
{ prop: 'product', label: '良品率', width: 80 },
|
{
|
||||||
|
prop: 'product', label: '良品率', width: 80,
|
||||||
|
subcomponent: colorDiv,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
const cxNameList = ['周一', '周二', '周三', '周四', '周五']
|
const cxNameList = ['周一', '周二', '周三', '周四', '周五']
|
||||||
|
|
||||||
@ -527,8 +531,7 @@ export default {
|
|||||||
size: this.getSize(ele.size),
|
size: this.getSize(ele.size),
|
||||||
productArea: ele.productArea + '㎡',
|
productArea: ele.productArea + '㎡',
|
||||||
wasteArea: ele.wasteArea + '㎡',
|
wasteArea: ele.wasteArea + '㎡',
|
||||||
product: (ele.product * 100).toFixed(2) + '%'
|
product: (ele.product * 100).toFixed(2)
|
||||||
|
|
||||||
}
|
}
|
||||||
// }
|
// }
|
||||||
});
|
});
|
||||||
@ -665,7 +668,7 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
background: url('../../assets/img/OperationalOverview/title.png') no-repeat;
|
background: url('../../assets/img/OperationalOverview/title.png') no-repeat;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
color: #00fff0;
|
color: #ffffff;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
.unit {
|
.unit {
|
||||||
@ -683,7 +686,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.title-button {
|
.title-button {
|
||||||
color: #00fff0;
|
color: #ffffff;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
* @Author: gtz
|
* @Author: gtz
|
||||||
* @Date: 2022-01-19 15:58:17
|
* @Date: 2022-01-19 15:58:17
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @LastEditTime: 2024-01-04 16:16:22
|
* @LastEditTime: 2024-01-08 16:03:05
|
||||||
* @Description: file content
|
* @Description: file content
|
||||||
* @FilePath: \mt-bus-fe\src\views\OperationalOverview\components\baseContainer\index.vue
|
* @FilePath: \mt-bus-fe\src\views\OperationalOverview\components\baseContainer\index.vue
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
<div class="base-container" ref="baseContainer" :style="{ height: '100%', fontSize: 12 + 'px', padding: 12 + 'px' }"
|
<div class="base-container" ref="baseContainer" :style="{ height: '100%', fontSize: 12 + 'px', padding: 12 + 'px' }"
|
||||||
:class="{ 'no-padding': noPadding, 'border-none': !showLine }">
|
:class="[{ 'no-padding': noPadding, 'border-none': !showLine }, 'base-container__' + size]">
|
||||||
<!-- <div class="base-container" :style="{height: height + 'px', fontSize: 12 + 'px', padding: 12 + 'px'}"> -->
|
<!-- <div class="base-container" :style="{height: height + 'px', fontSize: 12 + 'px', padding: 12 + 'px'}"> -->
|
||||||
<template v-if="showLine">
|
<template v-if="showLine">
|
||||||
<div class="line" />
|
<div class="line" />
|
||||||
@ -74,6 +74,10 @@ export default {
|
|||||||
beilv: {
|
beilv: {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 1
|
default: 1
|
||||||
|
},
|
||||||
|
size: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -106,8 +110,25 @@ export default {
|
|||||||
// background-color: rgba($color: #061027, $alpha: 0.15);
|
// background-color: rgba($color: #061027, $alpha: 0.15);
|
||||||
position: relative;
|
position: relative;
|
||||||
// border: 2px solid;
|
// border: 2px solid;
|
||||||
background: url('../../../../assets/img/energy.png') no-repeat;
|
// background: url('../../../../assets/img/energy.png') no-repeat;
|
||||||
background-size: 100% 100%;
|
// background-size: 100% 100%;
|
||||||
|
&__small {
|
||||||
|
background: url(../../../../assets/img/short.png) no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
// background-position: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__middle {
|
||||||
|
background: url(../../../../assets/img/middle.png) no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
// background-position: 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__large {
|
||||||
|
background: url(../../../../assets/img/high.png) no-repeat;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
// background-position: 0 0;
|
||||||
|
}
|
||||||
// border-radius: 40px 0px 40px 0px;
|
// border-radius: 40px 0px 40px 0px;
|
||||||
// border-image: linear-gradient(360deg, rgba(157, 246, 254, 0.05), rgba(100, 233, 252, 0.9)) 2 2;
|
// border-image: linear-gradient(360deg, rgba(157, 246, 254, 0.05), rgba(100, 233, 252, 0.9)) 2 2;
|
||||||
// .line {
|
// .line {
|
||||||
@ -170,8 +191,8 @@ export default {
|
|||||||
|
|
||||||
.bar-title {
|
.bar-title {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
color: #52fff1;
|
color: #ffffff;
|
||||||
font-size: 1.5em;
|
font-size: 1.6em;
|
||||||
padding: 0.67em;
|
padding: 0.67em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,26 +1,23 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Date: 2020-12-14 09:07:03
|
* @Date: 2020-12-14 09:07:03
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @LastEditTime: 2024-01-04 16:16:00
|
* @LastEditTime: 2024-01-08 14:09:05
|
||||||
* @FilePath: \mt-bus-fe\src\views\OperationalOverview\components\baseTable.vue
|
* @FilePath: \mt-bus-fe\src\views\OperationalOverview\components\baseTable.vue
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
|
||||||
<div class="visual-base-table-container scroll_table">
|
<div class="visual-base-table-container scroll_table">
|
||||||
<div style="display: inline-block; width: 100%">
|
<div style="display: inline-block; width: 100%">
|
||||||
<el-table class="top" v-loading="isLoading"
|
<el-table class="top" v-loading="isLoading"
|
||||||
:header-cell-style="{background:'rgba(4, 74, 132, .19)',color:'#fff',}" :row-style="setRowStyle"
|
:header-cell-style="{ background: 'rgba(32, 55, 96, 1)', color: '#fff', height: '33px', }"
|
||||||
:data="renderData" border style="width: 100%; background: transparent">
|
:row-style="setRowStyle" :data="renderData" border style="width: 100%; background: transparent">
|
||||||
<el-table-column prop="_pageIndex" label="序号" :width="50" align="center" />
|
<el-table-column prop="_pageIndex" label="序号" :width="50" align="center" />
|
||||||
<el-table-column v-for="item in renderTableHeadList" :key="item.prop" :show-overflow-tooltip="showOverflow"
|
<el-table-column v-for="item in renderTableHeadList" :key="item.prop" :show-overflow-tooltip="showOverflow"
|
||||||
v-bind="item">
|
v-bind="item">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
||||||
<component :is="item.subcomponent" v-if="item.subcomponent" :inject-data="{...scope.row, ...item}"
|
<component :is="item.subcomponent" v-if="item.subcomponent" :inject-data="{...scope.row, ...item}"
|
||||||
@emitData="emitData" />
|
@emitData="emitData" />
|
||||||
<span v-else>{{ scope.row[item.prop] | commonFilter(item.filter) }}</span>
|
<span v-else>{{ scope.row[item.prop] | commonFilter(item.filter) }}</span>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<slot name="content" />
|
<slot name="content" />
|
||||||
@ -33,11 +30,9 @@
|
|||||||
<el-table-column v-for="item in renderTableHeadList" :key="item.prop" :show-overflow-tooltip="showOverflow"
|
<el-table-column v-for="item in renderTableHeadList" :key="item.prop" :show-overflow-tooltip="showOverflow"
|
||||||
v-bind="item">
|
v-bind="item">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
||||||
<component :is="item.subcomponent" v-if="item.subcomponent" :inject-data="{...scope.row, ...item}"
|
<component :is="item.subcomponent" v-if="item.subcomponent" :inject-data="{...scope.row, ...item}"
|
||||||
@emitData="emitData" />
|
@emitData="emitData" />
|
||||||
<span v-else>{{ scope.row[item.prop] | commonFilter(item.filter) }}</span>
|
<span v-else>{{ scope.row[item.prop] | commonFilter(item.filter) }}</span>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<slot name="content" />
|
<slot name="content" />
|
||||||
@ -45,7 +40,6 @@
|
|||||||
</vue-seamless-scroll>
|
</vue-seamless-scroll>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { isObject, isString } from 'lodash'
|
import { isObject, isString } from 'lodash'
|
||||||
|
44
src/views/OperationalOverview/components/colorDiv.vue
Normal file
44
src/views/OperationalOverview/components/colorDiv.vue
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<!--
|
||||||
|
* @Date: 2021-02-20 10:45:21
|
||||||
|
* @LastEditors: zhp
|
||||||
|
* @LastEditTime: 2024-01-09 16:16:43
|
||||||
|
* @FilePath: \basic-admin\src\views\EquipmentManager\TypeParamSetting\ColorSqua.vue
|
||||||
|
* @Description:
|
||||||
|
-->
|
||||||
|
<template>
|
||||||
|
<span :class="[injectData.product <= 91 ? 'orange' : 'white']" >
|
||||||
|
{{ injectData.product + "%" }}
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
injectData: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
color: 'rgba(255,255,255,0.5)',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.product = this.injectData.product
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
emitClick() {
|
||||||
|
console.log(this.injectData)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.orange{
|
||||||
|
color:rgba(255, 209, 96, 1)
|
||||||
|
}
|
||||||
|
.white{
|
||||||
|
color:rgba(255, 255, 255, 0.5)
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-09-21 09:06:28
|
* @Date: 2023-09-21 09:06:28
|
||||||
* @LastEditTime: 2023-12-29 16:18:17
|
* @LastEditTime: 2024-01-09 14:42:02
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
@ -88,11 +88,21 @@ export default {
|
|||||||
name: '产线产量',
|
name: '产线产量',
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
yAxisIndex: 1,
|
yAxisIndex: 1,
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
normal: {
|
||||||
{ offset: 0, color: '#9DD5FF' },
|
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
|
||||||
{ offset: 1, color: '#1295FF' }
|
{ offset: 0, color: '#9DD5FF' },
|
||||||
])
|
{ offset: 0.3, color: '#1295FF' }
|
||||||
|
]),
|
||||||
|
label: {
|
||||||
|
show: true, //开启显示
|
||||||
|
position: 'top', //在上方显示
|
||||||
|
textStyle: { //数值样式
|
||||||
|
color: '#ced1d5',
|
||||||
|
fontSize: 12
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
// barBorderRadius: this.borderRadius
|
// barBorderRadius: this.borderRadius
|
||||||
},
|
},
|
||||||
barWidth: 12,
|
barWidth: 12,
|
||||||
@ -100,6 +110,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '产线良品率',
|
name: '产线良品率',
|
||||||
|
symbol: 'circle', //变为实心圆
|
||||||
type: 'line',
|
type: 'line',
|
||||||
yAxisIndex: 0,
|
yAxisIndex: 0,
|
||||||
areaStyle: {
|
areaStyle: {
|
||||||
@ -126,10 +137,10 @@ export default {
|
|||||||
data: passRateList
|
data: passRateList
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
const colors = ['#5470C6', '#91CC75', '#EE6666']
|
// const colors = ['#5470C6', '#91CC75', '#EE6666']
|
||||||
this.chart = echarts.init(document.getElementById(this.id))
|
this.chart = echarts.init(document.getElementById(this.id))
|
||||||
this.chart.setOption({
|
this.chart.setOption({
|
||||||
color: colors,
|
// color: colors,
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
@ -137,8 +148,8 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
left: "4%",
|
left: "3%",
|
||||||
right: "4%",
|
right: "5%",
|
||||||
bottom: "3%",
|
bottom: "3%",
|
||||||
width: 'auto',
|
width: 'auto',
|
||||||
height: "auto",
|
height: "auto",
|
||||||
@ -187,11 +198,13 @@ export default {
|
|||||||
type: 'value',
|
type: 'value',
|
||||||
name: '良品率/%',
|
name: '良品率/%',
|
||||||
nameTextStyle: {// y轴上方单位的颜色
|
nameTextStyle: {// y轴上方单位的颜色
|
||||||
color: '#fff'
|
color: '#fff',
|
||||||
|
align: "left",
|
||||||
},
|
},
|
||||||
position: 'right',
|
position: 'right',
|
||||||
alignTicks: true,
|
alignTicks: true,
|
||||||
axisLine: {
|
axisLine: {
|
||||||
|
show: true,
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
type: 'solid',
|
type: 'solid',
|
||||||
color: '#213259', // 左边线的颜色
|
color: '#213259', // 左边线的颜色
|
||||||
@ -227,12 +240,15 @@ export default {
|
|||||||
scale: true,
|
scale: true,
|
||||||
type: 'value',
|
type: 'value',
|
||||||
name: '产量/㎡', // y轴上方的单位
|
name: '产量/㎡', // y轴上方的单位
|
||||||
nameTextStyle: {// y轴上方单位的颜色
|
nameTextStyle: {
|
||||||
color: '#fff'
|
color: "#fff",
|
||||||
|
// fontSize: 10,
|
||||||
|
align: "right",
|
||||||
},
|
},
|
||||||
position: 'left',
|
position: 'left',
|
||||||
alignTicks: true,
|
alignTicks: true,
|
||||||
axisLine: {
|
axisLine: {
|
||||||
|
show: true,
|
||||||
lineStyle: {
|
lineStyle: {
|
||||||
type: 'solid',
|
type: 'solid',
|
||||||
color: '#213259', // 左边线的颜色
|
color: '#213259', // 左边线的颜色
|
||||||
|
@ -142,6 +142,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
axisLabel: {
|
axisLabel: {
|
||||||
|
show: true, // 是否显示 y 轴
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: 'rgba(255,255,255,0.5)' // 坐标值得具体的颜色
|
color: 'rgba(255,255,255,0.5)' // 坐标值得具体的颜色
|
||||||
}
|
}
|
||||||
|
@ -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-01-04 15:52:52
|
* @LastEditTime: 2024-01-08 16:06:49
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
@ -29,21 +29,21 @@
|
|||||||
<el-row class="container-main flex-col" type="flex">
|
<el-row class="container-main flex-col" type="flex">
|
||||||
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="15" type="flex" class="flex-1" style="height: 50%;">
|
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="15" type="flex" class="flex-1" style="height: 50%;">
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%">
|
||||||
<base-container :title="'设备报警'" :height="318" :title-icon="'eqAlarm'">
|
<base-container :title="'设备报警'" :size="'small'" :height="318" :title-icon="'eqAlarm'">
|
||||||
<base-table1 :page="1" :limit="9" :show-index="false" :table-config="qualityYearTableProps"
|
<base-table1 :page="1" :limit="999" :show-index="false" :table-config="qualityYearTableProps"
|
||||||
:table-data="equipmentList" />
|
:table-data="equipmentList" />
|
||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%">
|
||||||
<base-container :title="'各工序缺陷汇总'" :title-icon="'scrap'">
|
<base-container :title="'各工序缺陷汇总'" :size="'small'" :title-icon="'scrap'">
|
||||||
<base-table1 :page="1" :limit="9" :show-index="false" :table-config="qualityMonthTableProps"
|
<base-table1 :page="1" :limit="999" :show-index="false" :table-config="qualityMonthTableProps"
|
||||||
:table-data="qualityMonthList" />
|
:table-data="qualityMonthList" />
|
||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="8" height="100%">
|
||||||
<base-container :height="318" :title="'工单监控'" :title-icon="'eqMonitoring'">
|
<base-container :height="318" :size="'small'" :title="'工单监控'" :title-icon="'eqMonitoring'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
@ -95,7 +95,7 @@
|
|||||||
|
|
||||||
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="12" type="flex" class="flex-1">
|
<el-row :style="{ padding: '0 ' + 9 + 'px' }" :gutter="12" type="flex" class="flex-1">
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
||||||
<base-container :height="256" :title="'能源监控'" :title-icon="'energyMonitoring'">
|
<base-container :height="256" :size="'middle'" :title="'能源监控'" :title-icon="'energyMonitoring'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
@ -117,7 +117,7 @@
|
|||||||
</base-container>
|
</base-container>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
<el-col :style="{ margin: 8 + 'px' + ' 0' }" :span="12">
|
||||||
<base-container :height="318 + 338 + 16" :title="'产线产量及良品率'" :title-icon="'productLine'">
|
<base-container :height="318 + 338 + 16" :size="'middle'" :title="'产线产量及良品率'" :title-icon="'productLine'">
|
||||||
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
<!-- <div style="width: 45%;position: absolute; top: 3em; right: 3em;">
|
||||||
<top-radio-group />
|
<top-radio-group />
|
||||||
</div> -->
|
</div> -->
|
||||||
|
266
src/views/base/coreEquipmentLineBind/dialogForm.vue
Normal file
266
src/views/base/coreEquipmentLineBind/dialogForm.vue
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
<!--
|
||||||
|
filename: dialogForm.vue
|
||||||
|
author: liubin
|
||||||
|
date: 2023-09-11 15:55:13
|
||||||
|
description: DialogForm for equipmentBindSection only
|
||||||
|
-->
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<el-form
|
||||||
|
ref="form"
|
||||||
|
:model="dataForm"
|
||||||
|
label-width="128px"
|
||||||
|
v-loading="formLoading">
|
||||||
|
<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
|
||||||
|
clearable
|
||||||
|
@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="workshopSectionId"
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: '工段不能为空', trigger: 'blur' },
|
||||||
|
]">
|
||||||
|
<el-select
|
||||||
|
v-model="dataForm.workshopSectionId"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
placeholder="请选择工段"
|
||||||
|
@change="$emit('update', dataForm)">
|
||||||
|
<el-option
|
||||||
|
v-for="opt in worksectionList"
|
||||||
|
:key="opt.value"
|
||||||
|
:label="opt.label"
|
||||||
|
:value="opt.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item
|
||||||
|
label="设备"
|
||||||
|
prop="equipmentId"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: '设备不能为空', trigger: 'blur' },
|
||||||
|
]">
|
||||||
|
<el-select
|
||||||
|
v-model="dataForm.equipmentId"
|
||||||
|
filterable
|
||||||
|
placeholder="请选择设备"
|
||||||
|
@change="$emit('update', dataForm)">
|
||||||
|
<el-option
|
||||||
|
v-for="opt in equipmentList"
|
||||||
|
: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="sort"
|
||||||
|
:rules="[
|
||||||
|
{
|
||||||
|
type: 'number',
|
||||||
|
trigger: 'change',
|
||||||
|
message: '请输入正确的数字类型',
|
||||||
|
transform: (val) => Number(val),
|
||||||
|
},
|
||||||
|
]">
|
||||||
|
<el-input
|
||||||
|
v-model="dataForm.sort"
|
||||||
|
clearable
|
||||||
|
@change="$emit('update', dataForm)"
|
||||||
|
placeholder="请输入工段排序" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item
|
||||||
|
label="产线统计类型"
|
||||||
|
prop="lineDataType"
|
||||||
|
:rules="[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '产线统计类型不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
]">
|
||||||
|
<el-select
|
||||||
|
v-model="dataForm.lineDataType"
|
||||||
|
placeholder="请选择产线统计类型"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
@change="$emit('update', dataForm)">
|
||||||
|
<el-option
|
||||||
|
v-for="opt in [
|
||||||
|
{ label: '无类型', value: 0 },
|
||||||
|
{ label: '进口统计', value: 1 },
|
||||||
|
{ label: '出口统计', value: 2 },
|
||||||
|
]"
|
||||||
|
: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="sectionDataType"
|
||||||
|
:rules="[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '工段统计类型不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
]">
|
||||||
|
<el-select
|
||||||
|
v-model="dataForm.sectionDataType"
|
||||||
|
placeholder="请选择工段统计类型"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
@change="$emit('update', dataForm)">
|
||||||
|
<el-option
|
||||||
|
v-for="opt in [
|
||||||
|
{ label: '无类型', value: 0 },
|
||||||
|
{ label: '进口统计', value: 1 },
|
||||||
|
{ label: '出口统计', value: 2 },
|
||||||
|
]"
|
||||||
|
:key="opt.value"
|
||||||
|
:label="opt.label"
|
||||||
|
:value="opt.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'DialogForm',
|
||||||
|
model: {
|
||||||
|
prop: 'dataForm',
|
||||||
|
event: 'update',
|
||||||
|
},
|
||||||
|
emits: ['update'],
|
||||||
|
components: {},
|
||||||
|
props: {
|
||||||
|
dataForm: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({}),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
formLoading: true,
|
||||||
|
productionLineList: [],
|
||||||
|
equipmentList: [],
|
||||||
|
worksectionList: [],
|
||||||
|
dataFormCache: null,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
Promise.all([this.getProductLineList(), this.getEquipmentList()]).then(
|
||||||
|
() => {
|
||||||
|
this.formLoading = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
'dataForm.productionLineId': {
|
||||||
|
handler: async function (plId) {
|
||||||
|
if (plId) await this.getWorksectionList(plId);
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 模拟透传 ref */
|
||||||
|
validate(cb) {
|
||||||
|
return this.$refs.form.validate(cb);
|
||||||
|
},
|
||||||
|
resetFields(args) {
|
||||||
|
return this.$refs.form.resetFields(args);
|
||||||
|
},
|
||||||
|
async handleProductlineChange(id) {
|
||||||
|
await this.getWorksectionList(id);
|
||||||
|
this.dataForm.workshopSectionId = null;
|
||||||
|
this.$emit('update', this.dataForm);
|
||||||
|
},
|
||||||
|
// getCode
|
||||||
|
async getCode(url) {
|
||||||
|
const response = await this.$axios(url);
|
||||||
|
return response.data;
|
||||||
|
},
|
||||||
|
// 获取产线列表
|
||||||
|
async getProductLineList() {
|
||||||
|
const response = await this.$axios('/base/core-production-line/listAll');
|
||||||
|
this.productionLineList = response.data.map((item) => ({
|
||||||
|
label: item.name,
|
||||||
|
value: item.id,
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
// 获取设备列表
|
||||||
|
async getEquipmentList() {
|
||||||
|
const response = await this.$axios(
|
||||||
|
// '/base/core-equipment/page?pageNo=1&pageSize=100'
|
||||||
|
'/base/core-equipment/listAll'
|
||||||
|
);
|
||||||
|
this.equipmentList = response.data.map((item) => ({
|
||||||
|
label: item.name,
|
||||||
|
value: item.id,
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
// 获取工段列表
|
||||||
|
async getWorksectionList(plId) {
|
||||||
|
const response = await this.$axios(
|
||||||
|
'/base/core-workshop-section/listByParentId',
|
||||||
|
{
|
||||||
|
params: {
|
||||||
|
id: plId,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
this.worksectionList = response.data.map((item) => ({
|
||||||
|
label: item.name,
|
||||||
|
value: item.id,
|
||||||
|
}));
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.el-date-editor,
|
||||||
|
.el-select {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
@ -50,12 +50,13 @@
|
|||||||
<script>
|
<script>
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import basicPageMixin from '@/mixins/lb/basicPageMixin';
|
import basicPageMixin from '@/mixins/lb/basicPageMixin';
|
||||||
|
import DialogForm from './dialogForm.vue';
|
||||||
|
|
||||||
// import { getAccessToken } from '@/utils/auth';
|
// import { getAccessToken } from '@/utils/auth';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'EquipmentLineBind',
|
name: 'EquipmentLineBind',
|
||||||
components: {},
|
components: { DialogForm },
|
||||||
mixins: [basicPageMixin],
|
mixins: [basicPageMixin],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -149,7 +150,9 @@ export default {
|
|||||||
select: true,
|
select: true,
|
||||||
label: '产线',
|
label: '产线',
|
||||||
prop: 'productionLineId',
|
prop: 'productionLineId',
|
||||||
rules: [{ required: true, message: '产线名不能为空', trigger: 'blur' }],
|
rules: [
|
||||||
|
{ required: true, message: '产线名不能为空', trigger: 'blur' },
|
||||||
|
],
|
||||||
url: '/base/core-production-line/listAll',
|
url: '/base/core-production-line/listAll',
|
||||||
bind: { clearable: true, filterable: true },
|
bind: { clearable: true, filterable: true },
|
||||||
// watch: 'workshopSectionId'
|
// watch: 'workshopSectionId'
|
||||||
@ -159,7 +162,9 @@ export default {
|
|||||||
label: '工段',
|
label: '工段',
|
||||||
prop: 'workshopSectionId',
|
prop: 'workshopSectionId',
|
||||||
depends: 'productionLineId',
|
depends: 'productionLineId',
|
||||||
rules: [{ required: true, message: '工段不能为空', trigger: 'blur' }],
|
rules: [
|
||||||
|
{ required: true, message: '工段不能为空', trigger: 'blur' },
|
||||||
|
],
|
||||||
bind: { clearable: true, filterable: true },
|
bind: { clearable: true, filterable: true },
|
||||||
url: '/base/core-workshop-section/listByParentId',
|
url: '/base/core-workshop-section/listByParentId',
|
||||||
},
|
},
|
||||||
@ -169,7 +174,9 @@ export default {
|
|||||||
select: true,
|
select: true,
|
||||||
label: '设备',
|
label: '设备',
|
||||||
prop: 'equipmentId',
|
prop: 'equipmentId',
|
||||||
rules: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
|
rules: [
|
||||||
|
{ required: true, message: '设备名不能为空', trigger: 'blur' },
|
||||||
|
],
|
||||||
bind: { clearable: true, filterable: true },
|
bind: { clearable: true, filterable: true },
|
||||||
url: '/base/core-equipment/listAll',
|
url: '/base/core-equipment/listAll',
|
||||||
},
|
},
|
||||||
@ -190,9 +197,16 @@ export default {
|
|||||||
label: '产线统计类型',
|
label: '产线统计类型',
|
||||||
prop: 'lineDataType',
|
prop: 'lineDataType',
|
||||||
bind: {
|
bind: {
|
||||||
clearable: true, filterable: true
|
clearable: true,
|
||||||
|
filterable: true,
|
||||||
},
|
},
|
||||||
rules: [{ required: true, message: '产线统计类型不能为空', trigger: 'change' }],
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '产线统计类型不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
select: true,
|
select: true,
|
||||||
@ -204,9 +218,16 @@ export default {
|
|||||||
label: '工段统计类型',
|
label: '工段统计类型',
|
||||||
prop: 'sectionDataType',
|
prop: 'sectionDataType',
|
||||||
bind: {
|
bind: {
|
||||||
clearable: true, filterable: true
|
clearable: true,
|
||||||
|
filterable: true,
|
||||||
},
|
},
|
||||||
rules: [{ required: true, message: '工段统计类型不能为空', trigger: 'change' }],
|
rules: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '工段统计类型不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
@ -335,15 +356,21 @@ export default {
|
|||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const id = row.id;
|
const id = row.id;
|
||||||
this.$modal
|
this.$modal
|
||||||
.confirm('是否确认删除绑定"' + row.name + '"?')
|
.confirm(
|
||||||
.then(function () {
|
'是否确认删除绑定"' +
|
||||||
return deleteEquipmentType(id);
|
(row.equipmentName == null ? '这条记录' : row.equipmentName) +
|
||||||
|
'"?'
|
||||||
|
)
|
||||||
|
.then(() => {
|
||||||
|
return this.del({ id });
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.$modal.msgSuccess('删除成功');
|
this.$modal.msgSuccess('删除成功');
|
||||||
})
|
})
|
||||||
.catch(() => {});
|
.catch((err) => {
|
||||||
|
console.error(err);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
|
@ -16,7 +16,9 @@
|
|||||||
<el-form-item
|
<el-form-item
|
||||||
label="产线"
|
label="产线"
|
||||||
prop="productionLineId"
|
prop="productionLineId"
|
||||||
:rules="[{ required: true, message: '产线不能为空', trigger: 'blur' }]">
|
:rules="[
|
||||||
|
{ required: true, message: '产线不能为空', trigger: 'blur' },
|
||||||
|
]">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="dataForm.productionLineId"
|
v-model="dataForm.productionLineId"
|
||||||
placeholder="请选择产线"
|
placeholder="请选择产线"
|
||||||
@ -35,7 +37,9 @@
|
|||||||
<el-form-item
|
<el-form-item
|
||||||
label="工段"
|
label="工段"
|
||||||
prop="workshopSectionId"
|
prop="workshopSectionId"
|
||||||
:rules="[{ required: true, message: '工段不能为空', trigger: 'blur' }]">
|
:rules="[
|
||||||
|
{ required: true, message: '工段不能为空', trigger: 'blur' },
|
||||||
|
]">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="dataForm.workshopSectionId"
|
v-model="dataForm.workshopSectionId"
|
||||||
filterable
|
filterable
|
||||||
@ -55,7 +59,9 @@
|
|||||||
<el-form-item
|
<el-form-item
|
||||||
label="设备"
|
label="设备"
|
||||||
prop="equipmentId"
|
prop="equipmentId"
|
||||||
:rules="[{ required: true, message: '设备不能为空', trigger: 'blur' }]">
|
:rules="[
|
||||||
|
{ required: true, message: '设备不能为空', trigger: 'blur' },
|
||||||
|
]">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="dataForm.equipmentId"
|
v-model="dataForm.equipmentId"
|
||||||
filterable
|
filterable
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: zhp
|
* @Author: zhp
|
||||||
* @Date: 2023-12-08 13:46:17
|
* @Date: 2023-12-08 13:46:17
|
||||||
* @LastEditTime: 2023-12-15 16:12:08
|
* @LastEditTime: 2024-01-09 16:03:22
|
||||||
* @LastEditors: zhp
|
* @LastEditors: zhp
|
||||||
* @Description:
|
* @Description:
|
||||||
-->
|
-->
|
||||||
@ -455,8 +455,8 @@ export default {
|
|||||||
materialId: response.data.materialId
|
materialId: response.data.materialId
|
||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
console.log(res.data);
|
console.log(res.data);
|
||||||
this.ingredientList = res.data
|
let arr = res.data
|
||||||
valueList = this.ingredientList.map((ele) => {
|
valueList = arr.map((ele) => {
|
||||||
// console.log(ele)
|
// console.log(ele)
|
||||||
return {
|
return {
|
||||||
maxValue: ele.maxValue,
|
maxValue: ele.maxValue,
|
||||||
@ -466,6 +466,17 @@ export default {
|
|||||||
getQualityHotMaterialDetList({
|
getQualityHotMaterialDetList({
|
||||||
mainId: response.data.id
|
mainId: response.data.id
|
||||||
}).then((result) => {
|
}).then((result) => {
|
||||||
|
this.ingredientList = result.data.map((ele) => {
|
||||||
|
return {
|
||||||
|
name: ele.checkName,
|
||||||
|
id: ele.id,
|
||||||
|
checkDetId: ele.id,
|
||||||
|
checkValue: ele.checkValue,
|
||||||
|
// isStandard: true,
|
||||||
|
// showIcon: false,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log(this.ingredientList);
|
||||||
this.dataForm.checkValueList = result.data.map((ele) => {
|
this.dataForm.checkValueList = result.data.map((ele) => {
|
||||||
return {
|
return {
|
||||||
mainId: ele.mainId,
|
mainId: ele.mainId,
|
||||||
|
Loading…
Reference in New Issue
Block a user