@fecp/designer 5.5.119 → 5.5.121

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 (115) hide show
  1. package/es/designer/package.json.mjs +1 -1
  2. package/es/designer/src/packages/dataSource/index.vue.mjs +3 -3
  3. package/es/designer/src/packages/dialog/index.vue2.mjs +15 -15
  4. package/es/designer/src/packages/dialog/useDialogDialog.mjs +1 -1
  5. package/es/designer/src/packages/dialogGlobal/index.vue2.mjs +15 -16
  6. package/es/designer/src/packages/dialogGlobal/useDialogGlobalDialog.mjs +1 -1
  7. package/es/designer/src/packages/event/pageEvent.vue.mjs +1 -1
  8. package/es/designer/src/packages/form/index.vue.mjs +2 -2
  9. package/es/designer/src/packages/form/property/widgets.vue.mjs +2 -2
  10. package/es/designer.css +505 -415
  11. package/es/packages/mobile/index.mjs +2 -0
  12. package/es/packages/mobile/src/api/index.mjs +1 -1
  13. package/es/packages/mobile/src/assets/images/baseRate.png.mjs +1 -1
  14. package/es/packages/mobile/src/assets/images/home-bg.png.mjs +1 -1
  15. package/es/packages/mobile/src/assets/images/rentCalc.png.mjs +1 -1
  16. package/es/packages/mobile/src/assets/images/user.png.mjs +4 -0
  17. package/es/packages/mobile/src/components/all.mjs +2 -0
  18. package/es/packages/mobile/src/components/base/card/Card.vue.mjs +2 -2
  19. package/es/packages/mobile/src/components/custom/appDetail/AppDetail.vue.mjs +62 -44
  20. package/es/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.mjs +2 -2
  21. package/es/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.mjs +128 -67
  22. package/es/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.mjs +5 -5
  23. package/es/packages/mobile/src/components/custom/customCode/CustomCode.vue.mjs +60 -0
  24. package/es/packages/mobile/src/components/custom/customCode/index.mjs +10 -0
  25. package/es/packages/mobile/src/components/custom/document/Document.vue.mjs +2 -2
  26. package/es/packages/mobile/src/components/custom/userSelect/UserSelect.vue.mjs +2 -2
  27. package/es/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.mjs +187 -7
  28. package/es/packages/mobile/src/components/dataDisplay/dataStat/DataStat.vue.mjs +2 -2
  29. package/es/packages/mobile/src/components/dataDisplay/mine/Mine.vue.mjs +33 -9
  30. package/es/packages/mobile/src/components/dataDisplay/rentCalcResult/RentCalcResult.vue.mjs +39 -79
  31. package/es/packages/mobile/src/components/feedback/quickFilter/QuickFilter.vue.mjs +10 -2
  32. package/es/packages/mobile/src/components/form/field/Field.vue.mjs +167 -32
  33. package/es/packages/mobile/src/components/form/fieldArea/FieldArea.vue.mjs +3 -2
  34. package/es/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.mjs +13 -15
  35. package/es/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.mjs +10 -10
  36. package/es/packages/mobile/src/components/form/fieldCheckbox/FieldCheckbox.vue.mjs +7 -23
  37. package/es/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.mjs +14 -26
  38. package/es/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.mjs +14 -15
  39. package/es/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.mjs +6 -19
  40. package/es/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.mjs +9 -25
  41. package/es/packages/mobile/src/components/form/fieldRadio/FieldRadio.vue.mjs +8 -24
  42. package/es/packages/mobile/src/components/form/search/Search.vue.mjs +15 -6
  43. package/es/packages/mobile/src/components/form/uploader/Uploader.vue.mjs +2 -2
  44. package/es/packages/mobile/src/components/navigation/tabbar/Tabbar.vue.mjs +9 -5
  45. package/es/packages/mobile/src/components/navigation/tabs/Tabs.vue.mjs +58 -25
  46. package/es/packages/mobile/src/index.vue.mjs +21 -4
  47. package/es/packages/mobile/src/page.vue.mjs +342 -138
  48. package/es/packages/mobile/src/utils/common.mjs +21 -0
  49. package/es/packages/mobile/src/utils/datasource.mjs +3 -3
  50. package/es/packages/mobile/src/utils/eventFlow/actionHandlers.mjs +35 -22
  51. package/es/packages/mobile/src/utils/formatterUtil.mjs +4 -24
  52. package/es/packages/mobile/src/utils/formulajs/calculate.mjs +11 -5
  53. package/es/packages/mobile/src/utils/optionUtil.mjs +3 -28
  54. package/es/packages/mobile/src/utils/pageHistory.mjs +16 -0
  55. package/es/packages/mobile/src/utils/validation.mjs +129 -0
  56. package/es/packages/vue/src/components/forms/number/Number.vue.mjs +3 -2
  57. package/es/packages/vue/src/components/table/TableColumn.vue.mjs +12 -8
  58. package/lib/designer/package.json.js +1 -1
  59. package/lib/designer/src/packages/dataSource/index.vue.js +3 -3
  60. package/lib/designer/src/packages/dialog/index.vue2.js +15 -15
  61. package/lib/designer/src/packages/dialog/useDialogDialog.js +1 -1
  62. package/lib/designer/src/packages/dialogGlobal/index.vue2.js +15 -16
  63. package/lib/designer/src/packages/dialogGlobal/useDialogGlobalDialog.js +1 -1
  64. package/lib/designer/src/packages/event/pageEvent.vue.js +1 -1
  65. package/lib/designer/src/packages/form/index.vue.js +2 -2
  66. package/lib/designer/src/packages/form/property/widgets.vue.js +2 -2
  67. package/lib/designer.css +505 -415
  68. package/lib/packages/mobile/index.js +4 -2
  69. package/lib/packages/mobile/src/api/index.js +1 -1
  70. package/lib/packages/mobile/src/assets/images/baseRate.png.js +1 -1
  71. package/lib/packages/mobile/src/assets/images/home-bg.png.js +1 -1
  72. package/lib/packages/mobile/src/assets/images/rentCalc.png.js +1 -1
  73. package/lib/packages/mobile/src/assets/images/user.png.js +4 -0
  74. package/lib/packages/mobile/src/components/all.js +2 -0
  75. package/lib/packages/mobile/src/components/base/card/Card.vue.js +2 -2
  76. package/lib/packages/mobile/src/components/custom/appDetail/AppDetail.vue.js +61 -43
  77. package/lib/packages/mobile/src/components/custom/appTimeLine/AppTimeLine.vue.js +2 -2
  78. package/lib/packages/mobile/src/components/custom/approvalBar/ApprovalBar.vue.js +131 -70
  79. package/lib/packages/mobile/src/components/custom/approvalList/ApprovalList.vue.js +5 -5
  80. package/lib/packages/mobile/src/components/custom/customCode/CustomCode.vue.js +60 -0
  81. package/lib/packages/mobile/src/components/custom/customCode/index.js +10 -0
  82. package/lib/packages/mobile/src/components/custom/document/Document.vue.js +2 -2
  83. package/lib/packages/mobile/src/components/custom/userSelect/UserSelect.vue.js +2 -2
  84. package/lib/packages/mobile/src/components/dataDisplay/cardList/CardList.vue.js +187 -7
  85. package/lib/packages/mobile/src/components/dataDisplay/dataStat/DataStat.vue.js +2 -2
  86. package/lib/packages/mobile/src/components/dataDisplay/mine/Mine.vue.js +38 -14
  87. package/lib/packages/mobile/src/components/dataDisplay/rentCalcResult/RentCalcResult.vue.js +39 -79
  88. package/lib/packages/mobile/src/components/feedback/quickFilter/QuickFilter.vue.js +10 -2
  89. package/lib/packages/mobile/src/components/form/field/Field.vue.js +165 -30
  90. package/lib/packages/mobile/src/components/form/fieldArea/FieldArea.vue.js +3 -2
  91. package/lib/packages/mobile/src/components/form/fieldCalendarPicker/FieldCalendarPicker.vue.js +13 -15
  92. package/lib/packages/mobile/src/components/form/fieldCascaderPicker/fieldCascaderPicker.vue.js +9 -9
  93. package/lib/packages/mobile/src/components/form/fieldCheckbox/FieldCheckbox.vue.js +6 -22
  94. package/lib/packages/mobile/src/components/form/fieldDatePicker/FieldDatePicker.vue.js +13 -25
  95. package/lib/packages/mobile/src/components/form/fieldDateTimePicker/FieldDateTimePicker.vue.js +13 -14
  96. package/lib/packages/mobile/src/components/form/fieldIndustry/FieldIndustry.vue.js +6 -19
  97. package/lib/packages/mobile/src/components/form/fieldPicker/FieldPicker.vue.js +8 -24
  98. package/lib/packages/mobile/src/components/form/fieldRadio/FieldRadio.vue.js +7 -23
  99. package/lib/packages/mobile/src/components/form/search/Search.vue.js +15 -6
  100. package/lib/packages/mobile/src/components/form/uploader/Uploader.vue.js +2 -2
  101. package/lib/packages/mobile/src/components/navigation/tabbar/Tabbar.vue.js +9 -5
  102. package/lib/packages/mobile/src/components/navigation/tabs/Tabs.vue.js +61 -28
  103. package/lib/packages/mobile/src/index.vue.js +20 -3
  104. package/lib/packages/mobile/src/page.vue.js +341 -137
  105. package/lib/packages/mobile/src/utils/common.js +21 -0
  106. package/lib/packages/mobile/src/utils/datasource.js +3 -3
  107. package/lib/packages/mobile/src/utils/eventFlow/actionHandlers.js +35 -22
  108. package/lib/packages/mobile/src/utils/formatterUtil.js +3 -23
  109. package/lib/packages/mobile/src/utils/formulajs/calculate.js +11 -5
  110. package/lib/packages/mobile/src/utils/optionUtil.js +2 -27
  111. package/lib/packages/mobile/src/utils/pageHistory.js +16 -0
  112. package/lib/packages/mobile/src/utils/validation.js +129 -0
  113. package/lib/packages/vue/src/components/forms/number/Number.vue.js +3 -2
  114. package/lib/packages/vue/src/components/table/TableColumn.vue.js +12 -8
  115. package/package.json +1 -1
