Browse Source

样式

master
han\hanst 3 weeks ago
parent
commit
711af6e614
  1. 32
      src/views/modules/longtron/screen-cable-cop-progress.vue
  2. 12
      src/views/modules/longtron/screen-factory-overview.vue
  3. 33
      src/views/modules/longtron/screen-renovation-progress.vue
  4. 32
      src/views/modules/longtron/screen-whole-lift-progress.vue

32
src/views/modules/longtron/screen-cable-cop-progress.vue

@ -1,7 +1,7 @@
<template>
<div class="screen-wrap">
<div class="top-bar">
<div class="header-left"><div class="logo-box">LOGO</div></div>
<div class="header-left"><img class="site-navbar__brand-logo" src="~@/assets/img/lc.png" alt="龙闯电梯"></div>
<div class="header-center">
<div class="title">生产进度管理看板 · 线缆/COP自制</div>
</div>
@ -22,7 +22,7 @@
<span class="legend-item"><i class="dot todo"></i>未开始</span>
</div>
<el-table class="board-table" :data="boardList" :height="tableHeight" v-loading="loading" border stripe>
<el-table class="board-table" :data="boardList" :height="tableHeight" border stripe>
<el-table-column type="index" label="序号" width="60" align="center"></el-table-column>
<el-table-column prop="taskNo" label="任务单号" min-width="160" align="center"></el-table-column>
<el-table-column prop="sourceProjectNo" label="来源项目号" min-width="130" align="center"></el-table-column>
@ -52,15 +52,26 @@ const NODE_TEMPLATE = ['lineProduction', 'copProduction']
export default {
name: 'ScreenCableCopProgress',
data() {
return { loading: false, tableHeight: 640, currentTime: '', timerId: null, boardList: [], kpi: { total: 0, processing: 0, finished: 0, finishRate: 0 } }
return { loading: false, boardTimerId: null,tableHeight: 640, currentTime: '', timerId: null, boardList: [], kpi: { total: 0, processing: 0, finished: 0, finishRate: 0 } }
},
mounted() { this.setTableHeight(); this.loadBoardData(); this.updateTime(); this.timerId = setInterval(this.updateTime, 1000); window.addEventListener('resize', this.setTableHeight) },
beforeDestroy() { if (this.timerId) clearInterval(this.timerId); window.removeEventListener('resize', this.setTableHeight) },
mounted() { this.setTableHeight(); this.loadBoardData(); this.updateTime(); this.timerId = setInterval(this.updateTime, 1000);
// 10
this.boardTimerId = setInterval(() => {
this.loadBoardData()
}, 10000)
window.addEventListener('resize', this.setTableHeight) },
beforeDestroy() { if (this.timerId) clearInterval(this.timerId);
if (this.boardTimerId) {
clearInterval(this.boardTimerId)
}
window.removeEventListener('resize', this.setTableHeight) },
methods: {
setTableHeight() {
this.tableHeight = Math.max(420, window.innerHeight - 240)
},
loadBoardData() {
if (this.loading) return
this.loading = true
getCableCopTaskList({ page: 1, limit: 300 }).then(({data}) => {
this.loading = false
@ -106,16 +117,7 @@ export default {
this.currentTime = `${d.format('YYYY/MM/DD')} ${weekList[now.getDay()]} ${d.format('HH:mm:ss')}`
},
getMockList() {
return [
{ taskNo: 'TASK-XL-202603-001', sourceProjectNo: 'LPM308010', taskType: '线缆自制', planFinishDate: '3月13日', taskQty: 20, reportQty: 10, status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'lineProduction', status: '进行中' }, { nodeCode: 'copProduction', status: '未开始' }] },
{ taskNo: 'TASK-COP-202603-002', sourceProjectNo: 'YB101323', taskType: 'COP自制', planFinishDate: '3月10日', taskQty: 16, reportQty: 16, status: '已完成', finishDate: '3月10日', nodeList: NODE_TEMPLATE.map(code => ({ nodeCode: code, status: '已完成' })) },
{ taskNo: 'TASK-XL-202603-003', sourceProjectNo: 'LPM308021', taskType: '线缆自制', planFinishDate: '3月14日', taskQty: 18, reportQty: 6, status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'lineProduction', status: '进行中' }, { nodeCode: 'copProduction', status: '未开始' }] },
{ taskNo: 'TASK-COP-202603-004', sourceProjectNo: 'YB101337', taskType: 'COP自制', planFinishDate: '3月15日', taskQty: 12, reportQty: 0, status: '已排产', finishDate: '', nodeList: [] },
{ taskNo: 'TASK-XL-202603-005', sourceProjectNo: 'LPM308045', taskType: '线缆自制', planFinishDate: '3月16日', taskQty: 22, reportQty: 22, status: '已完成', finishDate: '3月16日', nodeList: NODE_TEMPLATE.map(code => ({ nodeCode: code, status: '已完成' })) },
{ taskNo: 'TASK-COP-202603-006', sourceProjectNo: 'YB101352', taskType: 'COP自制', planFinishDate: '3月17日', taskQty: 10, reportQty: 4, status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'lineProduction', status: '已完成' }, { nodeCode: 'copProduction', status: '进行中' }] },
{ taskNo: 'TASK-XL-202603-007', sourceProjectNo: 'LPM308063', taskType: '线缆自制', planFinishDate: '3月18日', taskQty: 14, reportQty: 0, status: '已排产', finishDate: '', nodeList: [] },
{ taskNo: 'TASK-COP-202603-008', sourceProjectNo: 'YB101380', taskType: 'COP自制', planFinishDate: '3月19日', taskQty: 24, reportQty: 24, status: '已完成', finishDate: '3月19日', nodeList: NODE_TEMPLATE.map(code => ({ nodeCode: code, status: '已完成' })) }
]
return []
}
}
}

12
src/views/modules/longtron/screen-factory-overview.vue

@ -1,7 +1,7 @@
<template>
<div class="overview-page">
<div class="overview-header">
<div class="left-logo"><div class="logo-box">LOGO</div></div>
<div class="header-left"><img class="site-navbar__brand-logo" src="~@/assets/img/lc.png" alt="龙闯电梯"></div>
<div class="header-center">
<div class="header-title">龙闯电梯 MES - 工厂综合运营大屏</div>
</div>
@ -16,7 +16,7 @@
<div class="kpi-value">{{ kpi.monthWhole }}</div>
</div>
<div class="kpi-card">
<div class="kpi-label">本月改造排产</div>
<div class="kpi-label">本月VL2.5升级排产</div>
<div class="kpi-value">{{ kpi.monthRenovation }}</div>
</div>
<div class="kpi-card">
@ -225,7 +225,7 @@ export default {
grid: { left: 30, right: 20, top: 40, bottom: 20, containLabel: true },
tooltip: { trigger: 'axis' },
legend: { textStyle: { color: '#cbe7ff' }, data: ['排产量', '完工量'] },
xAxis: { type: 'category', axisLabel: { color: '#cbe7ff' }, data: ['整梯', '改造', '线缆/COP'] },
xAxis: { type: 'category', axisLabel: { color: '#cbe7ff' }, data: ['整梯', 'VL2.5升级', '线缆/COP'] },
yAxis: { type: 'value', axisLabel: { color: '#cbe7ff' }, splitLine: { lineStyle: { color: 'rgba(160,200,240,0.15)' } } },
series: [
{ name: '排产量', type: 'bar', barWidth: 24, data: [scheduledWhole, scheduledRenovation, scheduledTask], itemStyle: { color: '#4fa8ff' } },
@ -251,7 +251,7 @@ export default {
label: { color: '#d4ebff' },
data: [
{ value: wholeCount, name: '整梯订单' },
{ value: renovationCount, name: '改造订单' },
{ value: renovationCount, name: 'VL2.5升级订单' },
{ value: taskCount, name: '线缆/COP任务' }
]
}]
@ -274,12 +274,12 @@ export default {
color: ['#6cc7ff', '#74e0b3'],
grid: { left: 35, right: 20, top: 34, bottom: 20, containLabel: true },
tooltip: { trigger: 'axis' },
legend: { textStyle: { color: '#cbe7ff' }, data: ['整梯完工', '改造完工'] },
legend: { textStyle: { color: '#cbe7ff' }, data: ['整梯完工', 'VL2.5升级完工'] },
xAxis: { type: 'category', axisLabel: { color: '#cbe7ff' }, data: xAxis },
yAxis: { type: 'value', axisLabel: { color: '#cbe7ff' }, splitLine: { lineStyle: { color: 'rgba(160,200,240,0.15)' } } },
series: [
{ name: '整梯完工', type: 'line', smooth: true, symbol: 'circle', symbolSize: 7, data: wholeSeries, itemStyle: { color: '#6cc7ff' }, lineStyle: { color: '#6cc7ff' }, areaStyle: { color: 'rgba(108,199,255,0.18)' } },
{ name: '改造完工', type: 'line', smooth: true, symbol: 'circle', symbolSize: 7, data: renovationSeries, itemStyle: { color: '#74e0b3' }, lineStyle: { color: '#74e0b3' }, areaStyle: { color: 'rgba(116,224,179,0.18)' } }
{ name: 'VL2.5升级完工', type: 'line', smooth: true, symbol: 'circle', symbolSize: 7, data: renovationSeries, itemStyle: { color: '#74e0b3' }, lineStyle: { color: '#74e0b3' }, areaStyle: { color: 'rgba(116,224,179,0.18)' } }
]
}, true)
},

