| | |
| | | <template> |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getHeadData(1)" @clear="clear" |
| | | @changeForm='changeForm'> |
| | | <template #fastdate> |
| | | <el-radio-group v-model="filters.fastdate" size="small" @input="changeRadio"> |
| | | <el-radio-button label="0">当天</el-radio-button> |
| | | <el-radio-button label="6">近7天</el-radio-button> |
| | | <el-radio-button label="29">近30天</el-radio-button> |
| | | </el-radio-group> |
| | | </template> |
| | | </QueryForm> |
| | | <!-- --> |
| | | <el-tabs v-model="activeTab"> |
| | | <el-tab-pane label="待处理" name="0"></el-tab-pane> |
| | | <el-tab-pane label="已处理" name="1"></el-tab-pane> |
| | | <el-tab-pane label="我发起的" name="2"></el-tab-pane> |
| | | <el-tab-pane label="抄送我的" name="3"></el-tab-pane> |
| | | <el-tabs v-model="filters.queryType" @tab-click="(e) => getHeadData(1)" class="el-tabs-ele"> |
| | | <el-tab-pane label="待处理" name="0"> |
| | | <template #label> |
| | | <span>待处理 |
| | | <el-badge v-if="headData.noticeWaitNum" :value="headData.noticeWaitNum" class="item" type="danger"> |
| | | </el-badge> |
| | | </span> |
| | | </template> |
| | | </el-tab-pane> |
| | | <el-tab-pane :value="headData.noticeDealNum" label="已处理" name="1"> |
| | | </el-tab-pane> |
| | | <el-tab-pane :value="headData.noticeCreateNum" label="我发起的" name="2"> |
| | | </el-tab-pane> |
| | | <el-tab-pane :value="headData.noticeCopyNum" label="抄送我的" name="3"> |
| | | <template #label> |
| | | <span>抄送我的 |
| | | <el-badge v-if="headData.noticeCopyNum" :value="headData.noticeCopyNum" class="item" type="danger"> |
| | | </el-badge> |
| | | </span> |
| | | </template> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <el-table v-loading="loading" :data="list" stripe row-key="id" default-expand-all> |
| | | <el-table-column prop="name" label="任务类型" min-width="100"></el-table-column> |
| | | <el-table-column prop="name" label="提交人" min-width="80"></el-table-column> |
| | | <el-table-column prop="companyNamePath" label="提交时间" min-width="100"></el-table-column> |
| | | <el-table :height="tableHeightNew" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all> |
| | | <el-table-column label="处理事项" min-width="160"> |
| | | <template slot-scope="{ row }"> {{ row.title }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="info" label="当前阶段" min-width="100"></el-table-column> |
| | | <el-table-column prop="createDate" label="提交时间" min-width="100"> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="230" fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="handleDetail(row)" v-permissions="['business:company:update']">查看详情</el-button> |
| | | <template slot-scope="{ row }"> |
| | | <el-button type="text" @click="handleDetail(row)">查看详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | | <TaskDetail v-if="isShowDetail" ref="DetailRef" /> |
| | | <pagination @size-change="handleSizeChange" @current-change="getHeadData" :pagination="pagination" /> |
| | | <TaskDetail v-if="isShowDetail" ref="DetailRef" @close="isShowDetail = false" |
| | | @success="SubSuccess('isShowDetail')" /> |
| | | <VisReportDetail v-if="isShowReport" ref="VisReportDetailRef" @close="isShowReport = false" |
| | | @success="SubSuccess('isShowReport')" /> |
| | | <DangetDetail v-if="isShowDanger" ref="DangetDetailRef" @close="isShowDanger = false" |
| | | @success="SubSuccess('isShowDanger')" /> |
| | | <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" @close="isShowDriver = false" |
| | | @success="SubSuccess('isShowDriver')" /> |
| | | <!-- 用车申请 --> |
| | | <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="getHeadData" /> |
| | | <!-- 隐患 --> |
| | | <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="getHeadData" /> |
| | | <!-- 预约详情 --> |
| | | <OperaVisitsDesWindow ref="OperaVisitsDesWindow" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import TaskDetail from './taskDetail.vue' |
| | | import TaskDetail from './visSubDetail.vue' |
| | | import VisReportDetail from './visReportDetail.vue' |
| | | import DangetDetail from './dangetDetail.vue' |
| | | import DriverDetail from './driverDetail.vue' |
| | | import OperaCarUseBookWindow from '@/components/business/OperaCarUseBookWindow' |
| | | import OperaHiddenDangerWindow from '@/components/business/OperaHiddenDangerWindow' |
| | | import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow' |
| | | import dayjs from 'dayjs' |
| | | import { |
| | | getAppHeaderNav, |
| | | taskCenterHeadPC, |
| | | taskCenterPage, |
| | | taskSignRead |
| | | } from '@/api' |
| | | import BaseComputHeight from '@/components/base/BaseComputHeight' |
| | | export default { |
| | | extends: BaseComputHeight, |
| | | components: { |
| | | TaskDetail, |
| | | VisReportDetail, |
| | | DangetDetail, |
| | | QueryForm, |
| | | Pagination |
| | | DriverDetail, |
| | | Pagination, |
| | | OperaCarUseBookWindow, |
| | | OperaHiddenDangerWindow, |
| | | OperaVisitsDesWindow |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | isShowDetail: false, |
| | | activeTab: '0', |
| | | filters: {}, |
| | | isShowReport: false, |
| | | isShowDanger: false, |
| | | isShowDriver: false, |
| | | filters: { |
| | | queryType: '0', |
| | | startDate: '', |
| | | endDate: '', |
| | | fastdate: '0' |
| | | }, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'taskType', |
| | | filed: 'type', |
| | | type: 'select', |
| | | label: '任务类型', |
| | | options: [] |
| | | options: [ |
| | | { label: '访客申请', value: '0' }, |
| | | { label: '访客报备', value: '1' }, |
| | | { label: '用车申请', value: '2' }, |
| | | // { label: '隐患随手拍', value: '3' }, |
| | | // { label: '物流车申请', value: '6' } |
| | | ] |
| | | }, |
| | | { |
| | | filed: 'status', |
| | | type: 'daterange', |
| | | filed1: 'startDate', |
| | | filed2: 'endDate', |
| | | type: 'datetime', |
| | | label: '起止时间' |
| | | }, |
| | | { |
| | | type: 'slot', |
| | | filed: 'fastdate', |
| | | label: '' |
| | | } |
| | | ], |
| | | online: true |
| | | }, |
| | | loading: false, |
| | | sorting: false, |
| | | searchForm: { |
| | | // type: 1 |
| | | }, |
| | | pagination: { |
| | | capacity: 10, |
| | | page: 1 |
| | | page: 1, |
| | | total: 0, |
| | | }, |
| | | list: [{}], |
| | | total: 0 |
| | | loading: false, |
| | | dataList: [], |
| | | headData: {}, |
| | | |
| | | cateList: [ |
| | | { name: '访客申请', id: 0 }, |
| | | { name: '访客报备', id: 1 }, |
| | | { name: '用车申请', id: 2 }, |
| | | // { name: '隐患随手拍', id: 3 }, |
| | | // { name: '物流车申请', id: 6 } |
| | | ] |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getHeadData() |
| | | this.changeRadio('0') |
| | | // this.getHeadData() |
| | | }, |
| | | methods: { |
| | | handleDetail () { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DetailRef.isShowModal = true |
| | | changeRadio(day) { |
| | | const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59'] |
| | | this.filters.startDate = arr[0] |
| | | this.filters.endDate = arr[1] |
| | | this.getHeadData() |
| | | }, |
| | | SubSuccess(str) { |
| | | this[str] = false |
| | | this.getHeadData() |
| | | }, |
| | | handleTest(row) { |
| | | getAppHeaderNav(5).then(res => { |
| | | if (res === undefined || res == null) { |
| | | return |
| | | } |
| | | const myWindow = window.open(res) |
| | | setTimeout(() => { |
| | | myWindow.postMessage('{"method":"goToApp","argument":' + row.param5 + '}', '*') |
| | | }, 3000) |
| | | }) |
| | | }, |
| | | getList (page) { }, |
| | | clear () { }, |
| | | handleSizeChange (capacity) { |
| | | handleDetail(row) { |
| | | if (row.type === 7) { |
| | | this.handleTest(row) |
| | | return |
| | | } |
| | | if (this.filters.queryType == 3) { |
| | | taskSignRead({ |
| | | noticesId: row.id, |
| | | signType: 0 |
| | | }).then(res => { |
| | | this.getHeadData() |
| | | }) |
| | | } |
| | | if (row.objType === 2) { |
| | | this.$refs.OperaDetailsWindow.open('公务车申请详情', { ...row, id: row.objId }) |
| | | return |
| | | } |
| | | if (row.objType === 1) { |
| | | this.isShowReport = true |
| | | this.$nextTick(() => { |
| | | this.$refs.VisReportDetailRef.id = row.objId |
| | | this.$refs.VisReportDetailRef.type = row.objType |
| | | this.$refs.VisReportDetailRef.getDetail() |
| | | this.$refs.VisReportDetailRef.isShowModal = true |
| | | }) |
| | | return |
| | | } |
| | | if (row.objType === 3) { |
| | | const obj = { ...row, id: row.objId } |
| | | this.$refs.OperaHiddenDangerWindow.open('隐患随手拍详情', obj) |
| | | return |
| | | } |
| | | if (row.objType === 6) { |
| | | const obj = { ...row, id: row.objId } |
| | | this.isShowDriver = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DriverDetailRef.id = row.objId |
| | | this.$refs.DriverDetailRef.type = row.objType |
| | | this.$refs.DriverDetailRef.getDetail() |
| | | this.$refs.DriverDetailRef.isShowModal = true |
| | | }) |
| | | return |
| | | } |
| | | if (row.objType === 0) { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DetailRef.id = row.objId |
| | | this.$refs.DetailRef.type = row.objType |
| | | this.$refs.DetailRef.getDetail() |
| | | this.$refs.DetailRef.isShowModal = true |
| | | }) |
| | | } |
| | | }, |
| | | changeForm(str) { |
| | | this.$set(this.filters, 'fastdate', null) |
| | | this.getHeadData() |
| | | }, |
| | | getList(page) { |
| | | const { filters, pagination } = this |
| | | pagination.page = page || pagination.page |
| | | taskCenterPage({ |
| | | model: { ...filters, queryType: Number(filters.queryType) }, |
| | | ...pagination |
| | | }).then(res => { |
| | | console.log('res', res) |
| | | this.loading = false |
| | | this.dataList = res.records || [] |
| | | this.pagination.total = res.total || 0 |
| | | this.dataList.forEach(i => { |
| | | i.param1 = JSON.parse(i.param1) |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }) |
| | | }, |
| | | getHeadData(page) { |
| | | const { filters } = this |
| | | // if (filters.selTime && filters.selTime.length > 0) { |
| | | // filters.startDate = filters.selTime[0] |
| | | // filters.endDate = filters.selTime[1] |
| | | // } else { |
| | | // filters.startDate = null |
| | | // filters.endDate = null |
| | | // } |
| | | this.loading = true |
| | | taskCenterHeadPC({ ...filters, queryType: Number(filters.queryType), isDetail: '1' }).then(res => { |
| | | this.headData = res |
| | | this.getList(1) |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | clear() { |
| | | this.filters = { |
| | | queryType: '0', |
| | | } |
| | | this.getHeadData(0) |
| | | }, |
| | | handleSizeChange(capacity) { |
| | | this.pagination.capacity = capacity |
| | | this.getHeadData(1) |
| | | } |
| | | } |
| | | } |