bm-admin-ui 1.0.92-alpha → 1.0.93-alpha

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.
Files changed (37) hide show
  1. package/es/components/cascader/index.js +2 -2
  2. package/es/components/form-create/index.js +389 -98
  3. package/es/components/form-designer/index.js +180 -122
  4. package/es/components/search-filter/index.d.ts +28 -0
  5. package/es/components/search-filter/index.js +70 -17
  6. package/es/components/search-filter/src/form-select-all.vue.d.ts +15 -0
  7. package/es/components/search-filter/src/search-filter.d.ts +16 -0
  8. package/es/components/search-filter/src/search-filter.vue.d.ts +28 -0
  9. package/es/components/search-filter/src/search-reset-btn.vue.d.ts +26 -0
  10. package/es/components/select-all/index.d.ts +2 -0
  11. package/es/components/select-all/index.js +33 -15
  12. package/es/components/select-all/src/selectAll.vue.d.ts +2 -0
  13. package/es/utils/uniqueId.js +2 -2
  14. package/lib/components/cascader/index.js +2 -2
  15. package/lib/components/form-create/index.js +389 -98
  16. package/lib/components/form-designer/index.js +174 -116
  17. package/lib/components/search-filter/index.d.ts +28 -0
  18. package/lib/components/search-filter/index.js +71 -17
  19. package/lib/components/search-filter/src/form-select-all.vue.d.ts +15 -0
  20. package/lib/components/search-filter/src/search-filter.d.ts +16 -0
  21. package/lib/components/search-filter/src/search-filter.vue.d.ts +28 -0
  22. package/lib/components/search-filter/src/search-reset-btn.vue.d.ts +26 -0
  23. package/lib/components/select-all/index.d.ts +2 -0
  24. package/lib/components/select-all/index.js +32 -14
  25. package/lib/components/select-all/src/selectAll.vue.d.ts +2 -0
  26. package/lib/utils/uniqueId.js +2 -2
  27. package/package.json +1 -1
  28. package/theme-chalk/form-designer.css +1 -1
  29. package/theme-chalk/index.css +1 -1
  30. package/theme-chalk/select-all.css +1 -1
  31. package/types/components/search-filter/index.d.ts +28 -0
  32. package/types/components/search-filter/src/form-select-all.vue.d.ts +15 -0
  33. package/types/components/search-filter/src/search-filter.d.ts +16 -0
  34. package/types/components/search-filter/src/search-filter.vue.d.ts +28 -0
  35. package/types/components/search-filter/src/search-reset-btn.vue.d.ts +26 -0
  36. package/types/components/select-all/index.d.ts +2 -0
  37. package/types/components/select-all/src/selectAll.vue.d.ts +2 -0
@@ -78,7 +78,7 @@ var _export_sfc = (sfc, props) => {
78
78
  return target;
79
79
  };
80
80
 
81
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
81
+ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
82
82
  __name: "widget-instruction",
83
83
  props: ["rule"],
84
84
  setup(__props) {
@@ -89,13 +89,13 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
89
89
  };
90
90
  }
91
91
  });
92
- var WidgetInstruction = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__file", "widget-instruction.vue"]]);
92
+ var WidgetInstruction = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__file", "widget-instruction.vue"]]);
93
93
 
94
94
  const _hoisted_1$f = {
95
95
  key: 2,
96
96
  class: "bm-drag-tool-mask"
97
97
  };
98
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
98
+ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
99
99
  __name: "drag-tool",
100
100
  props: ["rule", "activeRuleField", "parentRule"],
101
101
  emits: [
@@ -236,16 +236,16 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
236
236
  ]),
237
237
  _: 1
238
238
  }, 512), [
239
- [vue.vShow, __props.rule.config.isHover || vue.unref(isActive)]
239
+ [vue.vShow, !__props.rule.config?.immutable && (__props.rule.config.isHover || vue.unref(isActive))]
240
240
  ])
241
241
  ], 34);
242
242
  };
243
243
  }
244
244
  });
245
- var DragTool = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__file", "drag-tool.vue"]]);
245
+ var DragTool = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__file", "drag-tool.vue"]]);
246
246
 
