|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<div class="business-order-container layout-padding">
|
|
|
<div class="layout-padding-auto layout-padding-view pd20">
|
|
|
- <ProTable
|
|
|
+ <ProTable
|
|
|
ref="proTableRef"
|
|
|
:columns="columns"
|
|
|
:data="state.tableData"
|
|
@@ -12,6 +12,7 @@
|
|
|
:exportMethod="exportOrder"
|
|
|
:exportParams="requestParams"
|
|
|
v-if="['YiBin'].includes(themeConfig.appScope)"
|
|
|
+ @sort-change="sortChange"
|
|
|
>
|
|
|
<template #table-search>
|
|
|
<el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
|
|
@@ -20,19 +21,19 @@
|
|
|
<el-form-item label="快捷查询" prop="fastSearch">
|
|
|
<el-segmented
|
|
|
:options="[
|
|
|
- {
|
|
|
- value: 'all',
|
|
|
- label: '全部',
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'city',
|
|
|
- label: '市工单',
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'province',
|
|
|
- label: '省工单',
|
|
|
- },
|
|
|
- ]"
|
|
|
+ {
|
|
|
+ value: 'all',
|
|
|
+ label: '全部',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'city',
|
|
|
+ label: '市工单',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'province',
|
|
|
+ label: '省工单',
|
|
|
+ },
|
|
|
+ ]"
|
|
|
v-model="fastSearch"
|
|
|
@change="fastSearchChange"
|
|
|
:disabled="state.loading"
|
|
@@ -76,17 +77,21 @@
|
|
|
<el-button type="primary" @click="onCreateRepeatEvent" :loading="state.loading">
|
|
|
<SvgIcon name="ele-Plus" class="mr5" />创建重复性事件
|
|
|
</el-button>
|
|
|
- <el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'" :disabled="!scope.isSelected" >
|
|
|
- <SvgIcon name="ele-Setting" class="mr5" />设置撤销<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
|
|
|
+ <el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'" :disabled="!scope.isSelected">
|
|
|
+ <SvgIcon name="ele-Setting" class="mr5" />设置撤销<span v-if="proTableRef?.selectedList?.length"
|
|
|
+ >({{ proTableRef?.selectedList?.length }})</span
|
|
|
+ >
|
|
|
</el-button>
|
|
|
<el-button type="primary" @click="onObserve" v-auth="'business:order:observe'" :disabled="!scope.isSelected" :loading="state.loading"
|
|
|
- >添加关注<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
|
|
|
+ >添加关注<span v-if="proTableRef?.selectedList?.length">({{ proTableRef?.selectedList?.length }})</span>
|
|
|
</el-button>
|
|
|
<el-button type="primary" @click="onEnd" v-auth="'business:order:end'" :disabled="!scope.isSelected" :loading="state.loading"
|
|
|
- >设置终结件<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
|
|
|
+ >设置终结件<span v-if="proTableRef?.selectedList?.length">({{ proTableRef?.selectedList?.length }})</span>
|
|
|
</el-button>
|
|
|
<el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'business:order:jbdExport'"
|
|
|
- ><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
|
|
|
+ ><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length"
|
|
|
+ >({{ proTableRef?.selectedList?.length }})</span
|
|
|
+ >
|
|
|
</el-button>
|
|
|
</template>
|
|
|
<template #expiredStatusText="{ row }">
|
|
@@ -104,140 +109,149 @@
|
|
|
title="省工单退回"
|
|
|
v-auth="'business:order:return:province'"
|
|
|
v-if="
|
|
|
- row.isProvince &&
|
|
|
- (row.actualHandleOrgCode === '001' || row.actualHandleOrgCode === null || row.actualHandleOrgCode === '' || row.status === 0) &&
|
|
|
- row.status < 300 && row.status !== 9 && !row.provinceSendBack
|
|
|
- "
|
|
|
+ row.isProvince &&
|
|
|
+ (row.actualHandleOrgCode === '001' || row.actualHandleOrgCode === null || row.actualHandleOrgCode === '' || row.status === 0) &&
|
|
|
+ row.status < 300 &&
|
|
|
+ row.status !== 9 &&
|
|
|
+ !row.provinceSendBack
|
|
|
+ "
|
|
|
>
|
|
|
退回</el-button
|
|
|
>
|
|
|
<order-detail :order="row" @updateList="handleQuery" />
|
|
|
</template>
|
|
|
</ProTable>
|
|
|
- <ProTable
|
|
|
- ref="proTableRef"
|
|
|
- :columns="columns1"
|
|
|
- :data="state.tableData"
|
|
|
- @updateTable="queryList"
|
|
|
- :loading="state.loading"
|
|
|
- :pagination="false"
|
|
|
- :toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
|
|
|
- :exportMethod="exportOrder"
|
|
|
- :exportParams="requestParams"
|
|
|
- v-else
|
|
|
- >
|
|
|
- <template #table-search>
|
|
|
- <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
|
|
|
- <el-row>
|
|
|
- <el-col>
|
|
|
- <el-form-item label="快捷查询" prop="fastSearch">
|
|
|
- <el-segmented
|
|
|
- :options="[
|
|
|
- {
|
|
|
- value: 'all',
|
|
|
- label: '全部',
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'city',
|
|
|
- label: '市工单',
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'province',
|
|
|
- label: '省工单',
|
|
|
- },
|
|
|
- ]"
|
|
|
- v-model="fastSearch"
|
|
|
- @change="fastSearchChange"
|
|
|
- :disabled="state.loading"
|
|
|
- />
|
|
|
- <el-checkbox-group v-model="checkList" @change="changeCheckList" class="ml15">
|
|
|
- <el-checkbox value="IsSensitiveWord" border>敏感类工单</el-checkbox>
|
|
|
- </el-checkbox-group>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button @click="contentRetrieval"><SvgIcon name="ele-DocumentCopy" class="mr5" />内容检索</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-form-item label="工单标题" prop="Keyword">
|
|
|
- <el-input v-model="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="工单编码" prop="No">
|
|
|
- <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="生成时间" prop="crTime">
|
|
|
- <el-date-picker
|
|
|
- v-model="state.queryParams.crTime"
|
|
|
- type="datetimerange"
|
|
|
- unlink-panels
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始时间"
|
|
|
- end-placeholder="结束时间"
|
|
|
- :shortcuts="shortcuts"
|
|
|
- @change="handleQuery"
|
|
|
- value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
- :default-time="defaultTimeStartEnd"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
|
|
|
- <el-button @click="drawer = true" class="default-button"> <SvgIcon name="ele-Search" class="mr5" />更多查询</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </template>
|
|
|
- <template #tableHeader="scope">
|
|
|
- <el-button type="primary" @click="onCreateRepeatEvent" :loading="state.loading">
|
|
|
- <SvgIcon name="ele-Plus" class="mr5" />创建重复性事件
|
|
|
- </el-button>
|
|
|
- <el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'" :disabled="!scope.isSelected" >
|
|
|
- <SvgIcon name="ele-Setting" class="mr5" />设置撤销<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
|
|
|
- </el-button>
|
|
|
- <el-button type="primary" @click="onObserve" v-auth="'business:order:observe'" :disabled="!scope.isSelected" :loading="state.loading"
|
|
|
- >添加关注<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
|
|
|
- </el-button>
|
|
|
- <el-button type="primary" @click="onEnd" v-auth="'business:order:end'" :disabled="!scope.isSelected" :loading="state.loading"
|
|
|
- >设置终结件<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
|
|
|
- </el-button>
|
|
|
- <el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'business:order:jbdExport'"
|
|
|
- ><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length">({{proTableRef?.selectedList?.length}})</span>
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- <template #expiredStatusText="{ row }">
|
|
|
- <span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
|
|
|
- </template>
|
|
|
- <template #title="{ row }">
|
|
|
- <order-detail :order="row" @updateList="handleQuery">{{ row.title }}</order-detail>
|
|
|
- </template>
|
|
|
- <template #operation="{ row }">
|
|
|
- <!-- 省工单退回条件 是省工单(工单未归档且当前节点处于热线中心办理节点时)工单状态为办理中(归档之前) 9代表有退回申请 -->
|
|
|
- <el-button
|
|
|
- link
|
|
|
- type="danger"
|
|
|
- @click="onReturn(row)"
|
|
|
- title="省工单退回"
|
|
|
- v-auth="'business:order:return:province'"
|
|
|
- v-if="
|
|
|
- row.isProvince &&
|
|
|
- (row.actualHandleOrgCode === '001' || row.actualHandleOrgCode === null || row.actualHandleOrgCode === '' || row.status === 0) &&
|
|
|
- row.status < 300 && row.status !== 9 && !row.provinceSendBack
|
|
|
- "
|
|
|
+ <ProTable
|
|
|
+ ref="proTableRef"
|
|
|
+ :columns="columns1"
|
|
|
+ :data="state.tableData"
|
|
|
+ @updateTable="queryList"
|
|
|
+ :loading="state.loading"
|
|
|
+ :pagination="false"
|
|
|
+ :toolButton="['refresh', 'setting', 'exportCurrent', 'exportAll']"
|
|
|
+ :exportMethod="exportOrder"
|
|
|
+ :exportParams="requestParams"
|
|
|
+ v-else
|
|
|
+ @sort-change="sortChange"
|
|
|
+ >
|
|
|
+ <template #table-search>
|
|
|
+ <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline>
|
|
|
+ <el-row>
|
|
|
+ <el-col>
|
|
|
+ <el-form-item label="快捷查询" prop="fastSearch">
|
|
|
+ <el-segmented
|
|
|
+ :options="[
|
|
|
+ {
|
|
|
+ value: 'all',
|
|
|
+ label: '全部',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'city',
|
|
|
+ label: '市工单',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'province',
|
|
|
+ label: '省工单',
|
|
|
+ },
|
|
|
+ ]"
|
|
|
+ v-model="fastSearch"
|
|
|
+ @change="fastSearchChange"
|
|
|
+ :disabled="state.loading"
|
|
|
+ />
|
|
|
+ <el-checkbox-group v-model="checkList" @change="changeCheckList" class="ml15">
|
|
|
+ <el-checkbox value="IsSensitiveWord" border>敏感类工单</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="contentRetrieval"><SvgIcon name="ele-DocumentCopy" class="mr5" />内容检索</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item label="工单标题" prop="Keyword">
|
|
|
+ <el-input v-model="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工单编码" prop="No">
|
|
|
+ <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="生成时间" prop="crTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="state.queryParams.crTime"
|
|
|
+ type="datetimerange"
|
|
|
+ unlink-panels
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ :shortcuts="shortcuts"
|
|
|
+ @change="handleQuery"
|
|
|
+ value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
+ :default-time="defaultTimeStartEnd"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
|
|
|
+ <el-button @click="drawer = true" class="default-button"> <SvgIcon name="ele-Search" class="mr5" />更多查询</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </template>
|
|
|
+ <template #tableHeader="scope">
|
|
|
+ <el-button type="primary" @click="onCreateRepeatEvent" :loading="state.loading">
|
|
|
+ <SvgIcon name="ele-Plus" class="mr5" />创建重复性事件
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" @click="onRevoke" :loading="state.loading" v-auth="'business:order:revoke'" :disabled="!scope.isSelected">
|
|
|
+ <SvgIcon name="ele-Setting" class="mr5" />设置撤销<span v-if="proTableRef?.selectedList?.length"
|
|
|
+ >({{ proTableRef?.selectedList?.length }})</span
|
|
|
>
|
|
|
- 退回</el-button
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" @click="onObserve" v-auth="'business:order:observe'" :disabled="!scope.isSelected" :loading="state.loading"
|
|
|
+ >添加关注<span v-if="proTableRef?.selectedList?.length">({{ proTableRef?.selectedList?.length }})</span>
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" @click="onEnd" v-auth="'business:order:end'" :disabled="!scope.isSelected" :loading="state.loading"
|
|
|
+ >设置终结件<span v-if="proTableRef?.selectedList?.length">({{ proTableRef?.selectedList?.length }})</span>
|
|
|
+ </el-button>
|
|
|
+ <el-button type="primary" @click="onJbExport" :disabled="!scope.isSelected" :loading="state.loading" v-auth="'business:order:jbdExport'"
|
|
|
+ ><SvgIcon name="iconfont icon-daochu" class="mr5" />交办单导出<span v-if="proTableRef?.selectedList?.length"
|
|
|
+ >({{ proTableRef?.selectedList?.length }})</span
|
|
|
>
|
|
|
- <order-detail :order="row" @updateList="handleQuery" />
|
|
|
- </template>
|
|
|
- </ProTable>
|
|
|
- <div class="flex-end mt20" style="align-items: center">
|
|
|
- <!-- <el-button class="default-button" @click="onChangeTotal">展示总数</el-button>-->
|
|
|
- <span v-loading="totalLoading" class="mr10">共 {{ totalCount }} 条</span>
|
|
|
- <el-pagination
|
|
|
- layout="prev, pager, next"
|
|
|
- :total="state.total"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- :page-size="state.queryParams.PageSize"
|
|
|
- :current-page="state.queryParams.PageIndex"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ <template #expiredStatusText="{ row }">
|
|
|
+ <span :class="'overdue-status-' + row.expiredStatus" :title="row.expiredStatusText"></span>
|
|
|
+ </template>
|
|
|
+ <template #title="{ row }">
|
|
|
+ <order-detail :order="row" @updateList="handleQuery">{{ row.title }}</order-detail>
|
|
|
+ </template>
|
|
|
+ <template #operation="{ row }">
|
|
|
+ <!-- 省工单退回条件 是省工单(工单未归档且当前节点处于热线中心办理节点时)工单状态为办理中(归档之前) 9代表有退回申请 -->
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ type="danger"
|
|
|
+ @click="onReturn(row)"
|
|
|
+ title="省工单退回"
|
|
|
+ v-auth="'business:order:return:province'"
|
|
|
+ v-if="
|
|
|
+ row.isProvince &&
|
|
|
+ (row.actualHandleOrgCode === '001' || row.actualHandleOrgCode === null || row.actualHandleOrgCode === '' || row.status === 0) &&
|
|
|
+ row.status < 300 &&
|
|
|
+ row.status !== 9 &&
|
|
|
+ !row.provinceSendBack
|
|
|
+ "
|
|
|
+ >
|
|
|
+ 退回</el-button
|
|
|
+ >
|
|
|
+ <order-detail :order="row" @updateList="handleQuery" />
|
|
|
+ </template>
|
|
|
+ </ProTable>
|
|
|
+ <div class="flex-end mt20" style="align-items: center">
|
|
|
+ <!-- <el-button class="default-button" @click="onChangeTotal">展示总数</el-button>-->
|
|
|
+ <span v-loading="totalLoading" class="mr10">共 {{ totalCount }} 条</span>
|
|
|
+ <el-pagination
|
|
|
+ layout="prev, pager, next"
|
|
|
+ :total="state.total"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :page-size="state.queryParams.PageSize"
|
|
|
+ :current-page="state.queryParams.PageIndex"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!-- 编辑重复性事件 -->
|
|
|
<repeat-event-edit ref="repeatEventEditRef" @updateList="handleQuery" />
|
|
@@ -380,6 +394,34 @@
|
|
|
:default-time="defaultTimeStartEnd"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="发布时间" prop="fbTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="state.queryParams.fbTime"
|
|
|
+ type="datetimerange"
|
|
|
+ unlink-panels
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ :shortcuts="shortcuts"
|
|
|
+ @change="handleQuery"
|
|
|
+ value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
+ :default-time="defaultTimeStartEnd"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="回访时间" prop="hfTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="state.queryParams.hfTime"
|
|
|
+ type="datetimerange"
|
|
|
+ unlink-panels
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ :shortcuts="shortcuts"
|
|
|
+ @change="handleQuery"
|
|
|
+ value-format="YYYY-MM-DD[T]HH:mm:ss"
|
|
|
+ :default-time="defaultTimeStartEnd"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="受理情况" prop="IsSgin">
|
|
|
<el-select v-model="state.queryParams.IsSgin" placeholder="请选择受理情况" clearable @change="handleQuery">
|
|
|
<el-option label="已签收" :value="true" />
|
|
@@ -496,8 +538,12 @@ const state = reactive<any>({
|
|
|
SensitiveWord: null, // 敏感词
|
|
|
IsUrgent: null, // 是否加急
|
|
|
ContentRetrieval: null, // 内容检索
|
|
|
- IsSgin:null, // 受理情况
|
|
|
- OrderTagCode:null, // 工单标签
|
|
|
+ IsSgin: null, // 受理情况
|
|
|
+ OrderTagCode: null, // 工单标签
|
|
|
+ SortField: null,
|
|
|
+ SortRule: null,
|
|
|
+ fbTime: [], // 发布时间
|
|
|
+ hfTime: [], // 回访时间
|
|
|
},
|
|
|
tableData: [], //表单
|
|
|
loading: false, // 加载
|
|
@@ -545,52 +591,57 @@ const proTableRef = ref<RefType>(); // 表格ref
|
|
|
// 表格配置项
|
|
|
const columns = ref<any[]>([
|
|
|
{ type: 'selection', minWidth: 40, align: 'center' },
|
|
|
- { prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
|
|
|
- { prop: 'no', label: '工单编码', minWidth: 140 },
|
|
|
- { prop: 'isProvinceText', label: '省/市工单', minWidth: 90 },
|
|
|
- { prop: 'reTransactNum', label: '重办次数' },
|
|
|
+ { prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'no', label: '工单编码', minWidth: 140, sortable: 'custom' },
|
|
|
+ { prop: 'isProvinceText', label: '省/市工单', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'reTransactNum', label: '重办次数', sortable: 'custom', minWidth: 110 },
|
|
|
{
|
|
|
prop: 'isUrgentText',
|
|
|
label: '是否紧急',
|
|
|
- render: (scope) => {
|
|
|
+ render: (scope:any) => {
|
|
|
return <span class="color-danger font-bold">{scope.row.isUrgentText}</span>;
|
|
|
},
|
|
|
+ minWidth: 120,
|
|
|
+ sortable: 'custom',
|
|
|
},
|
|
|
- { prop: 'currentStepName', label: '当前节点', minWidth: 120 },
|
|
|
- { prop: 'actualStepAcceptText', label: '受理情况' },
|
|
|
- { prop: 'statusText', label: '工单状态', minWidth: 100 },
|
|
|
+ { prop: 'currentStepName', label: '当前节点', minWidth: 120, sortable: 'custom' },
|
|
|
+ { prop: 'actualStepAcceptText', label: '受理情况', sortable: 'custom', minWidth: 110 },
|
|
|
+ { prop: 'statusText', label: '工单状态', minWidth: 110, sortable: 'custom' },
|
|
|
{ prop: 'title', label: '工单标题', minWidth: 200 },
|
|
|
{
|
|
|
prop: 'startTime',
|
|
|
label: '受理时间',
|
|
|
minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
+ render: (scope:any) => {
|
|
|
return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
},
|
|
|
+ sortable: 'custom',
|
|
|
},
|
|
|
{
|
|
|
prop: 'expiredTime',
|
|
|
label: '工单期满时间',
|
|
|
minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
+ render: (scope:any) => {
|
|
|
return <span>{formatDate(scope.row.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
},
|
|
|
+ sortable: 'custom',
|
|
|
},
|
|
|
{
|
|
|
prop: 'filedTime',
|
|
|
label: '办结时间',
|
|
|
minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
+ render: (scope:any) => {
|
|
|
return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
},
|
|
|
+ sortable: 'custom',
|
|
|
},
|
|
|
- { prop: 'orgLevelOneName', label: '一级部门', minWidth: 140 },
|
|
|
- { prop: 'actualHandleOrgName', label: '接办部门', minWidth: 140 },
|
|
|
- { prop: 'acceptType', label: '受理类型', minWidth: 100 },
|
|
|
- { prop: 'counterSignTypeText', label: '是否会签', minWidth: 90 },
|
|
|
+ { prop: 'orgLevelOneName', label: '一级部门', minWidth: 140, sortable: 'custom' },
|
|
|
+ { prop: 'actualHandleOrgName', label: '接办部门', minWidth: 140, sortable: 'custom' },
|
|
|
+ { prop: 'acceptType', label: '受理类型', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'counterSignTypeText', label: '是否会签', minWidth: 110, sortable: 'custom' },
|
|
|
{ prop: 'sourceChannel', label: '来源渠道', minWidth: 100 },
|
|
|
- { prop: 'hotspotName', label: '热点分类', minWidth: 150 },
|
|
|
- { prop: 'acceptorName', label: '受理人', minWidth: 120 },
|
|
|
+ { prop: 'hotspotName', label: '热点分类', minWidth: 150, sortable: 'custom' },
|
|
|
+ { prop: 'acceptorName', label: '受理人', minWidth: 120, sortable: 'custom' },
|
|
|
{
|
|
|
prop: 'sensitiveText',
|
|
|
label: '敏感词',
|
|
@@ -610,60 +661,68 @@ const columns = ref<any[]>([
|
|
|
]);
|
|
|
const columns1 = ref<any[]>([
|
|
|
{ type: 'selection', minWidth: 40, align: 'center' },
|
|
|
- { prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
|
|
|
- { prop: 'no', label: '工单编码', minWidth: 140 },
|
|
|
- { prop: 'isProvinceText', label: '省/市工单', minWidth: 90 },
|
|
|
- { prop: 'reTransactNum', label: '重办次数' },
|
|
|
+ { prop: 'expiredStatusText', label: '超期状态', align: 'center', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'no', label: '工单编码', minWidth: 140, sortable: 'custom' },
|
|
|
+ { prop: 'isProvinceText', label: '省/市工单', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'reTransactNum', label: '重办次数', sortable: 'custom', minWidth: 110 },
|
|
|
{
|
|
|
prop: 'isUrgentText',
|
|
|
label: '是否紧急',
|
|
|
- render: (scope) => {
|
|
|
+ render: (scope: any) => {
|
|
|
return <span class="color-danger font-bold">{scope.row.isUrgentText}</span>;
|
|
|
},
|
|
|
+ minWidth: 110,
|
|
|
+ sortable: 'custom',
|
|
|
},
|
|
|
- { prop: 'currentStepName', label: '当前节点', minWidth: 120 },
|
|
|
- { prop: 'actualStepAcceptText', label: '受理情况' },
|
|
|
- { prop: 'statusText', label: '工单状态', minWidth: 100 },
|
|
|
+/* { prop: 'isSecret', label: '是否保密', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'isSecret', label: '甄别状态', minWidth: 110, sortable: 'custom' },*/
|
|
|
+ { prop: 'currentStepName', label: '当前节点', minWidth: 120, sortable: 'custom' },
|
|
|
+ { prop: 'actualStepAcceptText', label: '受理情况', sortable: 'custom', minWidth: 110 },
|
|
|
+ { prop: 'statusText', label: '工单状态', minWidth: 110, sortable: 'custom' },
|
|
|
{ prop: 'title', label: '工单标题', minWidth: 200 },
|
|
|
{
|
|
|
prop: 'startTime',
|
|
|
label: '受理时间',
|
|
|
minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
+ render: (scope: any) => {
|
|
|
return <span>{formatDate(scope.row.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
},
|
|
|
+ sortable: 'custom',
|
|
|
},
|
|
|
{
|
|
|
prop: 'expiredTime',
|
|
|
label: '工单期满时间',
|
|
|
minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
+ render: (scope: any) => {
|
|
|
return <span>{formatDate(scope.row.expiredTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
},
|
|
|
+ sortable: 'custom',
|
|
|
},
|
|
|
{
|
|
|
prop: 'filedTime',
|
|
|
label: '办结时间',
|
|
|
minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
+ render: (scope: any) => {
|
|
|
return <span>{formatDate(scope.row.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
},
|
|
|
+ sortable: 'custom',
|
|
|
},
|
|
|
- { prop: 'fromPhone', label: '来电号码', minWidth: 120 },
|
|
|
- { prop: 'contact', label: '联系电话', minWidth: 120 },
|
|
|
- { prop: 'fromName', label: '来电人姓名', minWidth: 110 },
|
|
|
- { prop: 'fromGenderText', label: '来电人性别', minWidth: 100 },
|
|
|
- { prop: 'fullAddress', label: '事发地址', minWidth: 110 },
|
|
|
- { prop: 'orgLevelOneName', label: '一级部门', minWidth: 140 },
|
|
|
- { prop: 'actualHandleOrgName', label: '接办部门', minWidth: 140 },
|
|
|
- { prop: 'acceptType', label: '受理类型', minWidth: 100 },
|
|
|
- { prop: 'counterSignTypeText', label: '是否会签', minWidth: 90 },
|
|
|
+ { prop: 'fromPhone', label: '来电号码', minWidth: 120, sortable: 'custom' },
|
|
|
+ { prop: 'contact', label: '联系电话', minWidth: 120, sortable: 'custom' },
|
|
|
+ { prop: 'fromName', label: '来电人姓名', minWidth: 120, sortable: 'custom' },
|
|
|
+ { prop: 'fromGenderText', label: '来电人性别', minWidth: 120, sortable: 'custom' },
|
|
|
+ { prop: 'fullAddress', label: '事发地址', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'orgLevelOneName', label: '一级部门', minWidth: 140, sortable: 'custom' },
|
|
|
+ { prop: 'orgLevelTwoName', label: '二级部门', minWidth: 140, sortable: 'custom' },
|
|
|
+ { prop: 'actualHandleOrgName', label: '接办部门', minWidth: 140, sortable: 'custom' },
|
|
|
+ { prop: 'acceptType', label: '受理类型', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'counterSignTypeText', label: '是否会签', minWidth: 110, sortable: 'custom' },
|
|
|
{ prop: 'sourceChannel', label: '来源渠道', minWidth: 100 },
|
|
|
- { prop: 'orderTag', label: '工单标签', minWidth: 100 },
|
|
|
- { prop: 'allDurationHour', label: '办理时长(小时)', minWidth: 120 },
|
|
|
- { prop: 'hotspotSpliceName', label: '热点分类全称', minWidth: 150 },
|
|
|
- { prop: 'hotspotName', label: '热点分类', minWidth: 150 },
|
|
|
- { prop: 'acceptorName', label: '受理人', minWidth: 120 },
|
|
|
+ { prop: 'orderTag', label: '工单标签', minWidth: 110, sortable: 'custom' },
|
|
|
+ { prop: 'allDurationHour', label: '办理时长(小时)', minWidth: 150, sortable: 'custom' },
|
|
|
+ { prop: 'hotspotSpliceName', label: '热点分类全称', minWidth: 150, sortable: 'custom' },
|
|
|
+ { prop: 'hotspotName', label: '热点分类', minWidth: 150, sortable: 'custom' },
|
|
|
+ { prop: 'acceptorName', label: '受理人', minWidth: 120, sortable: 'custom' },
|
|
|
{
|
|
|
prop: 'sensitiveText',
|
|
|
label: '敏感词',
|
|
@@ -679,8 +738,8 @@ const columns1 = ref<any[]>([
|
|
|
label: '办理结果',
|
|
|
isShow: false,
|
|
|
},
|
|
|
- { prop: 'seatEvaluateTxt', label: '坐席满意度', minWidth: 110 },
|
|
|
- { prop: 'orgEvaluateValue', label: '部门满意度', minWidth: 110 },
|
|
|
+ { prop: 'seatEvaluateTxt', label: '坐席满意度', minWidth: 120, sortable: 'custom' },
|
|
|
+ { prop: 'orgEvaluateValue', label: '部门满意度', minWidth: 120, sortable: 'custom' },
|
|
|
{ prop: 'operation', label: '操作', fixed: 'right', width: 140, align: 'center' },
|
|
|
]);
|
|
|
// 获取查询条件基础信息
|
|
@@ -695,7 +754,7 @@ const getBaseData = async () => {
|
|
|
orderStatusOptions: 'orderStatusOptions',
|
|
|
identityTypeOptions: 'identityTypeOptions',
|
|
|
currentStepOptions: 'currentStepOptions',
|
|
|
- orderTagOptions:'orderTags',
|
|
|
+ orderTagOptions: 'orderTags',
|
|
|
};
|
|
|
for (const key in mappings) {
|
|
|
state[key] = res.result?.[mappings[key]] ?? [];
|
|
@@ -706,6 +765,13 @@ const getBaseData = async () => {
|
|
|
console.log(error);
|
|
|
}
|
|
|
};
|
|
|
+// 排序
|
|
|
+const sortChange = (val: any) => {
|
|
|
+ state.queryParams.SortField = val.order ? val.prop : null;
|
|
|
+ // 0 升序 1 降序
|
|
|
+ state.queryParams.SortRule = val.order ? (val.order == 'descending' ? 1 : 0) : null;
|
|
|
+ handleQuery();
|
|
|
+};
|
|
|
// 手动查询,将页码设置为1
|
|
|
const handleQuery = () => {
|
|
|
state.queryParams.PageIndex = 1;
|
|
@@ -728,52 +794,52 @@ const requestParams = ref<EmptyObjectType>({});
|
|
|
const totalCount = ref(0);
|
|
|
const totalLoading = ref(false);
|
|
|
const queryList = (isQuery: boolean = false) => {
|
|
|
- requestParams.value = Other.deepClone(state.queryParams);
|
|
|
- requestParams.value.CreationTimeStart = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
|
|
|
- requestParams.value.CreationTimeEnd = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
|
|
|
- Reflect.deleteProperty(requestParams.value, 'crTime'); // 删除无用的参数
|
|
|
- requestParams.value.ExpiredTimeStart = state.queryParams.exTime === null ? null : state.queryParams.exTime[0]; // 期满时间
|
|
|
- requestParams.value.ExpiredTimeEnd = state.queryParams.exTime === null ? null : state.queryParams.exTime[1];
|
|
|
- Reflect.deleteProperty(requestParams.value, 'exTime'); // 删除无用的参数
|
|
|
- requestParams.value.ActualHandleTimeStart = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[0]; // 办结时间
|
|
|
- requestParams.value.ActualHandleTimeEnd = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[1];
|
|
|
- Reflect.deleteProperty(requestParams.value, 'doneTime'); // 删除无用的参数
|
|
|
- requestParams.value.QueryIndex = queryIndex.value; // 数据批次
|
|
|
- requestParams.value.ContentRetrieval = state.ruleForm.content;
|
|
|
- state.loading = true;
|
|
|
- totalLoading.value = true;
|
|
|
- orderListFixed(requestParams.value)
|
|
|
- .then((response: any) => {
|
|
|
- if (isQuery) {
|
|
|
- // 如果是查询
|
|
|
- totalTable.value = []; // 先清空
|
|
|
- totalTable.value = response?.result;
|
|
|
- state.total = totalTable.value.length;
|
|
|
- state.tableData = getNeedArr(totalTable.value, state.queryParams.PageSize)[state.queryParams.PageIndex - 1]; //当前页的表格数据
|
|
|
- queryIndex.value = 1; // 请求完成之后,页码加一避免重复
|
|
|
- } else {
|
|
|
- if (response?.result.length) queryIndex.value++;
|
|
|
- totalTable.value = totalTable.value.concat(response?.result);
|
|
|
- state.total = totalTable.value.length;
|
|
|
- state.tableData = getNeedArr(totalTable.value, state.queryParams.PageSize)[state.queryParams.PageIndex - 1]; //当前页的表格数据
|
|
|
- }
|
|
|
- state.loading = false;
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- // 查询总数
|
|
|
- orderListCount(requestParams.value)
|
|
|
- .then((count) => {
|
|
|
- totalCount.value = count.result;
|
|
|
- totalLoading.value = false;
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- totalLoading.value = false;
|
|
|
- });
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- state.loading = false;
|
|
|
- totalLoading.value = false;
|
|
|
- });
|
|
|
+ requestParams.value = Other.deepClone(state.queryParams);
|
|
|
+ requestParams.value.CreationTimeStart = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 生成时间
|
|
|
+ requestParams.value.CreationTimeEnd = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
|
|
|
+ Reflect.deleteProperty(requestParams.value, 'crTime'); // 删除无用的参数
|
|
|
+ requestParams.value.ExpiredTimeStart = state.queryParams.exTime === null ? null : state.queryParams.exTime[0]; // 期满时间
|
|
|
+ requestParams.value.ExpiredTimeEnd = state.queryParams.exTime === null ? null : state.queryParams.exTime[1];
|
|
|
+ Reflect.deleteProperty(requestParams.value, 'exTime'); // 删除无用的参数
|
|
|
+ requestParams.value.ActualHandleTimeStart = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[0]; // 办结时间
|
|
|
+ requestParams.value.ActualHandleTimeEnd = state.queryParams.doneTime === null ? null : state.queryParams.doneTime[1];
|
|
|
+ Reflect.deleteProperty(requestParams.value, 'doneTime'); // 删除无用的参数
|
|
|
+ requestParams.value.QueryIndex = queryIndex.value; // 数据批次
|
|
|
+ requestParams.value.ContentRetrieval = state.ruleForm.content;
|
|
|
+ state.loading = true;
|
|
|
+ totalLoading.value = true;
|
|
|
+ orderListFixed(requestParams.value)
|
|
|
+ .then((response: any) => {
|
|
|
+ if (isQuery) {
|
|
|
+ // 如果是查询
|
|
|
+ totalTable.value = []; // 先清空
|
|
|
+ totalTable.value = response?.result;
|
|
|
+ state.total = totalTable.value.length;
|
|
|
+ state.tableData = getNeedArr(totalTable.value, state.queryParams.PageSize)[state.queryParams.PageIndex - 1]; //当前页的表格数据
|
|
|
+ queryIndex.value = 1; // 请求完成之后,页码加一避免重复
|
|
|
+ } else {
|
|
|
+ if (response?.result.length) queryIndex.value++;
|
|
|
+ totalTable.value = totalTable.value.concat(response?.result);
|
|
|
+ state.total = totalTable.value.length;
|
|
|
+ state.tableData = getNeedArr(totalTable.value, state.queryParams.PageSize)[state.queryParams.PageIndex - 1]; //当前页的表格数据
|
|
|
+ }
|
|
|
+ state.loading = false;
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ // 查询总数
|
|
|
+ orderListCount(requestParams.value)
|
|
|
+ .then((count) => {
|
|
|
+ totalCount.value = count.result;
|
|
|
+ totalLoading.value = false;
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ totalLoading.value = false;
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ state.loading = false;
|
|
|
+ totalLoading.value = false;
|
|
|
+ });
|
|
|
};
|
|
|
/** 重置按钮操作 */
|
|
|
const drawerRuleFormRef = ref();
|
|
@@ -842,10 +908,10 @@ const onCreateRepeatEvent = () => {
|
|
|
};
|
|
|
// 设置撤销
|
|
|
const orderRevokeRef = ref<RefType>();
|
|
|
-const onRevoke = ()=>{
|
|
|
+const onRevoke = () => {
|
|
|
const ids = proTableRef.value.selectedList.map((item: any) => item.id);
|
|
|
orderRevokeRef.value.openDialog(ids);
|
|
|
-}
|
|
|
+};
|
|
|
// 工单省退回
|
|
|
const orderReturnRef = ref<RefType>(); // 工单退回ref
|
|
|
const onReturn = (row: any) => {
|