widget.qw 1.0.70 → 1.0.72

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.
@@ -17589,10 +17589,10 @@ var __async = (__this, __arguments, generator) => {
17589
17589
  };
17590
17590
  const _hoisted_6$6 = /* @__PURE__ */ vue.createTextVNode(" \u53D6\u6D88 ");
17591
17591
  const _hoisted_7$6 = /* @__PURE__ */ vue.createTextVNode(" \u786E\u5B9A ");
17592
- const _hoisted_8$4 = {
17592
+ const _hoisted_8$5 = {
17593
17593
  class: "scroll-container"
17594
17594
  };
17595
- const _hoisted_9$2 = {
17595
+ const _hoisted_9$3 = {
17596
17596
  class: "cell-content"
17597
17597
  };
17598
17598
  const _hoisted_10$2 = ["onClick"];
@@ -17894,7 +17894,7 @@ var __async = (__this, __arguments, generator) => {
17894
17894
  clearable: "",
17895
17895
  placeholder: "\u8BF7\u8F93\u5165\u90E8\u95E8\u540D\u79F0\u641C\u7D22",
17896
17896
  class: "search-field"
17897
- }, null, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$4, [vue.createVNode(_component_van_cell_group, null, {
17897
+ }, null, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$5, [vue.createVNode(_component_van_cell_group, null, {
17898
17898
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(filteredDepartments), (item, index) => {
17899
17899
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
17900
17900
  key: index,
@@ -17903,7 +17903,7 @@ var __async = (__this, __arguments, generator) => {
17903
17903
  }, {
17904
17904
  title: vue.withCtx(() => {
17905
17905
  var _a, _b;
17906
- return [vue.createElementVNode("div", _hoisted_9$2, [vue.createElementVNode("div", {
17906
+ return [vue.createElementVNode("div", _hoisted_9$3, [vue.createElementVNode("div", {
17907
17907
  class: vue.normalizeClass(["circle-selector", {
17908
17908
  "selected": ((_a = tempSelectedDepartment.value) == null ? void 0 : _a.id) === item.id
17909
17909
  }]),
@@ -17951,8 +17951,8 @@ var __async = (__this, __arguments, generator) => {
17951
17951
  class: "header-right"
17952
17952
  };
17953
17953
  const _hoisted_7$5 = /* @__PURE__ */ vue.createTextVNode("\u6E05\u7A7A");
17954
- const _hoisted_8$3 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
17955
- const _hoisted_9$1 = {
17954
+ const _hoisted_8$4 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
17955
+ const _hoisted_9$2 = {
17956
17956
  key: 0,
17957
17957
  class: "select-all-container"
17958
17958
  };
@@ -18353,9 +18353,9 @@ var __async = (__this, __arguments, generator) => {
18353
18353
  onClick: confirmSelection,
18354
18354
  class: "confirm-btn"
18355
18355
  }, {
18356
- default: vue.withCtx(() => [_hoisted_8$3]),
18356
+ default: vue.withCtx(() => [_hoisted_8$4]),
18357
18357
  _: 1
18358
- })])]), __props.mode === "multiple" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$1, [vue.createVNode(_component_van_checkbox, {
18358
+ })])]), __props.mode === "multiple" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$2, [vue.createVNode(_component_van_checkbox, {
18359
18359
  shape: "square",
18360
18360
  modelValue: isAllChecked.value,
18361
18361
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => isAllChecked.value = $event),
@@ -18459,7 +18459,7 @@ var __async = (__this, __arguments, generator) => {
18459
18459
  }
18460
18460
  };
18461
18461
  var UserSelector = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-6c4b4fc8"]]);
18462
- var image_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-b587c824] .label {\n color: #000 !important;\n}\n[data-v-b587c824] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18462
+ var image_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-16be97a4] .label {\n color: #000 !important;\n}\n[data-v-16be97a4] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18463
18463
  const _hoisted_1$d = {
18464
18464
  class: "image-box"
18465
18465
  };
@@ -18568,9 +18568,10 @@ var __async = (__this, __arguments, generator) => {
18568
18568
  accept: "image/jpeg,image/png",
18569
18569
  afterRead: onAfterRead,
18570
18570
  disabled: vue.unref(isDisabled),
18571
- deletable: !vue.unref(isDisabled),
18572
- "before-delete": onBeforeDelete
18573
- }, null, 8, ["modelValue", "capture", "disabled", "deletable"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18571
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18572
+ "before-delete": onBeforeDelete,
18573
+ "show-upload": !vue.unref(isReadonly)
18574
+ }, null, 8, ["modelValue", "capture", "disabled", "deletable", "show-upload"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18574
18575
  key: 1,
18575
18576
  modelValue: files.value,
18576
18577
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
@@ -18578,16 +18579,17 @@ var __async = (__this, __arguments, generator) => {
18578
18579
  accept: "image/jpeg,image/png",
18579
18580
  afterRead: onAfterRead,
18580
18581
  disabled: vue.unref(isDisabled),
18581
- deletable: !vue.unref(isDisabled),
18582
- "before-delete": onBeforeDelete
18583
- }, null, 8, ["modelValue", "disabled", "deletable"]))])]),
18582
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18583
+ "before-delete": onBeforeDelete,
18584
+ "show-upload": !vue.unref(isReadonly)
18585
+ }, null, 8, ["modelValue", "disabled", "deletable", "show-upload"]))])]),
18584
18586
  _: 1
18585
18587
  }, 8, ["label", "required", "rules", "placeholder"])) : vue.createCommentVNode("", true);