247
247
  const _hoisted_1$e = { class: "bm-drag-placeholder" };
248
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
248
+ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
249
249
  __name: "drag-placeholder",
250
250
  props: {},
251
251
  setup(__props) {
@@ -254,14 +254,14 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
254
254
  };
255
255
  }
256
256
  });
257
- var DragPlaceholder = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__file", "drag-placeholder.vue"]]);
257
+ var DragPlaceholder = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__file", "drag-placeholder.vue"]]);
258
258
 
259
259
  const _hoisted_1$d = { class: "bm-widget-row-wrap" };
260
260
  const _hoisted_2$a = {
261
261
  key: 0,
262
262
  class: "bm-widget-row-tip"
263
263
  };
264
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
264
+ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
265
265
  __name: "widget-row",
266
266
  props: ["activeRuleField", "formCreateInject"],
267
267
  emits: [
@@ -366,7 +366,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
366
366
  };
367
367
  }
368
368
  });
369
- var WidgetRow = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__file", "widget-row.vue"]]);
369
+ var WidgetRow = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__file", "widget-row.vue"]]);
370
370
 
371
371
  const label$h = '分栏';
372
372
  const fieldsMap$h = {
@@ -712,10 +712,14 @@ var numInput = {
712
712
  placeholder: '请输入',
713
713
  },
714
714
  config: {
715
+ format: '',
715
716
  propsFields: Object.values(fieldsMap$e),
716
717
  },
717
718
  style: {
718
719
  width: '100%',
720
+ overflow: 'hidden',
721
+ textOverflow: 'ellipsis',
722
+ marginBottom: '0',
719
723
  },
720
724
  };
721
725
  },
@@ -804,7 +808,7 @@ const _hoisted_2$9 = {
804
808
  key: 0,
805
809
  class: "bm-handle-options__error-tip"
806
810
  };
807
- const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
811
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
808
812
  __name: "handle-options",
809
813
  props: ["options", "disabled"],
810
814
  emits: ["setValue"],
@@ -975,7 +979,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
975
979
  };
976
980
  }
977
981
  });
978
- var HandleOptionsCom = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__file", "handle-options.vue"]]);
982
+ var HandleOptionsCom = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__file", "handle-options.vue"]]);
979
983
 
980
984
  const label$d = '单选框';
981
985
  const ruleType$1 = {
@@ -1256,7 +1260,7 @@ var checkbox = {
1256
1260
  };
1257
1261
 
1258
1262
  const _hoisted_1$b = { class: "bm-default-date" };
1259
- const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
1263
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
1260
1264
  __name: "default-date",
1261
1265
  props: [
1262
1266
  "defaultRadioValue",
@@ -1345,7 +1349,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
1345
1349
  };
1346
1350
  }
1347
1351
  });
1348
- var DefaultDate = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__file", "default-date.vue"]]);
1352
+ var DefaultDate = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__file", "default-date.vue"]]);
1349
1353
 
1350
1354
  const label$b = '日期';
