bm-admin-ui 1.0.63-alpha → 1.0.65-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 (41) hide show
  1. package/es/components/flow-designer/index.d.ts +45 -4
  2. package/es/components/flow-designer/index.js +1284 -11
  3. package/es/components/flow-designer/src/bm-nodes/BmConditionNode.vue.d.ts +0 -1
  4. package/es/components/flow-designer/src/bm-nodes/BmHtmlNode.vue.d.ts +1 -1
  5. package/es/components/flow-designer/src/config.d.ts +1 -0
  6. package/es/components/flow-designer/src/flow-designer.vue.d.ts +47 -4
  7. package/es/components/flow-designer/src/utils.d.ts +1 -0
  8. package/es/components/form-create/index.js +17563 -213
  9. package/es/components/form-designer/index.js +83 -9
  10. package/es/components/staffs-selector/index.d.ts +0 -1
  11. package/es/components/staffs-selector/index.js +19 -16
  12. package/es/components/staffs-selector/src/multipleCmp.vue.d.ts +0 -1
  13. package/es/components/staffs-selector/src/staffs-selector.vue.d.ts +0 -1
  14. package/lib/components/flow-designer/index.d.ts +45 -4
  15. package/lib/components/flow-designer/index.js +1285 -9
  16. package/lib/components/flow-designer/src/bm-nodes/BmConditionNode.vue.d.ts +0 -1
  17. package/lib/components/flow-designer/src/bm-nodes/BmHtmlNode.vue.d.ts +1 -1
  18. package/lib/components/flow-designer/src/config.d.ts +1 -0
  19. package/lib/components/flow-designer/src/flow-designer.vue.d.ts +47 -4
  20. package/lib/components/flow-designer/src/utils.d.ts +1 -0
  21. package/lib/components/form-create/index.js +17562 -212
  22. package/lib/components/form-designer/index.js +83 -9
  23. package/lib/components/staffs-selector/index.d.ts +0 -1
  24. package/lib/components/staffs-selector/index.js +19 -16
  25. package/lib/components/staffs-selector/src/multipleCmp.vue.d.ts +0 -1
  26. package/lib/components/staffs-selector/src/staffs-selector.vue.d.ts +0 -1
  27. package/package.json +1 -1
  28. package/theme-chalk/flow-designer.css +1 -1
  29. package/theme-chalk/index.css +1 -1
  30. package/types/components/flow-designer/index.d.ts +45 -4
  31. package/types/components/flow-designer/src/bm-nodes/BmConditionNode.vue.d.ts +0 -1
  32. package/types/components/flow-designer/src/bm-nodes/BmHtmlNode.vue.d.ts +1 -1
  33. package/types/components/flow-designer/src/config.d.ts +1 -0
  34. package/types/components/flow-designer/src/flow-designer.vue.d.ts +47 -4
  35. package/types/components/flow-designer/src/utils.d.ts +1 -0
  36. package/types/components/staffs-selector/index.d.ts +0 -1
  37. package/types/components/staffs-selector/src/multipleCmp.vue.d.ts +0 -1
  38. package/types/components/staffs-selector/src/staffs-selector.vue.d.ts +0 -1
  39. package/es/components/flow-designer/src/flow-designer-test.d.ts +0 -20
  40. package/lib/components/flow-designer/src/flow-designer-test.d.ts +0 -20
  41. package/types/components/flow-designer/src/flow-designer-test.d.ts +0 -20
@@ -2078,6 +2078,9 @@ var table = {
2078
2078
  api.validate();
2079
2079
  });
2080
2080
  },
2081
+ childRuleDelete({ api }, rule) {
2082
+ api.emit('tableChildRuleDelete', rule);
2083
+ },
2081
2084
  },
2082
2085
  },
