|
@@ -1,121 +1,175 @@
|
|
|
<template>
|
|
|
<div class="business-visit-todo-container layout-padding">
|
|
|
<div class="layout-padding-auto layout-padding-view pd20">
|
|
|
- <ProTable
|
|
|
- ref="proTableRef"
|
|
|
- :columns="columns"
|
|
|
- :data="state.tableData"
|
|
|
- @updateTable="queryList"
|
|
|
+ <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline label-width="100px">
|
|
|
+ <el-form-item label="数据范围" prop="QuerySelf" v-auth="'business:visit:todo:querySelf'">
|
|
|
+ <el-segmented
|
|
|
+ :options="[
|
|
|
+ { label: '我的', value: 'true' },
|
|
|
+ { label: '全部', value: 'false' },
|
|
|
+ ]"
|
|
|
+ v-model="state.queryParams.QuerySelf"
|
|
|
+ @change="handleQuery"
|
|
|
+ :disabled="state.loading"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工单类型" prop="IsProvince" v-auth="'business:visit:todo:orderType'">
|
|
|
+ <el-segmented
|
|
|
+ :options="[
|
|
|
+ {
|
|
|
+ value: 'all',
|
|
|
+ label: '全部',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'city',
|
|
|
+ label: '市工单',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 'province',
|
|
|
+ label: '省工单',
|
|
|
+ },
|
|
|
+ ]"
|
|
|
+ v-model="fastSearch"
|
|
|
+ @change="fastSearchChange"
|
|
|
+ :disabled="state.loading"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="回访状态" prop="VisitStateQuery" v-if="['ZiGong'].includes(themeConfig.appScope)">
|
|
|
+ <el-segmented
|
|
|
+ :options="[
|
|
|
+ { label: '待回访', value: 2 },
|
|
|
+ { label: '短信回访中', value: 21 },
|
|
|
+ { label: '短信不满意待回访', value: 41 },
|
|
|
+ { label: '未接通', value: 51 },
|
|
|
+ ]"
|
|
|
+ v-model="state.queryParams.VisitStateQuery"
|
|
|
+ @change="handleQuery"
|
|
|
+ :disabled="state.loading"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工单标题" prop="Keyword">
|
|
|
+ <el-input v-model.trim="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工单编码" prop="No">
|
|
|
+ <el-input v-model.trim="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
|
|
|
+ </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>
|
|
|
+ <vxe-toolbar
|
|
|
+ ref="toolbarRef"
|
|
|
:loading="state.loading"
|
|
|
- :total="state.total"
|
|
|
- v-model:page-index="state.queryParams.PageIndex"
|
|
|
- v-model:page-size="state.queryParams.PageSize"
|
|
|
+ custom
|
|
|
+ :refresh="{
|
|
|
+ queryMethod: handleQuery,
|
|
|
+ }"
|
|
|
>
|
|
|
- <template #table-search>
|
|
|
- <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent inline label-width="100px">
|
|
|
- <el-form-item label="数据范围" prop="QuerySelf" v-auth="'business:visit:todo:querySelf'">
|
|
|
- <el-segmented
|
|
|
- :options="[
|
|
|
- { label: '我的', value: 'true' },
|
|
|
- { label: '全部', value: 'false' },
|
|
|
- ]"
|
|
|
- v-model="state.queryParams.QuerySelf"
|
|
|
- @change="handleQuery"
|
|
|
- :disabled="state.loading"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="工单类型" prop="IsProvince" v-auth="'business:visit:todo:orderType'">
|
|
|
- <el-segmented
|
|
|
- :options="[
|
|
|
- {
|
|
|
- value: 'all',
|
|
|
- label: '全部',
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'city',
|
|
|
- label: '市工单',
|
|
|
- },
|
|
|
- {
|
|
|
- value: 'province',
|
|
|
- label: '省工单',
|
|
|
- },
|
|
|
- ]"
|
|
|
- v-model="fastSearch"
|
|
|
- @change="fastSearchChange"
|
|
|
- :disabled="state.loading"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="回访状态" prop="VisitStateQuery" v-if="['ZiGong'].includes(themeConfig.appScope)">
|
|
|
- <el-segmented
|
|
|
- :options="[
|
|
|
- { label: '待回访', value: 2 },
|
|
|
- { label: '短信回访中', value: 21 },
|
|
|
- { label: '短信不满意待回访', value: 41 },
|
|
|
- { label: '未接通', value: 51 },
|
|
|
- ]"
|
|
|
- v-model="state.queryParams.VisitStateQuery"
|
|
|
- @change="handleQuery"
|
|
|
- :disabled="state.loading"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="工单标题" prop="Keyword">
|
|
|
- <el-input v-model.trim="state.queryParams.Keyword" placeholder="工单标题" clearable @keyup.enter="handleQuery" class="keyword-input" />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="工单编码" prop="No">
|
|
|
- <el-input v-model.trim="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" class="keyword-input" />
|
|
|
- </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">
|
|
|
+ <template #buttons>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
@click="messageVisit"
|
|
|
- :disabled="!scope.isSelected"
|
|
|
+ :disabled="isChecked"
|
|
|
v-auth="'business:visit:todo:message'"
|
|
|
v-if="['ZiGong', 'LuZhou'].includes(themeConfig.appScope)"
|
|
|
>
|
|
|
- <SvgIcon name="ele-Message" class="mr5" />短信回访<span v-if="proTableRef?.selectedList?.length"
|
|
|
- >({{ proTableRef?.selectedList?.length }})</span
|
|
|
- ></el-button
|
|
|
+ <SvgIcon name="ele-Message" class="mr5" />短信回访</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
@click="batchVisit"
|
|
|
- :disabled="!scope.isSelected"
|
|
|
+ :disabled="isChecked"
|
|
|
v-auth="'business:visit:todo:batch'"
|
|
|
v-if="['ZiGong', 'LuZhou'].includes(themeConfig.appScope)"
|
|
|
>
|
|
|
- <SvgIcon name="ele-DocumentCopy" class="mr5" />批量回访<span v-if="proTableRef?.selectedList?.length"
|
|
|
- >({{ proTableRef?.selectedList?.length }})</span
|
|
|
- ></el-button
|
|
|
+ <SvgIcon name="ele-DocumentCopy" class="mr5" />批量回访</el-button
|
|
|
>
|
|
|
- <!-- <el-button type="primary" @click="multiplePeople" :disabled="!scope.isSelected" v-auth="'business:visit:todo:multiplePeople'">
|
|
|
+ <!-- <el-button type="primary" @click="multiplePeople" :disabled="isChecked" v-auth="'business:visit:todo:multiplePeople'">
|
|
|
<SvgIcon name="ele-User" class="mr5" />分配回访人</el-button
|
|
|
>-->
|
|
|
- <el-button type="primary" @click="onMigration" v-auth="'business:visit:todo:migration'" :disabled="!scope.isSelected">
|
|
|
- <SvgIcon name="ele-Rank" class="mr5" />平级移动<span v-if="proTableRef?.selectedList?.length"
|
|
|
- >({{ proTableRef?.selectedList?.length }})</span
|
|
|
- >
|
|
|
+ <el-button type="primary" @click="onMigration" v-auth="'business:visit:todo:migration'" :disabled="isChecked">
|
|
|
+ <SvgIcon name="ele-Rank" class="mr5" />平级移动
|
|
|
</el-button>
|
|
|
</template>
|
|
|
- <template #title="{ row }">
|
|
|
- <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
|
|
|
- </template>
|
|
|
- <template #expiredStatusText="{ row }">
|
|
|
- <span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
|
|
|
- </template>
|
|
|
- <!-- <template #isPutThrough="{ row }">
|
|
|
- <span v-if="row.isPutThrough">{{ row.isPutThrough ? '未接通' : '已接通' }}</span>
|
|
|
- </template>-->
|
|
|
- <!-- 表格操作 -->
|
|
|
- <template #operation="{ row }">
|
|
|
- <el-button link type="primary" @click="onManpower(row)" title="工单回访" v-auth="'business:visit:todo:manpower'"> 回访 </el-button>
|
|
|
- </template>
|
|
|
- </ProTable>
|
|
|
+ </vxe-toolbar>
|
|
|
+ <div style="overflow: hidden; width: 100%; height: 100%; flex: 1">
|
|
|
+ <vxe-table
|
|
|
+ border
|
|
|
+ :loading="state.loading"
|
|
|
+ :data="state.tableData"
|
|
|
+ :column-config="{ resizable: true }"
|
|
|
+ :row-config="{ isCurrent: true, isHover: true, height: 30 }"
|
|
|
+ ref="tableRef"
|
|
|
+ @checkbox-all="selectAllChangeEvent"
|
|
|
+ @checkbox-change="selectChangeEvent"
|
|
|
+ height="auto"
|
|
|
+ auto-resize
|
|
|
+ show-overflow
|
|
|
+ :print-config="{}"
|
|
|
+ :scrollY="{ enabled: true, gt: 0 }"
|
|
|
+ id="businessVisitTodo"
|
|
|
+ :custom-config="{
|
|
|
+ storage: true,
|
|
|
+ }"
|
|
|
+ showHeaderOverflow
|
|
|
+ >
|
|
|
+ <vxe-column type="checkbox" width="50" align="center"></vxe-column>
|
|
|
+ <vxe-column field="order.expiredStatusText" title="超期状态" width="90" align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <span :class="'overdue-status-' + row.order?.expiredStatus" :title="row.order?.expiredStatusText"></span>
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column field="order.no" title="工单编码" width="140"></vxe-column>
|
|
|
+ <vxe-column field="order.isProvinceText" title="省/市工单" width="100"></vxe-column>
|
|
|
+ <vxe-column field="title" title="工单标题" width="200">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column field="order.sourceChannel" title="来源渠道" width="100"></vxe-column>
|
|
|
+ <vxe-column field="visitStateText" title="回访状态" width="100"></vxe-column>
|
|
|
+ <vxe-column field="visitTypeText" title="回访方式" width="100"></vxe-column>
|
|
|
+ <vxe-column field="order.acceptType" title="受理类型" width="110"></vxe-column>
|
|
|
+ <vxe-column field="order.hotspotName" title="热点分类" width="150"></vxe-column>
|
|
|
+ <vxe-column field="order.acceptorName" title="受理人" width="120"></vxe-column>
|
|
|
+ <vxe-column field="order.orgLevelOneName" title="一级部门" width="150"></vxe-column>
|
|
|
+ <vxe-column field="order.actualHandleOrgName" title="接办部门" width="150"></vxe-column>
|
|
|
+ <vxe-column field="order.startTime" title="受理时间" width="160">
|
|
|
+ <template #default="{ row }">
|
|
|
+ {{ formatDate(row.order?.startTime, 'YYYY-mm-dd HH:MM:SS') }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column field="order.filedTime" title="办结时间" width="160">
|
|
|
+ <template #default="{ row }">
|
|
|
+ {{ formatDate(row.order?.filedTime, 'YYYY-mm-dd HH:MM:SS') }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column field="publishTime" title="发布时间" width="160">
|
|
|
+ <template #default="{ row }">
|
|
|
+ {{ formatDate(row.publishTime, 'YYYY-mm-dd HH:MM:SS') }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column field="creationTime" title="回访任务创建时间" width="170">
|
|
|
+ <template #default="{ row }">
|
|
|
+ {{ formatDate(row.creationTime, 'YYYY-mm-dd HH:MM:SS') }}
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ <vxe-column field="employeeName" title="回访人" width="150"></vxe-column>
|
|
|
+ <vxe-column title="操作" fixed="right" width="80" align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-button link type="primary" @click="onManpower(row)" title="工单回访" v-auth="'business:visit:todo:manpower'"> 回访 </el-button>
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ </vxe-table>
|
|
|
+ </div>
|
|
|
+ <pagination
|
|
|
+ @pagination="queryList"
|
|
|
+ :total="state.total"
|
|
|
+ v-model:current-page="state.queryParams.PageIndex"
|
|
|
+ v-model:page-size="state.queryParams.PageSize"
|
|
|
+ :disabled="state.loading"
|
|
|
+ />
|
|
|
</div>
|
|
|
<!-- 更多查询 -->
|
|
|
<el-drawer v-model="drawer" title="更多查询" size="500px">
|
|
@@ -192,7 +246,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="tsx" name="businessVisitTodo">
|
|
|
-import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
|
|
|
+import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
|
|
|
import { ElMessageBox, FormInstance, ElMessage } from 'element-plus';
|
|
|
import { formatDate } from '@/utils/formatTime';
|
|
|
import { visitList } from '@/api/todo/visit';
|
|
@@ -207,9 +261,9 @@ const AssignReturnVisitors = defineAsyncComponent(() => import('@/views/business
|
|
|
const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
|
|
|
const OrderMigration = defineAsyncComponent(() => import('@/views/todo/center/Order-migration.vue')); // 工单平移
|
|
|
const VisitBatch = defineAsyncComponent(() => import('@/views/business/visit/components/Visit-batch.vue')); // 批量回访
|
|
|
+const pagination = defineAsyncComponent(() => import('@/components/ProTable/components/Pagination.vue')); // 分页
|
|
|
|
|
|
// 定义变量内容
|
|
|
-const proTableRef = ref<RefType>(); // 表格ref
|
|
|
const fastSearch = ref('all'); // tab位置
|
|
|
const fastSearchChange = (val: string) => {
|
|
|
fastSearch.value = val;
|
|
@@ -226,61 +280,6 @@ const fastSearchChange = (val: string) => {
|
|
|
}
|
|
|
handleQuery();
|
|
|
};
|
|
|
-// 表格配置项
|
|
|
-const columns = ref<any[]>([
|
|
|
- { type: 'selection', width: 40, align: 'center' },
|
|
|
- { prop: 'order.expiredStatusText', label: '超期状态', align: 'center', minWidth: 80 },
|
|
|
- { prop: 'order.no', label: '工单编码', minWidth: 140 },
|
|
|
- { prop: 'order.isProvinceText', label: '省/市工单', minWidth: 90 },
|
|
|
- { prop: 'order.title', label: '工单标题', minWidth: 200 },
|
|
|
- { prop: 'order.sourceChannel', label: '来源渠道', minWidth: 100 },
|
|
|
- { prop: 'visitStateText', label: '回访状态', minWidth: 100 },
|
|
|
- { prop: 'visitTypeText', label: '回访方式', minWidth: 100 },
|
|
|
- { prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
|
|
|
- { prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
|
|
|
- { prop: 'order.acceptorName', label: '受理人', minWidth: 120 },
|
|
|
- { prop: 'order.orgLevelOneName', label: '一级部门', minWidth: 140 },
|
|
|
- { prop: 'order.actualHandleOrgName', label: '接办部门', minWidth: 140 },
|
|
|
- {
|
|
|
- prop: 'order.startTime',
|
|
|
- label: '受理时间',
|
|
|
- minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
- return <span>{formatDate(scope.row.order?.startTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'order.filedTime',
|
|
|
- label: '办结时间',
|
|
|
- minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
- return <span>{formatDate(scope.row.order?.filedTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'publishTime',
|
|
|
- label: '发布时间',
|
|
|
- minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
- return <span>{formatDate(scope.row.publishTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'creationTime',
|
|
|
- label: '回访任务创建时间',
|
|
|
- minWidth: 160,
|
|
|
- render: (scope) => {
|
|
|
- return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
|
|
|
- },
|
|
|
- },
|
|
|
- { prop: 'employeeName', label: '回访人', minWidth: 120 },
|
|
|
- /*{
|
|
|
- prop: 'isPutThrough',
|
|
|
- label: '是否接通',
|
|
|
- width: 150,
|
|
|
- },*/
|
|
|
- { prop: 'operation', label: '操作', fixed: 'right', width: 80, align: 'center' },
|
|
|
-]);
|
|
|
const state = reactive<any>({
|
|
|
queryParams: {
|
|
|
// 查询条件
|
|
@@ -297,10 +296,10 @@ const state = reactive<any>({
|
|
|
IsProvince: null, // 是否省工单
|
|
|
FromPhone: null, //来电号码
|
|
|
Contact: null, //联系电话
|
|
|
- ActualHandleOrgName:null, // 接办部门
|
|
|
- fbTime:[], // 发布时间
|
|
|
- StartPublishTime:null,
|
|
|
- EndPublishTime:null,
|
|
|
+ ActualHandleOrgName: null, // 接办部门
|
|
|
+ fbTime: [], // 发布时间
|
|
|
+ StartPublishTime: null,
|
|
|
+ EndPublishTime: null,
|
|
|
},
|
|
|
tableData: [], //表单
|
|
|
loading: false, // 加载
|
|
@@ -342,7 +341,7 @@ const queryList = () => {
|
|
|
state.loading = false;
|
|
|
reject();
|
|
|
});
|
|
|
- })
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
/** 重置按钮操作 */
|
|
@@ -361,7 +360,7 @@ const resetQuery = (formEl: FormInstance | undefined) => {
|
|
|
// 批量分配
|
|
|
const assignReturnVisitorsRef = ref<RefType>();
|
|
|
const multiplePeople = () => {
|
|
|
- const ids = proTableRef.value.selectedList.map((item: any) => item.id);
|
|
|
+ const ids = checkTable.value.map((item: any) => item.id);
|
|
|
assignReturnVisitorsRef.value.openDialog(ids);
|
|
|
};
|
|
|
// 回访
|
|
@@ -372,13 +371,13 @@ const onManpower = (row: any) => {
|
|
|
// 平移功能
|
|
|
const orderMigrationRef = ref<RefType>();
|
|
|
const onMigration = () => {
|
|
|
- const ids = proTableRef.value.selectedList.map((item: any) => item.id);
|
|
|
+ const ids = checkTable.value.map((item: any) => item.id);
|
|
|
orderMigrationRef.value.openDialog('visitTodo', ids);
|
|
|
};
|
|
|
// 短信回访
|
|
|
const messageVisit = () => {
|
|
|
- const ids = proTableRef.value.selectedList.map((item: any) => item.id);
|
|
|
- ElMessageBox.confirm(`您确定要选择的【${proTableRef.value.selectedList.length}】个工单进行短信回访?`, '提示', {
|
|
|
+ const ids = checkTable.value.map((item: any) => item.id);
|
|
|
+ ElMessageBox.confirm(`您确定要选中的工单进行短信回访?`, '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning',
|
|
@@ -400,7 +399,7 @@ const messageVisit = () => {
|
|
|
// 批量回访
|
|
|
const visitBatchRef = ref<RefType>();
|
|
|
const batchVisit = () => {
|
|
|
- const visit = proTableRef.value.selectedList.map((item: any) => {
|
|
|
+ const visit = checkTable.value.map((item: any) => {
|
|
|
return {
|
|
|
orderId: item.order?.id,
|
|
|
visitId: item.id,
|
|
@@ -409,9 +408,33 @@ const batchVisit = () => {
|
|
|
});
|
|
|
visitBatchRef.value.openDialog(visit);
|
|
|
};
|
|
|
+const tableRef = ref<RefType>();
|
|
|
+const checkTable = ref<EmptyArrayType>([]);
|
|
|
+const selectAllChangeEvent = ({ checked }) => {
|
|
|
+ if (tableRef.value) {
|
|
|
+ const records = tableRef.value.getCheckboxRecords();
|
|
|
+ checkTable.value = records;
|
|
|
+ console.log(checked ? '所有勾选事件' : '所有取消事件', records);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const selectChangeEvent = ({ checked }) => {
|
|
|
+ if (tableRef.value) {
|
|
|
+ const records = tableRef.value.getCheckboxRecords();
|
|
|
+ checkTable.value = records;
|
|
|
+ console.log(checked ? '勾选事件' : '取消事件', records);
|
|
|
+ }
|
|
|
+};
|
|
|
+const isChecked = computed(() => {
|
|
|
+ return !Boolean(checkTable.value.length);
|
|
|
+});
|
|
|
+const toolbarRef = ref<RefType>();
|
|
|
onMounted(() => {
|
|
|
- queryList().then(()=>{
|
|
|
+ queryList().then(() => {
|
|
|
getBaseData();
|
|
|
- })
|
|
|
+ });
|
|
|
+ if (tableRef.value && toolbarRef.value) {
|
|
|
+ tableRef.value.connect(toolbarRef.value);
|
|
|
+ }
|
|
|
});
|
|
|
</script>
|