ele-admin-plus 1.5.0-beta.5 → 1.5.0-beta.7

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.
@@ -46,6 +46,7 @@ body .el-input-number:not(.is-disabled):hover .el-input .el-input__wrapper {
46
46
  /* Focus */
47
47
  .el-input .el-input__wrapper.is-focus,
48
48
  .el-textarea .el-textarea__inner:focus,
49
+ .el-textarea .el-textarea__inner.is-focus,
49
50
  .el-select .el-select__wrapper:not(.is-disabled).is-focused,
50
51
  .el-cascader .el-input.el-input--suffix .el-input__wrapper.is-focus,
51
52
  .el-cascader .el-input.el-input--suffix.is-focus .el-input__wrapper,
@@ -465,7 +466,7 @@ body .el-input-number.is-disabled .el-input-number__decrease {
465
466
  }
466
467
 
467
468
  /* 表单验证 */
468
- .el-form-item.is-error {
469
+ .el-form-item.is-error .el-form-item__content {
469
470
  .el-input .el-input__wrapper,
470
471
  .el-textarea .el-textarea__inner,
471
472
  .el-select .select-trigger .el-input .el-input__wrapper,
@@ -501,6 +502,7 @@ body .el-input-number.is-disabled .el-input-number__decrease {
501
502
  }
502
503
 
503
504
  .el-textarea .el-textarea__inner:focus,
505
+ .el-textarea .el-textarea__inner.is-focus,
504
506
  .el-range-editor.el-input__wrapper.is-active,
505
507
  .el-input-number .el-input .el-input__wrapper.is-focus {
506
508
  border: eleVar('input-error', 'focus-border');
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, renderSlot, createVNode, createTextVNode, toDisplayString, renderList, normalizeProps, guardReactiveProps } from "vue";
1
+ import { defineComponent, ref, watch, createBlock, openBlock, mergeProps, unref, createSlots, withCtx, renderSlot, createVNode, createTextVNode, toDisplayString, renderList, normalizeProps, guardReactiveProps } from "vue";
2
2
  import { ElButton } from "element-plus";
3
3
  import { useLocale } from "../ele-config-provider/receiver";
4
4
  import EleModal from "../ele-modal/index";
@@ -14,11 +14,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14
14
  const emit = __emit;
15
15
  const { lang } = useLocale("cronBuilder", props);
16
16
  const cronPanelRef = ref(null);
17
+ const cronModel = ref("");
17
18
  const updateModelValue = (value) => {
18
19
  emit("update:modelValue", value);
19
20
  };
20
- const updateCron = (cron) => {
21
- emit("update:cron", cron);
21
+ const updateCronModel = (value) => {
22
+ if (cronModel.value !== value) {
23
+ cronModel.value = value;
24
+ if (props.cron !== cronModel.value) {
25
+ emit("update:cron", cronModel.value);
26
+ }
27
+ }
22
28
  };
23
29
  const hideCronList = () => {
24
30
  cronPanelRef.value?.hideCronList?.();
@@ -29,11 +35,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29
35
  };
30
36
  const handleConfirm = () => {
31
37
  hideCronList();
32
- emit("done", props.cron);
38
+ emit("done", cronModel.value);
33
39
  };
34
40
  const handleClosed = () => {
35
41
  hideCronList();
36
42
  };
43
+ watch(
44
+ () => props.cron,
45
+ (value) => {
46
+ updateCronModel(value);
47
+ },
48
+ { immediate: true }
49
+ );
37
50
  return (_ctx, _cache) => {
38
51
  return openBlock(), createBlock(EleModal, mergeProps({
39
52
  width: 832,
@@ -68,8 +81,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
68
81
  createVNode(EleCronPanel, {
69
82
  ref_key: "cronPanelRef",
70
83
  ref: cronPanelRef,
71
- modelValue: _ctx.cron,
72
- "onUpdate:modelValue": updateCron
84
+ modelValue: cronModel.value,
85
+ "onUpdate:modelValue": updateCronModel
73
86
  }, null, 8, ["modelValue"])
74
87
  ]),
75
88
  _: 2
@@ -79,7 +79,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
79
79
  ];
80
80
  });
81
81
  const updateModelValue = (value) => {
82
- emit("update:modelValue", value);
82
+ if (props.modelValue !== value) {
83
+ emit("update:modelValue", value);
84
+ }
83
85
  };
84
86
  const updateCron = () => {
85
87
  const values = [
@@ -97,6 +99,38 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
97
99
  updateModelValue(cron);
98
100
  return cron;
99
101
  };
102
+ const updatePanel = (cron) => {
103
+ if (!cron) {
104
+ tabActive.value = "second";
105
+ second.value = "*";
106
+ minute.value = "*";
107
+ hour.value = "*";
108
+ day.value = "*";
109
+ month.value = "*";
110
+ week.value = "?";
111
+ year.value = "";
112
+ const str = updateCron();
113
+ resultItems.value = getResultItems(
114
+ str,
115
+ lang.value.resultNoData,
116
+ lang.value.resultNoMore
117
+ );
118
+ return;
119
+ }
120
+ const [s, m, h, d, m2, w, y] = cron.split(" ");
121
+ second.value = s;
122
+ minute.value = m;
123
+ hour.value = h;
124
+ day.value = d;
125
+ month.value = m2;
126
+ week.value = w;
127
+ year.value = y || "";
128
+ resultItems.value = getResultItems(
129
+ cron,
130
+ lang.value.resultNoData,
131
+ lang.value.resultNoMore
132
+ );
133
+ };
100
134
  watch(hour, (h) => {
101
135
  if (h !== "*" && second.value === "*") {
102
136
  second.value = "0";
@@ -115,46 +149,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
115
149
  day.value = "?";
116
150
  }
117
151
  });
118
- watch(
119
- [second, minute, hour, day, month, week, year],
120
- () => {
121
- updateCron();
122
- },
123
- { immediate: true }
124
- );
152
+ watch([second, minute, hour, day, month, week, year], () => {
153
+ updateCron();
154
+ });
125
155
  watch(
126
156
  () => props.modelValue,
127
157
  (cron) => {
128
- if (!cron) {
129
- tabActive.value = "second";
130
- second.value = "*";
131
- minute.value = "*";
132
- hour.value = "*";
133
- day.value = "*";
134
- month.value = "*";
135
- week.value = "?";
136
- year.value = "";
137
- const str = updateCron();
138
- resultItems.value = getResultItems(
139
- str,
140
- lang.value.resultNoData,
141
- lang.value.resultNoMore
142
- );
143
- return;
144
- }
145
- const [s, m, h, d, m2, w, y] = cron.split(" ");
146
- second.value = s;
147
- minute.value = m;
148
- hour.value = h;
149
- day.value = d;
150
- month.value = m2;
151
- week.value = w;
152
- year.value = y || "";
153
- resultItems.value = getResultItems(
154
- cron,
155
- lang.value.resultNoData,
156
- lang.value.resultNoMore
157
- );
158
+ updatePanel(cron);
158
159
  }
159
160
  );
160
161
  watch(lang, () => {
@@ -196,6 +197,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
196
197
  cronListVisible.value = false;
197
198
  };
198
199
  __expose({ hideCronList });
200
+ if (props.modelValue) {
201
+ updatePanel(props.modelValue);
202
+ } else {
203
+ updateCron();
204
+ }
199
205
  return (_ctx, _cache) => {
200
206
  return openBlock(), createElementBlock("div", _hoisted_1, [
201
207
  createElementVNode("div", _hoisted_2, [
@@ -18,6 +18,7 @@ export declare function useCron(minValue: number, maxValue: number, defaultType?
18
18
  };
19
19
  /**
20
20
  * 计算最近 5 次运行时间
21
+ * 代码来源: https://gitee.com/y_project/RuoYi-Vue/blob/master/ruoyi-ui/src/components/Crontab/result.vue
21
22
  * @param cron Cron 表达式
22
23
  */
23
24
  export declare function getResultItems(cron: string | undefined, noDataText: string, noMoreText: string): string[];
@@ -1,4 +1,5 @@
1
- import { defineComponent, useModel, ref, onBeforeUnmount, resolveComponent, createBlock, openBlock, mergeProps, withCtx, createVNode, createElementVNode, createCommentVNode, unref, createSlots, renderList, renderSlot, normalizeProps, guardReactiveProps, normalizeClass, resolveDynamicComponent } from "vue";
1
+ import { defineComponent, useModel, ref, onBeforeUnmount, createBlock, openBlock, mergeProps, withCtx, createVNode, createElementVNode, createCommentVNode, unref, createSlots, renderList, renderSlot, normalizeProps, guardReactiveProps, normalizeClass, resolveDynamicComponent } from "vue";
2
+ import { ElEmpty } from "element-plus";
2
3
  import { useMobile } from "../utils/hook";
3
4
  import { eachTree, findTree, omit } from "../utils/common";
4
5
  import EleSplitPanel from "../ele-split-panel/index";
@@ -246,7 +247,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
246
247
  stopStoreHistoryTimer();
247
248
  });
248
249
  return (_ctx, _cache) => {
249
- const _component_ElEmpty = resolveComponent("ElEmpty");
250
250
  return openBlock(), createBlock(EleSplitPanel, mergeProps({
251
251
  space: 0,
252
252
  size: 240,
@@ -295,7 +295,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
295
295
  }
296
296
  ]])
297
297
  }, [
298
- !unref(crudConfig) || !unref(crudConfig).fields || !unref(crudConfig).fields.length ? (openBlock(), createBlock(_component_ElEmpty, {
298
+ !unref(crudConfig) || !unref(crudConfig).fields || !unref(crudConfig).fields.length ? (openBlock(), createBlock(unref(ElEmpty), {
299
299
  key: 0,
300
300
  imageSize: 80,
301
301
  class: "ele-crud-builder-form-empty"
@@ -245,11 +245,15 @@ function renderProFormItem(props) {
245
245
  const isDivTag = componentTag === "div" || componentTag === "td";
246
246
  const componentPropsData = translateJsCode(props.item.props || {}, formData, props.formItems || [], props.searchExpand, props.httpRequest, props.getProFormRefs, props.getAndCacheCode).result;
247
247
  const componentNode = typeSlot ? typeSlot({
248
- item: props.item,
248
+ item: {
249
+ ...props.item,
250
+ props: componentPropsData
251
+ },
249
252
  model: formData,
250
253
  modelValue,
251
254
  updateValue: handleUpdateModelValue,
252
255
  updatePropValue: props.updateItemValue,
256
+ itemComponentRef: getComponentRefName(props.item),
253
257
  proForm: slotProFormParams
254
258
  }) : h((isDivTag ? props.item.props?.is : void 0) || componentTag, mergeProps({
255
259
  key: props.key
@@ -3,39 +3,7 @@ import { EleDataTableProps, EleToolbarProps } from '../ele-app/plus';
3
3
  import { DataItem, Column, Columns, Sorter, Filter, RowKey } from '../ele-data-table/types';
4
4
  import { ReloadFunction, DoneParams, TableTool, FetchFunction, TableViewInstance, ExportConfig, PrintConfig, TableExportParams } from './types';
5
5
 
6
- declare function __VLS_template(): Readonly<{
7
- [x: string]: (props: Record<string, any>) => any;
8
- default(): any;
9
- toolbar(): any;
10
- tools(): any;
11
- footer(): any;
12
- empty(): any;
13
- append(): any;
14
- topExtra(): any;
15
- bottomExtra(): any;
16
- printTop(props: {
17
- data: DataItem[];
18
- }): any;
19
- printBottom(props: {
20
- data: DataItem[];
21
- }): any;
22
- }> & {
23
- [x: string]: (props: Record<string, any>) => any;
24
- default(): any;
25
- toolbar(): any;
26
- tools(): any;
27
- footer(): any;
28
- empty(): any;
29
- append(): any;
30
- topExtra(): any;
31
- bottomExtra(): any;
32
- printTop(props: {
33
- data: DataItem[];
34
- }): any;
35
- printBottom(props: {
36
- data: DataItem[];
37
- }): any;
38
- };
6
+ declare function __VLS_template(): any;
39
7
  declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
40
8
  rowKey: {
41
9
  type: import('vue').PropType<RowKey>;
@@ -1,9 +1,10 @@
1
- import { defineComponent, ref, computed, watch, onMounted, provide, resolveComponent, createBlock, openBlock, createSlots, withCtx, createElementBlock, resolveDynamicComponent, normalizeProps, mergeProps, renderSlot, createVNode, renderList, unref, guardReactiveProps, Fragment, nextTick } from "vue";
1
+ import { defineComponent, ref, computed, watch, onMounted, provide, createBlock, openBlock, createSlots, withCtx, createElementBlock, resolveDynamicComponent, normalizeProps, mergeProps, renderSlot, createVNode, renderList, unref, guardReactiveProps, Fragment, nextTick } from "vue";
2
2
  import { getSlotsMap, getValue } from "../utils/common";
3
3
  import { useResponsive } from "../ele-pro-layout/util";
4
4
  import EleBasicSelect from "../ele-basic-select/index";
5
5
  import { useFormValidate, isEmptyValue, SELECT_DATA_KEY, valueIsChanged } from "../ele-basic-select/util";
6
6
  import EleButtons from "../ele-buttons/index";
7
+ import EleProTable from "../ele-pro-table/index";
7
8
  import { tableSelectEmits, tableSelectProps } from "./props";
8
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
10
  ...{ name: "EleTableSelect" },
@@ -412,7 +413,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
412
413
  ...provideMethods
413
414
  });
414
415
  return (_ctx, _cache) => {
415
- const _component_EleProTable = resolveComponent("EleProTable");
416
416
  return openBlock(), createBlock(EleBasicSelect, {
417
417
  ref_key: "selectRef",
418
418
  ref: selectRef,
@@ -457,7 +457,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
457
457
  _ctx.wrapperComponent ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.wrapperComponent), normalizeProps(mergeProps({ key: 0 }, _ctx.wrapperComponentProps || {})), {
458
458
  default: withCtx(() => [
459
459
  renderSlot(_ctx.$slots, "popperTopExtra"),
460
- createVNode(_component_EleProTable, mergeProps({
460
+ createVNode(EleProTable, mergeProps({
461
461
  "onUpdate:selectedRowKeys": handleUpdateTableSelectedRowKeys,
462
462
  "onUpdate:currentRowKey": handleUpdateTableCurrentRowKey,
463
463
  onSelectionChange: handleTableSelectionChange,
@@ -495,7 +495,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
495
495
  _: 3
496
496
  }, 16)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
497
497
  renderSlot(_ctx.$slots, "popperTopExtra"),
498
- createVNode(_component_EleProTable, mergeProps({
498
+ createVNode(EleProTable, mergeProps({
499
499
  "onUpdate:selectedRowKeys": handleUpdateTableSelectedRowKeys,
500
500
  "onUpdate:currentRowKey": handleUpdateTableCurrentRowKey,
501
501
  onSelectionChange: handleTableSelectionChange,
@@ -71,12 +71,12 @@ $ele-modern-dark: map.deep-merge(
71
71
  & > .ele-admin-header {
72
72
  margin-top: -8px;
73
73
  backdrop-filter: blur(48px);
74
- #{eleVarName('header', 'bg')}: elVar('color-primary');
75
- #{eleVarName('header', 'dark-bg')}: elVar('color-primary');
74
+ #{eleVarName('header', 'bg')}: $layout-primary-bg;
75
+ #{eleVarName('header', 'dark-bg')}: $layout-primary-bg;
76
76
  #{eleVarName('header', 'dark-shadow')}: none;
77
77
  #{eleVarName('header', 'primary-bg')}: $layout-primary-bg;
78
78
  #{eleVarName('header', 'primary-shadow')}: none;
79
- #{eleVarName('header', 'ghost-bg')}: elVar('color-primary');
79
+ #{eleVarName('header', 'ghost-bg')}: $layout-primary-bg;
80
80
 
81
81
  & > .ele-admin-tabs {
82
82
  #{eleVarName('tab', 'simple-active-bg')}: eleVar('layout', 'bg');
@@ -1,5 +1,5 @@
1
1
  const phoneReg = /^1\d{10}$/;
2
- const phoneStrongReg = /^1[3|5|6|7|8|9][0-9]{9}$/;
2
+ const phoneStrongReg = /^1[3|4|5|6|7|8|9][0-9]{9}$/;
3
3
  const telReg = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})(-| )?)?([0-9]{7,8})((-| |转)*([0-9]{1,4}))?$/;
4
4
  const emailReg = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
5
5
  const urlReg = /(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/;
@@ -46,6 +46,7 @@ body .el-input-number:not(.is-disabled):hover .el-input .el-input__wrapper {
46
46
  /* Focus */
47
47
  .el-input .el-input__wrapper.is-focus,
48
48
  .el-textarea .el-textarea__inner:focus,
49
+ .el-textarea .el-textarea__inner.is-focus,
49
50
  .el-select .el-select__wrapper:not(.is-disabled).is-focused,
50
51
  .el-cascader .el-input.el-input--suffix .el-input__wrapper.is-focus,
51
52
  .el-cascader .el-input.el-input--suffix.is-focus .el-input__wrapper,
@@ -465,7 +466,7 @@ body .el-input-number.is-disabled .el-input-number__decrease {
465
466
  }
466
467
 
467
468
  /* 表单验证 */
468
- .el-form-item.is-error {
469
+ .el-form-item.is-error .el-form-item__content {
469
470
  .el-input .el-input__wrapper,
470
471
  .el-textarea .el-textarea__inner,
471
472
  .el-select .select-trigger .el-input .el-input__wrapper,
@@ -501,6 +502,7 @@ body .el-input-number.is-disabled .el-input-number__decrease {
501
502
  }
502
503
 
503
504
  .el-textarea .el-textarea__inner:focus,
505
+ .el-textarea .el-textarea__inner.is-focus,
504
506
  .el-range-editor.el-input__wrapper.is-active,
505
507
  .el-input-number .el-input .el-input__wrapper.is-focus {
506
508
  border: eleVar('input-error', 'focus-border');
@@ -15,11 +15,17 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
15
15
  const emit = __emit;
16
16
  const { lang } = receiver.useLocale("cronBuilder", props2);
17
17
  const cronPanelRef = vue.ref(null);
18
+ const cronModel = vue.ref("");
18
19
  const updateModelValue = (value) => {
19
20
  emit("update:modelValue", value);
20
21
  };
21
- const updateCron = (cron) => {
22
- emit("update:cron", cron);
22
+ const updateCronModel = (value) => {
23
+ if (cronModel.value !== value) {
24
+ cronModel.value = value;
25
+ if (props2.cron !== cronModel.value) {
26
+ emit("update:cron", cronModel.value);
27
+ }
28
+ }
23
29
  };
24
30
  const hideCronList = () => {
25
31
  cronPanelRef.value?.hideCronList?.();
@@ -30,11 +36,18 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
30
36
  };
31
37
  const handleConfirm = () => {
32
38
  hideCronList();
33
- emit("done", props2.cron);
39
+ emit("done", cronModel.value);
34
40
  };
35
41
  const handleClosed = () => {
36
42
  hideCronList();
37
43
  };
44
+ vue.watch(
45
+ () => props2.cron,
46
+ (value) => {
47
+ updateCronModel(value);
48
+ },
49
+ { immediate: true }
50
+ );
38
51
  return (_ctx, _cache) => {
39
52
  return vue.openBlock(), vue.createBlock(EleModal, vue.mergeProps({
40
53
  width: 832,
@@ -69,8 +82,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
69
82
  vue.createVNode(EleCronPanel, {
70
83
  ref_key: "cronPanelRef",
71
84
  ref: cronPanelRef,
72
- modelValue: _ctx.cron,
73
- "onUpdate:modelValue": updateCron
85
+ modelValue: cronModel.value,
86
+ "onUpdate:modelValue": updateCronModel
74
87
  }, null, 8, ["modelValue"])
75
88
  ]),
76
89
  _: 2
@@ -80,7 +80,9 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
80
80
  ];
81
81
  });
82
82
  const updateModelValue = (value) => {
83
- emit("update:modelValue", value);
83
+ if (props2.modelValue !== value) {
84
+ emit("update:modelValue", value);
85
+ }
84
86
  };
85
87
  const updateCron = () => {
86
88
  const values = [
@@ -98,6 +100,38 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
98
100
  updateModelValue(cron);
99
101
  return cron;
100
102
  };
103
+ const updatePanel = (cron) => {
104
+ if (!cron) {
105
+ tabActive.value = "second";
106
+ second.value = "*";
107
+ minute.value = "*";
108
+ hour.value = "*";
109
+ day.value = "*";
110
+ month.value = "*";
111
+ week.value = "?";
112
+ year.value = "";
113
+ const str = updateCron();
114
+ resultItems.value = util.getResultItems(
115
+ str,
116
+ lang.value.resultNoData,
117
+ lang.value.resultNoMore
118
+ );
119
+ return;
120
+ }
121
+ const [s, m, h, d, m2, w, y] = cron.split(" ");
122
+ second.value = s;
123
+ minute.value = m;
124
+ hour.value = h;
125
+ day.value = d;
126
+ month.value = m2;
127
+ week.value = w;
128
+ year.value = y || "";
129
+ resultItems.value = util.getResultItems(
130
+ cron,
131
+ lang.value.resultNoData,
132
+ lang.value.resultNoMore
133
+ );
134
+ };
101
135
  vue.watch(hour, (h) => {
102
136
  if (h !== "*" && second.value === "*") {
103
137
  second.value = "0";
@@ -116,46 +150,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
116
150
  day.value = "?";
117
151
  }
118
152
  });
119
- vue.watch(
120
- [second, minute, hour, day, month, week, year],
121
- () => {
122
- updateCron();
123
- },
124
- { immediate: true }
125
- );
153
+ vue.watch([second, minute, hour, day, month, week, year], () => {
154
+ updateCron();
155
+ });
126
156
  vue.watch(
127
157
  () => props2.modelValue,
128
158
  (cron) => {
129
- if (!cron) {
130
- tabActive.value = "second";
131
- second.value = "*";
132
- minute.value = "*";
133
- hour.value = "*";
134
- day.value = "*";
135
- month.value = "*";
136
- week.value = "?";
137
- year.value = "";
138
- const str = updateCron();
139
- resultItems.value = util.getResultItems(
140
- str,
141
- lang.value.resultNoData,
142
- lang.value.resultNoMore
143
- );
144
- return;
145
- }
146
- const [s, m, h, d, m2, w, y] = cron.split(" ");
147
- second.value = s;
148
- minute.value = m;
149
- hour.value = h;
150
- day.value = d;
151
- month.value = m2;
152
- week.value = w;
153
- year.value = y || "";
154
- resultItems.value = util.getResultItems(
155
- cron,
156
- lang.value.resultNoData,
157
- lang.value.resultNoMore
158
- );
159
+ updatePanel(cron);
159
160
  }
160
161
  );
161
162
  vue.watch(lang, () => {
@@ -197,6 +198,11 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
197
198
  cronListVisible.value = false;
198
199
  };
199
200
  __expose({ hideCronList });
201
+ if (props2.modelValue) {
202
+ updatePanel(props2.modelValue);
203
+ } else {
204
+ updateCron();
205
+ }
200
206
  return (_ctx, _cache) => {
201
207
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
202
208
  vue.createElementVNode("div", _hoisted_2, [
@@ -18,6 +18,7 @@ export declare function useCron(minValue: number, maxValue: number, defaultType?
18
18
  };
19
19
  /**
20
20
  * 计算最近 5 次运行时间
21
+ * 代码来源: https://gitee.com/y_project/RuoYi-Vue/blob/master/ruoyi-ui/src/components/Crontab/result.vue
21
22
  * @param cron Cron 表达式
22
23
  */
23
24
  export declare function getResultItems(cron: string | undefined, noDataText: string, noMoreText: string): string[];
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  const vue = require("vue");
3
+ const elementPlus = require("element-plus");
3
4
  const hook = require("../utils/hook");
4
5
  const common = require("../utils/common");
5
6
  const EleSplitPanel = require("../ele-split-panel/index");
@@ -247,7 +248,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
247
248
  stopStoreHistoryTimer();
248
249
  });
249
250
  return (_ctx, _cache) => {
250
- const _component_ElEmpty = vue.resolveComponent("ElEmpty");
251
251
  return vue.openBlock(), vue.createBlock(EleSplitPanel, vue.mergeProps({
252
252
  space: 0,
253
253
  size: 240,
@@ -296,7 +296,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
296
296
  }
297
297
  ]])
298
298
  }, [
299
- !vue.unref(crudConfig) || !vue.unref(crudConfig).fields || !vue.unref(crudConfig).fields.length ? (vue.openBlock(), vue.createBlock(_component_ElEmpty, {
299
+ !vue.unref(crudConfig) || !vue.unref(crudConfig).fields || !vue.unref(crudConfig).fields.length ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElEmpty), {
300
300
  key: 0,
301
301
  imageSize: 80,
302
302
  class: "ele-crud-builder-form-empty"
@@ -246,11 +246,15 @@ function renderProFormItem(props2) {
246
246
  const isDivTag = componentTag === "div" || componentTag === "td";
247
247
  const componentPropsData = renderCore.translateJsCode(props2.item.props || {}, formData, props2.formItems || [], props2.searchExpand, props2.httpRequest, props2.getProFormRefs, props2.getAndCacheCode).result;
248
248
  const componentNode = typeSlot ? typeSlot({
249
- item: props2.item,
249
+ item: {
250
+ ...props2.item,
251
+ props: componentPropsData
252
+ },
250
253
  model: formData,
251
254
  modelValue,
252
255
  updateValue: handleUpdateModelValue,
253
256
  updatePropValue: props2.updateItemValue,
257
+ itemComponentRef: getComponentRefName(props2.item),
254
258
  proForm: slotProFormParams
255
259
  }) : vue.h((isDivTag ? props2.item.props?.is : void 0) || componentTag, vue.mergeProps({
256
260
  key: props2.key
@@ -3,39 +3,7 @@ import { EleDataTableProps, EleToolbarProps } from '../ele-app/plus';
3
3
  import { DataItem, Column, Columns, Sorter, Filter, RowKey } from '../ele-data-table/types';
4
4
  import { ReloadFunction, DoneParams, TableTool, FetchFunction, TableViewInstance, ExportConfig, PrintConfig, TableExportParams } from './types';
5
5
 
6
- declare function __VLS_template(): Readonly<{
7
- [x: string]: (props: Record<string, any>) => any;
8
- default(): any;
9
- toolbar(): any;
10
- tools(): any;
11
- footer(): any;
12
- empty(): any;
13
- append(): any;
14
- topExtra(): any;
15
- bottomExtra(): any;
16
- printTop(props: {
17
- data: DataItem[];
18
- }): any;
19
- printBottom(props: {
20
- data: DataItem[];
21
- }): any;
22
- }> & {
23
- [x: string]: (props: Record<string, any>) => any;
24
- default(): any;
25
- toolbar(): any;
26
- tools(): any;
27
- footer(): any;
28
- empty(): any;
29
- append(): any;
30
- topExtra(): any;
31
- bottomExtra(): any;
32
- printTop(props: {
33
- data: DataItem[];
34
- }): any;
35
- printBottom(props: {
36
- data: DataItem[];
37
- }): any;
38
- };
6
+ declare function __VLS_template(): any;
39
7
  declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
40
8
  rowKey: {
41
9
  type: import('vue').PropType<RowKey>;
@@ -5,6 +5,7 @@ const util$1 = require("../ele-pro-layout/util");
5
5
  const EleBasicSelect = require("../ele-basic-select/index");
6
6
  const util = require("../ele-basic-select/util");
7
7
  const EleButtons = require("../ele-buttons/index");
8
+ const EleProTable = require("../ele-pro-table/index");
8
9
  const props = require("./props");
9
10
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
10
11
  ...{ name: "EleTableSelect" },
@@ -413,7 +414,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
413
414
  ...provideMethods
414
415
  });
415
416
  return (_ctx, _cache) => {
416
- const _component_EleProTable = vue.resolveComponent("EleProTable");
417
417
  return vue.openBlock(), vue.createBlock(EleBasicSelect, {
418
418
  ref_key: "selectRef",
419
419
  ref: selectRef,
@@ -458,7 +458,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
458
458
  _ctx.wrapperComponent ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.wrapperComponent), vue.normalizeProps(vue.mergeProps({ key: 0 }, _ctx.wrapperComponentProps || {})), {
459
459
  default: vue.withCtx(() => [
460
460
  vue.renderSlot(_ctx.$slots, "popperTopExtra"),
461
- vue.createVNode(_component_EleProTable, vue.mergeProps({
461
+ vue.createVNode(EleProTable, vue.mergeProps({
462
462
  "onUpdate:selectedRowKeys": handleUpdateTableSelectedRowKeys,
463
463
  "onUpdate:currentRowKey": handleUpdateTableCurrentRowKey,
464
464
  onSelectionChange: handleTableSelectionChange,
@@ -496,7 +496,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
496
496
  _: 3
497
497
  }, 16)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
498
498
  vue.renderSlot(_ctx.$slots, "popperTopExtra"),
499
- vue.createVNode(_component_EleProTable, vue.mergeProps({
499
+ vue.createVNode(EleProTable, vue.mergeProps({
500
500
  "onUpdate:selectedRowKeys": handleUpdateTableSelectedRowKeys,
501
501
  "onUpdate:currentRowKey": handleUpdateTableCurrentRowKey,
502
502
  onSelectionChange: handleTableSelectionChange,
@@ -71,12 +71,12 @@ $ele-modern-dark: map.deep-merge(
71
71
  & > .ele-admin-header {
72
72
  margin-top: -8px;
73
73
  backdrop-filter: blur(48px);
74
- #{eleVarName('header', 'bg')}: elVar('color-primary');
75
- #{eleVarName('header', 'dark-bg')}: elVar('color-primary');
74
+ #{eleVarName('header', 'bg')}: $layout-primary-bg;
75
+ #{eleVarName('header', 'dark-bg')}: $layout-primary-bg;
76
76
  #{eleVarName('header', 'dark-shadow')}: none;
77
77
  #{eleVarName('header', 'primary-bg')}: $layout-primary-bg;
78
78
  #{eleVarName('header', 'primary-shadow')}: none;
79
- #{eleVarName('header', 'ghost-bg')}: elVar('color-primary');
79
+ #{eleVarName('header', 'ghost-bg')}: $layout-primary-bg;
80
80
 
81
81
  & > .ele-admin-tabs {
82
82
  #{eleVarName('tab', 'simple-active-bg')}: eleVar('layout', 'bg');
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const phoneReg = /^1\d{10}$/;
4
- const phoneStrongReg = /^1[3|5|6|7|8|9][0-9]{9}$/;
4
+ const phoneStrongReg = /^1[3|4|5|6|7|8|9][0-9]{9}$/;
5
5
  const telReg = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})(-| )?)?([0-9]{7,8})((-| |转)*([0-9]{1,4}))?$/;
6
6
  const emailReg = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
7
7
  const urlReg = /(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/;
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "ele-admin-plus",
3
- "version": "1.5.0-beta.5",
3
+ "version": "1.5.0-beta.7",
4
4
  "type": "module",
5
5
  "scripts": {
6
- "dev": "vite --host --config vite.global.ts",
7
- "dev:needed": "vite --host",
6
+ "dev": "vite --host",
8
7
  "build": "esno scripts/build.ts",
9
8
  "lint:eslint": "eslint --cache --max-warnings 0 \"{src,components}/**/*.{vue,js,jsx,ts,tsx}\" --fix",
10
9
  "clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite/",