18586
18588
  };
18587
18589
  }
18588
18590
  };
18589
- var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-b587c824"]]);
18590
- var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-1b4c046a] {\n text-align: center;\n}\n.widget .btn[data-v-1b4c046a] {\n position: fixed;\n bottom: 1rem;\n left: 0;\n right: 0;\n margin: auto auto;\n color: white;\n font-size: 14px;\n background: rgb(58, 136, 255);\n padding: 8px 35px;\n width: 100px;\n text-align: center;\n display: inline-block;\n border-radius: 2px;\n}")();
18591
+ var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-16be97a4"]]);
18592
+ var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-8fca1c96] {\n text-align: center;\n}\n.widget .btn[data-v-8fca1c96] {\n position: fixed;\n bottom: 1rem;\n left: 0;\n right: 0;\n margin: auto auto;\n color: white;\n font-size: 14px;\n background: rgb(58, 136, 255);\n padding: 8px 35px;\n width: 100px;\n text-align: center;\n display: inline-block;\n border-radius: 2px;\n}")();
18591
18593
  const _hoisted_1$c = {
18592
18594
  class: "image-box"
18593
18595
  };
@@ -18709,41 +18711,47 @@ var __async = (__this, __arguments, generator) => {
18709
18711
  capture: props.capture,
18710
18712
  accept: "image/jpeg,image/png",
18711
18713
  disabled: vue.unref(isDisabled),
18712
- deletable: !vue.unref(isDisabled),
18714
+ deletable: !vue.unref(isRequired) && !vue.unref(isDisabled),
18713
18715
  afterRead: onAfterRead,
18714
- "before-delete": onBeforeDelete
18715
- }, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18716
+ "before-delete": onBeforeDelete,
18717
+ "show-upload": !vue.unref(isReadonly)
18718
+ }, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable", "show-upload"])) : (vue.openBlock(), vue.createBlock(_component_van_uploader, {
18716
18719
  key: 1,
18717
18720
  modelValue: files.value,
18718
18721
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
18719
18722
  "max-count": props.max,
18720
18723
  accept: "image/jpeg,image/png",
18721
18724
  disabled: vue.unref(isDisabled),
18722
- deletable: !vue.unref(isDisabled),
18725
+ deletable: !vue.unref(isReadonly) && !vue.unref(isDisabled),
18723
18726
  afterRead: onAfterRead,
18724
- "before-delete": onBeforeDelete
18725
- }, null, 8, ["modelValue", "max-count", "disabled", "deletable"]))])]),
18727
+ "before-delete": onBeforeDelete,
18728
+ "show-upload": !vue.unref(isReadonly)
18729
+ }, null, 8, ["modelValue", "max-count", "disabled", "deletable", "show-upload"]))])]),
18726
18730
  _: 1