2083
2086
  {
@@ -2983,7 +2986,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2983
2986
  const shopRules = computed(
2984
2987
  () => props.widgetFormRules.reduce((pre, cur) => {
2985
2988
  const name = cur.config.config.name;
2986
- if (name === "row" || name === "table") {
2989
+ if (name === "row") {
2987
2990
  cur.config.childRules.forEach((rule) => {
2988
2991
  getShop(rule, pre);
2989
2992
  });
@@ -3521,6 +3524,10 @@ const formDesignerProps = {
3521
3524
  return {};
3522
3525
  },
3523
3526
  },
3527
+ showDragTip: {
3528
+ type: Boolean,
3529
+ default: false,
3530
+ },
3524
3531
  };
3525
3532
 
3526
3533
  const _hoisted_1$3 = {
@@ -3648,7 +3655,7 @@ const _hoisted_2$1 = { class: "bm-table-column-btn-wrap" };
3648
3655
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3649
3656
  __name: "table-column",
3650
3657
  props: ["formCreateInject"],
3651
- emits: ["change"],
3658
+ emits: ["change", "childRuleDelete"],
3652
3659
  setup(__props, { emit: emits }) {
3653
3660
  const props = __props;
3654
3661
  const handleClass = "bm-table-column__drag-icon";
@@ -3674,6 +3681,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3674
3681
  function getPopupContainer() {
3675
3682
  return document.body;
3676
3683
  }
3684
+ function handleDelete(element, index) {
3685
+ childRules.value.splice(index, 1);
3686
+ emits("childRuleDelete", element);
3687
+ }
3677
3688
  watch(
3678
3689
  childRules,
3679
3690
  (val) => {
@@ -3714,7 +3725,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3714
3725
  }, null, 8, ["onClick"]),
3715
3726
  createVNode(_component_Delete, {
3716
3727
  class: "bm-table-column__icon is-del",
3717
- onClick: ($event) => unref(childRules).splice(index, 1)
3728
+ onClick: ($event) => handleDelete(element, index)
3718
3729
  }, null, 8, ["onClick"])
3719
3730
  ]),
3720
3731
  _: 2
@@ -3814,7 +3825,8 @@ const __default__ = {
3814
3825
  const _sfc_main = /* @__PURE__ */ defineComponent({
3815
3826
  ...__default__,
3816
3827
  props: formDesignerProps,
3817
- setup(__props, { expose }) {
3828
+ emits: ["update:showDragTip"],
3829
+ setup(__props, { expose, emit: emits }) {
3818
3830
  const props = __props;
3819
3831
  FC.component("TableHeadCount", TableHeadCount);
3820
3832
  FC.component("TableColumn", TableColumn);
@@ -3845,7 +3857,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3845
3857
  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",
3846
3858
  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"
3847
3859
  };
3848
- const showDragTip = ref(true);
3849
3860
  const tabData = createTab();
3850
3861
  const activeKey = ref("controlLibrary");
3851
3862
  const widgetFormRules = reactive([]);
@@ -3861,7 +3872,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3861
3872
  () => activeParentRule.value?.config?.childRules || widgetFormRules
3862
3873
  );
3863
3874
  function hideShowDragTip() {
3864
- showDragTip.value = false;
3875
+ emits("update:showDragTip", false);
3865
3876
  }
3866
3877
  function handleTabChange(key) {
3867
3878
  activeKey.value = key;
@@ -4011,6 +4022,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4011
4022
  resetActiveRule();
4012
4023
  }
4013
4024
  }
4025
+ if (productLinkShop(targetRule)) {
4026
+ setShopLinkProductCount();
4027
+ }
4014
4028
  }
4015
4029
  function makePropRule(rule, parentRule) {
4016
4030
  return rule.config.config.props(rule, parentRule, widgetFormRules);
@@ -4022,10 +4036,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4022
4036
  cacheProps[rule.field] = makePropRule(rule, parentRule);
4023
4037
  }
4024
4038
  flowConditionEffect(props.flowCondition);
4039
+ setMainShopPropDisabled(rule.field);
4025
4040
  }
4026
4041
  function propChange(field, value) {
4027
4042
  setRulePropValue(field, value, activeRule.value);
4028
4043
  processShopProps(field, value);
4044
+ if (activeRule.value.config.config.name === "product" && field === "config.dataFiltering") {
4045
+ setShopLinkProductCount();
4046
+ }
4029
4047
  }
4030
4048
  function processShopProps(field, value) {
4031
4049
  if (activeRule.value?.config?.config.name === "shop") {
@@ -4219,10 +4237,65 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4219
4237
  function getPopupContainer() {
4220
4238
  return document.body;
4221
4239
  }
4240
+ function getMainShop() {
4241
+ return widgetFormRules.find(
4242
+ (rule) => rule?.config?.config?.name === "shop" && rule?.config?.isMain
4243
+ );
4244
+ }
4245
+ function setMainShopPropDisabled(field) {
4246
+ const propsRules = cacheProps[field];
4247
+ const mainShopPropRule = propsRules.find(
4248
+ (rule) => rule.field === "config.isMain"
4249
+ );
4250
+ const mainShopRule = getMainShop();
4251
+ if (mainShopPropRule) {
4252
+ if (!mainShopPropRule.props) {
4253
+ mainShopPropRule.props = {};
4254
+ }
4255
+ mainShopPropRule.props.disabled = !!mainShopRule && !mainShopPropRule.value;
4256
+ }
4257
+ }
4258
+ function setShopLinkProductCount() {
4259
+ widgetFormRules.forEach((rule) => filterShopRule(rule));
4260
+ }
4261
+ function filterShopRule(rule) {
4262
+ if (rule.config.config.name === "shop") {
4263
+ rule.config.linkProductCount = calculateLinkProductCount(rule.field);
4264
+ }
4265
+ if (rule.config.config.name === "row" && rule.config.childRules?.length) {
4266
+ rule.config.childRules.forEach((cRule) => filterShopRule(cRule));
4267
+ }
4268
+ }
4269
+ function calculateLinkProductCount(shopField) {
4270
+ return widgetFormRules.reduce((count, rule) => {
4271
+ return count += recursiveCalculateLinkProductCount(shopField, rule);
4272
+ }, 0);
4273
+ }
4274
+ function recursiveCalculateLinkProductCount(shopField, rule, count = 0) {
4275
+ if (rule.config.config.name === "product" && rule.config.dataFiltering === shopField) {
4276
+ count++;
4277
+ }
4278
+ if (rule.config.childRules?.length) {
4279
+ rule.config.childRules.forEach(
4280
+ (cRule) => recursiveCalculateLinkProductCount(shopField, cRule, count)
4281
+ );
4282
+ }
4283
+ return count;
4284
+ }
4285
+ function handleTableChildRuleDelete(rule) {
4286
+ if (productLinkShop(rule))
4287
+ setShopLinkProductCount();
4288
+ }
4289
+ function productLinkShop(rule) {
4290
+ return rule.config.config.name === "product" && rule.config.dataFiltering;
4291
+ }
4222
4292
  watch(
4223
4293
  () => props.formRules,
4224
4294
  (formRules) => {
4225
- formRules && edit(formRules);
4295
+ if (formRules?.length) {
4296
+ edit(formRules);
4297
+ setShopLinkProductCount();
4298
+ }
4226
4299
  },
4227
4300
  {
4228
4301
  immediate: true
@@ -4351,7 +4424,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4351
4424
  ]),
4352
4425
  _: 1
4353
4426
  }, 8, ["list"]),
4354
- showDragTip.value && !_ctx.formRules?.length ? (openBlock(), createBlock(NoDataTip, {
4427
+ _ctx.showDragTip ? (openBlock(), createBlock(NoDataTip, {
4355
4428
  key: 0,
4356
4429
  class: "bm-no-data-tip"
4357
4430
  })) : createCommentVNode("v-if", true)
@@ -4405,7 +4478,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
4405
4478
  rule: unref(activeProps),
4406
4479
  onChange: propChange,
4407
4480
  onSetActive: handlePropsSetActive,
4408
- onAddChildRule: handleAddChildRule
4481
+ onAddChildRule: handleAddChildRule,
4482
+ onTableChildRuleDelete: handleTableChildRuleDelete
4409
4483
  }, null, 8, ["api", "option", "rule"])
4410
4484
  ])
4411
4485
  ]),
@@ -917,7 +917,6 @@ declare const BmStaffsSelector: import("bm-admin-ui/es/utils/with-install").SFCW
917
917
  }> | null | undefined)[]>;
