Browse Source

0505更新

master
ruanqi 4 years ago
parent
commit
5ce31bf925
  1. 2
      src/App.vue
  2. 4
      src/api/board.js
  3. 4
      src/router/index.js
  4. 472
      src/views/demo/echarts.vue
  5. 65
      src/views/demo/ueditor.vue
  6. 206
      src/views/modules/board/delNotifyBoard.vue
  7. 107
      src/views/modules/board/newScheduledBoard.vue
  8. 184
      src/views/modules/board/scheduleListBoard.vue
  9. 5
      src/views/modules/production/dailyPlan.vue
  10. 5
      src/views/modules/production/search_schedule.vue
  11. 2
      static/config/init.js
  12. 1
      static/plugins/echarts-3.8.5/echarts.common.min.js
  13. 18
      static/plugins/echarts-5.3.1/echarts.min.js

2
src/App.vue

@ -14,7 +14,7 @@
}
},
created() {
this.test();
// this.test();
// this.languageRefresh()
},
methods: {

4
src/api/board.js

@ -9,3 +9,7 @@ export const getNewScheduledTableData=data => createAPI(`board/getNewScheduledTa
export const getRefreshTime=data => createAPI(`board/getRefreshTime/${data}`, 'get');
export const getScheduledData=data => createAPI(`board/getScheduledData`, 'post', data);
export const getScheduleListData=data => createAPI(`board/getScheduleListData`, 'post', data);
export const getDelNotifyBoardData=data => createAPI(`board/getDelNotifyBoardData`, 'post', data);

4
src/router/index.js

@ -21,6 +21,8 @@ const globalRoutes = [
{ path: '/404', component: _import('common/404'), name: '404', meta: { title: '404未找到' } },
{ path: '/login', component: _import('common/login'), name: 'login', meta: { title: '登录' } },
{ path: '/scheduleBoard', component: _import('modules/board/newScheduledBoard'), name: 'scheduleBoard', meta: { title: '生产情况看板' } },
{ path: '/scheduleListBoard', component: _import('modules/board/scheduleListBoard'), name: 'scheduleBoard', meta: { title: '日计划明细看板' } },
{ path: '/delNotifyBoard', component: _import('modules/board/delNotifyBoard'), name: 'scheduleBoard', meta: { title: '本周发货预警' } },
]
// 主入口路由(需嵌套上左右整体布局)
@ -37,8 +39,6 @@ const mainRoutes = {
// 提示: 如需要通过iframe嵌套展示内容, 但不通过tab打开, 请自行创建组件使用iframe处理!
{ path: '/home', component: _import('common/home'), name: 'home', meta: { title: '首页' } },
{ path: '/theme', component: _import('common/theme'), name: 'theme', meta: { title: '主题' } },
{ path: '/demo-echarts', component: _import('demo/echarts'), name: 'demo-echarts', meta: { title: 'demo-echarts', isTab: true } },
// { path: '/demo-ueditor', component: _import('demo/ueditor'), name: 'demo-ueditor', meta: { title: 'demo-ueditor', isTab: true } }
],
beforeEnter (to, from, next) {
let token = Vue.cookie.get('token')

472
src/views/demo/echarts.vue

@ -1,472 +0,0 @@
<template>
<div class="mod-demo-echarts">
<el-alert
title="提示:"
type="warning"
:closable="false">
<div slot-scope="description">
<p class="el-alert__description">1. 此Demo只提供ECharts官方使用文档入门部署和体验功能具体使用请参考http://echarts.baidu.com/index.html</p>
</div>
</el-alert>
<el-row :gutter="20">
<el-col :span="24">
<el-card>
<div id="J_chartLineBox" class="chart-box"></div>
</el-card>
</el-col>
<el-col :span="24">
<el-card>
<div id="J_chartBarBox" class="chart-box"></div>
</el-card>
</el-col>
<el-col :span="12">
<el-card>
<div id="J_chartPieBox" class="chart-box"></div>
</el-card>
</el-col>
<el-col :span="12">
<el-card>
<div id="J_chartScatterBox" class="chart-box"></div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import echarts from 'echarts'
export default {
data () {
return {
chartLine: null,
chartBar: null,
chartPie: null,
chartScatter: null
}
},
mounted () {
this.initChartLine()
this.initChartBar()
this.initChartPie()
this.initChartScatter()
},
activated () {
// echartresize, resize, bug
if (this.chartLine) {
this.chartLine.resize()
}
if (this.chartBar) {
this.chartBar.resize()
}
if (this.chartPie) {
this.chartPie.resize()
}
if (this.chartScatter) {
this.chartScatter.resize()
}
},
methods: {
// 线
initChartLine () {
var option = {
'title': {
'text': '折线图堆叠'
},
'tooltip': {
'trigger': 'axis'
},
'legend': {
'data': [ '邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎' ]
},
'grid': {
'left': '3%',
'right': '4%',
'bottom': '3%',
'containLabel': true
},
'toolbox': {
'feature': {
'saveAsImage': { }
}
},
'xAxis': {
'type': 'category',
'boundaryGap': false,
'data': [ '周一', '周二', '周三', '周四', '周五', '周六', '周日' ]
},
'yAxis': {
'type': 'value'
},
'series': [
{
'name': '邮件营销',
'type': 'line',
'stack': '总量',
'data': [ 120, 132, 101, 134, 90, 230, 210 ]
},
{
'name': '联盟广告',
'type': 'line',
'stack': '总量',
'data': [ 220, 182, 191, 234, 290, 330, 310 ]
},
{
'name': '视频广告',
'type': 'line',
'stack': '总量',
'data': [ 150, 232, 201, 154, 190, 330, 410 ]
},
{
'name': '直接访问',
'type': 'line',
'stack': '总量',
'data': [ 320, 332, 301, 334, 390, 330, 320 ]
},
{
'name': '搜索引擎',
'type': 'line',
'stack': '总量',
'data': [ 820, 932, 901, 934, 1290, 1330, 1320 ]
}
]
}
this.chartLine = echarts.init(document.getElementById('J_chartLineBox'))
this.chartLine.setOption(option)
window.addEventListener('resize', () => {
this.chartLine.resize()
})
},
//
initChartBar () {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎', '百度', '谷歌', '必应', '其他']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: [
{
type: 'category',
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
}
],
yAxis: [
{
type: 'value'
}
],
series: [
{
name: '直接访问',
type: 'bar',
data: [320, 332, 301, 334, 390, 330, 320]
},
{
name: '邮件营销',
type: 'bar',
stack: '广告',
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: '联盟广告',
type: 'bar',
stack: '广告',
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: '视频广告',
type: 'bar',
stack: '广告',
data: [150, 232, 201, 154, 190, 330, 410]
},
{
name: '搜索引擎',
type: 'bar',
data: [862, 1018, 964, 1026, 1679, 1600, 1570],
markLine: {
lineStyle: {
normal: {
type: 'dashed'
}
},
data: [
[{ type: 'min' }, { type: 'max' }]
]
}
},
{
name: '百度',
type: 'bar',
barWidth: 5,
stack: '搜索引擎',
data: [620, 732, 701, 734, 1090, 1130, 1120]
},
{
name: '谷歌',
type: 'bar',
stack: '搜索引擎',
data: [120, 132, 101, 134, 290, 230, 220]
},
{
name: '必应',
type: 'bar',
stack: '搜索引擎',
data: [60, 72, 71, 74, 190, 130, 110]
},
{
name: '其他',
type: 'bar',
stack: '搜索引擎',
data: [62, 82, 91, 84, 109, 110, 120]
}
]
}
this.chartBar = echarts.init(document.getElementById('J_chartBarBox'))
this.chartBar.setOption(option)
window.addEventListener('resize', () => {
this.chartBar.resize()
})
},
//
initChartPie () {
var option = {
backgroundColor: '#2c343c',
title: {
text: 'Customized Pie',
left: 'center',
top: 20,
textStyle: {
color: '#ccc'
}
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
visualMap: {
show: false,
min: 80,
max: 600,
inRange: {
colorLightness: [0, 1]
}
},
series: [
{
name: '访问来源',
type: 'pie',
radius: '55%',
center: ['50%', '50%'],
data: [
{ value: 335, name: '直接访问' },
{ value: 310, name: '邮件营销' },
{ value: 274, name: '联盟广告' },
{ value: 235, name: '视频广告' },
{ value: 400, name: '搜索引擎' }
].sort(function (a, b) { return a.value - b.value }),
roseType: 'radius',
label: {
normal: {
textStyle: {
color: 'rgba(255, 255, 255, 0.3)'
}
}
},
labelLine: {
normal: {
lineStyle: {
color: 'rgba(255, 255, 255, 0.3)'
},
smooth: 0.2,
length: 10,
length2: 20
}
},
itemStyle: {
normal: {
color: '#c23531',
shadowBlur: 200,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
},
animationType: 'scale',
animationEasing: 'elasticOut',
animationDelay: function (idx) {
return Math.random() * 200
}
}
]
}
this.chartPie = echarts.init(document.getElementById('J_chartPieBox'))
this.chartPie.setOption(option)
window.addEventListener('resize', () => {
this.chartPie.resize()
})
},
//
initChartScatter () {
var option = {
backgroundColor: new echarts.graphic.RadialGradient(0.3, 0.3, 0.8, [
{ offset: 0, color: '#f7f8fa' },
{ offset: 1, color: '#cdd0d5' }
]),
title: {
text: '1990 与 2015 年各国家人均寿命与 GDP'
},
legend: {
right: 10,
data: ['1990', '2015']
},
xAxis: {
splitLine: {
lineStyle: {
type: 'dashed'
}
}
},
yAxis: {
splitLine: {
lineStyle: {
type: 'dashed'
}
},
scale: true
},
series: [
{
name: '1990',
data: [
[28604, 77, 17096869, 'Australia', 1990],
[31163, 77.4, 27662440, 'Canada', 1990],
[1516, 68, 1154605773, 'China', 1990],
[13670, 74.7, 10582082, 'Cuba', 1990],
[28599, 75, 4986705, 'Finland', 1990],
[29476, 77.1, 56943299, 'France', 1990],
[31476, 75.4, 78958237, 'Germany', 1990],
[28666, 78.1, 254830, 'Iceland', 1990],
[1777, 57.7, 870601776, 'India', 1990],
[29550, 79.1, 122249285, 'Japan', 1990],
[2076, 67.9, 20194354, 'North Korea', 1990],
[12087, 72, 42972254, 'South Korea', 1990],
[24021, 75.4, 3397534, 'New Zealand', 1990],
[43296, 76.8, 4240375, 'Norway', 1990],
[10088, 70.8, 38195258, 'Poland', 1990],
[19349, 69.6, 147568552, 'Russia', 1990],
[10670, 67.3, 53994605, 'Turkey', 1990],
[26424, 75.7, 57110117, 'United Kingdom', 1990],
[37062, 75.4, 252847810, 'United States', 1990]
],
type: 'scatter',
symbolSize: function (data) {
return Math.sqrt(data[2]) / 5e2
},
label: {
emphasis: {
show: true,
formatter: function (param) {
return param.data[3]
},
position: 'top'
}
},
itemStyle: {
normal: {
shadowBlur: 10,
shadowColor: 'rgba(120, 36, 50, 0.5)',
shadowOffsetY: 5,
color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [
{ offset: 0, color: 'rgb(251, 118, 123)' },
{ offset: 1, color: 'rgb(204, 46, 72)' }
])
}
}
},
{
name: '2015',
data: [
[44056, 81.8, 23968973, 'Australia', 2015],
[43294, 81.7, 35939927, 'Canada', 2015],
[13334, 76.9, 1376048943, 'China', 2015],
[21291, 78.5, 11389562, 'Cuba', 2015],
[38923, 80.8, 5503457, 'Finland', 2015],
[37599, 81.9, 64395345, 'France', 2015],
[44053, 81.1, 80688545, 'Germany', 2015],
[42182, 82.8, 329425, 'Iceland', 2015],
[5903, 66.8, 1311050527, 'India', 2015],
[36162, 83.5, 126573481, 'Japan', 2015],
[1390, 71.4, 25155317, 'North Korea', 2015],
[34644, 80.7, 50293439, 'South Korea', 2015],
[34186, 80.6, 4528526, 'New Zealand', 2015],
[64304, 81.6, 5210967, 'Norway', 2015],
[24787, 77.3, 38611794, 'Poland', 2015],
[23038, 73.13, 143456918, 'Russia', 2015],
[19360, 76.5, 78665830, 'Turkey', 2015],
[38225, 81.4, 64715810, 'United Kingdom', 2015],
[53354, 79.1, 321773631, 'United States', 2015]
],
type: 'scatter',
symbolSize: function (data) {
return Math.sqrt(data[2]) / 5e2
},
label: {
emphasis: {
show: true,
formatter: function (param) {
return param.data[3]
},
position: 'top'
}
},
itemStyle: {
normal: {
shadowBlur: 10,
shadowColor: 'rgba(25, 100, 150, 0.5)',
shadowOffsetY: 5,
color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [
{ offset: 0, color: 'rgb(129, 227, 238)' },
{ offset: 1, color: 'rgb(25, 183, 207)' }
])
}
}
}
]
}
this.chartPie = echarts.init(document.getElementById('J_chartScatterBox'))
this.chartPie.setOption(option)
window.addEventListener('resize', () => {
this.chartPie.resize()
})
}
}
}
</script>
<style lang="scss">
.mod-demo-echarts {
> .el-alert {
margin-bottom: 10px;
}
> .el-row {
margin-top: -10px;
margin-bottom: -10px;
.el-col {
padding-top: 10px;
padding-bottom: 10px;
}
}
.chart-box {
min-height: 400px;
}
}
</style>

65
src/views/demo/ueditor.vue

@ -1,65 +0,0 @@
<template>
<div class="mod-demo-ueditor">
<el-alert
title="提示:"
type="warning"
:closable="false">
<div slot-scope="description">
<p class="el-alert__description">1. 此Demo只提供UEditor官方使用文档入门部署和体验功能具体使用请参考http://fex.baidu.com/ueditor/</p>
<p class="el-alert__description">2. 浏览器控制台报错请求后台配置项http错误上传功能将不能正常使用此错需要后台提供上传接口方法赋值给serverUrl属性</p>
</div>
</el-alert>
<script :id="ueId" class="ueditor-box" type="text/plain" style="width: 100%; height: 260px;">hello world!</script>
<!-- 获取内容 -->
<p><el-button @click="getContent()">获得内容</el-button></p>
<el-dialog
title="内容"
:visible.sync="dialogVisible"
:append-to-body="true">
{{ ueContent }}
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dialogVisible = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import ueditor from 'ueditor'
export default {
data () {
return {
ue: null,
ueId: `J_ueditorBox_${new Date().getTime()}`,
ueContent: '',
dialogVisible: false
}
},
mounted () {
this.ue = ueditor.getEditor(this.ueId, {
// serverUrl: '', //
zIndex: 3000
})
},
methods: {
getContent () {
this.dialogVisible = true
this.ue.ready(() => {
this.ueContent = this.ue.getContent()
})
}
}
}
</script>
<style lang="scss">
.mod-demo-ueditor {
position: relative;
z-index: 510;
> .el-alert {
margin-bottom: 10px;
}
}
</style>

206
src/views/modules/board/delNotifyBoard.vue

@ -0,0 +1,206 @@
<template>
<div class="mod-config">
<div style="text-align: center">
<h1>本周发货预警</h1>
</div>
<div class="tableBoard">
<!-- @mouseenter.native="mouseEnter"-->
<!-- @mouseleave.native="mouseLeave"-->
<el-table
cell-style="cc"
:height="height"
:data="tableData"
:row-class-name="tableRowClassName"
ref="wt_table"
border
style="width: 100%;">
<el-table-column
prop="notifyDate"
header-align="center"
align="left"
min-width="45"
style="font-size: 20px"
label="发货日期">
</el-table-column>
<el-table-column
prop="delNotifyNo"
header-align="center"
align="left"
min-width="45"
label="发货单号">
</el-table-column>
<el-table-column
prop="customerID"
header-align="center"
align="left"
min-width="40"
label="客户编码">
</el-table-column>
<el-table-column
prop="customerDesc"
header-align="center"
align="left"
min-width="120"
style="font-size: 20px"
label="客户名称">
</el-table-column>
<el-table-column
prop="pickupStatus"
header-align="center"
align="left"
min-width="45"
label="配货状态">
</el-table-column>
<el-table-column
prop="notifyQty"
header-align="center"
align="right"
min-width="40"
label="发货单数量">
</el-table-column>
<el-table-column
prop="qtyRequired"
header-align="center"
align="right"
min-width="40"
label="已派工数量">
</el-table-column>
<el-table-column
prop="qtyReported"
header-align="center"
align="right"
min-width="40"
label="入库数量">
</el-table-column>
<el-table-column
prop="status"
header-align="center"
align="left"
min-width="60"
label="预警状态">
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
let rollstop = ''
let rolltimer = ''//
let refresher = '' //
import {
getDelNotifyBoardData,
} from '@/api/board.js'
export default {
name: 'delNotifyBoard',
data () {
return {
pageIndex: 1,
totalPage: 1,
height: 200,
tableData: [],
//
// refreshTime: 5,
// rollTime: 5,
// rollPx: 1,
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 80
})
},
methods: {
getFormatterNumber (row, column){
// if(parseInt(row.weightperBag)==row.weightperBag){
// return parseInt(row.weightperBag);
// }else{
// return row.weightperBag.toFixed(3);
// }
},
tableRowClassName ({row, rowIndex}) {
// if (row.finishedFlag == '2') {
// return 'success-row'
// }
// if (row.finishedFlag == '3') {
// return 'false-row'
// }
// return ''
},
search () {
let inData= {number:this.pageIndex};
getDelNotifyBoardData(inData).then(({data}) => {
this.tableData = data.rows;
this.totalPage= data.maxPage;
if(this.pageIndex+1>data.maxPage){
this.pageIndex=1
}else {
this.pageIndex=Number(this.pageIndex)+Number(1)
}
})
},
//
// mouseEnter (time) {
// //
// this.autoRoll(true)
// },
//
// mouseLeave () {
// //
// this.autoRoll()
// },
//
// autoRoll (stop) {
// if (stop) {
// clearInterval(rolltimer)
// return
// }
//
// // DOM
// const table = this.$refs.wt_table
// // div
// const divData = table.bodyWrapper
// //
// rolltimer = setInterval(() => {
// //
// divData.scrollTop = this.decimalUtil.add(Number(divData.scrollTop), Number(this.rollPx))
// // (+=)
// if (divData.clientHeight + divData.scrollTop +1>= divData.scrollHeight) {
// // table
//
// divData.scrollTop = 0
//
// }
// }, this.rollTime * 10)
// },
refreshTable () {
refresher = setInterval(() => {
this.search()
}, 30000)
}
},
created () {
this.search()
this.refreshTable()
}
}
</script>
<style >
.tableBoard .el-table .cell {
line-height: 13px;
font-size: 12px;
height: 13px;
padding: 0px;
}
.tableBoard .el-table .success-row {
background: #1bb61b;
}
.tableBoard .el-table .false-row {
background: #db1212;
}
</style>

107
src/views/modules/board/newScheduledBoard.vue

@ -5,7 +5,7 @@
<!-- <div style="font-size: 26px;float: right;color: #ffffff;height: 100%" v-html="clock"></div>-->
<div style="float: left;width: 25%;height: 100%;text-align:center;margin-left: 37% ">
<div style="height: 40%;width: 100%;text-align: center;margin-top: 3%;">
<label style="font-size: 30px;color: #ffffff">生产状况</label>
<label style="font-size: 30px;color: #ffffff">生产情况看板</label>
</div>
<div style="height: 40%;width: 100%;text-align: center;margin-top: 0%;">
<label id="resourceIdName" style="font-size: 24px;color: #fff300"></label>
@ -18,12 +18,12 @@
<div
style="width: 12%;height: 40%;float: left;margin-left: 18%;border-radius: 10px; background-color: #ec6566;"></div>
<div style="width: 25%;height: 50%;float: left;margin-left: 3%;">
<label style="font-size: 16px;color:#ffffff; ">完工</label>
<label style="font-size: 16px;color:#ffffff; ">入库</label>
</div>
<div
style="width: 12%;height: 40%;float: left;margin-left: 1%;border-radius: 10px; background-color: #90ca75;"></div>
<div style="width: 25%;height: 50%;float: left;margin-left: 3%;">
<label style="font-size: 16px;color:#ffffff; ">完工</label>
<label style="font-size: 16px;color:#ffffff; ">入库</label>
</div>
</div>
<div style="height: 88%;width: 100%;">
@ -40,28 +40,35 @@
<el-table-column
prop="resourceDesc"
header-align="center"
align="left"
align="center"
min-width="100"
label="机台名称">
</el-table-column>
<el-table-column
prop="qtyRequire"
prop="qtyRequired"
header-align="center"
align="left"
align="center"
min-width="100"
label="排产数量">
</el-table-column>
<el-table-column
prop="status"
prop="qtyApprove"
header-align="center"
align="left"
align="center"
min-width="100"
label="完成数量">
</el-table-column>
<el-table-column
prop="qtyReported"
header-align="center"
align="center"
min-width="100"
label="已入库数量">
</el-table-column>
<el-table-column
prop="area"
prop="qtyUnReported"
header-align="center"
align="left"
align="center"
min-width="100"
label="未入库数量">
</el-table-column>
@ -139,7 +146,7 @@
// $("#resourceIdName").html("");
this.option = ({
title: [{
text: '总完成情况' ,
text: '总入库情况' ,
// text: '' + data_temp[i + x].itemNo,
// x 'center' ¦ 'left' ¦ 'right' ¦ {number}xpx
x: 'center',
@ -172,7 +179,7 @@
}],
series: [
{
name: '完成数量统计',
name: '入库数量统计',
type: 'pie', //
radius: ['45%', '75%'], // 55%
data: [ // name value
@ -205,6 +212,11 @@
getTableData() {
getNewScheduledTableData(this.number2).then(({data}) => {
this.tableList=data.rows;
if(data.total<5){
this.number2=0;
}else {
this.number2=Number(this.number2)+ Number(1);
}
})
},
draw2(){
@ -213,6 +225,7 @@
}
let barData=[];
let valueData=[];
let valueApproveData=[];
for (let a = 0; a <this.barList.length ; a++) {
let resourceData={
value: this.barList[a].resourceDesc,
@ -222,6 +235,7 @@
}
barData.push(resourceData);
valueData[a]=this.barList[a].qtyPercent;
valueApproveData[a]=this.barList[a].approvePercent;
}
this.myChart2 = echarts.init(document.getElementById('main'));
// document.getElementById('main').style.height="300px";
@ -230,7 +244,7 @@
// this.option2 = null
// }
this.option2 = {
color:["#90ca75", "#00a7ff","#ec6566"],
color:["#90ca75", "#00a7ff"],
legend: {
textStyle: { //
color: '#fff',
@ -243,50 +257,7 @@
type: 'category',
// data: xAxisData
data:barData,
// [
// {
// value: this.getDate(this.barList[6].strDate),
// textStyle: {
// color: '#EEE'
// }
// },
// {
// value: this.getDate(this.barList[5].strDate),
// textStyle: {
// color: '#EEE'
// }
// },
// {
// value: this.getDate(this.barList[4].strDate),
// textStyle: {
// color: '#EEE'
// }
// },
// {
// value: this.getDate(this.barList[3].strDate),
// textStyle: {
// color: '#EEE'
// }
// },
// {
// value: this.getDate(this.barList[2].strDate),
// textStyle: {
// color: '#EEE'
// }
// },
// {
// value: this.getDate(this.barList[1].strDate),
// textStyle: {
// color: '#EEE'
// }
// },
// {
// value: this.getDate(this.barList[0].strDate),
// textStyle: {
// color: '#EEE'
// }
// },
// ],
axisLine:{
lineStyle: {
color:'#eee'
@ -325,9 +296,28 @@
],
series: [
{
'name': '当日完成率',
'type': 'bar',
'emphasis': {
focus: 'series'
},
// data: seriesData1
'data': valueApproveData,
// [this.barList[6].num1, this.barList[5].num1, this.barList[4].num1, this.barList[3].num1, this.barList[2].num1, this.barList[1].num1, this.barList[0].num1],
'label':{
show:true,
position:'top',
textStyle: {
color: '#fff300',
fontSize: 11
}
},
},
{
'name': '当日完成率',
'name': '当日入库率',
'type': 'bar',
'emphasis': {
focus: 'series'
@ -347,6 +337,7 @@
},
]
};

184
src/views/modules/board/scheduleListBoard.vue

@ -0,0 +1,184 @@
<template>
<div class="mod-config">
<div style="text-align: center">
<h1>日计划明细看板</h1>
</div>
<div class="tableBoard">
<!-- @mouseenter.native="mouseEnter"-->
<!-- @mouseleave.native="mouseLeave"-->
<el-table
cell-style="cc"
:height="height"
:data="tableData"
:row-class-name="tableRowClassName"
ref="wt_table"
border
style="width: 100%;">
<el-table-column
prop="resourceDesc"
header-align="center"
align="left"
min-width="45"
style="font-size: 20px"
label="机台名称">
</el-table-column>
<el-table-column
prop="partNo"
header-align="center"
align="left"
min-width="45"
label="物料编码">
</el-table-column>
<el-table-column
prop="partDesc"
header-align="center"
align="left"
min-width="120"
label="物料名称">
</el-table-column>
<el-table-column
prop="qtyRequired"
header-align="center"
align="right"
min-width="40"
label="计划数量">
</el-table-column>
<el-table-column
prop="qtyApprove"
header-align="center"
align="right"
min-width="40"
label="完成数量">
</el-table-column>
<el-table-column
prop="qtyReported"
header-align="center"
align="right"
min-width="40"
label="入库数量">
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
let rollstop = ''
let rolltimer = ''//
let refresher = '' //
import {
getScheduleListData,
} from '@/api/board.js'
export default {
name: 'scheduleListBoard',
data () {
return {
pageIndex: 1,
totalPage: 1,
height: 200,
tableData: [],
//
// refreshTime: 5,
// rollTime: 5,
// rollPx: 1,
}
},
mounted () {
this.$nextTick(() => {
this.height = window.innerHeight - 80
})
},
methods: {
getFormatterNumber (row, column){
// if(parseInt(row.weightperBag)==row.weightperBag){
// return parseInt(row.weightperBag);
// }else{
// return row.weightperBag.toFixed(3);
// }
},
tableRowClassName ({row, rowIndex}) {
// if (row.finishedFlag == '2') {
// return 'success-row'
// }
// if (row.finishedFlag == '3') {
// return 'false-row'
// }
// return ''
},
search () {
let inData= {number:this.pageIndex};
getScheduleListData(inData).then(({data}) => {
this.tableData = data.rows;
this.totalPage= data.maxPage;
if(this.pageIndex+1>data.maxPage){
this.pageIndex=1
}else {
this.pageIndex=Number(this.pageIndex)+Number(1)
}
})
},
//
// mouseEnter (time) {
// //
// this.autoRoll(true)
// },
//
// mouseLeave () {
// //
// this.autoRoll()
// },
//
// autoRoll (stop) {
// if (stop) {
// clearInterval(rolltimer)
// return
// }
//
// // DOM
// const table = this.$refs.wt_table
// // div
// const divData = table.bodyWrapper
// //
// rolltimer = setInterval(() => {
// //
// divData.scrollTop = this.decimalUtil.add(Number(divData.scrollTop), Number(this.rollPx))
// // (+=)
// if (divData.clientHeight + divData.scrollTop +1>= divData.scrollHeight) {
// // table
//
// divData.scrollTop = 0
//
// }
// }, this.rollTime * 10)
// },
refreshTable () {
refresher = setInterval(() => {
this.search()
}, 30000)
}
},
created () {
this.search()
this.refreshTable()
}
}
</script>
<style >
.tableBoard .el-table .cell {
line-height: 13px;
font-size: 12px;
height: 13px;
padding: 0px;
}
.tableBoard .el-table .success-row {
background: #1bb61b;
}
.tableBoard .el-table .false-row {
background: #db1212;
}
</style>

5
src/views/modules/production/dailyPlan.vue

@ -158,6 +158,7 @@
header-align="center"
align="left"
min-width="100"
sortable
label="要求完成日期">
</el-table-column>
<el-table-column
@ -165,6 +166,7 @@
header-align="center"
align="left"
min-width="100"
sortable
label="订单号">
</el-table-column>
<el-table-column
@ -172,6 +174,7 @@
header-align="center"
align="left"
min-width="100"
sortable
label="产品编码">
</el-table-column>
<el-table-column
@ -179,6 +182,7 @@
header-align="center"
align="left"
min-width="100"
sortable
label="产成品名称">
</el-table-column>
<el-table-column
@ -186,6 +190,7 @@
header-align="center"
align="left"
min-width="100"
sortable
label="客户名称">
</el-table-column>
<el-table-column

5
src/views/modules/production/search_schedule.vue

@ -491,7 +491,7 @@
columnWidth: 100,
columnHidden: false,
columnImage: false,
columnSortable: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: false
@ -509,7 +509,7 @@
columnWidth: 80,
columnHidden: false,
columnImage: false,
columnSortable: false,
columnSortable: true,
sortLv: 0,
status: true,
fixed: false
@ -771,6 +771,7 @@
itemNo: this.rowData.itemNo,
scheduleDate: this.rowData.scheduledDate,
shiftNo: this.rowData.shiftNo,
seqNo: this.rowData.seqNo,
qty: this.printQty,
user: this.$store.state.user.name
}

2
static/config/init.js

@ -10,7 +10,7 @@
js: [
// 插件, 放置业务之前加载, 以免业务需求依赖插件时, 还未加载出错
// 插件 - echarts
window.SITE_CONFIG.cdnUrl + '/static/plugins/echarts-5.3.1/echarts.min.js',
window.SITE_CONFIG.cdnUrl + '/static/plugins/echarts/echarts.min.js',
// 插件 - ueditor
window.SITE_CONFIG.cdnUrl + '/static/plugins/ueditor-1.4.3.3/ueditor.config.js',
window.SITE_CONFIG.cdnUrl + '/static/plugins/ueditor-1.4.3.3/ueditor.all.min.js',

1
static/plugins/echarts-3.8.5/echarts.common.min.js
File diff suppressed because it is too large
View File

18
static/plugins/echarts-5.3.1/echarts.min.js
File diff suppressed because it is too large
View File

Loading…
Cancel
Save