1351
1355
  const fieldsMap$b = {
@@ -1853,7 +1857,7 @@ const _hoisted_15 = { class: "bm-widget-table__operateColumn__content" };
1853
1857
  const _hoisted_16 = /* @__PURE__ */ vue.createElementVNode("a", null, "\u590D\u5236", -1);
1854
1858
  const _hoisted_17 = /* @__PURE__ */ vue.createElementVNode("span", null, null, -1);
1855
1859
  const _hoisted_18 = /* @__PURE__ */ vue.createElementVNode("a", null, "\u5220\u9664", -1);
1856
- const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
1860
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
1857
1861
  __name: "widget-table",
1858
1862
  props: ["formCreateInject", "activeRuleField"],
1859
1863
  emits: [
@@ -1870,6 +1874,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
1870
1874
  const childRules = vue.computed(() => tableRule.value.config.childRules);
1871
1875
  const showDelete = vue.computed(() => showFeature("delete"));
1872
1876
  const showImport = vue.computed(() => showFeature("import"));
1877
+ const showExport = vue.computed(() => showFeature("export"));
1873
1878
  const showCopy = vue.computed(() => showFeature("copy"));
1874
1879
  function showFeature(featureId) {
1875
1880
  return tableRule.value.config.tableAdvancedFeatures.includes(featureId);
@@ -1887,6 +1892,8 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
1887
1892
  emits("set-active-rule", rule, tableRule.value);
1888
1893
  }
1889
1894
  function handleClick(element) {
1895
+ if (element?.config.immutable)
1896
+ return;
1890
1897
  emitSetActiveRuleEvt(element);
1891
1898
  }
1892
1899
  function handleUpdate({ newIndex }) {
@@ -1927,6 +1934,12 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
1927
1934
  vue.createTextVNode(" \u4E0B\u8F7D\u5BFC\u5165\u6A21\u677F ")
1928
1935
  ]),
1929
1936
  _: 1
1937
+ })) : vue.createCommentVNode("v-if", true),
1938
+ vue.unref(showExport) ? (vue.openBlock(), vue.createBlock(vue.unref(antDesignVue.Button), { key: 3 }, {
1939
+ default: vue.withCtx(() => [
1940
+ vue.createTextVNode(" \u5BFC\u51FA ")
1941
+ ]),
1942
+ _: 1
1930
1943
  })) : vue.createCommentVNode("v-if", true)
1931
1944
  ]),
1932
1945
  vue.createElementVNode("div", _hoisted_3$5, [
@@ -2015,7 +2028,7 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
2015
2028
  };
2016
2029
  }
2017
2030
  });
2018
- var WidgetTable = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__file", "widget-table.vue"]]);
2031
+ var WidgetTable = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "widget-table.vue"]]);
2019
2032
 
2020
2033
  const label$7 = '表格';
2021
2034
  const fieldsMap$7 = {
@@ -2456,7 +2469,7 @@ const _hoisted_1$9 = { style: { "margin-top": "16px", "line-height": "32px" } };
2456
2469
  const _hoisted_2$7 = { style: { "float": "right" } };
2457
2470
  const _hoisted_3$4 = /* @__PURE__ */ vue.createElementVNode("div", { class: "bm-material-temp__table-tip" }, "\u7CFB\u7EDF\u81EA\u52A8\u83B7\u53D6\u8868\u683C\u5B57\u6BB5", -1);
2458
2471
  const _hoisted_4$3 = { class: "bm-material-temp__add" };
2459
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
2472
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
2460
2473
  __name: "widget-material-temp",
2461
2474
  props: ["formCreateInject"],
2462
2475
  setup(__props) {
@@ -2639,11 +2652,11 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
2639
2652
  };
2640
2653
  }
2641
2654
  });
2642
- var WidgetMaterialTemp = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__file", "widget-material-temp.vue"]]);
2655
+ var WidgetMaterialTemp = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__file", "widget-material-temp.vue"]]);
2643
2656
 
2644
2657
  const _hoisted_1$8 = { class: "bm-use-instruction" };
2645
2658
  const _hoisted_2$6 = { class: "bm-use-instruction__title" };
2646
- const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
2659
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
2647
2660
  __name: "use-instruction",
2648
2661
  setup(__props) {
2649
2662
  return (_ctx, _cache) => {
@@ -2657,7 +2670,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
2657
2670
  };
2658
2671
  }
2659
2672
  });
2660
- var UseInstruction = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__file", "use-instruction.vue"]]);
2673
+ var UseInstruction = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__file", "use-instruction.vue"]]);
2661
2674
 
2662
2675
  const label$3 = '素材模板';
2663
2676
  const fieldsMap$3 = {
@@ -2779,7 +2792,7 @@ const _hoisted_1$7 = /* @__PURE__ */ vue.createElementVNode("div", { class: "bm-
2779
2792
  const _hoisted_2$5 = { class: "bm-product-info-item__content" };
2780
2793
  const _hoisted_3$3 = { class: "bm-product-info-item__title" };
2781
2794
  const _hoisted_4$2 = /* @__PURE__ */ vue.createElementVNode("div", { class: "bm-product-info-item__content" }, "\u7CFB\u7EDF\u81EA\u52A8\u5E26\u51FA", -1);
2782
- const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
2795
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
2783
2796
  __name: "product-info",
2784
2797
  props: ["formCreateInject"],
2785
2798
  setup(__props) {
@@ -2824,90 +2837,70 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
2824
2837
  };
2825
2838
  }
2826
2839
  });
