|
@@ -0,0 +1,118 @@
|
|
|
+import { defineStore } from 'pinia'
|
|
|
+import utils from '@/utils/utils'
|
|
|
+
|
|
|
+import Api from '@/api/api'
|
|
|
+
|
|
|
+import router from "@/router/index";
|
|
|
+// 第一个参数是应用程序中 store 的唯一 id
|
|
|
+export const useColumnsStore = defineStore('columnStore', {
|
|
|
+ state: () => {
|
|
|
+ return {
|
|
|
+ colIndex:[],
|
|
|
+ tableConfigs:{},
|
|
|
+ checkedColumns:[],
|
|
|
+ columnsIndex:[],
|
|
|
+ selectedColumns:[],
|
|
|
+ time:null
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 开启数据缓存
|
|
|
+ persist: {
|
|
|
+ enabled: true,
|
|
|
+ strategies: [
|
|
|
+ {
|
|
|
+ storage: localStorage,
|
|
|
+ paths: []
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ getters:{},
|
|
|
+ actions:{
|
|
|
+ /**
|
|
|
+ * 获取配置数据
|
|
|
+ * @param columnsIndex 列索配置
|
|
|
+ * @param checkedColumns 选择配置
|
|
|
+ * @param tableName 表名称
|
|
|
+ * @param app 应用名称
|
|
|
+ */
|
|
|
+ configToJson ({columnsIndex,checkedColumns,tableName,app}) {
|
|
|
+ this.tableConfigs[`${app.systemappid}${tableName}`] = {
|
|
|
+ index:columnsIndex,
|
|
|
+ selected:checkedColumns
|
|
|
+ }
|
|
|
+ this.setColnums({columnsIndex,checkedColumns,tableName,app})
|
|
|
+ if (this.time !== null) {
|
|
|
+ clearTimeout(this.time)
|
|
|
+ }
|
|
|
+ this.time = setTimeout(() => {
|
|
|
+ this.saveConfig(JSON.stringify(this.tableConfigs))
|
|
|
+ }, 2000);
|
|
|
+
|
|
|
+ sessionStorage.setItem('customConfig',JSON.stringify(this.tableConfigs))
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 根据获取到的排序重新排列表格列
|
|
|
+ * @param a 目标数组
|
|
|
+ * @param b 索引数组
|
|
|
+ */
|
|
|
+ sortTableColnums (ky,columnsData) {
|
|
|
+ let customConfig = sessionStorage.getItem('customConfig')
|
|
|
+ if (customConfig && customConfig[ky]) {
|
|
|
+ customConfig = JSON.parse(customConfig)
|
|
|
+ let a = columnsData
|
|
|
+ let b = []
|
|
|
+ b = customConfig[ky].index
|
|
|
+ const sortedA = b.map((key) => a.find((item) => item.value === key));
|
|
|
+ return sortedA
|
|
|
+ } else {
|
|
|
+ return 'none'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 处理系统系统配置项
|
|
|
+ */
|
|
|
+ async saveConfig (config) {
|
|
|
+ const res = await Api.requested({
|
|
|
+ "classname": "sysmanage.develop.users.users",
|
|
|
+ "method": "updateClientConfig",
|
|
|
+ "content": {
|
|
|
+ "config": config
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取系统配置
|
|
|
+ */
|
|
|
+ async setConfig ({tableName,app,fn}) {
|
|
|
+ let parsedData = sessionStorage.getItem('customConfig')
|
|
|
+ if (parsedData) {
|
|
|
+ this.tableConfigs = JSON.parse(parsedData)
|
|
|
+ if (this.tableConfigs[`${app.systemappid}${tableName}`]) {
|
|
|
+ this.columnsIndex = this.tableConfigs[`${app.systemappid}${tableName}`].index
|
|
|
+ let a = utils.TBLayout(tableName)
|
|
|
+ let b = this.tableConfigs[`${app.systemappid}${tableName}`].selected
|
|
|
+ b = this.columnsIndex.filter(e=>b.includes(e))
|
|
|
+ this.selectedColumns = b.map((key) => a.find((obj) => obj.dataIndex === key));
|
|
|
+ } else {
|
|
|
+ this.columnsIndex = utils.TBLayout(tableName).map(e=>e.dataIndex)
|
|
|
+ fn()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.columnsIndex = utils.TBLayout(tableName).map(e=>e.dataIndex)
|
|
|
+ fn()
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 设置配置的列数据
|
|
|
+ */
|
|
|
+
|
|
|
+ setColnums (param) {
|
|
|
+ let a = utils.TBLayout(param.tableName)
|
|
|
+ let b = param.checkedColumns
|
|
|
+ b = this.columnsIndex.filter(e=>b.includes(e))
|
|
|
+ this.selectedColumns = b.map((key) => a.find((obj) => obj.dataIndex === key));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+})
|