| | |
| | | </div> |
| | | <div class="topChart"> |
| | | <div class="chart-item"> |
| | | <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> |
| | | <div class="chart-tit"> |
| | | <span class="tit">八大作业各分类分布图</span> |
| | | <div class="filter-part filter-part2"> |
| | |
| | | </el-radio-group> |
| | | </div> |
| | | <div class="chart-item"> |
| | | <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> |
| | | <div class="chart-tit"> |
| | | <span class="tit">各事业部关联作业分析</span> |
| | | <div class="filter-part"> |
| | |
| | | </div> |
| | | <div class="topChart"> |
| | | <div class="chart-item"> |
| | | <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> |
| | | <div class="chart-tit"> |
| | | <span class="tit">关联作业趋势图</span> |
| | | <div class="filter-part filter-part2"> |
| | |
| | | <div class="chart" :id="zyqs"></div> |
| | | </div> |
| | | <div class="chart-item"> |
| | | <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> |
| | | <div class="chart-tit"> |
| | | <span class="tit">异常警报关联人</span> |
| | | <div class="filter-part"> |
| | |
| | | active-text="作业人" |
| | | inactive-text="监护人" |
| | | /> |
| | | <el-radio-group v-model="chartSearch4.days" size="small" @change="(value)=>changeTime2(value)"> |
| | | <el-radio :label='7' border>近7天</el-radio> |
| | | <el-radio :label='30' border>近30天</el-radio> |
| | | <el-radio :label='90' border>近90天</el-radio> |
| | | <el-radio :label='365' border>近一年</el-radio> |
| | | </el-radio-group> |
| | | <el-select :teleported="false" v-model="chartSearch4.period" size="small"> |
| | | <el-option label="近7天" value="week"/> |
| | | <el-option label="近30天" value="month"/> |
| | | <el-option label="近90天" value="season"/> |
| | | <el-option label="近1年" value="year"/> |
| | | </el-select> |
| | | <el-select :teleported="false" v-model="chartSearch4.workType" size="small"> |
| | | <el-option |
| | | v-for="item in workType1" |
| | |
| | | </div> |
| | | <div> |
| | | <div class="homeCard"> |
| | | <dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10> |
| | | <el-row> |
| | | <el-col :span="5" style="display:flex;align-items: center"> |
| | | <span style="white-space: nowrap">作业类型:</span> |
| | |
| | | import * as echarts from "echarts"; |
| | | import screenfull from "screenfull"; |
| | | import VideoDetail from "/@/views/specialWorkSystem/specialIndex/components/videoDetail.vue"; |
| | | import { BorderBox10 as DvBorderBox10 } from '@kjgl77/datav-vue3' |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | interface stateType { |
| | |
| | | }); |
| | | // 页面载入时执行方法 |
| | | onMounted(() => { |
| | | getListByPage(); |
| | | // getListByPage(); |
| | | getAllDepartment(); |
| | | initZyfb() |
| | | initSlfx() |
| | |
| | | } |
| | | // 刷新 |
| | | const reLoadData = async () => { |
| | | getListByPage(); |
| | | // getListByPage(); |
| | | }; |
| | | |
| | | // 填写表单 |
| | |
| | | }; |
| | | |
| | | // 分页获取列表 |
| | | const getListByPage = async () => { |
| | | const dateRange = JSON.parse(JSON.stringify(state.searchDate)) |
| | | if(dateRange[1]){dateRange[1] = dateRange[1].replace('00:00:00','23:59:59')} |
| | | const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord, applyDepId: state.searchDep,applyStartTime: dateRange[0],applyEndTime: dateRange[1]} }; |
| | | let res = await workApplyApi().getApplyList(data); |
| | | if (res.data.code === '200') { |
| | | state.workData = JSON.parse(JSON.stringify(res.data.data)); |
| | | state.workData = state.workData.map((item) => { |
| | | if (item.operators == null || item.operators == []) { |
| | | item.operators = []; |
| | | } else { |
| | | item.operators = Array.from(item.operators, ({ operatorUname }) => operatorUname); |
| | | } |
| | | return item; |
| | | }); |
| | | state.totalSize1 = res.data.total; |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | // const getListByPage = async () => { |
| | | // const dateRange = JSON.parse(JSON.stringify(state.searchDate)) |
| | | // if(dateRange[1]){dateRange[1] = dateRange[1].replace('00:00:00','23:59:59')} |
| | | // const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord, applyDepId: state.searchDep,applyStartTime: dateRange[0],applyEndTime: dateRange[1]} }; |
| | | // let res = await workApplyApi().getApplyList(data); |
| | | // if (res.data.code === '200') { |
| | | // state.workData = JSON.parse(JSON.stringify(res.data.data)); |
| | | // state.workData = state.workData.map((item) => { |
| | | // if (item.operators == null || item.operators == []) { |
| | | // item.operators = []; |
| | | // } else { |
| | | // item.operators = Array.from(item.operators, ({ operatorUname }) => operatorUname); |
| | | // } |
| | | // return item; |
| | | // }); |
| | | // state.totalSize1 = res.data.total; |
| | | // } else { |
| | | // ElMessage({ |
| | | // type: 'warning', |
| | | // message: res.data.msg |
| | | // }); |
| | | // } |
| | | // }; |
| | | |
| | | // 表格数据格式化 |
| | | const toNames = (row, column, cellValue, index) => { |
| | |
| | | message: '请输入查询关键词' |
| | | }); |
| | | } else { |
| | | getListByPage(); |
| | | // getListByPage(); |
| | | } |
| | | }; |
| | | // 重置搜索 |
| | |
| | | state.searchWord = null; |
| | | state.searchDep = null; |
| | | state.searchDate = [] |
| | | getListByPage(); |
| | | // getListByPage(); |
| | | }; |
| | | |
| | | const handleSizeChange1 = (val: number) => { |
| | | state.pageSize1 = val; |
| | | getListByPage(); |
| | | // getListByPage(); |
| | | }; |
| | | const handleCurrentChange1 = (val: number) => { |
| | | state.pageIndex1 = val; |
| | | getListByPage(); |
| | | // getListByPage(); |
| | | }; |
| | | |
| | | // 查看记录 |
| | |
| | | searchRecord, |
| | | clearSearch, |
| | | viewRecord, |
| | | getListByPage, |
| | | // getListByPage, |
| | | handleSizeChange1, |
| | | handleCurrentChange1, |
| | | ...toRefs(state) |
| | |
| | | .topChart{ |
| | | .chart-item{ |
| | | border-radius: 4px; |
| | | background: rgba(8, 109, 209, 0.2); |
| | | border: 1px solid rgba(54, 252, 252, .6); |
| | | background: rgba(0, 61, 121, 0.2); |
| | | backdrop-filter: blur(5px); |
| | | position: relative; |
| | | z-index: 2; |
| | | &:last-of-type{ |
| | | position: relative; |
| | | z-index: 1; |
| | | } |
| | | |
| | | .item-bg{ |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: -1; |
| | | } |
| | | .el-radio.is-bordered.is-checked{ |
| | | border-color: #11FEEE !important; |
| | |
| | | } |
| | | .homeCard{ |
| | | border-radius: 4px; |
| | | background: rgba(8, 109, 209, 0.2); |
| | | border: 1px solid rgba(54, 252, 252, .6); |
| | | background: rgba(0, 61, 121, 0.2); |
| | | backdrop-filter: blur(5px); |
| | | position: relative; |
| | | z-index: 3; |
| | | .item-bg{ |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: -1; |
| | | } |
| | | .el-row{ |
| | | &>div{ |
| | | &>span{ |