@ecan-bi/indicator-library 1.1.36 → 1.1.38
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/AntdIcon-7ebd41b4.mjs +1 -1
- package/dist/DrillModal-3f5a0070-e4053b53.mjs +1 -1
- package/dist/assets/editor.worker-02df2e61.js +1 -1
- package/dist/assets/json.worker-867823a6.js +1 -1
- package/dist/assets/ts.worker-7254b425.js +1 -1
- package/dist/index-060ef291.mjs +846 -0
- package/dist/index-060ef291.mjs.map +1 -0
- package/dist/{index-f56e187e.mjs → index-cf72af88.mjs} +946 -944
- package/dist/index-cf72af88.mjs.map +1 -0
- package/dist/{index-1ae40344.mjs → index-fadf33e3.mjs} +4764 -4600
- package/dist/index-fadf33e3.mjs.map +1 -0
- package/dist/index.es-7e69466e.mjs +1 -1
- package/dist/index.es.js +2 -2
- package/dist/index.umd.js +62 -62
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +2 -2
- package/package.json +2 -2
- package/types/indicator/indicator-library/data-config/data-config-group/data-config-card/CustomGroupModal.vue.d.ts +21 -6
- package/types/indicator/indicator-library/data-config/data-config-group/data-config-card/DataConfigCard.vue.d.ts +1 -1
- package/types/indicator/indicator-library/data-list/DataSourceList.vue.d.ts +2 -0
- package/types/indicator/indicator-library/data-list/DataViewList.vue.d.ts +3 -1
- package/types/indicator/indicator-library/data-list/IndSourceList.vue.d.ts +8 -0
- package/dist/index-1ae40344.mjs.map +0 -1
- package/dist/index-da29806e.mjs +0 -789
- package/dist/index-da29806e.mjs.map +0 -1
- package/dist/index-f56e187e.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-da29806e.mjs","sources":["../src/indicator/indicator-library/data-list/DataViewList.vue","../src/indicator/indicator-library/data-list/DataViewList.vue","../node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/CaretRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons-vue/es/icons/LoadingOutlined.js","../src/indicator/indicator-library/data-list/IndSourceList.vue","../src/indicator/indicator-library/data-list/IndSourceList.vue","../src/indicator/indicator-library/data-list/DataSourceList.vue","../src/indicator/indicator-library/data-list/DataSourceList.vue","../src/indicator/indicator-library/data-list/DataList.vue","../src/indicator/indicator-library/data-list/DataList.vue"],"sourcesContent":["<template>\n <div class=\"data-view-list\">\n <a-spin\n wrapper-class-name=\"tree-spin\"\n :spinning=\"treeSelectLoading\"\n tip=\"视图加载中...\"\n >\n <a-tree-select\n :value=\"dataViewId\"\n style=\"width: 100%\"\n placeholder=\"请选择视图\"\n :dropdown-style=\"{ maxHeight: '400px', overflow: 'auto' }\"\n :tree-data=\"treeSelectData\"\n :load-data=\"handleLoadData\"\n tree-data-simple-mode\n @change=\"onDataViewIdChange\"\n />\n </a-spin>\n <div class=\"columns\">\n <a-spin\n :spinning=\"dataViewLoading\"\n tip=\"数据加载中...\"\n >\n <draggable\n v-model=\"dataViewList\"\n :group=\"{\n name: 'cardItem',\n pull: 'clone',\n put: false\n }\"\n item-key=\"id\"\n :sort=\"false\"\n @start=\"onDragStart($event, dataViewList)\"\n >\n <template #item=\"{ element: dataView }\">\n <div class=\"column-item\">\n 【{{ mapGenericType(dataView.genericType) }}】\n <span class=\"column-item-name\">\n {{ dataView.name }}\n </span>\n </div>\n </template>\n </draggable>\n </a-spin>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n reactive,\n ref,\n computed,\n unref,\n onMounted,\n inject\n} from 'vue'\nimport { TreeSelectProps, Spin as ASpin, TreeSelect as ATreeSelect } from 'ant-design-vue'\nimport {\n REQUEST,\n INDICATOR_URL,\n INDICATOR_TOKEN,\n DATA_LIST,\n GRAPHIC_CONFIG,\n UPDATE_GRAPHIC_CONFIG\n} from '@/utils/constant'\nimport Draggable from 'vuedraggable'\nexport default defineComponent({\n name: 'DataViewList',\n components: {\n ASpin,\n ATreeSelect,\n Draggable\n },\n setup () {\n const request = inject(REQUEST) as any\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\n const graphicConfig = inject(GRAPHIC_CONFIG) as any\n const updateGraphicConfig = inject(UPDATE_GRAPHIC_CONFIG) as any\n const dataViewId = computed(() => unref(graphicConfig)?.dataViewId || null)\n const treeSelectLoading = ref(false)\n const treeSelectData = ref<TreeSelectProps['treeData']>([])\n // @ts-ignore\n const PAGE_ID = window?.config?.pageId\n interface TreeDom {\n id: string\n pId: string\n title: string\n value: string\n isLeaf?: boolean\n disabled?: boolean\n selectable?: boolean\n }\n // 当前选中树节点\n const selectedItem = reactive<TreeDom>({\n title: '已选',\n value: 'YXJG',\n id: 'YXJG',\n pId: '0',\n disabled: true,\n selectable: false,\n isLeaf: true\n })\n // 回显已选节点\n const echoSelectedNode = async () => {\n const id = dataViewId.value\n treeSelectLoading.value = true\n try {\n const { data } = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n {\n source: 'SQL_VIEW',\n dataViewId: id,\n pageId: PAGE_ID,\n pageFlag: true\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n treeSelectLoading.value = false\n if (data.success) {\n treeSelectData.value?.push(selectedItem)\n treeSelectData.value = treeSelectData.value?.concat(\n transTreeData([data.data.rows[0]] as any, 'YXJG')\n )\n }\n } catch (error) {\n treeSelectLoading.value = false\n }\n }\n // 树的数据转换\n const transTreeData = (\n data: { [key: string]: any }[] = [],\n pId?: string\n ) => {\n const list: TreeSelectProps['treeData'] = []\n data.forEach((item) => {\n list.push({\n id: item.id,\n pId: pId ?? item.parentId,\n value: item.id,\n title: item.name,\n isLeaf: item.leaf || false,\n nature: item.nature,\n selectable: item.leaf || false\n })\n })\n return list\n }\n const handleLoadData = async (treeNode?: any, isFirst?: boolean) => {\n let id = 0\n if (treeNode) {\n const { value } = treeNode.dataRef\n id = value\n }\n const { data } = await request.post(\n `${INDICATOR_URL}/dataview/treetable`,\n {\n pageFlag: true,\n pageId: PAGE_ID,\n parentId: id\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n\n if (data.success) {\n treeSelectData.value = unref(treeSelectData)?.concat(\n transTreeData(data.data)\n )\n if (isFirst && unref(dataViewId)) {\n await echoSelectedNode()\n }\n }\n }\n\n const onDataViewIdChange = (dataViewId: string) => {\n handleDataViewColumns(dataViewId)\n updateGraphicConfig({\n dataViewId,\n // 重制数据\n classificationList: [],\n seriesList: [],\n leftAxisList: [],\n rightAxisList: [],\n indicators: [],\n controlList: []\n })\n }\n\n const { setDataList } = inject(DATA_LIST, {\n // eslint-disable-next-line\n setDataList: (list: { [key: string]: any }[]) => list\n })\n\n const dataViewLoading = ref(false)\n\n const dataViewList = ref<{ [key: string]: any }[]>([])\n\n const handleDataViewColumns = async (dataViewId: string) => {\n if (!dataViewId) return\n dataViewList.value = []\n dataViewLoading.value = true\n try {\n const res = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n {\n source: 'SQL_VIEW',\n dataViewId,\n pageId: PAGE_ID,\n pageFlag: true\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n })\n const { success, data = {} } = res.data\n dataViewLoading.value = false\n if (success) {\n const { rows = [] } = data\n rows?.forEach((row: any) => {\n const columns =\n row?.dataViewColumns?.map((column: any) => {\n return {\n ...column,\n // 复选框\n show: true\n }\n }) || []\n dataViewList.value = [...unref(dataViewList), ...columns]\n })\n setDataList(unref(dataViewList))\n }\n } catch (error) {\n dataViewLoading.value = false\n }\n }\n const mapGenericType = (genericType: 'TEXT' | 'NUMBER' | 'DATE') => {\n const map = {\n TEXT: '字符',\n NUMBER: '数字',\n DATE: '时间'\n }\n return map[genericType]\n }\n\n const onDragStart = (\n event: any,\n dataViews: { [key: string]: any }[]\n ) => {\n const dataView = dataViews[event.oldIndex]\n if (dataView) {\n const copyItem = {\n ...dataView,\n label: dataView.name,\n name: dataView.label\n }\n sessionStorage.setItem('indicator-list-item', JSON.stringify(copyItem))\n }\n }\n\n onMounted(async () => {\n await handleLoadData(undefined, true)\n handleDataViewColumns(unref(dataViewId))\n })\n return {\n dataViewId,\n handleLoadData,\n treeSelectData,\n treeSelectLoading,\n dataViewList,\n dataViewLoading,\n onDataViewIdChange,\n mapGenericType,\n onDragStart\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.data-view-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n .tree-spin {\n height: auto;\n }\n}\n.columns {\n height: 100%;\n overflow: auto;\n flex: 1;\n padding-top: 10px;\n}\n\n.column-item {\n display: flow-root;\n margin: 3px 0;\n padding: 2px 0;\n}\n\n.column-item:hover {\n background: #eee;\n}\n\n.column-item-name {\n margin-left: 5px;\n}\n</style>\n","<template>\n <div class=\"data-view-list\">\n <a-spin\n wrapper-class-name=\"tree-spin\"\n :spinning=\"treeSelectLoading\"\n tip=\"视图加载中...\"\n >\n <a-tree-select\n :value=\"dataViewId\"\n style=\"width: 100%\"\n placeholder=\"请选择视图\"\n :dropdown-style=\"{ maxHeight: '400px', overflow: 'auto' }\"\n :tree-data=\"treeSelectData\"\n :load-data=\"handleLoadData\"\n tree-data-simple-mode\n @change=\"onDataViewIdChange\"\n />\n </a-spin>\n <div class=\"columns\">\n <a-spin\n :spinning=\"dataViewLoading\"\n tip=\"数据加载中...\"\n >\n <draggable\n v-model=\"dataViewList\"\n :group=\"{\n name: 'cardItem',\n pull: 'clone',\n put: false\n }\"\n item-key=\"id\"\n :sort=\"false\"\n @start=\"onDragStart($event, dataViewList)\"\n >\n <template #item=\"{ element: dataView }\">\n <div class=\"column-item\">\n 【{{ mapGenericType(dataView.genericType) }}】\n <span class=\"column-item-name\">\n {{ dataView.name }}\n </span>\n </div>\n </template>\n </draggable>\n </a-spin>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n defineComponent,\n reactive,\n ref,\n computed,\n unref,\n onMounted,\n inject\n} from 'vue'\nimport { TreeSelectProps, Spin as ASpin, TreeSelect as ATreeSelect } from 'ant-design-vue'\nimport {\n REQUEST,\n INDICATOR_URL,\n INDICATOR_TOKEN,\n DATA_LIST,\n GRAPHIC_CONFIG,\n UPDATE_GRAPHIC_CONFIG\n} from '@/utils/constant'\nimport Draggable from 'vuedraggable'\nexport default defineComponent({\n name: 'DataViewList',\n components: {\n ASpin,\n ATreeSelect,\n Draggable\n },\n setup () {\n const request = inject(REQUEST) as any\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\n const graphicConfig = inject(GRAPHIC_CONFIG) as any\n const updateGraphicConfig = inject(UPDATE_GRAPHIC_CONFIG) as any\n const dataViewId = computed(() => unref(graphicConfig)?.dataViewId || null)\n const treeSelectLoading = ref(false)\n const treeSelectData = ref<TreeSelectProps['treeData']>([])\n // @ts-ignore\n const PAGE_ID = window?.config?.pageId\n interface TreeDom {\n id: string\n pId: string\n title: string\n value: string\n isLeaf?: boolean\n disabled?: boolean\n selectable?: boolean\n }\n // 当前选中树节点\n const selectedItem = reactive<TreeDom>({\n title: '已选',\n value: 'YXJG',\n id: 'YXJG',\n pId: '0',\n disabled: true,\n selectable: false,\n isLeaf: true\n })\n // 回显已选节点\n const echoSelectedNode = async () => {\n const id = dataViewId.value\n treeSelectLoading.value = true\n try {\n const { data } = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n {\n source: 'SQL_VIEW',\n dataViewId: id,\n pageId: PAGE_ID,\n pageFlag: true\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n treeSelectLoading.value = false\n if (data.success) {\n treeSelectData.value?.push(selectedItem)\n treeSelectData.value = treeSelectData.value?.concat(\n transTreeData([data.data.rows[0]] as any, 'YXJG')\n )\n }\n } catch (error) {\n treeSelectLoading.value = false\n }\n }\n // 树的数据转换\n const transTreeData = (\n data: { [key: string]: any }[] = [],\n pId?: string\n ) => {\n const list: TreeSelectProps['treeData'] = []\n data.forEach((item) => {\n list.push({\n id: item.id,\n pId: pId ?? item.parentId,\n value: item.id,\n title: item.name,\n isLeaf: item.leaf || false,\n nature: item.nature,\n selectable: item.leaf || false\n })\n })\n return list\n }\n const handleLoadData = async (treeNode?: any, isFirst?: boolean) => {\n let id = 0\n if (treeNode) {\n const { value } = treeNode.dataRef\n id = value\n }\n const { data } = await request.post(\n `${INDICATOR_URL}/dataview/treetable`,\n {\n pageFlag: true,\n pageId: PAGE_ID,\n parentId: id\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n\n if (data.success) {\n treeSelectData.value = unref(treeSelectData)?.concat(\n transTreeData(data.data)\n )\n if (isFirst && unref(dataViewId)) {\n await echoSelectedNode()\n }\n }\n }\n\n const onDataViewIdChange = (dataViewId: string) => {\n handleDataViewColumns(dataViewId)\n updateGraphicConfig({\n dataViewId,\n // 重制数据\n classificationList: [],\n seriesList: [],\n leftAxisList: [],\n rightAxisList: [],\n indicators: [],\n controlList: []\n })\n }\n\n const { setDataList } = inject(DATA_LIST, {\n // eslint-disable-next-line\n setDataList: (list: { [key: string]: any }[]) => list\n })\n\n const dataViewLoading = ref(false)\n\n const dataViewList = ref<{ [key: string]: any }[]>([])\n\n const handleDataViewColumns = async (dataViewId: string) => {\n if (!dataViewId) return\n dataViewList.value = []\n dataViewLoading.value = true\n try {\n const res = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n {\n source: 'SQL_VIEW',\n dataViewId,\n pageId: PAGE_ID,\n pageFlag: true\n },\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n })\n const { success, data = {} } = res.data\n dataViewLoading.value = false\n if (success) {\n const { rows = [] } = data\n rows?.forEach((row: any) => {\n const columns =\n row?.dataViewColumns?.map((column: any) => {\n return {\n ...column,\n // 复选框\n show: true\n }\n }) || []\n dataViewList.value = [...unref(dataViewList), ...columns]\n })\n setDataList(unref(dataViewList))\n }\n } catch (error) {\n dataViewLoading.value = false\n }\n }\n const mapGenericType = (genericType: 'TEXT' | 'NUMBER' | 'DATE') => {\n const map = {\n TEXT: '字符',\n NUMBER: '数字',\n DATE: '时间'\n }\n return map[genericType]\n }\n\n const onDragStart = (\n event: any,\n dataViews: { [key: string]: any }[]\n ) => {\n const dataView = dataViews[event.oldIndex]\n if (dataView) {\n const copyItem = {\n ...dataView,\n label: dataView.name,\n name: dataView.label\n }\n sessionStorage.setItem('indicator-list-item', JSON.stringify(copyItem))\n }\n }\n\n onMounted(async () => {\n await handleLoadData(undefined, true)\n handleDataViewColumns(unref(dataViewId))\n })\n return {\n dataViewId,\n handleLoadData,\n treeSelectData,\n treeSelectLoading,\n dataViewList,\n dataViewLoading,\n onDataViewIdChange,\n mapGenericType,\n onDragStart\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.data-view-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n .tree-spin {\n height: auto;\n }\n}\n.columns {\n height: 100%;\n overflow: auto;\n flex: 1;\n padding-top: 10px;\n}\n\n.column-item {\n display: flow-root;\n margin: 3px 0;\n padding: 2px 0;\n}\n\n.column-item:hover {\n background: #eee;\n}\n\n.column-item-name {\n margin-left: 5px;\n}\n</style>\n","// This icon file is generated automatically.\nvar CaretDownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"outlined\" };\nexport default CaretDownOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CaretDownOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretDownOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretDownOutlined = function CaretDownOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CaretDownOutlinedSvg\n }), null);\n};\n\nCaretDownOutlined.displayName = 'CaretDownOutlined';\nCaretDownOutlined.inheritAttrs = false;\nexport default CaretDownOutlined;","// This icon file is generated automatically.\nvar CaretRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M715.8 493.5L335 165.1c-14.2-12.2-35-1.2-35 18.5v656.8c0 19.7 20.8 30.7 35 18.5l380.8-328.4c10.9-9.4 10.9-27.6 0-37z\" } }] }, \"name\": \"caret-right\", \"theme\": \"outlined\" };\nexport default CaretRightOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport CaretRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretRightOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CaretRightOutlined = function CaretRightOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": CaretRightOutlinedSvg\n }), null);\n};\n\nCaretRightOutlined.displayName = 'CaretRightOutlined';\nCaretRightOutlined.inheritAttrs = false;\nexport default CaretRightOutlined;","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import { createVNode as _createVNode } from \"vue\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, context) {\n var p = _objectSpread({}, props, context.attrs);\n\n return _createVNode(AntdIcon, _objectSpread({}, p, {\n \"icon\": LoadingOutlinedSvg\n }), null);\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nLoadingOutlined.inheritAttrs = false;\nexport default LoadingOutlined;","<template>\r\n <div class=\"columns\" :class=\"isSub ? 'sub-columns' : ''\" ref=\"columnRef\">\r\n <a-spin\r\n :spinning=\"searchLoading\"\r\n tip=\"数据源加载中...\"\r\n >\r\n <div class=\"no-data\" v-if=\"!sourceList?.length && !searchLoading\">暂无数据</div>\r\n <template v-else-if=\"hasChildren\">\r\n <div\r\n v-for=\"(source, index) in sourceList\"\r\n :key=\"source.indexTypeGuid || source.id\"\r\n >\r\n <div class=\"column-item\">\r\n <span\r\n style=\"cursor: pointer\"\r\n @click=\"onToggleGroup(index)\"\r\n >\r\n <loading-outlined v-if=\"source.loading\" />\r\n <caret-down-outlined v-else-if=\"source.show\" />\r\n <caret-right-outlined v-else />\r\n <span v-if=\"source.isLeaf\" class=\"item-name\">{{ source.indexTypeCode + '.' + source.indexTypeName }}</span>\r\n </span>\r\n </div>\r\n <div v-if=\"source.show\">\r\n <ind-source-list\r\n :data=\"source.children\"\r\n :isSub=\"true\"\r\n :hasChildren=\"source.isLeaf === '0'\"\r\n :graphicConfig=\"graphicConfig\"\r\n source=\"INDICATOR_LIB\"\r\n @onDragStart=\"onDragStart\"\r\n />\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <div\r\n v-for=\"dataSource in sourceList\"\r\n :key=\"dataSource.id\"\r\n :class=\"setItemDisabled(dataSource.dataViewColumns) ? 'column-disabled' : ''\"\r\n >\r\n <div class=\"column-item\">\r\n <a-tooltip overlayClassName=\"ind-source-list-tooltip\">\r\n <template #title>\r\n <div>加载类型:{{ getLoadType(dataSource.loadType) }}</div>\r\n <div v-if=\"dataSource.useType\">数据使用系统:{{ getUseType(dataSource.useType) }}</div>\r\n <div v-if=\"dataSource.systemSource\">制度出处:{{ dataSource.systemSource }}</div>\r\n <div v-if=\"dataSource.dataTo\">数据来源:{{ getSourceType(dataSource.dataTo) }}</div>\r\n <div v-if=\"dataSource.meaning\">指标含义:{{ dataSource.meaning }}</div>\r\n </template>\r\n <span\r\n style=\"cursor: pointer\"\r\n @click=\"onToggleSource(dataSource)\"\r\n >\r\n <caret-down-outlined v-if=\"dataSource.show\" />\r\n <caret-right-outlined v-else />\r\n {{ (dataSource.indexCode ? dataSource.indexCode : '') + ' ' + dataSource.name }}\r\n </span>\r\n </a-tooltip>\r\n </div>\r\n <template v-if=\"dataSource.show\">\r\n <draggable\r\n v-model=\"dataSource.dataViewColumns\"\r\n :group=\"{\r\n name: 'cardItem',\r\n pull: 'clone',\r\n put: false\r\n }\"\r\n item-key=\"id\"\r\n :sort=\"false\"\r\n :disabled=\"setItemDisabled(dataSource.dataViewColumns)\"\r\n @start=\"onDragStart($event, dataSource)\"\r\n >\r\n <template #item=\"{ element: dataViewColumn }\">\r\n <div class=\"column-child-item\">\r\n <span class=\"field\">\r\n 【{{ dataViewColumn.scope === 'FIELD' ? mapDataSetScope(dataViewColumn.genericType) : mapScope(dataViewColumn.scope) }}】\r\n </span>\r\n <span class=\"column-child-item-name\">\r\n {{ dataViewColumn.label }}\r\n </span>\r\n </div>\r\n </template>\r\n </draggable>\r\n </template>\r\n </div>\r\n </template>\r\n </a-spin>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent, PropType, ref, watch, inject, unref, onMounted, onUnmounted, reactive, nextTick } from 'vue'\r\nimport { CaretRightOutlined, CaretDownOutlined, LoadingOutlined } from '@ant-design/icons-vue'\r\nimport { REQUEST, INDICATOR_URL, INDICATOR_TOKEN } from '@/utils/constant'\r\nimport Draggable from 'vuedraggable'\r\nimport { mapScope, mapDataSetScope, getLoadType, getUseType, getSourceType } from '@/utils/util'\r\nimport { Tooltip as ATooltip } from 'ant-design-vue'\r\nexport default defineComponent({\r\n name: 'IndSourceList',\r\n components: {\r\n CaretRightOutlined,\r\n CaretDownOutlined,\r\n LoadingOutlined,\r\n Draggable,\r\n ATooltip\r\n },\r\n props: {\r\n data: {\r\n type: Array as PropType<any[]>,\r\n default: () => []\r\n },\r\n source: {\r\n type: String,\r\n default: ''\r\n },\r\n isSub: {\r\n type: Boolean,\r\n default: false\r\n },\r\n hasChildren: {\r\n type: Boolean,\r\n default: false\r\n },\r\n total: {\r\n type: Number,\r\n default: 0\r\n },\r\n graphicConfig: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n setup (props, { emit, expose }) {\r\n // @ts-ignore\r\n const PAGE_ID = window?.config?.pageId\r\n const request = inject(REQUEST) as any\r\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\r\n const setItemDisabled = inject('setItemDisabled', (_value: any) => false)\r\n const sourceList = ref<{ [key: string]: any }[]>([])\r\n const columnRef = ref()\r\n const pagination = reactive({\r\n pageSize: 20,\r\n currentPage: 1,\r\n totalResult: 0\r\n })\r\n const isLoading = ref(false)\r\n const indexName = ref('')\r\n const searchLoading = ref(false)\r\n\r\n watch(() => props.data, (data: { [key: string]: any }[]) => {\r\n if (props.isSub) {\r\n data?.forEach((row: { [key: string]: any }) => {\r\n if (!row?.isLeaf) {\r\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\r\n column.show = true\r\n // 编辑名字\r\n column.edit = false\r\n if (column.title) {\r\n column.label = column.title\r\n }\r\n })\r\n }\r\n })\r\n sourceList.value = data\r\n }\r\n }, {\r\n deep: true,\r\n immediate: true\r\n })\r\n\r\n const removeScroll = () => {\r\n if (!props.isSub) {\r\n unref(columnRef)?.removeEventListener('scroll', scrollRequest)\r\n }\r\n }\r\n\r\n const requestData = async (item?: { [key: string]: any }) => {\r\n if (unref(isLoading)) {\r\n return\r\n }\r\n const dataSourceId = props.graphicConfig ? props.graphicConfig.dataSourceId : ''\r\n isLoading.value = true\r\n const params: any = {\r\n source: props.source,\r\n pageId: PAGE_ID,\r\n dataSourceId,\r\n indexName: indexName.value\r\n }\r\n if (item) {\r\n item.loading = true\r\n params.indexTypeGuid = item.indexTypeGuid\r\n params.isLeaf = item.isLeaf\r\n } else if (pagination) {\r\n // item不存在的时候,是最外一层,需要滚动加载\r\n params.queryRequest = {\r\n pageSize: pagination.pageSize,\r\n pageNum: pagination.currentPage\r\n }\r\n }\r\n try {\r\n const res = await request.post(\r\n `${INDICATOR_URL}/diagram/sourceList`,\r\n params,\r\n {\r\n headers: {\r\n Authentication: indicatorToken,\r\n operateContext: 'ygt'\r\n }\r\n }\r\n )\r\n const { success, data = {} } = res.data\r\n if (success) {\r\n const { rows = [], total = 0 } = data\r\n rows?.forEach((row: { [key: string]: any }) => {\r\n if (item?.isLeaf === '1' || props.graphicConfig.dataSourceId) {\r\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\r\n column.show = true\r\n // 编辑名字\r\n column.edit = false\r\n if (column.title) {\r\n column.label = column.title\r\n }\r\n })\r\n } else {\r\n row.show = false\r\n }\r\n })\r\n if (item) {\r\n item.children = rows\r\n item.show = true\r\n if (!rows?.length) {\r\n item.noData = true\r\n }\r\n } else {\r\n sourceList.value = unref(sourceList).concat(rows)\r\n pagination.totalResult = +total\r\n if (unref(sourceList)?.length >= total) {\r\n removeScroll()\r\n }\r\n }\r\n }\r\n if (item) {\r\n item.loading = false\r\n }\r\n isLoading.value = false\r\n } catch (error) {\r\n if (item) {\r\n item.loading = false\r\n }\r\n isLoading.value = false\r\n }\r\n }\r\n\r\n const onToggleGroup = async (index: number) => {\r\n const item = sourceList.value[index]\r\n const { children = [] } = item\r\n if (children?.length) {\r\n // 已经展开过\r\n item.show = !item.show\r\n } else if (!item.noData && item.isLeaf) {\r\n // 没有展开过,需要懒加载\r\n requestData(item)\r\n } else if (item.noData) {\r\n item.show = !item.show\r\n }\r\n }\r\n\r\n const onDragStart = (\r\n event: any,\r\n dataSource: { [key: string]: any }\r\n ) => {\r\n emit('onDragStart', event, dataSource)\r\n }\r\n\r\n const onToggleSource = (dataSource: { [key: string]: any }) => {\r\n dataSource.show = !dataSource.show\r\n }\r\n\r\n const scrollRequest = (e: any) => {\r\n if (e.target.scrollTop + e.target.clientHeight + 20 >= e.target.scrollHeight) {\r\n pagination.currentPage++\r\n requestData()\r\n }\r\n }\r\n\r\n // 首次加载的时候,如果滚动条没出现,循环请求至滚动条出现\r\n const loopRequest = async () => {\r\n await requestData()\r\n nextTick(async () => {\r\n if (unref(columnRef).scrollHeight === unref(columnRef).clientHeight) {\r\n // 滚动条未出现\r\n if (pagination.totalResult > unref(sourceList).length) {\r\n pagination.currentPage++\r\n loopRequest()\r\n }\r\n }\r\n })\r\n }\r\n\r\n const handleSearch = async (name: string) => {\r\n removeScroll()\r\n searchLoading.value = true\r\n pagination.currentPage = 1\r\n pagination.totalResult = 0\r\n sourceList.value = []\r\n indexName.value = name\r\n await loopRequest()\r\n searchLoading.value = false\r\n unref(columnRef)?.addEventListener('scroll', scrollRequest)\r\n }\r\n\r\n onMounted(async () => {\r\n if (!props.isSub) {\r\n loopRequest()\r\n unref(columnRef)?.addEventListener('scroll', scrollRequest)\r\n }\r\n })\r\n\r\n onUnmounted(() => {\r\n removeScroll()\r\n })\r\n\r\n expose({\r\n handleSearch\r\n })\r\n\r\n return {\r\n columnRef,\r\n sourceList,\r\n searchLoading,\r\n onToggleGroup,\r\n onToggleSource,\r\n setItemDisabled,\r\n onDragStart,\r\n mapDataSetScope,\r\n mapScope,\r\n getLoadType,\r\n getUseType,\r\n getSourceType\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.columns {\r\n height: 100%;\r\n overflow: auto;\r\n flex: 1;\r\n padding-top: 10px;\r\n &.sub-columns {\r\n padding-top: 0;\r\n margin-left: 15px;\r\n }\r\n .no-data {\r\n color: #b1b1b1;\r\n font-size: 12px;\r\n margin-left: 10px;\r\n }\r\n}\r\n\r\n.column-item {\r\n display: flow-root;\r\n margin: 3px 0;\r\n padding: 2px 0;\r\n .item-name {\r\n margin-left: 5px;\r\n }\r\n}\r\n\r\n.column-child-item {\r\n display: flex;\r\n padding: 3px 10px;\r\n cursor: pointer;\r\n word-break: break-all;\r\n .field {\r\n white-space: nowrap;\r\n }\r\n}\r\n\r\n.column-disabled {\r\n .column-item {\r\n color: #b3b3b3;\r\n :deep(.anticon) {\r\n color: #b3b3b3;\r\n }\r\n }\r\n .column-child-item {\r\n color: #b3b3b3;\r\n }\r\n}\r\n</style>\r\n<style lang=\"less\">\r\n.ind-source-list-tooltip .ant-tooltip-inner {\r\n max-height: 300px;\r\n overflow: auto;\r\n}\r\n</style>\r\n","<template>\r\n <div class=\"columns\" :class=\"isSub ? 'sub-columns' : ''\" ref=\"columnRef\">\r\n <a-spin\r\n :spinning=\"searchLoading\"\r\n tip=\"数据源加载中...\"\r\n >\r\n <div class=\"no-data\" v-if=\"!sourceList?.length && !searchLoading\">暂无数据</div>\r\n <template v-else-if=\"hasChildren\">\r\n <div\r\n v-for=\"(source, index) in sourceList\"\r\n :key=\"source.indexTypeGuid || source.id\"\r\n >\r\n <div class=\"column-item\">\r\n <span\r\n style=\"cursor: pointer\"\r\n @click=\"onToggleGroup(index)\"\r\n >\r\n <loading-outlined v-if=\"source.loading\" />\r\n <caret-down-outlined v-else-if=\"source.show\" />\r\n <caret-right-outlined v-else />\r\n <span v-if=\"source.isLeaf\" class=\"item-name\">{{ source.indexTypeCode + '.' + source.indexTypeName }}</span>\r\n </span>\r\n </div>\r\n <div v-if=\"source.show\">\r\n <ind-source-list\r\n :data=\"source.children\"\r\n :isSub=\"true\"\r\n :hasChildren=\"source.isLeaf === '0'\"\r\n :graphicConfig=\"graphicConfig\"\r\n source=\"INDICATOR_LIB\"\r\n @onDragStart=\"onDragStart\"\r\n />\r\n </div>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <div\r\n v-for=\"dataSource in sourceList\"\r\n :key=\"dataSource.id\"\r\n :class=\"setItemDisabled(dataSource.dataViewColumns) ? 'column-disabled' : ''\"\r\n >\r\n <div class=\"column-item\">\r\n <a-tooltip overlayClassName=\"ind-source-list-tooltip\">\r\n <template #title>\r\n <div>加载类型:{{ getLoadType(dataSource.loadType) }}</div>\r\n <div v-if=\"dataSource.useType\">数据使用系统:{{ getUseType(dataSource.useType) }}</div>\r\n <div v-if=\"dataSource.systemSource\">制度出处:{{ dataSource.systemSource }}</div>\r\n <div v-if=\"dataSource.dataTo\">数据来源:{{ getSourceType(dataSource.dataTo) }}</div>\r\n <div v-if=\"dataSource.meaning\">指标含义:{{ dataSource.meaning }}</div>\r\n </template>\r\n <span\r\n style=\"cursor: pointer\"\r\n @click=\"onToggleSource(dataSource)\"\r\n >\r\n <caret-down-outlined v-if=\"dataSource.show\" />\r\n <caret-right-outlined v-else />\r\n {{ (dataSource.indexCode ? dataSource.indexCode : '') + ' ' + dataSource.name }}\r\n </span>\r\n </a-tooltip>\r\n </div>\r\n <template v-if=\"dataSource.show\">\r\n <draggable\r\n v-model=\"dataSource.dataViewColumns\"\r\n :group=\"{\r\n name: 'cardItem',\r\n pull: 'clone',\r\n put: false\r\n }\"\r\n item-key=\"id\"\r\n :sort=\"false\"\r\n :disabled=\"setItemDisabled(dataSource.dataViewColumns)\"\r\n @start=\"onDragStart($event, dataSource)\"\r\n >\r\n <template #item=\"{ element: dataViewColumn }\">\r\n <div class=\"column-child-item\">\r\n <span class=\"field\">\r\n 【{{ dataViewColumn.scope === 'FIELD' ? mapDataSetScope(dataViewColumn.genericType) : mapScope(dataViewColumn.scope) }}】\r\n </span>\r\n <span class=\"column-child-item-name\">\r\n {{ dataViewColumn.label }}\r\n </span>\r\n </div>\r\n </template>\r\n </draggable>\r\n </template>\r\n </div>\r\n </template>\r\n </a-spin>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { defineComponent, PropType, ref, watch, inject, unref, onMounted, onUnmounted, reactive, nextTick } from 'vue'\r\nimport { CaretRightOutlined, CaretDownOutlined, LoadingOutlined } from '@ant-design/icons-vue'\r\nimport { REQUEST, INDICATOR_URL, INDICATOR_TOKEN } from '@/utils/constant'\r\nimport Draggable from 'vuedraggable'\r\nimport { mapScope, mapDataSetScope, getLoadType, getUseType, getSourceType } from '@/utils/util'\r\nimport { Tooltip as ATooltip } from 'ant-design-vue'\r\nexport default defineComponent({\r\n name: 'IndSourceList',\r\n components: {\r\n CaretRightOutlined,\r\n CaretDownOutlined,\r\n LoadingOutlined,\r\n Draggable,\r\n ATooltip\r\n },\r\n props: {\r\n data: {\r\n type: Array as PropType<any[]>,\r\n default: () => []\r\n },\r\n source: {\r\n type: String,\r\n default: ''\r\n },\r\n isSub: {\r\n type: Boolean,\r\n default: false\r\n },\r\n hasChildren: {\r\n type: Boolean,\r\n default: false\r\n },\r\n total: {\r\n type: Number,\r\n default: 0\r\n },\r\n graphicConfig: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n setup (props, { emit, expose }) {\r\n // @ts-ignore\r\n const PAGE_ID = window?.config?.pageId\r\n const request = inject(REQUEST) as any\r\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\r\n const setItemDisabled = inject('setItemDisabled', (_value: any) => false)\r\n const sourceList = ref<{ [key: string]: any }[]>([])\r\n const columnRef = ref()\r\n const pagination = reactive({\r\n pageSize: 20,\r\n currentPage: 1,\r\n totalResult: 0\r\n })\r\n const isLoading = ref(false)\r\n const indexName = ref('')\r\n const searchLoading = ref(false)\r\n\r\n watch(() => props.data, (data: { [key: string]: any }[]) => {\r\n if (props.isSub) {\r\n data?.forEach((row: { [key: string]: any }) => {\r\n if (!row?.isLeaf) {\r\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\r\n column.show = true\r\n // 编辑名字\r\n column.edit = false\r\n if (column.title) {\r\n column.label = column.title\r\n }\r\n })\r\n }\r\n })\r\n sourceList.value = data\r\n }\r\n }, {\r\n deep: true,\r\n immediate: true\r\n })\r\n\r\n const removeScroll = () => {\r\n if (!props.isSub) {\r\n unref(columnRef)?.removeEventListener('scroll', scrollRequest)\r\n }\r\n }\r\n\r\n const requestData = async (item?: { [key: string]: any }) => {\r\n if (unref(isLoading)) {\r\n return\r\n }\r\n const dataSourceId = props.graphicConfig ? props.graphicConfig.dataSourceId : ''\r\n isLoading.value = true\r\n const params: any = {\r\n source: props.source,\r\n pageId: PAGE_ID,\r\n dataSourceId,\r\n indexName: indexName.value\r\n }\r\n if (item) {\r\n item.loading = true\r\n params.indexTypeGuid = item.indexTypeGuid\r\n params.isLeaf = item.isLeaf\r\n } else if (pagination) {\r\n // item不存在的时候,是最外一层,需要滚动加载\r\n params.queryRequest = {\r\n pageSize: pagination.pageSize,\r\n pageNum: pagination.currentPage\r\n }\r\n }\r\n try {\r\n const res = await request.post(\r\n `${INDICATOR_URL}/diagram/sourceList`,\r\n params,\r\n {\r\n headers: {\r\n Authentication: indicatorToken,\r\n operateContext: 'ygt'\r\n }\r\n }\r\n )\r\n const { success, data = {} } = res.data\r\n if (success) {\r\n const { rows = [], total = 0 } = data\r\n rows?.forEach((row: { [key: string]: any }) => {\r\n if (item?.isLeaf === '1' || props.graphicConfig.dataSourceId) {\r\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\r\n column.show = true\r\n // 编辑名字\r\n column.edit = false\r\n if (column.title) {\r\n column.label = column.title\r\n }\r\n })\r\n } else {\r\n row.show = false\r\n }\r\n })\r\n if (item) {\r\n item.children = rows\r\n item.show = true\r\n if (!rows?.length) {\r\n item.noData = true\r\n }\r\n } else {\r\n sourceList.value = unref(sourceList).concat(rows)\r\n pagination.totalResult = +total\r\n if (unref(sourceList)?.length >= total) {\r\n removeScroll()\r\n }\r\n }\r\n }\r\n if (item) {\r\n item.loading = false\r\n }\r\n isLoading.value = false\r\n } catch (error) {\r\n if (item) {\r\n item.loading = false\r\n }\r\n isLoading.value = false\r\n }\r\n }\r\n\r\n const onToggleGroup = async (index: number) => {\r\n const item = sourceList.value[index]\r\n const { children = [] } = item\r\n if (children?.length) {\r\n // 已经展开过\r\n item.show = !item.show\r\n } else if (!item.noData && item.isLeaf) {\r\n // 没有展开过,需要懒加载\r\n requestData(item)\r\n } else if (item.noData) {\r\n item.show = !item.show\r\n }\r\n }\r\n\r\n const onDragStart = (\r\n event: any,\r\n dataSource: { [key: string]: any }\r\n ) => {\r\n emit('onDragStart', event, dataSource)\r\n }\r\n\r\n const onToggleSource = (dataSource: { [key: string]: any }) => {\r\n dataSource.show = !dataSource.show\r\n }\r\n\r\n const scrollRequest = (e: any) => {\r\n if (e.target.scrollTop + e.target.clientHeight + 20 >= e.target.scrollHeight) {\r\n pagination.currentPage++\r\n requestData()\r\n }\r\n }\r\n\r\n // 首次加载的时候,如果滚动条没出现,循环请求至滚动条出现\r\n const loopRequest = async () => {\r\n await requestData()\r\n nextTick(async () => {\r\n if (unref(columnRef).scrollHeight === unref(columnRef).clientHeight) {\r\n // 滚动条未出现\r\n if (pagination.totalResult > unref(sourceList).length) {\r\n pagination.currentPage++\r\n loopRequest()\r\n }\r\n }\r\n })\r\n }\r\n\r\n const handleSearch = async (name: string) => {\r\n removeScroll()\r\n searchLoading.value = true\r\n pagination.currentPage = 1\r\n pagination.totalResult = 0\r\n sourceList.value = []\r\n indexName.value = name\r\n await loopRequest()\r\n searchLoading.value = false\r\n unref(columnRef)?.addEventListener('scroll', scrollRequest)\r\n }\r\n\r\n onMounted(async () => {\r\n if (!props.isSub) {\r\n loopRequest()\r\n unref(columnRef)?.addEventListener('scroll', scrollRequest)\r\n }\r\n })\r\n\r\n onUnmounted(() => {\r\n removeScroll()\r\n })\r\n\r\n expose({\r\n handleSearch\r\n })\r\n\r\n return {\r\n columnRef,\r\n sourceList,\r\n searchLoading,\r\n onToggleGroup,\r\n onToggleSource,\r\n setItemDisabled,\r\n onDragStart,\r\n mapDataSetScope,\r\n mapScope,\r\n getLoadType,\r\n getUseType,\r\n getSourceType\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.columns {\r\n height: 100%;\r\n overflow: auto;\r\n flex: 1;\r\n padding-top: 10px;\r\n &.sub-columns {\r\n padding-top: 0;\r\n margin-left: 15px;\r\n }\r\n .no-data {\r\n color: #b1b1b1;\r\n font-size: 12px;\r\n margin-left: 10px;\r\n }\r\n}\r\n\r\n.column-item {\r\n display: flow-root;\r\n margin: 3px 0;\r\n padding: 2px 0;\r\n .item-name {\r\n margin-left: 5px;\r\n }\r\n}\r\n\r\n.column-child-item {\r\n display: flex;\r\n padding: 3px 10px;\r\n cursor: pointer;\r\n word-break: break-all;\r\n .field {\r\n white-space: nowrap;\r\n }\r\n}\r\n\r\n.column-disabled {\r\n .column-item {\r\n color: #b3b3b3;\r\n :deep(.anticon) {\r\n color: #b3b3b3;\r\n }\r\n }\r\n .column-child-item {\r\n color: #b3b3b3;\r\n }\r\n}\r\n</style>\r\n<style lang=\"less\">\r\n.ind-source-list-tooltip .ant-tooltip-inner {\r\n max-height: 300px;\r\n overflow: auto;\r\n}\r\n</style>\r\n","<template>\n <div class=\"data-source-list\">\n <a-input-search\n v-model:value=\"searchText\"\n placeholder=\"请输入关键字\"\n style=\"width: 100%\"\n @change=\"onChange\"\n @search=\"onSearch\"\n />\n <template v-if=\"graphicConfig.source === 'INDICATOR_LIB'\">\n <ind-source-list\n ref=\"indSourceRef\"\n :data=\"dataSourceList\"\n :hasChildren=\"true\"\n :isSub=\"false\"\n :graphicConfig=\"graphicConfig\"\n source=\"INDICATOR_LIB\"\n @setItemDisabled=\"setItemDisabled\"\n @onDragStart=\"onDragStart\"\n />\n </template>\n <template v-else>\n <div class=\"columns\">\n <a-spin\n :spinning=\"dataSourceLoading\"\n tip=\"数据源加载中...\"\n >\n <div\n v-for=\"(dataSource, index) in dataSourceList\"\n :key=\"dataSource.id\"\n :class=\"setItemDisabled(dataSource.dataViewColumns) ? 'column-disabled' : ''\"\n >\n <div class=\"column-item\">\n <a-tooltip>\n <template #title>\n <div>加载类型:{{ getLoadType(dataSource.loadType) }}</div>\n <div v-if=\"dataSource.useType\">数据使用系统:{{ getUseType(dataSource.useType) }}</div>\n <div v-if=\"dataSource.systemSource\">制度出处:{{ dataSource.systemSource }}</div>\n <div v-if=\"dataSource.meaning\">指标含义:{{ dataSource.meaning }}</div>\n </template>\n <span\n style=\"cursor: pointer\"\n @click=\"onToggleGroup(index)\"\n >\n <caret-down-outlined v-if=\"dataSource.show\" />\n <caret-right-outlined v-else />\n {{ (dataSource.indexCode?dataSource.indexCode:'') + ' ' + dataSource.name }}【{{ getSourceType(dataSource.dataTo) }}】\n </span>\n </a-tooltip>\n </div>\n <div v-if=\"dataSource.show\">\n <draggable\n v-model=\"dataSource.dataViewColumns\"\n :group=\"{\n name: 'cardItem',\n pull: 'clone',\n put: false\n }\"\n item-key=\"id\"\n :sort=\"false\"\n :disabled=\"setItemDisabled(dataSource.dataViewColumns)\"\n @start=\"onDragStart($event, dataSource)\"\n >\n <template #item=\"{ element: dataViewColumn }\">\n <div class=\"column-child-item\">\n 【{{ dataViewColumn.scope==='FIELD'? mapDataSetScope(dataViewColumn.genericType) : mapScope(dataViewColumn.scope) }}】\n <span class=\"column-child-item-name\">\n {{ dataViewColumn.label }}\n </span>\n </div>\n </template>\n </draggable>\n </div>\n </div>\n </a-spin>\n </div>\n <a-pagination\n size=\"small\"\n show-quick-jumper\n v-model:pageSize=\"pagination.pageSize\"\n :total=\"pagination.totalResult\"\n :show-total=\"(total) => `共 ${total} 条`\"\n v-model:current=\"pagination.currentPage\"\n @change=\"onPaginationChange\"\n />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n ref,\n unref,\n inject,\n provide\n} from 'vue'\nimport { CaretRightOutlined, CaretDownOutlined } from '@ant-design/icons-vue'\nimport {\n InputSearch as AInputSearch,\n Spin as ASpin,\n Pagination as APagination,\n Tooltip as ATooltip\n} from 'ant-design-vue'\nimport { debounce } from 'lodash-es'\nimport {\n INDICATOR_URL,\n REQUEST,\n INDICATOR_TOKEN,\n SELECTED_COMPONENT,\n GRAPHIC_CONFIG,\n SOURCE_TYPE\n // UPDATE_GRAPHIC_CONFIG\n} from '@/utils/constant'\nimport { mapScope, mapDataSetScope, getLoadType, getUseType, getSourceType } from '@/utils/util'\nimport Draggable from 'vuedraggable'\nimport IndSourceList from './IndSourceList.vue'\nexport default defineComponent({\n name: 'DataSourceList',\n components: {\n CaretRightOutlined,\n CaretDownOutlined,\n IndSourceList,\n AInputSearch,\n ASpin,\n APagination,\n Draggable,\n ATooltip\n },\n setup () {\n // @ts-ignore\n const PAGE_ID = window?.config?.pageId\n const request = inject(REQUEST) as any\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\n const selectedComponent = inject(SELECTED_COMPONENT) as any\n // const updateGraphicConfig = inject(UPDATE_GRAPHIC_CONFIG) as any\n const selectedConfig = computed(\n () => unref(selectedComponent)?.graphicConfig\n )\n const dataSourceId = computed(() => unref(selectedConfig)?.dataSourceId)\n const dataSourceList = ref<{ [key: string]: any }[]>([])\n const dataSourceLoading = ref(false)\n const indSourceRef = ref()\n // 分页数据\n const pagination = reactive({\n pageSize: 20,\n currentPage: 1,\n totalResult: 0\n })\n const source = inject(SOURCE_TYPE)\n const searchText = ref('')\n const handleDataSourceList = async () => {\n if (unref(graphicConfig).source === 'INDICATOR_LIB') {\n return\n }\n dataSourceLoading.value = true\n const params: any = {\n source: unref(source),\n indexName: unref(searchText),\n pageId: PAGE_ID,\n dataSourceId: unref(dataSourceId),\n queryRequest: {\n pageSize: pagination.pageSize,\n pageNum: pagination.currentPage\n }\n }\n if (params.source === 'EDV_DATA_SET') {\n params.edvDataSetName = params.indexName\n delete params.indexName\n }\n try {\n const res = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n params,\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n dataSourceLoading.value = false\n const { success, data = {} } = res.data\n if (success) {\n const { rows = [], total = 0 } = data\n rows?.forEach((row: { [key: string]: any }) => {\n row.show = false\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\n column.show = true\n // 编辑名字\n column.edit = false\n if (column.title) {\n column.label = column.title\n }\n })\n })\n dataSourceList.value = rows\n pagination.totalResult = +total\n // if (params.source === 'EDV_DATA_SET') {\n // // 过滤列表使用\n // updateGraphicConfig({\n // dataSourceList: rows\n // })\n // }\n }\n } catch (error) {\n dataSourceLoading.value = false\n }\n }\n\n const onToggleGroup = (index: number) => {\n dataSourceList.value[index].show = !dataSourceList.value[index].show\n }\n\n const onSearch = () => {\n pagination.currentPage = 1\n handleDataSourceList()\n if (unref(graphicConfig).source === 'INDICATOR_LIB') {\n unref(indSourceRef)?.handleSearch(unref(searchText))\n }\n }\n\n const onChange = debounce(() => {\n pagination.currentPage = 1\n handleDataSourceList()\n }, 200)\n\n const onPaginationChange = (page: number, pageSize: number) => {\n pagination.pageSize = pageSize\n pagination.currentPage = page\n handleDataSourceList()\n }\n\n onMounted(() => {\n handleDataSourceList()\n })\n\n const graphicConfig = inject(GRAPHIC_CONFIG) as any\n // 维度列表\n const dimensions = computed<any>(() => {\n const types = ['classificationList', 'rowHeaderList', 'dimensionList', 'queryColumnList']\n let options = [] as { key:string } []\n for (const key in unref(graphicConfig)) {\n if (Object.prototype.hasOwnProperty.call(unref(graphicConfig), key) && types.includes(key)) {\n const value = unref(graphicConfig)[key]\n if (Array.isArray(value)) {\n options = options.concat(value)\n }\n }\n }\n return options\n })\n const setItemDisabled = (dataViewColumns: any[] = []) => {\n // 维度不存在指标中,则禁用该指标中所有的维度和值\n let lostDim = false\n\n if (unref(source) === 'EDV_DATA_SET') {\n for (const item of unref(dimensions)) {\n const target = dataViewColumns.find(v => v.parentId === item.parentId)\n if (!target) {\n lostDim = true\n break\n }\n }\n } else {\n for (const item of unref(dimensions)) {\n const target = dataViewColumns.find(v => v.typeGuid === item.typeGuid)\n if (!target) {\n lostDim = true\n break\n }\n }\n }\n\n return lostDim\n }\n\n provide('setItemDisabled', setItemDisabled)\n\n const onDragStart = (\n event: any,\n dataSource: { [key: string]: any }\n ) => {\n const dataView = dataSource.dataViewColumns[event.oldIndex]\n let dataSetParams = {}\n if (dataSource.dataSetParams) {\n dataSetParams = dataSource.dataSetParams\n }\n if (dataView) {\n sessionStorage.setItem('indicator-list-item', JSON.stringify({\n ...dataView,\n dataTo: dataSource.dataTo,\n dataSetParams: dataSetParams,\n meaning: dataSource.meaning,\n theFormula: dataSource.theFormula,\n theUnit: dataSource.theUnit\n }))\n if (dataSource.dataTo === '1' && dataSource?.hrpIndexVariates) {\n sessionStorage.setItem('indicator-variates', JSON.stringify(dataSource.hrpIndexVariates))\n }\n if (dataSource.dataTo === '2' && dataSource?.dataSetParams) {\n // sessionStorage.setItem('dataSource-list', JSON.stringify(dataSource))\n sessionStorage.setItem('indicator-variates', JSON.stringify(dataSource.dataSetParams))\n }\n }\n }\n\n return {\n dataSourceList,\n dataSourceLoading,\n pagination,\n onToggleGroup,\n mapScope,\n mapDataSetScope,\n onSearch,\n onChange,\n source,\n onPaginationChange,\n searchText,\n setItemDisabled,\n onDragStart,\n getSourceType,\n getLoadType,\n getUseType,\n graphicConfig,\n indSourceRef\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.data-source-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.columns {\n height: 100%;\n overflow: auto;\n flex: 1;\n padding-top: 10px;\n}\n\n.column-item {\n display: flow-root;\n margin: 3px 0;\n padding: 2px 0;\n}\n\n.column-child-item {\n padding: 3px 10px;\n cursor: pointer;\n}\n\n.column-disabled {\n .column-item {\n color: #b3b3b3;\n :deep(.anticon) {\n color: #b3b3b3;\n }\n }\n .column-child-item {\n color: #b3b3b3;\n }\n}\n</style>\n","<template>\n <div class=\"data-source-list\">\n <a-input-search\n v-model:value=\"searchText\"\n placeholder=\"请输入关键字\"\n style=\"width: 100%\"\n @change=\"onChange\"\n @search=\"onSearch\"\n />\n <template v-if=\"graphicConfig.source === 'INDICATOR_LIB'\">\n <ind-source-list\n ref=\"indSourceRef\"\n :data=\"dataSourceList\"\n :hasChildren=\"true\"\n :isSub=\"false\"\n :graphicConfig=\"graphicConfig\"\n source=\"INDICATOR_LIB\"\n @setItemDisabled=\"setItemDisabled\"\n @onDragStart=\"onDragStart\"\n />\n </template>\n <template v-else>\n <div class=\"columns\">\n <a-spin\n :spinning=\"dataSourceLoading\"\n tip=\"数据源加载中...\"\n >\n <div\n v-for=\"(dataSource, index) in dataSourceList\"\n :key=\"dataSource.id\"\n :class=\"setItemDisabled(dataSource.dataViewColumns) ? 'column-disabled' : ''\"\n >\n <div class=\"column-item\">\n <a-tooltip>\n <template #title>\n <div>加载类型:{{ getLoadType(dataSource.loadType) }}</div>\n <div v-if=\"dataSource.useType\">数据使用系统:{{ getUseType(dataSource.useType) }}</div>\n <div v-if=\"dataSource.systemSource\">制度出处:{{ dataSource.systemSource }}</div>\n <div v-if=\"dataSource.meaning\">指标含义:{{ dataSource.meaning }}</div>\n </template>\n <span\n style=\"cursor: pointer\"\n @click=\"onToggleGroup(index)\"\n >\n <caret-down-outlined v-if=\"dataSource.show\" />\n <caret-right-outlined v-else />\n {{ (dataSource.indexCode?dataSource.indexCode:'') + ' ' + dataSource.name }}【{{ getSourceType(dataSource.dataTo) }}】\n </span>\n </a-tooltip>\n </div>\n <div v-if=\"dataSource.show\">\n <draggable\n v-model=\"dataSource.dataViewColumns\"\n :group=\"{\n name: 'cardItem',\n pull: 'clone',\n put: false\n }\"\n item-key=\"id\"\n :sort=\"false\"\n :disabled=\"setItemDisabled(dataSource.dataViewColumns)\"\n @start=\"onDragStart($event, dataSource)\"\n >\n <template #item=\"{ element: dataViewColumn }\">\n <div class=\"column-child-item\">\n 【{{ dataViewColumn.scope==='FIELD'? mapDataSetScope(dataViewColumn.genericType) : mapScope(dataViewColumn.scope) }}】\n <span class=\"column-child-item-name\">\n {{ dataViewColumn.label }}\n </span>\n </div>\n </template>\n </draggable>\n </div>\n </div>\n </a-spin>\n </div>\n <a-pagination\n size=\"small\"\n show-quick-jumper\n v-model:pageSize=\"pagination.pageSize\"\n :total=\"pagination.totalResult\"\n :show-total=\"(total) => `共 ${total} 条`\"\n v-model:current=\"pagination.currentPage\"\n @change=\"onPaginationChange\"\n />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n onMounted,\n reactive,\n ref,\n unref,\n inject,\n provide\n} from 'vue'\nimport { CaretRightOutlined, CaretDownOutlined } from '@ant-design/icons-vue'\nimport {\n InputSearch as AInputSearch,\n Spin as ASpin,\n Pagination as APagination,\n Tooltip as ATooltip\n} from 'ant-design-vue'\nimport { debounce } from 'lodash-es'\nimport {\n INDICATOR_URL,\n REQUEST,\n INDICATOR_TOKEN,\n SELECTED_COMPONENT,\n GRAPHIC_CONFIG,\n SOURCE_TYPE\n // UPDATE_GRAPHIC_CONFIG\n} from '@/utils/constant'\nimport { mapScope, mapDataSetScope, getLoadType, getUseType, getSourceType } from '@/utils/util'\nimport Draggable from 'vuedraggable'\nimport IndSourceList from './IndSourceList.vue'\nexport default defineComponent({\n name: 'DataSourceList',\n components: {\n CaretRightOutlined,\n CaretDownOutlined,\n IndSourceList,\n AInputSearch,\n ASpin,\n APagination,\n Draggable,\n ATooltip\n },\n setup () {\n // @ts-ignore\n const PAGE_ID = window?.config?.pageId\n const request = inject(REQUEST) as any\n const indicatorToken = unref(inject(INDICATOR_TOKEN))\n const selectedComponent = inject(SELECTED_COMPONENT) as any\n // const updateGraphicConfig = inject(UPDATE_GRAPHIC_CONFIG) as any\n const selectedConfig = computed(\n () => unref(selectedComponent)?.graphicConfig\n )\n const dataSourceId = computed(() => unref(selectedConfig)?.dataSourceId)\n const dataSourceList = ref<{ [key: string]: any }[]>([])\n const dataSourceLoading = ref(false)\n const indSourceRef = ref()\n // 分页数据\n const pagination = reactive({\n pageSize: 20,\n currentPage: 1,\n totalResult: 0\n })\n const source = inject(SOURCE_TYPE)\n const searchText = ref('')\n const handleDataSourceList = async () => {\n if (unref(graphicConfig).source === 'INDICATOR_LIB') {\n return\n }\n dataSourceLoading.value = true\n const params: any = {\n source: unref(source),\n indexName: unref(searchText),\n pageId: PAGE_ID,\n dataSourceId: unref(dataSourceId),\n queryRequest: {\n pageSize: pagination.pageSize,\n pageNum: pagination.currentPage\n }\n }\n if (params.source === 'EDV_DATA_SET') {\n params.edvDataSetName = params.indexName\n delete params.indexName\n }\n try {\n const res = await request.post(\n `${INDICATOR_URL}/diagram/sourceList`,\n params,\n {\n headers: {\n Authentication: indicatorToken,\n operateContext: 'ygt'\n }\n }\n )\n dataSourceLoading.value = false\n const { success, data = {} } = res.data\n if (success) {\n const { rows = [], total = 0 } = data\n rows?.forEach((row: { [key: string]: any }) => {\n row.show = false\n row.dataViewColumns?.forEach((column: { [key: string]: any }) => {\n column.show = true\n // 编辑名字\n column.edit = false\n if (column.title) {\n column.label = column.title\n }\n })\n })\n dataSourceList.value = rows\n pagination.totalResult = +total\n // if (params.source === 'EDV_DATA_SET') {\n // // 过滤列表使用\n // updateGraphicConfig({\n // dataSourceList: rows\n // })\n // }\n }\n } catch (error) {\n dataSourceLoading.value = false\n }\n }\n\n const onToggleGroup = (index: number) => {\n dataSourceList.value[index].show = !dataSourceList.value[index].show\n }\n\n const onSearch = () => {\n pagination.currentPage = 1\n handleDataSourceList()\n if (unref(graphicConfig).source === 'INDICATOR_LIB') {\n unref(indSourceRef)?.handleSearch(unref(searchText))\n }\n }\n\n const onChange = debounce(() => {\n pagination.currentPage = 1\n handleDataSourceList()\n }, 200)\n\n const onPaginationChange = (page: number, pageSize: number) => {\n pagination.pageSize = pageSize\n pagination.currentPage = page\n handleDataSourceList()\n }\n\n onMounted(() => {\n handleDataSourceList()\n })\n\n const graphicConfig = inject(GRAPHIC_CONFIG) as any\n // 维度列表\n const dimensions = computed<any>(() => {\n const types = ['classificationList', 'rowHeaderList', 'dimensionList', 'queryColumnList']\n let options = [] as { key:string } []\n for (const key in unref(graphicConfig)) {\n if (Object.prototype.hasOwnProperty.call(unref(graphicConfig), key) && types.includes(key)) {\n const value = unref(graphicConfig)[key]\n if (Array.isArray(value)) {\n options = options.concat(value)\n }\n }\n }\n return options\n })\n const setItemDisabled = (dataViewColumns: any[] = []) => {\n // 维度不存在指标中,则禁用该指标中所有的维度和值\n let lostDim = false\n\n if (unref(source) === 'EDV_DATA_SET') {\n for (const item of unref(dimensions)) {\n const target = dataViewColumns.find(v => v.parentId === item.parentId)\n if (!target) {\n lostDim = true\n break\n }\n }\n } else {\n for (const item of unref(dimensions)) {\n const target = dataViewColumns.find(v => v.typeGuid === item.typeGuid)\n if (!target) {\n lostDim = true\n break\n }\n }\n }\n\n return lostDim\n }\n\n provide('setItemDisabled', setItemDisabled)\n\n const onDragStart = (\n event: any,\n dataSource: { [key: string]: any }\n ) => {\n const dataView = dataSource.dataViewColumns[event.oldIndex]\n let dataSetParams = {}\n if (dataSource.dataSetParams) {\n dataSetParams = dataSource.dataSetParams\n }\n if (dataView) {\n sessionStorage.setItem('indicator-list-item', JSON.stringify({\n ...dataView,\n dataTo: dataSource.dataTo,\n dataSetParams: dataSetParams,\n meaning: dataSource.meaning,\n theFormula: dataSource.theFormula,\n theUnit: dataSource.theUnit\n }))\n if (dataSource.dataTo === '1' && dataSource?.hrpIndexVariates) {\n sessionStorage.setItem('indicator-variates', JSON.stringify(dataSource.hrpIndexVariates))\n }\n if (dataSource.dataTo === '2' && dataSource?.dataSetParams) {\n // sessionStorage.setItem('dataSource-list', JSON.stringify(dataSource))\n sessionStorage.setItem('indicator-variates', JSON.stringify(dataSource.dataSetParams))\n }\n }\n }\n\n return {\n dataSourceList,\n dataSourceLoading,\n pagination,\n onToggleGroup,\n mapScope,\n mapDataSetScope,\n onSearch,\n onChange,\n source,\n onPaginationChange,\n searchText,\n setItemDisabled,\n onDragStart,\n getSourceType,\n getLoadType,\n getUseType,\n graphicConfig,\n indSourceRef\n }\n }\n})\n</script>\n\n<style scoped lang=\"less\">\n.data-source-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.columns {\n height: 100%;\n overflow: auto;\n flex: 1;\n padding-top: 10px;\n}\n\n.column-item {\n display: flow-root;\n margin: 3px 0;\n padding: 2px 0;\n}\n\n.column-child-item {\n padding: 3px 10px;\n cursor: pointer;\n}\n\n.column-disabled {\n .column-item {\n color: #b3b3b3;\n :deep(.anticon) {\n color: #b3b3b3;\n }\n }\n .column-child-item {\n color: #b3b3b3;\n }\n}\n</style>\n","<template>\n <data-view-list v-if=\"source === 'SQL_VIEW'\" />\n <data-source-list v-if=\"source === 'INDICATOR_LIB' || source === 'EDV_DATA_SET' \" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject } from 'vue'\nimport DataViewList from './DataViewList.vue'\nimport DataSourceList from './DataSourceList.vue'\nimport { SOURCE_TYPE } from '@/utils/constant'\nexport default defineComponent({\n name: 'DataList',\n components: {\n DataSourceList,\n DataViewList\n },\n setup () {\n const source = inject(SOURCE_TYPE)\n return {\n source\n }\n }\n})\n</script>\n\n<style scoped></style>\n","<template>\n <data-view-list v-if=\"source === 'SQL_VIEW'\" />\n <data-source-list v-if=\"source === 'INDICATOR_LIB' || source === 'EDV_DATA_SET' \" />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject } from 'vue'\nimport DataViewList from './DataViewList.vue'\nimport DataSourceList from './DataSourceList.vue'\nimport { SOURCE_TYPE } from '@/utils/constant'\nexport default defineComponent({\n name: 'DataList',\n components: {\n DataSourceList,\n DataViewList\n },\n setup () {\n const source = inject(SOURCE_TYPE)\n return {\n source\n }\n }\n})\n</script>\n\n<style scoped></style>\n"],"names":["_sfc_main$3","defineComponent","ASpin","ATreeSelect","Draggable","request","inject","REQUEST","indicatorToken","unref","INDICATOR_TOKEN","graphicConfig","GRAPHIC_CONFIG","updateGraphicConfig","UPDATE_GRAPHIC_CONFIG","dataViewId","computed","_a","treeSelectLoading","ref","treeSelectData","PAGE_ID","selectedItem","reactive","echoSelectedNode","id","data","INDICATOR_URL","_b","transTreeData","pId","list","item","handleLoadData","treeNode","isFirst","value","onDataViewIdChange","handleDataViewColumns","setDataList","DATA_LIST","dataViewLoading","dataViewList","res","success","rows","row","columns","column","mapGenericType","genericType","onDragStart","event","dataViews","dataView","copyItem","onMounted","_hoisted_1","_component_draggable","_resolveComponent","_openBlock","_createElementBlock","_createVNode","_component_a_spin","_ctx","_withCtx","_component_a_tree_select","_createElementVNode","_hoisted_2","_cache","$event","_hoisted_3","_createTextVNode","_toDisplayString","CaretDownOutlined","CaretDownOutlinedSvg","_objectSpread","target","i","source","ownKeys","sym","key","_defineProperty","obj","props","context","p","AntdIcon","CaretDownOutlined$1","CaretRightOutlined","CaretRightOutlinedSvg","CaretRightOutlined$1","LoadingOutlined","LoadingOutlinedSvg","LoadingOutlined$1","_sfc_main$2","ATooltip","emit","expose","setItemDisabled","_value","sourceList","columnRef","pagination","isLoading","indexName","searchLoading","watch","removeScroll","scrollRequest","requestData","dataSourceId","params","total","onToggleGroup","index","children","dataSource","onToggleSource","e","loopRequest","nextTick","handleSearch","name","onUnmounted","mapDataSetScope","mapScope","getLoadType","getUseType","getSourceType","_hoisted_4","_hoisted_10","_hoisted_11","_normalizeClass","_Fragment","_renderList","_createBlock","_component_loading_outlined","_component_caret_down_outlined","_createCommentVNode","_hoisted_5","_component_ind_source_list","_hoisted_6","_component_a_tooltip","_hoisted_7","_hoisted_8","_hoisted_9","_component_caret_right_outlined","dataViewColumn","_hoisted_12","_hoisted_13","_sfc_main$1","IndSourceList","AInputSearch","APagination","selectedComponent","SELECTED_COMPONENT","selectedConfig","dataSourceList","dataSourceLoading","indSourceRef","SOURCE_TYPE","searchText","handleDataSourceList","onSearch","onChange","debounce","onPaginationChange","page","pageSize","dimensions","types","options","dataViewColumns","lostDim","v","provide","dataSetParams","_component_a_input_search","_component_a_pagination","_sfc_main","DataSourceList","DataViewList","_component_data_view_list","_component_data_source_list"],"mappings":"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","x_google_ignoreList":[2,3,4,5,6,7]}
|