918
918
  isFulfill: import("vue").Ref<boolean>;
919
919
  changeTreeCheck: (checkedKeys: any) => void;
920
- departmentSelect: import("vue").Ref<never[]>;
921
920
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:selected" | "fetchList")[], "update:selected" | "fetchList", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
922
921
  limit: {
923
922
  type: NumberConstructor;
@@ -156,16 +156,14 @@ const _sfc_main$3 = defineComponent({
156
156
  },
157
157
  { deep: true }
158
158
  );
159
- const departmentSelect = ref([]);
160
159
  function changeTreeCheck(checkedKeys) {
161
- departmentSelect.value = checkedKeys;
162
160
  let flatMap = selectState.dataMap;
163
161
  let curlistKeys = selectState.curlistKeys;
164
162
  let hadselected = new Set(selectState.multipDepartment);
165
163
  let curselect = new Set(checkedKeys);
166
164
  for (let key of hadselected) {
167
165
  if (curlistKeys.has(String(key)) && (!curselect.has(String(key)) || curselect.has(String(key)) && curselect.has(flatMap.get(String(key))["parent"]))) {
168
- hadselected.delete(key);
166
+ hadselected.delete(String(key));
169
167
  }
170
168
  }
171
169
  for (let key of curselect) {
@@ -183,7 +181,6 @@ const _sfc_main$3 = defineComponent({
183
181
  }
184
182
  return {
185
183
  changeTreeCheck,
186
- departmentSelect,
187
184
  ...toRefs(state),
188
185
  ...toRefs(selectState),
189
186
  list,
@@ -256,7 +253,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
256
253
  disabled: _ctx.isFulfill
257
254
  }, {
258
255
  default: withCtx(() => [
259
- createTextVNode(toDisplayString(item.title), 1)
256
+ createTextVNode(toDisplayString(item?.fullTitle || item.title), 1)
260
257
  ]),
261
258
  _: 2
262
259
  }, 1032, ["checked", "onUpdate:checked", "disabled"])
@@ -264,7 +261,7 @@ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
264
261
  }), 128))
