<template>
|
<div class="main_app">
|
<QueryForm
|
v-model="filters"
|
:query-form-config="queryFormConfig"
|
@handleQuery="getList(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="filters.queryType" @tab-click="(e) => getList(1)">
|
<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">
|
<template #label>
|
<span
|
>已处理
|
<el-badge
|
v-if="headData.noticeDealNum"
|
:value="headData.noticeDealNum"
|
class="item"
|
type="danger"
|
>
|
</el-badge>
|
</span>
|
</template>
|
</el-tab-pane>
|
<el-tab-pane :value="headData.noticeCreateNum" label="我发起的" name="2">
|
<template #label>
|
<span
|
>我发起的
|
<el-badge
|
v-if="headData.noticeCreateNum"
|
:value="headData.noticeCreateNum"
|
class="item"
|
type="danger"
|
>
|
</el-badge>
|
</span>
|
</template>
|
</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="dataList"
|
stripe
|
row-key="id"
|
default-expand-all
|
>
|
<el-table-column prop="name" label="任务类型" min-width="100">
|
<template v-slot="scope">
|
<span
|
v-if="
|
(scope.row.objType || scope.row.objType == 0) &&
|
cateList[scope.row.objType].name
|
"
|
>{{ cateList[scope.row.objType].name }}</span
|
>
|
</template>
|
</el-table-column>
|
<el-table-column label="提交人" min-width="80">
|
<template v-slot="scope">
|
<span v-if="scope.row.title">{{
|
scope.row.title.split(" - ")[1]
|
}}</span>
|
</template>
|
</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>
|
</el-table-column>
|
</el-table>
|
<pagination
|
@size-change="handleSizeChange"
|
@current-change="getList"
|
:pagination="pagination"
|
/>
|
<TaskDetail v-if="isShowDetail" ref="DetailRef" />
|
<VisReportDetail v-if="isShowReport" ref="VisReportDetailRef" />
|
<DangetDetail v-if="isShowDanger" ref="DangetDetailRef" />
|
<!-- 用车申请 -->
|
<OperaCarUseBookWindow ref="OperaDetailsWindow" @success="getList" />
|
<!-- 隐患 -->
|
<OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="getList" />
|
<!-- 预约详情 -->
|
<OperaVisitsDesWindow ref="OperaVisitsDesWindow" />
|
</div>
|
</template>
|
|
<script>
|
import Pagination from '@/components/common/Pagination'
|
import QueryForm from '@/components/common/QueryForm'
|
import TaskDetail from './visSubDetail.vue'
|
import VisReportDetail from './visReportDetail.vue'
|
import DangetDetail from './dangetDetail.vue'
|
import OperaCarUseBookWindow from '@/components/business/OperaCarUseBookWindow'
|
import OperaHiddenDangerWindow from '@/components/business/OperaHiddenDangerWindow'
|
import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
|
import dayjs from 'dayjs'
|
import {
|
taskCenterHead,
|
taskCenterPage
|
} from '@/api'
|
export default {
|
components: {
|
TaskDetail,
|
VisReportDetail,
|
DangetDetail,
|
QueryForm,
|
Pagination,
|
OperaCarUseBookWindow,
|
OperaHiddenDangerWindow,
|
OperaVisitsDesWindow
|
},
|
data () {
|
return {
|
isShowDetail: false,
|
isShowReport: false,
|
isShowDanger: false,
|
filters: {
|
queryType: '0',
|
fastdate: 0
|
},
|
queryFormConfig: {
|
formItems: [
|
{
|
filed: 'type',
|
type: 'select',
|
label: '任务类型',
|
clearable: false,
|
options: [
|
{ label: '访客申请', value: '0' },
|
{ label: '访客报备', value: '1' },
|
{ label: '用车申请', value: '2' },
|
{ label: '隐患随手拍', value: '3' },
|
{ label: '物流车申请', value: '4' }
|
]
|
},
|
{
|
filed: 'selTime',
|
type: 'datetimerange',
|
label: '起止时间',
|
pickerOptions: {}
|
},
|
{
|
type: 'slot',
|
filed: 'fastdate',
|
label: ''
|
}
|
],
|
online: true
|
},
|
pagination: {
|
capacity: 10,
|
page: 1
|
},
|
loading: false,
|
dataList: [],
|
headData: {},
|
total: 0,
|
|
cateList: [
|
{ name: '访客申请', id: 0 },
|
{ name: '访客报备', id: 1 },
|
{ name: '用车申请', id: 2 },
|
{ name: '隐患随手拍', id: 3 },
|
{ name: '物流车申请', id: 4 }
|
]
|
}
|
},
|
created () {
|
this.getHeadData()
|
this.changeRadio('0')
|
},
|
methods: {
|
changeRadio (day) {
|
const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
|
this.$set(this.filters, 'selTime', arr)
|
this.getList()
|
},
|
handleDetail (row) {
|
if (row.objType === 2) {
|
this.$refs.OperaDetailsWindow.open('公务车申请详情', row)
|
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 === 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) {
|
if (str === 'selTime') {
|
this.$set(this.filters, 'fastdate', null)
|
this.getList()
|
}
|
},
|
getList (page) {
|
console.log(this.filters)
|
const { filters, pagination } = 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
|
}
|
pagination.page = page || pagination.page
|
taskCenterPage({
|
model: { ...filters, queryType: Number(filters.queryType) },
|
...pagination
|
}).then(res => {
|
console.log('res', res)
|
this.dataList = res.records || []
|
this.dataList.forEach(i => {
|
i.param1 = JSON.parse(i.param1)
|
})
|
})
|
},
|
getHeadData () {
|
taskCenterHead({
|
isDetail: '1'
|
}).then(res => {
|
this.headData = res
|
})
|
},
|
clear () {
|
this.filters = {
|
queryType: '0',
|
fastdate: 0
|
}
|
this.getList(0)
|
},
|
handleSizeChange (capacity) {
|
this.pagination.capacity = capacity
|
}
|
}
|
}
|
</script>
|
|
<style scoped lang="scss"></style>
|