From 999cab6fb3fc6d2a288d365da991351c5a396bf0 Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期三, 21 九月 2022 15:53:18 +0800 Subject: [PATCH] 删除无用页面 --- src/views/specialWorkSystem/workTicket/myJobApply/index.vue | 179 ++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 140 insertions(+), 39 deletions(-) diff --git a/src/views/specialWorkSystem/workTicket/myJobApply/index.vue b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue index 1a502f1..a88f732 100644 --- a/src/views/specialWorkSystem/workTicket/myJobApply/index.vue +++ b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue @@ -4,7 +4,8 @@ <!-- <el-tab-pane label="申请中" name="1">--> <div style="height: 100%"> <el-row class="homeCard"> - <el-col :span="8"> + <span>作业类型:</span> + <el-col :span="10"> <div class="grid-content topInfo"> <el-select v-model="searchWord"> <el-option @@ -37,9 +38,9 @@ <el-table-column property="workTypeDesc" label="作业类型" /> <el-table-column property="workLevelDesc" label="作业等级" /> <el-table-column property="applyTime" label="申请时间" width="180" /> - <el-table-column label="申请状态" width="180"> + <el-table-column label="申请状态" align="center" width="180"> <template #default="scope"> - <el-tag type="success">{{ scope.row.statusDesc }}</el-tag> + <el-tag :type="scope.row.status==2?'success':(scope.row.status==8||scope.row.status==9)?'warning':'danger'">{{ scope.row.statusDesc }}</el-tag> </template> </el-table-column> <el-table-column fixed="right" label="操作" align="center" width="250"> @@ -47,6 +48,7 @@ <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> <el-button link type="success" size="small" :icon="Finished" @click="viewStatus(scope.row)">进度</el-button> <el-button link type="warning" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">取消</el-button> + <el-button link type="primary" size="small" :icon="Download" @click="downLoadBtn(scope.row)">导出</el-button> </template> </el-table-column> </el-table> @@ -58,12 +60,12 @@ </div> <el-dialog v-model="dialogDetails" title="作业申请详情" center> <fire v-if="dialogType == 1" :details = details></fire> - <space v-if="dialogType == 2" :details = details></space> - <hoist v-if="dialogType == 3" :details = details></hoist> - <ground v-if="dialogType == 4" :details = details></ground> - <broken v-if="dialogType == 5" :details = details></broken> - <height v-if="dialogType == 6" :details = details></height> - <power v-if="dialogType == 7" :details = details></power> + <space v-else-if="dialogType == 2" :details = details></space> + <hoist v-else-if="dialogType == 3" :details = details></hoist> + <ground v-else-if="dialogType == 4" :details = details></ground> + <broken v-else-if="dialogType == 5" :details = details></broken> + <height v-else-if="dialogType == 6" :details = details></height> + <power v-else-if="dialogType == 7" :details = details></power> <plate v-else :details = details></plate> <template #footer> <span class="dialog-footer"> @@ -73,7 +75,7 @@ </span> </template> </el-dialog> - <el-dialog v-model="dialogStatus" title="作业申请进度"> + <el-dialog v-model="dialogStatus" title="作业申请进度" width="60%"> <el-form v-if="approveInfo.operators.length > 0" style="margin-bottom: 40px"> <el-form-item label="申请作业人"> <el-input v-model="approveInfo.operators" readonly type="textarea" /> @@ -102,12 +104,13 @@ </div> <div class="approveItem"> <div class="item-tit"> - <span>审批项目</span><span>类型</span> + <span>审批项目</span> +<!-- <span>类型</span>--> <div>措施标准</div> </div> <div class="item-cont" v-for="i in item.stepItems"> - <span>{{ i.itemName }}</span - ><span>{{ i.typeDesc }}</span> + <span>{{ i.itemName }}</span> +<!-- <span>{{ i.typeDesc }}</span>--> <div v-if="i.measure !== null"> <div> <span>作业类型:</span><span>{{ i.measure.workTypeDesc }}</span> @@ -137,13 +140,22 @@ </div> </div> </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> + <el-dialog v-model="deleteDialog" title="提示" width="30%" center> <span>您确定要取消该条申请吗?</span> <template #footer> <span class="dialog-footer"> <el-button @click="deleteDialog = false" size="default">取消</el-button> <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> </span> + </template> + </el-dialog> + <el-dialog v-model="downLoadDialog" title="提示" width="30%" center> + <span>您确定要导出该条记录吗?</span> + <template #footer> + <span class="dialog-footer"> + <el-button @click="downLoadDialog = false" size="default">取消</el-button> + <el-button type="primary" @click="conFirmDownLoad" size="default">确认</el-button> + </span> </template> </el-dialog> <!-- </el-tab-pane>--> @@ -191,11 +203,14 @@ import { useUserInfo } from '/@/stores/userInfo'; import { Session } from '/@/utils/storage'; import { useRouter } from 'vue-router'; -import { Edit, View, Plus, Delete, Refresh, Search, Finished } from '@element-plus/icons-vue'; +import { Edit, View, Plus, Delete, Refresh, Search, Finished, Download } from '@element-plus/icons-vue'; import { ElTable } from 'element-plus'; import { FormInstance, FormRules, ElMessage } from 'element-plus'; import { workApplyApi } from '/@/api/specialWorkSystem/workApply'; import type { TabsPaneContext } from 'element-plus'; +import {teamManageApi} from "/@/api/systemManage/basicDateManage/personShiftManage/teamManage"; +import Cookies from 'js-cookie'; +import axios from 'axios'; // 定义接口来定义对象的类型 interface stateType { @@ -207,10 +222,13 @@ dialogDetails: boolean; dialogStatus: boolean; deleteDialog: boolean; + downLoadDialog: boolean; pageIndex1: number; pageSize1: number; chosenIndex: null | number; deleteId: null | number; + downLoadId: null | number; + downLoadName: string; searchWord: string; totalSize1: number; activeName: string; @@ -218,14 +236,18 @@ details: {}; statusInfo: {}; workType: Array<type>; - depType: Array<type>; - dialogType: number + dialogType: number | null; + departmentList: Array<any>; + departmentRecursionList: Array<DepartmentState>; } interface type { id: number; name: string; } - +interface DepartmentState { + depId: number; + depName: string; +} export default defineComponent({ name: 'myApply', components: { @@ -248,6 +270,8 @@ totalSize1: 0, dialogType: null, activeName: '1', + departmentList: [], + departmentRecursionList: [], chosenIndex: null, searchWord: '', applyData: [], @@ -260,10 +284,13 @@ dialogDetails: false, dialogStatus: false, deleteDialog: false, + downLoadDialog: false, addRecord: {}, details: {}, statusInfo: {}, deleteId: null, + downLoadId: null, + downLoadName: '', deleteArr: [], workType: [ { id: 1, name: '动火作业' }, @@ -274,12 +301,6 @@ { id: 6, name: '高处作业' }, { id: 7, name: '临时用电作业' }, { id: 8, name: '盲板抽堵作业' } - ], - depType: [ - { id: 1, name: '部门一' }, - { id: 2, name: '部门二' }, - { id: 3, name: '部门三' }, - { id: 4, name: '部门四' } ] }); interface User { @@ -296,18 +317,42 @@ // 填写表单 const toApply = () => { router.push({ - path: 'workTicket' + path: 'workApply' }); }; const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); + }; + + // 获取部门列表 + const getAllDepartment = async () => { + let res = await teamManageApi().getAllDepartment(); + if (res.data.code === '200') { + state.departmentList = JSON.parse(JSON.stringify(res.data.data)) + recursion(state.departmentList); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; + + const recursion = (value: any) => { + for (let i of value) { + if (i.children.length !== 0) { + state.departmentRecursionList.push(i); + recursion(i.children); + } else { + state.departmentRecursionList.push(i); + } + } }; // 分页获取工作时间组列表 const getListByPage = async () => { const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord } }; - let res = await workApplyApi().getApplyListtPage(data); + let res = await workApplyApi().getApplyListPage(data); if (res.data.code === '200') { state.applyData = JSON.parse(JSON.stringify(res.data.data)); state.applyData = state.applyData.map((item) => { @@ -319,7 +364,6 @@ return item; }); state.totalSize1 = res.data.total; - console.log( state.applyData,'0212121'); } else { ElMessage({ type: 'warning', @@ -374,7 +418,6 @@ if (res.data.code === '200') { state.approveInfo = JSON.parse(JSON.stringify(res.data.data)); state.approveInfo.operators = Array.from(state.approveInfo.operators, ({ operatorUname }) => operatorUname); - console.log(state.approveInfo, 'steps'); } else { ElMessage({ type: 'warning', @@ -394,7 +437,7 @@ if (res.data.code === '200') { ElMessage({ type: 'success', - message: res.data.msg + message: '删除成功!' }); getListByPage(); } else { @@ -410,6 +453,41 @@ state.deleteDialog = false; }; + // 导出图表 + const downLoadBtn = (row:any) =>{ + state.downLoadId = row.workApplyId; + state.downLoadName = row.workTypeDesc + row.workPermitNo + state.downLoadDialog = true; + } + + // 导出方法 + const downLoadRecord = async (data: any) => { + // let res = await workApplyApi().postPrinting(data); + axios.post(import.meta.env.VITE_API_URL + `/work/apply/printing`,data,{headers:{'Content-Type': 'application/json','Authorization': `${Cookies.get('token')}`,'uid':`${Cookies.get('uid')}`},responseType: 'blob'}).then(res=>{ + if (res) { + const link = document.createElement('a') + let blob = new Blob([res.data],{type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'}) + link.style.display = "none"; + link.href = URL.createObjectURL(blob); // 创建URL + link.setAttribute("download", state.downLoadName + "作业证.docx"); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }) + + }; + + const conFirmDownLoad = () => { + downLoadRecord({ applyWorkId: state.downLoadId }); + state.downLoadDialog = false; + }; + const handleSizeChange1 = (val: number) => { state.pageSize1 = val; getListByPage(); @@ -422,13 +500,11 @@ // 查看记录 const viewRecord = (row: any) => { state.dialogType = row.workType - console.log(state.dialogType,'工作类型') state.details = JSON.parse(JSON.stringify(row)); if(state.details.workDetail.otherSpecialWork == '' || !state.details.workDetail.otherSpecialWork){ state.details.workDetail.otherSpecialWork=[] } else { - console.log(state.details.workDetail.otherSpecialWork,'split') const a = state.details.workDetail.otherSpecialWork state.details.workDetail.otherSpecialWork = a.split(',').map((item) => { return state.workType.find((i: { id: number }) => i.id === Number(item))?.name; @@ -440,10 +516,24 @@ else { const a = state.details.workDetail.involvedDepIds state.details.workDetail.involvedDepIds = a.split(',').map((item) => { - return state.depType.find((i: { id: number }) => i.id === Number(item))?.name; + return state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(item))?.depName; }); } - console.log(state.details,'details') + if(state.details.workDetail.csDepId){ + state.details.workDetail.csDepId = state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(state.details.workDetail.csDepId))?.depName; + } + if(state.details.workDetail.operationDepId){ + state.details.workDetail.operationDepId = state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(state.details.workDetail.operationDepId))?.depName; + } + if(state.details.workDetail.gbPath){ + state.details.workDetail.gbPath = state.details.workDetail.gbPath.split(',') + } + if(state.details.workDetail.bcPath){ + state.details.workDetail.bcPath = state.details.workDetail.bcPath.split(',') + } + if(state.details.workDetail.bpLocationMapPath){ + state.details.workDetail.bpLocationMapPath = state.details.workDetail.bpLocationMapPath.split(',') + } state.dialogDetails = true; }; @@ -457,6 +547,7 @@ // 页面载入时执行方法 onMounted(() => { getListByPage(); + getAllDepartment() }); return { @@ -466,6 +557,7 @@ Refresh, Plus, Finished, + Download, reLoadData, toApply, handleClick, @@ -475,7 +567,9 @@ viewRecord, viewStatus, deleteRecordBtn, + downLoadBtn, conFirmDelete, + conFirmDownLoad, getListByPage, handleSizeChange1, handleCurrentChange1, @@ -623,9 +717,12 @@ & > span { flex: 1; + &:last-of-type{ + text-align: center; + } } & > div { - flex: 2; + flex: 1; text-align: center; } } @@ -639,9 +736,12 @@ & > span { flex: 1; + &:last-of-type{ + text-align: center; + } } & > div { - flex: 2; + flex: 1; text-align: center; & > div { @@ -708,11 +808,12 @@ width: 100%; display: flex; justify-content: center; - align-items: center; + align-items: flex-start; + margin-bottom: 10px; span { - width: 45%; + width: 50%; &:first-of-type { - width: 30%; + width: 25%; } } } -- Gitblit v1.9.2