18727
18731
  }, 8, ["label", "required", "rules", "placeholder"]);
18728
18732
  };
18729
18733
  }
18730
18734
  };
18731
- var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-1b4c046a"]]);
18732
- var FilePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-7352dfa0] .label {\n color: #000 !important;\n}\n[data-v-7352dfa0] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18735
+ var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-8fca1c96"]]);
18736
+ var FilePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-0c20dca4] .label {\n color: #000 !important;\n}\n[data-v-0c20dca4] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
18733
18737
  const _hoisted_1$b = {
18734
- class: "image-box"
18738
+ class: "file-box"
18735
18739
  };
18736
18740
  const _sfc_main$h = {
18737
18741
  __name: "FilePicker",
18738
18742
  props: {
18739
18743
  modelValue: {
18740
- type: String,
18741
- default: ""
18744
+ type: [String, Array],
18745
+ default: null
18742
18746
  },
18743
18747
  label: {
18744
18748
  type: String,
18745
18749
  default: ""
18746
18750
  },
18751
+ multiple: {
18752
+ type: Boolean,
18753
+ default: false
18754
+ },
18747
18755
  required: {
18748
18756
  type: Boolean,
18749
18757
  default: false
@@ -18790,22 +18798,44 @@ var __async = (__this, __arguments, generator) => {
18790
18798
  file: file.file
18791
18799
  };
18792
18800
  return util.file_upload(params).then((res) => {
18793
- modelValue.value = res.data;
18801
+ if (props.multiple)
18802
+ modelValue.value = [...modelValue.value || [], res.data];
18803
+ else
18804
+ modelValue.value = res.data;
18794
18805
  return Promise.resolve(file);
18795
18806
  });
18796
18807
  });
18797
18808
  const onBeforeDelete = (e) => {
18798
- modelValue.value = "";
18809
+ if (props.multiple) {
18810
+ let newUrls = props.modelValue.filter((item) => {
18811
+ return item != e.url;
18812
+ });
18813
+ emit("update:modelValue", newUrls);
18814
+ } else {
18815
+ modelValue.value = "";
18816
+ }
18799
18817
  return Promise.resolve(e);
18800
18818
  };
18801
18819
  vue.watch(() => props.modelValue, (newVal, oldVal) => {
18802
- if (!props.modelValue) {
18803
- files.value = [];
18804
- return;
18820
+ if (props.multiple) {
18821
+ if (!props.modelValue || props.modelValue.length < 1) {
18822
+ files.value = [];
18823
+ return;
18824
+ }
18825
+ files.value = props.modelValue.map((item) => {
18826
+ return {
18827
+ url: item
18828
+ };
18829
+ });
18830
+ } else {
18831
+ if (!props.modelValue) {
18832
+ files.value = [];
18833
+ return;
18834
+ }
18835
+ files.value = [{
18836
+ url: props.modelValue
18837
+ }];
18805
18838
  }
18806
- files.value = [{
18807
- url: props.modelValue
18808
- }];
18809
18839
  }, {
18810
18840
  immediate: true
18811
18841
  });
@@ -18824,20 +18854,20 @@ var __async = (__this, __arguments, generator) => {
18824
18854
  input: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$b, [vue.createVNode(_component_van_uploader, {
18825
18855
  modelValue: files.value,
18826
18856
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => files.value = $event),
18827
- "max-count": 1,
18857
+ "max-count": props.max,
18828
18858
  afterRead: onAfterRead,
18829
18859
  disabled: vue.unref(isDisabled),
18830
18860
  accept: props.accept,
18831
18861
  "upload-icon": "plus",
18832
18862
  deletable: !vue.unref(isDisabled),
18833
18863
  "before-delete": onBeforeDelete
18834
- }, null, 8, ["modelValue", "disabled", "accept", "deletable"])])]),
18864
+ }, null, 8, ["modelValue", "max-count", "disabled", "accept", "deletable"])])]),
18835
18865
  _: 1
