@xjw_/vue3-npm-system 1.4.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import Cookies from "js-cookie";
2
2
  import axios from "axios";
3
- import { ElMessage, ElInput, ElOption, ElCascader, ElDatePicker, ElSelect } from "element-plus";
4
- import { defineComponent, computed, openBlock, createElementBlock, mergeProps, createElementVNode, ref, watch, resolveComponent, createBlock, provide, withCtx, createVNode, normalizeStyle, renderSlot, inject, normalizeClass, createCommentVNode, Fragment, renderList, createSlots, getCurrentInstance, toDisplayString, useSlots, onMounted, unref, withKeys, createTextVNode, withDirectives, resolveDynamicComponent, vShow, nextTick, normalizeProps, guardReactiveProps, reactive } from "vue";
3
+ import { ElMessage, ElInput, ElOption, ElCascader, ElDatePicker, ElSelect, ElMessageBox } from "element-plus";
4
+ import { defineComponent, computed, openBlock, createElementBlock, mergeProps, createElementVNode, ref, watch, resolveComponent, createBlock, provide, withCtx, createVNode, normalizeStyle, renderSlot, inject, normalizeClass, createCommentVNode, Fragment, renderList, createSlots, getCurrentInstance, toDisplayString, useSlots, onMounted, unref, withKeys, createTextVNode, withDirectives, resolveDynamicComponent, vShow, nextTick, normalizeProps, guardReactiveProps, reactive, withModifiers } from "vue";
5
5
  function debounce$1(func, wait) {
6
6
  let timeout = null;
7
7
  return function(...args) {
@@ -79,7 +79,12 @@ const cookie = {
79
79
  },
80
80
  get(key) {
81
81
  const item = Cookies.get(key);
82
- return item ? JSON.parse(item) : null;
82
+ if (!item) return null;
83
+ try {
84
+ return JSON.parse(item);
85
+ } catch {
86
+ return item;
87
+ }
83
88
  },
84
89
  remove(key) {
85
90
  Cookies.remove(key);
@@ -1301,25 +1306,25 @@ const _hoisted_5$3 = ["onClick"];
1301
1306
  const _hoisted_6$3 = { class: "report-text-primary" };
1302
1307
  const _hoisted_7$3 = { class: "report-text-primary" };
1303
1308
  const _hoisted_8$3 = { class: "report-text-primary" };
1304
- const _hoisted_9$1 = { class: "report-flex report-justify-between" };
1305
- const _hoisted_10$1 = { class: "" };
1306
- const _hoisted_11$1 = { class: "" };
1307
- const _hoisted_12$1 = { key: 0 };
1308
- const _hoisted_13$1 = { class: "" };
1309
- const _hoisted_14$1 = { class: "" };
1310
- const _hoisted_15$1 = { key: 1 };
1311
- const _hoisted_16$1 = { class: "" };
1312
- const _hoisted_17$1 = { class: "" };
1313
- const _hoisted_18 = { class: "" };
1314
- const _hoisted_19 = { class: "" };
1315
- const _hoisted_20 = { class: "report-body" };
1316
- const _hoisted_21 = { class: "report-flex report-justify-between" };
1317
- const _hoisted_22 = { class: "" };
1318
- const _hoisted_23 = { class: "" };
1319
- const _hoisted_24 = { key: 0 };
1320
- const _hoisted_25 = { class: "" };
1321
- const _hoisted_26 = { class: "" };
1322
- const _hoisted_27 = { class: "" };
1309
+ const _hoisted_9$2 = { class: "report-flex report-justify-between" };
1310
+ const _hoisted_10$2 = { class: "" };
1311
+ const _hoisted_11$2 = { class: "" };
1312
+ const _hoisted_12$2 = { key: 0 };
1313
+ const _hoisted_13$2 = { class: "" };
1314
+ const _hoisted_14$2 = { class: "" };
1315
+ const _hoisted_15$2 = { key: 1 };
1316
+ const _hoisted_16$2 = { class: "" };
1317
+ const _hoisted_17$2 = { class: "" };
1318
+ const _hoisted_18$1 = { class: "" };
1319
+ const _hoisted_19$1 = { class: "" };
1320
+ const _hoisted_20$1 = { class: "report-body" };
1321
+ const _hoisted_21$1 = { class: "report-flex report-justify-between" };
1322
+ const _hoisted_22$1 = { class: "" };
1323
+ const _hoisted_23$1 = { class: "" };
1324
+ const _hoisted_24$1 = { key: 0 };
1325
+ const _hoisted_25$1 = { class: "" };
1326
+ const _hoisted_26$1 = { class: "" };
1327
+ const _hoisted_27$1 = { class: "" };
1323
1328
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1324
1329
  __name: "XReportTable",
1325
1330
  props: {
@@ -1564,30 +1569,30 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1564
1569
  ref_key: "reportHeaderRef",
1565
1570
  ref: reportHeaderRef
1566
1571
  }, [
1567
- createElementVNode("div", _hoisted_9$1, [
1572
+ createElementVNode("div", _hoisted_9$2, [
1568
1573
  createElementVNode("div", null, [
1569
1574
  _cache[3] || (_cache[3] = createElementVNode("span", { class: "" }, "制表单位:", -1)),
1570
- createElementVNode("span", _hoisted_10$1, toDisplayString(organizationNameDisplay.value), 1)
1575
+ createElementVNode("span", _hoisted_10$2, toDisplayString(organizationNameDisplay.value), 1)
1571
1576
  ]),
1572
1577
  createElementVNode("div", null, [
1573
1578
  _cache[4] || (_cache[4] = createElementVNode("span", { class: "" }, "日期范围:", -1)),
1574
- createElementVNode("span", _hoisted_11$1, toDisplayString(dateRangeDisplay.value), 1)
1579
+ createElementVNode("span", _hoisted_11$2, toDisplayString(dateRangeDisplay.value), 1)
1575
1580
  ]),
1576
- __props.customHeader1Label ? (openBlock(), createElementBlock("div", _hoisted_12$1, [
1577
- createElementVNode("span", _hoisted_13$1, toDisplayString(__props.customHeader1Label) + ":", 1),
1578
- createElementVNode("span", _hoisted_14$1, toDisplayString(__props.customHeader1 || ""), 1)
1581
+ __props.customHeader1Label ? (openBlock(), createElementBlock("div", _hoisted_12$2, [
1582
+ createElementVNode("span", _hoisted_13$2, toDisplayString(__props.customHeader1Label) + ":", 1),
1583
+ createElementVNode("span", _hoisted_14$2, toDisplayString(__props.customHeader1 || ""), 1)
1579
1584
  ])) : createCommentVNode("", true),
1580
- __props.customHeader2Label ? (openBlock(), createElementBlock("div", _hoisted_15$1, [
1581
- createElementVNode("span", _hoisted_16$1, toDisplayString(__props.customHeader2Label) + ":", 1),
1582
- createElementVNode("span", _hoisted_17$1, toDisplayString(__props.customHeader2 || ""), 1)
1585
+ __props.customHeader2Label ? (openBlock(), createElementBlock("div", _hoisted_15$2, [
1586
+ createElementVNode("span", _hoisted_16$2, toDisplayString(__props.customHeader2Label) + ":", 1),
1587
+ createElementVNode("span", _hoisted_17$2, toDisplayString(__props.customHeader2 || ""), 1)
1583
1588
  ])) : createCommentVNode("", true),
1584
1589
  createElementVNode("div", null, [
1585
- createElementVNode("span", _hoisted_18, toDisplayString(__props.customHeader3Label) + toDisplayString(__props.customHeader3Label ? ":" : ""), 1),
1586
- createElementVNode("span", _hoisted_19, toDisplayString(__props.customHeader3 || ""), 1)
1590
+ createElementVNode("span", _hoisted_18$1, toDisplayString(__props.customHeader3Label) + toDisplayString(__props.customHeader3Label ? ":" : ""), 1),
1591
+ createElementVNode("span", _hoisted_19$1, toDisplayString(__props.customHeader3 || ""), 1)
1587
1592
  ])
1588
1593
  ])
1589
1594
  ], 512),
1590
- createElementVNode("div", _hoisted_20, [
1595
+ createElementVNode("div", _hoisted_20$1, [
1591
1596
  createVNode(XVxeTable, {
1592
1597
  ref_key: "repVxeTableRef",
1593
1598
  ref: repVxeTableRef,
@@ -1619,22 +1624,22 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1619
1624
  ref_key: "reportFooterRef",
1620
1625
  ref: reportFooterRef
1621
1626
  }, [
1622
- createElementVNode("div", _hoisted_21, [
1627
+ createElementVNode("div", _hoisted_21$1, [
1623
1628
  createElementVNode("div", null, [
1624
1629
  _cache[5] || (_cache[5] = createElementVNode("span", { class: "" }, "审核人员:", -1)),
1625
- createElementVNode("span", _hoisted_22, toDisplayString(__props.auditorName || ""), 1)
1630
+ createElementVNode("span", _hoisted_22$1, toDisplayString(__props.auditorName || ""), 1)
1626
1631
  ]),
1627
1632
  createElementVNode("div", null, [
1628
1633
  _cache[6] || (_cache[6] = createElementVNode("span", { class: "" }, "制表人员:", -1)),
1629
- createElementVNode("span", _hoisted_23, toDisplayString(creatorNameDisplay.value), 1)
1634
+ createElementVNode("span", _hoisted_23$1, toDisplayString(creatorNameDisplay.value), 1)
1630
1635
  ]),
1631
- __props.customFooterFieldLabel ? (openBlock(), createElementBlock("div", _hoisted_24, [
1632
- createElementVNode("span", _hoisted_25, toDisplayString(__props.customFooterFieldLabel) + ":", 1),
1633
- createElementVNode("span", _hoisted_26, toDisplayString(__props.customFooterField || ""), 1)
1636
+ __props.customFooterFieldLabel ? (openBlock(), createElementBlock("div", _hoisted_24$1, [
1637
+ createElementVNode("span", _hoisted_25$1, toDisplayString(__props.customFooterFieldLabel) + ":", 1),
1638
+ createElementVNode("span", _hoisted_26$1, toDisplayString(__props.customFooterField || ""), 1)
1634
1639
  ])) : createCommentVNode("", true),
1635
1640
  createElementVNode("div", null, [
1636
1641
  _cache[7] || (_cache[7] = createElementVNode("span", { class: "" }, "打印日期:", -1)),
1637
- createElementVNode("span", _hoisted_27, toDisplayString(formattedPrintDate.value), 1)
1642
+ createElementVNode("span", _hoisted_27$1, toDisplayString(formattedPrintDate.value), 1)
1638
1643
  ])
1639
1644
  ])
1640
1645
  ], 512)
@@ -1666,27 +1671,27 @@ const _hoisted_7$2 = {
1666
1671
  class: "search-top-extra-label"
1667
1672
  };
1668
1673
  const _hoisted_8$2 = { class: "search-top-extra-content" };
1669
- const _hoisted_9 = {
1674
+ const _hoisted_9$1 = {
1670
1675
  key: 1,
1671
1676
  class: "search-top-extra-item"
1672
1677
  };
1673
- const _hoisted_10 = {
1678
+ const _hoisted_10$1 = {
1674
1679
  key: 0,
1675
1680
  class: "search-top-extra-label"
1676
1681
  };
1677
- const _hoisted_11 = { class: "search-top-extra-content" };
1678
- const _hoisted_12 = {
1682
+ const _hoisted_11$1 = { class: "search-top-extra-content" };
1683
+ const _hoisted_12$1 = {
1679
1684
  key: 2,
1680
1685
  class: "search-top-extra-item"
1681
1686
  };
1682
- const _hoisted_13 = {
1687
+ const _hoisted_13$1 = {
1683
1688
  key: 0,
1684
1689
  class: "search-top-extra-label"
1685
1690
  };
1686
- const _hoisted_14 = { class: "search-top-extra-content" };
1687
- const _hoisted_15 = { class: "search-top__actions" };
1688
- const _hoisted_16 = { class: "search-form__buttons" };
1689
- const _hoisted_17 = { class: "search-form__buttons" };
1691
+ const _hoisted_14$1 = { class: "search-top-extra-content" };
1692
+ const _hoisted_15$1 = { class: "search-top__actions" };
1693
+ const _hoisted_16$1 = { class: "search-form__buttons" };
1694
+ const _hoisted_17$1 = { class: "search-form__buttons" };
1690
1695
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1691
1696
  __name: "XSearchBar",
1692
1697
  props: {
@@ -1984,21 +1989,21 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1984
1989
  renderSlot(_ctx.$slots, "text1", {}, void 0, true)
1985
1990
  ])
1986
1991
  ])) : createCommentVNode("", true),
1987
- unref(slots).text2 ? (openBlock(), createElementBlock("div", _hoisted_9, [
1988
- __props.text2 ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(__props.text2) + ":", 1)) : createCommentVNode("", true),
1989
- createElementVNode("div", _hoisted_11, [
1992
+ unref(slots).text2 ? (openBlock(), createElementBlock("div", _hoisted_9$1, [
1993
+ __props.text2 ? (openBlock(), createElementBlock("span", _hoisted_10$1, toDisplayString(__props.text2) + ":", 1)) : createCommentVNode("", true),
1994
+ createElementVNode("div", _hoisted_11$1, [
1990
1995
  renderSlot(_ctx.$slots, "text2", {}, void 0, true)
1991
1996
  ])
1992
1997
  ])) : createCommentVNode("", true),
1993
- unref(slots).text3 ? (openBlock(), createElementBlock("div", _hoisted_12, [
1994
- __props.text3 ? (openBlock(), createElementBlock("span", _hoisted_13, toDisplayString(__props.text3) + ":", 1)) : createCommentVNode("", true),
1995
- createElementVNode("div", _hoisted_14, [
1998
+ unref(slots).text3 ? (openBlock(), createElementBlock("div", _hoisted_12$1, [
1999
+ __props.text3 ? (openBlock(), createElementBlock("span", _hoisted_13$1, toDisplayString(__props.text3) + ":", 1)) : createCommentVNode("", true),
2000
+ createElementVNode("div", _hoisted_14$1, [
1996
2001
  renderSlot(_ctx.$slots, "text3", {}, void 0, true)
1997
2002
  ])
1998
2003
  ])) : createCommentVNode("", true)
1999
2004
  ], 2)
2000
2005
  ]),
2001
- createElementVNode("div", _hoisted_15, [
2006
+ createElementVNode("div", _hoisted_15$1, [
2002
2007
  createVNode(_component_el_button, {
2003
2008
  plain: "",
2004
2009
  onClick: reset
@@ -2046,7 +2051,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2046
2051
  span: buttonItemSpan.value
2047
2052
  }, {
2048
2053
  default: withCtx(() => [
2049
- createElementVNode("div", _hoisted_16, [
2054
+ createElementVNode("div", _hoisted_16$1, [
2050
2055
  createVNode(_component_el_button, {
2051
2056
  plain: "",
2052
2057
  onClick: reset
@@ -2120,7 +2125,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2120
2125
  span: buttonItemSpan.value
2121
2126
  }, {
2122
2127
  default: withCtx(() => [
2123
- createElementVNode("div", _hoisted_17, [
2128
+ createElementVNode("div", _hoisted_17$1, [
2124
2129
  createVNode(_component_el_button, {
2125
2130
  plain: "",
2126
2131
  onClick: reset
@@ -2551,46 +2556,96 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2551
2556
  });
2552
2557
  const XVxeColumn = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-8ace2083"]]);
2553
2558
  function createSearchApi(serverBaseURL) {
2554
- const request = createRequest({ baseURL: serverBaseURL });
2559
+ const request = createRequest({ baseURL: serverBaseURL, tokenCookieName: "Admin-Token" });
2555
2560
  return {
2556
- // 获取设置的列表
2557
- listByCurrentUser(data) {
2558
- return request({
2559
- url: "/plugin/system/field/user/listByCurrentUser",
2560
- method: "post",
2561
- data: { systemId: "1233849248630274", systemName: "进销存", ...data }
2562
- });
2561
+ // 查询所有系统
2562
+ sysList(data) {
2563
+ return request({ url: "/plugin/system/list", method: "post", data });
2563
2564
  },
2564
2565
  // 新增系统
2565
2566
  sysSave(data) {
2566
2567
  return request({ url: "/plugin/system/save", method: "post", data });
2567
2568
  },
2568
- // 查询系统
2569
- sysList(data) {
2570
- return request({ url: "/plugin/system/list", method: "post", data });
2569
+ // 修改系统
2570
+ sysUpdate(data) {
2571
+ return request({ url: "/plugin/system/update", method: "post", data });
2571
2572
  },
2572
- // 新增模块、页面
2573
+ // 新增模块/页面
2573
2574
  moduleSave(data) {
2574
2575
  return request({ url: "/plugin/module/save", method: "post", data });
2575
2576
  },
2576
- // 获取模块、页面
2577
+ // 修改模块/页面
2578
+ moduleUpdate(data) {
2579
+ return request({ url: "/plugin/module/update", method: "post", data });
2580
+ },
2581
+ // 删除模块/页面
2582
+ moduleDelete(id) {
2583
+ return request({ url: `/plugin/module/delete/${id}`, method: "post" });
2584
+ },
2585
+ // 查询模块/页面列表
2577
2586
  moduleList(data) {
2578
2587
  return request({ url: "/plugin/module/list", method: "post", params: data });
2579
2588
  },
2580
- // 新增页面字段
2581
- saveOrUpdate(data) {
2589
+ // 新增或修改字段
2590
+ fieldSaveOrUpdate(data) {
2582
2591
  return request({ url: "/plugin/system/field/saveOrUpdate", method: "post", data });
2592
+ },
2593
+ // 字段分页查询
2594
+ fieldPageView(data) {
2595
+ return request({ url: "/plugin/system/field/pageView", method: "post", data });
2596
+ },
2597
+ // 获取用户字段列表(兼容旧接口)
2598
+ listByCurrentUser(data) {
2599
+ return request({
2600
+ url: "/plugin/system/field/user/listByCurrentUser",
2601
+ method: "post",
2602
+ data: { systemId: "1233849248630274", systemName: "进销存", ...data }
2603
+ });
2583
2604
  }
2584
2605
  };
2585
2606
  }
2586
- const _hoisted_1 = { class: "search-bar-config" };
2587
- const _hoisted_2 = { class: "section" };
2588
- const _hoisted_3 = { class: "section__body" };
2589
- const _hoisted_4 = { class: "section" };
2590
- const _hoisted_5 = { class: "section__body" };
2591
- const _hoisted_6 = { class: "section" };
2592
- const _hoisted_7 = { class: "section__body section__body--grid" };
2593
- const _hoisted_8 = { class: "section__body section__body--grid" };
2607
+ const _hoisted_1 = { class: "x-search-bar-config" };
2608
+ const _hoisted_2 = { class: "config-sidebar" };
2609
+ const _hoisted_3 = { class: "config-sidebar__header" };
2610
+ const _hoisted_4 = { class: "config-sidebar__list" };
2611
+ const _hoisted_5 = ["onClick"];
2612
+ const _hoisted_6 = { class: "config-sidebar__item-info" };
2613
+ const _hoisted_7 = { class: "config-sidebar__item-name" };
2614
+ const _hoisted_8 = { class: "config-sidebar__item-id" };
2615
+ const _hoisted_9 = {
2616
+ key: 0,
2617
+ class: "config-sidebar__empty"
2618
+ };
2619
+ const _hoisted_10 = {
2620
+ key: 0,
2621
+ class: "config-sidebar__modules"
2622
+ };
2623
+ const _hoisted_11 = { class: "config-sidebar__header" };
2624
+ const _hoisted_12 = { class: "config-sidebar__list" };
2625
+ const _hoisted_13 = ["onClick"];
2626
+ const _hoisted_14 = { class: "config-sidebar__item-info" };
2627
+ const _hoisted_15 = { class: "config-sidebar__item-name" };
2628
+ const _hoisted_16 = { class: "config-sidebar__item-id" };
2629
+ const _hoisted_17 = {
2630
+ key: 0,
2631
+ class: "config-sidebar__empty"
2632
+ };
2633
+ const _hoisted_18 = { class: "config-content" };
2634
+ const _hoisted_19 = { class: "config-section" };
2635
+ const _hoisted_20 = { class: "config-section__header" };
2636
+ const _hoisted_21 = { class: "config-section__title" };
2637
+ const _hoisted_22 = {
2638
+ key: 0,
2639
+ class: "config-section__actions"
2640
+ };
2641
+ const _hoisted_23 = { class: "config-form__grid" };
2642
+ const _hoisted_24 = { class: "config-form__grid config-form__grid--2col" };
2643
+ const _hoisted_25 = { class: "config-form__footer" };
2644
+ const _hoisted_26 = { class: "config-section" };
2645
+ const _hoisted_27 = {
2646
+ key: 1,
2647
+ class: "config-content__empty"
2648
+ };
2594
2649
  const _sfc_main = /* @__PURE__ */ defineComponent({
2595
2650
  __name: "SearchBar",
2596
2651
  props: {
@@ -2606,18 +2661,131 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2606
2661
  setup(__props) {
2607
2662
  const props = __props;
2608
2663
  const api = createSearchApi(props.serverBaseURL);
2609
- const formRef = ref();
2610
- const form1Ref = ref();
2611
- const form2Ref = ref();
2612
- const form = reactive({
2613
- systemName: "",
2614
- status: 1
2615
- });
2616
- const form1 = reactive({
2617
- moduleCode: "",
2618
- moduleName: "",
2619
- status: 1
2620
- });
2664
+ const systemList = ref([]);
2665
+ const currentSystemId = ref("");
2666
+ const currentSystemName = ref("");
2667
+ const systemDialogVisible = ref(false);
2668
+ const editingSystem = ref(null);
2669
+ const systemFormRef = ref();
2670
+ const systemForm = reactive({ systemName: "" });
2671
+ function getSystemList() {
2672
+ api.sysList().then((res) => {
2673
+ systemList.value = res.data || [];
2674
+ if (props.systemId && !currentSystemId.value) {
2675
+ const found = systemList.value.find((s) => s.id === props.systemId);
2676
+ if (found) {
2677
+ selectSystem(found);
2678
+ }
2679
+ }
2680
+ });
2681
+ }
2682
+ function selectSystem(sys) {
2683
+ currentSystemId.value = sys.id;
2684
+ currentSystemName.value = sys.systemName;
2685
+ getModuleList();
2686
+ getFieldList();
2687
+ }
2688
+ function handleAddSystem() {
2689
+ editingSystem.value = null;
2690
+ systemForm.systemName = "";
2691
+ systemDialogVisible.value = true;
2692
+ }
2693
+ function handleEditSystem(sys) {
2694
+ editingSystem.value = sys;
2695
+ systemForm.systemName = sys.systemName;
2696
+ systemDialogVisible.value = true;
2697
+ }
2698
+ function submitSystem() {
2699
+ var _a;
2700
+ (_a = systemFormRef.value) == null ? void 0 : _a.validate((valid) => {
2701
+ if (!valid) return;
2702
+ if (editingSystem.value) {
2703
+ api.sysUpdate({ id: editingSystem.value.id, systemName: systemForm.systemName, status: 1 }).then(() => {
2704
+ ElMessage.success("修改成功");
2705
+ systemDialogVisible.value = false;
2706
+ getSystemList();
2707
+ });
2708
+ } else {
2709
+ api.sysSave({ systemName: systemForm.systemName, status: 1 }).then(() => {
2710
+ ElMessage.success("新增成功");
2711
+ systemDialogVisible.value = false;
2712
+ getSystemList();
2713
+ });
2714
+ }
2715
+ });
2716
+ }
2717
+ const moduleList = ref([]);
2718
+ const currentModuleId = ref("");
2719
+ const moduleDialogVisible = ref(false);
2720
+ const editingModule = ref(null);
2721
+ const moduleFormRef = ref();
2722
+ const moduleForm = reactive({ moduleCode: "", moduleName: "" });
2723
+ function getModuleList() {
2724
+ if (!currentSystemId.value) return;
2725
+ api.moduleList({ systemId: currentSystemId.value }).then((res) => {
2726
+ moduleList.value = res.data || [];
2727
+ });
2728
+ }
2729
+ function selectModule(mod) {
2730
+ currentModuleId.value = mod.id;
2731
+ getFieldList();
2732
+ }
2733
+ function handleAddModule() {
2734
+ editingModule.value = null;
2735
+ moduleForm.moduleCode = "";
2736
+ moduleForm.moduleName = "";
2737
+ moduleDialogVisible.value = true;
2738
+ }
2739
+ function handleEditModule(mod) {
2740
+ editingModule.value = mod;
2741
+ moduleForm.moduleCode = mod.moduleCode;
2742
+ moduleForm.moduleName = mod.moduleName;
2743
+ moduleDialogVisible.value = true;
2744
+ }
2745
+ function handleDeleteModule(mod) {
2746
+ ElMessageBox.confirm(`确定删除模块「${mod.moduleName}」?`, "提示", { type: "warning" }).then(() => {
2747
+ api.moduleDelete(mod.id).then(() => {
2748
+ ElMessage.success("删除成功");
2749
+ if (currentModuleId.value === mod.id) {
2750
+ currentModuleId.value = "";
2751
+ }
2752
+ getModuleList();
2753
+ });
2754
+ }).catch(() => {
2755
+ });
2756
+ }
2757
+ function submitModule() {
2758
+ var _a;
2759
+ (_a = moduleFormRef.value) == null ? void 0 : _a.validate((valid) => {
2760
+ if (!valid) return;
2761
+ if (editingModule.value) {
2762
+ api.moduleUpdate({
2763
+ id: editingModule.value.id,
2764
+ moduleCode: moduleForm.moduleCode,
2765
+ moduleName: moduleForm.moduleName,
2766
+ systemId: currentSystemId.value,
2767
+ status: 1
2768
+ }).then(() => {
2769
+ ElMessage.success("修改成功");
2770
+ moduleDialogVisible.value = false;
2771
+ getModuleList();
2772
+ });
2773
+ } else {
2774
+ api.moduleSave({
2775
+ moduleCode: moduleForm.moduleCode,
2776
+ moduleName: moduleForm.moduleName,
2777
+ systemId: currentSystemId.value,
2778
+ status: 1
2779
+ }).then(() => {
2780
+ ElMessage.success("新增成功");
2781
+ moduleDialogVisible.value = false;
2782
+ getModuleList();
2783
+ });
2784
+ }
2785
+ });
2786
+ }
2787
+ const fieldFormRef = ref();
2788
+ const editingField = ref(null);
2621
2789
  const fieldTypeOptions = [
2622
2790
  { label: "文本框", value: "el-input" },
2623
2791
  { label: "下拉框", value: "el-select" },
@@ -2626,7 +2794,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2626
2794
  { label: "部门选择", value: "h-select-tree-dep" },
2627
2795
  { label: "所选组织名称", value: "h-select-org" }
2628
2796
  ];
2629
- const form2 = reactive({
2797
+ const fieldForm = reactive({
2798
+ id: "",
2630
2799
  attribute: "",
2631
2800
  fieldJavaName: "",
2632
2801
  fieldName: "",
@@ -2635,440 +2804,694 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2635
2804
  moduleId: "",
2636
2805
  dictKey: "",
2637
2806
  selType: "3",
2638
- status: 1,
2639
2807
  isCache: false
2640
2808
  });
2641
- const rules = reactive({});
2642
- const rules1 = reactive({});
2643
- const rules2 = reactive({});
2644
- const moduleList = ref([]);
2645
- watch(() => form2.fieldName, () => handleFieldChange(), { immediate: true });
2646
- watch(() => form2.fieldType, () => handleFieldChange(), { immediate: true });
2647
- watch(() => form2.selType, () => selTypeFieldChange(), { immediate: true });
2809
+ const fieldTableData = ref([]);
2810
+ const fieldPage = reactive({
2811
+ currentPage: 1,
2812
+ pageSize: 20,
2813
+ total: 0
2814
+ });
2815
+ watch(() => fieldForm.fieldName, () => handleFieldChange(), { immediate: false });
2816
+ watch(() => fieldForm.fieldType, () => handleFieldChange(), { immediate: false });
2817
+ watch(() => fieldForm.selType, () => selTypeFieldChange(), { immediate: false });
2648
2818
  function selTypeFieldChange() {
2649
- const newVal = form2.selType;
2650
- if (newVal === "1") {
2651
- form2.dictKey = JSON.stringify({ type: "dict", label: "dictLabel", value: "dictValue", key: "" }, null, 2);
2652
- } else if (newVal === "2") {
2653
- form2.dictKey = JSON.stringify({ type: "compound", label: "label", value: "value", url: "" }, null, 2);
2819
+ const val = fieldForm.selType;
2820
+ if (val === "1") {
2821
+ fieldForm.dictKey = JSON.stringify({ type: "dict", label: "dictLabel", value: "dictValue", key: "" }, null, 2);
2822
+ } else if (val === "2") {
2823
+ fieldForm.dictKey = JSON.stringify({ type: "compound", label: "label", value: "value", url: "" }, null, 2);
2654
2824
  } else {
2655
- form2.dictKey = JSON.stringify({ type: "normal", label: "label", value: "value", key: "" }, null, 2);
2825
+ fieldForm.dictKey = JSON.stringify({ type: "normal", label: "label", value: "value", key: "" }, null, 2);
2656
2826
  }
2657
2827
  }
2658
2828
  function handleFieldChange() {
2659
- const newVal = form2.fieldType;
2660
- if (newVal === "el-input") {
2661
- form2.attribute = JSON.stringify({ placeholder: "请输入" + form2.fieldName, clearable: true }, null, 2);
2662
- form2.dictKey = "{}";
2663
- } else if (newVal === "el-select") {
2664
- form2.attribute = JSON.stringify({ placeholder: "请选择" + form2.fieldName, filterable: true, clearable: true }, null, 2);
2665
- } else if (newVal === "el-date-picker") {
2666
- if (form2.fieldName.indexOf("日期") > -1) {
2667
- form2.attribute = JSON.stringify({ type: "date", placeholder: "请选择" + form2.fieldName, "value-format": "YYYY-MM-DD", clearable: true }, null, 2);
2829
+ const val = fieldForm.fieldType;
2830
+ if (val === "el-input") {
2831
+ fieldForm.attribute = JSON.stringify({ placeholder: "请输入" + fieldForm.fieldName, clearable: true }, null, 2);
2832
+ fieldForm.dictKey = "{}";
2833
+ } else if (val === "el-select") {
2834
+ fieldForm.attribute = JSON.stringify({ placeholder: "请选择" + fieldForm.fieldName, filterable: true, clearable: true }, null, 2);
2835
+ } else if (val === "el-date-picker") {
2836
+ if (fieldForm.fieldName.indexOf("日期") > -1) {
2837
+ fieldForm.attribute = JSON.stringify({ type: "date", placeholder: "请选择" + fieldForm.fieldName, "value-format": "YYYY-MM-DD", clearable: true }, null, 2);
2668
2838
  } else {
2669
- form2.attribute = JSON.stringify({ type: "date", placeholder: "请选择" + form2.fieldName, "value-format": "YYYY-MM-DD HH:mm:ss", clearable: true }, null, 2);
2839
+ fieldForm.attribute = JSON.stringify({ type: "date", placeholder: "请选择" + fieldForm.fieldName, "value-format": "YYYY-MM-DD HH:mm:ss", clearable: true }, null, 2);
2670
2840
  }
2671
- } else if (newVal === "h-select-org") {
2672
- form2.fieldName = "所选组织名称";
2673
- form2.fieldJavaName = "orgIds";
2674
- form2.attribute = JSON.stringify({ placeholder: "请选择" + form2.fieldName, filterable: true, multiple: true, disabled: false, clearable: false }, null, 2);
2841
+ } else if (val === "h-select-org") {
2842
+ fieldForm.fieldName = "所选组织名称";
2843
+ fieldForm.fieldJavaName = "orgIds";
2844
+ fieldForm.attribute = JSON.stringify({ placeholder: "请选择" + fieldForm.fieldName, filterable: true, multiple: true, disabled: false, clearable: false }, null, 2);
2675
2845
  } else {
2676
- form2.attribute = "{}";
2846
+ fieldForm.attribute = "{}";
2677
2847
  }
2678
2848
  }
2679
- function getModuleList() {
2680
- api.moduleList({ systemId: props.systemId }).then((res) => {
2681
- moduleList.value = res.data;
2682
- if (moduleList.value.length > 0) {
2683
- form2.moduleId = moduleList.value[moduleList.value.length - 1].id;
2684
- }
2685
- });
2686
- }
2687
- function subSys() {
2688
- var _a;
2689
- (_a = formRef.value) == null ? void 0 : _a.validate((valid) => {
2690
- if (valid) {
2691
- api.sysSave(form).then(() => {
2692
- ElMessage.success("保存成功");
2693
- });
2694
- }
2695
- });
2696
- }
2697
- function subSys1() {
2698
- var _a;
2699
- (_a = form1Ref.value) == null ? void 0 : _a.validate((valid) => {
2700
- if (valid) {
2701
- form1.systemId = props.systemId;
2702
- api.moduleSave(form1).then(() => {
2703
- ElMessage.success("保存成功");
2704
- getModuleList();
2705
- });
2706
- }
2849
+ function getFieldList() {
2850
+ if (!currentSystemId.value) return;
2851
+ const params = {
2852
+ systemId: currentSystemId.value,
2853
+ currentPage: fieldPage.currentPage,
2854
+ pageSize: fieldPage.pageSize
2855
+ };
2856
+ if (currentModuleId.value) {
2857
+ params.moduleId = currentModuleId.value;
2858
+ }
2859
+ api.fieldPageView(params).then((res) => {
2860
+ const data = res.data || {};
2861
+ fieldTableData.value = data.records || data.list || [];
2862
+ fieldPage.total = data.total || 0;
2707
2863
  });
2708
2864
  }
2709
- function subSys2() {
2865
+ function handleFieldPageChange(page, pageSize) {
2866
+ fieldPage.currentPage = page;
2867
+ fieldPage.pageSize = pageSize;
2868
+ getFieldList();
2869
+ }
2870
+ function handleEditField(row) {
2871
+ editingField.value = row;
2872
+ fieldForm.id = row.id || "";
2873
+ fieldForm.fieldName = row.fieldName || "";
2874
+ fieldForm.fieldJavaName = row.fieldJavaName || "";
2875
+ fieldForm.fieldType = row.fieldType || "el-input";
2876
+ fieldForm.isRequire = row.isRequire || "0";
2877
+ fieldForm.moduleId = row.moduleId || "";
2878
+ fieldForm.attribute = row.attribute || "";
2879
+ fieldForm.dictKey = row.dictKey || "";
2880
+ fieldForm.isCache = row.isCache || false;
2881
+ fieldForm.selType = "3";
2882
+ }
2883
+ function cancelEditField() {
2884
+ editingField.value = null;
2885
+ resetFieldForm();
2886
+ }
2887
+ function resetFieldForm() {
2888
+ fieldForm.id = "";
2889
+ fieldForm.fieldName = "";
2890
+ fieldForm.fieldJavaName = "";
2891
+ fieldForm.fieldType = "el-input";
2892
+ fieldForm.isRequire = "0";
2893
+ fieldForm.moduleId = currentModuleId.value || "";
2894
+ fieldForm.attribute = "";
2895
+ fieldForm.dictKey = "";
2896
+ fieldForm.selType = "3";
2897
+ fieldForm.isCache = false;
2898
+ editingField.value = null;
2899
+ }
2900
+ function submitField() {
2710
2901
  var _a;
2711
- (_a = form2Ref.value) == null ? void 0 : _a.validate((valid) => {
2712
- if (valid) {
2713
- const data = JSON.parse(JSON.stringify(form2));
2714
- data.systemId = props.systemId;
2715
- api.saveOrUpdate({ fieldList: [data] }).then(() => {
2716
- ElMessage.success("保存成功");
2717
- form2.fieldJavaName = "";
2718
- if (!form2.isCache) {
2719
- form2.fieldName = "";
2720
- }
2721
- });
2902
+ (_a = fieldFormRef.value) == null ? void 0 : _a.validate((valid) => {
2903
+ if (!valid) return;
2904
+ const data = {
2905
+ ...JSON.parse(JSON.stringify(fieldForm)),
2906
+ systemId: currentSystemId.value,
2907
+ status: 1
2908
+ };
2909
+ if (editingField.value) {
2910
+ data.id = editingField.value.id;
2722
2911
  }
2912
+ api.fieldSaveOrUpdate({ fieldList: [data] }).then(() => {
2913
+ ElMessage.success(editingField.value ? "修改成功" : "新增成功");
2914
+ if (!fieldForm.isCache) {
2915
+ resetFieldForm();
2916
+ }
2917
+ getFieldList();
2918
+ });
2723
2919
  });
2724
2920
  }
2725
2921
  onMounted(() => {
2726
- getModuleList();
2922
+ getSystemList();
2727
2923
  });
2728
2924
  return (_ctx, _cache) => {
2729
- const _component_el_input = resolveComponent("el-input");
2730
- const _component_el_form_item = resolveComponent("el-form-item");
2731
2925
  const _component_el_button = resolveComponent("el-button");
2732
- const _component_el_form = resolveComponent("el-form");
2733
2926
  const _component_el_option = resolveComponent("el-option");
2734
2927
  const _component_el_select = resolveComponent("el-select");
2928
+ const _component_el_form_item = resolveComponent("el-form-item");
2929
+ const _component_el_input = resolveComponent("el-input");
2735
2930
  const _component_el_checkbox = resolveComponent("el-checkbox");
2931
+ const _component_el_form = resolveComponent("el-form");
2932
+ const _component_el_tag = resolveComponent("el-tag");
2933
+ const _component_el_empty = resolveComponent("el-empty");
2934
+ const _component_el_dialog = resolveComponent("el-dialog");
2736
2935
  return openBlock(), createElementBlock("div", _hoisted_1, [
2737
- createVNode(_component_el_form, {
2738
- rules,
2739
- model: form,
2740
- ref_key: "formRef",
2741
- ref: formRef,
2742
- "label-suffix": "",
2743
- "hide-required-asterisk": "",
2744
- "show-message": ""
2745
- }, {
2746
- default: withCtx(() => [
2747
- createElementVNode("div", _hoisted_2, [
2748
- _cache[13] || (_cache[13] = createElementVNode("div", { class: "section__title" }, "系统配置", -1)),
2749
- createElementVNode("div", _hoisted_3, [
2750
- createVNode(_component_el_form_item, {
2751
- label: "系统名称",
2752
- prop: "systemName",
2753
- class: "form-item--auto"
2754
- }, {
2755
- default: withCtx(() => [
2756
- createVNode(_component_el_input, {
2757
- modelValue: form.systemName,
2758
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.systemName = $event),
2759
- placeholder: "请输入系统名称"
2760
- }, null, 8, ["modelValue"])
2936
+ createElementVNode("div", _hoisted_2, [
2937
+ createElementVNode("div", _hoisted_3, [
2938
+ _cache[19] || (_cache[19] = createElementVNode("span", { class: "config-sidebar__title" }, "系统列表", -1)),
2939
+ createVNode(_component_el_button, {
2940
+ type: "primary",
2941
+ size: "small",
2942
+ onClick: handleAddSystem
2943
+ }, {
2944
+ default: withCtx(() => _cache[18] || (_cache[18] = [
2945
+ createTextVNode("新增")
2946
+ ])),
2947
+ _: 1,
2948
+ __: [18]
2949
+ })
2950
+ ]),
2951
+ createElementVNode("div", _hoisted_4, [
2952
+ (openBlock(true), createElementBlock(Fragment, null, renderList(systemList.value, (sys) => {
2953
+ return openBlock(), createElementBlock("div", {
2954
+ key: sys.id,
2955
+ class: normalizeClass(["config-sidebar__item", { "is-active": currentSystemId.value === sys.id }]),
2956
+ onClick: ($event) => selectSystem(sys)
2957
+ }, [
2958
+ createElementVNode("div", _hoisted_6, [
2959
+ createElementVNode("span", _hoisted_7, toDisplayString(sys.systemName), 1),
2960
+ createElementVNode("span", _hoisted_8, "ID: " + toDisplayString(sys.id), 1)
2961
+ ]),
2962
+ createElementVNode("div", {
2963
+ class: "config-sidebar__item-actions",
2964
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
2965
+ }, ["stop"]))
2966
+ }, [
2967
+ createVNode(_component_el_button, {
2968
+ type: "primary",
2969
+ link: "",
2970
+ size: "small",
2971
+ onClick: ($event) => handleEditSystem(sys)
2972
+ }, {
2973
+ default: withCtx(() => _cache[20] || (_cache[20] = [
2974
+ createTextVNode("编辑")
2975
+ ])),
2976
+ _: 2,
2977
+ __: [20]
2978
+ }, 1032, ["onClick"])
2979
+ ])
2980
+ ], 10, _hoisted_5);
2981
+ }), 128)),
2982
+ systemList.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_9, "暂无系统")) : createCommentVNode("", true)
2983
+ ]),
2984
+ currentSystemId.value ? (openBlock(), createElementBlock("div", _hoisted_10, [
2985
+ createElementVNode("div", _hoisted_11, [
2986
+ _cache[22] || (_cache[22] = createElementVNode("span", { class: "config-sidebar__title" }, "模块列表", -1)),
2987
+ createVNode(_component_el_button, {
2988
+ type: "primary",
2989
+ size: "small",
2990
+ onClick: handleAddModule
2991
+ }, {
2992
+ default: withCtx(() => _cache[21] || (_cache[21] = [
2993
+ createTextVNode("新增")
2994
+ ])),
2995
+ _: 1,
2996
+ __: [21]
2997
+ })
2998
+ ]),
2999
+ createElementVNode("div", _hoisted_12, [
3000
+ (openBlock(true), createElementBlock(Fragment, null, renderList(moduleList.value, (mod) => {
3001
+ return openBlock(), createElementBlock("div", {
3002
+ key: mod.id,
3003
+ class: normalizeClass(["config-sidebar__item", { "is-active": currentModuleId.value === mod.id }]),
3004
+ onClick: ($event) => selectModule(mod)
3005
+ }, [
3006
+ createElementVNode("div", _hoisted_14, [
3007
+ createElementVNode("span", _hoisted_15, toDisplayString(mod.moduleName), 1),
3008
+ createElementVNode("span", _hoisted_16, toDisplayString(mod.moduleCode), 1)
2761
3009
  ]),
2762
- _: 1
2763
- }),
2764
- createVNode(_component_el_form_item, { class: "form-item--btn" }, {
2765
- default: withCtx(() => [
3010
+ createElementVNode("div", {
3011
+ class: "config-sidebar__item-actions",
3012
+ onClick: _cache[1] || (_cache[1] = withModifiers(() => {
3013
+ }, ["stop"]))
3014
+ }, [
2766
3015
  createVNode(_component_el_button, {
2767
3016
  type: "primary",
2768
- onClick: subSys
3017
+ link: "",
3018
+ size: "small",
3019
+ onClick: ($event) => handleEditModule(mod)
2769
3020
  }, {
2770
- default: withCtx(() => _cache[12] || (_cache[12] = [
2771
- createTextVNode("提交")
3021
+ default: withCtx(() => _cache[23] || (_cache[23] = [
3022
+ createTextVNode("编辑")
2772
3023
  ])),
2773
- _: 1,
2774
- __: [12]
2775
- })
2776
- ]),
2777
- _: 1
2778
- })
2779
- ])
2780
- ])
2781
- ]),
2782
- _: 1
2783
- }, 8, ["rules", "model"]),
2784
- createVNode(_component_el_form, {
2785
- rules: rules1,
2786
- model: form1,
2787
- ref_key: "form1Ref",
2788
- ref: form1Ref,
2789
- "label-suffix": ":",
2790
- "hide-required-asterisk": "",
2791
- "show-message": ""
2792
- }, {
2793
- default: withCtx(() => [
2794
- createElementVNode("div", _hoisted_4, [
2795
- _cache[15] || (_cache[15] = createElementVNode("div", { class: "section__title" }, "模块/页面配置", -1)),
2796
- createElementVNode("div", _hoisted_5, [
2797
- createVNode(_component_el_form_item, {
2798
- label: "模块/页面code",
2799
- prop: "moduleCode",
2800
- class: "form-item--auto"
2801
- }, {
2802
- default: withCtx(() => [
2803
- createVNode(_component_el_input, {
2804
- modelValue: form1.moduleCode,
2805
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => form1.moduleCode = $event),
2806
- placeholder: "请输入"
2807
- }, null, 8, ["modelValue"])
2808
- ]),
2809
- _: 1
2810
- }),
2811
- createVNode(_component_el_form_item, {
2812
- label: "模块/页面名称",
2813
- prop: "moduleName",
2814
- class: "form-item--auto"
2815
- }, {
2816
- default: withCtx(() => [
2817
- createVNode(_component_el_input, {
2818
- modelValue: form1.moduleName,
2819
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => form1.moduleName = $event),
2820
- placeholder: "请输入"
2821
- }, null, 8, ["modelValue"])
2822
- ]),
2823
- _: 1
2824
- }),
2825
- createVNode(_component_el_form_item, { class: "form-item--btn" }, {
2826
- default: withCtx(() => [
3024
+ _: 2,
3025
+ __: [23]
3026
+ }, 1032, ["onClick"]),
2827
3027
  createVNode(_component_el_button, {
2828
- type: "primary",
2829
- onClick: subSys1
3028
+ type: "danger",
3029
+ link: "",
3030
+ size: "small",
3031
+ onClick: ($event) => handleDeleteModule(mod)
2830
3032
  }, {
2831
- default: withCtx(() => _cache[14] || (_cache[14] = [
2832
- createTextVNode("提交")
3033
+ default: withCtx(() => _cache[24] || (_cache[24] = [
3034
+ createTextVNode("删除")
2833
3035
  ])),
2834
- _: 1,
2835
- __: [14]
2836
- })
2837
- ]),
2838
- _: 1
2839
- })
2840
- ])
3036
+ _: 2,
3037
+ __: [24]
3038
+ }, 1032, ["onClick"])
3039
+ ])
3040
+ ], 10, _hoisted_13);
3041
+ }), 128)),
3042
+ moduleList.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_17, "暂无模块")) : createCommentVNode("", true)
2841
3043
  ])
2842
- ]),
2843
- _: 1
2844
- }, 8, ["rules", "model"]),
2845
- createVNode(_component_el_form, {
2846
- rules: rules2,
2847
- model: form2,
2848
- ref_key: "form2Ref",
2849
- ref: form2Ref,
2850
- "label-suffix": ":",
2851
- "hide-required-asterisk": "",
2852
- "show-message": ""
2853
- }, {
2854
- default: withCtx(() => [
2855
- createElementVNode("div", _hoisted_6, [
2856
- _cache[18] || (_cache[18] = createElementVNode("div", { class: "section__title" }, "字段配置", -1)),
2857
- createElementVNode("div", _hoisted_7, [
2858
- createVNode(_component_el_form_item, {
2859
- label: "模块/页面",
2860
- prop: "moduleId"
2861
- }, {
2862
- default: withCtx(() => [
2863
- createVNode(_component_el_select, {
2864
- clearable: "",
2865
- filterable: "",
2866
- modelValue: form2.moduleId,
2867
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => form2.moduleId = $event),
2868
- placeholder: "请选择"
3044
+ ])) : createCommentVNode("", true)
3045
+ ]),
3046
+ createElementVNode("div", _hoisted_18, [
3047
+ currentSystemId.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
3048
+ createElementVNode("div", _hoisted_19, [
3049
+ createElementVNode("div", _hoisted_20, [
3050
+ createElementVNode("span", _hoisted_21, toDisplayString(editingField.value ? "编辑字段" : "新增字段"), 1),
3051
+ editingField.value ? (openBlock(), createElementBlock("div", _hoisted_22, [
3052
+ createVNode(_component_el_button, {
3053
+ size: "small",
3054
+ onClick: cancelEditField
3055
+ }, {
3056
+ default: withCtx(() => _cache[25] || (_cache[25] = [
3057
+ createTextVNode("取消编辑")
3058
+ ])),
3059
+ _: 1,
3060
+ __: [25]
3061
+ })
3062
+ ])) : createCommentVNode("", true)
3063
+ ]),
3064
+ createVNode(_component_el_form, {
3065
+ model: fieldForm,
3066
+ ref_key: "fieldFormRef",
3067
+ ref: fieldFormRef,
3068
+ "label-suffix": ":",
3069
+ "label-width": "110px",
3070
+ "hide-required-asterisk": "",
3071
+ "show-message": "",
3072
+ class: "config-form"
3073
+ }, {
3074
+ default: withCtx(() => [
3075
+ createElementVNode("div", _hoisted_23, [
3076
+ createVNode(_component_el_form_item, {
3077
+ label: "模块/页面",
3078
+ prop: "moduleId"
2869
3079
  }, {
2870
3080
  default: withCtx(() => [
2871
- (openBlock(true), createElementBlock(Fragment, null, renderList(moduleList.value, (item, index2) => {
2872
- return openBlock(), createBlock(_component_el_option, {
2873
- key: index2,
2874
- label: item.moduleName,
2875
- value: item.id
2876
- }, null, 8, ["label", "value"]);
2877
- }), 128))
3081
+ createVNode(_component_el_select, {
3082
+ clearable: "",
3083
+ filterable: "",
3084
+ modelValue: fieldForm.moduleId,
3085
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => fieldForm.moduleId = $event),
3086
+ placeholder: "请选择"
3087
+ }, {
3088
+ default: withCtx(() => [
3089
+ (openBlock(true), createElementBlock(Fragment, null, renderList(moduleList.value, (item) => {
3090
+ return openBlock(), createBlock(_component_el_option, {
3091
+ key: item.id,
3092
+ label: item.moduleName,
3093
+ value: item.id
3094
+ }, null, 8, ["label", "value"]);
3095
+ }), 128))
3096
+ ]),
3097
+ _: 1
3098
+ }, 8, ["modelValue"])
2878
3099
  ]),
2879
3100
  _: 1
2880
- }, 8, ["modelValue"])
2881
- ]),
2882
- _: 1
2883
- }),
2884
- createVNode(_component_el_form_item, {
2885
- label: "字段名称",
2886
- prop: "fieldName"
2887
- }, {
2888
- default: withCtx(() => [
2889
- createVNode(_component_el_input, {
2890
- modelValue: form2.fieldName,
2891
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => form2.fieldName = $event),
2892
- placeholder: "请输入"
2893
- }, null, 8, ["modelValue"])
2894
- ]),
2895
- _: 1
2896
- }),
2897
- createVNode(_component_el_form_item, {
2898
- label: "字段Java名称",
2899
- prop: "fieldJavaName"
2900
- }, {
2901
- default: withCtx(() => [
2902
- createVNode(_component_el_input, {
2903
- modelValue: form2.fieldJavaName,
2904
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => form2.fieldJavaName = $event),
2905
- placeholder: "请输入"
2906
- }, null, 8, ["modelValue"])
2907
- ]),
2908
- _: 1
2909
- }),
2910
- createVNode(_component_el_form_item, {
2911
- label: "字段类型",
2912
- prop: "fieldType"
2913
- }, {
2914
- default: withCtx(() => [
2915
- createVNode(_component_el_select, {
2916
- clearable: "",
2917
- filterable: "",
2918
- modelValue: form2.fieldType,
2919
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => form2.fieldType = $event),
2920
- placeholder: "请选择"
3101
+ }),
3102
+ createVNode(_component_el_form_item, {
3103
+ label: "字段名称",
3104
+ prop: "fieldName"
2921
3105
  }, {
2922
3106
  default: withCtx(() => [
2923
- (openBlock(), createElementBlock(Fragment, null, renderList(fieldTypeOptions, (item, index2) => {
2924
- return createVNode(_component_el_option, {
2925
- key: index2,
2926
- label: item.label,
2927
- value: item.value
2928
- }, null, 8, ["label", "value"]);
2929
- }), 64))
3107
+ createVNode(_component_el_input, {
3108
+ modelValue: fieldForm.fieldName,
3109
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => fieldForm.fieldName = $event),
3110
+ placeholder: "请输入"
3111
+ }, null, 8, ["modelValue"])
2930
3112
  ]),
2931
3113
  _: 1
2932
- }, 8, ["modelValue"])
2933
- ]),
2934
- _: 1
2935
- }),
2936
- ["el-cascader", "el-select"].includes(form2.fieldType) ? (openBlock(), createBlock(_component_el_form_item, {
2937
- key: 0,
2938
- label: "下拉框类别",
2939
- prop: "selType"
2940
- }, {
2941
- default: withCtx(() => [
2942
- createVNode(_component_el_select, {
2943
- clearable: "",
2944
- filterable: "",
2945
- modelValue: form2.selType,
2946
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => form2.selType = $event),
2947
- placeholder: "请选择"
3114
+ }),
3115
+ createVNode(_component_el_form_item, {
3116
+ label: "字段Java名称",
3117
+ prop: "fieldJavaName"
3118
+ }, {
3119
+ default: withCtx(() => [
3120
+ createVNode(_component_el_input, {
3121
+ modelValue: fieldForm.fieldJavaName,
3122
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => fieldForm.fieldJavaName = $event),
3123
+ placeholder: "请输入"
3124
+ }, null, 8, ["modelValue"])
3125
+ ]),
3126
+ _: 1
3127
+ }),
3128
+ createVNode(_component_el_form_item, {
3129
+ label: "字段类型",
3130
+ prop: "fieldType"
3131
+ }, {
3132
+ default: withCtx(() => [
3133
+ createVNode(_component_el_select, {
3134
+ clearable: "",
3135
+ filterable: "",
3136
+ modelValue: fieldForm.fieldType,
3137
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => fieldForm.fieldType = $event),
3138
+ placeholder: "请选择"
3139
+ }, {
3140
+ default: withCtx(() => [
3141
+ (openBlock(), createElementBlock(Fragment, null, renderList(fieldTypeOptions, (item) => {
3142
+ return createVNode(_component_el_option, {
3143
+ key: item.value,
3144
+ label: item.label,
3145
+ value: item.value
3146
+ }, null, 8, ["label", "value"]);
3147
+ }), 64))
3148
+ ]),
3149
+ _: 1
3150
+ }, 8, ["modelValue"])
3151
+ ]),
3152
+ _: 1
3153
+ }),
3154
+ ["el-cascader", "el-select"].includes(fieldForm.fieldType) ? (openBlock(), createBlock(_component_el_form_item, {
3155
+ key: 0,
3156
+ label: "下拉框类别",
3157
+ prop: "selType"
3158
+ }, {
3159
+ default: withCtx(() => [
3160
+ createVNode(_component_el_select, {
3161
+ clearable: "",
3162
+ filterable: "",
3163
+ modelValue: fieldForm.selType,
3164
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => fieldForm.selType = $event),
3165
+ placeholder: "请选择"
3166
+ }, {
3167
+ default: withCtx(() => [
3168
+ createVNode(_component_el_option, {
3169
+ label: "字典下拉框",
3170
+ value: "1"
3171
+ }),
3172
+ createVNode(_component_el_option, {
3173
+ label: "复合型下拉框",
3174
+ value: "2"
3175
+ }),
3176
+ createVNode(_component_el_option, {
3177
+ label: "普通下拉框",
3178
+ value: "3"
3179
+ })
3180
+ ]),
3181
+ _: 1
3182
+ }, 8, ["modelValue"])
3183
+ ]),
3184
+ _: 1
3185
+ })) : createCommentVNode("", true),
3186
+ createVNode(_component_el_form_item, {
3187
+ label: "是否必填",
3188
+ prop: "isRequire"
3189
+ }, {
3190
+ default: withCtx(() => [
3191
+ createVNode(_component_el_select, {
3192
+ clearable: "",
3193
+ modelValue: fieldForm.isRequire,
3194
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => fieldForm.isRequire = $event),
3195
+ placeholder: "请选择"
3196
+ }, {
3197
+ default: withCtx(() => [
3198
+ createVNode(_component_el_option, {
3199
+ label: "是",
3200
+ value: "1"
3201
+ }),
3202
+ createVNode(_component_el_option, {
3203
+ label: "否",
3204
+ value: "0"
3205
+ })
3206
+ ]),
3207
+ _: 1
3208
+ }, 8, ["modelValue"])
3209
+ ]),
3210
+ _: 1
3211
+ }),
3212
+ createVNode(_component_el_form_item, {
3213
+ label: "是否缓存",
3214
+ prop: "isCache"
2948
3215
  }, {
2949
3216
  default: withCtx(() => [
2950
- createVNode(_component_el_option, {
2951
- label: "字典下拉框",
2952
- value: "1"
2953
- }),
2954
- createVNode(_component_el_option, {
2955
- label: "复合型下拉框",
2956
- value: "2"
2957
- }),
2958
- createVNode(_component_el_option, {
2959
- label: "普通下拉框",
2960
- value: "3"
2961
- })
3217
+ createVNode(_component_el_checkbox, {
3218
+ modelValue: fieldForm.isCache,
3219
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => fieldForm.isCache = $event)
3220
+ }, {
3221
+ default: withCtx(() => _cache[26] || (_cache[26] = [
3222
+ createTextVNode("缓存")
3223
+ ])),
3224
+ _: 1,
3225
+ __: [26]
3226
+ }, 8, ["modelValue"])
2962
3227
  ]),
2963
3228
  _: 1
2964
- }, 8, ["modelValue"])
3229
+ })
2965
3230
  ]),
2966
- _: 1
2967
- })) : createCommentVNode("", true),
2968
- createVNode(_component_el_form_item, {
2969
- label: "是否必填",
2970
- prop: "isRequire"
2971
- }, {
2972
- default: withCtx(() => [
2973
- createVNode(_component_el_select, {
2974
- clearable: "",
2975
- filterable: "",
2976
- modelValue: form2.isRequire,
2977
- "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => form2.isRequire = $event),
2978
- placeholder: "请选择"
3231
+ createElementVNode("div", _hoisted_24, [
3232
+ createVNode(_component_el_form_item, {
3233
+ label: "字段属性",
3234
+ prop: "attribute"
2979
3235
  }, {
2980
3236
  default: withCtx(() => [
2981
- createVNode(_component_el_option, {
2982
- label: "是",
2983
- value: "1"
2984
- }),
2985
- createVNode(_component_el_option, {
2986
- label: "",
2987
- value: "0"
2988
- })
3237
+ createVNode(_component_el_input, {
3238
+ modelValue: fieldForm.attribute,
3239
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => fieldForm.attribute = $event),
3240
+ type: "textarea",
3241
+ rows: 8,
3242
+ placeholder: "JSON 格式"
3243
+ }, null, 8, ["modelValue"])
2989
3244
  ]),
2990
3245
  _: 1
2991
- }, 8, ["modelValue"])
3246
+ }),
3247
+ createVNode(_component_el_form_item, {
3248
+ label: "额外属性",
3249
+ prop: "dictKey"
3250
+ }, {
3251
+ default: withCtx(() => [
3252
+ createVNode(_component_el_input, {
3253
+ modelValue: fieldForm.dictKey,
3254
+ "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => fieldForm.dictKey = $event),
3255
+ type: "textarea",
3256
+ rows: 8,
3257
+ placeholder: "JSON 格式"
3258
+ }, null, 8, ["modelValue"])
3259
+ ]),
3260
+ _: 1
3261
+ })
2992
3262
  ]),
2993
- _: 1
2994
- }),
3263
+ createElementVNode("div", _hoisted_25, [
3264
+ createVNode(_component_el_button, { onClick: resetFieldForm }, {
3265
+ default: withCtx(() => _cache[27] || (_cache[27] = [
3266
+ createTextVNode("重置")
3267
+ ])),
3268
+ _: 1,
3269
+ __: [27]
3270
+ }),
3271
+ createVNode(_component_el_button, {
3272
+ type: "primary",
3273
+ onClick: submitField
3274
+ }, {
3275
+ default: withCtx(() => [
3276
+ createTextVNode(toDisplayString(editingField.value ? "更新" : "提交"), 1)
3277
+ ]),
3278
+ _: 1
3279
+ })
3280
+ ])
3281
+ ]),
3282
+ _: 1
3283
+ }, 8, ["model"])
3284
+ ]),
3285
+ createElementVNode("div", _hoisted_26, [
3286
+ _cache[29] || (_cache[29] = createElementVNode("div", { class: "config-section__header" }, [
3287
+ createElementVNode("span", { class: "config-section__title" }, "字段列表")
3288
+ ], -1)),
3289
+ createVNode(XVxeTable, {
3290
+ "table-data": fieldTableData.value,
3291
+ "sub-height": "280px",
3292
+ "show-pagination": true,
3293
+ "page-size": fieldPage.pageSize,
3294
+ "current-page": fieldPage.currentPage,
3295
+ total: fieldPage.total,
3296
+ "show-toolbar": false,
3297
+ onChangePage: handleFieldPageChange
3298
+ }, {
3299
+ default: withCtx(() => [
3300
+ createVNode(XVxeColumn, {
3301
+ title: "字段名称",
3302
+ field: "fieldName",
3303
+ "min-width": "120"
3304
+ }),
3305
+ createVNode(XVxeColumn, {
3306
+ title: "Java名称",
3307
+ field: "fieldJavaName",
3308
+ "min-width": "120"
3309
+ }),
3310
+ createVNode(XVxeColumn, {
3311
+ title: "字段类型",
3312
+ field: "fieldType",
3313
+ "min-width": "120"
3314
+ }),
3315
+ createVNode(XVxeColumn, {
3316
+ title: "是否必填",
3317
+ field: "isRequire",
3318
+ width: "90"
3319
+ }, {
3320
+ default: withCtx(({ row }) => [
3321
+ createVNode(_component_el_tag, {
3322
+ type: row.isRequire === "1" ? "danger" : "info",
3323
+ size: "small"
3324
+ }, {
3325
+ default: withCtx(() => [
3326
+ createTextVNode(toDisplayString(row.isRequire === "1" ? "必填" : "非必填"), 1)
3327
+ ]),
3328
+ _: 2
3329
+ }, 1032, ["type"])
3330
+ ]),
3331
+ _: 1
3332
+ }),
3333
+ createVNode(XVxeColumn, {
3334
+ title: "操作",
3335
+ width: "100",
3336
+ fixed: "right"
3337
+ }, {
3338
+ default: withCtx(({ row }) => [
3339
+ createVNode(_component_el_button, {
3340
+ type: "primary",
3341
+ link: "",
3342
+ size: "small",
3343
+ onClick: ($event) => handleEditField(row)
3344
+ }, {
3345
+ default: withCtx(() => _cache[28] || (_cache[28] = [
3346
+ createTextVNode("编辑")
3347
+ ])),
3348
+ _: 2,
3349
+ __: [28]
3350
+ }, 1032, ["onClick"])
3351
+ ]),
3352
+ _: 1
3353
+ })
3354
+ ]),
3355
+ _: 1
3356
+ }, 8, ["table-data", "page-size", "current-page", "total"])
3357
+ ])
3358
+ ], 64)) : (openBlock(), createElementBlock("div", _hoisted_27, [
3359
+ createVNode(_component_el_empty, { description: "请先在左侧选择一个系统" })
3360
+ ]))
3361
+ ]),
3362
+ createVNode(_component_el_dialog, {
3363
+ modelValue: systemDialogVisible.value,
3364
+ "onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => systemDialogVisible.value = $event),
3365
+ title: editingSystem.value ? "编辑系统" : "新增系统",
3366
+ width: "460px",
3367
+ "destroy-on-close": ""
3368
+ }, {
3369
+ footer: withCtx(() => [
3370
+ createVNode(_component_el_button, {
3371
+ onClick: _cache[12] || (_cache[12] = ($event) => systemDialogVisible.value = false)
3372
+ }, {
3373
+ default: withCtx(() => _cache[30] || (_cache[30] = [
3374
+ createTextVNode("取消")
3375
+ ])),
3376
+ _: 1,
3377
+ __: [30]
3378
+ }),
3379
+ createVNode(_component_el_button, {
3380
+ type: "primary",
3381
+ onClick: submitSystem
3382
+ }, {
3383
+ default: withCtx(() => _cache[31] || (_cache[31] = [
3384
+ createTextVNode("确定")
3385
+ ])),
3386
+ _: 1,
3387
+ __: [31]
3388
+ })
3389
+ ]),
3390
+ default: withCtx(() => [
3391
+ createVNode(_component_el_form, {
3392
+ model: systemForm,
3393
+ ref_key: "systemFormRef",
3394
+ ref: systemFormRef,
3395
+ "label-suffix": ":",
3396
+ "label-width": "100px"
3397
+ }, {
3398
+ default: withCtx(() => [
2995
3399
  createVNode(_component_el_form_item, {
2996
- label: "是否缓存",
2997
- prop: "isCache"
3400
+ label: "系统名称",
3401
+ prop: "systemName",
3402
+ rules: [{ required: true, message: "请输入系统名称" }]
2998
3403
  }, {
2999
3404
  default: withCtx(() => [
3000
- createVNode(_component_el_checkbox, {
3001
- modelValue: form2.isCache,
3002
- "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => form2.isCache = $event)
3003
- }, {
3004
- default: withCtx(() => _cache[16] || (_cache[16] = [
3005
- createTextVNode("缓存")
3006
- ])),
3007
- _: 1,
3008
- __: [16]
3009
- }, 8, ["modelValue"])
3405
+ createVNode(_component_el_input, {
3406
+ modelValue: systemForm.systemName,
3407
+ "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => systemForm.systemName = $event),
3408
+ placeholder: "请输入系统名称"
3409
+ }, null, 8, ["modelValue"])
3010
3410
  ]),
3011
3411
  _: 1
3012
3412
  })
3013
3413
  ]),
3014
- createElementVNode("div", _hoisted_8, [
3414
+ _: 1
3415
+ }, 8, ["model"])
3416
+ ]),
3417
+ _: 1
3418
+ }, 8, ["modelValue", "title"]),
3419
+ createVNode(_component_el_dialog, {
3420
+ modelValue: moduleDialogVisible.value,
3421
+ "onUpdate:modelValue": _cache[17] || (_cache[17] = ($event) => moduleDialogVisible.value = $event),
3422
+ title: editingModule.value ? "编辑模块" : "新增模块",
3423
+ width: "460px",
3424
+ "destroy-on-close": ""
3425
+ }, {
3426
+ footer: withCtx(() => [
3427
+ createVNode(_component_el_button, {
3428
+ onClick: _cache[16] || (_cache[16] = ($event) => moduleDialogVisible.value = false)
3429
+ }, {
3430
+ default: withCtx(() => _cache[32] || (_cache[32] = [
3431
+ createTextVNode("取消")
3432
+ ])),
3433
+ _: 1,
3434
+ __: [32]
3435
+ }),
3436
+ createVNode(_component_el_button, {
3437
+ type: "primary",
3438
+ onClick: submitModule
3439
+ }, {
3440
+ default: withCtx(() => _cache[33] || (_cache[33] = [
3441
+ createTextVNode("确定")
3442
+ ])),
3443
+ _: 1,
3444
+ __: [33]
3445
+ })
3446
+ ]),
3447
+ default: withCtx(() => [
3448
+ createVNode(_component_el_form, {
3449
+ model: moduleForm,
3450
+ ref_key: "moduleFormRef",
3451
+ ref: moduleFormRef,
3452
+ "label-suffix": ":",
3453
+ "label-width": "110px"
3454
+ }, {
3455
+ default: withCtx(() => [
3015
3456
  createVNode(_component_el_form_item, {
3016
- label: "字段属性",
3017
- prop: "attribute",
3018
- class: "form-item--span2"
3457
+ label: "模块/页面code",
3458
+ prop: "moduleCode",
3459
+ rules: [{ required: true, message: "请输入" }]
3019
3460
  }, {
3020
3461
  default: withCtx(() => [
3021
3462
  createVNode(_component_el_input, {
3022
- modelValue: form2.attribute,
3023
- "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => form2.attribute = $event),
3024
- placeholder: "请输入",
3025
- type: "textarea",
3026
- rows: 3
3463
+ modelValue: moduleForm.moduleCode,
3464
+ "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => moduleForm.moduleCode = $event),
3465
+ placeholder: "请输入"
3027
3466
  }, null, 8, ["modelValue"])
3028
3467
  ]),
3029
3468
  _: 1
3030
3469
  }),
3031
3470
  createVNode(_component_el_form_item, {
3032
- label: "额外属性",
3033
- prop: "dictKey",
3034
- class: "form-item--span2"
3471
+ label: "模块/页面名称",
3472
+ prop: "moduleName",
3473
+ rules: [{ required: true, message: "请输入" }]
3035
3474
  }, {
3036
3475
  default: withCtx(() => [
3037
3476
  createVNode(_component_el_input, {
3038
- modelValue: form2.dictKey,
3039
- "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => form2.dictKey = $event),
3040
- placeholder: "请输入",
3041
- type: "textarea",
3042
- rows: 3
3477
+ modelValue: moduleForm.moduleName,
3478
+ "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => moduleForm.moduleName = $event),
3479
+ placeholder: "请输入"
3043
3480
  }, null, 8, ["modelValue"])
3044
3481
  ]),
3045
3482
  _: 1
3046
- }),
3047
- createVNode(_component_el_form_item, { class: "form-item--btn" }, {
3048
- default: withCtx(() => [
3049
- createVNode(_component_el_button, {
3050
- type: "primary",
3051
- onClick: subSys2
3052
- }, {
3053
- default: withCtx(() => _cache[17] || (_cache[17] = [
3054
- createTextVNode("提交")
3055
- ])),
3056
- _: 1,
3057
- __: [17]
3058
- })
3059
- ]),
3060
- _: 1
3061
3483
  })
3062
- ])
3063
- ])
3484
+ ]),
3485
+ _: 1
3486
+ }, 8, ["model"])
3064
3487
  ]),
3065
3488
  _: 1
3066
- }, 8, ["rules", "model"])
3489
+ }, 8, ["modelValue", "title"])
3067
3490
  ]);
3068
3491
  };
3069
3492
  }
3070
3493
  });
3071
- const XSearchBarConfig = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e465bd38"]]);
3494
+ const XSearchBarConfig = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-99c88c60"]]);
3072
3495
  const components = {
3073
3496
  XDatePicker,
3074
3497
  XElForm,