From 38f0a9145a29f570331f11505968f90bd1c08646 Mon Sep 17 00:00:00 2001 From: batman <978517621@qq.com> Date: 星期一, 06 三月 2023 13:22:33 +0800 Subject: [PATCH] 新修改添加页面 --- src/views/intellectInspect/inspectIndex2/index.vue | 1003 ++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 661 insertions(+), 342 deletions(-) diff --git a/src/views/intellectInspect/inspectIndex2/index.vue b/src/views/intellectInspect/inspectIndex2/index.vue index 2e64240..c530dfd 100644 --- a/src/views/intellectInspect/inspectIndex2/index.vue +++ b/src/views/intellectInspect/inspectIndex2/index.vue @@ -1,62 +1,174 @@ <template> <div class="home-container"> <div style="height: 100%"> - <div class="homeCard topCard"> - <div class="title">当前巡检任务</div> - <div class="top-info" v-if="unchecked != 0 || unusual != 0"> - <el-icon :size="18" color="#F3001E" style="margin-right: 4px"><BellFilled /></el-icon> - 预警消息: - <div v-if="unchecked != 0"> + <div class="topChart"> + <div class="chart-item"> + <div class="chart-tit"> + <span class="tit">年度巡检异常趋势</span> + </div> + <div class="chart" :id="xjLine"></div> + </div> + <div class="chart-item"> + <div class="chart-tit"> + <span class="tit">异常区域设备统计</span> + <el-switch + v-model="chartStatus" + class="ml-2" + inline-prompt + style="--el-switch-on-color: #13ce66; --el-switch-off-color: #13ce66" + active-text="区域" + inactive-text="设备" + /> + </div> + <dv-active-ring-chart :config="conf" class="chart"/> + <el-radio-group v-model="period" label="size control" size="small" height="250px" style="display: flex;justify-content: center;margin-top: 10px"> + <el-radio-button label="week">近7天</el-radio-button> + <el-radio-button label="month">近30天</el-radio-button> + <el-radio-button label="season">近90天</el-radio-button> + <el-radio-button label="year">近一年</el-radio-button> + </el-radio-group> + </div> + </div> + <div class="midChart"> + <div class="chart-item"> + <div class="chart-tit"> + <div style="display: flex;align-items: center"> + <span class="tit">当前巡检任务</span> + <div class="top-info" v-if="unchecked != 0 || unusual != 0"> + <el-icon :size="18" color="#F3001E" style="margin-right: 4px"><BellFilled /></el-icon> + <div>预警消息:</div> + <div v-if="unchecked != 0"> 当日超期未巡检任务<el-tooltip - class="box-item" - effect="light" - content="查看相关记录" - placement="bottom-start" - ><span @click="toOverTime(4)">{{ unchecked }}</span></el-tooltip>个 - </div> - <span v-if="unchecked != 0 && unusual != 0">,</span> - <div v-if="unusual != 0"> + class="box-item" + effect="light" + content="查看相关记录" + placement="bottom-start" + ><span @click="toOverTime(4)">{{ unchecked }}</span></el-tooltip>个 + </div> + <span v-if="unchecked != 0 && unusual != 0">,</span> + <div v-if="unusual != 0"> 存在异常任务<el-tooltip - class="box-item" - effect="light" - content="查看相关记录" - placement="bottom-start" - ><span @click="toOverTime(5)">{{ unusual }}</span - ></el-tooltip>个 + class="box-item" + effect="light" + content="查看相关记录" + placement="bottom-start" + ><span @click="toOverTime(5)">{{ unusual }}</span + ></el-tooltip>个 + </div> + 。 </div> - 。 + </div> + <div class="checkAll" @click="checkAllRecord()"> + 全部记录>> + </div> </div> - </div> - <div class="homeCard"> - <div class="main-card"> - <div class="list"> - <div class="cardTop" v-for="(item, index) in tableData" :key="index"> - <div class="left-info"> - <span class="num">{{ pageSize * (pageIndex - 1) + index + 1 }}、</span> - <span class="place">{{ item.taskName }},</span> - <p v-if="item.execUserName == null">该任务暂无人认领</p> - <p v-else> - <span class="time">{{ item.taskStatus == 2 ? item.startTime : item.endTime }}</span - >由<span class="name">{{ item.execUserName }}</span - >进行的巡检任务 - </p> - </div> - <div class="mid-info"> - 任务状态:<span :class="item.taskStatus == 1 ? 'grey' : item.taskStatus == 2 ? 'green' : item.taskStatus == 3 ? 'blue' : 'red'">{{ item.taskStatus == 1 ? '待巡检' : item.taskStatus == 2 ? '巡检中' : item.taskStatus == 3 ? '已巡检' : '超期未巡检' }}</span> - </div> - <div class="right-info"> - <div v-if="item.taskStatus == 2" @click="toLine(item)" class="checkBtn">查看实时巡检</div> - <div v-else class="reviewBtn" @click="toDetails('查看', item)">[查看巡检记录]</div> - </div> - </div> + <div class="chart"> +<!-- <el-table :data="tableData" style="width: 100%" stripe border>--> +<!-- <el-table-column label="任务信息" align="center">--> +<!-- <template #default="scope">--> +<!-- <div class="left-info">--> +<!-- <span>{{ scope.row.taskName }},</span>--> +<!-- <p v-if="scope.row.execUserName == null">该任务暂无人认领</p>--> +<!-- <p v-else>--> +<!-- <span class="time">{{ scope.row.taskStatus == 2 ? scope.row.startTime : scope.row.endTime }}</span>由<span class="name">{{ scope.row.execUserName }}</span>进行的巡检任务--> +<!-- </p>--> +<!-- </div>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column prop="taskStatus" label="任务状态" align="center" width="180">--> +<!-- <template #default="scope">--> +<!-- <span :class="scope.row.taskStatus == 1 ? 'grey' : scope.row.taskStatus == 2 ? 'green' : scope.row.taskStatus == 3 ? 'blue' : 'red'">{{ scope.row.taskStatus == 1 ? '待巡检' : scope.row.taskStatus == 2 ? '巡检中' : scope.row.taskStatus == 3 ? '已巡检' : '超期未巡检' }}</span>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column label="操作" align="center" width="180">--> +<!-- <template #default="scope">--> +<!-- <el-button type="text" v-if="scope.row.taskStatus == 2" @click="toLine(scope.row)" class="checkBtn">查看实时巡检</el-button>--> +<!-- <el-button type="text" v-else class="reviewBtn" @click="toDetails('查看', scope.row)">查看巡检记录</el-button>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- </el-table>--> + <div class="list"> + <div class="list-tit"> + <span class="w60">任务信息</span> + <span class="w20">任务状态</span> + <span class="w20">操作</span> </div> - <div class="pageBtn"> - <el-pagination v-model:currentPage="pageIndex" v-model:page-size="pageSize" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> + <div class="cardTop" v-for="(item, index) in tableData" :key="index"> + <div class="l-info"> + <span class="place">{{ item.taskName }},</span> + <p v-if="item.execUserName == null">该任务暂无人认领</p> + <p v-else> + <span class="time">{{ item.taskStatus == 2 ? item.startTime : item.endTime }}</span>由<span class="name">{{ item.execUserName }}</span + >进行的巡检任务 + </p> + </div> + <div class="m-info"> + 任务状态:<span :class="item.taskStatus == 1 ? 'grey' : item.taskStatus == 2 ? 'green' : item.taskStatus == 3 ? 'blue' : 'red'">{{ item.taskStatus == 1 ? '待巡检' : item.taskStatus == 2 ? '巡检中' : item.taskStatus == 3 ? '已巡检' : '超期未巡检' }}</span> + </div> + <div class="r-info"> + <el-button type="text" v-if="item.taskStatus == 2" @click="toLine(item)" size="small">查看实时巡检</el-button> + <el-button type="text" v-else class="reviewBtn" @click="toDetails('查看', item)" size="small">查看巡检记录</el-button> + </div> </div> + </div> +<!-- <div class="pageBtn">--> +<!-- <el-pagination v-model:currentPage="pageIndex" v-model:page-size="pageSize" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize" @size-change="handleSizeChange" @current-change="handleCurrentChange" />--> +<!-- </div>--> </div> + </div> </div> + <div class="midChart"> + <div class="chart-item"> + <div class="chart-tit"> + <span class="tit">巡检异常清单</span> + <div class="checkAll" @click="checkAllList()"> + 全部记录>> + </div> + </div> + <div class="chart"> + <div class="list"> + <div class="list-tit"> + <span class="w10">工单编号</span> + <span class="w10">异常巡检点</span> + <span class="w10">巡检(发现)时间</span> + <span class="w10">所属巡检任务</span> + <span class="w10">设备/区域名称</span> + <span class="w10">正常参考值</span> + <span class="w10">实际巡检值</span> + <span class="w10">隐患处置人</span> + <span class="w10">电话</span> + <span class="w10">处置状态</span> + <span class="w10">处置描述反馈</span> + <span class="w15">操作</span> + </div> + <div class="cardTop" v-for="(item, index) in unusualData" :key="index"> + <span class="w10">{{item.num}}</span> + <span class="w10">{{item.spot}}</span> + <span class="w10">{{item.time}}</span> + <span class="w10">{{item.job}}</span> + <span class="w10">{{item.area}}</span> + <span class="w10">{{item.refer}}</span> + <span class="w10">{{item.real}}</span> + <span class="w10">{{item.name}}</span> + <span class="w10">{{item.phone}}</span> + <span class="w10">{{item.status}}</span> + <span class="w10">{{item.describe}}</span> + <span class="w15"> + <el-button type="text" @click="toLine(item)" size="small">验收</el-button> + <el-button type="text" @click="toPhotos('查看', item)" size="small">查看现场照片</el-button> + </span> + </div> + </div> +<!-- <div class="pageBtn">--> +<!-- <el-pagination v-model:currentPage="pageIndex" v-model:page-size="pageSize" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize" @size-change="handleSizeChange" @current-change="handleCurrentChange" />--> +<!-- </div>--> + </div> + </div> + </div> </div> <inspect-record-dialog ref="inspectRecordDialogRef" @refreshInspectRecord="getInspectRecord"></inspect-record-dialog> + <inspect-list ref="inspectListRef"></inspect-list> + <unusual-list ref="unusualListRef"></unusual-list> </div> </template> @@ -71,11 +183,15 @@ import { FormInstance, FormRules, ElMessage } from 'element-plus'; import { inspectRecordApi } from '/@/api/intellectInspectSystem/inspectRecord'; import { useRouter } from 'vue-router'; +import * as echarts from 'echarts' import inspectRecordDialog from './components/inspectRecordDialog.vue'; +import inspectList from './components/inspectList.vue'; +import unusualList from './components/unusualList.vue'; import { departmentApi } from '/@/api/systemManage/department'; // 定义接口来定义对象的类型 interface stateType { tableData: Array<string>; + unusualData: Array<any>; unchecked: null | number; unusual: null | number; uncheckedList: []; @@ -89,6 +205,9 @@ classGroupList: Array<classGroup>; quotaList: []; inspectPointAllList: []; + conf:{}; + chartStatus:boolean; + period: string } interface type { id: number; @@ -100,16 +219,73 @@ } export default { name: 'workingHours', - components: { inspectRecordDialog }, + components: { inspectRecordDialog, inspectList, unusualList }, setup() { const router = useRouter(); + const xjLine = ref("eChartXjLine" + Date.now() + Math.random()) const state = reactive<stateType>({ pageIndex: 1, - pageSize: 10, + pageSize: 4, totalSize: 0, tableData: [], + unusualData: [ + { + num: '202302280001', + spot: '70736', + time: '2023-03-02 17:44:25', + job: '甲醇车间XXX巡检', + area: 'xxx设备', + refer: '8.9~10Mpa', + real: '15.6Mpa', + name: '黄公子', + phone: '15261806176', + status: '待验收', + describe: '更换法兰更换法兰更换法兰更换法兰更换法兰更换法兰' + }, + { + num: '202302280001', + spot: '70736', + time: '2023-03-02 17:44:25', + job: '甲醇车间XXX巡检', + area: 'xxx设备', + refer: '8.9~10Mpa', + real: '15.6Mpa', + name: '黄公子', + phone: '15261806176', + status: '待验收', + describe: '更换法兰更换法兰更换法兰更换法兰更换法兰更换法兰' + }, + { + num: '202302280001', + spot: '70736', + time: '2023-03-02 17:44:25', + job: '甲醇车间XXX巡检', + area: 'xxx设备', + refer: '8.9~10Mpa', + real: '15.6Mpa', + name: '黄公子', + phone: '15261806176', + status: '待验收', + describe: '更换法兰更换法兰更换法兰更换法兰更换法兰更换法兰' + }, + { + num: '202302280001', + spot: '70736', + time: '2023-03-02 17:44:25', + job: '甲醇车间XXX巡检', + area: 'xxx设备', + refer: '8.9~10Mpa', + real: '15.6Mpa', + name: '黄公子', + phone: '15261806176', + status: '待验收', + describe: '更换法兰更换法兰更换法兰更换法兰更换法兰更换法兰' + } + ], unchecked: null, unusual: null, + chartStatus: true, + period: 'month', uncheckedList: [], abnormalList: [], workTypeList: [ @@ -126,9 +302,43 @@ ], classGroupList: [], quotaList: [], - inspectPointAllList: [] + inspectPointAllList: [], + conf:{ + radius: '75%', + activeRadius: '80%', + lineWidth: 24, + digitalFlopStyle: { + fontSize: 25, + fill: '#000', + }, + textColor: '#000', + data: [ + { + name: '区域1', + value: 98, + }, + { + name: '区域2', + value: 150, + }, + { + name: '区域3', + value: 62, + }, + { + name: '区域4', + value: 54, + }, + { + name: '区域5', + value: 54, + } + ] + } }); const inspectRecordDialogRef = ref(); + const inspectListRef = ref(); + const unusualListRef = ref(); interface User { name: string; startTime: string; @@ -141,7 +351,102 @@ getInspectRecord(); getDayData(); getDepartmentData(); + initXjLine() }); + const checkAllRecord =()=>{ + inspectListRef.value.departmentList = state.departmentList + inspectListRef.value.showInspectList() + } + const checkAllList =()=>{ + unusualListRef.value.showUnusualList() + } + type EChartsOption = echarts.EChartsOption + const initXjLine =()=>{ + let dom = document.getElementById(xjLine.value); + let myChart = echarts.init(dom); + + let option: EChartsOption; + + option = { + tooltip: { + trigger: 'axis' + }, + legend: { + data: ['总趋势', '事业部'], + height: '15%', + top: 0, + bottom: 0, + padding:[1,1,1,0] + }, + grid: { + top: '15%', + left: '3%', + right: '3%', + bottom: 0, + containLabel: true + }, + toolbox: { + feature: { + // saveAsImage: {} + } + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: ['四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月', '一月', '二月', '三月'] + }, + yAxis: { + type: 'value' + }, + series: [ + { + name: '总趋势', + type: 'line', + stack: 'Total', + data: [120, 132, 101, 134, 90, 120, 132, 101, 134, 90, 230, 210], + label:{ + show: true, + color: '#95d475', + fontSize: 12 + }, + lineStyle:{ + width: 1, + color: '#95d475' + }, + itemStyle:{ + color: '#95d475', + borderColor: '#fff', + borderWidth: 2 + } + }, + { + name: '事业部', + type: 'line', + stack: 'Total', + data: [220, 182, 191, 234, 290, 220, 182, 191, 234, 290, 330, 310], + label:{ + show: true, + color: '#337ecc', + fontSize: 12 + }, + lineStyle:{ + width: 1, + color: '#337ecc' + }, + itemStyle:{ + color: '#337ecc', + borderColor: '#fff', + borderWidth: 2 + } + } + ] + } + + option && myChart.setOption(option); + window.addEventListener("resize",function (){ + myChart.resize(); + }); + } // 分页获取工作时段列表 const getInspectRecord = async () => { @@ -222,9 +527,14 @@ Edit, Delete, Refresh, + xjLine, Plus, router, inspectRecordDialogRef, + inspectListRef, + unusualListRef, + checkAllRecord, + checkAllList, toLine, toOverTime, toDetails, @@ -239,319 +549,328 @@ <style scoped lang="scss"> $homeNavLengh: 8; @media screen and (min-width: 1366px) { - .topCard { - display: flex; - align-items: center; - justify-content: space-between; - font-weight: bolder; - .top-info { - display: flex; - font-size: 16px; - align-items: center; - padding: 10px 15px; - background: #ffeb87; - border-radius: 8px; - border: 1px solid #ffae00; - - & > div { - vertical-align: middle; - white-space: nowrap; - span { - font-size: 22px; - color: #f3001e; - margin: 0 4px; - cursor: pointer; - - &:hover{ - text-decoration: underline; - } - } - } - } - } - .left-info { - width: 70%; - display: flex; - align-items: center; - justify-content: left; - font-size: 18px; - color: #333; - overflow-x: auto; - & > span { - white-space: nowrap; - } - p { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - & > span { - white-space: nowrap; - } - } - } - .mid-info { - width: 20%; - font-size: 18px; - color: #333; - } - .right-info { - width: 10%; - display: flex; - justify-content: right; - align-items: center; - font-size: 16px; - color: #fff; - - div { - white-space: nowrap; - } - } } @media screen and (min-width: 1200px) and (max-width: 1366px) { - .topCard { - display: flex; - align-items: center; - justify-content: space-between; - font-weight: bolder; - .top-info { - display: flex; - font-size: 14px; - align-items: center; - padding: 6px 10px; - background: #ffeb87; - border-radius: 4px; - border: 1px solid #ffae00; - - & > div { - vertical-align: middle; - white-space: nowrap; - span { - font-size: 18px; - color: #f3001e; - margin: 0 2px; - cursor: pointer; - - &:hover{ - text-decoration: underline; - } - } - } - } - } - .left-info { - width: 70%; - display: flex; - align-items: center; - justify-content: left; - font-size: 15px; - color: #333; - overflow-x: auto; - & > span { - white-space: nowrap; - } - p { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - & > span { - white-space: nowrap; - } - } - } - .mid-info { - width: 20%; - font-size: 15px; - color: #333; - } - .right-info { - width: 10%; - display: flex; - justify-content: right; - align-items: center; - font-size: 13px; - color: #fff; - div { - white-space: nowrap; - } - } } @media screen and (max-width: 1200px) { - .topCard { - display: flex; - align-items: center; - justify-content: space-between; - font-weight: bolder; - .top-info { - display: flex; - font-size: 14px; - align-items: center; - padding: 2px 6px; - background: #ffeb87; - border-radius: 4px; - border: 1px solid #ffae00; - - & > div { - vertical-align: middle; - white-space: nowrap; - span { - font-size: 16px; - color: #f3001e; - margin: 0 1px; - cursor: pointer; - - &:hover{ - text-decoration: underline; - } - } - } - } - } - .left-info { - width: 70%; - display: flex; - align-items: center; - justify-content: left; - font-size: 12px; - color: #333; - overflow-x: auto; - & > span { - white-space: nowrap; - } - p { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - & > span { - white-space: nowrap; - } - } - } - .mid-info { - width: 20%; - font-size: 12px; - color: #333; - } - .right-info { - width: 10%; - display: flex; - justify-content: right; - align-items: center; - font-size: 12px; - color: #fff; - div { - white-space: nowrap; - } - } } .home-container { height: calc(100vh - 144px); box-sizing: border-box; overflow: hidden; - .homeCard { - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - .title { + .topChart{ + height: calc((100% - 40px) / 3); + width: 100%; + background: #fff; + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-bottom: 20px; + padding: 20px 20px 90px; + + .chart-item{ + width: 70%; + height: 120%; + padding-right: 10px; + + &:last-of-type{ + width: 30%; + height: 100%; + padding-right: 0; + padding-left: 10px; + position: relative; + } + + .chart-tit{ + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + .tit{ font-size: 20px; font-weight: bolder; + } + :deep(.el-switch__core){ + width: 120px; + } } - .main-card { - width: 100%; - height: 100%; - .cardTop { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 10px; - background: #daf3ff; - padding: 10px 15px; - border-radius: 8px; - - .left-info { - .num { - font-weight: bolder; - margin-right: 10px; - } - .place { - font-weight: bolder; - } - .time { - font-weight: bolder; - margin-right: 5px; - } - .name { - font-weight: bolder; - margin: 0 5px; - font-weight: bolder; - } - } - .mid-info { - span { - font-weight: bolder; - } - - .grey { - color: #999; - } - .green { - color: #44b100; - } - .blue { - color: #409eff; - } - .red { - color: red; - } - } - .right-info { - .checkBtn { - padding: 10px 15px; - background: #409eff; - border-radius: 4px; - cursor: pointer; - } - - .reviewBtn { - margin: 10px 15px; - cursor: pointer; - color: #44b100; - } - } - } - .list { - height: calc(100% - 60px); - overflow-y: auto; - } - .pageBtn { - position: absolute; - bottom: 15px; - right: 20px; - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } + .chart{ + width: 100%; + height: 100%; } - &:last-of-type { - position: relative; - padding-top: 0; - height: calc(100% - 60px); + .el-radio-group{ + width: 100%; + flex-wrap: nowrap; + position: absolute; + left: 50%; + transform: translateX(-50%); } + :deep(.active-ring-info){ + .active-ring-name{ + font-size: 1.5rem !important; + text-align: center; + } + } + } } + .midChart{ + height: calc((100% - 40px) / 3); + width: 100%; + background: #fff; + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-bottom: 20px; + padding: 20px; + + .chart-item{ + width: 100%; + height: 100%; + padding: 0 0 20px; + + .chart-tit{ + width: 100%; + height: 15%; + display: flex; + align-items: center; + justify-content: space-between; + .tit{ + font-size: 20px; + font-weight: bolder; + } + :deep(.el-switch__core){ + width: 120px; + + } + .top-info { + display: flex; + font-size: 14px; + align-items: center; + background: #ffeb87; + padding: 4px 15px; + margin-left: 20px; + border-radius: 2px; + border: 1px solid #ffae00; + & > div { + vertical-align: middle; + white-space: nowrap; + height: 100%; + span { + color: #f3001e; + margin: 0 4px; + font-size: 18px; + cursor: pointer; + font-weight: bolder; + + &:hover{ + text-decoration: underline; + } + } + } + } + .checkAll{ + cursor: pointer; + &:hover{ + color: #409eff + } + } + } + .chart{ + width: 100%; + height: 85%; + margin-top: 10px; + + .el-table{ + height: 100% !important; + :deep(.el-table__inner-wrapper){ + height: 100% !important; + .el-table__header-wrapper{ + height: 20% !important; + } + .el-table__body-wrapper{ + height: 80% !important; + .el-scrollbar__view{ + height: 100% !important; + .el-table__body{ + height: 100% !important; + + .el-table__row{ + height: 20% !important; + } + } + } + } + } + } + .list { + height: 100%; + margin-top: 10px; + border: 1px solid #ebeef5; + + .list-tit{ + width: 100%; + height: 20%; + display: flex; + align-items: center; + border-bottom: 1px solid #ebeef5; + + span{ + text-align: center; + padding: 10px 0; + } + + .w60{ + width: 60%; + border-right: 1px solid #ebeef5; + } + .w20{ + width: 20%; + border-right: 1px solid #ebeef5; + + &:last-of-type{ + border-right: none; + } + } + .w15{ + width: 15%; + border-right: 1px solid #ebeef5; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + .w10{ + width: 10%; + border-right: 1px solid #ebeef5; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + + .cardTop { + display: flex; + width: 100%; + height: 20%; + align-items: center; + border-bottom: 1px solid #ebeef5; + + &:last-of-type{ + border-bottom: none; + } + span{ + text-align: center; + padding: 10px 0; + } + .l-info{ + width: 60%; + height: 100%; + border-right: 1px solid #ebeef5; + display: flex; + align-items: center; + padding: 0 20px; + + .num { + font-weight: bolder; + margin-right: 10px; + } + .place { + font-weight: bolder; + } + .time { + font-weight: bolder; + margin-right: 5px; + } + .name { + font-weight: bolder; + margin: 0 5px; + font-weight: bolder; + } + } + .m-info{ + height: 100%; + width: 20%; + display: flex; + align-items: center; + border-right: 1px solid #ebeef5; + justify-content: center; + + span { + font-weight: bolder; + } + + .grey { + color: #999; + } + .green { + color: #44b100; + } + .blue { + color: #409eff; + } + .red { + color: red; + } + } + .r-info{ + width: 20%; + text-align: center; + + .reviewBtn { + color: #44b100; + } + } + .w10{ + width: 10%; + border-right: 1px solid #ebeef5; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + .w15{ + width: 15%; + border-right: 1px solid #ebeef5; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + .el-button{ + margin-left: 0 !important; + padding: 12px 0; + &:last-of-type{ + margin-left: 12px !important; + } + } + } + } + } + .pageBtn { + position: absolute; + bottom: 15px; + right: 20px; + height: 60px; + display: flex; + align-items: center; + justify-content: right; + + .demo-pagination-block + .demo-pagination-block { + margin-top: 10px; + } + .demo-pagination-block .demonstration { + margin-bottom: 16px; + } + } + } + } + } + .el-row { display: flex; align-items: center; -- Gitblit v1.9.2