| | |
| | | <template> |
| | | <div class="home-container"> |
| | | <div style="height: 100%"> |
| | | <div style="height: 100%;display: flex;flex-direction: column;align-items: stretch;"> |
| | | <el-row class="homeCard"> |
| | | <div class="basic-line"> |
| | | <span>任务类型:</span> |
| | | <el-select v-model="tableData.params.workType" clearable filterable class="input-box" placeholder="任务类型"> |
| | | <el-option v-for="item in workTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="basic-line"> |
| | | <span>部门:</span> |
| | | <el-cascader class="input-box" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }" |
| | | placeholder="请选择部门" clearable v-model="tableData.params.execDepId" |
| | | @change="changeGroup" |
| | | > </el-cascader> |
| | | </div> |
| | | <div class="basic-line"> |
| | | <span>执行班组:</span> |
| | |
| | | <div class="main-card"> |
| | | <el-row class="cardTop"> |
| | | <el-col :span="12" class="mainCardBtn"> |
| | | <el-button type="primary" :icon="Plus" size="default" @click="openInspectTaskDialog('新增', {})">新建</el-button> |
| | | <el-button type="primary" :icon="Plus" size="default" @click="openInspectTaskDialog('新增', {})">新增</el-button> |
| | | <el-button type="primary" :icon="Upload" size="default" @click="openUploadDialog('任务')">导入</el-button> |
| | | <!-- <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>--> |
| | | </el-col> |
| | | <el-button type="primary" :icon="Refresh" size="default" /> |
| | | </el-row> |
| | | <el-table ref="multipleTableRef" :data="tableData.inspectTaskData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" /> |
| | | <!-- <el-table-column type="selection" width="55" />--> |
| | | <el-table-column property="unitName" label="任务名称" /> |
| | | <el-table-column property="workType" label="任务类型"> |
| | | <template #default="scope"> |
| | |
| | | <el-table-column prop="gmtCreate" label="创建时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="lastEditUserName" label="最后修改人" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="gmtModitify" label="最后修改时间" show-overflow-tooltip></el-table-column> |
| | | <el-table-column property="status" label="状态" width="60" /> |
| | | <el-table-column property="taskUnitStatus" label="状态" width="60"> |
| | | <template #default="scope"> |
| | | <div> |
| | | <div v-if="scope.row.taskUnitStatus === 1"> |
| | | <el-tag :type="''"> |
| | | {{ '开启' }} |
| | | </el-tag> |
| | | </div> |
| | | <div v-if="scope.row.taskUnitStatus === 2"> |
| | | <el-tag :type="'danger'"> |
| | | {{ '关闭' }} |
| | | </el-tag> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="操作" align="center" width="300"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" :icon="View" @click="openInspectTaskDialog('查看', scope.row)">查看</el-button> |
| | |
| | | </div> |
| | | </div> |
| | | <inspect-task-dialog ref="inspectTaskDialogRef" @refreshInspectTask="getInspectionTask"></inspect-task-dialog> |
| | | <upload-dialog ref="uploadRef" @refresh="getInspectionTask"></upload-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, ref, onMounted } from 'vue'; |
| | | import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'; |
| | | import { Edit, View, Plus, Delete, Refresh, Search, Download, Upload } from '@element-plus/icons-vue'; |
| | | import { ElTable, ElMessage, ElMessageBox } from 'element-plus'; |
| | | import { inspectTaskApi } from '/@/api/intellectInspectSystem/inspectTask'; |
| | | import inspectTaskDialog from './components/inspectTaskDialog.vue'; |
| | | import inspectTaskDialog from './components/inspectTaskDialog.vue' |
| | | import uploadDialog from './components/upload.vue' |
| | | import { departmentApi } from '/@/api/systemManage/department'; |
| | | import { teamManageApi } from '/@/api/systemManage/personShiftManage/teamManage'; |
| | | import { inspectPointApi } from '/@/api/intellectInspectSystem/inspectPointManage'; |
| | |
| | | params: { |
| | | pageIndex: number | null; |
| | | pageSize: number | null; |
| | | execDepId: number | null; |
| | | unitName: string | null; |
| | | workType: number | null; |
| | | createUserId: number | null; |
| | |
| | | } |
| | | export default { |
| | | name: 'index', |
| | | components: { inspectTaskDialog }, |
| | | components: { inspectTaskDialog, uploadDialog }, |
| | | setup() { |
| | | const inspectTaskDialogRef = ref(); |
| | | const uploadRef = ref() |
| | | const state = reactive<stateType>({ |
| | | tableData: { |
| | | inspectTaskData: [], |
| | |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | unitName: null, |
| | | execDepId: null, |
| | | workType: null, |
| | | createUserId: null, |
| | | execClassgroupId: null, |
| | |
| | | } |
| | | }, |
| | | workTypeList: [ |
| | | { id: 1, name: '单次任务' }, |
| | | { id: 2, name: '周期任务' } |
| | | { id: 1, name: '周期任务' }, |
| | | { id: 2, name: '单次任务' } |
| | | ], |
| | | quotaList: [], |
| | | departmentList: [], |
| | |
| | | { id: 3, name: '日' }, |
| | | { id: 4, name: '月' }, |
| | | { id: 5, name: '年' } |
| | | ] |
| | | ], |
| | | }); |
| | | |
| | | //获取巡检任务数据 |
| | |
| | | }; |
| | | |
| | | //获取部门 |
| | | const getQuotaList = async () => { |
| | | let res = await inspectTaskApi().getQuotaList(); |
| | | if (res.data.code === '200') { |
| | | state.quotaList = res.data.data; |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | // const getQuotaList = async () => { |
| | | // let res = await inspectTaskApi().getQuotaList(); |
| | | // if (res.data.code === '200') { |
| | | // state.quotaList = res.data.data; |
| | | // } else { |
| | | // ElMessage({ |
| | | // type: 'warning', |
| | | // message: res.data.msg |
| | | // }); |
| | | // } |
| | | // }; |
| | | //获取部门 |
| | | const getQuotaList = async () => { |
| | | let res = await inspectTaskApi().getAllQuotaList(); |
| | | if (res.data.code === '200') { |
| | | state.quotaList = res.data.data; |
| | | } else { |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | //获取巡检点 |
| | | const getInspectTaskPoint = async () => { |
| | |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | const changeGroup = async () => { |
| | | if(state.tableData.params.execDepId === null) { |
| | | state.classGroupList = [] |
| | | }else{ |
| | | let res = await departmentApi().getByDepId({depId:state.tableData.params.execDepId}) |
| | | if(res.data.code === '200'){ |
| | | state.classGroupList = res.data.data |
| | | }else{ |
| | | |
| | | } |
| | | } |
| | | }; |
| | | |
| | |
| | | } |
| | | }; |
| | | |
| | | const openUploadDialog = (type: string)=>{ |
| | | uploadRef.value.open(type) |
| | | } |
| | | |
| | | // 分页改变 |
| | | const onHandleSizeChange = (val: number) => { |
| | | state.tableData.params.pageSize = val; |
| | |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | unitName: null, |
| | | execDepId: null, |
| | | workType: null, |
| | | createUserId: null, |
| | | execClassgroupId: null, |
| | |
| | | Delete, |
| | | Refresh, |
| | | Plus, |
| | | Upload, |
| | | reset, |
| | | openUploadDialog, |
| | | changeStatus, |
| | | changeGroup, |
| | | parseNumber, |
| | | deleteInspectTask, |
| | | getInspectionTask, |
| | | onHandleSizeChange, |
| | | onHandleCurrentChange, |
| | | inspectTaskDialogRef, |
| | | uploadRef, |
| | | openInspectTaskDialog, |
| | | ...toRefs(state) |
| | | }; |
| | |
| | | height: calc(100vh - 144px); |
| | | box-sizing: border-box; |
| | | overflow: hidden; |
| | | position: relative; |
| | | .homeCard { |
| | | width: 100%; |
| | | padding: 20px; |
| | | box-sizing: border-box; |
| | | background: #fff; |
| | | border-radius: 4px; |
| | | flex: 0 auto; |
| | | |
| | | .main-card { |
| | | width: 100%; |
| | |
| | | } |
| | | } |
| | | .pageBtn { |
| | | height: 60px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: right; |
| | | position: absolute; |
| | | width: 100%; |
| | | z-index: 99; |
| | | bottom: 0; |
| | | right: 0; |
| | | height: 60px; |
| | | border-radius: 0 0 4px 4px; |
| | | padding-right: 20px; |
| | | background: #fff; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: right; |
| | | |
| | | .demo-pagination-block + .demo-pagination-block { |
| | | margin-top: 10px; |
| | |
| | | } |
| | | } |
| | | &:last-of-type { |
| | | height: calc(100% - 100px); |
| | | flex: 1; |
| | | } |
| | | } |
| | | .el-row { |