From 3b75798cc41993f9016610296907d2338545a345 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期五, 16 八月 2024 15:43:01 +0800 Subject: [PATCH] Default Changelist --- src/views/specialWorkSystem/specialIndex/index.vue | 389 ++++++++++++++++++++++++++++++------------------------ 1 files changed, 216 insertions(+), 173 deletions(-) diff --git a/src/views/specialWorkSystem/specialIndex/index.vue b/src/views/specialWorkSystem/specialIndex/index.vue index dd9a486..08ce261 100644 --- a/src/views/specialWorkSystem/specialIndex/index.vue +++ b/src/views/specialWorkSystem/specialIndex/index.vue @@ -15,10 +15,38 @@ </el-button> </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">--> +<!-- <el-cascader :teleported="false" v-model="chartSearch2.depId" @change="changeDep2()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>--> +<!-- <el-select v-model="chartSearch2.type" size="small" :teleported="false" @change="changeType2()">--> +<!-- <el-option--> +<!-- v-for="item in workType1"--> +<!-- :key="item.id"--> +<!-- :label="item.name"--> +<!-- :value="item.id"--> +<!-- />--> +<!-- </el-select>--> +<!-- </div>--> +<!-- </div>--> +<!-- <div class="chart" :id="slfx"></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> + <span class="tit">特殊作业数量趋势</span> + <div class="filter-part filter-part2"> + <el-cascader :teleported="false" v-model="chartSearch3.depId" @change="changeDep3()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> + </div> + </div> + <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 filter-part2"> <el-cascader :teleported="false" v-model="chartSearch1.depId" @change="changeDep1()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> </div> @@ -31,86 +59,53 @@ <el-radio :label='365' border>近一年</el-radio> </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"> - <el-cascader :teleported="false" v-model="chartSearch2.depId" @change="changeDep2()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> - <el-select v-model="chartSearch2.type" size="small" :teleported="false" @change="changeType2()"> - <el-option - v-for="item in workType1" - :key="item.id" - :label="item.name" - :value="item.id" - /> - </el-select> - </div> - </div> - <div class="chart" :id="slfx"></div> - </div> </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-cascader :teleported="false" v-model="chartSearch3.depId" @change="changeDep3()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> - </div> - </div> - <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"> - <el-switch - v-model="chartSearch4.type" - inline-prompt - style="--el-switch-on-color: #13ce66; --el-switch-off-color: #13ce66" - active-text="作业人" - inactive-text="监护人" - /> - <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" - :key="item.id" - :label="item.name" - :value="item.id" - /> - </el-select> - </div> - </div> - <div class="chart"> - <el-table ref="multipleTableRef" :data="warningData" style="width: 100%" stripe border :header-cell-style="{ background: '#fafafa' }"> - <el-table-column property="name" label="姓名" align="center"/> - <el-table-column property="dep" label="所属部门" align="center"/> - <el-table-column property="warning" label="异常报警次数" align="center"/> - <el-table-column property="role" label="角色" align="center"/> - <el-table-column property="isCard" label="是否持证" align="center"> - <template #default="scope"> - <span>{{scope.row.isCard == 1?'是':'否'}}</span> - </template> - </el-table-column> - </el-table> - <el-button type="text" size="small" style="margin-top: 10px">所有记录>></el-button> - </div> - <!-- <div class="chart" :id="slfx"></div>--> - </div> - </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-cascader :teleported="false" v-model="chartSearch3.depId" @change="changeDep3()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>--> +<!-- </div>--> +<!-- </div>--> +<!-- <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">--> +<!-- <el-select :teleported="false" v-model="chartSearch4.days" size="small" @change="(value)=>changeTime4(value)">--> +<!-- <el-option label="近7天" :value="7"/>--> +<!-- <el-option label="近30天" :value="30"/>--> +<!-- <el-option label="近90天" :value="90"/>--> +<!-- <el-option label="近1年" :value="365"/>--> +<!-- </el-select>--> +<!-- <el-select :teleported="false" v-model="chartSearch4.workType" size="small" @change="changeType4()">--> +<!-- <el-option--> +<!-- v-for="item in workType1"--> +<!-- :key="item.id"--> +<!-- :label="item.name"--> +<!-- :value="item.id"--> +<!-- />--> +<!-- </el-select>--> +<!-- </div>--> +<!-- </div>--> +<!-- <div class="chart">--> +<!-- <el-table ref="multipleTableRef" :data="warningData" style="width: 100%" stripe border :header-cell-style="{ background: '#fafafa' }">--> +<!-- <el-table-column property="operatorUname" label="姓名" align="center"/>--> +<!-- <el-table-column property="deptName" label="所属部门" align="center"/>--> +<!-- <el-table-column property="warningCount" label="异常报警次数" align="center"/>--> +<!-- </el-table>--> +<!-- </div>--> +<!-- </div>--> +<!-- </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"> + <el-col :span="4" style="display:flex;align-items: center"> <span style="white-space: nowrap">作业类型:</span> <div class="grid-content topInfo"> <el-select :teleported="false" v-model="searchParams.workType" size="small"> @@ -123,7 +118,7 @@ </el-select> </div> </el-col> - <el-col :span="5" style="display:flex;align-items: center"> + <el-col :span="4" style="display:flex;align-items: center"> <span style="white-space: nowrap">作业状态:</span> <div class="grid-content topInfo"> <el-select :teleported="false" v-model="searchParams.workAllStatus" size="small"> @@ -136,14 +131,14 @@ </el-select> </div> </el-col> - <el-col :span="5" style="display:flex;align-items: center"> - <span style="white-space: nowrap">作业部门:</span> - <div class="grid-content topInfo"> - <el-cascader :teleported="false" size="small" v-model="searchParams.workDepId" :options="departmentList" :props="casProps" :show-all-levels="false"/> - </div> - </el-col> +<!-- <el-col :span="4" style="display:flex;align-items: center">--> +<!-- <span style="white-space: nowrap">作业部门:</span>--> +<!-- <div class="grid-content topInfo">--> +<!-- <el-cascader :teleported="false" size="small" v-model="searchParams.workDepId" :options="departmentList" :props="casProps" :show-all-levels="false"/>--> +<!-- </div>--> +<!-- </el-col>--> <el-col :span="6" style="display:flex;align-items: center;"> - <span style="white-space: nowrap;margin-left: 20px">申请时间:</span> + <span style="white-space: nowrap">申请时间:</span> <div class="grid-content topInfo"> <el-date-picker v-model="searchDate" @@ -156,6 +151,22 @@ end-placeholder="结束日期" format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" /> + </div> + </el-col> + <el-col :span="4" style="display:flex;align-items: center"> + <span style="white-space: nowrap">作业票编号:</span> + <div class="grid-content topInfo"> + <el-input + v-model="searchParams.workPermitNo" + placeholder="请输入作业票编号" + size="small" + /> + </div> + </el-col> + <el-col :span="4" style="display:flex;align-items: center"> + <span style="white-space: nowrap">申请单位:</span> + <div class="grid-content topInfo"> + <el-cascader :teleported="false" v-model="searchParams.applyDepId" @change="changeDep4()" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/> </div> </el-col> <el-button type="primary" style="margin-left: 20px" @click="searchRecord" size="small">查询</el-button> @@ -186,20 +197,35 @@ <!-- </el-row>--> <el-table ref="multipleTableRef" stripe border :data="workData" style="width: 100%" :header-cell-style="{ background: '#fafafa' }"> <el-table-column property="workPermitNo" label="作业证编号" align="center"/> - <el-table-column property="workDepName" label="作业单位" align="center"/> + <el-table-column label="作业单位" align="center"> + <template #default="scope"> + <span v-if="scope.row.workDepList && scope.row.workDepList.length>0">{{scope.row.workDepList.map(i=>i.workDepName).join(',')}}</span> + <span v-else>{{scope.row.workDepName }}</span> + </template> + </el-table-column> <el-table-column property="applyUname" label="申请人" align="center"/> <el-table-column property="applyDepName" label="申请单位" align="center"/> <el-table-column property="applyTime" label="申请时间" align="center"/> - <el-table-column property="startUname" label="开始人" align="center"> + <el-table-column property="workLocation" label="作业地点" align="center"> <template #default="scope"> - <span>{{scope.row.startUname?scope.row.startUname:'--'}}</span> + <span>{{scope.row.workLocation?scope.row.workLocation:'--'}}</span> </template> </el-table-column> - <el-table-column property="finishUname" label="结束人" align="center"> + <el-table-column property="workContent" label="作业内容" align="center"> <template #default="scope"> - <span>{{scope.row.finishUname?scope.row.finishUname:'--'}}</span> + <span>{{scope.row.workContent?scope.row.workContent:'--'}}</span> </template> </el-table-column> +<!-- <el-table-column property="startUname" label="开始人" align="center">--> +<!-- <template #default="scope">--> +<!-- <span>{{scope.row.startUname?scope.row.startUname:'--'}}</span>--> +<!-- </template>--> +<!-- </el-table-column>--> +<!-- <el-table-column property="finishUname" label="结束人" align="center">--> +<!-- <template #default="scope">--> +<!-- <span>{{scope.row.finishUname?scope.row.finishUname:'--'}}</span>--> +<!-- </template>--> +<!-- </el-table-column>--> <el-table-column property="workStartTime" label="作业开始时间" align="center"> <template #default="scope"> <span>{{scope.row.workStartTime?scope.row.workStartTime:'--'}}</span> @@ -402,7 +428,8 @@ workPermitNo: '', startTime: '', endTime: '', - workAllStatus: null + workAllStatus: null, + applyDepId: null }, dialogReview: false, departmentList: [], @@ -423,9 +450,9 @@ depId: 1 }, chartSearch4: { - searchDep: null, startTime: '', - days: 30 + days: 30, + workType: 1 }, searchDep2: null, searchDep: null, @@ -440,7 +467,6 @@ operators: [] }, casProps: { - expandTrigger: 'hover', emitPath: false, value: 'depId', label: 'depName', @@ -457,7 +483,8 @@ { id: 5, name: '断路作业' }, { id: 6, name: '高处作业' }, { id: 7, name: '临时用电作业' }, - { id: 8, name: '盲板抽堵作业' } + { id: 8, name: '盲板抽堵作业' }, + { id: 9, name: '打开作业' } ], workTypeList: [ { id: 1, name: '动火作业' }, @@ -467,7 +494,8 @@ { id: 5, name: '断路作业' }, { id: 6, name: '高处作业' }, { id: 7, name: '临时用电作业' }, - { id: 8, name: '盲板抽堵作业' } + { id: 8, name: '盲板抽堵作业' }, + { id: 9, name: '打开作业' } ], workStatusList: [ { @@ -485,29 +513,7 @@ ], pieData: [], squareData: [], - warningData: [ - { - name: '黄公子', - dep: '有机事业部', - warning: 69, - role: '作业人', - isCard: 1 - }, - { - name: '李飞飞', - dep: '有机事业部', - warning: 51, - role: '监护人', - isCard: 0 - }, - { - name: '黄公子', - dep: '有机事业部', - warning: 69, - role: '作业人', - isCard: 1 - } - ], + warningData: [], reviewForm: { advice: '' }, @@ -523,28 +529,34 @@ getTypePie() getWorkDep() getDepMonth() + getWarningList() }); const initTime =()=>{ state.chartSearch1.startTime = getPeriod(30) state.chartSearch2.startTime = getPeriod(30) + state.chartSearch4.startTime = getPeriod(30) state.endTime = formatDate(new Date()) } const getPeriod =(num)=> { const currentDate = new Date(); const startTime = new Date(); - startTime.setDate(currentDate.getDate() - num); + startTime.setDate(currentDate.getDate() - num - 1); return formatDate(startTime) } const formatDate =(date)=> { const year = date.getFullYear().toString(); const month = ('0' + (date.getMonth() + 1)).slice(-2); const day = ('0' + date.getDate()).slice(-2); - return `${year}-${month}-${day} 00:00:00`; + return `${year}-${month}-${day} 23:59:59`; } const changeTime1=(value:number)=>{ state.chartSearch1.startTime = getPeriod(value) - console.log(state.chartSearch1.startTime,state.endTime,'结束段') getTypePie() + } + const changeTime4=(value:number)=>{ + state.chartSearch4.startTime = getPeriod(value) + console.log(state.chartSearch4.startTime,state.endTime,'结束段') + getWarningList() } const changeDep1=()=>{ getTypePie() @@ -556,8 +568,14 @@ const changeType2=()=>{ getWorkDep() } + const changeType4=()=>{ + getWarningList() + } const changeDep3=()=>{ getDepMonth() + } + const changeDep4=()=>{ + searchRecord() } const toFullscreen =()=>{ const element = document.getElementById('bigScreen') @@ -645,6 +663,22 @@ if (res.data.code === '200') { state.workData = JSON.parse(JSON.stringify(res.data.data)) state.totalSize = res.data.total + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + const getWarningList = async()=>{ + const data = { + startTime: state.chartSearch4.startTime, + endTime: state.endTime, + workType:state.chartSearch4.workType + } + let res = await specialIndexApi().getWorkWarning(data) + if (res.data.code === '200') { + state.warningData = JSON.parse(JSON.stringify(res.data.data)) } else { ElMessage({ type: 'warning', @@ -813,6 +847,7 @@ } // 刷新 const reLoadData = async () => { + state.pageIndex = 1 getMydepList() }; @@ -864,6 +899,7 @@ // 关键词查询记录 const searchRecord = async () => { + state.pageIndex = 1 getMydepList() }; // 重置搜索 @@ -874,9 +910,11 @@ workPermitNo: '', startTime: '', endTime: '', - workAllStatus: null + workAllStatus: null, + applyDepId: null } state.searchDate = [] + state.pageIndex = 1 getMydepList() }; @@ -1033,10 +1071,13 @@ slfx, zyqs, changeTime1, + changeTime4, changeDep1, changeDep2, changeType2, + changeType4, changeDep3, + changeDep4, toFullscreen, // handleReview, openVideo, @@ -1099,7 +1140,7 @@ justify-content: space-between; align-items: flex-start; margin-bottom: 20px; - height: 40%; + height: 50%; &:last-of-type{ margin-bottom: 0; } @@ -1156,57 +1197,59 @@ .chart{ width: 100%; height: 85%; + overflow-y: scroll; + scrollbar-width: none; /* firefox */ + -ms-overflow-style: none; /* IE 10+ */ .el-table{ - height: 90% !important; - :deep(.el-table__inner-wrapper){ - height: 100% !important; - .el-table__header-wrapper { - height: 20% !important; - .el-table__header{ - height: 100% !important; - th{ - height: 100% !important; - padding: 0 0 !important; - .cell{ - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - } - } - } - .el-table__body-wrapper { - height: 80% !important; - .el-scrollbar__view{ - height: 100% !important; - .el-table__body{ - height: 100% !important; - tbody{ - height: 100% !important; - .el-table__row{ - height: 25% !important; - td{ - height: 25% !important; - padding: 0 0 !important; - .left-info{ - display: flex; - align-items: center; - } - .cell{ - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - .el-button{ - padding: 0 !important; - } - } - } - } - } - } - } - } + //:deep(.el-table__inner-wrapper){ + // height: 100% !important; + // .el-table__header-wrapper { + // height: 20% !important; + // .el-table__header{ + // height: 100% !important; + // th{ + // height: 100% !important; + // padding: 0 0 !important; + // .cell{ + // white-space: nowrap; + // overflow: hidden; + // text-overflow: ellipsis; + // } + // } + // } + // } + // .el-table__body-wrapper { + // height: 80% !important; + // .el-scrollbar__view{ + // height: 100% !important; + // .el-table__body{ + // height: 100% !important; + // tbody{ + // height: 100% !important; + // .el-table__row{ + // height: 25% !important; + // td{ + // height: 25% !important; + // padding: 0 0 !important; + // .left-info{ + // display: flex; + // align-items: center; + // } + // .cell{ + // white-space: nowrap; + // overflow: hidden; + // text-overflow: ellipsis; + // } + // .el-button{ + // padding: 0 !important; + // } + // } + // } + // } + // } + // } + // } + //} } } .el-radio-group{ -- Gitblit v1.9.2