From 3bafe1323441beec50b61ffb09e2b530d5be72b2 Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期四, 08 九月 2022 16:47:35 +0800 Subject: [PATCH] Default Changelist --- src/views/specialWorkSystem/workTicket/myJobApply/index.vue | 63 +++++++++++++++++++++++++++++-- 1 files changed, 58 insertions(+), 5 deletions(-) diff --git a/src/views/specialWorkSystem/workTicket/myJobApply/index.vue b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue index 6c2a074..bd1a108 100644 --- a/src/views/specialWorkSystem/workTicket/myJobApply/index.vue +++ b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue @@ -48,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> @@ -139,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>--> @@ -193,12 +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 { @@ -210,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; @@ -269,10 +284,13 @@ dialogDetails: false, dialogStatus: false, deleteDialog: false, + downLoadDialog: false, addRecord: {}, details: {}, statusInfo: {}, deleteId: null, + downLoadId: null, + downLoadName: '', deleteArr: [], workType: [ { id: 1, name: '动火作业' }, @@ -304,7 +322,6 @@ }; const handleClick = (tab: TabsPaneContext, event: Event) => { - console.log(tab, event); }; // 获取部门列表 @@ -401,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', @@ -437,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(); @@ -454,7 +505,6 @@ 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; @@ -507,6 +557,7 @@ Refresh, Plus, Finished, + Download, reLoadData, toApply, handleClick, @@ -516,7 +567,9 @@ viewRecord, viewStatus, deleteRecordBtn, + downLoadBtn, conFirmDelete, + conFirmDownLoad, getListByPage, handleSizeChange1, handleCurrentChange1, -- Gitblit v1.9.2