@ecan-bi/indicator-library 1.1.14 → 1.1.16

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.
@@ -1,22 +1,22 @@
1
- /*! @ecan-bi/indicator-library@1.1.14 */
2
- import { defineComponent as X, inject as S, unref as r, computed as M, ref as $, reactive as K, onMounted as x, resolveComponent as y, openBlock as i, createElementBlock as h, createVNode as w, withCtx as R, createElementVNode as L, createTextVNode as Q, toDisplayString as v, watch as Le, onUnmounted as be, nextTick as we, normalizeClass as W, Fragment as J, renderList as Z, createBlock as k, createCommentVNode as A, provide as Te } from "vue";
3
- import { Spin as pe, TreeSelect as Se, Tooltip as ge, InputSearch as Oe, Pagination as Ee } from "ant-design-vue";
4
- import { R as ee, I as te, G as fe, U as Ae, D as $e, a as H, _ as Y, S as Fe, b as me } from "./index-778471df.mjs";
1
+ /*! @ecan-bi/indicator-library@1.1.16 */
2
+ import { defineComponent as X, inject as T, unref as r, computed as M, ref as $, reactive as K, onMounted as x, resolveComponent as y, openBlock as i, createElementBlock as h, createVNode as w, withCtx as R, createElementVNode as L, createTextVNode as Q, toDisplayString as v, watch as Le, onUnmounted as be, nextTick as we, normalizeClass as W, Fragment as J, renderList as Z, createBlock as k, createCommentVNode as A, provide as Se } from "vue";
3
+ import { Spin as pe, TreeSelect as Te, Tooltip as ge, InputSearch as Oe, Pagination as Ee } from "ant-design-vue";
4
+ import { R as ee, I as te, G as fe, U as Ae, D as $e, a as H, _ as Y, S as Fe, b as me } from "./index-29f99560.mjs";
5
5
  import ne from "vuedraggable";
6
6
  import { debounce as Ve } from "lodash-es";
7
- import { A as ae, m as he, a as _e, g as ye, b as ve, c as Ce } from "./util-bebd589e.mjs";
7
+ import { A as ae, m as he, a as _e, g as ye, b as ve, c as Ce } from "./util-b61ee73f.mjs";
8
8
  import "echarts";
9
9
  import "dayjs";
