From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Tue, 04 Mar 2025 08:39:55 +0800
Subject: [PATCH] 修改作业等级名称
---
src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue | 1721 ++++++++++++++++++++++++++++++----------------------------
1 files changed, 885 insertions(+), 836 deletions(-)
diff --git a/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue b/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
index e036b00..ef25aba 100644
--- a/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
@@ -1,893 +1,942 @@
<template>
- <div class="home-container">
-<!-- <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">-->
-<!-- <el-tab-pane label="申请中" name="1">-->
- <div style="height: 100%">
- <el-row class="homeCard">
- <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
- <span>时间筛选:</span>
- <el-date-picker v-model="timeRange" value-format="YYYY-MM-DD" type="daterange" @change="giveTime" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
- </div>
- <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
- <span>负责人:</span>
- <el-input v-model="searPara.headUserName" placeholder="负责人"/>
- </div>
- <div class="basic-line">
- <span>事业部:</span>
- <el-select v-model="searPara.secondDepId">
- <el-option
- v-for="item in dep4List"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- />
- </el-select>
- </div>
- <div class="basic-line">
- <span>作业类型:</span>
- <el-select v-model="searPara.workType">
- <el-option
- v-for="item in workType"
- :key="item.id"
- :label="item.name"
- :value="item.id"
- />
- </el-select>
- </div>
- <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
- <span>作业票编号:</span>
- <el-input
- v-model="searPara.workPermitNo"
- placeholder="请输入作业票编号"
- />
- </div>
- <div style="margin-left: 20px">
- <el-button type="primary" @click="searchRecord">查询</el-button>
- <el-button plain @click="clearSearch">重置</el-button>
- </div>
- </el-row>
- <div class="homeCard">
- <div class="main-card">
- <el-row class="cardTop">
- <el-col :span="12" class="mainCardBtn">
- <el-button type="primary" :icon="Plus" size="default" @click="toApply()">申请</el-button>
- <el-button type="primary" :icon="Download" size="default" @click="exportSheet()">导出记录</el-button>
- </el-col>
- <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
- </el-row>
- <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
- <el-table-column property="workPermitNo" label="作业编号" align="center">
- <template #default="scope">
- {{scope.row.workPermitNo?scope.row.workPermitNo:'—'}}
- </template>
- </el-table-column>
- <el-table-column property="seDepName" label="事业部" align="center"/>
- <el-table-column property="applyDepName" label="作业所在车间" align="center"/>
- <el-table-column property="workContent" label="作业内容" align="center"/>
- <el-table-column property="workTypeDesc" 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="headList" label="负责人及电话" align="center">
- <template #default="scope">
- {{scope.row.headList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
- </template>
- </el-table-column>
- <el-table-column property="operatorList" label="作业人及电话" align="center">
- <template #default="scope">
- {{scope.row.operatorList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
- </template>
- </el-table-column>
- <el-table-column property="guardianList" label="监护人及电话" align="center">
- <template #default="scope">
- {{scope.row.guardianList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
- </template>
- </el-table-column>
- <el-table-column property="expStartTime" label="作业开始时间" align="center"/>
- <el-table-column property="expEndTime" label="预计完成时间" align="center"/>
- <el-table-column label="执法仪编号" align="center">
- <template #default="scope">
- {{scope.row.workApprovalDeviceList.map(i=>i.deviceNo).join(',')}}
- </template>
- </el-table-column>
- <el-table-column label="作业人数" align="center">
- <template #default="scope">
- {{scope.row.operatorList.length}}
- </template>
- </el-table-column>
- <el-table-column label="监护人数" align="center">
- <template #default="scope">
- {{scope.row.guardianList.length}}
- </template>
- </el-table-column>
- <el-table-column label="风险研判" align="center">
- <template #default="scope">
- <el-button v-if="scope.row.status == 0" link type="primary" size="small" @click="openReport('上传', scope.row)">上传研判报告</el-button>
- <el-tag type="danger" v-else-if="scope.row.status == 15">已取消</el-tag>
- <el-tag type="danger" v-else-if="scope.row.status == 16">已废止</el-tag>
- <el-button v-else link type="primary" size="small" @click="openReport('查看', scope.row)">查看研判报告</el-button>
- </template>
- </el-table-column>
- <el-table-column fixed="right" label="操作" align="center" width="150">
- <template #default="scope">
- <span v-if="scope.row.status == 16">已废止</span>
- <span v-if="scope.row.status == 15">已取消</span>
- <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="danger" size="small" :icon="Delete" @click="abortRecordBtn(scope.row)">取消</el-button>
- <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
- <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="primary" size="small" v-throttle :icon="Edit" @click="openEdit(scope.row)">修改</el-button>
- <el-button link type="success" v-throttle v-if="scope.row.status == 0 || scope.row.status == 1" size="small" :icon="Download" @click="checkTicket(scope.row)">正式办票</el-button>
-<!-- <el-button :disabled="scope.row.status == 7 ? false : true" link type="primary" size="small" :icon="Download" @click="downLoadBtn(scope.row)">导出作业票</el-button>-->
- </template>
- </el-table-column>
- </el-table>
- <div class="pageBtn">
- <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
- </div>
- </div>
- </div>
- </div>
- <el-dialog v-model="dialogDetails" title="作业申请详情" center>
-<!-- <fire v-if="dialogType == 1" :details = details></fire>-->
-<!-- <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>-->
- <detail-log :type=dialogType :statusList=statusList :details = details></detail-log>
- <template #footer>
+ <div class="home-container">
+ <!-- <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">-->
+ <!-- <el-tab-pane label="申请中" name="1">-->
+ <div style="height: 100%">
+ <el-row class="homeCard">
+ <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
+ <span>时间筛选:</span>
+ <el-date-picker v-model="timeRange" value-format="YYYY-MM-DD" type="daterange" @change="giveTime"
+ range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"/>
+ </div>
+ <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
+ <span>负责人:</span>
+ <el-input v-model="searPara.headUserName" placeholder="负责人"/>
+ </div>
+ <div class="basic-line">
+ <span>部门:</span>
+ <el-cascader :teleported="false" v-model="searPara.secondDepId" :options="departmentList" :props="casProps" :show-all-levels="false"/>
+ </div>
+ <div class="basic-line">
+ <span>作业类型:</span>
+ <el-select v-model="searPara.workType">
+ <el-option
+ v-for="item in workType"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </div>
+ <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
+ <span>作业票编号:</span>
+ <el-input
+ v-model="searPara.workPermitNo"
+ placeholder="请输入作业票编号"
+ />
+ </div>
+ <div style="margin-left: 20px">
+ <el-button type="primary" @click="searchRecord">查询</el-button>
+ <el-button plain @click="clearSearch">重置</el-button>
+ </div>
+ </el-row>
+ <div class="homeCard">
+ <div class="main-card">
+ <el-row class="cardTop">
+ <el-col :span="12" class="mainCardBtn">
+ <el-button type="primary" :icon="Plus" size="default" @click="toApply()">申请</el-button>
+ <el-button type="primary" :icon="Download" size="default" @click="exportSheet()">导出记录</el-button>
+ </el-col>
+ <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()"/>
+ </el-row>
+ <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)"
+ :header-cell-style="{ background: '#fafafa' }">
+ <el-table-column property="workPermitNo" label="作业编号" align="center">
+ <template #default="scope">
+ {{ scope.row.workPermitNo ? scope.row.workPermitNo : '—' }}
+ </template>
+ </el-table-column>
+ <el-table-column property="seDepName" label="部门" align="center"/>
+ <el-table-column property="applyDepName" label="作业所在车间" align="center"/>
+ <el-table-column property="workContent" label="作业内容" align="center"/>
+ <el-table-column property="workTypeDesc" 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="headList" label="负责人及电话" align="center">
+ <template #default="scope">
+ {{
+ scope.row.headList.map(i => {
+ return i.userName + '(' + i.phone + ')'
+ }).join(',')
+ }}
+ </template>
+ </el-table-column>
+ <el-table-column property="operatorList" label="作业人及电话" align="center">
+ <template #default="scope">
+ {{
+ scope.row.operatorList.map(i => {
+ return i.userName + '(' + i.phone + ')'
+ }).join(',')
+ }}
+ </template>
+ </el-table-column>
+ <el-table-column property="guardianList" label="监护人及电话" align="center">
+ <template #default="scope">
+ {{
+ scope.row.guardianList.map(i => {
+ return i.userName + '(' + i.phone + ')'
+ }).join(',')
+ }}
+ </template>
+ </el-table-column>
+ <el-table-column property="expStartTime" label="作业开始时间" align="center"/>
+ <el-table-column property="expEndTime" label="预计完成时间" align="center"/>
+ <el-table-column label="执法仪编号" align="center">
+ <template #default="scope">
+ {{ scope.row.workApprovalDeviceList.map(i => i.deviceNo).join(',') }}
+ </template>
+ </el-table-column>
+ <el-table-column label="作业人数" align="center">
+ <template #default="scope">
+ {{ scope.row.operatorList.length }}
+ </template>
+ </el-table-column>
+ <el-table-column label="监护人数" align="center">
+ <template #default="scope">
+ {{ scope.row.guardianList.length }}
+ </template>
+ </el-table-column>
+ <el-table-column label="风险研判" align="center">
+ <template #default="scope">
+ <el-button v-if="scope.row.status == 0" link type="primary" size="small"
+ @click="openReport('上传', scope.row)">上传研判报告
+ </el-button>
+ <el-tag type="danger" v-else-if="scope.row.status == 15">已取消</el-tag>
+ <el-tag type="danger" v-else-if="scope.row.status == 16">已废止</el-tag>
+ <el-button v-else link type="primary" size="small" @click="openReport('查看', scope.row)">查看研判报告
+ </el-button>
+ </template>
+ </el-table-column>
+ <el-table-column fixed="right" label="操作" align="center" width="150">
+ <template #default="scope">
+ <span v-if="scope.row.status == 16">已废止</span>
+ <span v-if="scope.row.status == 15">已取消</span>
+ <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="danger" size="small"
+ :icon="Delete" @click="abortRecordBtn(scope.row)">取消
+ </el-button>
+ <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
+ <el-button v-if="scope.row.status == 0 || scope.row.status == 1" link type="primary" size="small"
+ v-throttle :icon="Edit" @click="openEdit(scope.row)">修改
+ </el-button>
+ <el-button link type="success" v-throttle v-if="scope.row.status == 0 || scope.row.status == 1"
+ size="small" :icon="Download" @click="checkTicket(scope.row)">正式办票
+ </el-button>
+ <!-- <el-button :disabled="scope.row.status == 7 ? false : true" link type="primary" size="small" :icon="Download" @click="downLoadBtn(scope.row)">导出作业票</el-button>-->
+ </template>
+ </el-table-column>
+ </el-table>
+ <div class="pageBtn">
+ <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[10, 15]"
+ small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1"
+ @size-change="handleSizeChange1" @current-change="handleCurrentChange1"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ <el-dialog v-model="dialogDetails" title="作业申请详情" center>
+ <!-- <fire v-if="dialogType == 1" :details = details></fire>-->
+ <!-- <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>-->
+ <detail-log :type=dialogType :statusList=statusList :details=details></detail-log>
+ <template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="dialogDetails = false">确认</el-button>
</span>
- </template>
- </el-dialog>
- <report-log ref="reportDialogRef" @refresh="getListByPage"></report-log>
- <fire-dialog ref="fireRef" :lists="lists" @refresh="getListByPage"></fire-dialog>
- <plate-dialog ref="plateRef" :lists="lists" @refresh="getListByPage"></plate-dialog>
- <space-dialog ref="spaceRef" :lists="lists" @refresh="getListByPage"></space-dialog>
- <hoist-dialog ref="hoistRef" :lists="lists" @refresh="getListByPage"></hoist-dialog>
- <ground-dialog ref="groundRef" :lists="lists" @refresh="getListByPage"></ground-dialog>
- <broken-dialog ref="brokenRef" :lists="lists" @refresh="getListByPage"></broken-dialog>
- <height-dialog ref="heightRef" :lists="lists" @refresh="getListByPage"></height-dialog>
- <power-dialog ref="powerRef" :lists="lists" @refresh="getListByPage"></power-dialog>
- <open-dialog ref="openRef" :lists="lists" @refresh="getListByPage"></open-dialog>
- </div>
+ </template>
+ </el-dialog>
+ <report-log ref="reportDialogRef" @refresh="getListByPage"></report-log>
+ <fire-dialog ref="fireRef" :lists="lists" @refresh="getListByPage"></fire-dialog>
+ <plate-dialog ref="plateRef" :lists="lists" @refresh="getListByPage"></plate-dialog>
+ <space-dialog ref="spaceRef" :lists="lists" @refresh="getListByPage"></space-dialog>
+ <hoist-dialog ref="hoistRef" :lists="lists" @refresh="getListByPage"></hoist-dialog>
+ <ground-dialog ref="groundRef" :lists="lists" @refresh="getListByPage"></ground-dialog>
+ <broken-dialog ref="brokenRef" :lists="lists" @refresh="getListByPage"></broken-dialog>
+ <height-dialog ref="heightRef" :lists="lists" @refresh="getListByPage"></height-dialog>
+ <power-dialog ref="powerRef" :lists="lists" @refresh="getListByPage"></power-dialog>
+ <open-dialog ref="openRef" :lists="lists" @refresh="getListByPage"></open-dialog>
+ </div>
</template>
<script lang="ts">
import {toRefs, reactive, defineComponent, ref, onMounted, defineAsyncComponent} from 'vue';
-import { storeToRefs } from 'pinia';
-import { initBackEndControlRoutes } from '/@/router/backEnd';
-import { useUserInfo } from '/@/stores/userInfo';
-import { Session } from '/@/utils/storage';
-import { useRouter } from 'vue-router';
-import { Edit, View, Plus, Delete, Refresh, Search, Finished, Download } from '@element-plus/icons-vue';
-import { ElTable } from 'element-plus';
-import { FormInstance, FormRules, ElMessage, ElMessageBox } from 'element-plus';
-import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
-import type { TabsPaneContext } from 'element-plus';
+import {storeToRefs} from 'pinia';
+import {initBackEndControlRoutes} from '/@/router/backEnd';
+import {useUserInfo} from '/@/stores/userInfo';
+import {Session} from '/@/utils/storage';
+import {useRouter} from 'vue-router';
+import {Edit, View, Plus, Delete, Refresh, Search, Finished, Download} from '@element-plus/icons-vue';
+import {ElTable} from 'element-plus';
+import {FormInstance, FormRules, ElMessage, ElMessageBox} 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 {
- applyData: Array<string>;
- workTimeList: Array<string>;
- multipleSelection: Array<any>;
- deleteArr: Array<any>;
- approveInfo: Object;
- dialogDetails: boolean;
- dialogStatus: boolean;
- pageIndex1: number;
- pageSize1: number;
- chosenIndex: null | number;
- downLoadId: null | number;
- downLoadName: string;
- totalSize1: number;
- activeName: string;
- addRecord: {};
- details: {};
- statusInfo: {};
- workType: Array<type>;
- dialogType: number | null;
- departmentList: Array<any>;
- departmentRecursionList: Array<DepartmentState>;
- statusList: Array<any>;
- searPara: {}
- timeRange: Array<string>;
- dep4List: Array<type>;
- lists: {}
+ applyData: Array<string>;
+ workTimeList: Array<string>;
+ multipleSelection: Array<any>;
+ deleteArr: Array<any>;
+ approveInfo: Object;
+ dialogDetails: boolean;
+ dialogStatus: boolean;
+ pageIndex1: number;
+ pageSize1: number;
+ chosenIndex: null | number;
+ downLoadId: null | number;
+ downLoadName: string;
+ totalSize1: number;
+ activeName: string;
+ addRecord: {};
+ details: {};
+ statusInfo: {};
+ workType: Array<type>;
+ dialogType: number | null;
+ departmentList: Array<any>;
+ departmentRecursionList: Array<DepartmentState>;
+ statusList: Array<any>;
+ searPara: {}
+ timeRange: Array<string>;
+ dep4List: Array<type>;
+ lists: {}
+ casProps: {}
}
+
interface type {
- id: number;
- name: string;
+ id: number;
+ name: string;
}
+
interface DepartmentState {
- depId: number;
- depName: string;
+ depId: number;
+ depName: string;
}
+
export default defineComponent({
- name: 'myApply',
- components: {
- detailLog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/detailLog.vue')),
- reportLog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/jsaReportDialog.vue')),
- fireDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/fireDialog.vue')),
- plateDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/plateDialog.vue')),
- spaceDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/spaceDialog.vue')),
- hoistDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/hoistDialog.vue')),
- groundDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/groundDialog.vue')),
- brokenDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/brokenDialog.vue')),
- heightDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/heightDialog.vue')),
- powerDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/powerDialog.vue')),
- openDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/openDialog.vue'))
- },
- setup() {
- const userInfo = useUserInfo();
- const { userInfos } = storeToRefs(userInfo);
- const router = useRouter();
- const reportDialogRef = ref();
- const fireRef = ref()
- const plateRef = ref()
- const spaceRef = ref()
- const hoistRef = ref()
- const groundRef = ref()
- const brokenRef = ref()
- const heightRef = ref()
- const powerRef = ref()
- const openRef = ref()
- const state = reactive<stateType>({
- pageIndex1: 1,
- pageSize1: 10,
- totalSize1: 0,
- dialogType: null,
- activeName: '1',
- departmentList: [],
- departmentRecursionList: [],
- chosenIndex: null,
- searPara:{
- startTime: '',
- endTime: '',
- workPermitNo: '',
- workType: null,
- headUserName: '',
- secondDepId: null
- },
- timeRange: [],
- applyData: [],
- workTimeList: [],
- multipleSelection: [],
- approveInfo: {
- approvalSteps: [],
- operators: []
- },
- dialogDetails: false,
- dialogStatus: false,
- addRecord: {},
- details: {},
- statusInfo: {},
- downLoadId: null,
- downLoadName: '',
- deleteArr: [],
- workType: [
- { id: 1, name: '动火作业' },
- { id: 2, name: '受限空间作业' },
- { id: 3, name: '吊装作业' },
- { id: 4, name: '动土作业' },
- { id: 5, name: '断路作业' },
- { id: 6, name: '高处作业' },
- { id: 7, name: '临时用电作业' },
- { id: 8, name: '盲板抽堵作业' },
- { id: 9, name: '打开作业' }
- ],
- lists: {
- workerList: [],
- departList: [],
- departList2: [],
- deviceList: [],
- otherWorks: [],
- spList: [],
- riskList: []
- },
- dep4List: [
- {id:49,name:'电石事业部'},
- {id:50,name:'电力事业部'},
- {id:48,name:'有机化工事业部'},
- {id:32,name:'甲醇事业部'}
- ],
- statusList: [
- {
- value: 0,
- label: '风险研判'
- },
- {
- value: 1,
- label: '票证办理'
- },
- {
- value: 2,
- label: '气体分析'
- },
- {
- value: 3,
- label: '安全措施确认,培训交底'
- },
- {
- value: 4,
- label: '安全措施确认'
- },
- {
- value: 5,
- label: '培训交底'
- },
- {
- value: 6,
- label: '部门审批'
- },
- {
- value: 7,
- label: '作业票填报结束'
- },
- {
- value: 8,
- label: '作业气体分析不合格'
- },
- {
- value: 9,
- label: '审批未通过'
- },
- {
- value: 10,
- label: '开始'
- },
- {
- value: 11,
- label: '监护'
- },
- {
- value: 12,
- label: '结束'
- },
- {
- value: 13,
- label: '待验收'
- },
- {
- value: 14,
- label: '验收完成'
- },
- {
- value: 15,
- label: '取消'
- },
- {
- value: 16,
- label: '废止作业票'
- }
- ]
- });
-
- // 页面载入时执行方法
- onMounted(() => {
- getListByPage();
- getAllDepartment()
- spWorker()
- getOpList()
- getAll()
- getAllDevice()
- getAllRisks()
- getOtherWork()
- });
-
- const openEdit = (row)=>{
- if(row.workType == 1){
- fireRef.value.openDialog(row,'edit')
- }
- if(row.workType == 2){
- spaceRef.value.openDialog(row,'edit')
- }
- if(row.workType == 3){
- hoistRef.value.openDialog(row,'edit')
- }
- if(row.workType == 4){
- groundRef.value.openDialog(row,'edit')
- }
- if(row.workType == 5){
- brokenRef.value.openDialog(row,'edit')
- }
- if(row.workType == 6){
- heightRef.value.openDialog(row,'edit')
- }
- if(row.workType == 7){
- powerRef.value.openDialog(row,'edit')
- }
- if(row.workType == 8){
- plateRef.value.openDialog(row,'edit')
- }
- if(row.workType == 9){
- openRef.value.openDialog(row,'edit')
- }
+ name: 'myApply',
+ components: {
+ detailLog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/detailLog.vue')),
+ reportLog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/jsaReportDialog.vue')),
+ fireDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/fireDialog.vue')),
+ plateDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/plateDialog.vue')),
+ spaceDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/spaceDialog.vue')),
+ hoistDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/hoistDialog.vue')),
+ groundDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/groundDialog.vue')),
+ brokenDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/brokenDialog.vue')),
+ heightDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/heightDialog.vue')),
+ powerDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/powerDialog.vue')),
+ openDialog: defineAsyncComponent(() => import('/@/views/newSpecialWorkSystem/workTicket/wdsq/components/openDialog.vue'))
+ },
+ setup() {
+ const userInfo = useUserInfo();
+ const {userInfos} = storeToRefs(userInfo);
+ const router = useRouter();
+ const reportDialogRef = ref();
+ const fireRef = ref()
+ const plateRef = ref()
+ const spaceRef = ref()
+ const hoistRef = ref()
+ const groundRef = ref()
+ const brokenRef = ref()
+ const heightRef = ref()
+ const powerRef = ref()
+ const openRef = ref()
+ const state = reactive<stateType>({
+ pageIndex1: 1,
+ pageSize1: 10,
+ totalSize1: 0,
+ dialogType: null,
+ activeName: '1',
+ departmentList: [],
+ departmentRecursionList: [],
+ chosenIndex: null,
+ searPara: {
+ startTime: '',
+ endTime: '',
+ workPermitNo: '',
+ workType: null,
+ headUserName: '',
+ secondDepId: null
+ },
+ casProps: {
+ emitPath: false,
+ value: 'depId',
+ label: 'depName',
+ checkStrictly: true
+ },
+ timeRange: [],
+ applyData: [],
+ workTimeList: [],
+ multipleSelection: [],
+ approveInfo: {
+ approvalSteps: [],
+ operators: []
+ },
+ dialogDetails: false,
+ dialogStatus: false,
+ addRecord: {},
+ details: {},
+ statusInfo: {},
+ downLoadId: null,
+ downLoadName: '',
+ deleteArr: [],
+ workType: [
+ {id: 1, name: '动火作业'},
+ {id: 2, name: '受限空间作业'},
+ {id: 3, name: '吊装作业'},
+ {id: 4, name: '动土作业'},
+ {id: 5, name: '断路作业'},
+ {id: 6, name: '高处作业'},
+ {id: 7, name: '临时用电作业'},
+ {id: 8, name: '盲板抽堵作业'},
+ {id: 9, name: '打开作业'}
+ ],
+ lists: {
+ workerList: [],
+ departList: [],
+ departList2: [],
+ deviceList: [],
+ otherWorks: [],
+ spList: [],
+ riskList: []
+ },
+ dep4List: [],
+ statusList: [
+ {
+ value: 0,
+ label: '风险研判'
+ },
+ {
+ value: 1,
+ label: '票证办理'
+ },
+ {
+ value: 2,
+ label: '气体分析'
+ },
+ {
+ value: 3,
+ label: '安全措施确认,培训交底'
+ },
+ {
+ value: 4,
+ label: '安全措施确认'
+ },
+ {
+ value: 5,
+ label: '培训交底'
+ },
+ {
+ value: 6,
+ label: '部门审批'
+ },
+ {
+ value: 7,
+ label: '作业票填报结束'
+ },
+ {
+ value: 8,
+ label: '作业气体分析不合格'
+ },
+ {
+ value: 9,
+ label: '审批未通过'
+ },
+ {
+ value: 10,
+ label: '开始'
+ },
+ {
+ value: 11,
+ label: '监护'
+ },
+ {
+ value: 12,
+ label: '结束'
+ },
+ {
+ value: 13,
+ label: '待验收'
+ },
+ {
+ value: 14,
+ label: '验收完成'
+ },
+ {
+ value: 15,
+ label: '取消'
+ },
+ {
+ value: 16,
+ label: '废止作业票'
}
+ ]
+ });
- const spWorker = async ()=>{
- for(let id of ['18','19']){
- const res = await workApplyApi().getSpList({roleId: id})
- if(id == '18'){
- if (res.data.code === '200') {
- state.lists.spList.jhList = JSON.parse(JSON.stringify(res.data.data))
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- }
- if(id == '19'){
- if (res.data.code === '200') {
- state.lists.spList.sfList = JSON.parse(JSON.stringify(res.data.data))
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- }
- }
+ // 页面载入时执行方法
+ onMounted(() => {
+ getListByPage();
+ getAllDepartment()
+ spWorker()
+ getOpList()
+ getAll()
+ getAllDevice()
+ getAllRisks()
+ getOtherWork()
+ });
+
+ const openEdit = (row) => {
+ if (row.workType == 1) {
+ fireRef.value.openDialog(row, 'edit')
}
-
- const getOpList = async()=>{
- const res = await workApplyApi().getOpList()
- if(res.data.code == '200'){
- if(res.data.data && res.data.data.length>0){
- state.lists.spList.opList = JSON.parse(JSON.stringify(res.data.data)).map(i=>{
- if(i.certList && i.certList.length>0){
- i.certList = i.certList.map(item=>{
- item['realName'] = i.realName + '(' + item.certTypeName +':'+ item.certExpiredAt + ')'
- item['uid'] = item.certNo + ',' + item.certExpiredAt
- return item
- })
- }
- return i
- })
- }
- }else{
- ElMessage({
- type: 'warning',
- message: res.data.msg
- })
- }
+ if (row.workType == 2) {
+ spaceRef.value.openDialog(row, 'edit')
}
-
- // 获取用户列表
- const getAll = async ()=>{
- const res = await workApplyApi().getAllUsers()
- if (res.data.code === '200') {
- state.lists.workerList = JSON.parse(JSON.stringify(res.data.data))
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- };
-
- // 获取设备列表
- const getAllDevice = async ()=>{
- const res = await workApplyApi().getAllDevices()
- if (res.data.code === '200') {
- state.lists.deviceList = JSON.parse(JSON.stringify(res.data.data))
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
+ if (row.workType == 3) {
+ hoistRef.value.openDialog(row, 'edit')
}
-
- // 获取设备列表
- const getAllRisks = async ()=>{
- const res = await workApplyApi().getAllRiskIdentity()
- if (res.data.code === '200') {
- // state.allDevices = JSON.parse(JSON.stringify(res.data.data))
- state.lists.riskList = JSON.parse(JSON.stringify(res.data.data))
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
+ if (row.workType == 4) {
+ groundRef.value.openDialog(row, 'edit')
}
+ if (row.workType == 5) {
+ brokenRef.value.openDialog(row, 'edit')
+ }
+ if (row.workType == 6) {
+ heightRef.value.openDialog(row, 'edit')
+ }
+ if (row.workType == 7) {
+ powerRef.value.openDialog(row, 'edit')
+ }
+ if (row.workType == 8) {
+ plateRef.value.openDialog(row, 'edit')
+ }
+ if (row.workType == 9) {
+ openRef.value.openDialog(row, 'edit')
+ }
+ }
- const giveTime = () => {
- if (state.timeRange && state.timeRange !== null) {
- state.searPara.startTime = state.timeRange[0];
- state.searPara.endTime = state.timeRange[1]
- } else {
- state.searPara.startTime = '';
- state.searPara.endTime = '';
- }
- };
-
- // 刷新
- const reLoadData = async () => {
- getListByPage();
- };
-
- // 填写表单
- const toApply = () => {
- router.push({
- path: 'zysq'
- });
- };
-
- const handleClick = (tab: TabsPaneContext, event: 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);
- state.lists.departList = JSON.parse(JSON.stringify(res.data.data))
- state.lists.departList2 = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- };
- const getOtherWork = async () => {
- let res = await workApplyApi().getOtherWork({pageSize: 999, pageIndex: 1, searchParams: {workPermitNo: '', workType: null}})
+ const spWorker = async () => {
+ for (let id of ['18', '19']) {
+ const res = await workApplyApi().getSpList({roleId: id})
+ if (id == '18') {
if (res.data.code === '200') {
- state.lists.otherWorks = JSON.parse(JSON.stringify(res.data.data))
+ state.lists.spList.jhList = JSON.parse(JSON.stringify(res.data.data))
} 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: state.searPara };
- let res = await workApplyApi().getNewApplyListPage(data);
- if (res.data.code === '200') {
- state.applyData = JSON.parse(JSON.stringify(res.data.data));
- state.applyData = state.applyData.map((item) => {
- if (item.operators == null || item.operators == []) {
- item.operators = [];
- } else {
- item.operators = Array.from(item.operators, ({ operatorUname }) => operatorUname);
- }
- return item;
- });
- state.totalSize1 = res.data.total;
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- };
-
- // 表格数据格式化
- const toNames = (row, column, cellValue, index) => {
- if (row.list == []) {
- return [];
- } else {
- const nameList = [];
- for (let i = 0; i < row.list.length; i++) {
- for (let t = 0; t < state.workTimeList.length; t++) {
- if (row.list[i] == state.workTimeList[t].id) {
- nameList.push(state.workTimeList[t].name);
- }
- }
- }
- return nameList.join();
- }
- };
-
- // 关键词查询记录
- const searchRecord = async () => {
- state.pageIndex1 = 1
- getListByPage();
- };
- // 重置搜索
- const clearSearch = async () => {
- state.timeRange = []
- state.searPara = {
- startTime: '',
- endTime: '',
- workPermitNo: '',
- workType: null,
- headUserName: '',
- secondDepId: null
- };
- state.pageIndex1 = 1
- getListByPage();
- };
-
- // 查看进度
- const viewStatus = (row) => {
- getStatus({ workApplyId: row.workApplyId });
- state.dialogStatus = true;
- };
-
- // 查询进度方法
- const getStatus = async (data: any) => {
- let res = await workApplyApi().getStatus(data);
- if (res.data.code === '200') {
- state.approveInfo = JSON.parse(JSON.stringify(res.data.data));
- state.approveInfo.operators = Array.from(state.approveInfo.operators, ({ operatorUname }) => operatorUname);
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- };
-
- const abortRecordBtn = (row:object) => {
- ElMessageBox.confirm(
- '是否作废该项申报?',
- '申报作废',
- {
- confirmButtonText: '确认',
- cancelButtonText: '取消'
- }
- )
- .then(async () => {
- let res = await workApplyApi().abolishTicket({id: row.id});
- if (res.data.code === '200') {
- ElMessage({
- type: 'success',
- message: '作废成功!'
- });
- getListByPage();
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- })
- .catch(() => {
- console.log('取消废票')
- })
- };
-
- // 正式办票
- const checkTicket = (row:object) =>{
- ElMessageBox.confirm(
- '是否进行正式办票操作?',
- '正式办票',
- {
- confirmButtonText: '确认',
- cancelButtonText: '取消'
- }
- )
- .then(async () => {
- let res = await workApplyApi().checkTicket({id: row.id});
- if (res.data.code === '200') {
- ElMessage({
- type: 'success',
- message: '办票成功!'
- });
- getListByPage();
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- })
- .catch(() => {
- console.log('取消办票')
- })
}
-
- // 导出图表
- const downLoadBtn = (row:any) =>{
- state.downLoadId = row.workApplyId;
- state.downLoadName = row.workTypeDesc + row.workPermitNo
+ if (id == '19') {
+ if (res.data.code === '200') {
+ state.lists.spList.sfList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
}
-
- // 导出方法
- const exportSheet = async () => {
- // let res = await workApplyApi().postPrinting(data);
- axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/export/excel`,{startTime: state.searPara.startTime,endTime: state.searPara.endTime,secondDepId: state.searPara.secondDepId},{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/excel'})
- link.style.display = "none";
- link.href = URL.createObjectURL(blob); // 创建URL
- if(state.searPara.startTime !== '' && state.searPara.endTime !==''){
- link.setAttribute("download", state.searPara.startTime + '—' + state.searPara.endTime +"作业申报记录.xlsx")
- }else{
- link.setAttribute("download", "作业申报记录.xlsx")
- }
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- })
-
- };
-
- const handleSizeChange1 = (val: number) => {
- state.pageSize1 = val;
- getListByPage();
- };
- const handleCurrentChange1 = (val: number) => {
- state.pageIndex1 = val;
- getListByPage();
- };
-
- const openReport = (type: string, value: {}) => {
- reportDialogRef.value.showReportDialog(type, value);
- };
-
- // 查看记录
- const viewRecord = (row: any) => {
- state.dialogType = row.workType
- state.details = JSON.parse(JSON.stringify(row));
- state.dialogDetails = true;
- };
-
- // 折线图
- const renderMenu = async (value: string) => {
- Session.set('projectId', value);
- userInfos.value.projectId = value;
- await initBackEndControlRoutes();
- };
-
- return {
- View,
- Edit,
- Delete,
- Refresh,
- Plus,
- Finished,
- Download,
- reportDialogRef,
- fireRef,
- plateRef,
- spaceRef,
- hoistRef,
- groundRef,
- brokenRef,
- heightRef,
- powerRef,
- openRef,
- openEdit,
- getAllDepartment,
- checkTicket,
- giveTime,
- reLoadData,
- toApply,
- handleClick,
- toNames,
- searchRecord,
- clearSearch,
- openReport,
- viewRecord,
- viewStatus,
- abortRecordBtn,
- downLoadBtn,
- exportSheet,
- getListByPage,
- handleSizeChange1,
- handleCurrentChange1,
- ...toRefs(state)
- };
+ }
}
+
+ const getOpList = async () => {
+ const res = await workApplyApi().getOpList()
+ if (res.data.code == '200') {
+ if (res.data.data && res.data.data.length > 0) {
+ state.lists.spList.opList = JSON.parse(JSON.stringify(res.data.data)).map(i => {
+ if (i.certList && i.certList.length > 0) {
+ i.certList = i.certList.map(item => {
+ item['realName'] = i.realName + '(' + item.certTypeName + ':' + item.certExpiredAt + ')'
+ item['uid'] = item.certNo + ',' + item.certExpiredAt
+ return item
+ })
+ }
+ return i
+ })
+ }
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ })
+ }
+ }
+
+ // 获取用户列表
+ const getAll = async () => {
+ const res = await workApplyApi().getAllUsers()
+ if (res.data.code === '200') {
+ state.lists.workerList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ // 获取设备列表
+ const getAllDevice = async () => {
+ const res = await workApplyApi().getAllDevices()
+ if (res.data.code === '200') {
+ state.lists.deviceList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+
+ // 获取设备列表
+ const getAllRisks = async () => {
+ const res = await workApplyApi().getAllRiskIdentity()
+ if (res.data.code === '200') {
+ // state.allDevices = JSON.parse(JSON.stringify(res.data.data))
+ state.lists.riskList = JSON.parse(JSON.stringify(res.data.data))
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+
+ const giveTime = () => {
+ if (state.timeRange && state.timeRange !== null) {
+ state.searPara.startTime = state.timeRange[0];
+ state.searPara.endTime = state.timeRange[1]
+ } else {
+ state.searPara.startTime = '';
+ state.searPara.endTime = '';
+ }
+ };
+
+ // 刷新
+ const reLoadData = async () => {
+ getListByPage();
+ };
+
+ // 填写表单
+ const toApply = () => {
+ router.push({
+ path: 'zysq'
+ });
+ };
+
+ const handleClick = (tab: TabsPaneContext, event: 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);
+ state.lists.departList = JSON.parse(JSON.stringify(res.data.data))
+ // state.lists.departList2 = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50 || i.depId == 10 || i.depId == 41 || i.depId == 46 || i.depId == 47)
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+ const getOtherWork = async () => {
+ let res = await workApplyApi().getOtherWork({
+ pageSize: 999,
+ pageIndex: 1,
+ searchParams: {workPermitNo: '', workType: null}
+ })
+ if (res.data.code === '200') {
+ state.lists.otherWorks = JSON.parse(JSON.stringify(res.data.data))
+ } 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: state.searPara};
+ let res = await workApplyApi().getNewApplyListPage(data);
+ if (res.data.code === '200') {
+ state.applyData = JSON.parse(JSON.stringify(res.data.data));
+ state.applyData = state.applyData.map((item) => {
+ if (item.operators == null || item.operators == []) {
+ item.operators = [];
+ } else {
+ item.operators = Array.from(item.operators, ({operatorUname}) => operatorUname);
+ }
+ return item;
+ });
+ state.totalSize1 = res.data.total;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ // 表格数据格式化
+ const toNames = (row, column, cellValue, index) => {
+ if (row.list == []) {
+ return [];
+ } else {
+ const nameList = [];
+ for (let i = 0; i < row.list.length; i++) {
+ for (let t = 0; t < state.workTimeList.length; t++) {
+ if (row.list[i] == state.workTimeList[t].id) {
+ nameList.push(state.workTimeList[t].name);
+ }
+ }
+ }
+ return nameList.join();
+ }
+ };
+
+ // 关键词查询记录
+ const searchRecord = async () => {
+ state.pageIndex1 = 1
+ getListByPage();
+ };
+ // 重置搜索
+ const clearSearch = async () => {
+ state.timeRange = []
+ state.searPara = {
+ startTime: '',
+ endTime: '',
+ workPermitNo: '',
+ workType: null,
+ headUserName: '',
+ secondDepId: null
+ };
+ state.pageIndex1 = 1
+ getListByPage();
+ };
+
+ // 查看进度
+ const viewStatus = (row) => {
+ getStatus({workApplyId: row.workApplyId});
+ state.dialogStatus = true;
+ };
+
+ // 查询进度方法
+ const getStatus = async (data: any) => {
+ let res = await workApplyApi().getStatus(data);
+ if (res.data.code === '200') {
+ state.approveInfo = JSON.parse(JSON.stringify(res.data.data));
+ state.approveInfo.operators = Array.from(state.approveInfo.operators, ({operatorUname}) => operatorUname);
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ const abortRecordBtn = (row: object) => {
+ ElMessageBox.confirm(
+ '是否作废该项申报?',
+ '申报作废',
+ {
+ confirmButtonText: '确认',
+ cancelButtonText: '取消'
+ }
+ )
+ .then(async () => {
+ let res = await workApplyApi().abolishTicket({id: row.id});
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '作废成功!'
+ });
+ getListByPage();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ })
+ .catch(() => {
+ console.log('取消废票')
+ })
+ };
+
+ // 正式办票
+ const checkTicket = (row: object) => {
+ ElMessageBox.confirm(
+ '是否进行正式办票操作?',
+ '正式办票',
+ {
+ confirmButtonText: '确认',
+ cancelButtonText: '取消'
+ }
+ )
+ .then(async () => {
+ let res = await workApplyApi().checkTicket({id: row.id});
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '办票成功!'
+ });
+ getListByPage();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ })
+ .catch(() => {
+ console.log('取消办票')
+ })
+ }
+
+ // 导出图表
+ const downLoadBtn = (row: any) => {
+ state.downLoadId = row.workApplyId;
+ state.downLoadName = row.workTypeDesc + row.workPermitNo
+ }
+
+ // 导出方法
+ const exportSheet = async () => {
+ // let res = await workApplyApi().postPrinting(data);
+ axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/export/excel`, {
+ startTime: state.searPara.startTime,
+ endTime: state.searPara.endTime,
+ secondDepId: state.searPara.secondDepId
+ }, {
+ 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/excel'})
+ link.style.display = "none";
+ link.href = URL.createObjectURL(blob); // 创建URL
+ if (state.searPara.startTime !== '' && state.searPara.endTime !== '') {
+ link.setAttribute("download", state.searPara.startTime + '—' + state.searPara.endTime + "作业申报记录.xlsx")
+ } else {
+ link.setAttribute("download", "作业申报记录.xlsx")
+ }
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ })
+
+ };
+
+ const handleSizeChange1 = (val: number) => {
+ state.pageSize1 = val;
+ getListByPage();
+ };
+ const handleCurrentChange1 = (val: number) => {
+ state.pageIndex1 = val;
+ getListByPage();
+ };
+
+ const openReport = (type: string, value: {}) => {
+ reportDialogRef.value.showReportDialog(type, value);
+ };
+
+ // 查看记录
+ const viewRecord = (row: any) => {
+ state.dialogType = row.workType
+ state.details = JSON.parse(JSON.stringify(row));
+ state.dialogDetails = true;
+ };
+
+ // 折线图
+ const renderMenu = async (value: string) => {
+ Session.set('projectId', value);
+ userInfos.value.projectId = value;
+ await initBackEndControlRoutes();
+ };
+
+ return {
+ View,
+ Edit,
+ Delete,
+ Refresh,
+ Plus,
+ Finished,
+ Download,
+ reportDialogRef,
+ fireRef,
+ plateRef,
+ spaceRef,
+ hoistRef,
+ groundRef,
+ brokenRef,
+ heightRef,
+ powerRef,
+ openRef,
+ openEdit,
+ getAllDepartment,
+ checkTicket,
+ giveTime,
+ reLoadData,
+ toApply,
+ handleClick,
+ toNames,
+ searchRecord,
+ clearSearch,
+ openReport,
+ viewRecord,
+ viewStatus,
+ abortRecordBtn,
+ downLoadBtn,
+ exportSheet,
+ getListByPage,
+ handleSizeChange1,
+ handleCurrentChange1,
+ ...toRefs(state)
+ };
+ }
});
</script>
<style scoped lang="scss">
$homeNavLengh: 8;
.home-container {
- height: calc(100vh - 144px);
+ height: calc(100vh - 144px);
+ box-sizing: border-box;
+ overflow: hidden;
+
+ .demo-tabs {
+ width: 100%;
+ height: 100%;
+
+ &::v-deep(.el-tabs__content) {
+ height: calc(100% - 60px);
+ }
+
+ .el-tab-pane {
+ height: 100%;
+ }
+ }
+
+ .homeCard {
+ width: 100%;
+ padding: 20px;
box-sizing: border-box;
- overflow: hidden;
- .demo-tabs {
- width: 100%;
- height: 100%;
+ background: #fff;
+ border-radius: 4px;
- &::v-deep(.el-tabs__content) {
- height: calc(100% - 60px);
- }
+ .main-card {
+ width: 100%;
+ height: 100%;
- .el-tab-pane {
- height: 100%;
- }
- }
- .homeCard {
- width: 100%;
- padding: 20px;
- box-sizing: border-box;
- background: #fff;
- border-radius: 4px;
-
- .main-card {
- width: 100%;
- height: 100%;
- .cardTop {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 20px;
- .mainCardBtn {
- margin: 0;
- }
- }
- .pageBtn {
- height: 60px;
- display: flex;
- align-items: center;
- justify-content: right;
-
- .demo-pagination-block + .demo-pagination-block {
- margin-top: 10px;
- }
- .demo-pagination-block .demonstration {
- margin-bottom: 16px;
- }
- }
- }
- &:last-of-type {
- height: calc(100% - 130px);
- }
- }
- .el-row {
+ .cardTop {
display: flex;
align-items: center;
+ justify-content: space-between;
margin-bottom: 20px;
- &:last-child {
- margin-bottom: 0;
+
+ .mainCardBtn {
+ margin: 0;
}
- .grid-content {
- align-items: center;
- min-height: 36px;
+ }
+
+ .pageBtn {
+ height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: right;
+
+ .demo-pagination-block + .demo-pagination-block {
+ margin-top: 10px;
}
- .topInfo {
- display: flex;
- align-items: center;
- font-size: 16px;
- font-weight: bold;
-
- & > div {
- white-space: nowrap;
- margin-right: 20px;
- }
+ .demo-pagination-block .demonstration {
+ margin-bottom: 16px;
}
+ }
}
- .el-card {
- border: 0;
+
+ &:last-of-type {
+ height: calc(100% - 130px);
}
+ }
+
+ .el-row {
+ display: flex;
+ align-items: center;
+ margin-bottom: 20px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+
+ .grid-content {
+ align-items: center;
+ min-height: 36px;
+ }
+
+ .topInfo {
+ display: flex;
+ align-items: center;
+ font-size: 16px;
+ font-weight: bold;
+
+ & > div {
+ white-space: nowrap;
+ margin-right: 20px;
+ }
+ }
+ }
+
+ .el-card {
+ border: 0;
+ }
}
</style>
--
Gitblit v1.9.2