265
262
  ], 64)) : _ctx.isTree ? (openBlock(), createBlock(_component_ATree, {
266
263
  key: 1,
267
- "checked-keys": _ctx.departmentSelect,
264
+ "checked-keys": _ctx.multipDepartment,
268
265
  checkable: "",
269
266
  "tree-data": _ctx.list,
270
267
  onCheck: _ctx.changeTreeCheck
@@ -368,7 +365,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
368
365
  value: item.key
369
366
  }, {
370
367
  default: withCtx(() => [
371
- createTextVNode(toDisplayString(item.title), 1)
368
+ createTextVNode(toDisplayString(item.fullTitle || item.title), 1)
372
369
  ]),
373
370
  _: 2
374
371
  }, 1032, ["value"]);
@@ -564,7 +561,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
564
561
  class: "__selector-modal-option-check"
565
562
  }, {
566
563
  default: withCtx(() => [
567
- createTextVNode(toDisplayString(item.title), 1)
564
+ createTextVNode(toDisplayString(item.fullTitle || item.title), 1)
568
565
  ]),
569
566
  _: 2
570
567
  }, 1032, ["checked", "onUpdate:checked"])
@@ -603,7 +600,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
603
600
  class: "__selector-modal-option-check"
604
601
  }, {
605
602
  default: withCtx(() => [
606
- createTextVNode(toDisplayString(item.title), 1)
603
+ createTextVNode(toDisplayString(item.fullTitle || item.title), 1)
607
604
  ]),
608
605
  _: 2
609
606
  }, 1032, ["checked", "onUpdate:checked"])
@@ -621,7 +618,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
621
618
  class: "__selector-modal-option-check"
622
619
  }, {
623
620
  default: withCtx(() => [
624
- createTextVNode(toDisplayString(item.title), 1)
621
+ createTextVNode(toDisplayString(item.fullTitle || item.title), 1)
625
622
  ]),
626
623
  _: 2
627
624
  }, 1032, ["checked", "onUpdate:checked"])
@@ -861,11 +858,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
861
858
  let arr = props.select;
862
859
  selected.value = arr.length ? arr.map((item) => String(item?.key)) : [];