@@ -15,8 +15,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
15
15
  ;/* empty css */
16
16
  const Vue = require("vue");
17
17
  const index = require("../field/index.js");
18
- const optionUtil = require("../../../utils/optionUtil.js");
19
- const common = require("../../../utils/common.js");
18
+ require("../../../utils/optionUtil.js");
20
19
  const index$2 = require("../../../../../../node_modules/vant/es/picker/index.js");
21
20
  const index$1 = require("../../../../../../node_modules/vant/es/popup/index.js");
22
21
  const index$3 = require("../../../../../../node_modules/vant/es/icon/index.js");
@@ -68,34 +67,19 @@ const _sfc_main = {
68
67
  emits: ["update:modelValue"],
69
68
  setup(__props, { emit: __emit }) {
70
69
  const currentInstance = Vue.getCurrentInstance();
71
- const ctx = currentInstance.proxy;
70
+ currentInstance.proxy;
72
71
  const props = __props;
73
72
  Vue.useAttrs();
74
- const finalOptions = Vue.ref([]);
75
- Vue.watch(
76
- () => common.cloneDeep(props.optionConfig),
77
- (val) => {
78
- optionUtil.getOptions({
79
- ctx,
80
- dataSources: props.dataSources,
81
- formData: props.formData,
82
- fields: props.fields,
83
- ...props.optionConfig
84
- }).then((data) => {
85
- finalOptions.value = data;
86
- });
87
- },
88
- {
89
- deep: true,
90
- immediate: true
91
- }
92
- );
73
+ const finalOptions = Vue.computed(() => {
74
+ if (!props.optionConfig) return [];
75
+ return props.optionConfig.options || [];
76
+ });
93
77
  const showPicker = Vue.ref(false);
94
78
  const emit = __emit;
95
79
  const pickerValue = Vue.computed({
96
80
  get: () => {
97
81
  const value = props.modelValue;
98
- return value.split(",");
82
+ return (value == null ? void 0 : value.split(",")) || [];
99
83
  },
100
84
  set: (val) => {
101
85
  emit("update:modelValue", val.join(","));
@@ -105,7 +89,7 @@ const _sfc_main = {
105
89
  const selectedOption = finalOptions.value.find(
106
90
  (option) => option.value == pickerValue.value.join(",")
107
91
  );
108
- return selectedOption ? selectedOption.label : "";
92
+ return selectedOption ? selectedOption.label : pickerValue.value.join(",");
109
93
  });
110
94
  const onConfirm = ({ selectedValues, selectedOptions }) => {
111
95
  pickerValue.value = selectedValues;
@@ -2,9 +2,8 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const Vue = require("vue");
4
4
  const index = require("../field/index.js");
5
- const optionUtil = require("../../../utils/optionUtil.js");
5
+ require("../../../utils/optionUtil.js");
6
6
  const index$1 = require("../radioGroup/index.js");
7
- const common = require("../../../utils/common.js");
8
7
  const _hoisted_1 = { key: 1 };
9
8
  const _sfc_main = {
10
9
  __name: "FieldRadio",
@@ -38,28 +37,13 @@ const _sfc_main = {
38
37
  emits: ["update:modelValue"],
39
38
  setup(__props, { emit: __emit }) {
40
39
  const currentInstance = Vue.getCurrentInstance();
41
- const ctx = currentInstance.proxy;
40
+ currentInstance.proxy;
42
41
  const props = __props;
43
42
  Vue.useAttrs();
44
- const finalOptions = Vue.ref([]);
45
- Vue.watch(
46
- () => common.cloneDeep(props.optionConfig),
47
- (val) => {
48
- optionUtil.getOptions({
49
- ctx,
50
- dataSources: props.dataSources,
51
- formData: props.formData,
52
- fields: props.fields,
53
- ...props.optionConfig
54
- }).then((data) => {
55
- finalOptions.value = data;
56
- });
57
- },
58
- {
59
- deep: true,
60
- immediate: true
61
- }
62
- );
43
+ const finalOptions = Vue.computed(() => {
44
+ if (!props.optionConfig) return [];
45
+ return props.optionConfig.options || [];
46
+ });
63
47
  const emit = __emit;
64
48
  const compValue = Vue.computed({
65
49
  get: () => {
@@ -73,7 +57,7 @@ const _sfc_main = {
73
57
  const selectedOption = finalOptions.value.find(
74
58
  (option) => option.value === compValue.value
75
59
  );
76
- return selectedOption ? selectedOption.label : "";
60
+ return selectedOption ? selectedOption.label : compValue.value;
77
61
  });
78
62
  return (_ctx, _cache) => {
79
63
  return Vue.openBlock(), Vue.createBlock(Vue.unref(index.MobileField), Vue.mergeProps(_ctx.$attrs, {
@@ -39,12 +39,19 @@ const _sfc_main = {
39
39
  const searchData = Vue.ref("");
40
40
  function onClickFilter() {
41
41
  }
42
+ const filters = Vue.ref({});
42
43
  function onSearch() {
43
- console.log("🚀 ~ onSearch ~ searchData.value:", searchData.value);
44
+ filters.value.dynamicFilter = searchData.value;
45
+ emit("filterChange", filters.value);
44
46
  }
45
47
  function onQuickFilterChange(result) {
46
- console.log("筛选数据:", result);
47
- emit("filterChange", result);
48
+ filters.value = {
49
+ dynamicFilter: searchData.value
50
+ };
51
+ result.forEach((item) => {
52
+ filters.value[item.fieldName] = item.values.join("|");
53
+ });
54
+ emit("filterChange", filters.value);
48
55
  }
49
56
  const filterData = Vue.ref([]);
50
57
  const fieldDataSources = /* @__PURE__ */ new Set();
@@ -69,7 +76,8 @@ const _sfc_main = {
69
76
  const dsManager = datasource.createDataSource({
70
77
  http: ctx.$http,
71
78
  dataSources: props.dataSources,
72
- currentDataSourceId: dataSourceId
79
+ currentDataSourceId: dataSourceId,
80
+ loading: false
73
81
  });
74
82
  const data = await dsManager.fetch();
75
83
  let options = [];
@@ -87,11 +95,12 @@ const _sfc_main = {
87
95
  if (dictionaryKeys.size > 0) {
88
96
  try {
89
97
  const keyName = Array.from(dictionaryKeys).join(",");
90
- const response = await ctx.$http.postForm(
98
+ const response = await ctx.$http.postFormMobile(
91
99
  "/base-server/parm/sysParmDic/getDicListByKey",
92
100
  {
93
101
  keyName
94
- }
102
+ },
103
+ false
95
104
  );
96
105
  const dictionaryData = response;
97
106
  if (typeof dictionaryData === "object") {
@@ -77,7 +77,7 @@ const _sfc_main = {
77
77
  const emit = __emit;
78
78
  const fileList = Vue.computed({
79
79
  get: () => {
80
- return props.modelValue;
80
+ return props.modelValue || [];
81
81
  },
82
82
  set: (val) => {
83
83
  emit("update:modelValue", val);
@@ -221,5 +221,5 @@ const _sfc_main = {
221
221
  };
222
222
  }
223
223
  };
224
- const _Uploader = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-67b22b6d"]]);
224
+ const _Uploader = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-c9dede2d"]]);
225
225
  exports.default = _Uploader;
@@ -54,7 +54,7 @@ const _sfc_main = {
54
54
  });
55
55
  });
56
56
  function getFlowCutNum() {
57
- ctx.$http.post("/base-server/flow/workbench/getTaskCutByUser").then((data) => {
57
+ ctx.$http.postMobile("/base-server/flow/workbench/getTaskCutByUser", null, false).then((data) => {
58
58
  flowMsgNum.value = data;
59
59
  });
60
60
  }
@@ -63,9 +63,13 @@ const _sfc_main = {
63
63
  getFlowCutNum();
64
64
  });
65
65
  function getMessageCutNum() {
66
- ctx.$http.postForm("/base-server/msgMessages/initMsgUnReadNum", {
67
- opNo: store.getters.user.opNo
68
- }).then((data) => {
66
+ ctx.$http.postFormMobile(
67
+ "/base-server/msgMessages/initMsgUnReadNum",
68
+ {
69
+ opNo: store.getters.user.opNo
70
+ },
71
+ false
72
+ ).then((data) => {
69
73
  msgNum.value = data;
70
74
  });
71
75
  }
@@ -112,5 +116,5 @@ const _sfc_main = {
112
116
  };
113
117
  }
114
118
  };
115
- const _Tabbar = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-1f859803"]]);
119
+ const _Tabbar = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-5e9f5a59"]]);
116
120
  exports.default = _Tabbar;
@@ -7,20 +7,16 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
7
7
  ;/* empty css */
8
8
  ;/* empty css */
9
9
  ;/* empty css */
10
- ;/* empty css */
11
- ;/* empty css */
12
- ;/* empty css */
13
- ;/* empty css */
14
10
  const Vue = require("vue");
15
11
  const common = require("../../../utils/common.js");
16
12
  const page = require("../../../page.vue.js");
17
13
  const index$1 = require("../../custom/appTimeLine/index.js");
18
14
  const index = require("../../custom/document/index.js");
15
+ const parseFilterConfig = require("../../../utils/parseFilterConfig.js");
19
16
  ;/* empty css */
20
17
  const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
21
- const index$2 = require("../../../../../../node_modules/vant/es/search/index.js");
22
- const index$3 = require("../../../../../../node_modules/vant/es/tabs/index.js");
23
- const index$4 = require("../../../../../../node_modules/vant/es/tab/index.js");
18
+ const index$2 = require("../../../../../../node_modules/vant/es/tabs/index.js");
19
+ const index$3 = require("../../../../../../node_modules/vant/es/tab/index.js");
24
20
  const _hoisted_1 = { class: "fec-tab-content" };
25
21
  const _sfc_main = {
26
22
  __name: "Tabs",
@@ -70,6 +66,22 @@ const _sfc_main = {
70
66
  busPkField: {
71
67
  type: String,
72
68
  default: ""
69
+ },
70
+ formData: {
71
+ type: Object,
72
+ default: {}
73
+ },
74
+ fields: {
75
+ type: Array,
76
+ default: []
77
+ },
78
+ isDev: {
79
+ type: Boolean,
80
+ default: false
81
+ },
82
+ dynamicInputFilter: {
83
+ type: Array,
84
+ default: []
73
85
  }
74
86
  },
75
87
  emits: ["update:modelValue"],
@@ -79,11 +91,27 @@ const _sfc_main = {
79
91
  const pageList = Vue.inject("pageList");
80
92
  const activeName = Vue.ref(((_a = props.options[0]) == null ? void 0 : _a.id) || "");
81
93
  const tabsOptions = Vue.computed(() => {
82
- const tabs = [...props.options || []];
94
+ const tabs = [...props.options || []].filter((item) => {
95
+ if (!item.showCondition || props.isDev) return true;
96
+ return parseFilterConfig.checkFilterMatch(item.showCondition, props.formData, props.fields);
97
+ });
98
+ tabs.forEach((tab) => {
99
+ const params = {};
100
+ const fieldMapping = tab.fieldMapping;
101
+ if (fieldMapping && Array.isArray(fieldMapping)) {
102
+ fieldMapping.forEach((item) => {
103
+ const field = props.fields.find((field2) => field2.id == item.field);
104
+ if (field) {
105
+ params[item.value] = props.formData[field.fieldName];
106
+ }
107
+ });
108
+ }
109
+ tab.params = { ...props.formData, ...params };
110
+ });
83
111
  if (props.document) {
84
112
  tabs.push({ id: "tab_doc_info", title: "要件信息", component: index.MobileDocument });
85
113
  }
86
- if (props.approvalHistory) {
114
+ if (props.approvalHistory && props.formData.approveSts != "00") {
87
115
  tabs.push({
88
116
  id: "tab_timeline_info",
89
117
  title: "审批历史",
@@ -95,10 +123,10 @@ const _sfc_main = {
95
123
  const componentParams = Vue.computed(() => {
96
124
  let traceNo = props.params.traceNo;
97
125
  if (props.busPkField) {
98
- traceNo = props.params[props.busPkField];
126
+ traceNo = props.formData[props.busPkField];
99
127
  }
100
128
  return {
101
- ...props.params,
129
+ ...props.formData,
102
130
  traceNo
103
131
  };
104
132
  });
@@ -124,32 +152,34 @@ const _sfc_main = {
124
152
  const getPage = (pageId) => {
125
153
  return pageCache.value[pageId] || null;
126
154
  };
155
+ const setPageRef = (id, el) => {
156
+ };
127
157
  const searchData = Vue.ref("");
128
- function onSearch() {
129
- console.log("搜索:", searchData.value);
158
+ function onFilterChange(filter) {
159
+ const dynamicFilterFieldName = props.dynamicInputFilter.map((item) => item.fieldName).join(",");
160
+ searchData.value = {
161
+ filters: JSON.stringify({ ...filter, dynamicFilterFieldName })
162
+ };
130
163
  }
131
164
  return (_ctx, _cache) => {
132
- const _component_van_search = index$2.Search;
133
- const _component_van_tab = index$4.Tab;
134
- const _component_van_tabs = index$3.Tabs;
165
+ const _component_fec_mobile_search = Vue.resolveComponent("fec-mobile-search");
166
+ const _component_van_tab = index$3.Tab;
167
+ const _component_van_tabs = index$2.Tabs;
135
168
  return Vue.openBlock(), Vue.createElementBlock("div", {
136
169
  class: Vue.normalizeClass(["fec-tabs-container", { isAutoHeight: props.autoHeight }]),
137
170
  style: Vue.normalizeStyle("height:" + Vue.unref(compHeight))
138
171
  }, [
139
- __props.enableFilter ? (Vue.openBlock(), Vue.createBlock(_component_van_search, {
172
+ __props.enableFilter ? (Vue.openBlock(), Vue.createBlock(_component_fec_mobile_search, {
140
173
  key: 0,
141
- modelValue: Vue.unref(searchData),
142
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => Vue.isRef(searchData) ? searchData.value = $event : null),
143
- shape: "round",
144
174
  placeholder: __props.filterPlaceholder,
145
- clearable: "",
146
- onSearch
147
- }, null, 8, ["modelValue", "placeholder"])) : Vue.createCommentVNode("", true),
175
+ onFilterChange
176
+ }, null, 8, ["placeholder"])) : Vue.createCommentVNode("", true),
148
177
  Vue.createVNode(_component_van_tabs, {
149
178
  class: "fec-tabs",
150
179
  active: Vue.unref(activeName),
151
- "onUpdate:active": _cache[1] || (_cache[1] = ($event) => Vue.isRef(activeName) ? activeName.value = $event : null),
152
- swipeable: Vue.unref(tabSwipeable)
180
+ "onUpdate:active": _cache[0] || (_cache[0] = ($event) => Vue.isRef(activeName) ? activeName.value = $event : null),
181
+ swipeable: Vue.unref(tabSwipeable),
182
+ "swipe-threshold": 4
153
183
  }, {
154
184
  default: Vue.withCtx(() => [
155
185
  (Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(Vue.unref(tabsOptions), (item) => {
@@ -162,9 +192,12 @@ const _sfc_main = {
162
192
  Vue.createElementVNode("div", _hoisted_1, [
163
193
  item.pageId && getPage(item.pageId) ? (Vue.openBlock(), Vue.createBlock(page.default, {
164
194
  key: 0,
195
+ ref_for: true,
196
+ ref: (el) => setPageRef(item.id),
165
197
  parentPage: getPage(item.pageId),
166
- params: __props.params
167
- }, null, 8, ["parentPage", "params"])) : item.component ? (Vue.openBlock(), Vue.createBlock(Vue.resolveDynamicComponent(item.component), Vue.mergeProps({
198
+ params: item.params,
199
+ initSearchData: Vue.unref(searchData)
200
+ }, null, 8, ["parentPage", "params", "initSearchData"])) : item.component ? (Vue.openBlock(), Vue.createBlock(Vue.resolveDynamicComponent(item.component), Vue.mergeProps({
168
201
  key: 1,
169
202
  ref_for: true
170
203
  }, Vue.unref(componentParams)), null, 16)) : Vue.createCommentVNode("", true)
@@ -180,5 +213,5 @@ const _sfc_main = {
180
213
  };
181
214
  }
182
215
  };
183
- const _Tabs = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-2dd78d51"]]);
216
+ const _Tabs = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-217113cd"]]);
184
217
  exports.default = _Tabs;
@@ -33,6 +33,10 @@ const _sfc_main = {
33
33
  pageKey: {
34
34
  type: String,
35
35
  default: ""
36
+ },
37
+ queryParams: {
38
+ type: Object,
39
+ default: {}
36
40
  }
37
41
  },
38
42
  setup(__props) {
@@ -56,7 +60,7 @@ const _sfc_main = {
56
60
  pageHistory.pageHistory.clear();
57
61
  let homePage;
58
62
  if (props.pageKey) {
59
- homePage = pageList.value.find((page2) => page2.isHome);
63
+ homePage = common.findPageByKey(pageList.value, props.pageKey);
60
64
  if (!homePage) {
61
65
  noTargetPage.value = true;
62
66
  }
@@ -114,7 +118,7 @@ const _sfc_main = {
114
118
  routePage.value = null;
115
119
  }
116
120
  }
117
- const pageParams = Vue.ref({});
121
+ const pageParams = Vue.ref(props.queryParams);
118
122
  eventBus.default.on("loadPage", ({ pageId, params }) => {
119
123
  loadPage(pageId);
120
124
  pageParams.value = params;
@@ -128,6 +132,19 @@ const _sfc_main = {
128
132
  });
129
133
  Vue.provide("pageList", pageList);
130
134
  Vue.onMounted(() => {
135
+ const search = new URLSearchParams(location.search);
136
+ if (search.get("safeTop") || search.get("safeBottom")) {
137
+ const top = search.get("safeTop") || 0;
138
+ const bottom = search.get("safeBottom") || 0;
139
+ document.documentElement.style.setProperty(
140
+ "--safe-area-inset-top",
141
+ `${top}px`
142
+ );
143
+ document.documentElement.style.setProperty(
144
+ "--safe-area-inset-bottom",
145
+ `${bottom}px`
146
+ );
147
+ }
131
148
  loadConfig();
132
149
  });
133
150
  return (_ctx, _cache) => {
@@ -156,5 +173,5 @@ const _sfc_main = {
156
173
  };
157
174
  }
158
175
  };
159
- const MobileApp = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-65074c8b"]]);
176
+ const MobileApp = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-b26c4347"]]);
160
177
  exports.default = MobileApp;