2827
- var ProductInfo = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__file", "product-info.vue"]]);
2840
+ var ProductInfo = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__file", "product-info.vue"]]);
2828
2841
 
2829
- const _hoisted_1$6 = /* @__PURE__ */ vue.createElementVNode("div", { class: "bm-associated-fields-item" }, [
2830
- /* @__PURE__ */ vue.createElementVNode("span", { class: "bm-associated-fields-item__content" }, "\u5546\u54C1\u7F16\u53F7")
2831
- ], -1);
2842
+ const _hoisted_1$6 = { class: "bm-associated-fields-item__content" };
2832
2843
  const _hoisted_2$4 = { class: "bm-associated-fields-item__content" };
2833
2844
  const _hoisted_3$2 = { style: { "text-align": "right", "margin": "6px 0 4px", "padding-right": "8px" } };
2834
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
2835
- __name: "associated-fields",
2836
- props: ["associatedFields"],
2845
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
2846
+ __name: "pure-associated-fields",
2847
+ props: ["associatedFields", "options", "defaultOptions"],
2837
2848
  emits: ["change"],
2838
2849
  setup(__props, { emit: emits }) {
2839
2850
  const props = __props;
2840
2851
  const visible = vue.ref(false);
2841
2852
  const checkList = vue.ref([]);
2842
- const options = [
2843
- {
2844
- value: "\u5546\u54C1\u540D\u79F0",
2845
- label: "\u5546\u54C1\u540D\u79F0"
2846
- },
2847
- {
2848
- value: "\u5546\u54C1\u7B80\u79F0",
2849
- label: "\u5546\u54C1\u7B80\u79F0"
2850
- },
2851
- {
2852
- value: "\u5546\u54C1\u56FE\u7247",
2853
- label: "\u5546\u54C1\u56FE\u7247"
2854
- },
2855
- {
2856
- value: "\u5EFA\u8BAE\u96F6\u552E\u4EF7",
2857
- label: "\u5EFA\u8BAE\u96F6\u552E\u4EF7"
2858
- },
2859
- {
2860
- value: "\u5546\u54C1\u7BB1\u89C4",
2861
- label: "\u5546\u54C1\u7BB1\u89C4"
2862
- },
2863
- {
2864
- value: "\u5546\u54C1\u5355\u4F4D",
2865
- label: "\u5546\u54C1\u5355\u4F4D"
2866
- }
2867
- ];
2868
- function emitChangeEvt() {
2869
- emits(
2870
- "change",
2871
- options.filter((op) => checkList.value.includes(op.value))
2872
- );
2873
- }
2874
2853
  function handOk() {
2875
2854
  visible.value = false;
2876
2855
  emitChangeEvt();
2877
2856
  }
2878
2857
  function init() {
2879
- checkList.value = props.associatedFields.map((item) => item.value);
2858
+ checkList.value = props.associatedFields?.map((item) => item.value);
2880
2859
  }
2881
- function visibleChange(visible2) {
2882
- if (visible2) {
2883
- init();
2884
- }
2860
+ function emitChangeEvt() {
2861
+ emits(
2862
+ "change",
2863
+ props.options.filter((op) => checkList.value.includes(op.value))
2864
+ );
2885
2865
  }
2886
2866
  function handleDel(value) {
2887
2867
  checkList.value = checkList.value.filter((cl) => cl !== value);
2888
2868
  emitChangeEvt();
2889
2869
  }
2890
2870
  init();
2871
+ function visibleChange(visible2) {
2872
+ if (visible2) {
2873
+ init();
2874
+ }
2875
+ }
2891
2876
  vue.watch(visible, (val) => {
2892
2877
  visibleChange(val);
2893
2878
  });
2894
2879
  return (_ctx, _cache) => {
2895
2880
  const _component_Delete = vue.resolveComponent("Delete");
2896
2881
  return vue.openBlock(), vue.createElementBlock("div", null, [
2897
- _hoisted_1$6,
2882
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.defaultOptions, (option) => {
2883
+ return vue.openBlock(), vue.createElementBlock("div", {
2884
+ key: `defaultOption${option?.value}`,
2885
+ class: "bm-associated-fields-item"
2886
+ }, [
2887
+ vue.createElementVNode("span", _hoisted_1$6, vue.toDisplayString(option?.label), 1)
2888
+ ]);
2889
+ }), 128)),
2898
2890
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.associatedFields, (item) => {
2899
2891
  return vue.openBlock(), vue.createElementBlock("div", {
2900
2892
  key: item.value,
2901
2893
  class: "bm-associated-fields-item"
2902
2894
  }, [
2903
- vue.createElementVNode("span", _hoisted_2$4, vue.toDisplayString(item.label), 1),
2895
+ vue.createElementVNode("span", _hoisted_2$4, vue.toDisplayString(item?.label), 1),
2904
2896
  vue.createVNode(_component_Delete, {
2905
2897
  class: "bm-associated-fields-item__icon",
2906
2898
  onClick: ($event) => handleDel(item.value)
2907
2899
  }, null, 8, ["onClick"])
2908
2900
  ]);
2909
2901
  }), 128)),