33
src/views/modules/longtron/screen-renovation-progress.vue

@ -1,7 +1,7 @@
<template>
<div class="screen-wrap">
<div class="top-bar">
<div class="header-left"><div class="logo-box">LOGO</div></div>
<div class="header-left"><img class="site-navbar__brand-logo" src="~@/assets/img/lc.png" alt="龙闯电梯"></div>
<div class="header-center">
<div class="title">生产进度管理看板 · VL2.5升级</div>
</div>
@ -22,7 +22,7 @@
<span class="legend-item"><i class="dot todo"></i>未开始</span>
</div>
<el-table class="board-table" :data="boardList" :height="tableHeight" v-loading="loading" border stripe>
<el-table class="board-table" :data="boardList" :height="tableHeight" border stripe>
<el-table-column type="index" label="序号" width="60" align="center"></el-table-column>
<el-table-column prop="projectNo" label="项目号" min-width="130" align="center"></el-table-column>
<el-table-column prop="floors" label="楼层" min-width="80" align="center"></el-table-column>
@ -43,15 +43,26 @@ const NODE_TEMPLATE = ['stocking', 'assy', 'inspect', 'pack']
export default {
name: 'ScreenRenovationProgress',
data() {
return { loading: false, tableHeight: 640, currentTime: '', timerId: null, boardList: [], kpi: { total: 0, processing: 0, finished: 0, finishRate: 0 } }
return { loading: false, boardTimerId: null, tableHeight: 640, currentTime: '', timerId: null, boardList: [], kpi: { total: 0, processing: 0, finished: 0, finishRate: 0 } }
},
mounted() { this.setTableHeight(); this.loadBoardData(); this.updateTime(); this.timerId = setInterval(this.updateTime, 1000); window.addEventListener('resize', this.setTableHeight) },
beforeDestroy() { if (this.timerId) clearInterval(this.timerId); window.removeEventListener('resize', this.setTableHeight) },
mounted() { this.setTableHeight(); this.loadBoardData(); this.updateTime(); this.timerId = setInterval(this.updateTime, 1000);
// 10
this.boardTimerId = setInterval(() => {
this.loadBoardData()
}, 10000)
window.addEventListener('resize', this.setTableHeight) },
beforeDestroy() { if (this.timerId) clearInterval(this.timerId);
if (this.boardTimerId) {
clearInterval(this.boardTimerId)
}
window.removeEventListener('resize', this.setTableHeight) },
methods: {
setTableHeight() {
this.tableHeight = Math.max(420, window.innerHeight - 240)
},
loadBoardData() {
if (this.loading) return
this.loading = true
getRenovationOrderList({ page: 1, limit: 300 }).then(({data}) => {
this.loading = false
@ -94,17 +105,7 @@ export default {
this.currentTime = `${d.format('YYYY/MM/DD')} ${weekList[now.getDay()]} ${d.format('HH:mm:ss')}`
},
getMockList() {
return [
{ projectNo: 'GZ-202603-001', buildingName: '虹桥大厦旧楼加装', elevatorType: '客梯', floors: 6, site: '上海', planFinishDate: '3月18日', status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '已完成' }, { nodeCode: 'assy', status: '进行中' }] },
{ projectNo: 'GZ-202603-002', buildingName: '东苑小区电梯更新', elevatorType: '载货梯', floors: 8, site: '苏州', planFinishDate: '3月22日', status: '已排产', finishDate: '', nodeList: [] },
{ projectNo: 'GZ-202603-003', buildingName: '金桥写字楼改造', elevatorType: '客梯', floors: 10, site: '杭州', planFinishDate: '3月16日', status: '已完成', finishDate: '3月15日', nodeList: NODE_TEMPLATE.map(code => ({ nodeCode: code, status: '已完成' })) },
{ projectNo: 'GZ-202603-003', buildingName: '金桥写字楼改造', elevatorType: '客梯', floors: 10, site: '杭州', planFinishDate: '3月16日', status: '已完成', finishDate: '3月15日', nodeList: NODE_TEMPLATE.map(code => ({ nodeCode: code, status: '已完成' })) },
{ projectNo: 'GZ-202603-004', buildingName: '长宁社区旧梯焕新', elevatorType: '客梯', floors: 7, site: '上海', planFinishDate: '3月20日', status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '已完成' }, { nodeCode: 'assy', status: '已完成' }, { nodeCode: 'inspect', status: '进行中' }] },
{ projectNo: 'GZ-202603-005', buildingName: '龙湖广场货梯升级', elevatorType: '载货梯', floors: 5, site: '南京', planFinishDate: '3月21日', status: '已排产', finishDate: '', nodeList: [] },
{ projectNo: 'GZ-202603-006', buildingName: '海棠苑住宅加装', elevatorType: '客梯', floors: 9, site: '无锡', planFinishDate: '3月23日', status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '已完成' }, { nodeCode: 'assy', status: '进行中' }] },
{ projectNo: 'GZ-202603-007', buildingName: '工业园卸货梯整改', elevatorType: '载货梯', floors: 4, site: '常州', planFinishDate: '3月24日', status: '已完成', finishDate: '3月23日', nodeList: NODE_TEMPLATE.map(code => ({ nodeCode: code, status: '已完成' })) },
{ projectNo: 'GZ-202603-008', buildingName: '世纪花园电梯改造', elevatorType: '客梯', floors: 11, site: '宁波', planFinishDate: '3月25日', status: '已排产', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '未开始' }] }
]
return []
}
}
}

