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