18836
18866
  }, 8, ["label", "required", "rules", "placeholder"])) : vue.createCommentVNode("", true);
18837
18867
  };
18838
18868
  }
18839
18869
  };
18840
- var FilePicker = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-7352dfa0"]]);
18870
+ var FilePicker = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-0c20dca4"]]);
18841
18871
  var SingleUserSelector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-popup[data-v-a489ca4c] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.department-selector[data-v-a489ca4c] {\r\n padding: 10px;\n}\n.search-buttons[data-v-a489ca4c] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-a489ca4c] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-a489ca4c] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-a489ca4c] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.picker-header[data-v-a489ca4c] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-a489ca4c] {\r\n flex: 1;\r\n font-size: 14px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-a489ca4c] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-a489ca4c] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-a489ca4c] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\r\n")();
18842
18872
  const _hoisted_1$a = {
18843
18873
  class: "department-selector"
@@ -18856,7 +18886,7 @@ var __async = (__this, __arguments, generator) => {
18856
18886
  };
18857
18887
  const _hoisted_6$4 = /* @__PURE__ */ vue.createTextVNode("\u6E05\u7A7A");
18858
18888
  const _hoisted_7$4 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
18859
- const _hoisted_8$2 = {
18889
+ const _hoisted_8$3 = {
18860
18890
  class: "scroll-container"
18861
18891
  };
18862
18892
  const _sfc_main$g = {
@@ -19158,7 +19188,7 @@ var __async = (__this, __arguments, generator) => {
19158
19188
  onClick: handleSearch
19159
19189
  }, "\u641C\u7D22")]),
19160
19190
  _: 1
19161
- }, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$2, [vue.createVNode(_component_van_cell_group, null, {
19191
+ }, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_8$3, [vue.createVNode(_component_van_cell_group, null, {
19162
19192
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(departments), (department) => {
19163
19193
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
19164
19194
  key: department.id,
@@ -19212,7 +19242,7 @@ var __async = (__this, __arguments, generator) => {
19212
19242
  };
19213
19243
  const _hoisted_6$3 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
19214
19244
  const _hoisted_7$3 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
19215
- const _hoisted_8$1 = {
19245
+ const _hoisted_8$2 = {
19216
19246
  class: "scroll-container"
19217
19247
  };
19218
19248
  const _sfc_main$f = {
@@ -19430,7 +19460,7 @@ var __async = (__this, __arguments, generator) => {
19430
19460
  onClick: onSearch
19431
19461
  }, "\u641C\u7D22")]),
19432
19462
  _: 1
19433
- }, 8, ["modelValue", "onClear", "onCancel"]), vue.createElementVNode("div", _hoisted_8$1, [vue.createVNode(_component_van_cell_group, null, {
19463
+ }, 8, ["modelValue", "onClear", "onCancel"]), vue.createElementVNode("div", _hoisted_8$2, [vue.createVNode(_component_van_cell_group, null, {
19434
19464
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(subDepts), (dept) => {
19435
19465
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
19436
19466
  key: dept.id,
@@ -19789,7 +19819,7 @@ var __async = (__this, __arguments, generator) => {
19789
19819
  }
19790
19820
  };
19791
19821
  var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-107e26c3"]]);
19792
- var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-68bdd6bc] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-68bdd6bc] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-68bdd6bc] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-68bdd6bc] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-68bdd6bc] {\n margin-right: 1px;\n}\n[data-v-68bdd6bc] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-68bdd6bc] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-68bdd6bc] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-68bdd6bc] .van-cell {\n padding: 2px 10px !important;\n}")();
19822
+ var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-5f12f3e8] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-5f12f3e8] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-5f12f3e8] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-5f12f3e8] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-5f12f3e8] {\n margin-right: 1px;\n}\n[data-v-5f12f3e8] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-5f12f3e8] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-5f12f3e8] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-5f12f3e8] .van-cell {\n padding: 2px 10px !important;\n}")();
19793
19823
  const _hoisted_1$6 = {
19794
19824
  class: "widget"
19795
19825
  };