32
src/views/modules/longtron/screen-whole-lift-progress.vue

@ -1,7 +1,7 @@
<template>
<div class="screen-wrap">
<div class="top-bar">
<div class="header-left"><div class="logo-box">LOGO</div></div>
<div class="header-left"><img class="site-navbar__brand-logo" src="~@/assets/img/lc.png" alt="龙闯电梯"></div>
<div class="header-center">
<div class="title">生产进度管理看板 · 家用电梯</div>
</div>
@ -22,7 +22,7 @@
<span class="legend-item"><i class="dot todo"></i>未开始</span>
</div>
<el-table class="board-table" :data="boardList" :height="tableHeight" v-loading="loading" border stripe>
<el-table class="board-table" :data="boardList" :height="tableHeight" border stripe>
<el-table-column type="index" label="序号" width="60" align="center"></el-table-column>
<el-table-column prop="projectNo" label="项目号" width="140" align="center"></el-table-column>
<el-table-column prop="modelNo" label="型号" width="130" align="center"></el-table-column>
@ -54,6 +54,7 @@ export default {
tableHeight: 640,
currentTime: '',
timerId: null,
boardTimerId: null,
boardList: [],
kpi: { total: 0, processing: 0, finished: 0, finishRate: 0 }
}
@ -63,10 +64,23 @@ export default {
this.loadBoardData()
this.updateTime()
this.timerId = setInterval(this.updateTime, 1000)
// 10
this.boardTimerId = setInterval(() => {
this.loadBoardData()
}, 10000)
window.addEventListener('resize', this.setTableHeight)
},
beforeDestroy() {
if (this.timerId) clearInterval(this.timerId)
if (this.timerId) {
clearInterval(this.timerId)
}
if (this.boardTimerId) {
clearInterval(this.boardTimerId)
}
window.removeEventListener('resize', this.setTableHeight)
},
methods: {
@ -74,6 +88,7 @@ export default {
this.tableHeight = Math.max(420, window.innerHeight - 240)
},
loadBoardData() {
if (this.loading) return
this.loading = true
getHomeLiftOrderList({ page: 1, limit: 300 }).then(({data}) => {
this.loading = false
@ -122,16 +137,7 @@ export default {
this.currentTime = `${d.format('YYYY/MM/DD')} ${weekList[now.getDay()]} ${d.format('HH:mm:ss')}`
},
getMockList() {
return [
{ projectNo: 'LC-202604-001', modelNo: 'LC-HOME-820', color: '香槟白', floorCount: 4, specialRequirement: '厅门防刮', planDeliveryDate: '2026-03-18', status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '已完成' }, { nodeCode: 'platformDebug', status: '进行中' }] },
{ projectNo: 'LC-202604-002', modelNo: 'LC-HOME-1050', color: '希腊白', floorCount: 4, specialRequirement: '静音模式', planDeliveryDate: '2026-03-18', status: '已排产', finishDate: '', nodeList: [] },
{ projectNo: 'LC-202604-003', modelNo: 'LC-HOME-920', color: '灰灰', floorCount: 6, specialRequirement: '加装语音报站', planDeliveryDate: '2026-03-20', status: '已完成', finishDate: '2026-03-19', nodeList: NODE_TEMPLATE.map(code => ({ nodeCode: code, status: '已完成' })) },
{ projectNo: 'LC-202604-004', modelNo: 'LC-HOME-980', color: '砂岩金', floorCount: 5, specialRequirement: '加宽门套', planDeliveryDate: '2026-03-21', status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '已完成' }, { nodeCode: 'platformDebug', status: '已完成' }, { nodeCode: 'bgCeiling', status: '进行中' }] },
{ projectNo: 'LC-202604-005', modelNo: 'LC-HOME-760', color: '深空灰', floorCount: 3, specialRequirement: '井道照明增强', planDeliveryDate: '2026-03-22', status: '已排产', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '未开始' }] },
{ projectNo: 'LC-202604-006', modelNo: 'LC-HOME-1100', color: '曜石黑', floorCount: 7, specialRequirement: '门机静音升级', planDeliveryDate: '2026-03-23', status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '已完成' }, { nodeCode: 'platformDebug', status: '进行中' }, { nodeCode: 'bgCeiling', status: '未开始' }] },
{ projectNo: 'LC-202604-007', modelNo: 'LC-HOME-900', color: '雾霾蓝', floorCount: 4, specialRequirement: '控制柜防潮', planDeliveryDate: '2026-03-24', status: '已完成', finishDate: '2026-03-23', nodeList: NODE_TEMPLATE.map(code => ({ nodeCode: code, status: '已完成' })) },
{ projectNo: 'LC-202604-008', modelNo: 'LC-HOME-840', color: '珍珠白', floorCount: 5, specialRequirement: '门头发光字定制', planDeliveryDate: '2026-03-25', status: '进行中', finishDate: '', nodeList: [{ nodeCode: 'stocking', status: '已完成' }, { nodeCode: 'platformDebug', status: '已完成' }, { nodeCode: 'bgCeiling', status: '已完成' }, { nodeCode: 'doorAssy', status: '进行中' }] }
]
return []
}
}
}

Loading…
Cancel
Save