10
10
  const Pe = X({
11
11
  name: "DataViewList",
12
12
  components: {
13
13
  ASpin: pe,
14
- ATreeSelect: Se,
14
+ ATreeSelect: Te,
15
15
  Draggable: ne
16
16
  },
17
17
  setup() {
18
18
  var B;
19
- const e = S(ee), s = r(S(te)), o = S(fe), c = S(Ae), d = M(() => {
19
+ const e = T(ee), s = r(T(te)), o = T(fe), c = T(Ae), d = M(() => {
20
20
  var g;
21
21
  return ((g = r(o)) == null ? void 0 : g.dataViewId) || null;
22
22
  }), F = $(!1), _ = $([]), p = (B = window == null ? void 0 : window.config) == null ? void 0 : B.pageId, C = K({
@@ -90,7 +90,7 @@ const Pe = X({
90
90
  a.success && (_.value = (u = r(_)) == null ? void 0 : u.concat(
91
91
  b(a.data)
92
92
  ), D && r(d) && await l());
93
- }, T = (g) => {
93
+ }, S = (g) => {
94
94
  I(g), c({
95
95
  dataViewId: g,
96
96
  // 重制数据
@@ -101,7 +101,7 @@ const Pe = X({
101
101
  indicators: [],
102
102
  controlList: []
103
103
  });
104
- }, { setDataList: V } = S($e, {
104
+ }, { setDataList: V } = T($e, {
105
105
  // eslint-disable-next-line
106
106
  setDataList: (g) => g
107
107
  }), n = $(!1), m = $([]), I = async (g) => {
@@ -163,7 +163,7 @@ const Pe = X({
163
163
  treeSelectLoading: F,
164
164
  dataViewList: m,
165
165
  dataViewLoading: n,
166
- onDataViewIdChange: T,
166
+ onDataViewIdChange: S,
167
167
  mapGenericType: N,
168
168
  onDragStart: G
169
169
  };
@@ -336,11 +336,11 @@ const We = ie, Ze = X({
336
336
  },
337
337
  setup(e, { emit: s, expose: o }) {
338
338
  var D;
339
- const c = (D = window == null ? void 0 : window.config) == null ? void 0 : D.pageId, d = S(ee), F = r(S(te)), _ = S("setItemDisabled", (t) => !1), p = $([]), C = $(), l = K({
339
+ const c = (D = window == null ? void 0 : window.config) == null ? void 0 : D.pageId, d = T(ee), F = r(T(te)), _ = T("setItemDisabled", (t) => !1), p = $([]), C = $(), l = K({
340
340
  pageSize: 20,
341
341
  currentPage: 1,
342
342
  totalResult: 0
343
- }), b = $(!1), O = $(""), T = $(!1);
343
+ }), b = $(!1), O = $(""), S = $(!1);
344
344
  Le(() => e.data, (t) => {
345
345
  e.isSub && (t == null || t.forEach((a) => {
346
346
  var u;
@@ -410,7 +410,7 @@ const We = ie, Ze = X({
410
410
  });
411
411
  }, g = async (t) => {
412
412
  var a;
413
- V(), T.value = !0, l.currentPage = 1, l.totalResult = 0, p.value = [], O.value = t, await B(), T.value = !1, (a = r(C)) == null || a.addEventListener("scroll", G);
413
+ V(), S.value = !0, l.currentPage = 1, l.totalResult = 0, p.value = [], O.value = t, await B(), S.value = !1, (a = r(C)) == null || a.addEventListener("scroll", G);
414
414
  };
415
415
  return x(async () => {
416
416
  var t;
@@ -422,7 +422,7 @@ const We = ie, Ze = X({
422
422
  }), {
423
423
  columnRef: C,
424
424
  sourceList: p,
425
- searchLoading: T,
425
+ searchLoading: S,
426
426
  onToggleGroup: m,
427
427
  onToggleSource: N,
428
428
  setItemDisabled: _,
@@ -443,12 +443,12 @@ const Ke = {
443
443
  class: "item-name"
444
444
  }, nt = { key: 0 }, at = { class: "column-item" }, st = { key: 0 }, ot = { key: 1 }, it = { key: 2 }, rt = { key: 3 }, lt = ["onClick"], ut = { class: "column-child-item" }, ct = { class: "field" }, dt = { class: "column-child-item-name" };
445
445
  function pt(e, s, o, c, d, F) {
446
- const _ = y("loading-outlined"), p = y("caret-down-outlined"), C = y("caret-right-outlined"), l = y("ind-source-list", !0), b = y("a-tooltip"), O = y("draggable"), T = y("a-spin");
446
+ const _ = y("loading-outlined"), p = y("caret-down-outlined"), C = y("caret-right-outlined"), l = y("ind-source-list", !0), b = y("a-tooltip"), O = y("draggable"), S = y("a-spin");
447
447
  return i(), h("div", {
448
448
  class: W(["columns", e.isSub ? "sub-columns" : ""]),
449
449
  ref: "columnRef"
450
450
  }, [
451
- w(T, {
451
+ w(S, {
452
452
  spinning: e.searchLoading,
453
453
  tip: "数据源加载中..."
454
454
  }, {
@@ -482,7 +482,7 @@ function pt(e, s, o, c, d, F) {
482
482
  class: W(e.setItemDisabled(n.dataViewColumns) ? "column-disabled" : "")
483
483
  }, [
484
484
  L("div", at, [
485
- w(b, null, {
485
+ w(b, { overlayClassName: "ind-source-list-tooltip" }, {
486
486
  title: R(() => [
487
487
  L("div", null, "加载类型:" + v(e.getLoadType(n.loadType)), 1),
488
488
  n.useType ? (i(), h("div", st, "数据使用系统:" + v(e.getUseType(n.useType)), 1)) : A("", !0),
@@ -531,7 +531,7 @@ function pt(e, s, o, c, d, F) {
531
531
  }, 8, ["spinning"])
532
532
  ], 2);
533
533
  }
534
- const gt = /* @__PURE__ */ Y(Ze, [["render", pt], ["__scopeId", "data-v-eb6815db"]]), ft = X({
534
+ const gt = /* @__PURE__ */ Y(Ze, [["render", pt], ["__scopeId", "data-v-c758f876"]]), ft = X({
535
535
  name: "DataSourceList",
536
536
  components: {
537
537
  CaretRightOutlined: Ie,
@@ -545,7 +545,7 @@ const gt = /* @__PURE__ */ Y(Ze, [["render", pt], ["__scopeId", "data-v-eb6815db
545
545
  },
546
546
  setup() {
547
547
  var D;
548
- const e = (D = window == null ? void 0 : window.config) == null ? void 0 : D.pageId, s = S(ee), o = r(S(te)), c = S(Fe), d = M(
548
+ const e = (D = window == null ? void 0 : window.config) == null ? void 0 : D.pageId, s = T(ee), o = r(T(te)), c = T(Fe), d = M(
549
549
  () => {
550
550
  var t;
551
551
  return (t = r(c)) == null ? void 0 : t.graphicConfig;
@@ -557,7 +557,7 @@ const gt = /* @__PURE__ */ Y(Ze, [["render", pt], ["__scopeId", "data-v-eb6815db
557
557
  pageSize: 20,
558
558
  currentPage: 1,
559
559
  totalResult: 0
560
- }), b = S(me), O = $(""), T = async () => {
560
+ }), b = T(me), O = $(""), S = async () => {
561
561
  if (r(N).source === "INDICATOR_LIB")
562
562
  return;
563
563
  p.value = !0;
@@ -601,16 +601,16 @@ const gt = /* @__PURE__ */ Y(Ze, [["render", pt], ["__scopeId", "data-v-eb6815db
601
601
  _.value[t].show = !_.value[t].show;
602
602
  }, n = () => {
603
603
  var t;
604
- l.currentPage = 1, T(), r(N).source === "INDICATOR_LIB" && ((t = r(C)) == null || t.handleSearch(r(O)));
604
+ l.currentPage = 1, S(), r(N).source === "INDICATOR_LIB" && ((t = r(C)) == null || t.handleSearch(r(O)));
605
605
  }, m = Ve(() => {
606
- l.currentPage = 1, T();
606
+ l.currentPage = 1, S();
607
607
  }, 200), I = (t, a) => {
608
- l.pageSize = a, l.currentPage = t, T();
608
+ l.pageSize = a, l.currentPage = t, S();
609
609
  };
610
610
  x(() => {
611
- T();
611
+ S();
612
612
  });
613
- const N = S(fe), G = M(() => {
613
+ const N = T(fe), G = M(() => {
614
614
  const t = ["classificationList", "rowHeaderList", "dimensionList", "queryColumnList"];
615
615
  let a = [];
616
616
  for (const u in r(N))
@@ -635,7 +635,7 @@ const gt = /* @__PURE__ */ Y(Ze, [["render", pt], ["__scopeId", "data-v-eb6815db
635
635
  }
636
636
  return a;
637
637
  };
638
- return Te("setItemDisabled", B), {
638
+ return Se("setItemDisabled", B), {
639
639
  dataSourceList: _,
640
640
  dataSourceLoading: p,
641
641
  pagination: l,
@@ -670,7 +670,7 @@ const gt = /* @__PURE__ */ Y(Ze, [["render", pt], ["__scopeId", "data-v-eb6815db
670
670
  });
671
671
  const mt = { class: "data-source-list" }, ht = { class: "columns" }, _t = { class: "column-item" }, yt = { key: 0 }, vt = { key: 1 }, Ct = { key: 2 }, Dt = ["onClick"], It = { key: 0 }, Lt = { class: "column-child-item" }, bt = { class: "column-child-item-name" };
672
672
  function wt(e, s, o, c, d, F) {
673
- const _ = y("a-input-search"), p = y("ind-source-list"), C = y("caret-down-outlined"), l = y("caret-right-outlined"), b = y("a-tooltip"), O = y("draggable"), T = y("a-spin"), V = y("a-pagination");
673
+ const _ = y("a-input-search"), p = y("ind-source-list"), C = y("caret-down-outlined"), l = y("caret-right-outlined"), b = y("a-tooltip"), O = y("draggable"), S = y("a-spin"), V = y("a-pagination");
674
674
  return i(), h("div", mt, [
675
675
  w(_, {
676
676
  value: e.searchText,
@@ -692,7 +692,7 @@ function wt(e, s, o, c, d, F) {
692
692
  onOnDragStart: e.onDragStart
693
693
  }, null, 8, ["data", "graphicConfig", "onSetItemDisabled", "onOnDragStart"])) : (i(), h(J, { key: 1 }, [
694
694
  L("div", ht, [
695
- w(T, {
695
+ w(S, {
696
696
  spinning: e.dataSourceLoading,
697
697
  tip: "数据源加载中..."
698
698
  }, {
@@ -763,15 +763,15 @@ function wt(e, s, o, c, d, F) {
763
763
  ], 64))
764
764
  ]);
765
765
  }
766
- const Tt = /* @__PURE__ */ Y(ft, [["render", wt], ["__scopeId", "data-v-0a17825c"]]), St = X({
766
+ const St = /* @__PURE__ */ Y(ft, [["render", wt], ["__scopeId", "data-v-0a17825c"]]), Tt = X({
767
767
  name: "DataList",
768
768
  components: {
769
- DataSourceList: Tt,
769
+ DataSourceList: St,
770
770
  DataViewList: Ue
771
771
  },
772
772
  setup() {
773
773
  return {
774
- source: S(me)
774
+ source: T(me)
775
775
  };
776
776
  }
777
777
  });
@@ -782,8 +782,8 @@ function Ot(e, s, o, c, d, F) {
782
782
  e.source === "INDICATOR_LIB" || e.source === "EDV_DATA_SET" ? (i(), k(p, { key: 1 })) : A("", !0)
783
783
  ], 64);
784
784
  }
785
- const Nt = /* @__PURE__ */ Y(St, [["render", Ot]]);
785
+ const Nt = /* @__PURE__ */ Y(Tt, [["render", Ot]]);
786
786
  export {
787
787
  Nt as default
788
788
  };
789
- //# sourceMappingURL=index-c33d9ee5.mjs.map
789
+ //# sourceMappingURL=index-f37fa8d2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-f37fa8d2.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]}
@@ -1,4 +1,4 @@
1
- /*! @ecan-bi/indicator-library@1.1.14 */
1
+ /*! @ecan-bi/indicator-library@1.1.16 */
2
2
  import { defineComponent as Jt, ref as J, inject as gt, watch as Dt, unref as F, computed as it, openBlock as me, createElementBlock as Ie, normalizeStyle as et, withModifiers as vr, createElementVNode as ke, onMounted as ss, onUnmounted as cm, toDisplayString as Zt, createCommentVNode as Ct, createVNode as ue, Transition as hA, withCtx as Me, Fragment as Co, renderList as gi, resolveComponent as ye, withKeys as V2, createBlock as xt, nextTick as No, provide as bi, Teleport as dA, reactive as jc, onBeforeUnmount as cA, watchEffect as U2, toRaw as K2, defineAsyncComponent as $2, createTextVNode as ho, normalizeClass as xn, withDirectives as wh, vShow as Gc, resolveDynamicComponent as Y2, mergeProps as X2, resolveDirective as q2, h as fy } from "vue";
3
3
  import mr from "dayjs";
4
4
  import { cloneDeep as go } from "lodash-es";
package/dist/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
- /*! @ecan-bi/indicator-library@1.1.14 */
2
- import { r as m, E as c, q as n } from "./index-778471df.mjs";
1
+ /*! @ecan-bi/indicator-library@1.1.16 */
2
+ import { r as m, E as c, q as n } from "./index-29f99560.mjs";
3
3
  import "vue";
4
4
  import "lodash-es";
5
5
  import "echarts";