From 6a5d4d498832f3f4ad7dcbcb202199643017920f Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期二, 30 八月 2022 10:47:43 +0800
Subject: [PATCH] Default Changelist
---
src/views/specialWorkSystem/workTicket/myJobApply/index.vue | 282 ++++++++++++++++++++++++++++++++++----------------------
1 files changed, 171 insertions(+), 111 deletions(-)
diff --git a/src/views/specialWorkSystem/workTicket/myJobApply/index.vue b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue
index 5dfe941..6c2a074 100644
--- a/src/views/specialWorkSystem/workTicket/myJobApply/index.vue
+++ b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue
@@ -1,14 +1,22 @@
<template>
<div class="home-container">
- <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
- <el-tab-pane label="申请中" name="1">
+<!-- <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">
- <el-col :span="8">
+ <span>作业类型:</span>
+ <el-col :span="10">
<div class="grid-content topInfo">
- <el-input v-model="searchWord" placeholder="作业证名称"></el-input>
- <el-button type="primary">查询</el-button>
- <el-button plain>重置</el-button>
+ <el-select v-model="searchWord">
+ <el-option
+ v-for="item in workType"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ <el-button type="primary" @click="searchRecord">查询</el-button>
+ <el-button plain @click="clearSearch">重置</el-button>
</div>
</el-col>
</el-row>
@@ -30,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">
@@ -49,56 +57,24 @@
</div>
</div>
</div>
- <el-dialog v-model="dialogDetails" title="作业申请详情">
- <el-form :model="details" label-width="120px">
- <el-form-item label="作业申请单号">
- <el-input v-model="details.workPermitNo" readonly />
- </el-form-item>
- <el-form-item label="申请人">
- <el-input v-model="details.applyUname" readonly />
- </el-form-item>
- <el-form-item label="部门名称">
- <el-input v-model="details.depName" readonly />
- </el-form-item>
- <el-form-item label="作业人">
- <el-input v-model="details.operators" readonly type="textarea" />
- </el-form-item>
- <el-form-item label="作业类型">
- <el-input v-model="details.workTypeDesc" readonly />
- </el-form-item>
- <el-form-item label="作业等级">
- <el-input v-model="details.workLevelDesc" readonly />
- </el-form-item>
- <el-form-item label="作业内容">
- <el-input v-model="details.workContent" readonly type="textarea" />
- </el-form-item>
- <el-form-item label="作业地址">
- <el-input v-model="details.workLocation" readonly type="textarea" />
- </el-form-item>
- <el-form-item label="作业方式">
- <el-input v-model="details.workDetail.hotMethod" readonly type="textarea" />
- </el-form-item>
- <el-form-item label="关联其他作业">
- <el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea" />
- </el-form-item>
- <el-form-item label="期望开始时间">
- <el-input v-model="details.expStartTime" readonly />
- </el-form-item>
- <el-form-item label="期望结束时间">
- <el-input v-model="details.expEndTime" readonly />
- </el-form-item>
- <el-form-item label="申请时间">
- <el-input v-model="details.applyTime" readonly />
- </el-form-item>
- <el-form-item label="当前状态">
- <el-input v-model="details.statusDesc" readonly />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
- </el-form-item>
- </el-form>
+ <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>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button type="primary" @click="dialogDetails = false"
+ >确认</el-button
+ >
+ </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" />
@@ -127,12 +103,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>
@@ -171,46 +148,46 @@
</span>
</template>
</el-dialog>
- </el-tab-pane>
- <el-tab-pane label="已通过" name="2">
- <div style="height: 100%">
- <el-row class="homeCard">
- <el-col :span="8">
- <div class="grid-content topInfo">
- <el-input v-model="searchWord" placeholder="作业证名称"></el-input>
- <el-button type="primary">查询</el-button>
- <el-button plain>重置</el-button>
- </div>
- </el-col>
- </el-row>
- <div class="homeCard">
- <div class="main-card">
- <el-table ref="multipleTableRef" :data="passedData" style="width: 100%" height="calc(100% - 48px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55" />
- <el-table-column type="index" label="编号" width="200" />
- <el-table-column property="level" label="作业证等级" width="180" sortable />
- <el-table-column property="applyDate" label="申请日期" sortable />
- <el-table-column property="name" label="申请人" width="180" />
- <el-table-column property="department" label="申请部门" width="180" />
- <el-table-column label="申请状态" width="180">
- <template #default="scope">
- <el-tag type="success">{{ scope.row.status }}</el-tag>
- </template>
- </el-table-column>
- </el-table>
- <div class="pageBtn">
- <el-pagination v-model:currentPage="pageIndex2" v-model:page-size="pageSize2" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize2" @size-change="handleSizeChange2" @current-change="handleCurrentChange2" />
- </div>
- </div>
- </div>
- </div>
- </el-tab-pane>
- </el-tabs>
+<!-- </el-tab-pane>-->
+<!-- <el-tab-pane label="已通过" name="2">-->
+<!-- <div style="height: 100%">-->
+<!-- <el-row class="homeCard">-->
+<!-- <el-col :span="8">-->
+<!-- <div class="grid-content topInfo">-->
+<!-- <el-input v-model="searchWord" placeholder="作业证名称"></el-input>-->
+<!-- <el-button type="primary">查询</el-button>-->
+<!-- <el-button plain>重置</el-button>-->
+<!-- </div>-->
+<!-- </el-col>-->
+<!-- </el-row>-->
+<!-- <div class="homeCard">-->
+<!-- <div class="main-card">-->
+<!-- <el-table ref="multipleTableRef" :data="passedData" style="width: 100%" height="calc(100% - 48px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">-->
+<!-- <el-table-column type="selection" width="55" />-->
+<!-- <el-table-column type="index" label="编号" width="200" />-->
+<!-- <el-table-column property="level" label="作业证等级" width="180" sortable />-->
+<!-- <el-table-column property="applyDate" label="申请日期" sortable />-->
+<!-- <el-table-column property="name" label="申请人" width="180" />-->
+<!-- <el-table-column property="department" label="申请部门" width="180" />-->
+<!-- <el-table-column label="申请状态" width="180">-->
+<!-- <template #default="scope">-->
+<!-- <el-tag type="success">{{ scope.row.status }}</el-tag>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+<!-- </el-table>-->
+<!-- <div class="pageBtn">-->
+<!-- <el-pagination v-model:currentPage="pageIndex2" v-model:page-size="pageSize2" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize2" @size-change="handleSizeChange2" @current-change="handleCurrentChange2" />-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </el-tab-pane>-->
+<!-- </el-tabs>-->
</div>
</template>
<script lang="ts">
-import { toRefs, reactive, defineComponent, ref, onMounted } from 'vue';
+import {toRefs, reactive, defineComponent, ref, onMounted, defineAsyncComponent} from 'vue';
import { storeToRefs } from 'pinia';
import { initBackEndControlRoutes } from '/@/router/backEnd';
import { useUserInfo } from '/@/stores/userInfo';
@@ -221,6 +198,7 @@
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";
// 定义接口来定义对象的类型
interface stateType {
@@ -243,15 +221,30 @@
details: {};
statusInfo: {};
workType: Array<type>;
+ 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: {},
+ components: {
+ fire: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/fireLog.vue')),
+ space: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/spaceLog.vue')),
+ hoist: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/hoistLog.vue')),
+ ground: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue')),
+ broken: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue')),
+ height: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/heightLog.vue')),
+ power: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/powerLog.vue')),
+ plate: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue'))
+ },
setup() {
const userInfo = useUserInfo();
const { userInfos } = storeToRefs(userInfo);
@@ -260,7 +253,10 @@
pageIndex1: 1,
pageSize1: 10,
totalSize1: 0,
+ dialogType: null,
activeName: '1',
+ departmentList: [],
+ departmentRecursionList: [],
chosenIndex: null,
searchWord: '',
applyData: [],
@@ -303,7 +299,7 @@
// 填写表单
const toApply = () => {
router.push({
- path: 'workTicket'
+ path: 'workApply'
});
};
@@ -311,10 +307,35 @@
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: { name: state.searchWord } };
- let res = await workApplyApi().getApplyListtPage(data);
+ const data = { pageSize: state.pageSize1, pageIndex: state.pageIndex1, searchParams: { workType: state.searchWord } };
+ 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) => {
@@ -326,7 +347,6 @@
return item;
});
state.totalSize1 = res.data.total;
- console.log('0212121');
} else {
ElMessage({
type: 'warning',
@@ -363,7 +383,7 @@
getListByPage();
}
};
-
+ // 重置搜索
const clearSearch = async () => {
state.searchWord = '';
getListByPage();
@@ -428,10 +448,42 @@
// 查看记录
const viewRecord = (row: any) => {
- row.workDetail.otherSpecialWork = JSON.parse(JSON.stringify(row.workDetail.otherSpecialWork.split(','))).map((item: Array<string>) => {
- return state.workType.find((i: { id: number }) => i.id === Number(item))?.name;
- });
+ state.dialogType = row.workType
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;
+ });
+ }
+ if(state.details.workDetail.involvedDepIds == '' || !state.details.workDetail.involvedDepIds){
+ state.details.workDetail.involvedDepIds=[]
+ }
+ else {
+ const a = state.details.workDetail.involvedDepIds
+ state.details.workDetail.involvedDepIds = a.split(',').map((item) => {
+ return state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(item))?.depName;
+ });
+ }
+ 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;
};
@@ -445,6 +497,7 @@
// 页面载入时执行方法
onMounted(() => {
getListByPage();
+ getAllDepartment()
});
return {
@@ -611,9 +664,12 @@
& > span {
flex: 1;
+ &:last-of-type{
+ text-align: center;
+ }
}
& > div {
- flex: 2;
+ flex: 1;
text-align: center;
}
}
@@ -627,9 +683,12 @@
& > span {
flex: 1;
+ &:last-of-type{
+ text-align: center;
+ }
}
& > div {
- flex: 2;
+ flex: 1;
text-align: center;
& > div {
@@ -696,11 +755,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