|
@@ -0,0 +1,75 @@
|
|
|
+import { DemensionStoreInter } from './../types/store'
|
|
|
+import { DemensionPagesListInter, DemensionPagesInter } from '@/js-pages/types'
|
|
|
+import { defineStore } from 'pinia'
|
|
|
+import pagesArr from '@/js-pages'
|
|
|
+import $axios from '@/api'
|
|
|
+import { useRoute } from 'vue-router'
|
|
|
+
|
|
|
+export const useDemensionStore = defineStore({
|
|
|
+ id: 'process',
|
|
|
+ state: () => {
|
|
|
+ return <DemensionStoreInter>{
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ deleted: 0,
|
|
|
+ entityType: 2,
|
|
|
+ entityName: '',
|
|
|
+ entityId: '',
|
|
|
+ totalNum: 0,
|
|
|
+ totalPage: 0,
|
|
|
+ selectDemension: {},
|
|
|
+ dataList: [],
|
|
|
+ tabInfo: {
|
|
|
+ totalNumList: [0, 0]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ actions: {
|
|
|
+ getDemension() {
|
|
|
+ const route = useRoute()
|
|
|
+ //遍历获取所有维度列表
|
|
|
+ const allDemensionArr = [] as DemensionPagesListInter[]
|
|
|
+ const demensionArr = (arr: any[]): DemensionPagesInter[] => {
|
|
|
+ return arr.reduce((total, item: any) => item.list ? demensionArr(item.list) : allDemensionArr.push(item), [])
|
|
|
+ }
|
|
|
+ demensionArr(pagesArr)
|
|
|
+
|
|
|
+ //根据路由名称匹配对应维度
|
|
|
+ this.selectDemension = allDemensionArr.find(item => route.path === `/${item.routing}`)!
|
|
|
+
|
|
|
+ if (this.selectDemension.tabs === 'deleted') {
|
|
|
+ this.getDeletedList()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+
|
|
|
+ //有历史tab页的请求,自定义请求获取额外数据
|
|
|
+ async getDeletedList() {
|
|
|
+ const totalNum1 = await (await this.getList()).totalNum
|
|
|
+ this.deleted = 1
|
|
|
+ const totalNum2 = await (await this.getList()).totalNum
|
|
|
+ this.tabInfo.totalNumList = [totalNum1, totalNum2]
|
|
|
+ // console.log()
|
|
|
+ },
|
|
|
+ async getList(extraParams?: {}) {
|
|
|
+ //发起请求
|
|
|
+ const { pageNum, pageSize, deleted, entityType, entityName, entityId } = this
|
|
|
+ const params = {
|
|
|
+ dimensionCode: this.selectDemension?.code,
|
|
|
+ pageNum,
|
|
|
+ pageSize,
|
|
|
+ deleted,
|
|
|
+ entityType,
|
|
|
+ entityName,
|
|
|
+ entityId,
|
|
|
+ ...extraParams
|
|
|
+ }
|
|
|
+ const res = await $axios.get('lawyer-workbench/risk/dimension/page', { params }) as { totalNum: number, totalPage: number, dataList: [] }
|
|
|
+ this.totalNum = res.totalNum
|
|
|
+ this.totalPage = res.totalPage
|
|
|
+ this.dataList.push(...res.dataList)
|
|
|
+ return res
|
|
|
+ }
|
|
|
+ }
|
|
|
+})
|