123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- import { MenuListInter } from './../js-pages/types'
- import { DemensionStoreInter } from '../types/store'
- import { defineStore } from 'pinia'
- import $axios from '@/api'
- import { $getDemension } from '@/utils/utils'
- export const useDemensionListStore = defineStore({
- id: 'demensionList',
- state: () => {
- return <DemensionStoreInter>{
- pageNum: 1,
- pageSize: 10,
- deleted: 0,
- entityType: 2,
- entityName: '',
- entityId: '',
- totalNum: 0,
- totalPage: 0,
- selectDemension: {},
- dataList: [],
- dataExtra: [],
- tabInfo: {
- totalNumList: [0, 0]
- }
- }
- },
- actions: {
- //初始化列表状态
- clearState() {
- this.pageNum = 1
- this.pageSize = 10
- this.totalNum = 0
- this.totalPage = 0
- this.dataList = []
- this.deleted = 0
- },
- getDemension() {
- //先清除历史的状态
- this.clearState()
- const demensionInfo = $getDemension()
- //首页返回所有维度列表,列表页正常返回
- if (demensionInfo.selectDemension) {
- this.selectDemension = demensionInfo.selectDemension
- //方便本地调试的企业id
- this.entityId = import.meta.env.MODE === 'development' && demensionInfo.selectDemension.companyId ? demensionInfo.selectDemension.companyId : this.entityId
- if (this.selectDemension.tabs?.key === 'dimensionCode' && this.selectDemension.tabs.list) {
- this.selectDemension.viewList = this.selectDemension.tabs.list[0].viewList
- this.selectDemension.code = this.selectDemension.tabs.list[0].value
- if (this.selectDemension.tabs.list[0].detailList) {
- this.selectDemension.detailList = this.selectDemension.tabs.list[0].detailList
- }
- }
- } else {
- return demensionInfo.allDemensionArr
- }
- //有tab的列表
- if (demensionInfo.selectDemension.tabs?.key === 'deleted') {
- this.getDeletedList()
- return
- }
- if (!demensionInfo.selectDemension.listCustomRender) {
- this.getList()
- }
- },
- //有历史tab页的请求,自定义请求获取额外数据
- async getDeletedList() {
- this.deleted = 1
- const totalNum1 = await (await this.getList()).totalNum
- this.dataList = []
- this.deleted = 0
- const totalNum2 = await (await this.getList()).totalNum
- this.tabInfo.totalNumList = [totalNum2, totalNum1]
- // console.log()
- },
- //有menu页的请求,修改menu动态数据
- getMenuList(dataExtra: { field: string, keyValueBOS: any[] }[]) {
- const newArr: MenuListInter[] = []
- //结合后端返回的数组
- if (this.selectDemension.menuList) {
- this.selectDemension.menuList.map(item => {
- item.value = ''
- if (!item.paramsId) {
- newArr.push(item)
- } else {
- // console.log(dataExtra, 8888)
- const listArr: { text: string; value: string }[] = []
- //初始化数据
- item.list.length = 1
- listArr.push(...item.list)
- //如果menu是数组
- if (Array.isArray(dataExtra)) {
- //添加接口返回的数据
- dataExtra.map(dataItem => {
- if (item.paramsId === dataItem.field) {
- dataItem.keyValueBOS.map(item => {
- listArr.push({
- text: item.key,
- value: item.key
- })
- })
- }
- })
- //如果menu是对象
- } else {
- const dataExtraArr = Object.keys(dataExtra)
- // console.log(dataExtraArr)
- dataExtraArr.map(dataExtraItem => {
- // console.log(dataExtraItem)
- if (dataExtraItem === item.paramsId) {
- const extraList = dataExtra[dataExtraItem] as []
- console.log(dataExtraItem)
- console.log(extraList)
- if (extraList.length) {
- extraList.map((extraListItem: { key: string, desc?: string }) => {
- listArr.push({
- text: extraListItem.desc ? extraListItem.desc : extraListItem.key,
- value: extraListItem.key
- })
- })
- }
- }
- //
- })
- }
- console.log(item)
- newArr.push(
- {
- ...item,
- list: listArr
- }
- )
- }
- })
- }
- this.selectDemension.menuList = newArr
- },
- async getList(extraParams = {}) {
- //发起请求
- const { pageNum, pageSize, deleted, entityType, entityName, entityId } = this
- const params = {
- dimensionCode: this.selectDemension?.code,
- pageNum,
- pageSize,
- deleted,
- entityType,
- entityName,
- entityId,
- companyName: this.selectDemension.apiUrl ? entityName : undefined, //老数据维度的参数
- infoCode: this.selectDemension.apiUrl ? this.selectDemension?.code : undefined, //老数据维度的参数
- ...extraParams
- }
- const res = await $axios.get(`${this.selectDemension.apiUrl || 'lawyer-workbench/risk/dimension/page'}`, { params }) as { totalNum: number, totalPage: number, dataList: [], dataExtra?: { field: string, keyValueBOS: any[] }[] }
- this.totalNum = res.totalNum
- this.totalPage = res.totalPage
- let dataList = res.dataList
- if (this.selectDemension.noDataList) {
- dataList = res as unknown as []
- }
- if (this.selectDemension.listFliter) {
- dataList = this.selectDemension.listFliter(dataList)
- }
- this.dataList.push(...dataList)
- this.dataExtra = res.dataExtra
- if (!Object.keys(extraParams).length) {
- this.getMenuList(res.dataExtra!)
- }
- return res
- }
- }
- })
|