2910
- vue.createVNode(vue.unref(antDesignVue.Dropdown), {
2902
+ __props.associatedFields?.length ? (vue.openBlock(), vue.createBlock(vue.unref(antDesignVue.Dropdown), {
2903
+ key: 0,
2911
2904
  visible: visible.value,
2912
2905
  "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => visible.value = $event),
2913
2906
  trigger: ["click"]
@@ -2923,8 +2916,8 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
2923
2916
  style: { "width": "100%" }
2924
2917
  }, {
2925
2918
  default: vue.withCtx(() => [
2926
- (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(options, (item) => {
2927
- return vue.createVNode(vue.unref(antDesignVue.MenuItem), {
2919
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.options, (item) => {
2920
+ return vue.openBlock(), vue.createBlock(vue.unref(antDesignVue.MenuItem), {
2928
2921
  key: item.value
2929
2922
  }, {
2930
2923
  default: vue.withCtx(() => [
@@ -2940,7 +2933,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
2940
2933
  ]),
2941
2934
  _: 2
2942
2935
  }, 1024);
2943
- }), 64))
2936
+ }), 128))
2944
2937
  ]),
2945
2938
  _: 1
2946
2939
  }, 8, ["value"])
@@ -2973,28 +2966,25 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
2973
2966
  })
2974
2967
  ]),
2975
2968
  default: vue.withCtx(() => [
2976
- vue.createVNode(vue.unref(antDesignVue.Button), {
2977
- style: { "margin-top": "8px" },
2978
- block: ""
2979
- }, {
2969
+ vue.createVNode(vue.unref(antDesignVue.Button), { style: { "margin-top": "8px" } }, {
2980
2970
  default: vue.withCtx(() => [
2981
2971
  vue.createVNode(vue.unref(iconsVue.PlusOutlined)),
2982
- vue.createTextVNode(" \u6DFB\u52A0\u5B50\u5B57\u6BB5 ")
2972
+ vue.createTextVNode("\u6DFB\u52A0\u5B50\u5B57\u6BB5")
2983
2973
  ]),
2984
2974
  _: 1
2985
2975
  })
2986
2976
  ]),
2987
2977
  _: 1
2988
- }, 8, ["visible"])
2978
+ }, 8, ["visible"])) : vue.createCommentVNode("v-if", true)
2989
2979
  ]);
2990
2980
  };
2991
2981
  }
2992
2982
  });
2993
- var AssociatedFields = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__file", "associated-fields.vue"]]);
2983
+ var pureAssociatedFields = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__file", "pure-associated-fields.vue"]]);
2994
2984
 
2995
2985
  const _hoisted_1$5 = /* @__PURE__ */ vue.createElementVNode("div", { style: { "margin": "18px 0 6px" } }, "\u4EC5\u83B7\u53D6", -1);