@@ -19913,13 +19943,13 @@ var __async = (__this, __arguments, generator) => {
19913
19943
  border: false,
19914
19944
  key: i
19915
19945
  }, null, 8, ["title", "value"]);
19916
- }), 128))]),
19917
- _: 1
19946
+ }), 128)), vue.renderSlot(_ctx.$slots, "foot", {}, void 0, true)]),
19947
+ _: 3
19918
19948
  })]);
19919
19949
  };
19920
19950
  }
19921
19951
  };
19922
- var BillCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-68bdd6bc"]]);
19952
+ var BillCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-5f12f3e8"]]);
19923
19953
  const _sfc_main$a = {
19924
19954
  __name: "YearDropdown",
19925
19955
  props: {
@@ -20452,10 +20482,10 @@ var __async = (__this, __arguments, generator) => {
20452
20482
  };
20453
20483
  const _hoisted_6$1 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
20454
20484
  const _hoisted_7$1 = /* @__PURE__ */ vue.createTextVNode("\u786E\u5B9A");
20455
- const _hoisted_8 = {
20485
+ const _hoisted_8$1 = {
20456
20486
  class: "scroll-container"
20457
20487
  };
20458
- const _hoisted_9 = {
20488
+ const _hoisted_9$1 = {
20459
20489
  class: "cell-content"
20460
20490
  };
20461
20491
  const _hoisted_10 = ["onClick"];
@@ -20670,12 +20700,12 @@ var __async = (__this, __arguments, generator) => {
20670
20700
  onClick: onSearch
20671
20701
  }, "\u641C\u7D22")]),
20672
20702
  _: 1
20673
- }, 8, ["modelValue", "placeholder"]), vue.createElementVNode("div", _hoisted_8, [vue.createVNode(_component_van_cell_group, null, {
20703
+ }, 8, ["modelValue", "placeholder"]), vue.createElementVNode("div", _hoisted_8$1, [vue.createVNode(_component_van_cell_group, null, {
20674
20704
  default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(optionNodes), (item, i) => {
20675
20705
  return vue.openBlock(), vue.createBlock(_component_van_cell, {
20676
20706
  key: i
20677
20707
  }, vue.createSlots({
20678
- title: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_9, [item.canCheck ? (vue.openBlock(), vue.createElementBlock("div", {
20708
+ title: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_9$1, [item.canCheck ? (vue.openBlock(), vue.createElementBlock("div", {
20679
20709
  key: 0,
20680
20710
  class: "circle-selector",
20681
20711
  onClick: vue.withModifiers(($event) => onToggle(item), ["stop"])
@@ -20983,7 +21013,7 @@ var __async = (__this, __arguments, generator) => {
20983
21013
  }
20984
21014
  };
20985
21015
  var SingleApiPicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-0c8e09c0"]]);
20986
- var ObjsEditor_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-7359377c] {\n background: #fff;\n box-sizing: border-box;\n height: 100%;\n text-align: left;\n font-size: 12px;\n}\n.option[data-v-7359377c] {\n margin: 0 8px 8px 0;\n padding: 5px 10px;\n border-radius: 6px;\n border: 2px solid #e1e1e1;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n color: #666;\n display: inline-block;\n position: relative;\n}\n[data-v-7359377c] .van-field__label {\n margin: auto;\n}\n[data-v-7359377c] .van-cell {\n font-size: 12px;\n padding: 5px 5px;\n}\n[data-v-7359377c] .van-icon {\n font-size: 12px;\n}\n[data-v-7359377c] .van-popup .van-cell {\n padding: 5px 25px;\n}")();
21016
+ var ObjsEditor_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-1fa437e7] {\n background: #fff;\n box-sizing: border-box;\n height: 100%;\n text-align: left;\n font-size: 12px;\n}\n.option[data-v-1fa437e7] {\n margin: 0 8px 8px 0;\n padding: 5px 10px;\n border-radius: 6px;\n border: 2px solid #e1e1e1;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n color: #666;\n display: inline-block;\n position: relative;\n}\n[data-v-1fa437e7] .van-field__label {\n margin: auto;\n}\n[data-v-1fa437e7] .van-cell {\n font-size: 12px;\n padding: 5px 5px;\n}\n[data-v-1fa437e7] .van-icon {\n font-size: 12px;\n}\n[data-v-1fa437e7] .van-popup .van-cell {\n padding: 5px 25px;\n}")();
20987
21017
  const _hoisted_1 = {
20988
21018
  class: "widget-box"
20989
21019
  };
@@ -21000,13 +21030,19 @@ var __async = (__this, __arguments, generator) => {
21000
21030
  }
21001
21031
  };
21002
21032
  const _hoisted_4 = {
21033
+ key: 0
21034
+ };
21035
+ const _hoisted_5 = {
21036
+ key: 1
21037
+ };
21038
+ const _hoisted_6 = {
21003
21039
  style: {
21004
21040
  "display": "flex",
21005
21041
  "flex-direction": "column",
21006
21042
  "cursor": "pointer"
21007
21043
  }
21008
21044
  };
21009
- const _hoisted_5 = {
21045
+ const _hoisted_7 = {
21010
21046
  style: {
21011
21047
  "margin": "16px",
21012
21048
  "display": "flex",
@@ -21014,8 +21050,8 @@ var __async = (__this, __arguments, generator) => {
21014
21050
  "justify-content": "center"
21015
21051
  }
21016
21052
  };
21017
- const _hoisted_6 = /* @__PURE__ */ vue.createTextVNode("\u4FDD\u5B58");
21018
- const _hoisted_7 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
21053
+ const _hoisted_8 = /* @__PURE__ */ vue.createTextVNode("\u4FDD\u5B58");
21054
+ const _hoisted_9 = /* @__PURE__ */ vue.createTextVNode("\u53D6\u6D88");
21019
21055
  const _sfc_main = {
21020
21056
  __name: "ObjsEditor",
21021
21057
  props: {
@@ -21110,7 +21146,9 @@ var __async = (__this, __arguments, generator) => {
21110
21146
  var _a, _b, _c, _d;
21111
21147
  console.log("key2value", key, item[key], item);
21112
21148
  let v = item[key];
21113
- if (Array.isArray(v)) {
21149
+ if (props.schema[key].type === "Images") {
21150
+ return (v || []).join(",");
21151
+ } else if (Array.isArray(v)) {
21114
21152
  let formatValues = v.map((e) => {
21115
21153
  let kvs = Object.keys(e).map((k) => {
21116
21154
  var _a2, _b2, _c2, _d2;
@@ -21217,8 +21255,12 @@ var __async = (__this, __arguments, generator) => {
21217
21255
  "padding": "2px 2px",
21218
21256
  "font-size": "12px"
21219
21257
  }
21220
- }, vue.toDisplayString(`${key2name(k)}:${key2value(k, item)}`), 1);
21221
- }), 128))]), vue.createElementVNode("div", _hoisted_4, [props.schema.auth != "readonly" && props.auth != "readonly" && props.auth != "disabled" ? (vue.openBlock(), vue.createBlock(_component_van_icon, {
21258
+ }, [props.schema[k].type != "Images" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, vue.toDisplayString(`${key2name(k)}:${key2value(k, item)}`), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [vue.createVNode(ImagesPicker, {
21259
+ modelValue: item[k],
21260
+ "onUpdate:modelValue": ($event) => item[k] = $event,
21261
+ readonly: ""
21262
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])]))]);
21263
+ }), 128))]), vue.createElementVNode("div", _hoisted_6, [props.schema.auth != "readonly" && props.auth != "readonly" && props.auth != "disabled" ? (vue.openBlock(), vue.createBlock(_component_van_icon, {
21222
21264
  key: 0,
21223
21265
  name: "edit",
21224
21266
  onClick: vue.withModifiers(($event) => onEdit(index), ["stop"])
@@ -21269,9 +21311,13 @@ var __async = (__this, __arguments, generator) => {
21269
21311
  modelValue: data2.inputValue[key],
21270
21312
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21271
21313
  placeholder: "\u9009\u62E9\u65F6\u95F4"
21272
- }, null, 8, ["modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("", true), ((_f = (_e = props.schema[key]) == null ? void 0 : _e.schema) == null ? void 0 : _f.options) ? (vue.openBlock(), vue.createBlock(DataSelector, {
21314
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("", true), props.schema[key].type == "Images" ? (vue.openBlock(), vue.createBlock(ImagesPicker, {
21273
21315
  key: 4,
21274
21316
  modelValue: data2.inputValue[key],
21317
+ "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event
21318
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("", true), ((_f = (_e = props.schema[key]) == null ? void 0 : _e.schema) == null ? void 0 : _f.options) ? (vue.openBlock(), vue.createBlock(DataSelector, {
21319
+ key: 5,
21320
+ modelValue: data2.inputValue[key],
21275
21321
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21276
21322
  options: (_h = (_g = props.schema[key]) == null ? void 0 : _g.schema) == null ? void 0 : _h.options,
21277
21323
  placeholder: `\u8BF7\u8F93\u5165${key2name(key)}`,
@@ -21281,7 +21327,7 @@ var __async = (__this, __arguments, generator) => {
21281
21327
  },
21282
21328
  onSelect: ($event) => onChangeOption(key)
21283
21329
  }, null, 8, ["modelValue", "onUpdate:modelValue", "options", "placeholder", "columnsFieldNames", "onSelect"])) : vue.createCommentVNode("", true), props.schema[key].type == "Array" && props.schema[key].auth != "gone" ? (vue.openBlock(), vue.createBlock(_component_ObjsEditor, {
21284
- key: 5,
21330
+ key: 6,
21285
21331
  modelValue: data2.inputValue[key],
21286
21332
  "onUpdate:modelValue": ($event) => data2.inputValue[key] = $event,
21287
21333
  schema: props.schema[key].schema
@@ -21289,19 +21335,19 @@ var __async = (__this, __arguments, generator) => {
21289
21335
  }),
21290
21336
  _: 2
21291
21337
  }, 1032, ["label", "required", "disabled"])), [[vue.vShow, props.schema[key].auth != "gone"]]);
21292
- }), 128)), vue.createElementVNode("div", _hoisted_5, [data2.isShowInput ? (vue.openBlock(), vue.createBlock(_component_van_button, {
21338
+ }), 128)), vue.createElementVNode("div", _hoisted_7, [data2.isShowInput ? (vue.openBlock(), vue.createBlock(_component_van_button, {
21293
21339
  key: 0,
21294
21340
  onClick: onInputConfirm,
21295
21341
  size: "mini"
21296
21342
  }, {
21297
- default: vue.withCtx(() => [_hoisted_6]),
21343
+ default: vue.withCtx(() => [_hoisted_8]),
21298
21344
  _: 1
21299
21345
  })) : vue.createCommentVNode("", true), data2.isShowInput ? (vue.openBlock(), vue.createBlock(_component_van_button, {
21300
21346
  key: 1,
21301
21347
  onClick: onInputCancel,
21302
21348
  size: "mini"
21303
21349
  }, {
21304
- default: vue.withCtx(() => [_hoisted_7]),
21350
+ default: vue.withCtx(() => [_hoisted_9]),
21305
21351
  _: 1
21306
21352
  })) : vue.createCommentVNode("", true)])]),
21307
21353
  _: 1
@@ -21316,7 +21362,7 @@ var __async = (__this, __arguments, generator) => {
21316
21362
  };
21317
21363
  }
21318
21364
  };
21319
- var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7359377c"]]);
21365
+ var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1fa437e7"]]);
21320
21366
  const secret_notify = () => {
21321
21367
  showNotify({ type: "danger", message: "\u4E25\u683C\u6267\u884C\u4FE1\u606F\u4FDD\u5BC6\u8981\u6C42\uFF0C\u5207\u5B9E\u9632\u8303\u4F01\u4E1A\u6CC4\u5BC6\u98CE\u9669", duration: 3e3 });
21322
21368
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "widget.qw",
3
3
  "private": false,
4
- "version": "1.0.70",
4
+ "version": "1.0.72",
5
5
  "description": "marqstree Vue3组件库",
6
6
  "main": "build/widget.qw.es.js",
7
7
  "keywords": [
@@ -8,13 +8,17 @@
8
8
  </div>
9
9
  <van-tag class="user-state" size="large" :color="userState2color(props.userState)">{{
10
10
  userState2title(props.userState)
11
- }}</van-tag>
12
- <van-tag class="process-state" mark plain size="large" :color="processState2color(props.processState)">{{
13
- processState2title(props.processState)
11
+ }}</van-tag>
12
+ <van-tag class="process-state" mark plain size="large"
13
+ :color="processState2color(props.processState)">{{
14
+ processState2title(props.processState)
14
15
  }}</van-tag>
15
16
  </div>
16
17
 
17
- <van-cell :title="item.title" :value="item.value" :border="false" v-for="(item,i) in props.fields" :key="i"/>
18
+ <van-cell :title="item.title" :value="item.value" :border="false" v-for="(item, i) in props.fields"
19
+ :key="i" />
20
+
21
+ <slot name="foot"></slot>
18
22
  </van-cell-group>
19
23
  </div>
20
24
  </template>
@@ -25,29 +29,29 @@ import util from '@/util'
25
29
 
26
30
  const props = defineProps({
27
31
  // 单据类型
28
- category:{
29
- type:String,
30
- default:''
32
+ category: {
33
+ type: String,
34
+ default: ''
31
35
  },
32
36
  // 单号
33
- no:{
34
- type:String,
35
- default:''
37
+ no: {
38
+ type: String,
39
+ default: ''
36
40
  },
37
41
  // 流程状态
38
- processState:{
39
- type:String,
40
- default:''
42
+ processState: {
43
+ type: String,
44
+ default: ''
41
45
  },
42
46
  // 用户状态
43
- userState:{
44
- type:String,
45
- default:''
47
+ userState: {
48
+ type: String,
49
+ default: ''
46
50
  },
47
51
  // 摘要字段
48
- fields:{
49
- type:Array,
50
- default:[]
52
+ fields: {
53
+ type: Array,
54
+ default: []
51
55
  }
52
56
  })
53
57
  const data = reactive({
@@ -95,7 +99,7 @@ const userState2color = (state) => {
95
99
  }
96
100
  }
97
101
 
98
- const userState2title = (state)=>{
102
+ const userState2title = (state) => {
99
103
  if (state == 'unstart') {
100
104
  return '未启动'
101
105
  } else if (state == 'started') {
@@ -119,38 +123,43 @@ const userState2title = (state)=>{
119
123
 
120
124
  .card-box {
121
125
  padding-bottom: 8px;
126
+
122
127
  .card-header {
123
128
  display: flex;
124
129
  align-items: center;
125
130
  justify-content: space-between;
126
131
  padding: 15px 10px;
127
132
  border-bottom: 1px solid #eee;
128
- .card-sum{
129
- flex:1;
133
+
134
+ .card-sum {
135
+ flex: 1;
130
136
  font-size: 14px;
131
137
  text-align: left;
132
138
  }
133
- .user-state{
139
+
140
+ .user-state {
134
141
  margin-right: 1px;
135
142
  }
136
143
  }
137
144
  }
138
145
  }
139
146
 
140
- :deep(.van-cell__value){
141
- flex:2 !important;
147
+ :deep(.van-cell__value) {
148
+ flex: 2 !important;
142
149
  }
143
150
 
144
- :deep(.van-cell__title){
151
+ :deep(.van-cell__title) {
145
152
  font-size: 12px !important;
146
153
  color: #666 !important;
147
154
  text-align: left !important;
148
155
  }
149
- :deep(.van-cell__value){
156
+
157
+ :deep(.van-cell__value) {
150
158
  font-size: 12px !important;
151
159
  color: #888 !important;
152
160
  }
153
- :deep(.van-cell){
161
+
162
+ :deep(.van-cell) {
154
163
  padding: 2px 10px !important;
155
164
  }
156
165
  </style>