863
860
  if (props.mode === MODE.MULTIPLE) {
864
- let multipleChecked = {};
865
- arr.forEach(
866
- (item) => multipleChecked[String(item?.key)] = true
867
- );
868
- selectState.multipleChecked = multipleChecked;
861
+ if (props.immediateFetch) {
862
+ const multipDepartment = [];
863
+ arr.forEach((item) => multipDepartment.push(String(item?.key)));
864
+ selectState.multipDepartment = multipDepartment;
865
+ } else {
866
+ let multipleChecked = {};
867
+ arr.forEach(
868
+ (item) => multipleChecked[String(item?.key)] = true
869
+ );
870
+ selectState.multipleChecked = multipleChecked;
871
+ }
869
872
  } else if (props.mode === MODE.VARIED) {
870
873
  let department = [];
871
874
  let shop = {};
@@ -896,7 +899,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
896
899
  selectState.groupChecked = {};
897
900
  selectState.activeKey = 0;
898
901
  }
899
- if (val && props.immediateFetch) {
902
+ if (val && props.mode === MODE.MULTIPLE && props.immediateFetch) {
900
903
  fetch({});
901
904
  }
902
905
  },
@@ -35,7 +35,6 @@ declare const _default: import("vue").DefineComponent<{
35
35
  }> | null | undefined)[]>;
36
36
  isFulfill: import("vue").Ref<boolean>;
37
37
  changeTreeCheck: (checkedKeys: any) => void;
38
- departmentSelect: import("vue").Ref<never[]>;
39
38
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:selected" | "fetchList")[], "update:selected" | "fetchList", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
40
39
  limit: {
41
40
  type: NumberConstructor;
@@ -917,7 +917,6 @@ declare const _default: import("vue").DefineComponent<{
917
917
  }> | null | undefined)[]>;
918
918
  isFulfill: import("vue").Ref<boolean>;
919
919
  changeTreeCheck: (checkedKeys: any) => void;
920
- departmentSelect: import("vue").Ref<never[]>;
921
920
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:selected" | "fetchList")[], "update:selected" | "fetchList", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
922
921
  limit: {
923
922
  type: NumberConstructor;
@@ -1,7 +1,48 @@
1
- declare const BmFlowDesigner: import("bm-admin-ui/es/utils/with-install").SFCWithInstall<import("vue").DefineComponent<{}, {
2
- container: import("vue").Ref<any>;
1
+ declare const BmFlowDesigner: import("bm-admin-ui/es/utils/with-install").SFCWithInstall<import("vue").DefineComponent<{
2
+ lineLength: {
3
+ type: NumberConstructor;
4
+ default: number;
5
+ };
6
+ }, {
7
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
8
+ lineLength: {
9
+ type: NumberConstructor;
10
+ default: number;
11
+ };
12
+ }>> & {
13
+ onNodeCallback?: ((...args: any[]) => any) | undefined;
14
+ onLoadFinish?: ((...args: any[]) => any) | undefined;
15
+ }>>;
16
+ emit: (event: "nodeCallback" | "loadFinish", ...args: any[]) => void;
17
+ container: import("vue").Ref<null>;
3
18
  lf: any;
4
- init: () => void;
5
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>>;
19
+ graphModel: any;
20
+ eventCenter: any;
21
+ getFlowRawData: () => {
22
+ json: any;
23
+ xml: any;
24
+ };
25
+ loadFlowData: (json: any) => void;
26
+ state: {
27
+ startId: string;
28
+ endId: string;
29
+ };
30
+ flowMethods: any;
31
+ initFlowInstance: () => void;
32
+ initFlowEvent: () => void;
33
+ focusOnZoom: (y?: any) => void;
34
+ initFlowNodes: () => void;
35
+ changePriority: (id: any, priority: any) => void;
36
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("nodeCallback" | "loadFinish")[], "nodeCallback" | "loadFinish", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
37
+ lineLength: {
38
+ type: NumberConstructor;
39
+ default: number;
40
+ };
41
+ }>> & {
42
+ onNodeCallback?: ((...args: any[]) => any) | undefined;
43
+ onLoadFinish?: ((...args: any[]) => any) | undefined;
44
+ }, {
45
+ lineLength: number;
46
+ }>>;
6
47
  export { BmFlowDesigner };
7
48
  export default BmFlowDesigner;