2996
2986
  const _hoisted_2$3 = /* @__PURE__ */ vue.createElementVNode("div", { style: { "margin-top": "7px" } }, "\u4E2D\u53EF\u5206\u9500\u7684\u5546\u54C1\u6570\u636E", -1);
2997
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
2987
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
2998
2988
  __name: "shop-data-filter",
2999
2989
  props: ["widgetFormRules", "defaultSelectValue"],
3000
2990
  emits: ["change"],
@@ -3088,7 +3078,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
3088
3078
  };
3089
3079
  }
3090
3080
  });
3091
- var ShopDataFilter = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__file", "shop-data-filter.vue"]]);
3081
+ var ShopDataFilter = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "shop-data-filter.vue"]]);
3092
3082
 
3093
3083
  const label$2 = '商品';
3094
3084
  const fieldsMap$2 = {
@@ -3127,12 +3117,64 @@ var product = {
3127
3117
  props(rule, parentRule, widgetFormRules) {
3128
3118
  return [
3129
3119
  {
3130
- type: 'AssociatedFields',
3131
- component: AssociatedFields,
3120
+ type: 'pureAssociatedFields',
3121
+ component: pureAssociatedFields,
3132
3122
  title: '关联字段',
3133
3123
  field: fieldsMap$2['config.associatedFields'],
3134
3124
  props: {
3135
3125
  associatedFields: rule.config.associatedFields,
3126
+ defaultOptions: [
3127
+ {
3128
+ value: '商品编号',
3129
+ label: '商品编号',
3130
+ },
3131
+ ],
3132
+ options: [
3133
+ {
3134
+ value: '商品名称',
3135
+ label: '商品名称',
3136
+ },
3137
+ {
3138
+ value: '商品简称',
3139
+ label: '商品简称',
3140
+ },
3141
+ {
3142
+ value: '商品图片',
3143
+ label: '商品图片',
3144
+ },
3145
+ {
3146
+ value: '建议零售价',
3147
+ label: '建议零售价',
3148
+ },
3149
+ {
3150
+ value: '商品箱规',
3151
+ label: '商品箱规',
3152
+ },
3153
+ {
3154
+ value: '商品单位',
3155
+ label: '商品单位',
3156
+ },
3157
+ {
3158
+ value: '一级分类',
3159
+ label: '一级分类',
3160
+ },
3161
+ {
3162
+ value: '二级分类',
3163
+ label: '二级分类',
3164
+ },
3165
+ {
3166
+ value: '三级分类',
3167
+ label: '三级分类',
3168
+ },
3169
+ {
3170
+ value: '商品类型',
3171
+ label: '商品类型',
3172
+ },
3173
+ {
3174
+ value: '商品标签',
3175
+ label: '商品标签',
3176
+ },
3177
+ ],
3136
3178
  },
3137
3179
  effect: {
3138
3180
  required: true,
@@ -3194,33 +3236,6 @@ var product = {
3194
3236
  },
3195
3237
  };
3196
3238
 
3197
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
3198
- __name: "shop-associated-fields",
3199
- setup(__props) {
3200
- const associatedFields = [
3201
- {
3202
- value: "\u5E97\u94FA\u7F16\u53F7",
3203
- label: "\u5E97\u94FA\u7F16\u53F7"
3204
- },
3205
- {
3206
- value: "\u5E97\u94FA\u540D\u79F0",
3207
- label: "\u5E97\u94FA\u540D\u79F0"
3208
- }
3209
- ];
3210
- return (_ctx, _cache) => {
3211
- return vue.openBlock(), vue.createElementBlock("div", null, [
3212
- (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(associatedFields, (item) => {
3213
- return vue.createElementVNode("span", {
3214
- key: item.value,
3215
- class: "bm-shop-associated-fields-item"
3216
- }, vue.toDisplayString(item.label), 1);
3217
- }), 64))
3218
- ]);
3219
- };
3220
- }
3221
- });
3222
- var ShopAssociatedFields = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "shop-associated-fields.vue"]]);
3223
-
3224
3239
  let i = 0;
