| | |
| | | <!-- <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-select v-model="searchWord"> |
| | | <el-option |
| | |
| | | <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"> |
| | |
| | | </div> |
| | | <el-dialog v-model="dialogDetails" title="作业申请详情" center> |
| | | <fire v-if="dialogType == 1" :details = details></fire> |
| | | <space v-if="dialogType == 2" :details = details></space> |
| | | <hoist v-if="dialogType == 3" :details = details></hoist> |
| | | <ground v-if="dialogType == 4" :details = details></ground> |
| | | <broken v-if="dialogType == 5" :details = details></broken> |
| | | <height v-if="dialogType == 6" :details = details></height> |
| | | <power v-if="dialogType == 7" :details = details></power> |
| | | <plate v-if="dialogType == 8" :details = details></plate> |
| | | <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" |
| | |
| | | </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" /> |
| | |
| | | </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> |
| | |
| | | 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 { |
| | |
| | | details: {}; |
| | | statusInfo: {}; |
| | | workType: Array<type>; |
| | | depType: Array<type>; |
| | | dialogType: number |
| | | 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: { |
| | |
| | | totalSize1: 0, |
| | | dialogType: null, |
| | | activeName: '1', |
| | | departmentList: [], |
| | | departmentRecursionList: [], |
| | | chosenIndex: null, |
| | | searchWord: '', |
| | | applyData: [], |
| | |
| | | { id: 6, name: '高处作业' }, |
| | | { id: 7, name: '临时用电作业' }, |
| | | { id: 8, name: '盲板抽堵作业' } |
| | | ], |
| | | depType: [ |
| | | { id: 1, name: '部门一' }, |
| | | { id: 2, name: '部门二' }, |
| | | { id: 3, name: '部门三' }, |
| | | { id: 4, name: '部门四' } |
| | | ] |
| | | }); |
| | | interface User { |
| | |
| | | // 填写表单 |
| | | const toApply = () => { |
| | | router.push({ |
| | | path: 'workTicket' |
| | | path: 'workApply' |
| | | }); |
| | | }; |
| | | |
| | |
| | | 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: { workType: state.searchWord } }; |
| | | let res = await workApplyApi().getApplyListtPage(data); |
| | | 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) => { |
| | |
| | | return item; |
| | | }); |
| | | state.totalSize1 = res.data.total; |
| | | console.log( state.applyData,'0212121'); |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | |
| | | // 查看记录 |
| | | const viewRecord = (row: any) => { |
| | | state.dialogType = row.workType |
| | | console.log(state.dialogType,'工作类型') |
| | | state.details = JSON.parse(JSON.stringify(row)); |
| | | if(state.details.workDetail.otherSpecialWork == '' || !state.details.workDetail.otherSpecialWork){ |
| | | state.details.workDetail.otherSpecialWork=[] |
| | |
| | | else { |
| | | const a = state.details.workDetail.involvedDepIds |
| | | state.details.workDetail.involvedDepIds = a.split(',').map((item) => { |
| | | return state.depType.find((i: { id: number }) => i.id === Number(item))?.name; |
| | | return state.departmentRecursionList.find((i: { depId: number }) => i.depId === Number(item))?.depName; |
| | | }); |
| | | } |
| | | console.log(state.details,'details') |
| | |
| | | // 页面载入时执行方法 |
| | | onMounted(() => { |
| | | getListByPage(); |
| | | getAllDepartment() |
| | | }); |
| | | |
| | | return { |
| | |
| | | |
| | | & > span { |
| | | flex: 1; |
| | | &:last-of-type{ |
| | | text-align: center; |
| | | } |
| | | } |
| | | & > div { |
| | | flex: 2; |
| | | flex: 1; |
| | | text-align: center; |
| | | } |
| | | } |
| | |
| | | |
| | | & > span { |
| | | flex: 1; |
| | | &:last-of-type{ |
| | | text-align: center; |
| | | } |
| | | } |
| | | & > div { |
| | | flex: 2; |
| | | flex: 1; |
| | | text-align: center; |
| | | |
| | | & > div { |
| | |
| | | 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%; |
| | | } |
| | | } |
| | | } |