todo.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491
  1. <template>
  2. <div class="business-discern-todo-container layout-padding">
  3. <div class="layout-padding-auto layout-padding-view pd20">
  4. <el-tabs v-model="state.queryParams.TabStatus" @tab-change="handleQuery">
  5. <el-tab-pane :name="0" label="甄别待审批"></el-tab-pane>
  6. <el-tab-pane :name="4" label="甄别已审批"></el-tab-pane>
  7. </el-tabs>
  8. <ProTable
  9. ref="proTableRef"
  10. :columns="columnsTodo"
  11. :data="state.tableData"
  12. @updateTable="queryList"
  13. :loading="state.loading"
  14. :total="state.total"
  15. v-model:page-index="state.queryParams.PageIndex"
  16. v-model:page-size="state.queryParams.PageSize"
  17. @sort-change="sortChange"
  18. v-if="state.queryParams.TabStatus === 0"
  19. >
  20. <template #table-search>
  21. <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
  22. <el-row :gutter="10">
  23. <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  24. <el-form-item label="甄别状态" prop="Status">
  25. <el-select v-model="state.queryParams.Status" placeholder="请选择甄别状态" @change="handleQuery" clearable>
  26. <el-option v-for="item in state.screenStatus" :value="item.key" :key="item.key" :label="item.value" />
  27. </el-select>
  28. </el-form-item>
  29. </el-col>-->
  30. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  31. <el-form-item label="工单标题" prop="Title">
  32. <el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
  33. </el-form-item>
  34. </el-col>
  35. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  36. <el-form-item label="工单编码" prop="No">
  37. <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
  38. </el-form-item>
  39. </el-col>
  40. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  41. <el-form-item label="省/市工单" prop="IsProvince">
  42. <el-select v-model="state.queryParams.IsProvince" clearable placeholder="请选择省/市工单" @change="handleQuery">
  43. <el-option :value="false" label="市工单" />
  44. <el-option :value="true" label="省工单" />
  45. </el-select>
  46. </el-form-item>
  47. </el-col>
  48. <transition name="el-zoom-in-top">
  49. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  50. <el-form-item label="受理类型" prop="AcceptType">
  51. <el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable class="w100" @change="handleQuery">
  52. <el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
  53. </el-select>
  54. </el-form-item>
  55. </el-col>
  56. </transition>
  57. <transition name="el-zoom-in-top">
  58. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  59. <el-form-item label="热点分类" prop="HotspotSpliceName">
  60. <el-input v-model="state.queryParams.HotspotSpliceName" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
  61. </el-form-item>
  62. </el-col>
  63. </transition>
  64. <transition name="el-zoom-in-top">
  65. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  66. <el-form-item label="来源渠道" prop="SourceChannel">
  67. <el-select v-model="state.queryParams.SourceChannel" placeholder="请选择来源渠道" clearable class="w100" @change="handleQuery">
  68. <el-option
  69. v-for="item in state.sourceChannelOptions"
  70. :value="item.dicDataValue"
  71. :key="item.dicDataValue"
  72. :label="item.dicDataName"
  73. />
  74. </el-select>
  75. </el-form-item>
  76. </el-col>
  77. </transition>
  78. <transition name="el-zoom-in-top">
  79. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  80. <el-form-item label="被回访部门" prop="VisitOrgName">
  81. <el-input v-model="state.queryParams.VisitOrgName" placeholder="被回访部门名称" clearable @keyup.enter="handleQuery" />
  82. </el-form-item>
  83. </el-col>
  84. </transition>
  85. <transition name="el-zoom-in-top">
  86. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  87. <el-form-item label="申请部门" prop="CreatorOrgName">
  88. <el-input v-model="state.queryParams.CreatorOrgName" placeholder="申请部门名称" clearable @keyup.enter="handleQuery" />
  89. </el-form-item>
  90. </el-col>
  91. </transition>
  92. <transition name="el-zoom-in-top">
  93. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  94. <el-form-item label="申请人" prop="CreatorName">
  95. <el-input v-model="state.queryParams.CreatorName" placeholder="申请人名称" clearable @keyup.enter="handleQuery" />
  96. </el-form-item>
  97. </el-col>
  98. </transition>
  99. <transition name="el-zoom-in-top">
  100. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  101. <el-form-item label="申请时间" prop="crTime">
  102. <el-date-picker
  103. v-model="state.queryParams.crTime"
  104. type="datetimerange"
  105. unlink-panels
  106. range-separator="至"
  107. start-placeholder="开始时间"
  108. end-placeholder="结束时间"
  109. :shortcuts="shortcuts"
  110. @change="handleQuery"
  111. value-format="YYYY-MM-DD[T]HH:mm:ss"
  112. :default-time="defaultTimeStartEnd"
  113. />
  114. </el-form-item>
  115. </el-col>
  116. </transition>
  117. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  118. <el-form-item label=" ">
  119. <div class="flex-end w100">
  120. <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
  121. <el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
  122. <SvgIcon name="ele-Refresh" class="mr5" />重置
  123. </el-button>
  124. <el-button link type="primary" @click="closeSearch" :loading="state.loading">
  125. {{ searchCol ? '展开' : '收起' }}
  126. <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
  127. </el-button>
  128. </div>
  129. </el-form-item>
  130. </el-col>
  131. </el-row>
  132. </el-form>
  133. </template>
  134. <template #title="{ row }">
  135. <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
  136. </template>
  137. <!-- 表格操作 -->
  138. <template #operation="{ row }">
  139. <el-button link type="primary" @click="onDetail(row)" title="查看甄别详情"> 甄别详情 </el-button>
  140. <el-button link type="primary" @click="visitDetail(row)" title="查看回访明细">
  141. 回访明细
  142. </el-button>
  143. </template>
  144. </ProTable>
  145. <ProTable
  146. ref="proTableRef"
  147. :columns="columnsDone"
  148. :data="state.tableData"
  149. @updateTable="queryList"
  150. :loading="state.loading"
  151. :total="state.total"
  152. v-model:page-index="state.queryParams.PageIndex"
  153. v-model:page-size="state.queryParams.PageSize"
  154. @sort-change="sortChange"
  155. v-if="state.queryParams.TabStatus === 4"
  156. >
  157. <template #table-search>
  158. <el-form :model="state.queryParams" ref="ruleFormRef" @submit.native.prevent label-width="100px">
  159. <el-row :gutter="10">
  160. <!-- <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  161. <el-form-item label="甄别状态" prop="Status">
  162. <el-select v-model="state.queryParams.Status" placeholder="请选择甄别状态" @change="handleQuery" clearable>
  163. <el-option v-for="item in state.screenStatus" :value="item.key" :key="item.key" :label="item.value" />
  164. </el-select>
  165. </el-form-item>
  166. </el-col>-->
  167. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  168. <el-form-item label="工单标题" prop="Title">
  169. <el-input v-model="state.queryParams.Title" placeholder="工单标题" clearable @keyup.enter="handleQuery" />
  170. </el-form-item>
  171. </el-col>
  172. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  173. <el-form-item label="工单编码" prop="No">
  174. <el-input v-model="state.queryParams.No" placeholder="工单编码" clearable @keyup.enter="handleQuery" />
  175. </el-form-item>
  176. </el-col>
  177. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  178. <el-form-item label="省/市工单" prop="IsProvince">
  179. <el-select v-model="state.queryParams.IsProvince" clearable placeholder="请选择省/市工单" @change="handleQuery">
  180. <el-option :value="false" label="市工单" />
  181. <el-option :value="true" label="省工单" />
  182. </el-select>
  183. </el-form-item>
  184. </el-col>
  185. <transition name="el-zoom-in-top">
  186. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  187. <el-form-item label="受理类型" prop="AcceptType">
  188. <el-select v-model="state.queryParams.AcceptType" placeholder="请选择受理类型" clearable class="w100" @change="handleQuery">
  189. <el-option v-for="item in state.acceptTypeOptions" :value="item.dicDataValue" :key="item.dicDataValue" :label="item.dicDataName" />
  190. </el-select>
  191. </el-form-item>
  192. </el-col>
  193. </transition>
  194. <transition name="el-zoom-in-top">
  195. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  196. <el-form-item label="热点分类" prop="HotspotSpliceName">
  197. <el-input v-model="state.queryParams.HotspotSpliceName" placeholder="热点分类名称" clearable @keyup.enter="handleQuery" />
  198. </el-form-item>
  199. </el-col>
  200. </transition>
  201. <transition name="el-zoom-in-top">
  202. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  203. <el-form-item label="来源渠道" prop="SourceChannel">
  204. <el-select v-model="state.queryParams.SourceChannel" placeholder="请选择来源渠道" clearable class="w100" @change="handleQuery">
  205. <el-option
  206. v-for="item in state.sourceChannelOptions"
  207. :value="item.dicDataValue"
  208. :key="item.dicDataValue"
  209. :label="item.dicDataName"
  210. />
  211. </el-select>
  212. </el-form-item>
  213. </el-col>
  214. </transition>
  215. <transition name="el-zoom-in-top">
  216. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  217. <el-form-item label="被回访部门" prop="VisitOrgName">
  218. <el-input v-model="state.queryParams.VisitOrgName" placeholder="被回访部门名称" clearable @keyup.enter="handleQuery" />
  219. </el-form-item>
  220. </el-col>
  221. </transition>
  222. <transition name="el-zoom-in-top">
  223. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  224. <el-form-item label="申请部门" prop="CreatorOrgName">
  225. <el-input v-model="state.queryParams.CreatorOrgName" placeholder="申请部门名称" clearable @keyup.enter="handleQuery" />
  226. </el-form-item>
  227. </el-col>
  228. </transition>
  229. <transition name="el-zoom-in-top">
  230. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  231. <el-form-item label="申请人" prop="CreatorName">
  232. <el-input v-model="state.queryParams.CreatorName" placeholder="申请人名称" clearable @keyup.enter="handleQuery" />
  233. </el-form-item>
  234. </el-col>
  235. </transition>
  236. <transition name="el-zoom-in-top">
  237. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" v-show="!searchCol">
  238. <el-form-item label="申请时间" prop="crTime">
  239. <el-date-picker
  240. v-model="state.queryParams.crTime"
  241. type="datetimerange"
  242. unlink-panels
  243. range-separator="至"
  244. start-placeholder="开始时间"
  245. end-placeholder="结束时间"
  246. :shortcuts="shortcuts"
  247. @change="handleQuery"
  248. value-format="YYYY-MM-DD[T]HH:mm:ss"
  249. :default-time="defaultTimeStartEnd"
  250. />
  251. </el-form-item>
  252. </el-col>
  253. </transition>
  254. <el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
  255. <el-form-item label=" ">
  256. <div class="flex-end w100">
  257. <el-button type="primary" @click="handleQuery" :loading="state.loading"> <SvgIcon name="ele-Search" class="mr5" />查询 </el-button>
  258. <el-button @click="resetQuery(ruleFormRef)" class="default-button" :loading="state.loading">
  259. <SvgIcon name="ele-Refresh" class="mr5" />重置
  260. </el-button>
  261. <el-button link type="primary" @click="closeSearch" :loading="state.loading">
  262. {{ searchCol ? '展开' : '收起' }}
  263. <SvgIcon :class="{ 'is-reverse': searchCol }" name="ele-ArrowUp" class="mr5 arrow" size="18px" />
  264. </el-button>
  265. </div>
  266. </el-form-item>
  267. </el-col>
  268. </el-row>
  269. </el-form>
  270. </template>
  271. <template #title="{ row }">
  272. <order-detail :order="row.order" @updateList="queryList">{{ row.order?.title }}</order-detail>
  273. </template>
  274. <!-- 表格操作 -->
  275. <template #operation="{ row }">
  276. <el-button link type="primary" @click="onDetail(row)" title="查看甄别详情"> 甄别详情 </el-button>
  277. <el-button link type="primary" @click="visitDetail(row)" title="查看回访明细">
  278. 回访明细
  279. </el-button>
  280. </template>
  281. </ProTable>
  282. </div>
  283. <!-- 甄别详情 -->
  284. <discern-detail ref="discernDetailRef" @updateList="queryList" />
  285. <!-- 甄别修改 -->
  286. <discern-edit ref="discernEditRef" @updateList="queryList" />
  287. <!-- 回访详情 -->
  288. <visit-detail-com ref="visitDetailRef" @updateList="queryList" />
  289. </div>
  290. </template>
  291. <script setup lang="tsx" name="businessDiscernTodo">
  292. import { defineAsyncComponent, onMounted, reactive, ref } from 'vue';
  293. import { FormInstance } from 'element-plus';
  294. import { defaultTimeStartEnd, shortcuts } from '@/utils/constants';
  295. import { formatDate } from '@/utils/formatTime';
  296. import { screenBaseData, screenDetail, screenList } from '@/api/business/discern';
  297. import Other from "@/utils/other";
  298. // 引入组件
  299. const DiscernDetail = defineAsyncComponent(() => import('@/views/business/discern/components/Discern-detail.vue')); // 甄别详情
  300. const DiscernEdit = defineAsyncComponent(() => import('@/views/business/discern/components/Discern-edit.vue')); // 甄别修改
  301. const OrderDetail = defineAsyncComponent(() => import('@/components/OrderDetail/index.vue')); // 工单详情
  302. const VisitDetailCom = defineAsyncComponent(() => import('@/views/business/visit/component/Visit-detail.vue')); // 回访
  303. // 定义变量内容
  304. const ruleFormRef = ref<RefType>(); // 表单ref
  305. const proTableRef = ref<RefType>(); // 表格ref
  306. // 表格配置项
  307. const columns = ref<any[]>([]);
  308. const columnsTodo = ref<any[]>([
  309. { prop: 'statusText', label: '甄别状态', minWidth: 90 },
  310. { prop: 'screenSendBackApply', label: '重提甄别' },
  311. { prop: 'order.isProvinceText', label: '省/市工单', minWidth: 90 },
  312. { prop: 'order.no', label: '工单编码', minWidth: 140 },
  313. { prop: 'order.title', label: '工单标题', minWidth: 200 },
  314. { prop: 'visitDetail.visitOrgName', label: '被回访部门', minWidth: 140 },
  315. { prop: 'creatorName', label: '申请人', minWidth: 120 },
  316. { prop: 'creatorOrgName', label: '申请部门', minWidth: 140 },
  317. { prop: 'typeDicName', label: '申请类型', minWidth: 110 },
  318. {
  319. prop: 'creationTime',
  320. label: '申请时间',
  321. minWidth: 170,
  322. sortable: 'custom',
  323. render: (scope) => {
  324. return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
  325. },
  326. },
  327. { prop: 'timeConsuminText', label: '发起甄别耗时(工作日)', minWidth: 160 },
  328. { prop: 'order.sourceChannel', label: '来源渠道', minWidth: 100 },
  329. { prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
  330. { prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
  331. { prop: 'operation', label: '操作', fixed: 'right', width: 160, align: 'center' },
  332. ])
  333. const columnsDone = ref<any[]>([
  334. // 已办
  335. { prop: 'order.no', label: '工单编码', minWidth: 140 },
  336. { prop: 'order.title', label: '工单标题', minWidth: 200 },
  337. { prop: 'order.isProvinceText', label: '省/市工单', minWidth: 90 },
  338. { prop: 'statusText', label: '甄别状态', minWidth: 100 },
  339. {
  340. prop: 'screenDetail.newestAuditTime',
  341. label: '审批时间',
  342. sortable: 'custom',
  343. minWidth: 170,
  344. render: (scope) => {
  345. return <span>{formatDate(scope.row.screenDetail?.newestAuditTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
  346. },
  347. },
  348. {
  349. prop: 'screenDetail.newestBackTime',
  350. label: '退回时间',
  351. sortable: 'custom',
  352. minWidth: 170,
  353. render: (scope) => {
  354. return <span>{formatDate(scope.row.screenDetail?.actualHandleTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
  355. },
  356. },
  357. { prop: 'creatorName', label: '申请人', minWidth: 120 },
  358. { prop: 'creatorOrgName', label: '申请部门', minWidth: 140 },
  359. {
  360. prop: 'creationTime',
  361. label: '申请时间',
  362. sortable: 'custom',
  363. minWidth: 170,
  364. render: (scope) => {
  365. return <span>{formatDate(scope.row.creationTime, 'YYYY-mm-dd HH:MM:SS')}</span>;
  366. },
  367. },
  368. { prop: 'order.acceptType', label: '受理类型', minWidth: 100 },
  369. { prop: 'order.sourceChannel', label: '来源渠道', minWidth: 100 },
  370. { prop: 'order.hotspotName', label: '热点分类', minWidth: 150 },
  371. { prop: 'operation', label: '操作', fixed: 'right', minWidth: 160, align: 'center' },
  372. ])
  373. const state = reactive<any>({
  374. queryParams: {
  375. // 查询条件
  376. PageIndex: 1,
  377. PageSize: 20,
  378. // Status: 0, // 甄别申请状态甄别待办 1 甄别已办 1
  379. source: '1', // 甄别查询来源 1 甄别待办 2 甄别列表
  380. TabStatus:0, // 甄别申请状态
  381. No: null, // 工单编码
  382. Title: null, // 工单标题
  383. IsProvince: null, // 省/市工单
  384. IsHomePage: null, // 是否首页进入
  385. AcceptType: null, // 受理类型
  386. HotspotSpliceName: null, // 热点分类
  387. SourceChannel: null, // 来源渠道
  388. VisitOrgName: null, // 被回访部门
  389. CreatorOrgName: null, // 申请部门
  390. CreatorName: null, // 申请人
  391. crTime: [], // 申请时间
  392. CreationTimeStart: null,
  393. CreationTimeEnd: null,
  394. SortField:null, // 排序字段
  395. SortRule:null, // 排序字段
  396. },
  397. tableData: [], //表单
  398. loading: false, // 加载
  399. total: 0, // 总数
  400. screenStatus: [], // 甄别状态
  401. screenType: [], // 甄别类型
  402. acceptTypeOptions: [], // 受理类型
  403. sourceChannelOptions: [], // 来源渠道
  404. });
  405. const searchCol = ref(true); // 展开/收起
  406. // 展开/收起
  407. const closeSearch = () => {
  408. searchCol.value = !searchCol.value;
  409. };
  410. // 获取查询条件基础信息
  411. const getBaseData = async () => {
  412. const { result } = await screenBaseData();
  413. state.screenStatus = result?.screenStatus ?? [];
  414. state.screenType = result?.screenType ?? [];
  415. state.acceptTypeOptions = result?.acceptType ?? [];
  416. state.sourceChannelOptions = result?.sourceChannel ?? [];
  417. };
  418. // 手动查询,将页码设置为1
  419. const handleQuery = () => {
  420. state.queryParams.PageIndex = 1;
  421. queryList();
  422. };
  423. /** 获取列表 */
  424. const requestParams = ref({});
  425. const queryList = () => {
  426. requestParams.value = Other.deepClone(state.queryParams);
  427. requestParams.value.CreationTimeStart = state.queryParams.crTime === null ? null : state.queryParams.crTime[0]; // 受理时间
  428. requestParams.value.CreationTimeEnd = state.queryParams.crTime === null ? null : state.queryParams.crTime[1];
  429. Reflect.deleteProperty(requestParams.value, 'crTime'); // 删除无用的参数
  430. state.loading = true;
  431. screenList(requestParams.value)
  432. .then((response: any) => {
  433. state.tableData = response?.result.items ?? [];
  434. state.total = response?.result.total;
  435. state.loading = false;
  436. })
  437. .catch(() => {
  438. state.loading = false;
  439. });
  440. };
  441. /** 重置按钮操作 */
  442. const resetQuery = (formEl: FormInstance | undefined) => {
  443. if (!formEl) return;
  444. formEl.resetFields();
  445. queryList();
  446. };
  447. // 排序
  448. const sortChange = (val: any) => {
  449. state.queryParams.SortField = val.order ? val.prop : null;
  450. // 0 升序 1 降序
  451. state.queryParams.SortRule = val.order ? (val.order == 'descending' ? 1 : 0) : null;
  452. queryList();
  453. };
  454. // 查看详情
  455. const discernDetailRef = ref<RefType>(); // 甄别详情ref
  456. const discernEditRef = ref<RefType>(); // 甄别修改ref
  457. const onDetail = async (row: any) => {
  458. try {
  459. const { result } = await screenDetail(row.id);
  460. if (result.handle) {
  461. // 退回到了开始 需要重新打开编辑页面在发起流程
  462. discernEditRef.value.openDialog(row);
  463. } else {
  464. discernDetailRef.value.openDialog(row);
  465. }
  466. } catch (e) {
  467. console.log(e);
  468. }
  469. };
  470. // 查看回访明细
  471. const visitDetailRef = ref<RefType>();
  472. const visitDetail = (row:any)=>{
  473. visitDetailRef.value.openDialog(row.visit, '回访明细');
  474. }
  475. onMounted(async () => {
  476. await getBaseData();
  477. queryList();
  478. });
  479. </script>
  480. <style scoped lang="scss">
  481. .business-discern-todo-container {
  482. .arrow {
  483. transition: transform var(--el-transition-duration);
  484. cursor: pointer;
  485. }
  486. .arrow.is-reverse {
  487. transform: rotateZ(-180deg);
  488. }
  489. }
  490. </style>