3225
3240
  const label$1 = '店铺';
3226
3241
  const fieldsMap$1 = {
@@ -3260,13 +3275,37 @@ var shop = {
3260
3275
  props(rule, parentRule) {
3261
3276
  return [
3262
3277
  {
3263
- type: 'ShopAssociatedFields',
3264
- component: ShopAssociatedFields,
3278
+ type: 'pureAssociatedFields',
3279
+ component: pureAssociatedFields,
3265
3280
  title: '关联字段',
3266
3281
  field: 'config.associatedFields',
3282
+ props: {
3283
+ associatedFields: rule.config.associatedFields,
3284
+ defaultOptions: [
3285
+ {
3286
+ value: '店铺编号',
3287
+ label: '店铺编号',
3288
+ },
3289
+ {
3290
+ value: '店铺名称',
3291
+ label: '店铺名称',
3292
+ },
3293
+ ],
3294
+ options: [],
3295
+ },
3267
3296
  effect: {
3268
3297
  required: true,
3269
3298
  },
3299
+ inject: true,
3300
+ on: {
3301
+ change({ api, self }, list) {
3302
+ api.emit('change', self.field, list, self, api, true);
3303
+ self.props.associatedFields = list;
3304
+ nextTick(() => {
3305
+ api.refresh();
3306
+ });
3307
+ },
3308
+ },
3270
3309
  },
3271
3310
  {
3272
3311
  type: 'checkbox',
@@ -3315,8 +3354,8 @@ var shop = {
3315
3354
  required: rule.effect.required,
3316
3355
  },
3317
3356
  config: {
3318
- dataFiltering: rule.config.dataFiltering,
3319
3357
  isMain: rule.config.isMain,
3358
+ associatedFields: rule.config.associatedFields,
3320
3359
  },
3321
3360
  };
3322
3361
  },
@@ -3534,6 +3573,18 @@ const formDesignerProps = {
3534
3573
  type: Boolean,
3535
3574
  default: false,
3536
3575
  },
3576
+ dragCheckFunc: {
3577
+ type: Function,
3578
+ default: (underlying_vm) => true,
3579
+ },
3580
+ formRulePipe: {
3581
+ type: Function,
3582
+ default: (obj) => obj,
3583
+ },
3584
+ addWidgetFunc: {
3585
+ type: Function,
3586
+ default: (pushRowWidget, pushTableWidgets) => null,
3587
+ },
3537
3588
  };
3538
3589
 
3539
3590
  const _hoisted_1$3 = {
@@ -3635,6 +3686,12 @@ const widgetNamesRowAccept = [
3635
3686
  shop.name,
3636
3687
  materialType.name,
3637
3688
  ];
3689
+ function pushTableWidgets(key, config) {
3690
+ widgetsTableAccept[key] = config;
3691
+ }
3692
+ function pushRowWidgets(key) {
3693
+ widgetNamesRowAccept.push(key);
3694
+ }
3638
3695
  var ruleList = {
3639
3696
  [row.name]: row,
3640
3697
  [input.name]: input,
@@ -3849,7 +3906,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
3849
3906
  if (rule?.props?.type === "textarea" && parentType === WidgetType.TableWidget) {
3850
3907
  rule.props.autoSize = true;
3851
3908
  }
3852
- if (rule.config.config.name === "product" && parentType === WidgetType.TableWidget) {
3909
+ if (rule.config?.config?.name === "product" && parentType === WidgetType.TableWidget) {
3853
3910
  rule.title.title = "\u5546\u54C1\u7F16\u53F7";
3854
3911
  }
3855
3912
  }
@@ -3863,7 +3920,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
3863
3920
  people: "\u9664\u201C\u5FC5\u586B\u3001\u9009\u9879\u201D\u5185\u5BB9\u8BBE\u7F6E\u4E0D\u53EF\u4FEE\u6539\uFF0C\u5176\u4ED6\u4FE1\u606F\u53EF\u4FEE\u6539",
3864
3921
  department: "\u9664\u201C\u5FC5\u586B\u3001\u9009\u9879\u201D\u5185\u5BB9\u8BBE\u7F6E\u4E0D\u53EF\u4FEE\u6539\uFF0C\u5176\u4ED6\u4FE1\u606F\u53EF\u4FEE\u6539"
3865
3922
  };
3866
- const tabData = createTab();
3923
+ const tabData = typeof props.formRulePipe === "function" ? props.formRulePipe(createTab()) : [];
3924
+ typeof props.addWidgetFunc === "function" && props.addWidgetFunc(pushRowWidgets, pushTableWidgets);
3867
3925
  const activeKey = vue.ref("controlLibrary");
3868
3926
  const widgetFormRules = vue.reactive([]);
3869
3927
  const activeRule = vue.ref({});
@@ -3871,7 +3929,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
3871
3929
  const fApi = vue.ref();
3872
3930
  const activeParentRule = vue.ref();
3873
3931
  const menuList = vue.computed(
3874
- () => tabData.find((tab) => tab.key === activeKey.value).menuList
3932
+ () => tabData.find((tab) => tab.key === activeKey.value)?.menuList
3875
3933
  );
3876
3934
  const activeProps = vue.computed(() => cacheProps[activeRule.value.field]);
3877
3935
  const activeRuleInList = vue.computed(
@@ -3902,10 +3960,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
3902
3960
  }
3903
3961
  }
3904
3962
  function moveMenuItem(evt) {
3905
- return checkDragMove(evt);
3963
+ return props?.dragCheckFunc(evt?.dragged?._underlying_vm_) && checkDragMove(evt);
3906
3964
  }
3907
3965
  function moveFormItem(evt) {
3908
- return checkDragMove(evt);
3966
+ return props?.dragCheckFunc(evt?.dragged?._underlying_vm_) && checkDragMove(evt);
3909
3967
  }
3910
3968
  function handleMenuItemDragStart(evt) {
3911
3969
  const item = evt.item.children[0];
@@ -31,6 +31,14 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
31
31
  type: StringConstructor;
32
32
  default: string;
33
33
  };
34
+ setDefaultConfirm: {
35
+ type: BooleanConstructor;
36
+ default: boolean;
37
+ };
38
+ setDefaultConfirmConfig: {
39
+ type: ObjectConstructor;
40
+ default(): {};
41
+ };
34
42
  gutter: {
35
43
  type: import("vue").PropType<number[]>;
36
44
  default(): number[];
@@ -99,6 +107,14 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
99
107
  type: StringConstructor;
100
108
  default: string;
101
109
  };
110
+ setDefaultConfirm: {
111
+ type: BooleanConstructor;
112
+ default: boolean;
113
+ };
114
+ setDefaultConfirmConfig: {
115
+ type: ObjectConstructor;
116
+ default(): {};
117
+ };
102
118
  gutter: {
103
119
  type: import("vue").PropType<number[]>;
104
120
  default(): number[];
@@ -151,6 +167,8 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
151
167
  showSetDefaultBtn: boolean;
152
168
  setDefaultText: string;
153
169
  setDefaultId: string;
170
+ setDefaultConfirm: boolean;
171
+ setDefaultConfirmConfig: Record<string, any>;
154
172
  collapseText: string;
155
173
  gutter: number[];
156
174
  loading: boolean;
@@ -219,6 +237,14 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
219
237
  type: StringConstructor;
220
238
  default: string;
221
239
  };
240
+ setDefaultConfirm: {
241
+ type: BooleanConstructor;
242
+ default: boolean;
243
+ };
244
+ setDefaultConfirmConfig: {
245
+ type: ObjectConstructor;
246
+ default(): {};
247
+ };
222
248
  gutter: {
223
249
  type: import("vue").PropType<number[]>;
224
250
  default(): number[];
@@ -271,6 +297,8 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
271
297
  showSetDefaultBtn: boolean;
272
298
  setDefaultText: string;
273
299
  setDefaultId: string;
300
+ setDefaultConfirm: boolean;
301
+ setDefaultConfirmConfig: Record<string, any>;
274
302
  gutter: number[];
275
303
  userRule: unknown[];
276
304
  ruleSpan: Record<string, any>;