@ecan-bi/datav 1.0.88 → 1.0.89
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es.js +115 -38
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +114 -37
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +12 -12
- package/es/container/modal/Modal.js +1 -4
- package/es/container/modal/Modal.js.map +1 -1
- package/es/container/modal/index.js.map +1 -1
- package/es/container/modal/props.js +1 -1
- package/es/container/modal/props.js.map +1 -1
- package/es/graph/bar/Bar.js +33 -2
- package/es/graph/bar/Bar.js.map +1 -1
- package/es/graph/bar/index.js.map +1 -1
- package/es/graph/bar/props.js +1 -2
- package/es/graph/bar/props.js.map +1 -1
- package/es/graph/combo-graph/ComboGraph.js +44 -12
- package/es/graph/combo-graph/ComboGraph.js.map +1 -1
- package/es/graph/combo-graph/props.js +1 -1
- package/es/graph/combo-graph/props.js.map +1 -1
- package/es/graph/line/Line.js +37 -3
- package/es/graph/line/Line.js.map +1 -1
- package/es/graph/line/props.js +7 -6
- package/es/graph/line/props.js.map +1 -1
- package/es/graph/pie/Pie.js +22 -1
- package/es/graph/pie/Pie.js.map +1 -1
- package/es/graph/pie/props.js +1 -1
- package/es/graph/pie/props.js.map +1 -1
- package/es/graph/scatter/Scatter.js +10 -1
- package/es/graph/scatter/Scatter.js.map +1 -1
- package/es/graph/scatter/props.js +1 -1
- package/es/graph/scatter/props.js.map +1 -1
- package/es/hooks/useRequestData.js +1 -1
- package/es/hooks/useRequestData.js.map +1 -1
- package/es/hooks/useValueFormatter.js +2 -1
- package/es/hooks/useValueFormatter.js.map +1 -1
- package/es/hooks/useVariablesInText.js +33 -11
- package/es/hooks/useVariablesInText.js.map +1 -1
- package/es/setting/provider-config/ProviderConfig.js +3 -1
- package/es/setting/provider-config/ProviderConfig.js.map +1 -1
- package/es/table/table/Table.js +87 -28
- package/es/table/table/Table.js.map +1 -1
- package/es/table/table/index.js.map +1 -1
- package/es/table/table/props.js +1 -0
- package/es/table/table/props.js.map +1 -1
- package/es/text/text/Text.js +21 -1
- package/es/text/text/Text.js.map +1 -1
- package/es/text/text/props.js +4 -1
- package/es/text/text/props.js.map +1 -1
- package/lib/container/modal/Modal.js +1 -4
- package/lib/container/modal/Modal.js.map +1 -1
- package/lib/container/modal/index.js.map +1 -1
- package/lib/container/modal/props.js +1 -1
- package/lib/container/modal/props.js.map +1 -1
- package/lib/graph/bar/Bar.js +33 -2
- package/lib/graph/bar/Bar.js.map +1 -1
- package/lib/graph/bar/index.js.map +1 -1
- package/lib/graph/bar/props.js +1 -2
- package/lib/graph/bar/props.js.map +1 -1
- package/lib/graph/combo-graph/ComboGraph.js +44 -12
- package/lib/graph/combo-graph/ComboGraph.js.map +1 -1
- package/lib/graph/combo-graph/props.js +1 -1
- package/lib/graph/combo-graph/props.js.map +1 -1
- package/lib/graph/line/Line.js +37 -3
- package/lib/graph/line/Line.js.map +1 -1
- package/lib/graph/line/props.js +7 -6
- package/lib/graph/line/props.js.map +1 -1
- package/lib/graph/pie/Pie.js +22 -1
- package/lib/graph/pie/Pie.js.map +1 -1
- package/lib/graph/pie/props.js +1 -1
- package/lib/graph/pie/props.js.map +1 -1
- package/lib/graph/scatter/Scatter.js +10 -1
- package/lib/graph/scatter/Scatter.js.map +1 -1
- package/lib/graph/scatter/props.js +1 -1
- package/lib/graph/scatter/props.js.map +1 -1
- package/lib/hooks/useRequestData.js +1 -1
- package/lib/hooks/useRequestData.js.map +1 -1
- package/lib/hooks/useValueFormatter.js +2 -1
- package/lib/hooks/useValueFormatter.js.map +1 -1
- package/lib/hooks/useVariablesInText.js +33 -11
- package/lib/hooks/useVariablesInText.js.map +1 -1
- package/lib/setting/provider-config/ProviderConfig.js +3 -1
- package/lib/setting/provider-config/ProviderConfig.js.map +1 -1
- package/lib/style.css +6503 -6503
- package/lib/table/table/Table.js +87 -28
- package/lib/table/table/Table.js.map +1 -1
- package/lib/table/table/index.js.map +1 -1
- package/lib/table/table/props.js +1 -0
- package/lib/table/table/props.js.map +1 -1
- package/lib/text/text/Text.js +21 -1
- package/lib/text/text/Text.js.map +1 -1
- package/lib/text/text/props.js +4 -1
- package/lib/text/text/props.js.map +1 -1
- package/package.json +1 -1
- package/types/container/modal/index.d.ts +1 -1
- package/types/table/table/Table.vue.d.ts +44 -5
- package/types/table/table/index.d.ts +45 -6
- package/types/table/table/props.d.ts +21 -0
- package/types/text/text/Text.vue.d.ts +66 -0
- package/types/text/text/index.d.ts +66 -0
- package/types/text/text/props.d.ts +36 -0
- package/types/hooks/usePickEchartsData.d.ts +0 -2
- package/types/hooks/useTooltipFormatter.d.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRequestData.js","sources":["../../src/hooks/useRequestData.ts"],"sourcesContent":["import { inject, onUnmounted, unref } from 'vue'\nimport axios from 'axios'\nimport { GLOBAL_MODEL, GLOBAL_CONFIG } from '@/utils/constant'\nimport { lowerCaseIncludes } from '@/utils/util'\nimport useVariablesInText from './useVariablesInText'\n// import dayjs from 'dayjs'\n\nexport const useRequestData = (props: { [key:string]: any }, callBack: Function = () => {}) => {\n const {\n requestUrl: url,\n requestMethod: method,\n requestHeaders: headers,\n requestParams,\n requestInterval,\n isOpenRequestTimer\n } = props\n const { contextRequestUrl, pageMode, touchEventId } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: '',\n pageMode: 'normal',\n touchEventId: ''\n })\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const requestData = async (params: { [key: string]: any } = {}) => {\n if (!url || !method || !headers || unref(pageMode) === 'design') return\n let _params = {} as { [key: string]: any }\n requestParams.forEach((param) => {\n const { key, value } = param\n if ((typeof value === 'object' && value.id)) {\n // 传入数据可能是这样\n // {\n // key: 'record',\n // value: {\n // id: 'T7hid3K4kg7UR9Q-44u1-',\n // prop: 'record',\n // propKey: 'id'\n // }\n // }\n // 获取到组件数据\n let record = {} as { [key:string]: any }\n const { id, prop, propKey } = value\n if (id === 'THIS') {\n // THIS 使用当前触发事件组件的ID\n record = getGlobalModel(unref(touchEventId)) || {}\n } else {\n record = getGlobalModel(id) || {}\n }\n const p = unref(record[prop])\n // 如果传入响应式数据优取响应式\n let v = ''\n // 需要格式日期的组件\n const isNeedFormat = ['date', 'range'].some((item) => lowerCaseIncludes(record?.type, item))\n // 格式化时间\n if (isNeedFormat) {\n // 此时 v 是 dayjs 对象\n // 此时 propKey 是格式化值\n v = unref(p)?.format(propKey?.trim() || record.format) || ''\n } else {\n // 因为 model[prop] 可能为 ref\n // 判断他是不是对象\n if (Object.prototype.toString.call(p) === '[object Object]') {\n v = p[propKey || 'value']\n } else {\n v = p\n }\n // v = p != null && typeof p === 'object' ? p[propKey || 'value'] : p\n }\n _params[key] = v\n } else if (typeof value === 'string') {\n _params[key] = useVariablesInText(value)\n }\n })\n // @ts-ignore\n _params = { ...window.requestParams, ..._params, ...params }\n let urlParams = ''\n const keys = Object.keys(_params)\n const last = keys.length - 1\n const keysLen = keys.length\n keys.forEach((key, index) => {\n if (index === 0) {\n if (keysLen !== 1) {\n urlParams += `?${key}=${_params[key]}&`\n } else {\n urlParams += `?${key}=${_params[key]}`\n }\n } else if (index === last) {\n urlParams += `${key}=${_params[key]}`\n } else {\n urlParams += `${key}=${_params[key]}&`\n }\n })\n try {\n const isSetUrlParams = ['get', 'head'].includes(method)\n const res = await axios({\n baseURL: unref(contextRequestUrl),\n url: isSetUrlParams ? url + urlParams : url,\n method,\n headers,\n data: isSetUrlParams ? {} : _params\n })\n callBack(res)\n return res\n } catch (e) {\n console.error(e)\n }\n }\n\n const requestDataTimer = isOpenRequestTimer && setInterval(requestData, requestInterval * 1000)\n\n onUnmounted(() => {\n clearInterval(requestDataTimer)\n })\n\n return requestData\n}\n\nexport default useRequestData\n"],"names":[],"mappings":";;;;;AAOO,MAAM,iBAAiB,CAAC,OAA8B,WAAqB,MAAM;AAAC,MAAM;AACvF,QAAA;AAAA,IACJ,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,EACE,IAAA;AACJ,QAAM,EAAE,mBAAmB,UAAU,aAAa,IAAI,OAAO,eAAe;AAAA,IAC1E,mBAAmB;AAAA,IACnB,UAAU;AAAA,IACV,cAAc;AAAA,EAAA,CACf;AACD,QAAM,EAAE,eAAA,IAAmB,OAAO,cAAc;AAAA,IAG9C,gBAAgB,CAAC,QAAgB;AAAA,EAAA,CAClC;AACD,QAAM,cAAc,OAAO,SAAiC,OAAO;AAC7D,QAAA,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,MAAM,QAAQ,MAAM;AAAU;AACjE,QAAI,UAAU,CAAA;AACA,kBAAA,QAAQ,CAAC,UAAU;;AACzB,YAAA,EAAE,KAAK,MAAU,IAAA;AACvB,UAAK,OAAO,UAAU,YAAY,MAAM,IAAK;AAW3C,YAAI,SAAS,CAAA;AACb,cAAM,EAAE,IAAI,MAAM,QAAA,IAAY;AAC9B,YAAI,OAAO,QAAQ;AAEjB,mBAAS,eAAe,MAAM,YAAY,CAAC,KAAK,CAAA;AAAA,QAAC,OAC5C;AACI,mBAAA,eAAe,EAAE,KAAK;QACjC;AACM,cAAA,IAAI,MAAM,OAAO,KAAK;AAE5B,YAAI,IAAI;AAER,cAAM,eAAe,CAAC,QAAQ,OAAO,EAAE,KAAK,CAAC,SAAS,kBAAkB,iCAAQ,MAAM,IAAI,CAAC;AAE3F,YAAI,cAAc;AAGZ,gBAAA,WAAM,CAAC,MAAP,mBAAU,QAAO,mCAAS,WAAU,OAAO,YAAW;AAAA,QAAA,OACrD;AAGL,cAAI,OAAO,UAAU,SAAS,KAAK,CAAC,MAAM,mBAAmB;AAC3D,gBAAI,EAAE,WAAW;AAAA,UAAA,OACZ;AACD,gBAAA;AAAA,UACN;AAAA,QAEF;AACA,gBAAQ,OAAO;AAAA,MAAA,WACN,OAAO,UAAU,UAAU;AAC5B,gBAAA,OAAO,mBAAmB,KAAK;AAAA,MACzC;AAAA,IAAA,CACD;
|
|
1
|
+
{"version":3,"file":"useRequestData.js","sources":["../../src/hooks/useRequestData.ts"],"sourcesContent":["import { inject, onUnmounted, unref } from 'vue'\nimport axios from 'axios'\nimport { GLOBAL_MODEL, GLOBAL_CONFIG } from '@/utils/constant'\nimport { lowerCaseIncludes } from '@/utils/util'\nimport useVariablesInText from './useVariablesInText'\n// import dayjs from 'dayjs'\n\nexport const useRequestData = (props: { [key:string]: any }, callBack: Function = () => {}) => {\n const {\n requestUrl: url,\n requestMethod: method,\n requestHeaders: headers,\n requestParams,\n requestInterval,\n isOpenRequestTimer\n } = props\n const { contextRequestUrl, pageMode, touchEventId } = inject(GLOBAL_CONFIG, {\n contextRequestUrl: '',\n pageMode: 'normal',\n touchEventId: ''\n })\n const { getGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0\n })\n const requestData = async (params: { [key: string]: any } = {}) => {\n if (!url || !method || !headers || unref(pageMode) === 'design') return\n let _params = {} as { [key: string]: any }\n requestParams.forEach((param) => {\n const { key, value } = param\n if ((typeof value === 'object' && value.id)) {\n // 传入数据可能是这样\n // {\n // key: 'record',\n // value: {\n // id: 'T7hid3K4kg7UR9Q-44u1-',\n // prop: 'record',\n // propKey: 'id'\n // }\n // }\n // 获取到组件数据\n let record = {} as { [key:string]: any }\n const { id, prop, propKey } = value\n if (id === 'THIS') {\n // THIS 使用当前触发事件组件的ID\n record = getGlobalModel(unref(touchEventId)) || {}\n } else {\n record = getGlobalModel(id) || {}\n }\n const p = unref(record[prop])\n // 如果传入响应式数据优取响应式\n let v = ''\n // 需要格式日期的组件\n const isNeedFormat = ['date', 'range'].some((item) => lowerCaseIncludes(record?.type, item))\n // 格式化时间\n if (isNeedFormat) {\n // 此时 v 是 dayjs 对象\n // 此时 propKey 是格式化值\n v = unref(p)?.format(propKey?.trim() || record.format) || ''\n } else {\n // 因为 model[prop] 可能为 ref\n // 判断他是不是对象\n if (Object.prototype.toString.call(p) === '[object Object]') {\n v = p[propKey || 'value']\n } else {\n v = p\n }\n // v = p != null && typeof p === 'object' ? p[propKey || 'value'] : p\n }\n _params[key] = v\n } else if (typeof value === 'string') {\n _params[key] = useVariablesInText(value)\n }\n })\n // @ts-ignore\n _params = { ...window.config.requestParams, ..._params, ...params }\n let urlParams = ''\n const keys = Object.keys(_params)\n const last = keys.length - 1\n const keysLen = keys.length\n keys.forEach((key, index) => {\n if (index === 0) {\n if (keysLen !== 1) {\n urlParams += `?${key}=${_params[key]}&`\n } else {\n urlParams += `?${key}=${_params[key]}`\n }\n } else if (index === last) {\n urlParams += `${key}=${_params[key]}`\n } else {\n urlParams += `${key}=${_params[key]}&`\n }\n })\n try {\n const isSetUrlParams = ['get', 'head'].includes(method)\n const res = await axios({\n baseURL: unref(contextRequestUrl),\n url: isSetUrlParams ? url + urlParams : url,\n method,\n headers,\n data: isSetUrlParams ? {} : _params\n })\n callBack(res)\n return res\n } catch (e) {\n console.error(e)\n }\n }\n\n const requestDataTimer = isOpenRequestTimer && setInterval(requestData, requestInterval * 1000)\n\n onUnmounted(() => {\n clearInterval(requestDataTimer)\n })\n\n return requestData\n}\n\nexport default useRequestData\n"],"names":[],"mappings":";;;;;AAOO,MAAM,iBAAiB,CAAC,OAA8B,WAAqB,MAAM;AAAC,MAAM;AACvF,QAAA;AAAA,IACJ,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,EACE,IAAA;AACJ,QAAM,EAAE,mBAAmB,UAAU,aAAa,IAAI,OAAO,eAAe;AAAA,IAC1E,mBAAmB;AAAA,IACnB,UAAU;AAAA,IACV,cAAc;AAAA,EAAA,CACf;AACD,QAAM,EAAE,eAAA,IAAmB,OAAO,cAAc;AAAA,IAG9C,gBAAgB,CAAC,QAAgB;AAAA,EAAA,CAClC;AACD,QAAM,cAAc,OAAO,SAAiC,OAAO;AAC7D,QAAA,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,MAAM,QAAQ,MAAM;AAAU;AACjE,QAAI,UAAU,CAAA;AACA,kBAAA,QAAQ,CAAC,UAAU;;AACzB,YAAA,EAAE,KAAK,MAAU,IAAA;AACvB,UAAK,OAAO,UAAU,YAAY,MAAM,IAAK;AAW3C,YAAI,SAAS,CAAA;AACb,cAAM,EAAE,IAAI,MAAM,QAAA,IAAY;AAC9B,YAAI,OAAO,QAAQ;AAEjB,mBAAS,eAAe,MAAM,YAAY,CAAC,KAAK,CAAA;AAAA,QAAC,OAC5C;AACI,mBAAA,eAAe,EAAE,KAAK;QACjC;AACM,cAAA,IAAI,MAAM,OAAO,KAAK;AAE5B,YAAI,IAAI;AAER,cAAM,eAAe,CAAC,QAAQ,OAAO,EAAE,KAAK,CAAC,SAAS,kBAAkB,iCAAQ,MAAM,IAAI,CAAC;AAE3F,YAAI,cAAc;AAGZ,gBAAA,WAAM,CAAC,MAAP,mBAAU,QAAO,mCAAS,WAAU,OAAO,YAAW;AAAA,QAAA,OACrD;AAGL,cAAI,OAAO,UAAU,SAAS,KAAK,CAAC,MAAM,mBAAmB;AAC3D,gBAAI,EAAE,WAAW;AAAA,UAAA,OACZ;AACD,gBAAA;AAAA,UACN;AAAA,QAEF;AACA,gBAAQ,OAAO;AAAA,MAAA,WACN,OAAO,UAAU,UAAU;AAC5B,gBAAA,OAAO,mBAAmB,KAAK;AAAA,MACzC;AAAA,IAAA,CACD;AAES,cAAA,EAAE,GAAG,OAAO,OAAO,eAAe,GAAG,SAAS,GAAG;AAC3D,QAAI,YAAY;AACV,UAAA,OAAO,OAAO,KAAK,OAAO;AAC1B,UAAA,OAAO,KAAK,SAAS;AAC3B,UAAM,UAAU,KAAK;AAChB,SAAA,QAAQ,CAAC,KAAK,UAAU;AAC3B,UAAI,UAAU,GAAG;AACf,YAAI,YAAY,GAAG;AACJ,uBAAA,IAAI,OAAO,QAAQ;AAAA,QAAA,OAC3B;AACQ,uBAAA,IAAI,OAAO,QAAQ;AAAA,QAClC;AAAA,MAAA,WACS,UAAU,MAAM;AACZ,qBAAA,GAAG,OAAO,QAAQ;AAAA,MAAA,OAC1B;AACQ,qBAAA,GAAG,OAAO,QAAQ;AAAA,MACjC;AAAA,IAAA,CACD;AACG,QAAA;AACF,YAAM,iBAAiB,CAAC,OAAO,MAAM,EAAE,SAAS,MAAM;AAChD,YAAA,MAAM,MAAM,MAAM;AAAA,QACtB,SAAS,MAAM,iBAAiB;AAAA,QAChC,KAAK,iBAAiB,MAAM,YAAY;AAAA,QACxC;AAAA,QACA;AAAA,QACA,MAAM,iBAAiB,CAAA,IAAK;AAAA,MAAA,CAC7B;AACD,eAAS,GAAG;AACL,aAAA;AAAA,aACA;AACP,cAAQ,MAAM,CAAC;AAAA,IACjB;AAAA,EAAA;AAGF,QAAM,mBAAmB,sBAAsB,YAAY,aAAa,kBAAkB,GAAI;AAE9F,cAAY,MAAM;AAChB,kBAAc,gBAAgB;AAAA,EAAA,CAC/B;AAEM,SAAA;AACT;"}
|
|
@@ -5,7 +5,8 @@ const useValueFormatter = (formatter, value) => {
|
|
|
5
5
|
if (variables == null || variables.length === 0) {
|
|
6
6
|
return value;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
const len = variables.length;
|
|
9
|
+
for (let i = 0; i < len; i++) {
|
|
9
10
|
const variable = variables[i];
|
|
10
11
|
if (variable == null || variable === "")
|
|
11
12
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useValueFormatter.js","sources":["../../src/hooks/useValueFormatter.ts"],"sourcesContent":["export const useValueFormatter = (formatter: string, value:string) => {\n if (formatter == null) return value\n const variables = (formatter).match(/\\{.*\\}/g)\n if (variables == null || variables.length === 0) {\n return value\n }\n for (let i = 0; i <
|
|
1
|
+
{"version":3,"file":"useValueFormatter.js","sources":["../../src/hooks/useValueFormatter.ts"],"sourcesContent":["export const useValueFormatter = (formatter: string, value:string) => {\n if (formatter == null) return value\n const variables = (formatter).match(/\\{.*\\}/g)\n if (variables == null || variables.length === 0) {\n return value\n }\n const len = variables.length\n for (let i = 0; i < len; i++) {\n const variable = variables[i]\n if (variable == null || variable === '') break\n let statement = variable.slice(1, -1)\n statement = statement?.replace(/value/g, value)\n if ((/[+\\-*/%]+/g).test(value)) {\n formatter = formatter.replace(variable, statement)\n } else {\n try {\n // 匹配加减乘除\n let result = statement\n if ((/[+\\-*/%]+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n result = eval2(statement)\n }\n formatter = formatter.replace(variable, result)\n } catch (e) {\n console.error(e)\n return value\n }\n }\n }\n return formatter\n}\n\nexport default useValueFormatter\n"],"names":[],"mappings":"AAAa,MAAA,oBAAoB,CAAC,WAAmB,UAAiB;AACpE,MAAI,aAAa;AAAa,WAAA;AACxB,QAAA,YAAa,UAAW,MAAM,SAAS;AAC7C,MAAI,aAAa,QAAQ,UAAU,WAAW,GAAG;AACxC,WAAA;AAAA,EACT;AACA,QAAM,MAAM,UAAU;AACtB,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,UAAM,WAAW,UAAU;AACvB,QAAA,YAAY,QAAQ,aAAa;AAAI;AACzC,QAAI,YAAY,SAAS,MAAM,GAAG,EAAE;AACxB,gBAAA,uCAAW,QAAQ,UAAU;AACpC,QAAA,aAAc,KAAK,KAAK,GAAG;AAClB,kBAAA,UAAU,QAAQ,UAAU,SAAS;AAAA,IAAA,OAC5C;AACD,UAAA;AAEF,YAAI,SAAS;AACR,YAAA,aAAc,KAAK,SAAS,GAAG;AAElC,gBAAM,QAAQ;AACd,mBAAS,MAAM,SAAS;AAAA,QAC1B;AACY,oBAAA,UAAU,QAAQ,UAAU,MAAM;AAAA,eACvC;AACP,gBAAQ,MAAM,CAAC;AACR,eAAA;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACO,SAAA;AACT;"}
|
|
@@ -1,20 +1,42 @@
|
|
|
1
|
-
const useVariablesInText = (
|
|
1
|
+
const useVariablesInText = (formatter = "", data = {}, { useNewline = false, useSpace = false } = {}) => {
|
|
2
2
|
const config = window.config || {};
|
|
3
3
|
data = { ...config, ...data };
|
|
4
|
-
const variables =
|
|
5
|
-
if (variables == null || variables.length === 0)
|
|
6
|
-
return
|
|
4
|
+
const variables = formatter.match(/\{(.+?)\}/g);
|
|
5
|
+
if (variables == null || variables.length === 0) {
|
|
6
|
+
return formatter;
|
|
7
|
+
}
|
|
7
8
|
for (let i = 0; i < variables.length; i++) {
|
|
8
9
|
const variable = variables[i];
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
let statement = variable.slice(1, -1);
|
|
11
|
+
const reg = /[\u4e00-\u9fa5_a-zA-Z_]+[0-9]*/g;
|
|
12
|
+
const textVariables = statement.match(reg);
|
|
13
|
+
for (let j = 0; j < textVariables.length; j++) {
|
|
14
|
+
const textVariable = textVariables[j];
|
|
15
|
+
const usedVariable = data[textVariable];
|
|
16
|
+
if (usedVariable != null) {
|
|
17
|
+
statement = statement.replace(textVariable, usedVariable);
|
|
18
|
+
} else {
|
|
19
|
+
statement = statement.replace(textVariable, "");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
if (/[0-9]+(.*)[|+|-|*|/](.*)[0-9]+/g.test(statement)) {
|
|
24
|
+
const eval2 = eval;
|
|
25
|
+
statement = eval2(statement);
|
|
26
|
+
}
|
|
27
|
+
} catch (e) {
|
|
28
|
+
console.error(e);
|
|
15
29
|
}
|
|
30
|
+
formatter = formatter.replace(variable, statement);
|
|
31
|
+
}
|
|
32
|
+
if (useNewline) {
|
|
33
|
+
formatter = formatter == null ? void 0 : formatter.replace(/\n|\\n/g, "<br/>");
|
|
34
|
+
}
|
|
35
|
+
if (useSpace) {
|
|
36
|
+
formatter = formatter == null ? void 0 : formatter.replace(/\s{2,}?/g, " ");
|
|
16
37
|
}
|
|
17
|
-
|
|
38
|
+
console.log("formatter", formatter);
|
|
39
|
+
return formatter;
|
|
18
40
|
};
|
|
19
41
|
export {
|
|
20
42
|
useVariablesInText as default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVariablesInText.js","sources":["../../src/hooks/useVariablesInText.ts"],"sourcesContent":["export const useVariablesInText = (
|
|
1
|
+
{"version":3,"file":"useVariablesInText.js","sources":["../../src/hooks/useVariablesInText.ts"],"sourcesContent":["export const useVariablesInText = (\n formatter: string = '',\n data: { [key: string]:any } = {},\n { useNewline = false, useSpace = false } = {}\n) => {\n // 引入全局变量\n // @ts-ignore\n const config = window.config || {}\n data = { ...config, ...data }\n const variables = (formatter).match(/\\{(.+?)\\}/g)\n if (variables == null || variables.length === 0) {\n return formatter\n }\n for (let i = 0; i < variables.length; i++) {\n const variable = variables[i]\n let statement = variable.slice(1, -1)\n const reg = /[\\u4e00-\\u9fa5_a-zA-Z_]+[0-9]*/g\n const textVariables = statement.match(reg)\n for (let j = 0; j < textVariables.length; j++) {\n const textVariable = textVariables[j]\n const usedVariable = data[textVariable]\n if (usedVariable != null) {\n // 使用的变量\n statement = statement.replace(textVariable, usedVariable)\n } else {\n // 过滤未使用的变量\n statement = statement.replace(textVariable, '')\n }\n }\n try {\n // 匹配加减乘除\n if ((/[0-9]+(.*)[|+|-|*|/](.*)[0-9]+/g).test(statement)) {\n // eslint-disable-next-line no-eval\n const eval2 = eval\n statement = eval2(statement)\n }\n } catch (e) {\n console.error(e)\n }\n formatter = formatter.replace(variable, statement)\n }\n // 替换换行\n if (useNewline) {\n formatter = formatter?.replace(/\\n|\\\\n/g, '<br/>')\n }\n // 替换空格\n if (useSpace) {\n formatter = formatter?.replace(/\\s{2,}?/g, ' ')\n }\n console.log('formatter', formatter)\n return formatter\n}\n\nexport default useVariablesInText\n"],"names":[],"mappings":"AAAO,MAAM,qBAAqB,CAChC,YAAoB,IACpB,OAA8B,CAAC,GAC/B,EAAE,aAAa,OAAO,WAAW,MAAM,IAAI,CAAA,MACxC;AAGG,QAAA,SAAS,OAAO,UAAU;AAChC,SAAO,EAAE,GAAG,QAAQ,GAAG,KAAK;AACtB,QAAA,YAAa,UAAW,MAAM,YAAY;AAChD,MAAI,aAAa,QAAQ,UAAU,WAAW,GAAG;AACxC,WAAA;AAAA,EACT;AACA,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAM,WAAW,UAAU;AAC3B,QAAI,YAAY,SAAS,MAAM,GAAG,EAAE;AACpC,UAAM,MAAM;AACN,UAAA,gBAAgB,UAAU,MAAM,GAAG;AACzC,aAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,YAAM,eAAe,cAAc;AACnC,YAAM,eAAe,KAAK;AAC1B,UAAI,gBAAgB,MAAM;AAEZ,oBAAA,UAAU,QAAQ,cAAc,YAAY;AAAA,MAAA,OACnD;AAEO,oBAAA,UAAU,QAAQ,cAAc,EAAE;AAAA,MAChD;AAAA,IACF;AACI,QAAA;AAEG,UAAA,kCAAmC,KAAK,SAAS,GAAG;AAEvD,cAAM,QAAQ;AACd,oBAAY,MAAM,SAAS;AAAA,MAC7B;AAAA,aACO;AACP,cAAQ,MAAM,CAAC;AAAA,IACjB;AACY,gBAAA,UAAU,QAAQ,UAAU,SAAS;AAAA,EACnD;AAEA,MAAI,YAAY;AACF,gBAAA,uCAAW,QAAQ,WAAW;AAAA,EAC5C;AAEA,MAAI,UAAU;AACA,gBAAA,uCAAW,QAAQ,YAAY;AAAA,EAC7C;AACQ,UAAA,IAAI,aAAa,SAAS;AAC3B,SAAA;AACT;"}
|
|
@@ -27,7 +27,9 @@ const _sfc_main = defineComponent({
|
|
|
27
27
|
onMounted(() => {
|
|
28
28
|
setTheme();
|
|
29
29
|
});
|
|
30
|
-
const contextRequestUrl = computed(() =>
|
|
30
|
+
const contextRequestUrl = computed(() => {
|
|
31
|
+
return useVariablesInText(props.contextRequestUrl);
|
|
32
|
+
});
|
|
31
33
|
const pageMode = computed(() => props.pageMode);
|
|
32
34
|
const theme = computed(() => props.theme);
|
|
33
35
|
const touchEventId = ref("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderConfig.js","sources":["../../../src/setting/provider-config/ProviderConfig.vue"],"sourcesContent":["<template>\n <!-- 请勿去除属性id -->\n <div id=\"ProviderConfig\" ref=\"providerConfig\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, onUnmounted, ref, onMounted, watch, computed, unref } from 'vue'\nimport mitt from 'mitt'\nimport { EVENT_BUS, GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL, INDICATOR_URL, GLOBAL_TOKEN, REFRESH_PAGE } from '@/utils/constant'\nimport { providerConfigComponentProps } from './props'\nimport { useVariablesInText, useHrefParamsToGlobalVariables } from '@/hooks'\nimport axios from 'axios'\n\nexport default defineComponent({\n name: 'EcanProviderConfig',\n inheritAttrs: false,\n props: {\n ...providerConfigComponentProps\n },\n setup (props, { expose }) {\n useHrefParamsToGlobalVariables()\n\n const providerConfig = ref<HTMLElement>()\n const setTheme = () => {\n providerConfig.value.setAttribute('datav-theme', props.theme as string)\n }\n watch(() => props.theme, () => {\n setTheme()\n })\n onMounted(() => {\n setTheme()\n })\n const contextRequestUrl = computed(() => useVariablesInText(props.contextRequestUrl as string))\n const pageMode = computed(() => props.pageMode)\n const theme = computed(() => props.theme)\n // 当前组件主动触发ID\n const touchEventId = ref<string>('')\n // 提供全局设置\n provide(GLOBAL_CONFIG, {\n // 请求地址\n contextRequestUrl,\n // 模式(设计、预览、正常):目前主要配置初始化是否发起请求\n pageMode,\n // 主题\n theme,\n touchEventId\n })\n\n // 提供全局变量\n const globalModel = new Map()\n const getGlobalModel = (key: string) => {\n return globalModel.get(key)\n }\n const setGlobalModel = (key: string, value: any) => {\n globalModel.set(key, value)\n }\n provide(GLOBAL_MODEL, {\n getGlobalModel,\n setGlobalModel\n })\n\n // 提供事件\n const eventBus = mitt()\n const onEvent = (key: string, events: { [key:string]: any }) => {\n eventBus.on(key, (k: string) => {\n return Object.prototype.toString.call(events[k]) === '[object Function]' && events[k]()\n })\n onUnmounted(() => {\n eventBus.off(key)\n })\n }\n const offEvent = (key) => {\n eventBus.off(key)\n }\n const emitEvent = (key: string, eventName: string) => {\n eventBus.emit(key, eventName)\n }\n provide(EVENT_BUS, {\n onEvent,\n offEvent,\n emitEvent\n })\n\n // 设置是否请求 token\n const tokenNum = ref(0)\n const requestToken = () => {\n tokenNum.value = unref(tokenNum) + 1\n }\n provide(GLOBAL_TOKEN, {\n requestToken\n })\n // 请求排序\n const requestModel = new Map()\n const setRequest = (requestFn: Function = () => {}, sortNum: number = 0) => {\n if (requestModel.has(sortNum)) {\n const requestFnList = requestModel.get(sortNum)\n requestFnList?.push(requestFn)\n } else {\n requestModel.set(sortNum, [requestFn])\n }\n }\n const handleRequestFnList = (requestFnList: Array<Function>) => {\n return new Promise((resolve, reject) => {\n const resultList = requestFnList.map(requestFn => requestFn())\n Promise.all(resultList)\n .then(list => {\n resolve(list)\n })\n .catch(err => {\n reject(err)\n })\n })\n }\n // 指标库模块请求 token\n const queryUserToken = async () => {\n const res = await axios.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\n headers: {\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\n current_context: 'ygt'\n }\n })\n // 设置 token 挂载在 window.config 上\n // @ts-ignore\n // eslint-disable-next-line\n config.indicatorToken = res.data.data?.token\n }\n const touchRequest = async () => {\n const requestModelArr = Array.from(requestModel)\n // 排序\n requestModelArr.sort((a, b) => b[0] - a[0])\n const len = requestModelArr.length\n try {\n // 指标库模块需要 token\n // 页面不为design 请求次数 token 不为0\n if (props.pageMode !== 'design' && unref(tokenNum) > 0) {\n await queryUserToken()\n }\n for (let i = 0; i < len; i++) {\n const requestFnList = requestModelArr[i][1]\n await handleRequestFnList(requestFnList)\n }\n } catch (e) {\n console.error(e)\n } finally {\n // 执行完直接清空\n requestModel.clear()\n }\n }\n\n provide(REQUEST_MODEL, {\n setRequest,\n touchRequest\n })\n\n const emitRefreshPage = () => {\n eventBus.emit(REFRESH_PAGE)\n }\n provide(REFRESH_PAGE, {\n emitRefreshPage\n })\n // const notRenderSet = ref(new Set())\n // const refreshEventBus = mitt()\n const onRefreshPage = (callBack: Function) => {\n eventBus.on(REFRESH_PAGE, () => callBack())\n onMounted(() => {\n eventBus.off(REFRESH_PAGE)\n })\n }\n\n expose({\n touchRequest,\n getGlobalModel,\n onRefreshPage\n })\n\n return {\n providerConfig\n }\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n"],"names":["_openBlock","_createElementBlock","_renderSlot"],"mappings":";;;;;;;;;;;AAeA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,GAAG;AAAA,EACL;AAAA,EACA,MAAO,OAAO,EAAE,UAAU;AACO;AAE/B,UAAM,iBAAiB;AACvB,UAAM,WAAW,MAAM;AACrB,qBAAe,MAAM,aAAa,eAAe,MAAM,KAAe;AAAA,IAAA;AAElE,UAAA,MAAM,MAAM,OAAO,MAAM;AACpB;IAAA,CACV;AACD,cAAU,MAAM;AACL;IAAA,CACV;
|
|
1
|
+
{"version":3,"file":"ProviderConfig.js","sources":["../../../src/setting/provider-config/ProviderConfig.vue"],"sourcesContent":["<template>\n <!-- 请勿去除属性id -->\n <div id=\"ProviderConfig\" ref=\"providerConfig\">\n <slot></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, onUnmounted, ref, onMounted, watch, computed, unref } from 'vue'\nimport mitt from 'mitt'\nimport { EVENT_BUS, GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL, INDICATOR_URL, GLOBAL_TOKEN, REFRESH_PAGE } from '@/utils/constant'\nimport { providerConfigComponentProps } from './props'\nimport { useVariablesInText, useHrefParamsToGlobalVariables } from '@/hooks'\nimport axios from 'axios'\n\nexport default defineComponent({\n name: 'EcanProviderConfig',\n inheritAttrs: false,\n props: {\n ...providerConfigComponentProps\n },\n setup (props, { expose }) {\n useHrefParamsToGlobalVariables()\n\n const providerConfig = ref<HTMLElement>()\n const setTheme = () => {\n providerConfig.value.setAttribute('datav-theme', props.theme as string)\n }\n watch(() => props.theme, () => {\n setTheme()\n })\n onMounted(() => {\n setTheme()\n })\n const contextRequestUrl = computed(() => {\n return useVariablesInText(props.contextRequestUrl as string)\n })\n const pageMode = computed(() => props.pageMode)\n const theme = computed(() => props.theme)\n // 当前组件主动触发ID\n const touchEventId = ref<string>('')\n // 提供全局设置\n provide(GLOBAL_CONFIG, {\n // 请求地址\n contextRequestUrl,\n // 模式(设计、预览、正常):目前主要配置初始化是否发起请求\n pageMode,\n // 主题\n theme,\n touchEventId\n })\n\n // 提供全局变量\n const globalModel = new Map()\n const getGlobalModel = (key: string) => {\n return globalModel.get(key)\n }\n const setGlobalModel = (key: string, value: any) => {\n globalModel.set(key, value)\n }\n provide(GLOBAL_MODEL, {\n getGlobalModel,\n setGlobalModel\n })\n\n // 提供事件\n const eventBus = mitt()\n const onEvent = (key: string, events: { [key:string]: any }) => {\n eventBus.on(key, (k: string) => {\n return Object.prototype.toString.call(events[k]) === '[object Function]' && events[k]()\n })\n onUnmounted(() => {\n eventBus.off(key)\n })\n }\n const offEvent = (key) => {\n eventBus.off(key)\n }\n const emitEvent = (key: string, eventName: string) => {\n eventBus.emit(key, eventName)\n }\n provide(EVENT_BUS, {\n onEvent,\n offEvent,\n emitEvent\n })\n\n // 设置是否请求 token\n const tokenNum = ref(0)\n const requestToken = () => {\n tokenNum.value = unref(tokenNum) + 1\n }\n provide(GLOBAL_TOKEN, {\n requestToken\n })\n // 请求排序\n const requestModel = new Map()\n const setRequest = (requestFn: Function = () => {}, sortNum: number = 0) => {\n if (requestModel.has(sortNum)) {\n const requestFnList = requestModel.get(sortNum)\n requestFnList?.push(requestFn)\n } else {\n requestModel.set(sortNum, [requestFn])\n }\n }\n const handleRequestFnList = (requestFnList: Array<Function>) => {\n return new Promise((resolve, reject) => {\n const resultList = requestFnList.map(requestFn => requestFn())\n Promise.all(resultList)\n .then(list => {\n resolve(list)\n })\n .catch(err => {\n reject(err)\n })\n })\n }\n // 指标库模块请求 token\n const queryUserToken = async () => {\n const res = await axios.get(`${INDICATOR_URL}/user/anonymous?username=admin`, {\n headers: {\n systemCode: 'F72FC50A3D97372514A6AC33333D28FD',\n current_context: 'ygt'\n }\n })\n // 设置 token 挂载在 window.config 上\n // @ts-ignore\n // eslint-disable-next-line\n config.indicatorToken = res.data.data?.token\n }\n const touchRequest = async () => {\n const requestModelArr = Array.from(requestModel)\n // 排序\n requestModelArr.sort((a, b) => b[0] - a[0])\n const len = requestModelArr.length\n try {\n // 指标库模块需要 token\n // 页面不为design 请求次数 token 不为0\n if (props.pageMode !== 'design' && unref(tokenNum) > 0) {\n await queryUserToken()\n }\n for (let i = 0; i < len; i++) {\n const requestFnList = requestModelArr[i][1]\n await handleRequestFnList(requestFnList)\n }\n } catch (e) {\n console.error(e)\n } finally {\n // 执行完直接清空\n requestModel.clear()\n }\n }\n\n provide(REQUEST_MODEL, {\n setRequest,\n touchRequest\n })\n\n const emitRefreshPage = () => {\n eventBus.emit(REFRESH_PAGE)\n }\n provide(REFRESH_PAGE, {\n emitRefreshPage\n })\n // const notRenderSet = ref(new Set())\n // const refreshEventBus = mitt()\n const onRefreshPage = (callBack: Function) => {\n eventBus.on(REFRESH_PAGE, () => callBack())\n onMounted(() => {\n eventBus.off(REFRESH_PAGE)\n })\n }\n\n expose({\n touchRequest,\n getGlobalModel,\n onRefreshPage\n })\n\n return {\n providerConfig\n }\n }\n})\n</script>\n\n<style scoped>\n\n</style>\n"],"names":["_openBlock","_createElementBlock","_renderSlot"],"mappings":"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"}
|
package/es/table/table/Table.js
CHANGED
|
@@ -16,7 +16,7 @@ import "../../node_modules/ant-design-vue/es/tree/style/index.js";
|
|
|
16
16
|
import { usePickComponentStyle } from "../../hooks/usePickComponentStyle.js";
|
|
17
17
|
import { useOnEvent } from "../../hooks/useOnEvent.js";
|
|
18
18
|
import { useEmitEvent } from "../../hooks/useEmitEvent.js";
|
|
19
|
-
import "lodash-es";
|
|
19
|
+
import { cloneDeep } from "lodash-es";
|
|
20
20
|
import { useRequestData } from "../../hooks/useRequestData.js";
|
|
21
21
|
import { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from "../../utils/constant.js";
|
|
22
22
|
import { useVariablesInText } from "../../hooks/useVariablesInText.js";
|
|
@@ -65,27 +65,34 @@ const _sfc_main = defineComponent({
|
|
|
65
65
|
});
|
|
66
66
|
const x = computed(() => props.scrollX);
|
|
67
67
|
const y = computed(() => parseFloat(props.height) - unref(splitY));
|
|
68
|
-
const myColumns =
|
|
69
|
-
|
|
68
|
+
const myColumns = ref([]);
|
|
69
|
+
const myDataSource = ref(props.data);
|
|
70
|
+
const tableColumns = ref([]);
|
|
71
|
+
const tableDataSource = ref([]);
|
|
72
|
+
const total = ref(0);
|
|
73
|
+
const pageNum = ref(1);
|
|
74
|
+
const pageSize = computed(() => props.paginationPageSize);
|
|
75
|
+
const handleColumns = (columns = []) => {
|
|
76
|
+
let _columns = [];
|
|
70
77
|
const isUseSeq = props.isUseSeq;
|
|
71
78
|
if (isUseSeq) {
|
|
72
|
-
|
|
79
|
+
_columns.push({
|
|
73
80
|
title: "\u5E8F\u53F7",
|
|
74
81
|
dataIndex: "SEQ"
|
|
75
82
|
});
|
|
76
83
|
}
|
|
77
|
-
|
|
84
|
+
_columns = _columns.concat(cloneDeep(columns));
|
|
78
85
|
if (props.isUseAction) {
|
|
79
|
-
|
|
86
|
+
_columns.push({
|
|
80
87
|
title: "\u64CD\u4F5C",
|
|
81
88
|
dataIndex: "ACTION",
|
|
82
89
|
width: props.actionColumnWidth
|
|
83
90
|
});
|
|
84
91
|
}
|
|
85
|
-
const len =
|
|
92
|
+
const len = _columns.length;
|
|
86
93
|
const columnsFixedNum = props.columnsFixedNum;
|
|
87
94
|
for (let i = 0; i < len; i++) {
|
|
88
|
-
const column =
|
|
95
|
+
const column = _columns[i];
|
|
89
96
|
if (i < columnsFixedNum) {
|
|
90
97
|
column.fixed = "left";
|
|
91
98
|
} else {
|
|
@@ -114,16 +121,71 @@ const _sfc_main = defineComponent({
|
|
|
114
121
|
}
|
|
115
122
|
});
|
|
116
123
|
}
|
|
117
|
-
|
|
124
|
+
myColumns.value = _columns;
|
|
125
|
+
};
|
|
126
|
+
watch(() => [
|
|
127
|
+
props.columns,
|
|
128
|
+
props.isUseSeq,
|
|
129
|
+
props.isUseAction,
|
|
130
|
+
props.columnsFixedNum,
|
|
131
|
+
props.actionColumnWidth,
|
|
132
|
+
props.headerCellBackgroundColor,
|
|
133
|
+
props.cellBackgroundColor,
|
|
134
|
+
props.borderColor
|
|
135
|
+
], () => {
|
|
136
|
+
handleColumns(props.columns);
|
|
137
|
+
}, {
|
|
138
|
+
immediate: true,
|
|
139
|
+
deep: true
|
|
118
140
|
});
|
|
119
|
-
const total = ref(0);
|
|
120
|
-
const pageNum = ref(1);
|
|
121
|
-
const pageSize = computed(() => props.paginationPageSize);
|
|
122
|
-
const dataSource = ref(props.data);
|
|
123
141
|
watch(() => [props.data, props.dataType], ([data, dataType]) => {
|
|
124
142
|
if (dataType !== "static")
|
|
125
143
|
return;
|
|
126
|
-
|
|
144
|
+
myDataSource.value = data;
|
|
145
|
+
});
|
|
146
|
+
const handleReverseTable = (columns, dataSource) => {
|
|
147
|
+
const firstColumns = columns[0];
|
|
148
|
+
const _columns = [{
|
|
149
|
+
title: firstColumns.title,
|
|
150
|
+
dataIndex: "col0",
|
|
151
|
+
key: "col0"
|
|
152
|
+
}];
|
|
153
|
+
for (let i = 0; i < dataSource.length; i++) {
|
|
154
|
+
const data = dataSource[i];
|
|
155
|
+
const dataIndex = "col" + (i + 1);
|
|
156
|
+
_columns.push({
|
|
157
|
+
title: data[firstColumns.dataIndex],
|
|
158
|
+
dataIndex,
|
|
159
|
+
key: dataIndex
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
const _dataSource = [];
|
|
163
|
+
for (let i = 1; i < columns.length; i++) {
|
|
164
|
+
const column = columns[i];
|
|
165
|
+
const _data = { col0: column.title };
|
|
166
|
+
for (let j = 0; j < dataSource.length; j++) {
|
|
167
|
+
const data = dataSource[j];
|
|
168
|
+
_data[`col${j + 1}`] = data[column.dataIndex];
|
|
169
|
+
}
|
|
170
|
+
_dataSource.push(_data);
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
columns: _columns,
|
|
174
|
+
dataSource: _dataSource
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
watch(() => [props.isReverse, myColumns.value, myDataSource.value], () => {
|
|
178
|
+
if (props.isReverse) {
|
|
179
|
+
const { columns, dataSource } = handleReverseTable(unref(myColumns), unref(myDataSource));
|
|
180
|
+
tableColumns.value = columns;
|
|
181
|
+
tableDataSource.value = dataSource;
|
|
182
|
+
} else {
|
|
183
|
+
tableColumns.value = unref(myColumns);
|
|
184
|
+
tableDataSource.value = unref(myDataSource);
|
|
185
|
+
}
|
|
186
|
+
}, {
|
|
187
|
+
deep: true,
|
|
188
|
+
immediate: true
|
|
127
189
|
});
|
|
128
190
|
const orderCondition = ref(void 0);
|
|
129
191
|
const requestData = useRequestData(props);
|
|
@@ -147,7 +209,7 @@ const _sfc_main = defineComponent({
|
|
|
147
209
|
const res = await requestData(params);
|
|
148
210
|
const { rows = [], total: tableTotal = 0 } = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.data) || {};
|
|
149
211
|
total.value = tableTotal;
|
|
150
|
-
|
|
212
|
+
myDataSource.value = rows;
|
|
151
213
|
} catch (e) {
|
|
152
214
|
console.error(e);
|
|
153
215
|
} finally {
|
|
@@ -220,12 +282,10 @@ const _sfc_main = defineComponent({
|
|
|
220
282
|
getGlobalModel: (key) => void 0,
|
|
221
283
|
setGlobalModel: (key, value) => void 0
|
|
222
284
|
});
|
|
223
|
-
const dataColumns =
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
});
|
|
228
|
-
dataSource.value = rows;
|
|
285
|
+
const handleIndicatorDataset = (dataColumns = [], dataRows = []) => {
|
|
286
|
+
const _columns = dataColumns.map((column) => ({ title: column, dataIndex: column, key: column }));
|
|
287
|
+
handleColumns(_columns);
|
|
288
|
+
myDataSource.value = dataRows;
|
|
229
289
|
};
|
|
230
290
|
const indicatorData = useIndicatorData(props);
|
|
231
291
|
const handleIndicatorData = async () => {
|
|
@@ -286,7 +346,7 @@ const _sfc_main = defineComponent({
|
|
|
286
346
|
return [];
|
|
287
347
|
const start = (unref(pageNum) - 1) * unref(pageSize);
|
|
288
348
|
const end = start + unref(pageSize);
|
|
289
|
-
const records = unref(
|
|
349
|
+
const records = unref(myDataSource).slice(start, end);
|
|
290
350
|
for (let i = 0; i < records.length; i++) {
|
|
291
351
|
const record = records[i];
|
|
292
352
|
for (let j = 0; j < summaryList2.length; j++) {
|
|
@@ -332,15 +392,14 @@ const _sfc_main = defineComponent({
|
|
|
332
392
|
return {
|
|
333
393
|
x,
|
|
334
394
|
y,
|
|
335
|
-
myColumns,
|
|
336
395
|
style,
|
|
337
396
|
customRow,
|
|
338
397
|
pagination,
|
|
339
398
|
formatFn,
|
|
340
399
|
contrastClass,
|
|
341
400
|
tableChange,
|
|
342
|
-
|
|
343
|
-
|
|
401
|
+
tableDataSource,
|
|
402
|
+
tableColumns,
|
|
344
403
|
summaryList,
|
|
345
404
|
loading,
|
|
346
405
|
onTouchHrefEvent,
|
|
@@ -371,8 +430,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
371
430
|
style: {
|
|
372
431
|
height: "100%"
|
|
373
432
|
},
|
|
374
|
-
columns: _ctx.
|
|
375
|
-
"data-source": _ctx.
|
|
433
|
+
columns: _ctx.tableColumns,
|
|
434
|
+
"data-source": _ctx.tableDataSource,
|
|
376
435
|
bordered: _ctx.bordered,
|
|
377
436
|
size: _ctx.size,
|
|
378
437
|
customRow: _ctx.customRow,
|
|
@@ -452,7 +511,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
452
511
|
}, 8, ["loading"])
|
|
453
512
|
], 4);
|
|
454
513
|
}
|
|
455
|
-
const Table = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
514
|
+
const Table = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-48569fe8"]]);
|
|
456
515
|
export {
|
|
457
516
|
Table as default
|
|
458
517
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../../src/table/table/Table.vue"],"sourcesContent":["<template>\n <div class=\"ecan-table\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <a-table\n class=\"table\"\n :style=\"{\n height: '100%'\n }\"\n :columns=\"dataColumns.length > 0 ? dataColumns : myColumns\"\n :data-source=\"dataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template v-slot:bodyCell=\"{ column, index, text, record }\">\n <!-- 序列配置 -->\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ index + 1 }}\n </span>\n </template>\n <!-- 操作列配置 -->\n <template v-else-if=\"column.dataIndex === 'ACTION'\">\n <div class=\"action-list\">\n <div class=\"action\" v-for=\"(action, index) in actionList\" :key=\"index\">\n <a\n :href=\"handleHref(action.href, record)\"\n :target=\"handleHrefTarget(action.target)\"\n :style=\"{\n color: action.color,\n fontSize,\n fontWeight\n }\"\n @click=\"onTouchHrefEvent(action.target, handleHref(action.href, record))\"\n >\n {{ action.title }}\n </a>\n </div>\n </div>\n </template>\n <template v-else>\n <div\n :class=\"[contrastClass(text, column.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(text, column.format) }}\n </div>\n </template>\n </template>\n <template v-slot:summary>\n <a-table-summary v-if=\"summaryList.length > 0\">\n <a-table-summary-row>\n <a-table-summary-cell\n v-for=\"(summary, index) in summaryList\"\n :key=\"summary.dataIndex + index\"\n :index=\"summary.index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor\n }\"\n >\n <div :class=\"[contrastClass(summary.total, summary.format)]\">\n {{ (summary.format != null || summary.format !== '') && formatFn(summary.total, summary.format) }}\n </div>\n </a-table-summary-cell>\n </a-table-summary-row>\n </a-table-summary>\n </template>\n </a-table>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, watch, inject } from 'vue'\nimport {\n Table as ATable,\n TableSummary as ATableSummary,\n TableSummaryRow as ATableSummaryRow,\n TableSummaryCell as ATableSummaryCell\n} from 'ant-design-vue'\nimport 'ant-design-vue/es/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/hooks'\nimport { tableComponentProps } from './props'\nimport { formatMoney, formatPercentage } from '@/utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\n\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\n ATable,\n ATableSummary,\n ATableSummaryRow,\n ATableSummaryCell\n },\n props: {\n ...tableComponentProps\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const splitY = computed(() => {\n if (props.paginationShow) {\n switch (props.size) {\n case 'small':\n return 90\n case 'middle':\n return 100\n default:\n return 120\n }\n } else {\n switch (props.size) {\n case 'small':\n return 40\n case 'middle':\n return 47\n default:\n return 55\n }\n }\n })\n const x = computed(() => props.scrollX)\n const y = computed(() => parseFloat(props.height as string) - unref(splitY))\n const myColumns = computed(() => {\n // 复制表头数据\n let columns = [] as { [key: string]: any } []\n const isUseSeq = props.isUseSeq as boolean\n if (isUseSeq) {\n // 添加序号\n columns.push({\n title: '序号',\n dataIndex: 'SEQ'\n })\n }\n columns = columns.concat(props.columns as { [key: string]: any } [])\n // 添加操作列\n if (props.isUseAction) {\n columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\n const len = columns.length\n const columnsFixedNum = props.columnsFixedNum as number\n // 这里的循环为了 props 是引用类型,会造成脏数据(上次修改后,还会存在上次的数据)\n // 如果使用深拷贝会造成性能的浪费,循环来说相对更快\n for (let i = 0; i < len; i++) {\n const column = columns[i]\n if (i < columnsFixedNum) {\n column.fixed = 'left'\n } else {\n column.fixed = false\n }\n const {\n headerCellAlign = 'center',\n headerCellColor,\n cellAlign = 'center',\n cellColor\n } = column\n // 通用配置\n column.customHeaderCell = () => ({\n style: {\n textAlign: headerCellAlign,\n color: headerCellColor,\n backgroundColor: props.headerCellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n column.customCell = () => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n }\n return columns\n })\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const dataSource = ref(props.data as { [key: string]: any } [])\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n dataSource.value = data as { [key: string]: any } []\n })\n const orderCondition = ref<string | undefined>(undefined)\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async (isUseLoading: boolean = true) => {\n try {\n if (isUseLoading) loading.value = true\n // 初始参数:排序\n let params = {\n orderCondition: unref(orderCondition)\n } as { [key:string]: any }\n // 分页\n if (props.paginationShow) {\n params = {\n ...params,\n pageNum: unref(pageNum),\n pageSize: unref(pageSize),\n layer: '1'\n }\n }\n const res = await requestData(params)\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n dataSource.value = rows\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const tableChange = ({ current }: { current: number }, _filters, sorter) => {\n pageNum.value = current\n if (sorter && Object.keys(sorter).length > 0) {\n const { field, order } = sorter as { field: string | null, order: 'ascend' | 'descend' }\n const map = {\n ascend: 'asc',\n descend: 'desc'\n }\n const fieldOrder = map[order]\n if (field != null && fieldOrder != null) {\n orderCondition.value = field + ' ' + fieldOrder\n pageNum.value = 1\n }\n }\n refreshData(false)\n }\n const pagination = computed(() => {\n const simple = props.simple\n const position = [props.paginationPosition]\n return props.paginationShow && {\n simple,\n position,\n total: unref(total),\n current: unref(pageNum),\n pageSize: unref(pageSize),\n showSizeChanger: false\n }\n })\n const formatBoolean = (value: string | number) => {\n if (+value === 1) return '是'\n if (+value === 0) return '否'\n return value\n }\n type Format = 'money' | 'percentage' | 'contrast' | 'boolean' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage,\n boolean: formatBoolean\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const dataColumns = ref([])\n const handleIndicatorDataset = (colmuns: any = [], rows: any = []) => {\n dataColumns.value = colmuns.map((it: string) => {\n return { title: it, dataIndex: it, key: it }\n })\n dataSource.value = rows\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n handleIndicatorDataset(res?.data?.data?.columns, res?.data?.data?.rows)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const customRow = (record) => ({\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n const refreshData = (isUseLoading: boolean = true) => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData(isUseLoading)\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n useOnEvent(props, {\n refreshData\n })\n const summaryList = computed(() => {\n const columns = props.columns as { [key: string]: any } []\n const summaryList = (props.isUseSeq ? [{ total: '小计' }] : []) as { [key: string]: any } []\n let calcTotalCount = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]\n const { isCalcTotal } = column\n if (isCalcTotal) {\n summaryList.push({\n ...column,\n index: i,\n total: 0\n })\n calcTotalCount++\n } else {\n summaryList.push({\n ...column\n })\n }\n }\n // 为空直接返回\n if (calcTotalCount === 0) return []\n const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n const records = unref(dataSource).slice(start, end)\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n for (let j = 0; j < summaryList.length; j++) {\n const summary = summaryList[j]\n const { dataIndex, total } = summary\n const num = +record[dataIndex]\n if (!Number.isNaN(num) && total != null) {\n summary.total = num + total\n }\n }\n }\n return summaryList\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n expose({\n refreshData\n })\n\n const handleHref = (href: string = '', data: { [key:string]: any }) => {\n return useVariablesInText(href, data)\n }\n\n const handleHrefTarget = (target: 'self' | 'blank' | 'event') => {\n if (target === 'event') {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n }\n\n const onTouchHrefEvent = (target: 'self' | 'blank' | 'event', href: string = '') => {\n if (target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n\n return {\n x,\n y,\n myColumns,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n dataColumns,\n dataSource,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.table {\n width: 100%;\n}\n\n.goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.action-list {\n display: flex;\n width: 100%;\n}\n.action {\n flex: 1;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-table {\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n background-color: #c8c9ca !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n\n .ant-table {\n color: rgba(0, 0, 0, .65);\n background: #ffffff;\n }\n\n .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, .85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n }\n }\n\n .anticon {\n color: rgba(0, 0, 0, .65) !important;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #192c70;\n }\n\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .ant-table {\n color: #e8e8e8;\n background: #071655;\n }\n\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n }\n }\n\n .ant-pagination-item-link {\n background: #17338c !important;\n }\n\n .ant-pagination-item {\n background: #17338c !important;\n }\n\n .anticon {\n color: rgba(255, 255, 255, .65) !important;\n }\n\n .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n }\n }\n\n td.ant-table-column-sort {\n background: #225b98;\n }\n}\n</style>\n"],"names":["ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","summaryList","total","_createElementBlock","_normalizeStyle","_createVNode","_withCtx","_openBlock","_toDisplayString","_Fragment","_renderList","index","_createElementVNode","_normalizeClass","_createBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4GA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IAAA,QACAA;AAAAA,IAAA,eACAC;AAAAA,IAAA,kBACAC;AAAAA,IAAA,mBACAC;AAAAA,EACF;AAAA,EACA,OAAO;AAAA,IACL,GAAG;AAAA,EACL;AAAA,EACA,MAAO,OAAO,EAAE,UAAU;AAClB,UAAA,QAAQ,sBAAsB,KAAK;AACnC,UAAA,SAAS,SAAS,MAAM;AAC5B,UAAI,MAAM,gBAAgB;AACxB,gBAAQ,MAAM;AAAA,eACP;AACI,mBAAA;AAAA,eACJ;AACI,mBAAA;AAAA;AAEA,mBAAA;AAAA;AAAA,MAAA,OAEN;AACL,gBAAQ,MAAM;AAAA,eACP;AACI,mBAAA;AAAA,eACJ;AACI,mBAAA;AAAA;AAEA,mBAAA;AAAA;AAAA,MAEb;AAAA,IAAA,CACD;AACD,UAAM,IAAI,SAAS,MAAM,MAAM,OAAO;AAChC,UAAA,IAAI,SAAS,MAAM,WAAW,MAAM,MAAgB,IAAI,MAAM,MAAM,CAAC;AACrE,UAAA,YAAY,SAAS,MAAM;AAE/B,UAAI,UAAU,CAAA;AACd,YAAM,WAAW,MAAM;AACvB,UAAI,UAAU;AAEZ,gBAAQ,KAAK;AAAA,UACX,OAAO;AAAA,UACP,WAAW;AAAA,QAAA,CACZ;AAAA,MACH;AACU,gBAAA,QAAQ,OAAO,MAAM,OAAoC;AAEnE,UAAI,MAAM,aAAa;AACrB,gBAAQ,KAAK;AAAA,UACX,OAAO;AAAA,UACP,WAAW;AAAA,UACX,OAAO,MAAM;AAAA,QAAA,CACd;AAAA,MACH;AACA,YAAM,MAAM,QAAQ;AACpB,YAAM,kBAAkB,MAAM;AAG9B,eAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,cAAM,SAAS,QAAQ;AACvB,YAAI,IAAI,iBAAiB;AACvB,iBAAO,QAAQ;AAAA,QAAA,OACV;AACL,iBAAO,QAAQ;AAAA,QACjB;AACM,cAAA;AAAA,UACJ,kBAAkB;AAAA,UAClB;AAAA,UACA,YAAY;AAAA,UACZ;AAAA,QACE,IAAA;AAEJ,eAAO,mBAAmB,OAAO;AAAA,UAC/B,OAAO;AAAA,YACL,WAAW;AAAA,YACX,OAAO;AAAA,YACP,iBAAiB,MAAM;AAAA,YACvB,mBAAmB,MAAM;AAAA,UAC3B;AAAA,QAAA;AAEF,eAAO,aAAa,OAAO;AAAA,UACzB,OAAO;AAAA,YACL,WAAW;AAAA,YACX,OAAO;AAAA,YACP,iBAAiB,MAAM;AAAA,YACvB,mBAAmB,MAAM;AAAA,UAC3B;AAAA,QAAA;AAAA,MAEJ;AACO,aAAA;AAAA,IAAA,CACR;AACK,UAAA,QAAQ,IAAI,CAAC;AACb,UAAA,UAAU,IAAI,CAAC;AACrB,UAAM,WAAW,SAAS,MAAM,MAAM,kBAA4B;AAC5D,UAAA,aAAa,IAAI,MAAM,IAAiC;AACxD,UAAA,MAAM,CAAC,MAAM,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,QAAQ,MAAM;AAC9D,UAAI,aAAa;AAAU;AAC3B,iBAAW,QAAQ;AAAA,IAAA,CACpB;AACK,UAAA,iBAAiB,IAAwB,MAAS;AAClD,UAAA,cAAc,eAAe,KAAK;AAClC,UAAA,UAAU,IAAI,KAAK;AACnB,UAAA,oBAAoB,OAAO,eAAwB,SAAS;;AAC5D,UAAA;AACE,YAAA;AAAc,kBAAQ,QAAQ;AAElC,YAAI,SAAS;AAAA,UACX,gBAAgB,MAAM,cAAc;AAAA,QAAA;AAGtC,YAAI,MAAM,gBAAgB;AACf,mBAAA;AAAA,YACP,GAAG;AAAA,YACH,SAAS,MAAM,OAAO;AAAA,YACtB,UAAU,MAAM,QAAQ;AAAA,YACxB,OAAO;AAAA,UAAA;AAAA,QAEX;AACM,cAAA,MAAM,MAAM,YAAY,MAAM;AAC9B,cAAA,EAAE,OAAO,IAAI,OAAO,aAAa,EAAM,MAAA,gCAAK,SAAL,mBAAW,SAAQ;AAChE,cAAM,QAAQ;AACd,mBAAW,QAAQ;AAAA,eACZ;AACP,gBAAQ,MAAM,CAAC;AAAA,MAAA,UACf;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAEF,UAAM,cAAc,CAAC,EAAE,QAAQ,GAAwB,UAAU,WAAW;AAC1E,cAAQ,QAAQ;AAChB,UAAI,UAAU,OAAO,KAAK,MAAM,EAAE,SAAS,GAAG;AACtC,cAAA,EAAE,OAAO,MAAU,IAAA;AACzB,cAAM,MAAM;AAAA,UACV,QAAQ;AAAA,UACR,SAAS;AAAA,QAAA;AAEX,cAAM,aAAa,IAAI;AACnB,YAAA,SAAS,QAAQ,cAAc,MAAM;AACxB,yBAAA,QAAQ,QAAQ,MAAM;AACrC,kBAAQ,QAAQ;AAAA,QAClB;AAAA,MACF;AACA,kBAAY,KAAK;AAAA,IAAA;AAEb,UAAA,aAAa,SAAS,MAAM;AAChC,YAAM,SAAS,MAAM;AACf,YAAA,WAAW,CAAC,MAAM,kBAAkB;AAC1C,aAAO,MAAM,kBAAkB;AAAA,QAC7B;AAAA,QACA;AAAA,QACA,OAAO,MAAM,KAAK;AAAA,QAClB,SAAS,MAAM,OAAO;AAAA,QACtB,UAAU,MAAM,QAAQ;AAAA,QACxB,iBAAiB;AAAA,MAAA;AAAA,IACnB,CACD;AACK,UAAA,gBAAgB,CAAC,UAA2B;AAChD,UAAI,CAAC,UAAU;AAAU,eAAA;AACzB,UAAI,CAAC,UAAU;AAAU,eAAA;AAClB,aAAA;AAAA,IAAA;AAGH,UAAA,WAAW,CAAC,OAAwB,WAAoB;AACxD,UAAA,UAAU,QAAQ,WAAW;AAAW,eAAA;AAC5C,YAAM,MAAM;AAAA,QACV,OAAO;AAAA,QACP,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,SAAS;AAAA,MAAA;AAEJ,aAAA,IAAI,QAAQ,KAAK,KAAK;AAAA,IAAA;AAEzB,UAAA,gBAAgB,CAAC,OAAwB,WAAmB;AAC1D,YAAA,SAAS,WAAW,QAAQ,EAAE;AACpC,UAAI,WAAW,YAAY;AAClB,eAAA;AAAA,MACT;AACQ,cAAA;AAAA,aACD,UAAU;AACN,iBAAA;AAAA,aACJ,SAAS;AACL,iBAAA;AAAA;AAAA,IAAA;AAIP,UAAA,YAAY,aAAa,KAAK;AAEpC,UAAM,EAAE,SAAA,IAAa,OAAO,eAAe;AAAA,MACzC,UAAU;AAAA,IAAA,CACX;AAED,UAAM,EAAE,gBAAgB,mBAAmB,OAAO,cAAc;AAAA,MAG9D,gBAAgB,CAAC,QAAgB;AAAA,MAGjC,gBAAgB,CAAC,KAAa,UAAe;AAAA,IAAA,CAC9C;AAEK,UAAA,cAAc,IAAI,CAAA,CAAE;AAC1B,UAAM,yBAAyB,CAAC,UAAe,CAAA,GAAI,OAAY,CAAA,MAAO;AACpE,kBAAY,QAAQ,QAAQ,IAAI,CAAC,OAAe;AAC9C,eAAO,EAAE,OAAO,IAAI,WAAW,IAAI,KAAK;MAAG,CAC5C;AACD,iBAAW,QAAQ;AAAA,IAAA;AAIf,UAAA,gBAAgB,iBAAiB,KAAK;AAC5C,UAAM,sBAAsB,YAAY;;AAClC,UAAA;AACF,gBAAQ,QAAQ;AACV,cAAA,MAAM,MAAM;AAClB,gCAAuB,sCAAK,SAAL,mBAAW,SAAX,mBAAiB,UAAS,sCAAK,SAAL,mBAAW,SAAX,mBAAiB,IAAI;AAAA,eAC/D;AACP,gBAAQ,MAAM,CAAC;AAAA,MAAA,UACf;AACA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAGI,UAAA,YAAY,CAAC,YAAY;AAAA,MAC7B,SAAS,UAAU,SAAS,MAAM;AAChC,cAAM,KAAK,MAAM;AACX,cAAA,QAAQ,eAAe,EAAE;AAE/B,uBAAe,IAAI,EAAE,GAAG,OAAO,QAAQ,QAAQ;AAAA,MAAA,CAChD;AAAA,IAAA;AAEG,UAAA,cAAc,CAAC,eAAwB,SAAS;AAChD,UAAA,MAAM,QAAQ,MAAM;AAAU;AAClC,cAAQ,MAAM;AAAA,aACP;AACH,4BAAkB,YAAY;AAC9B;AAAA,aACG;AACiB;AACpB;AAAA;AAAA,IAAA;AAGN,eAAW,OAAO;AAAA,MAChB;AAAA,IAAA,CACD;AACK,UAAA,cAAc,SAAS,MAAM;AACjC,YAAM,UAAU,MAAM;AAChBC,YAAAA,eAAe,MAAM,WAAW,CAAC,EAAE,OAAO,eAAA,CAAM,IAAI;AAC1D,UAAI,iBAAiB;AACrB,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,cAAM,SAAS,QAAQ;AACjB,cAAA,EAAE,YAAgB,IAAA;AACxB,YAAI,aAAa;AACf,uBAAY,KAAK;AAAA,YACf,GAAG;AAAA,YACH,OAAO;AAAA,YACP,OAAO;AAAA,UAAA,CACR;AACD;AAAA,QAAA,OACK;AACL,uBAAY,KAAK;AAAA,YACf,GAAG;AAAA,UAAA,CACJ;AAAA,QACH;AAAA,MACF;AAEA,UAAI,mBAAmB;AAAG,eAAO;AACjC,YAAM,SAAS,MAAM,OAAO,IAAI,KAAK,MAAM,QAAQ;AAC7C,YAAA,MAAM,QAAQ,MAAM,QAAQ;AAClC,YAAM,UAAU,MAAM,UAAU,EAAE,MAAM,OAAO,GAAG;AAClD,eAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACvC,cAAM,SAAS,QAAQ;AACvB,iBAAS,IAAI,GAAG,IAAIA,aAAY,QAAQ,KAAK;AAC3C,gBAAM,UAAUA,aAAY;AACtB,gBAAA,EAAE,WAAW,OAAA,OAAA,IAAU;AACvB,gBAAA,MAAM,CAAC,OAAO;AACpB,cAAI,CAAC,OAAO,MAAM,GAAG,KAAKC,UAAS,MAAM;AACvC,oBAAQ,QAAQ,MAAMA;AAAAA,UACxB;AAAA,QACF;AAAA,MACF;AACOD,aAAAA;AAAAA,IAAA,CACR;AAED,UAAM,EAAE,WAAA,IAAe,OAAO,eAAe;AAAA,MAG3C,YAAY,CAAC,WAAqB,YAAoB;AAAA,IAAA,CACvD;AAEU,eAAA,aAAa,MAAM,WAAqB;AAE5C,WAAA;AAAA,MACL;AAAA,IAAA,CACD;AAED,UAAM,aAAa,CAAC,OAAe,IAAI,SAAgC;AAC9D,aAAA,mBAAmB,MAAM,IAAI;AAAA,IAAA;AAGhC,UAAA,mBAAmB,CAAC,WAAuC;AAC/D,UAAI,WAAW,SAAS;AACf,eAAA;AAAA,MAAA,OACF;AACL,cAAM,MAAM;AAAA,UACV,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAET,eAAO,IAAI;AAAA,MACb;AAAA,IAAA;AAGF,UAAM,mBAAmB,CAAC,QAAoC,OAAe,OAAO;AAClF,UAAI,WAAW,SAAS;AACtB,eAAO,OAAO,YAAY;AAAA,UACxB,MAAM;AAAA,UACN,KAAK;AAAA,WACJ,GAAG;AAAA,MACR;AAAA,IAAA;AAGK,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AACF,CAAC;;;EAnagB,OAAM;;;;;;;;;sBA9BrBE,mBAkFM,OAAA;AAAA,IAlFD,OAAM;AAAA,IAAc,OAAKC,eAAE,KAAK,KAAA;AAAA,EAAA,GAAA;AAAA,IACnCC,YAgFW,qBAAA,EAhFA,SAAS,KAAO,QAAA,GAAA;AAAA,MAAA,SAAAC,QACzB,MA8EU;AAAA,QA9EVD,YA8EU,oBAAA;AAAA,UA7ER,OAAM;AAAA,UACL,OAAO;AAAA,YAAA,QAAA;AAAA;UAGP,SAAS,KAAA,YAAY,SAAM,IAAO,KAAc,cAAA,KAAA;AAAA,UAChD,eAAa,KAAA;AAAA,UACb,UAAU,KAAA;AAAA,UACV,MAAM,KAAA;AAAA,UACN,WAAW,KAAA;AAAA,UACX,QAAM,EAAA,GAAI,KAAC,GAAA,GAAE,KAAC,EAAA;AAAA,UACd,YAAY,KAAA;AAAA,UACZ,UAAQ,KAAA;AAAA,QAAA,GAAA;AAAA,UAEQ,UAAQC,QAEvB,CASW,EAXgB,QAAQ,OAAO,MAAM,aAAM;AAAA,YAEtC,OAAO,cAAS,SAAAC,UAAA,GAC9BJ,mBAOO,QAAA;AAAA,cAAA,KAAA;AAAA,cANJ,OAAKC,eAAA;AAAA,gBAAoB,UAAA,KAAA;AAAA,gBAA0B,YAAA,KAAA;AAAA,cAAA,CAAA;AAAA,YAKjD,GAAAI,gBAAA,QAAK,UAIS,OAAO,cAAS,YACnCD,UAAA,GAAAJ,mBAeM,OAfN,YAeM;AAAA,eAAAI,UAAA,IAAA,GAdJJ,mBAaMM,UAAA,MAAAC,WAbwC,KAAU,YAAA,CAA5B,QAAQC,WAAK;oCAAzCR,mBAaM,OAAA;AAAA,kBAbD,OAAM;AAAA,kBAAgD,KAAKQ;AAAAA,gBAAA,GAAA;AAAA,kBAC9DC,mBAWI,KAAA;AAAA,oBAVD,MAAM,KAAA,WAAW,OAAO,MAAM,MAAM;AAAA,oBACpC,QAAQ,KAAiB,iBAAA,OAAO,MAAM;AAAA,oBACtC,OAAKR,eAAA;AAAA,sBAAA,OAA+B,OAAO;AAAA,sBAA2B,UAAA,KAAA;AAAA,sBAA8B,YAAA,KAAA;AAAA,oBAAA,CAAA;AAAA,oBAKpG,SAAK,YAAE,KAAiB,iBAAA,OAAO,QAAQ,KAAW,WAAA,OAAO,MAAM,MAAM,CAAA;AAAA,kBAAA,GAAAI,gBAEnE,OAAO,KAAK,GAAA,IAAA,UAAA;AAAA,gBAAA,CAAA;AAAA;gCAMrBL,mBAQM,OAAA;AAAA,cAAA,KAAA;AAAA,cAPH,OAAKU,eAAG,CAAA,KAAA,cAAc,MAAM,OAAO,MAAM,CAAA,CAAA;AAAA,cACzC,OAAKT,eAAA;AAAA,gBAAoB,UAAA,KAAA;AAAA,gBAA0B,YAAA,KAAA;AAAA,cAAA,CAAA;AAAA,gCAKhD,OAAO,UAAM,QAAY,OAAO,WAAM,OAAY,KAAS,SAAA,MAAM,OAAO,MAAM,CAAA,GAAA,CAAA;AAAA,UAAA,CAAA;AAAA,UAIvE,SAAOE,QACtB,MAkBkB;AAAA,YAlBK,KAAA,YAAY,SAAM,KAAAC,UAAA,GAAzCO,YAkBkB,4BAAA,EAAA,KAAA,KAAA;AAAA,cAAA,SAAAR,QAjBhB,MAgBsB;AAAA,gBAhBtBD,YAgBsB,gCAAA,MAAA;AAAA,kBAAA,SAAAC,QAdlB,MAAuC;AAAA,qBAAAC,UAAA,IAAA,GADzCJ,mBAcuBM,UAAA,MAAAC,WAbM,KAAW,aAAA,CAA9B,SAAS,UAAK;0CADxBI,YAcuB,iCAAA;AAAA,wBAZpB,KAAK,QAAQ,YAAY;AAAA,wBACzB,OAAO,QAAQ;AAAA,wBACf,OAAKV,eAAA;AAAA,0BAAuC,iBAAA,KAAA;AAAA,0BAAA,WAAkD,QAAQ,aAAS;AAAA,0BAAA,OAAuC,QAAQ;AAAA,0BAAgD,mBAAA,KAAA;AAAA,wBAAA,CAAA;AAAA;yCAO/M,MAEM;AAAA,0BAFNQ,mBAEM,OAAA;AAAA,4BAFA,OAAKC,eAAG,CAAA,KAAA,cAAc,QAAQ,OAAO,QAAQ,MAAM,CAAA,CAAA;AAAA,0BAAA,GACnDL,iBAAA,QAAQ,UAAM,QAAY,QAAQ,WAAM,OAAY,KAAS,SAAA,QAAQ,OAAO,QAAQ,MAAM,CAAA,GAAA,CAAA;AAAA,wBAAA,CAAA;AAAA;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../../src/table/table/Table.vue"],"sourcesContent":["<template>\n <div class=\"ecan-table\" :style=\"style\">\n <skeleton :loading=\"loading\">\n <a-table\n class=\"table\"\n :style=\"{\n height: '100%'\n }\"\n :columns=\"tableColumns\"\n :data-source=\"tableDataSource\"\n :bordered=\"bordered\"\n :size=\"size\"\n :customRow=\"customRow\"\n :scroll=\"{ x, y }\"\n :pagination=\"pagination\"\n @change=\"tableChange\"\n >\n <template v-slot:bodyCell=\"{ column, index, text, record }\">\n <!-- 序列配置 -->\n <template v-if=\"column.dataIndex === 'SEQ'\">\n <span\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ index + 1 }}\n </span>\n </template>\n <!-- 操作列配置 -->\n <template v-else-if=\"column.dataIndex === 'ACTION'\">\n <div class=\"action-list\">\n <div class=\"action\" v-for=\"(action, index) in actionList\" :key=\"index\">\n <a\n :href=\"handleHref(action.href, record)\"\n :target=\"handleHrefTarget(action.target)\"\n :style=\"{\n color: action.color,\n fontSize,\n fontWeight\n }\"\n @click=\"onTouchHrefEvent(action.target, handleHref(action.href, record))\"\n >\n {{ action.title }}\n </a>\n </div>\n </div>\n </template>\n <template v-else>\n <div\n :class=\"[contrastClass(text, column.format)]\"\n :style=\"{\n fontSize,\n fontWeight\n }\"\n >\n {{ (column.format != null || column.format !== '') && formatFn(text, column.format) }}\n </div>\n </template>\n </template>\n <template v-slot:summary>\n <a-table-summary v-if=\"summaryList.length > 0\">\n <a-table-summary-row>\n <a-table-summary-cell\n v-for=\"(summary, index) in summaryList\"\n :key=\"summary.dataIndex + index\"\n :index=\"summary.index\"\n :style=\"{\n backgroundColor: cellBackgroundColor,\n textAlign: summary.cellAlign || 'center',\n color: summary.cellColor,\n borderBottomColor: borderColor\n }\"\n >\n <div :class=\"[contrastClass(summary.total, summary.format)]\">\n {{ (summary.format != null || summary.format !== '') && formatFn(summary.total, summary.format) }}\n </div>\n </a-table-summary-cell>\n </a-table-summary-row>\n </a-table-summary>\n </template>\n </a-table>\n </skeleton>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, unref, ref, watch, inject } from 'vue'\nimport {\n Table as ATable,\n TableSummary as ATableSummary,\n TableSummaryRow as ATableSummaryRow,\n TableSummaryCell as ATableSummaryCell\n} from 'ant-design-vue'\nimport 'ant-design-vue/es/table/style'\nimport {\n usePickComponentStyle,\n useEmitEvent,\n useRequestData,\n useOnEvent,\n useIndicatorData,\n useVariablesInText\n} from '@/hooks'\nimport { tableComponentProps } from './props'\nimport { formatMoney, formatPercentage } from '@/utils/util'\nimport { GLOBAL_CONFIG, GLOBAL_MODEL, REQUEST_MODEL } from '@/utils/constant'\nimport Skeleton from '@/common/skeleton/Skeleton.vue'\nimport { cloneDeep } from 'lodash-es'\n\nexport default defineComponent({\n name: 'EcanTable',\n components: {\n Skeleton,\n ATable,\n ATableSummary,\n ATableSummaryRow,\n ATableSummaryCell\n },\n props: {\n ...tableComponentProps\n },\n setup (props, { expose }) {\n const style = usePickComponentStyle(props)\n const splitY = computed(() => {\n if (props.paginationShow) {\n switch (props.size) {\n case 'small':\n return 90\n case 'middle':\n return 100\n default:\n return 120\n }\n } else {\n switch (props.size) {\n case 'small':\n return 40\n case 'middle':\n return 47\n default:\n return 55\n }\n }\n })\n const x = computed(() => props.scrollX)\n const y = computed(() => parseFloat(props.height as string) - unref(splitY))\n const myColumns = ref([] as { [key: string]: any } [])\n const myDataSource = ref(props.data as { [key: string]: any } [])\n const tableColumns = ref([] as { [key: string]: any } [])\n const tableDataSource = ref([] as { [key: string]: any } [])\n const total = ref(0)\n const pageNum = ref(1)\n const pageSize = computed(() => props.paginationPageSize as number)\n const handleColumns = (columns: { [key: string]: any } [] = []) => {\n // 复制表头数据\n let _columns = [] as { [key: string]: any } []\n const isUseSeq = props.isUseSeq as boolean\n if (isUseSeq) {\n // 添加序号\n _columns.push({\n title: '序号',\n dataIndex: 'SEQ'\n })\n }\n _columns = _columns.concat(cloneDeep((columns)))\n // 添加操作列\n if (props.isUseAction) {\n _columns.push({\n title: '操作',\n dataIndex: 'ACTION',\n width: props.actionColumnWidth\n })\n }\n const len = _columns.length\n const columnsFixedNum = props.columnsFixedNum as number\n // 这里的循环为了 props 是引用类型,会造成脏数据(上次修改后,还会存在上次的数据)\n // 如果使用深拷贝会造成性能的浪费,循环来说相对更快\n for (let i = 0; i < len; i++) {\n const column = _columns[i]\n if (i < columnsFixedNum) {\n column.fixed = 'left'\n } else {\n column.fixed = false\n }\n const {\n headerCellAlign = 'center',\n headerCellColor,\n cellAlign = 'center',\n cellColor\n } = column\n // 通用配置\n column.customHeaderCell = () => ({\n style: {\n textAlign: headerCellAlign,\n color: headerCellColor,\n backgroundColor: props.headerCellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n column.customCell = () => ({\n style: {\n textAlign: cellAlign,\n color: cellColor,\n backgroundColor: props.cellBackgroundColor,\n borderBottomColor: props.borderColor\n }\n })\n }\n myColumns.value = _columns\n }\n watch(() => [\n props.columns,\n props.isUseSeq,\n props.isUseAction,\n props.columnsFixedNum,\n props.actionColumnWidth,\n props.headerCellBackgroundColor,\n props.cellBackgroundColor,\n props.borderColor\n ], () => {\n handleColumns(props.columns as any [])\n }, {\n immediate: true,\n deep: true\n })\n watch(() => [props.data, props.dataType], ([data, dataType]) => {\n if (dataType !== 'static') return\n myDataSource.value = data as { [key: string]: any } []\n })\n const handleReverseTable = (columns: { [key:string]: any} [], dataSource: { [key:string]: any} []) => {\n const firstColumns = columns[0]\n const _columns = [{\n title: firstColumns.title,\n dataIndex: 'col0',\n key: 'col0'\n }] as { [key:string]: any } []\n for (let i = 0; i < dataSource.length; i++) {\n const data = dataSource[i]\n const dataIndex = 'col' + (i + 1)\n _columns.push({\n title: data[firstColumns.dataIndex],\n dataIndex,\n key: dataIndex\n })\n }\n const _dataSource = [] as { [key:string]: any } []\n for (let i = 1; i < columns.length; i++) {\n const column = columns[i]\n const _data = { col0: column.title }\n for (let j = 0; j < dataSource.length; j++) {\n const data = dataSource[j]\n _data[`col${j + 1}`] = data[column.dataIndex]\n }\n _dataSource.push(_data)\n }\n return {\n columns: _columns,\n dataSource: _dataSource\n }\n }\n watch(() => [props.isReverse, myColumns.value, myDataSource.value], () => {\n if (props.isReverse) {\n const { columns, dataSource } = handleReverseTable(unref(myColumns), unref(myDataSource))\n tableColumns.value = columns\n tableDataSource.value = dataSource\n } else {\n tableColumns.value = unref(myColumns)\n tableDataSource.value = unref(myDataSource)\n }\n }, {\n deep: true,\n immediate: true\n })\n const orderCondition = ref<string | undefined>(undefined)\n const requestData = useRequestData(props)\n const loading = ref(false)\n const handleRequestData = async (isUseLoading: boolean = true) => {\n try {\n if (isUseLoading) loading.value = true\n // 初始参数:排序\n let params = {\n orderCondition: unref(orderCondition)\n } as { [key:string]: any }\n // 分页\n if (props.paginationShow) {\n params = {\n ...params,\n pageNum: unref(pageNum),\n pageSize: unref(pageSize),\n layer: '1'\n }\n }\n const res = await requestData(params)\n const { rows = [], total: tableTotal = 0 } = res?.data?.data || {}\n total.value = tableTotal\n myDataSource.value = rows\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n const tableChange = ({ current }: { current: number }, _filters, sorter) => {\n pageNum.value = current\n if (sorter && Object.keys(sorter).length > 0) {\n const { field, order } = sorter as { field: string | null, order: 'ascend' | 'descend' }\n const map = {\n ascend: 'asc',\n descend: 'desc'\n }\n const fieldOrder = map[order]\n if (field != null && fieldOrder != null) {\n orderCondition.value = field + ' ' + fieldOrder\n pageNum.value = 1\n }\n }\n refreshData(false)\n }\n const pagination = computed(() => {\n const simple = props.simple\n const position = [props.paginationPosition]\n return props.paginationShow && {\n simple,\n position,\n total: unref(total),\n current: unref(pageNum),\n pageSize: unref(pageSize),\n showSizeChanger: false\n }\n })\n const formatBoolean = (value: string | number) => {\n if (+value === 1) return '是'\n if (+value === 0) return '否'\n return value\n }\n type Format = 'money' | 'percentage' | 'contrast' | 'boolean' | ''\n const formatFn = (value: string | number, format?: Format) => {\n if (format == null || format === '') return value\n const map = {\n money: formatMoney,\n percentage: formatPercentage,\n contrast: formatPercentage,\n boolean: formatBoolean\n }\n return map[format](value) || ''\n }\n const contrastClass = (value: string | number, format: Format) => {\n const _value = parseFloat(value + '')\n if (format !== 'contrast') {\n return ''\n }\n switch (true) {\n case _value >= 0:\n return 'goUp'\n case _value < 0:\n return 'goDown'\n }\n }\n\n const emitEvent = useEmitEvent(props)\n\n const { pageMode } = inject(GLOBAL_CONFIG, {\n pageMode: 'normal'\n })\n\n const { getGlobalModel, setGlobalModel } = inject(GLOBAL_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n getGlobalModel: (key: string) => void 0,\n // @ts-ignore\n // eslint-disable-next-line no-void\n setGlobalModel: (key: string, value: any) => void 0\n })\n\n const handleIndicatorDataset = (dataColumns: any [] = [], dataRows: { [key:string]: any }[] = []) => {\n const _columns = dataColumns.map((column: string) => ({ title: column, dataIndex: column, key: column }))\n handleColumns(_columns)\n myDataSource.value = dataRows\n }\n\n // 指标库\n const indicatorData = useIndicatorData(props)\n const handleIndicatorData = async () => {\n try {\n loading.value = true\n const res = await indicatorData()\n handleIndicatorDataset(res?.data?.data?.columns, res?.data?.data?.rows)\n } catch (e) {\n console.error(e)\n } finally {\n loading.value = false\n }\n }\n\n const customRow = (record) => ({\n onClick: emitEvent('click', () => {\n const id = props.id as string\n const modal = getGlobalModel(id)\n // 约定获取数据\n setGlobalModel(id, { ...modal, RECORD: record })\n })\n })\n const refreshData = (isUseLoading: boolean = true) => {\n if (unref(pageMode) === 'design') return\n switch (props.dataType) {\n case 'request':\n handleRequestData(isUseLoading)\n break\n case 'indicator':\n handleIndicatorData()\n break\n }\n }\n useOnEvent(props, {\n refreshData\n })\n const summaryList = computed(() => {\n const columns = props.columns as { [key: string]: any } []\n const summaryList = (props.isUseSeq ? [{ total: '小计' }] : []) as { [key: string]: any } []\n let calcTotalCount = 0\n for (let i = 0; i < columns.length; i++) {\n const column = columns[i]\n const { isCalcTotal } = column\n if (isCalcTotal) {\n summaryList.push({\n ...column,\n index: i,\n total: 0\n })\n calcTotalCount++\n } else {\n summaryList.push({\n ...column\n })\n }\n }\n // 为空直接返回\n if (calcTotalCount === 0) return []\n const start = (unref(pageNum) - 1) * unref(pageSize)\n const end = start + unref(pageSize)\n const records = unref(myDataSource).slice(start, end)\n for (let i = 0; i < records.length; i++) {\n const record = records[i]\n for (let j = 0; j < summaryList.length; j++) {\n const summary = summaryList[j]\n const { dataIndex, total } = summary\n const num = +record[dataIndex]\n if (!Number.isNaN(num) && total != null) {\n summary.total = num + total\n }\n }\n }\n return summaryList\n })\n\n const { setRequest } = inject(REQUEST_MODEL, {\n // @ts-ignore\n // eslint-disable-next-line no-void\n setRequest: (requestFn: Function, sortNum: number) => void 0\n })\n\n setRequest(refreshData, props.requestSort as number)\n\n expose({\n refreshData\n })\n\n const handleHref = (href: string = '', data: { [key:string]: any }) => {\n return useVariablesInText(href, data)\n }\n\n const handleHrefTarget = (target: 'self' | 'blank' | 'event') => {\n if (target === 'event') {\n return undefined\n } else {\n const map = {\n self: '_self',\n blank: '_blank'\n }\n return map[target]\n }\n }\n\n const onTouchHrefEvent = (target: 'self' | 'blank' | 'event', href: string = '') => {\n if (target === 'event') {\n window.parent.postMessage({\n type: 'openPage',\n url: href\n }, '*')\n }\n }\n\n return {\n x,\n y,\n style,\n customRow,\n pagination,\n formatFn,\n contrastClass,\n tableChange,\n tableDataSource,\n tableColumns,\n summaryList,\n loading,\n onTouchHrefEvent,\n handleHref,\n handleHrefTarget\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.table {\n width: 100%;\n}\n\n.goUp {\n color: #FF512E;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-up.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.goDown {\n color: #39cf93;\n display: flex;\n align-items: center;\n justify-content: center;\n &:before {\n content: '';\n display: block;\n background-image: url(\"../../assets/go-down.png\");\n width: 12px;\n height: 12px;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2px;\n }\n}\n\n.action-list {\n display: flex;\n width: 100%;\n}\n.action {\n flex: 1;\n}\n</style>\n\n<style lang=\"less\">\n.ecan-table {\n *::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n *::-webkit-scrollbar-thumb {\n border-radius: 3px;\n -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);\n background-color: #c8c9ca !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #fff;\n }\n\n .ant-table-cell-scrollbar {\n box-shadow: 0 1px 0 1px transparent;\n }\n\n .ant-table {\n color: rgba(0, 0, 0, .65);\n background: #ffffff;\n }\n\n .ant-table-thead > tr > th {\n color: rgba(0, 0, 0, .85);\n background: #fafafa;\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #f0f0f0;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #f0f0f0 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #f0f0f0 !important;\n }\n }\n\n .anticon {\n color: rgba(0, 0, 0, .65) !important;\n }\n}\n\n[datav-theme='darkBlue'] {\n .ecan-table {\n *::-webkit-scrollbar-thumb {\n background-color: #2f4dac !important;\n }\n\n *::-webkit-scrollbar-track {\n background-color: #192c70;\n }\n\n *::-webkit-scrollbar-corner {\n background-color: #192c70 !important;\n }\n .ant-table {\n color: #e8e8e8;\n background: #071655;\n }\n\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-content > table,\n .ant-table.ant-table-bordered > .ant-table-container > .ant-table-header > table {\n border-top: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-thead > tr > th {\n color: #cdd0f7;\n background: #17338c;\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-tbody > tr > td {\n border-bottom: 1px solid #3e8ee3;\n }\n\n .ant-table-bordered {\n .ant-table-container {\n border: 1px solid #3e8ee3 !important;\n }\n\n .ant-table-cell {\n border-right: 1px solid #3e8ee3 !important;\n }\n }\n\n .ant-pagination-item-link {\n background: #17338c !important;\n }\n\n .ant-pagination-item {\n background: #17338c !important;\n }\n\n .anticon {\n color: rgba(255, 255, 255, .65) !important;\n }\n\n .ant-table-tbody > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td {\n background: #225b98;\n }\n }\n\n td.ant-table-column-sort {\n background: #225b98;\n }\n}\n</style>\n"],"names":["ATable","ATableSummary","ATableSummaryRow","ATableSummaryCell","summaryList","total","_createElementBlock","_normalizeStyle","_createVNode","_withCtx","_openBlock","_toDisplayString","_Fragment","_renderList","index","_createElementVNode","_normalizeClass","_createBlock"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/table/table/index.ts"],"sourcesContent":["import { withInstall } from '
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/table/table/index.ts"],"sourcesContent":["import { withInstall } from '@/utils/withInstall'\nimport Table from './Table.vue'\nexport const EcanTable = withInstall(Table)\nexport default EcanTable\nexport * from './props'\n"],"names":[],"mappings":";;;AAEa,MAAA,YAAY,YAAY,KAAK;"}
|
package/es/table/table/props.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"props.js","sources":["../../../src/table/table/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TableProps extends Props {\n columns: { [key: string]: any } []\n data: { [key: string]: any } []\n bordered: boolean\n size: 'default' | 'middle' | 'small'\n isUseSeq: boolean\n columnsFixedNum: number\n scrollX: number\n paginationShow: boolean\n paginationPosition: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n simple: boolean\n headerCellBackgroundColor: string\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean // 添加操作列\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n fontSize: string\n fontWeight: number\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'table' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '1' // 表格类型, 后台接口\n }\n}\n\nexport const tableProps: TableProps = {\n ...props,\n zIndex: 2,\n name: '表格',\n keyName: '表格',\n type: 'ecanTable',\n width: '400px',\n height: '240px',\n bordered: false,\n fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n simple: false,\n headerCellBackgroundColor: '',\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\n actionList: [{\n title: '',\n href: '',\n target: '',\n color: ''\n }],\n actionColumnWidth: 100,\n columns: [\n {\n title: '姓名',\n dataIndex: 'name'\n },\n {\n title: '年龄',\n dataIndex: 'age'\n },\n {\n title: '住址',\n dataIndex: 'address'\n }\n ],\n data: [\n {\n name: '小明',\n age: 32,\n address: '福州软件园'\n },\n {\n name: '小红',\n age: 25,\n address: '福州软件园'\n }\n ],\n graphicConfig: {\n chartType: 'table', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '1' // 图类型, 后台接口\n }\n}\n\n// 转化默认属性\nexport const tableComponentProps = transformToComponentProps(tableProps)\n\nexport const tableEvents = ['click', 'refreshData']\n"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"props.js","sources":["../../../src/table/table/props.ts"],"sourcesContent":["import {\n Props,\n props,\n transformToComponentProps\n} from '@/utils/props'\n\nexport interface TableProps extends Props {\n columns: { [key: string]: any } []\n data: { [key: string]: any } []\n bordered: boolean\n size: 'default' | 'middle' | 'small'\n isUseSeq: boolean\n columnsFixedNum: number\n scrollX: number\n paginationShow: boolean\n paginationPosition: 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'\n simple: boolean\n headerCellBackgroundColor: string\n cellBackgroundColor: string\n borderColor: string\n paginationPageSize: number\n isUseAction: boolean // 添加操作列\n actionColumnWidth: number\n actionList: { [key: string]: any } []\n fontSize: string\n fontWeight: number\n isReverse: boolean\n graphicConfig: {\n [key:string]: any,\n // 全部属性, 为了属性可拓展,所以在设计器中自由添加\n // classification: { [key:string]: any }\n // series: { [key:string]: any }\n // indicatorList: { [key:string]: any } []\n // sqlConditions: { [key:string]: any } []\n // idxLibMode: string\n // source: string\n // dataViewId: string\n chartType: 'table' // 图表类型,后台接口\n plugin: '1' // 插件类型,后台接口\n layer: '1' // 表格类型, 后台接口\n }\n}\n\nexport const tableProps: TableProps = {\n ...props,\n zIndex: 2,\n name: '表格',\n keyName: '表格',\n type: 'ecanTable',\n width: '400px',\n height: '240px',\n bordered: false,\n fontSize: '14px',\n isUseSeq: false,\n size: 'default',\n fontWeight: 400,\n columnsFixedNum: 0,\n scrollX: 0,\n paginationShow: true,\n isReverse: false,\n simple: false,\n headerCellBackgroundColor: '',\n cellBackgroundColor: '',\n borderColor: '',\n paginationPosition: 'bottomRight',\n paginationPageSize: 10,\n isUseAction: false,\n actionList: [{\n title: '',\n href: '',\n target: '',\n color: ''\n }],\n actionColumnWidth: 100,\n columns: [\n {\n title: '姓名',\n dataIndex: 'name'\n },\n {\n title: '年龄',\n dataIndex: 'age'\n },\n {\n title: '住址',\n dataIndex: 'address'\n }\n ],\n data: [\n {\n name: '小明',\n age: 32,\n address: '福州软件园'\n },\n {\n name: '小红',\n age: 25,\n address: '福州软件园'\n }\n ],\n graphicConfig: {\n chartType: 'table', // 图表类型,后台接口\n plugin: '1', // 插件类型,后台接口\n layer: '1' // 图类型, 后台接口\n }\n}\n\n// 转化默认属性\nexport const tableComponentProps = transformToComponentProps(tableProps)\n\nexport const tableEvents = ['click', 'refreshData']\n"],"names":[],"mappings":";AA2CO,MAAM,aAAyB;AAAA,EACpC,GAAG;AAAA,EACH,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,2BAA2B;AAAA,EAC3B,qBAAqB;AAAA,EACrB,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,YAAY,CAAC;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA,CACR;AAAA,EACD,mBAAmB;AAAA,EACnB,SAAS;AAAA,IACP;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,WAAW;AAAA,IACb;AAAA,EACF;AAAA,EACA,MAAM;AAAA,IACJ;AAAA,MACE,MAAM;AAAA,MACN,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,KAAK;AAAA,MACL,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;AAGa,MAAA,sBAAsB,0BAA0B,UAAU;AAE1D,MAAA,cAAc,CAAC,SAAS,aAAa;"}
|
package/es/text/text/Text.js
CHANGED
|
@@ -6,6 +6,8 @@ import { useEmitEvent } from "../../hooks/useEmitEvent.js";
|
|
|
6
6
|
import "lodash-es";
|
|
7
7
|
import { useRequestData } from "../../hooks/useRequestData.js";
|
|
8
8
|
import { GLOBAL_CONFIG, REQUEST_MODEL } from "../../utils/constant.js";
|
|
9
|
+
import { usePageUrl } from "../../hooks/usePageUrl.js";
|
|
10
|
+
import { useVariablesInText } from "../../hooks/useVariablesInText.js";
|
|
9
11
|
import "../../utils/request.js";
|
|
10
12
|
import "ant-design-vue";
|
|
11
13
|
import Skeleton from "../../common/skeleton/Skeleton.js";
|
|
@@ -106,6 +108,24 @@ const _sfc_main = defineComponent({
|
|
|
106
108
|
});
|
|
107
109
|
const emitEvent = useEmitEvent(props);
|
|
108
110
|
const click = emitEvent("click", () => {
|
|
111
|
+
if (!props.linkPage && !props.href)
|
|
112
|
+
return;
|
|
113
|
+
const linkPage = props.linkPage || "";
|
|
114
|
+
const pageUrl = usePageUrl(unref(pageMode), linkPage);
|
|
115
|
+
const href = props.href;
|
|
116
|
+
let url = href || pageUrl;
|
|
117
|
+
url = useVariablesInText(url);
|
|
118
|
+
const target = props.target;
|
|
119
|
+
if (target == null || target === "")
|
|
120
|
+
return;
|
|
121
|
+
if (target !== "event") {
|
|
122
|
+
window.open(url, "_" + target);
|
|
123
|
+
} else {
|
|
124
|
+
window.parent.postMessage({
|
|
125
|
+
type: "openPage",
|
|
126
|
+
url: href
|
|
127
|
+
}, "*");
|
|
128
|
+
}
|
|
109
129
|
});
|
|
110
130
|
return {
|
|
111
131
|
style,
|
|
@@ -132,7 +152,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
132
152
|
onClick: _cache[0] || (_cache[0] = (...args) => _ctx.click && _ctx.click(...args))
|
|
133
153
|
}, null, 12, _hoisted_1));
|
|
134
154
|
}
|
|
135
|
-
const Text = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-
|
|
155
|
+
const Text = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-604c9a14"]]);
|
|
136
156
|
export {
|
|
137
157
|
Text as default
|
|
138
158
|
};
|