8 changed files with 627 additions and 486 deletions
-
119src/App.vue
-
27src/utils/screenAdapt.js
-
43src/views/modules/longtron/production-plan-home-order.vue
-
167src/views/modules/longtron/screen-cable-cop-progress.vue
-
194src/views/modules/longtron/screen-factory-overview.vue
-
131src/views/modules/longtron/screen-machining-progress.vue
-
391src/views/modules/longtron/screen-renovation-progress.vue
-
41src/views/modules/longtron/screen-whole-lift-progress.vue
@ -0,0 +1,27 @@ |
|||||
|
export const SCREEN_DESIGN_WIDTH = 1920 |
||||
|
export const SCREEN_DESIGN_HEIGHT = 1080 |
||||
|
const SCREEN_SCALE_KEY = '__LONGCHUANG_SCREEN_SCALE__' |
||||
|
|
||||
|
export function setScreenScale(scale) { |
||||
|
if (typeof window === 'undefined') return |
||||
|
const safeScale = typeof scale === 'number' && scale > 0 ? scale : 1 |
||||
|
window[SCREEN_SCALE_KEY] = safeScale |
||||
|
} |
||||
|
|
||||
|
export function getScreenScale() { |
||||
|
if (typeof window === 'undefined') return 1 |
||||
|
const val = window[SCREEN_SCALE_KEY] |
||||
|
return typeof val === 'number' && val > 0 ? val : 1 |
||||
|
} |
||||
|
|
||||
|
export function getScreenInnerHeight() { |
||||
|
if (typeof window === 'undefined') return SCREEN_DESIGN_HEIGHT |
||||
|
const scale = getScreenScale() |
||||
|
return Math.max(0, Math.floor(window.innerHeight / scale)) |
||||
|
} |
||||
|
|
||||
|
export function getScreenInnerWidth() { |
||||
|
if (typeof window === 'undefined') return SCREEN_DESIGN_WIDTH |
||||
|
const scale = getScreenScale() |
||||
|
return Math.max(0, Math.floor(window.innerWidth / scale)) |
||||
|
} |
||||
@ -1,166 +1,5 @@ |
|||||
<template> |
|
||||
<div class="screen-wrap"> |
|
||||
<div class="top-bar"> |
|
||||
<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> |
|
||||
<div class="tools"> |
|
||||
<span class="time">{{ currentTime }}</span> |
|
||||
</div> |
|
||||
</div> |
|
||||
|
<script> |
||||
|
import ScreenRenovationProgress from './screen-renovation-progress' |
||||
|
|
||||
<div class="kpi-row"> |
|
||||
<div class="kpi-card"><div class="kpi-label">排产任务</div><div class="kpi-value">{{ kpi.total }}</div></div> |
|
||||
<div class="kpi-card"><div class="kpi-label">进行中</div><div class="kpi-value warning">{{ kpi.processing }}</div></div> |
|
||||
<div class="kpi-card"><div class="kpi-label">已完成</div><div class="kpi-value success">{{ kpi.finished }}</div></div> |
|
||||
<div class="kpi-card"><div class="kpi-label">完工达成率</div><div class="kpi-value highlight">{{ kpi.finishRate }}%</div></div> |
|
||||
</div> |
|
||||
|
|
||||
<div class="legend-row"> |
|
||||
<span class="legend-item"><i class="dot done"></i>已完成</span> |
|
||||
<span class="legend-item"><i class="dot todo"></i>未开始</span> |
|
||||
</div> |
|
||||
|
|
||||
<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> |
|
||||
<el-table-column prop="taskType" label="类别" min-width="120" align="center"> |
|
||||
<template slot-scope="scope"> |
|
||||
<el-tag class="board-tag" :class="getTaskTypeClass(scope.row.taskType)" size="small">{{ scope.row.taskType }}</el-tag> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
<el-table-column prop="planFinishDate" label="计划完工日期" min-width="130" align="center"></el-table-column> |
|
||||
<el-table-column prop="taskQty" label="任务数量" min-width="90" align="center"></el-table-column> |
|
||||
<el-table-column prop="reportQty" label="已报工数量" min-width="100" align="center"></el-table-column> |
|
||||
<el-table-column label="线缆生产" width="110" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'lineProduction')"></span></template></el-table-column> |
|
||||
<el-table-column label="COP生产" width="110" align="center"><template slot-scope="scope"><span :class="getNodeCellClass(scope.row, 'copProduction')"></span></template></el-table-column> |
|
||||
<el-table-column prop="status" label="任务状态" width="100" align="center"> |
|
||||
<template slot-scope="scope"> |
|
||||
<el-tag class="board-tag" :class="getTaskStatusClass(scope.row.status)" size="small">{{ scope.row.status }}</el-tag> |
|
||||
</template> |
|
||||
</el-table-column> |
|
||||
<el-table-column prop="finishDate" label="完工时间" width="120" align="center"><template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template></el-table-column> |
|
||||
</el-table> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import { getCableCopTaskList } from '@/api/longchuang/productionPlan' |
|
||||
const NODE_TEMPLATE = ['lineProduction', 'copProduction'] |
|
||||
export default { |
|
||||
name: 'ScreenCableCopProgress', |
|
||||
data() { |
|
||||
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); |
|
||||
// 看板数据60秒刷新一次 |
|
||||
this.boardTimerId = setInterval(() => { |
|
||||
this.loadBoardData() |
|
||||
}, 60000) |
|
||||
|
|
||||
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 |
|
||||
let statusList = ['已排产', '进行中'] |
|
||||
getCableCopTaskList({ page: 1, limit: 300 ,statusList: statusList}).then(({data}) => { |
|
||||
this.loading = false |
|
||||
const source = (data && data.code === 0 && data.page && data.page.list) ? data.page.list : this.getMockList() |
|
||||
this.boardList = this.buildBoardList(source) |
|
||||
this.buildKpi() |
|
||||
}).catch(() => { this.loading = false; this.boardList = this.buildBoardList(this.getMockList()); this.buildKpi() }) |
|
||||
}, |
|
||||
buildBoardList(sourceList) { |
|
||||
const statusAllow = ['已排产', '进行中', '已完成'] |
|
||||
return sourceList.filter(item => statusAllow.includes(item.status)).map(item => ({ ...item, nodeStatusMap: this.toNodeStatusMap(item.nodeList) })) |
|
||||
}, |
|
||||
toNodeStatusMap(nodeList) { |
|
||||
const map = {} |
|
||||
NODE_TEMPLATE.forEach(code => { map[code] = '未开始' }) |
|
||||
;(nodeList || []).forEach(node => { map[node.nodeCode] = node.status || '未开始' }) |
|
||||
return map |
|
||||
}, |
|
||||
buildKpi() { |
|
||||
const total = this.boardList.length |
|
||||
const processing = this.boardList.filter(item => item.status === '进行中').length |
|
||||
const finished = this.boardList.filter(item => item.status === '已完成').length |
|
||||
this.kpi = { total, processing, finished, finishRate: total ? Math.round((finished / total) * 100) : 0 } |
|
||||
}, |
|
||||
getNodeCellText(row, code) { return row.nodeStatusMap[code] || '未开始' }, |
|
||||
getNodeCellClass(row, code) { |
|
||||
const status = this.getNodeCellText(row, code) |
|
||||
if (status === '已完成') return 'node-chip done' |
|
||||
return 'node-chip todo' |
|
||||
}, |
|
||||
getTaskTypeClass(taskType) { |
|
||||
return taskType === '线缆自制' ? 'type-cable' : 'type-cop' |
|
||||
}, |
|
||||
getTaskStatusClass(status) { |
|
||||
if (status === '已完成') return 'status-done' |
|
||||
if (status === '进行中') return 'status-doing' |
|
||||
return 'status-planned' |
|
||||
}, |
|
||||
updateTime() { |
|
||||
const now = new Date() |
|
||||
const weekList = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'] |
|
||||
const d = this.dayjs(now) |
|
||||
this.currentTime = `${d.format('YYYY/MM/DD')} ${weekList[now.getDay()]} ${d.format('HH:mm:ss')}` |
|
||||
}, |
|
||||
getMockList() { |
|
||||
return [] |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
export default ScreenRenovationProgress |
||||
</script> |
</script> |
||||
|
|
||||
<style> |
|
||||
.screen-wrap{height:100vh;padding:16px;background:linear-gradient(165deg,#0a1f36 0%,#0f2b47 50%,#0a2037 100%);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden} |
|
||||
.top-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-radius:12px;border:1px solid rgba(109,167,219,.24);background:rgba(9,29,49,.82)} |
|
||||
.top-bar{position:relative} |
|
||||
.header-left{display:flex;align-items:center;min-width:110px;z-index:2} |
|
||||
.logo-box{width:86px;height:30px;border-radius:6px;border:1px solid rgba(128,198,255,.45);color:#d8edff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;background:rgba(36,82,122,.35)} |
|
||||
.header-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;max-width:70%;width:auto;padding:6px 24px 8px;border-radius:8px;border:1px solid rgba(96,170,232,.34);background:linear-gradient(180deg,rgba(33,73,116,.52),rgba(16,44,77,.42))} |
|
||||
.header-center::before{content:'';position:absolute;left:50%;transform:translateX(-50%);top:-8px;width:68%;height:1px;background:linear-gradient(90deg,rgba(87,164,230,0),rgba(87,164,230,.9),rgba(87,164,230,0))} |
|
||||
.top-bar .tools{margin-left:auto;z-index:2} |
|
||||
.title{color:#8fe7ff;font-size:30px;font-weight:800;letter-spacing:3px;line-height:1.05;text-shadow:0 0 14px rgba(79,179,255,.36)}.subtitle{margin-top:4px;color:#c7e8ff;font-size:12px;letter-spacing:1px} |
|
||||
.tools{display:flex;align-items:center;gap:12px}.time{color:#89d7ff;font-size:20px;font-weight:600} |
|
||||
.refresh-btn{background:#e9f3ff;border-color:#bad8f8;color:#2d7fc9}.refresh-btn:hover{background:#2d7fc9;border-color:#2d7fc9;color:#fff} |
|
||||
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0 8px} |
|
||||
.kpi-card{border-radius:10px;padding:12px 14px;background:rgba(14,43,70,.82);border:1px solid rgba(101,157,209,.22)} |
|
||||
.kpi-label{color:#b7d3ee;font-size:13px}.kpi-value{margin-top:6px;font-size:30px;font-weight:700;color:#edf6ff} |
|
||||
.kpi-value.warning{color:#ffd166}.kpi-value.success{color:#74dfa3}.kpi-value.highlight{color:#79d5ff} |
|
||||
.legend-row{display:flex;gap:16px;margin:0 0 10px 2px}.legend-item{display:inline-flex;align-items:center;color:#c7dff4;font-size:12px} |
|
||||
.dot{width:10px;height:10px;border-radius:50%;margin-right:6px;display:inline-block}.dot.done{background:#69e4a4}.dot.doing{background:#ffd35d}.dot.todo{background:#dbe3ee} |
|
||||
.board-table{border-radius:10px;overflow:hidden;border:1px solid rgba(86,140,190,.35);flex:1;min-height:0} |
|
||||
.board-table .cell { |
|
||||
line-height: 30px; |
|
||||
font-size: 16px; |
|
||||
height: 30px; |
|
||||
} |
|
||||
.screen-wrap .board-table .el-table,.screen-wrap .board-table .el-table__expanded-cell,.screen-wrap .board-table .el-table__body-wrapper,.screen-wrap .board-table .el-table__empty-block,.screen-wrap .board-table .el-table__fixed-body-wrapper{background:rgba(12,39,64,.96)!important;color:#fff!important} |
|
||||
.screen-wrap .board-table .el-table__header-wrapper th,.screen-wrap .board-table .el-table__fixed-header-wrapper th{background:#123a5e!important;color:#d9e9f8!important;border-color:rgba(80,133,181,.6)!important;font-size:14px!important;padding:12px 0!important} |
|
||||
.screen-wrap .board-table .el-table__body tr>td,.screen-wrap .board-table .el-table__fixed-body-wrapper tr>td,.screen-wrap .board-table .el-table__fixed-right .el-table__fixed-body-wrapper tr>td{background:rgba(20,52,83,.96)!important;border-color:rgba(88,139,187,.4)!important;color:#fff!important;height:46px!important;vertical-align:middle!important} |
|
||||
.screen-wrap .board-table .el-table--striped .el-table__body tr.el-table__row--striped>td,.screen-wrap .board-table .el-table__fixed-body-wrapper tr.el-table__row--striped>td{background:rgba(29,66,102,.96)!important} |
|
||||
.screen-wrap .board-table .el-table--enable-row-hover .el-table__body tr:hover>td,.screen-wrap .board-table .el-table__fixed-body-wrapper tr:hover>td{background:rgba(39,81,123,.96)!important} |
|
||||
.screen-wrap .board-table .el-table .cell{color:#fff!important;line-height:24px!important;overflow:visible!important} |
|
||||
.screen-wrap .board-table .el-table__empty-text{color:#9ac2e7!important} |
|
||||
.node-chip{display:inline-block!important;width:46px;height:14px;margin:0 auto;border-radius:2px} |
|
||||
.node-chip.done{background:#6de3a0}.node-chip.todo{background:#dce4ee} |
|
||||
.board-tag{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:66px!important;height:24px!important;padding:0 10px!important;border-radius:12px!important;border:1px solid transparent!important;font-size:12px!important;font-weight:600!important;line-height:22px!important;box-sizing:border-box!important} |
|
||||
.board-tag.type-cable{color:#73cfff!important;background:rgba(28,88,136,.32)!important;border-color:rgba(115,207,255,.45)!important} |
|
||||
.board-tag.type-cop{color:#7ef0c0!important;background:rgba(31,108,89,.32)!important;border-color:rgba(126,240,192,.45)!important} |
|
||||
.board-tag.status-planned{color:#b9c7d8!important;background:rgba(96,118,141,.28)!important;border-color:rgba(185,199,216,.34)!important} |
|
||||
.board-tag.status-doing{color:#ffd774!important;background:rgba(120,92,27,.32)!important;border-color:rgba(255,215,116,.45)!important} |
|
||||
.board-tag.status-done{color:#83f3be!important;background:rgba(31,110,84,.32)!important;border-color:rgba(131,243,190,.45)!important} |
|
||||
</style> |
|
||||
@ -1,132 +1,5 @@ |
|||||
<template> |
|
||||
<div class="screen-wrap"> |
|
||||
<div class="top-bar"> |
|
||||
<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> |
|
||||
<div class="tools"> |
|
||||
<span class="time">{{ currentTime }}</span> |
|
||||
</div> |
|
||||
</div> |
|
||||
|
|
||||
<div class="kpi-row"> |
|
||||
<div class="kpi-card"><div class="kpi-label">排产任务</div><div class="kpi-value">{{ kpi.total }}</div></div> |
|
||||
<div class="kpi-card"><div class="kpi-label">进行中</div><div class="kpi-value warning">{{ kpi.processing }}</div></div> |
|
||||
<div class="kpi-card"><div class="kpi-label">已完成</div><div class="kpi-value success">{{ kpi.finished }}</div></div> |
|
||||
<div class="kpi-card"><div class="kpi-label">完工达成率</div><div class="kpi-value highlight">{{ kpi.finishRate }}%</div></div> |
|
||||
</div> |
|
||||
|
|
||||
<el-table class="board-table" :data="boardList" :height="tableHeight" border stripe> |
|
||||
<el-table-column type="index" label="序号" width="70" align="center"></el-table-column> |
|
||||
<el-table-column prop="modelNo" label="物料号" min-width="180" align="center"></el-table-column> |
|
||||
<el-table-column prop="taskQty" label="计划数量" min-width="130" align="center"></el-table-column> |
|
||||
<el-table-column prop="reportQty" label="实际数量" min-width="130" align="center"></el-table-column> |
|
||||
<el-table-column prop="planFinishDate" label="计划完工日期" min-width="170" align="center"></el-table-column> |
|
||||
<el-table-column prop="finishDate" label="实际完工日期" min-width="170" align="center"> |
|
||||
<template slot-scope="scope">{{ scope.row.finishDate || '-' }}</template> |
|
||||
</el-table-column> |
|
||||
</el-table> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
<script> |
||||
import { getMachiningTaskList } from '@/api/longchuang/productionPlan' |
|
||||
|
import ScreenRenovationProgress from './screen-renovation-progress' |
||||
|
|
||||
export default { |
|
||||
name: 'ScreenMachiningProgress', |
|
||||
data() { |
|
||||
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) |
|
||||
this.boardTimerId = setInterval(() => { |
|
||||
this.loadBoardData() |
|
||||
}, 60000) |
|
||||
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 - 220) |
|
||||
}, |
|
||||
loadBoardData() { |
|
||||
if (this.loading) return |
|
||||
this.loading = true |
|
||||
getMachiningTaskList({ page: 1, limit: 300, statusList: ['已排产', '进行中', '已完成'] }).then(({ data }) => { |
|
||||
this.loading = false |
|
||||
const source = (data && data.code === 0 && data.page && data.page.list) ? data.page.list : this.getMockList() |
|
||||
this.boardList = this.buildBoardList(source) |
|
||||
this.buildKpi() |
|
||||
}).catch(() => { |
|
||||
this.loading = false |
|
||||
this.boardList = this.buildBoardList(this.getMockList()) |
|
||||
this.buildKpi() |
|
||||
}) |
|
||||
}, |
|
||||
buildBoardList(sourceList) { |
|
||||
const statusAllow = ['已排产', '进行中', '已完成'] |
|
||||
return (sourceList || []).filter(item => statusAllow.includes(item.status)).map(item => ({ |
|
||||
...item, |
|
||||
taskQty: item.taskQty == null ? 0 : item.taskQty, |
|
||||
reportQty: item.reportQty == null ? 0 : item.reportQty |
|
||||
})) |
|
||||
}, |
|
||||
buildKpi() { |
|
||||
const total = this.boardList.length |
|
||||
const processing = this.boardList.filter(item => item.status === '进行中').length |
|
||||
const finished = this.boardList.filter(item => item.status === '已完成').length |
|
||||
this.kpi = { total, processing, finished, finishRate: total ? Math.round((finished / total) * 100) : 0 } |
|
||||
}, |
|
||||
updateTime() { |
|
||||
const now = new Date() |
|
||||
const weekList = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'] |
|
||||
const d = this.dayjs(now) |
|
||||
this.currentTime = `${d.format('YYYY/MM/DD')} ${weekList[now.getDay()]} ${d.format('HH:mm:ss')}` |
|
||||
}, |
|
||||
getMockList() { |
|
||||
return [] |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
export default ScreenRenovationProgress |
||||
</script> |
</script> |
||||
|
|
||||
<style> |
|
||||
.screen-wrap{height:100vh;padding:16px;background:linear-gradient(165deg,#0a1f36 0%,#0f2b47 50%,#0a2037 100%);display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden} |
|
||||
.top-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-radius:12px;border:1px solid rgba(109,167,219,.24);background:rgba(9,29,49,.82)} |
|
||||
.top-bar{position:relative} |
|
||||
.header-left{display:flex;align-items:center;min-width:110px;z-index:2} |
|
||||
.header-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;max-width:70%;width:auto;padding:6px 24px 8px;border-radius:8px;border:1px solid rgba(96,170,232,.34);background:linear-gradient(180deg,rgba(33,73,116,.52),rgba(16,44,77,.42))} |
|
||||
.header-center::before{content:'';position:absolute;left:50%;transform:translateX(-50%);top:-8px;width:68%;height:1px;background:linear-gradient(90deg,rgba(87,164,230,0),rgba(87,164,230,.9),rgba(87,164,230,0))} |
|
||||
.top-bar .tools{margin-left:auto;z-index:2} |
|
||||
.title{color:#8fe7ff;font-size:30px;font-weight:800;letter-spacing:3px;line-height:1.05;text-shadow:0 0 14px rgba(79,179,255,.36)} |
|
||||
.tools{display:flex;align-items:center;gap:12px}.time{color:#89d7ff;font-size:20px;font-weight:600} |
|
||||
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 0 10px} |
|
||||
.kpi-card{border-radius:10px;padding:12px 14px;background:rgba(14,43,70,.82);border:1px solid rgba(101,157,209,.22)} |
|
||||
.kpi-label{color:#b7d3ee;font-size:13px}.kpi-value{margin-top:6px;font-size:30px;font-weight:700;color:#edf6ff} |
|
||||
.kpi-value.warning{color:#ffd166}.kpi-value.success{color:#74dfa3}.kpi-value.highlight{color:#79d5ff} |
|
||||
.board-table{border-radius:10px;overflow:hidden;border:1px solid rgba(86,140,190,.35);flex:1;min-height:0} |
|
||||
.board-table .cell{line-height:30px;font-size:16px;height:30px} |
|
||||
.screen-wrap .board-table .el-table,.screen-wrap .board-table .el-table__expanded-cell,.screen-wrap .board-table .el-table__body-wrapper,.screen-wrap .board-table .el-table__empty-block,.screen-wrap .board-table .el-table__fixed-body-wrapper{background:rgba(12,39,64,.96)!important;color:#fff!important} |
|
||||
.screen-wrap .board-table .el-table__header-wrapper th,.screen-wrap .board-table .el-table__fixed-header-wrapper th{background:#123a5e!important;color:#d9e9f8!important;border-color:rgba(80,133,181,.6)!important;font-size:14px!important;padding:12px 0!important} |
|
||||
.screen-wrap .board-table .el-table__body tr>td,.screen-wrap .board-table .el-table__fixed-body-wrapper tr>td,.screen-wrap .board-table .el-table__fixed-right .el-table__fixed-body-wrapper tr>td{background:rgba(20,52,83,.96)!important;border-color:rgba(88,139,187,.4)!important;color:#fff!important;height:46px!important;vertical-align:middle!important} |
|
||||
.screen-wrap .board-table .el-table--striped .el-table__body tr.el-table__row--striped>td,.screen-wrap .board-table .el-table__fixed-body-wrapper tr.el-table__row--striped>td{background:rgba(29,66,102,.96)!important} |
|
||||
.screen-wrap .board-table .el-table--enable-row-hover .el-table__body tr:hover>td,.screen-wrap .board-table .el-table__fixed-body-wrapper tr:hover>td{background:rgba(39,81,123,.96)!important} |
|
||||
.screen-wrap .board-table .el-table .cell{color:#fff!important;line-height:24px!important;overflow:visible!important} |
|
||||
.screen-wrap .board-table .el-table__empty-text{color:#9ac2e7!important} |
|
||||
</style> |
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue