@ibiz-template/mob-vue3-components 0.7.41-alpha.17 → 0.7.41-alpha.18

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 (48) hide show
  1. package/dist/ibiz-markdown-editor-CpFrKPxk.js +2 -0
  2. package/dist/ibiz-markdown-editor-CpFrKPxk.js.map +1 -0
  3. package/dist/{index-CLxzVzNz.js → index-DO9R8HNp.js} +13 -13
  4. package/dist/index-DO9R8HNp.js.map +1 -0
  5. package/dist/index.min.css +3 -3
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/{quill-CG16aqds.js → quill-DKjojHxx.js} +2 -2
  8. package/dist/{quill-CG16aqds.js.map → quill-DKjojHxx.js.map} +1 -1
  9. package/dist/quill-editor-B4FDYSA7.js +2 -0
  10. package/dist/quill-editor-B4FDYSA7.js.map +1 -0
  11. package/dist/{quill-editor-preview-YXGzGLmQ.js → quill-editor-preview-6GV-nd2y.js} +2 -2
  12. package/dist/{quill-editor-preview-YXGzGLmQ.js.map → quill-editor-preview-6GV-nd2y.js.map} +1 -1
  13. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.mjs +3 -0
  14. package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.mjs +8 -2
  15. package/es/editor/date-range/date-range-editor.controller.mjs +4 -1
  16. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.mjs +12 -0
  17. package/es/editor/html/html-editor.controller.mjs +52 -1
  18. package/es/editor/html/quill-editor/quill-editor.mjs +10 -1
  19. package/es/editor/index.mjs +13 -3
  20. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +10 -1
  21. package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +25 -0
  22. package/es/editor/upload/ibiz-image-select/ibiz-image-select.mjs +5 -2
  23. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +5 -2
  24. package/es/editor/upload/upload-editor.controller.mjs +29 -1
  25. package/es/editor/upload/use/use-van-upload.mjs +8 -1
  26. package/es/platform/ios-platform-provider.mjs +11 -0
  27. package/es/platform/wechat-official-platform-provider.mjs +11 -0
  28. package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.cjs +3 -0
  29. package/lib/editor/check-box/ibiz-checkbox/ibiz-checkbox.cjs +8 -2
  30. package/lib/editor/date-range/date-range-editor.controller.cjs +4 -1
  31. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.cjs +12 -0
  32. package/lib/editor/html/html-editor.controller.cjs +52 -1
  33. package/lib/editor/html/quill-editor/quill-editor.cjs +10 -1
  34. package/lib/editor/index.cjs +14 -4
  35. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +10 -1
  36. package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +25 -0
  37. package/lib/editor/upload/ibiz-image-select/ibiz-image-select.cjs +5 -2
  38. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +5 -2
  39. package/lib/editor/upload/upload-editor.controller.cjs +29 -1
  40. package/lib/editor/upload/use/use-van-upload.cjs +8 -1
  41. package/lib/platform/ios-platform-provider.cjs +11 -0
  42. package/lib/platform/wechat-official-platform-provider.cjs +11 -0
  43. package/package.json +5 -5
  44. package/dist/ibiz-markdown-editor-B7D3K0dJ.js +0 -2
  45. package/dist/ibiz-markdown-editor-B7D3K0dJ.js.map +0 -1
  46. package/dist/index-CLxzVzNz.js.map +0 -1
  47. package/dist/quill-editor-C7zYyQrk.js +0 -2
  48. package/dist/quill-editor-C7zYyQrk.js.map +0 -1
@@ -12,7 +12,7 @@ const IBizCheckbox = /* @__PURE__ */ vue.defineComponent({
12
12
  setup(props, {
13
13
  emit
14
14
  }) {
15
- var _a, _b;
15
+ var _a, _b, _c, _d;
16
16
  const ns = vue3Util.useNamespace("checkbox");
17
17
  const c = props.controller;
18
18
  const editorModel = c.model;
@@ -21,9 +21,15 @@ const IBizCheckbox = /* @__PURE__ */ vue.defineComponent({
21
21
  if ((_a = editorModel.editorParams) == null ? void 0 : _a.selectValue) {
22
22
  selectValue = editorModel.editorParams.selectValue;
23
23
  }
24
- if ((_b = editorModel.editorParams) == null ? void 0 : _b.nullValue) {
24
+ if ((_b = editorModel.editorParams) == null ? void 0 : _b.selectvalue) {
25
+ selectValue = editorModel.editorParams.selectvalue;
26
+ }
27
+ if ((_c = editorModel.editorParams) == null ? void 0 : _c.nullValue) {
25
28
  nullValue = editorModel.editorParams.nullValue;
26
29
  }
30
+ if ((_d = editorModel.editorParams) == null ? void 0 : _d.nullvalue) {
31
+ nullValue = editorModel.editorParams.nullvalue;
32
+ }
27
33
  const currentVal = vue.computed({
28
34
  get() {
29
35
  if (props.value === selectValue) {
@@ -28,7 +28,7 @@ class DateRangeEditorController extends runtime.EditorController {
28
28
  * @memberof DateRangeEditorController
29
29
  */
30
30
  async onInit() {
31
- var _a;
31
+ var _a, _b;
32
32
  super.onInit();
33
33
  if (!this.placeHolder) {
34
34
  this.placeHolder = ibiz.i18n.t("editor.dateRangePicker.selectRange");
@@ -36,6 +36,9 @@ class DateRangeEditorController extends runtime.EditorController {
36
36
  if (((_a = this.editorParams) == null ? void 0 : _a.SHOWMODE) === "CALENDAR") {
37
37
  this.showmode = "CALENDAR";
38
38
  }
39
+ if (((_b = this.editorParams) == null ? void 0 : _b.showmode) === "CALENDAR") {
40
+ this.showmode = "CALENDAR";
41
+ }
39
42
  }
40
43
  /**
41
44
  * 根据编辑器类型获取格式化
@@ -49,15 +49,27 @@ const IBizDateRangePicker = /* @__PURE__ */ vue.defineComponent({
49
49
  if (editorModel.editorParams.valueSeparator) {
50
50
  valueSeparator = editorModel.editorParams.valueSeparator;
51
51
  }
52
+ if (editorModel.editorParams.valueseparator) {
53
+ valueSeparator = editorModel.editorParams.valueseparator;
54
+ }
52
55
  if (editorModel.editorParams.startPlaceHolder) {
53
56
  startPlaceHolder = editorModel.editorParams.startPlaceHolder;
54
57
  }
58
+ if (editorModel.editorParams.startplaceholder) {
59
+ startPlaceHolder = editorModel.editorParams.startplaceholder;
60
+ }
55
61
  if (editorModel.editorParams.endPlaceHolder) {
56
62
  endPlaceHolder = editorModel.editorParams.endPlaceHolder;
57
63
  }
64
+ if (editorModel.editorParams.endplaceholder) {
65
+ endPlaceHolder = editorModel.editorParams.endplaceholder;
66
+ }
58
67
  if (editorModel.editorParams.rangeSeparator) {
59
68
  rangeSeparator = editorModel.editorParams.rangeSeparator;
60
69
  }
70
+ if (editorModel.editorParams.rangeseparator) {
71
+ rangeSeparator = editorModel.editorParams.rangeseparator;
72
+ }
61
73
  }
62
74
  const format = vue.ref("YYYY-MM-DD");
63
75
  const valueFormat = c.valueFormat;
@@ -83,7 +83,15 @@ class HtmlEditorController extends runtime.EditorController {
83
83
  IMAGEMODE,
84
84
  MODULES,
85
85
  DEFAULTHEIGHT,
86
- SHOWCOLLAPSE
86
+ SHOWCOLLAPSE,
87
+ uploadparams,
88
+ exportparams,
89
+ showtoolbar,
90
+ valuemode,
91
+ imagemode,
92
+ modules,
93
+ defaultheight,
94
+ showcollapse
87
95
  } = this.editorParams;
88
96
  if (uploadParams) {
89
97
  try {
@@ -96,6 +104,17 @@ class HtmlEditorController extends runtime.EditorController {
96
104
  );
97
105
  }
98
106
  }
107
+ if (uploadparams) {
108
+ try {
109
+ this.uploadParams = JSON.parse(uploadparams);
110
+ } catch (error) {
111
+ ibiz.log.error(
112
+ `\u7F16\u8F91\u5668[${ibiz.log.error(
113
+ error
114
+ )}]\u7F16\u8F91\u5668\u53C2\u6570 uploadParams \u975E json \u683C\u5F0F`
115
+ );
116
+ }
117
+ }
99
118
  if (exportParams) {
100
119
  try {
101
120
  this.exportParams = JSON.parse(exportParams);
@@ -107,27 +126,59 @@ class HtmlEditorController extends runtime.EditorController {
107
126
  );
108
127
  }
109
128
  }
129
+ if (exportparams) {
130
+ try {
131
+ this.exportParams = JSON.parse(exportparams);
132
+ } catch (error) {
133
+ ibiz.log.error(
134
+ `\u7F16\u8F91\u5668[${ibiz.log.error(
135
+ error
136
+ )}]\u7F16\u8F91\u5668\u53C2\u6570 exportParams \u975E json \u683C\u5F0F`
137
+ );
138
+ }
139
+ }
110
140
  if (SHOWTOOLBAR) {
111
141
  this.showToolbar = this.toBoolean(SHOWTOOLBAR);
112
142
  }
143
+ if (showtoolbar) {
144
+ this.showToolbar = this.toBoolean(showtoolbar);
145
+ }
113
146
  if (VALUEMODE) {
114
147
  this.valueMode = VALUEMODE.toLowerCase();
115
148
  }
149
+ if (valuemode) {
150
+ this.valueMode = valuemode.toLowerCase();
151
+ }
116
152
  if (IMAGEMODE) {
117
153
  this.imageMode = IMAGEMODE.toLowerCase();
118
154
  }
155
+ if (imagemode) {
156
+ this.imageMode = imagemode.toLowerCase();
157
+ }
119
158
  if (MODULES) {
120
159
  this.modules = runtime.ScriptFactory.execScriptFn(
121
160
  { controller: this },
122
161
  MODULES
123
162
  );
124
163
  }
164
+ if (modules) {
165
+ this.modules = runtime.ScriptFactory.execScriptFn(
166
+ { controller: this },
167
+ modules
168
+ );
169
+ }
125
170
  if (DEFAULTHEIGHT) {
126
171
  this.defaultHeight = Number(DEFAULTHEIGHT);
127
172
  }
173
+ if (defaultheight) {
174
+ this.defaultHeight = Number(defaultheight);
175
+ }
128
176
  if (SHOWCOLLAPSE) {
129
177
  this.showCollapse = this.toBoolean(SHOWCOLLAPSE);
130
178
  }
179
+ if (showcollapse) {
180
+ this.showCollapse = this.toBoolean(showcollapse);
181
+ }
131
182
  }
132
183
  }
133
184
  }
@@ -95,7 +95,16 @@ const IBizQuill = /* @__PURE__ */ vue.defineComponent({
95
95
  });
96
96
  vue.watch(() => props.data, (newVal) => {
97
97
  if (newVal) {
98
- const urls = ibiz.util.file.calcFileUpDownUrl(c.context, c.params, newVal, c.editorParams);
98
+ const editorParams = {
99
+ ...c.editorParams
100
+ };
101
+ if (editorParams.uploadparams) {
102
+ editorParams.uploadParams = JSON.parse(editorParams.uploadparams);
103
+ }
104
+ if (editorParams.exportparams) {
105
+ editorParams.exportParams = JSON.parse(editorParams.exportparams);
106
+ }
107
+ const urls = ibiz.util.file.calcFileUpDownUrl(c.context, c.params, newVal, editorParams);
99
108
  uploadUrl.value = urls.uploadUrl;
100
109
  downloadUrl.value = urls.downloadUrl;
101
110
  }
@@ -56,6 +56,7 @@ var ibizPickerSelectView = require('./data-picker/ibiz-picker-select-view/ibiz-p
56
56
  var ibizCarousel = require('./upload/ibiz-carousel/ibiz-carousel.cjs');
57
57
  var ibizQrcode = require('./qrcode/ibiz-qrcode/ibiz-qrcode.cjs');
58
58
  var ibizImageCropping = require('./upload/ibiz-image-cropping/ibiz-image-cropping.cjs');
59
+ var ibizCheckbox = require('./check-box/ibiz-checkbox/ibiz-checkbox.cjs');
59
60
  var spanEditor_provider = require('./span/span-editor.provider.cjs');
60
61
  var textBoxEditor_provider = require('./text-box/text-box-editor.provider.cjs');
61
62
  var dropdownListEditor_provider = require('./dropdown-list/dropdown-list-editor.provider.cjs');
@@ -74,12 +75,11 @@ var pickerEditor_provider = require('./data-picker/picker-editor.provider.cjs');
74
75
  var uploadEditor_provider = require('./upload/upload-editor.provider.cjs');
75
76
  var numberRangeEditor_provider = require('./number-range/number-range-editor.provider.cjs');
76
77
  var dateRangeEditor_provider = require('./date-range/date-range-editor.provider.cjs');
78
+ var checkBoxEditor_provider = require('./check-box/check-box-editor.provider.cjs');
77
79
  var checkboxListEditor_provider = require('./check-box-list/checkbox-list-editor.provider.cjs');
78
80
  var qrcodeEditor_provider = require('./qrcode/qrcode-editor.provider.cjs');
79
81
  var cascaderEditor_controller = require('./cascader/cascader-editor.controller.cjs');
80
- var ibizCheckbox = require('./check-box/ibiz-checkbox/ibiz-checkbox.cjs');
81
82
  var checkBoxEditor_controller = require('./check-box/check-box-editor.controller.cjs');
82
- var checkBoxEditor_provider = require('./check-box/check-box-editor.provider.cjs');
83
83
  var checkboxListEditor_controller = require('./check-box-list/checkbox-list-editor.controller.cjs');
84
84
  var pickerEditor_controller = require('./data-picker/picker-editor.controller.cjs');
85
85
  var datePickerEditor_controller = require('./date-picker/date-picker-editor.controller.cjs');
@@ -134,6 +134,7 @@ const IBizEditor = {
134
134
  v.component(ibizCarousel.IBizEditorCarousel.name, ibizCarousel.IBizEditorCarousel);
135
135
  v.component(ibizQrcode.IBizQrcode.name, ibizQrcode.IBizQrcode);
136
136
  v.component(ibizImageCropping.IBizImageCropping.name, ibizImageCropping.IBizImageCropping);
137
+ v.component(ibizCheckbox.IBizCheckbox.name, ibizCheckbox.IBizCheckbox);
137
138
  v.component(
138
139
  "IBizMarkDown",
139
140
  vue.defineAsyncComponent(
@@ -171,6 +172,10 @@ const IBizEditor = {
171
172
  "MOBTEXT_SIGNATURE",
172
173
  () => new textBoxEditor_provider.TextBoxEditorProvider("SIGNATURE")
173
174
  );
175
+ runtime.registerEditorProvider(
176
+ "TEXTBOX_SIGNATURE",
177
+ () => new textBoxEditor_provider.TextBoxEditorProvider("SIGNATURE")
178
+ );
174
179
  runtime.registerEditorProvider(
175
180
  "MOBDROPDOWNLIST",
176
181
  () => new dropdownListEditor_provider.DropDownListEditorProvider()
@@ -183,6 +188,10 @@ const IBizEditor = {
183
188
  "MOBDROPDOWNLIST_EMOJI_PICKER",
184
189
  () => new dropdownListEditor_provider.DropDownListEditorProvider("EMOJI_PICKER")
185
190
  );
191
+ runtime.registerEditorProvider(
192
+ "DROPDOWNLIST_EMOJI_PICKER",
193
+ () => new dropdownListEditor_provider.DropDownListEditorProvider("EMOJI_PICKER")
194
+ );
186
195
  runtime.registerEditorProvider(
187
196
  "ROPDOWNLIST_CASCADER",
188
197
  () => new dropdownListEditor_provider.DropDownListEditorProvider("MOBDROPDOWNLIST_CASCADER")
@@ -334,6 +343,7 @@ const IBizEditor = {
334
343
  "DATERANGE_NOTIME",
335
344
  () => new dateRangeEditor_provider.DateRangeEditorProvider()
336
345
  );
346
+ runtime.registerEditorProvider("CHECKBOX", () => new checkBoxEditor_provider.CheckBoxEditorProvider());
337
347
  runtime.registerEditorProvider(
338
348
  "FIELD_IMAGE_PICTURE_ONE",
339
349
  () => new uploadEditor_provider.FileUploaderEditorProvider("MOBPICTURE_RAW")
@@ -424,6 +434,7 @@ exports.IBizColorPicker = ibizColorPicker.IBizColorPicker;
424
434
  exports.IBizPickerSelectView = ibizPickerSelectView.IBizPickerSelectView;
425
435
  exports.IBizEditorCarousel = ibizCarousel.IBizEditorCarousel;
426
436
  exports.IBizImageCropping = ibizImageCropping.IBizImageCropping;
437
+ exports.IBizCheckbox = ibizCheckbox.IBizCheckbox;
427
438
  exports.SpanEditorProvider = spanEditor_provider.SpanEditorProvider;
428
439
  exports.TextBoxEditorProvider = textBoxEditor_provider.TextBoxEditorProvider;
429
440
  exports.DropDownListEditorProvider = dropdownListEditor_provider.DropDownListEditorProvider;
@@ -441,11 +452,10 @@ exports.DataPickerEditorProvider = pickerEditor_provider.DataPickerEditorProvide
441
452
  exports.FileUploaderEditorProvider = uploadEditor_provider.FileUploaderEditorProvider;
442
453
  exports.NumberRangeEditorProvider = numberRangeEditor_provider.NumberRangeEditorProvider;
443
454
  exports.DateRangeEditorProvider = dateRangeEditor_provider.DateRangeEditorProvider;
455
+ exports.CheckBoxEditorProvider = checkBoxEditor_provider.CheckBoxEditorProvider;
444
456
  exports.CheckBoxListEditorProvider = checkboxListEditor_provider.CheckBoxListEditorProvider;
445
457
  exports.CascaderEditorController = cascaderEditor_controller.CascaderEditorController;
446
- exports.IBizCheckbox = ibizCheckbox.IBizCheckbox;
447
458
  exports.CheckBoxEditorController = checkBoxEditor_controller.CheckBoxEditorController;
448
- exports.CheckBoxEditorProvider = checkBoxEditor_provider.CheckBoxEditorProvider;
449
459
  exports.CheckBoxListEditorController = checkboxListEditor_controller.CheckBoxListEditorController;
450
460
  exports.PickerEditorController = pickerEditor_controller.PickerEditorController;
451
461
  exports.DatePickerEditorController = datePickerEditor_controller.DatePickerEditorController;
@@ -38,7 +38,16 @@ const IBizMarkDown = /* @__PURE__ */ vue.defineComponent({
38
38
  const cssVars = vue.ref({});
39
39
  vue.watch(() => props.data, (newVal) => {
40
40
  if (newVal) {
41
- const urls = ibiz.util.file.calcFileUpDownUrl(c.context, c.params, newVal, c.editorParams);
41
+ const editorParams = {
42
+ ...c.editorParams
43
+ };
44
+ if (editorParams.uploadparams) {
45
+ editorParams.uploadParams = JSON.parse(editorParams.uploadparams);
46
+ }
47
+ if (editorParams.exportparams) {
48
+ editorParams.exportParams = JSON.parse(editorParams.exportparams);
49
+ }
50
+ const urls = ibiz.util.file.calcFileUpDownUrl(c.context, c.params, newVal, editorParams);
42
51
  uploadUrl.value = urls.uploadUrl;
43
52
  downloadUrl.value = urls.downloadUrl;
44
53
  }
@@ -33,12 +33,21 @@ const IBizSlider = /* @__PURE__ */ vue.defineComponent({
33
33
  if (editorModel.editorParams.stepValue) {
34
34
  step = lodashEs.toNumber(editorModel.editorParams.stepValue);
35
35
  }
36
+ if (editorModel.editorParams.stepvalue) {
37
+ step = lodashEs.toNumber(editorModel.editorParams.stepvalue);
38
+ }
36
39
  if (editorModel.editorParams.maxValue) {
37
40
  max = lodashEs.toNumber(editorModel.editorParams.maxValue);
38
41
  }
42
+ if (editorModel.editorParams.maxvalue) {
43
+ max = lodashEs.toNumber(editorModel.editorParams.maxvalue);
44
+ }
39
45
  if (editorModel.editorParams.minValue) {
40
46
  min = lodashEs.toNumber(editorModel.editorParams.minValue);
41
47
  }
48
+ if (editorModel.editorParams.minvalue) {
49
+ min = lodashEs.toNumber(editorModel.editorParams.minvalue);
50
+ }
42
51
  if (editorModel.editorParams.range) {
43
52
  range = c.toBoolean(editorModel.editorParams.range);
44
53
  }
@@ -48,9 +57,15 @@ const IBizSlider = /* @__PURE__ */ vue.defineComponent({
48
57
  if (editorModel.editorParams.textItem) {
49
58
  textItem = editorModel.editorParams.textItem;
50
59
  }
60
+ if (editorModel.editorParams.textitem) {
61
+ textItem = editorModel.editorParams.textitem;
62
+ }
51
63
  if (editorModel.editorParams.showText) {
52
64
  showText = c.toBoolean(editorModel.editorParams.showText);
53
65
  }
66
+ if (editorModel.editorParams.showtext) {
67
+ showText = c.toBoolean(editorModel.editorParams.showtext);
68
+ }
54
69
  if (editorModel.editorParams.format) {
55
70
  format = editorModel.editorParams.format;
56
71
  }
@@ -141,6 +156,16 @@ const IBizSlider = /* @__PURE__ */ vue.defineComponent({
141
156
  return vue.createVNode("div", {
142
157
  "class": this.ns.b("button")
143
158
  }, [this.currentVal]);
159
+ },
160
+ "left-button": () => {
161
+ return vue.createVNode("div", {
162
+ "class": this.ns.b("button")
163
+ }, [Array.isArray(this.currentVal) ? this.currentVal[0] : this.currentVal]);
164
+ },
165
+ "right-button": () => {
166
+ return vue.createVNode("div", {
167
+ "class": this.ns.b("button")
168
+ }, [Array.isArray(this.currentVal) ? this.currentVal[1] : this.currentVal]);
144
169
  }
145
170
  });
146
171
  }
@@ -14,10 +14,13 @@ const IBizImageSelect = /* @__PURE__ */ vue.defineComponent({
14
14
  setup(props, {
15
15
  emit
16
16
  }) {
17
- var _a;
17
+ var _a, _b;
18
18
  const ns = vue3Util.useNamespace("image-select");
19
19
  const c = props.controller;
20
- const result = ((_a = c.editorParams) == null ? void 0 : _a.STOPPROPAGATION) !== "false";
20
+ let result = ((_a = c.editorParams) == null ? void 0 : _a.STOPPROPAGATION) !== "false";
21
+ if ((_b = c.editorParams) == null ? void 0 : _b.stoppropagation) {
22
+ result = c.editorParams.stoppropagation !== "false";
23
+ }
21
24
  const svg = vue.ref("");
22
25
  const {
23
26
  files
@@ -14,10 +14,13 @@ const IBizImageUpload = /* @__PURE__ */ vue.defineComponent({
14
14
  setup(props, {
15
15
  emit
16
16
  }) {
17
- var _a;
17
+ var _a, _b;
18
18
  const ns = vue3Util.useNamespace("image-upload");
19
19
  const c = props.controller;
20
- const result = ((_a = c.editorParams) == null ? void 0 : _a.STOPPROPAGATION) !== "false";
20
+ let result = ((_a = c.editorParams) == null ? void 0 : _a.STOPPROPAGATION) !== "false";
21
+ if ((_b = c.editorParams) == null ? void 0 : _b.stoppropagation) {
22
+ result = c.editorParams.stoppropagation !== "false";
23
+ }
21
24
  const {
22
25
  uploadUrl,
23
26
  headers,
@@ -146,7 +146,15 @@ class UploadEditorController extends runtime.EditorController {
146
146
  this.multiple = false;
147
147
  }
148
148
  if (this.editorParams) {
149
- const { isDrag, multiple, accept, uploadParams, exportParams } = this.editorParams;
149
+ const {
150
+ isDrag,
151
+ multiple,
152
+ accept,
153
+ uploadParams,
154
+ exportParams,
155
+ uploadparams,
156
+ exportparams
157
+ } = this.editorParams;
150
158
  if (isDrag) {
151
159
  this.isDrag = Boolean(isDrag);
152
160
  }
@@ -166,6 +174,16 @@ class UploadEditorController extends runtime.EditorController {
166
174
  );
167
175
  }
168
176
  }
177
+ if (uploadparams) {
178
+ try {
179
+ this.uploadParams = JSON.parse(uploadparams);
180
+ } catch (error) {
181
+ throw new core.RuntimeModelError(
182
+ uploadparams,
183
+ ibiz.i18n.t("editor.upload.uploadJsonFormatErr")
184
+ );
185
+ }
186
+ }
169
187
  if (exportParams) {
170
188
  try {
171
189
  this.exportParams = JSON.parse(exportParams);
@@ -176,6 +194,16 @@ class UploadEditorController extends runtime.EditorController {
176
194
  );
177
195
  }
178
196
  }
197
+ if (exportparams) {
198
+ try {
199
+ this.exportParams = JSON.parse(exportparams);
200
+ } catch (error) {
201
+ throw new core.RuntimeModelError(
202
+ exportparams,
203
+ ibiz.i18n.t("editor.upload.exportJsonFormatErr")
204
+ );
205
+ }
206
+ }
179
207
  }
180
208
  }
181
209
  /**
@@ -23,11 +23,18 @@ function useVanUpload(props, valueChange, c) {
23
23
  () => props.data,
24
24
  (newVal) => {
25
25
  if (newVal) {
26
+ const editorParams = { ...c.editorParams };
27
+ if (editorParams.uploadparams) {
28
+ editorParams.uploadParams = JSON.parse(editorParams.uploadparams);
29
+ }
30
+ if (editorParams.exportparams) {
31
+ editorParams.exportParams = JSON.parse(editorParams.exportparams);
32
+ }
26
33
  const urls = ibiz.util.file.calcFileUpDownUrl(
27
34
  c.context,
28
35
  c.params,
29
36
  newVal,
30
- c.editorParams
37
+ editorParams
31
38
  );
32
39
  uploadUrl.value = urls.uploadUrl;
33
40
  downloadUrl.value = urls.downloadUrl;
@@ -2,6 +2,8 @@
2
2
 
3
3
  var runtime = require('@ibiz-template/runtime');
4
4
  var vue = require('vue');
5
+ require('../util/index.cjs');
6
+ var viewStack = require('../util/store/view-stack/view-stack.cjs');
5
7
 
6
8
  "use strict";
7
9
  class IosPlatformProvider extends runtime.PlatformProviderBase {
@@ -34,6 +36,15 @@ class IosPlatformProvider extends runtime.PlatformProviderBase {
34
36
  true
35
37
  );
36
38
  }
39
+ /**
40
+ * 返回事件
41
+ *
42
+ * @memberof IosPlatformProvider
43
+ */
44
+ back() {
45
+ const { goBack } = viewStack.useViewStack();
46
+ goBack();
47
+ }
37
48
  }
38
49
 
39
50
  exports.IosPlatformProvider = IosPlatformProvider;
@@ -2,6 +2,8 @@
2
2
 
3
3
  var core = require('@ibiz-template/core');
4
4
  var runtime = require('@ibiz-template/runtime');
5
+ require('../util/index.cjs');
6
+ var viewStack = require('../util/store/view-stack/view-stack.cjs');
5
7
 
6
8
  "use strict";
7
9
  class WeChatOfficialPlatformProvider extends runtime.PlatformProviderBase {
@@ -24,6 +26,15 @@ class WeChatOfficialPlatformProvider extends runtime.PlatformProviderBase {
24
26
  }
25
27
  return super.download(url, name);
26
28
  }
29
+ /**
30
+ * 返回事件
31
+ *
32
+ * @memberof WeChatOfficialPlatformProvider
33
+ */
34
+ back() {
35
+ const { goBack } = viewStack.useViewStack();
36
+ goBack();
37
+ }
27
38
  }
28
39
 
29
40
  exports.WeChatOfficialPlatformProvider = WeChatOfficialPlatformProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/mob-vue3-components",
3
- "version": "0.7.41-alpha.17",
3
+ "version": "0.7.41-alpha.18",
4
4
  "description": "移动端组件库(vue3)",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.mjs",
@@ -28,13 +28,13 @@
28
28
  "@floating-ui/dom": "^1.5.3",
29
29
  "@ibiz-template-package/vs-tree-ex": "^0.1.1",
30
30
  "@ibiz-template/core": "0.7.41-alpha.28",
31
- "@ibiz-template/model-helper": "0.7.41-alpha.28",
32
- "@ibiz-template/runtime": "0.7.41-alpha.28",
31
+ "@ibiz-template/model-helper": "0.7.41-alpha.29",
32
+ "@ibiz-template/runtime": "0.7.41-alpha.29",
33
33
  "@ibiz-template/theme": "0.7.39",
34
- "@ibiz-template/vue3-util": "0.7.41-alpha.28",
34
+ "@ibiz-template/vue3-util": "0.7.41-alpha.29",
35
35
  "@ibiz-template/devtool": "0.0.12",
36
36
  "@ibiz/model-core": "^0.1.82",
37
- "@ibiz-template/mob-theme": "3.1.0",
37
+ "@ibiz-template/mob-theme": "3.1.1",
38
38
  "async-validator": "^4.2.5",
39
39
  "cherry-markdown": "^0.8.26",
40
40
  "dingtalk-jsapi": "^3.0.38",
@@ -1,2 +0,0 @@
1
- System.register(["vue","@ibiz-template/vue3-util","qx-util","cherry-markdown","@ibiz-template/core"],function($){"use strict";var C,r,u,s,c,k,I,f,U,M,P,N,m,w,z,O;return{setters:[function(n){C=n.defineComponent,r=n.createVNode,u=n.resolveComponent,s=n.ref,c=n.watch,k=n.onMounted,I=n.onUnmounted,f=n.nextTick},function(n){U=n.getEditorEmits,M=n.getMarkDownProps,P=n.useNamespace,N=n.useUIStore},function(n){m=n.createUUID},function(n){w=n.default},function(n){z=n.getAppCookie,O=n.CoreConst}],execute:function(){const n=$("default",C({name:"IBizMarkDown",props:M(),emits:U(),setup(a,{emit:V}){const j=P("markdown"),y=a.controller,l=s(""),i=s(null),v=s(null),A=m(),b=m(),D=s({[`${ibiz.env.tokenHeader}Authorization`]:`${ibiz.env.tokenPrefix}Bearer ${z(O.TOKEN)}`}),E=s(""),_=s(""),{UIStore:x}=N(),d=s(x.theme),B=s("editOnly"),g=s(""),q=s({});c(()=>a.data,e=>{if(e){const t=ibiz.util.file.calcFileUpDownUrl(y.context,y.params,e,y.editorParams);E.value=t.uploadUrl,_.value=t.downloadUrl}},{immediate:!0,deep:!0});const F=async(e,t)=>{const o=await ibiz.util.file.fileUpload(E.value,e,D.value),p=_.value.replace("%fileId%",o.fileid);t(p)},K=()=>{var e;return(e=i.value)==null?void 0:e.getHtml()},h=()=>{var e;return(e=i.value)==null?void 0:e.getMarkdown()},T=e=>{var t,o;(t=i.value)==null||t.setMarkdown(e,!1),(o=v.value)==null||o.setMarkdown(e,!1)},W=e=>{var t;(t=v.value)==null||t.setMarkdown(e,!0)};c(()=>a.value,(e,t)=>{e!==t&&(e?l.value=e:l.value="")},{immediate:!0}),c(l,(e,t)=>{const o=h();e!==t&&o!==e&&T(e)});const J=e=>{W(h()),V("change",h())},L=(e,t)=>({[e]:t}),S={value:l.value,theme:d.value,fileUpload:F,emoji:{useUnicode:!0},header:{anchorStyle:"autonumber"},editor:{height:"100%",defaultModel:B.value,codemirror:{autofocus:!1}},toolbars:{theme:d.value,toolbar:["switchModel","bold","italic","strikethrough","header",{insert:["image","audio","video","link","hr","br","code","formula","toc","table","pdf","word"]},"settings"]}},Q=()=>{const e={id:A,...S,callback:{afterChange:J,beforeImageMounted:L},value:l.value};f(()=>{i.value=new w(e)})},R=()=>{const e={id:b,...S,editor:{defaultModel:"previewOnly"}};f(()=>{v.value=new w(e)})};k(()=>{R()}),c(()=>x.theme,e=>{var t;d.value=e,(t=i.value)==null||t.setTheme(d.value)}),I(()=>{i.value=null,v.value=null});const G=s(!1),X=e=>{const t={type:"",url:""};return e.nodeName==="A"?(t.type="A",t.url=e.hash):e.parentNode&&e.parentNode.nodeName==="A"?(t.type="A",t.url=e.parentNode.hash):e.nodeName==="IMG"&&(t.type="IMG",t.url=e.src),t};return{ns:j,currentVal:l,id:A,previewId:b,editor:i,headers:D,theme:d,defaultModel:B,cssVars:q,getCherryHtml:K,getCherryContent:h,setCherryContent:T,openPicker:async e=>{const{target:t}=e;if(t){const o=X(t);if(o.type==="A"&&o.url.startsWith("#")){e.preventDefault(),e.stopPropagation();const p=o.url.slice(1);if(p){if(document.getElementById(b)){const H=document.getElementById(p);H&&H.scrollIntoView({behavior:"smooth"})}return}}if(o.type==="IMG"&&o.url){g.value=o.url;return}}a.disabled||a.readonly||(G.value=!0,i.value||Q())},isOpen:G,previewImage:g,handlePreviewClose:()=>{g.value=""}}},render(){return r("div",{class:[this.ns.b(),this.disabled?this.ns.m("disabled"):"",this.readonly?this.ns.m("readonly"):""]},[r(u("van-field"),{readonly:!0,disabled:this.disabled,onClick:this.openPicker},{input:r("div",{id:this.previewId,style:this.cssVars,class:this.ns.b("cherry")},null)}),r(u("van-popup"),{class:this.ns.b("image-popup"),show:!!this.previewImage,"close-on-popstate":!0,onClose:this.handlePreviewClose},{default:()=>[r(u("iBizPreviewImage"),{url:this.previewImage},null)]}),r(u("van-dialog"),{show:this.isOpen,"onUpdate:show":a=>this.isOpen=a,className:this.ns.b("dialog"),"close-on-popstate":!0},{default:()=>r("div",{id:this.id,style:this.cssVars,class:[this.ns.b("cherry"),this.ns.is("hidden",!this.isOpen)]},null)})])}}))}}});
2
- //# sourceMappingURL=ibiz-markdown-editor-B7D3K0dJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ibiz-markdown-editor-B7D3K0dJ.js","sources":["../src/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.tsx"],"sourcesContent":["import {\n defineComponent,\n nextTick,\n onMounted,\n onUnmounted,\n Ref,\n ref,\n watch,\n} from 'vue';\nimport {\n getMarkDownProps,\n getEditorEmits,\n useUIStore,\n useNamespace,\n} from '@ibiz-template/vue3-util';\nimport { createUUID } from 'qx-util';\nimport Cherry from 'cherry-markdown';\nimport { CoreConst, getAppCookie } from '@ibiz-template/core';\nimport { MarkDownEditorController } from '../markdown-editor.controller';\nimport './ibiz-markdown-editor.scss';\n\n/**\n * 移动端Markdown编辑框\n * @primary\n * @description 基于cherry-markdown深度定制可扩展的Markdown编辑器,用于Markdown文档编辑。支持编辑器类型包含:`移动端Markdown编辑框`\n * @editorparams {name:uploadparams,parameterType:IData,defaultvalue:{},description:上传参数}\n * @editorparams {name:exportparams,parameterType:IData,defaultvalue:{},description:下载参数}\n * @ignoreprops autoFocus | overflowMode\n * @ignoreemits infoTextChange | enter\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst IBizMarkDown: any = defineComponent({\n name: 'IBizMarkDown',\n props: getMarkDownProps<MarkDownEditorController>(),\n emits: getEditorEmits(),\n setup(props, { emit }) {\n const ns = useNamespace('markdown');\n\n const c = props.controller!;\n\n const currentVal = ref<string>('');\n\n const editor = ref<Cherry | null>(null);\n const editorPreview = ref<Cherry | null>(null);\n\n const id = createUUID();\n const previewId = createUUID();\n\n // 请求头\n const headers: Ref<IData> = ref({\n [`${ibiz.env.tokenHeader}Authorization`]: `${\n ibiz.env.tokenPrefix\n }Bearer ${getAppCookie(CoreConst.TOKEN)}`,\n });\n\n // 上传文件路径\n const uploadUrl: Ref<string> = ref('');\n\n // 下载文件路径\n const downloadUrl: Ref<string> = ref('');\n\n // 编辑器主题\n const { UIStore } = useUIStore();\n const theme = ref(UIStore.theme);\n\n // 编辑器模式\n const defaultModel = ref('editOnly');\n\n // 预览态预览图片地址\n const previewImage: Ref<string> = ref('');\n\n // 样式变量\n const cssVars = ref({});\n\n // data响应式变更基础路径\n watch(\n () => props.data,\n newVal => {\n if (newVal) {\n const urls = ibiz.util.file.calcFileUpDownUrl(\n c.context,\n c.params,\n newVal,\n c.editorParams,\n );\n uploadUrl.value = urls.uploadUrl;\n downloadUrl.value = urls.downloadUrl;\n }\n },\n { immediate: true, deep: true },\n );\n\n // // 自定义图片上传\n const fileUpload = async (file: Blob, callback: (_url: string) => void) => {\n const data = await ibiz.util.file.fileUpload(\n uploadUrl.value,\n file,\n headers.value,\n );\n const url = downloadUrl.value.replace('%fileId%', data.fileid);\n callback(url);\n };\n\n // 获取渲染后html内容\n const getCherryHtml = () => {\n const result = editor.value?.getHtml();\n return result;\n };\n\n // 获取markdown内容\n const getCherryContent = () => {\n const result = editor.value?.getMarkdown();\n return result;\n };\n\n // 设置markdown内容\n const setCherryContent = (val: string) => {\n editor.value?.setMarkdown(val, false);\n editorPreview.value?.setMarkdown(val, false);\n };\n const setCherryContent2 = (val: string) => {\n editorPreview.value?.setMarkdown(val, true);\n };\n watch(\n () => props.value,\n (newVal, oldVal) => {\n if (newVal !== oldVal) {\n if (!newVal) {\n currentVal.value = '';\n } else {\n currentVal.value = newVal;\n }\n }\n },\n { immediate: true },\n );\n\n watch(currentVal, (newVal, oldVal) => {\n const content = getCherryContent();\n if (newVal !== oldVal && content !== newVal) {\n setCherryContent(newVal);\n }\n });\n\n // 变更事件回调\n const afterChange = (_e: IData) => {\n setCherryContent2(getCherryContent()!);\n emit('change', getCherryContent());\n };\n\n // 图片加载回调\n const beforeImageMounted = (e: string, src: string) => {\n return { [e]: src };\n };\n\n const editorOpts = {\n value: currentVal.value,\n theme: theme.value,\n fileUpload,\n emoji: {\n useUnicode: true,\n },\n header: {\n anchorStyle: 'autonumber',\n },\n editor: {\n // 编辑器的高度,默认100%,如果挂载点存在内联设置的height则以内联样式为主\n height: '100%',\n // defaultModel 编辑器初始化后的默认模式,一共有三种模式:1、双栏编辑预览模式;2、纯编辑模式;3、预览模式\n // edit&preview: 双栏编辑预览模式\n // editOnly: 纯编辑模式(没有预览,可通过toolbar切换成双栏或预览模式)\n // previewOnly: 预览模式(没有编辑框,toolbar只显示“返回编辑”按钮,可通过toolbar切换成编辑模式)\n defaultModel: defaultModel.value,\n codemirror: {\n // 是否自动focus 默认为true\n autofocus: false,\n },\n },\n toolbars: {\n theme: theme.value,\n toolbar: [\n 'switchModel',\n 'bold',\n 'italic',\n 'strikethrough',\n 'header',\n // 'list',\n {\n insert: [\n 'image',\n 'audio',\n 'video',\n 'link',\n 'hr',\n 'br',\n 'code',\n 'formula',\n 'toc',\n 'table',\n 'pdf',\n 'word',\n ],\n },\n 'settings',\n ],\n },\n };\n\n // 默认编辑态\n const editorInit = () => {\n const cherryOptions = {\n id,\n ...editorOpts,\n callback: {\n afterChange,\n beforeImageMounted,\n },\n value: currentVal.value,\n };\n nextTick(() => {\n editor.value = new Cherry(cherryOptions as IData);\n });\n };\n\n // 初始界面预览态\n const editorPreviewInit = () => {\n const cherryOptions = {\n id: previewId,\n ...editorOpts,\n editor: { defaultModel: 'previewOnly' },\n };\n nextTick(() => {\n editorPreview.value = new Cherry(cherryOptions as IData);\n });\n };\n\n onMounted(() => {\n editorPreviewInit();\n });\n\n watch(\n () => UIStore.theme,\n newVal => {\n theme.value = newVal;\n editor.value?.setTheme(theme.value);\n },\n );\n\n onUnmounted(() => {\n editor.value = null;\n editorPreview.value = null;\n });\n const isOpen = ref(false);\n\n // 计算触发元素类型\n const calcTargetType = (\n target: HTMLElement,\n ): {\n type: string;\n url: string;\n } => {\n const result = {\n type: '',\n url: '',\n };\n if (target.nodeName === 'A') {\n result.type = 'A';\n result.url = (target as HTMLAnchorElement).hash;\n } else if (target.parentNode && target.parentNode.nodeName === 'A') {\n result.type = 'A';\n result.url = (target.parentNode as HTMLAnchorElement).hash;\n } else if (target.nodeName === 'IMG') {\n result.type = 'IMG';\n result.url = (target as HTMLImageElement).src;\n }\n return result;\n };\n\n const openPicker = async (event: TouchEvent) => {\n // 如果点击项是a标签,并且有href,值为#开头,且后续值为页面内的元素的id,就走页面滚动导航\n // 如果是图片,则进行放大预览\n // 其他情况,就走打开编辑界面\n const { target } = event;\n if (target) {\n const result = calcTargetType(target as HTMLElement);\n if (result.type === 'A' && result.url.startsWith('#')) {\n // 点击a标签,本页面内滑动,阻止其他变化\n event.preventDefault();\n event.stopPropagation();\n const targetid = result.url.slice(1);\n if (targetid) {\n const preview = document.getElementById(previewId);\n if (preview) {\n const anchor = document.getElementById(targetid);\n if (anchor) {\n anchor.scrollIntoView({ behavior: 'smooth' });\n }\n }\n return;\n }\n }\n if (result.type === 'IMG' && result.url) {\n // 点击图片,展开预览\n previewImage.value = result.url;\n return;\n }\n }\n if (props.disabled || props.readonly) {\n return;\n }\n // 其他情况打开编辑态\n isOpen.value = true;\n if (!editor.value) {\n editorInit();\n }\n };\n\n // 关闭图片预览时清除预览图片地址\n const handlePreviewClose = () => {\n previewImage.value = '';\n };\n\n return {\n ns,\n currentVal,\n id,\n previewId,\n editor,\n headers,\n theme,\n defaultModel,\n cssVars,\n getCherryHtml,\n getCherryContent,\n setCherryContent,\n openPicker,\n isOpen,\n previewImage,\n handlePreviewClose,\n };\n },\n render() {\n return (\n <div\n class={[\n this.ns.b(),\n this.disabled ? this.ns.m('disabled') : '',\n this.readonly ? this.ns.m('readonly') : '',\n ]}\n >\n <van-field readonly disabled={this.disabled} onClick={this.openPicker}>\n {{\n input: (\n <div\n id={this.previewId}\n style={this.cssVars}\n class={this.ns.b('cherry')}\n ></div>\n ),\n }}\n </van-field>\n\n <van-popup\n class={this.ns.b('image-popup')}\n show={!!this.previewImage}\n close-on-popstate={true}\n onClose={this.handlePreviewClose}\n >\n <iBizPreviewImage url={this.previewImage}></iBizPreviewImage>\n </van-popup>\n <van-dialog\n v-model:show={this.isOpen}\n className={this.ns.b('dialog')}\n close-on-popstate={true}\n >\n {{\n default: () => {\n return (\n <div\n id={this.id}\n style={this.cssVars}\n class={[\n this.ns.b('cherry'),\n this.ns.is('hidden', !this.isOpen),\n ]}\n ></div>\n );\n },\n }}\n </van-dialog>\n </div>\n );\n },\n});\n\nexport default IBizMarkDown;\n"],"names":["IBizMarkDown","exports","defineComponent","getMarkDownProps","getEditorEmits","props","emit","ns","useNamespace","c","currentVal","ref","editorPreview","controller","UIStore","useUIStore","id","createUUID","previewId","cssVars","watch","headers","newVal","ibiz","urls","downloadUrl","fileUpload","file","callback","data","uploadUrl","_a","previewImage","editor","setCherryContent","val","_b","util","calcFileUpDownUrl","params","immediate","deep","oldVal","getCherryHtml","result","getHtml","content","getCherryContent","setCherryContent2","getMarkdown","editorOpts","afterChange","beforeImageMounted","value","emoji","useUnicode","cherryOptions","header","anchorStyle","height","nextTick","Cherry","codemirror","editorPreviewInit","autofocus","toolbars","theme","onMounted","editorInit","isOpen","target","defaultModel","behavior","event","onUnmounted","anchor","calcTargetType","type","parentNode","url","src","openPicker","_createVNode","_resolveComponent","$event","handlePreviewClose"],"mappings":"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"}