From 1229f3ec76bffe282d85b48daf0b32bc17022810 Mon Sep 17 00:00:00 2001 From: Admin <978517621@qq.com> Date: 星期五, 26 八月 2022 12:29:18 +0800 Subject: [PATCH] Default Changelist --- src/views/specialWorkSystem/workTicket/myJobApply/index.vue | 276 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 165 insertions(+), 111 deletions(-) diff --git a/src/views/specialWorkSystem/workTicket/myJobApply/index.vue b/src/views/specialWorkSystem/workTicket/myJobApply/index.vue index 5dfe941..831bea1 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,36 @@ // 查看记录 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.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 +491,7 @@ // 页面载入时执行方法 onMounted(() => { getListByPage(); + getAllDepartment() }); return { @@ -611,9 +658,12 @@ & > span { flex: 1; + &:last-of-type{ + text-align: center; + } } & > div { - flex: 2; + flex: 1; text-align: center; } } @@ -627,9 +677,12 @@ & > span { flex: 1; + &:last-of-type{ + text-align: center; + } } & > div { - flex: 2; + flex: 1; text-align: center; & > div { @@ -696,11 +749,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