Admin
2022-09-08 3bafe1323441beec50b61ffb09e2b530d5be72b2
Default Changelist
已修改3个文件
83 ■■■■■ 文件已修改
src/api/specialWorkSystem/workApply/index.ts 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/request.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/specialWorkSystem/workTicket/myJobApply/index.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/specialWorkSystem/workApply/index.ts
@@ -19,6 +19,18 @@
            });
        },
        // 导出打印接口
        postPrinting: (data: object) => {
            return request({
                url: import.meta.env.VITE_API_URL + `/work/apply/printing`,
                method: 'post',
                data: data,
                responseType: 'blob',
                headers:{'Content-Type': 'application/json'}
            });
        },
        // 动火申请
        postFireApply: (data: object) => {
            return request({
src/utils/request.ts
@@ -35,12 +35,16 @@
service.defaults.transformResponse = [
    function (data) {
        try {
            if(data.indexOf('PK')==-1){
                return JSONbig.parse(data);
            }else{
                return data
            }
            // 正常同通过return JSON.parse(data)对数据进行转换
            // 但是转化完成的数据可能超出安全数据长度
            // 因此我们定制使用第三包来转化
            return JSONbig.parse(data);
        } catch (err) {
            console.log(err);
            // 转换失败返回一个空对象
            return {
            };
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,