hy-dispatch-ui-v3 0.2.36 → 0.2.38

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.
@@ -0,0 +1,320 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var elementPlus = require('element-plus');
7
+ var iconsVue = require('@element-plus/icons-vue');
8
+ var useLocale = require('../../hooks/useLocale.js');
9
+ var index = require('../hyTooltip/index.js');
10
+ var index$1 = require('../hyButton/index.js');
11
+ var index$2 = require('../hyIcon/index.js');
12
+ var is = require('../../utils/is.js');
13
+
14
+ import "./style/tableActionButton.scss";
15
+
16
+ const __default__ = vue.defineComponent({
17
+ name: "HyTableActionButton"
18
+ });
19
+ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
20
+ props: {
21
+ type: {
22
+ type: String,
23
+ default: "default"
24
+ // default 默认 primary 亮色 success 添加 danger 删除
25
+ },
26
+ size: {
27
+ type: String,
28
+ default: () => {
29
+ return "default";
30
+ }
31
+ },
32
+ disabled: {
33
+ type: Boolean,
34
+ default: false
35
+ },
36
+ // 默认按钮样式
37
+ svgName: {
38
+ type: String,
39
+ default: () => {
40
+ return "addV2";
41
+ }
42
+ },
43
+ // 默认按钮文案
44
+ label: {
45
+ type: String,
46
+ default: () => {
47
+ return "\u6DFB\u52A0";
48
+ }
49
+ },
50
+ // 类型
51
+ buttonClass: {
52
+ type: String,
53
+ default: () => {
54
+ return "button_addTo";
55
+ }
56
+ },
57
+ // 操作数据
58
+ operateList: {
59
+ type: Array,
60
+ default: () => {
61
+ return [];
62
+ }
63
+ }
64
+ },
65
+ emits: ["change"],
66
+ setup(__props, { expose: __expose, emit: __emit }) {
67
+ const props = __props;
68
+ const emits = __emit;
69
+ const { t } = useLocale.useLocale();
70
+ const visible = vue.ref(false);
71
+ const dataList = vue.ref([]);
72
+ const selectedData = vue.ref(null);
73
+ const buttonTxt = vue.computed(() => {
74
+ if (selectedData.value) {
75
+ const label = selectedData.value.label || "";
76
+ const labelList = label.split(" ");
77
+ return label.replace(`${labelList[0]} `, labelList[0]);
78
+ }
79
+ return props.label;
80
+ });
81
+ function buttonChange(item) {
82
+ emits("change", item.value);
83
+ }
84
+ function getDataList(dataList2 = []) {
85
+ const arr = [];
86
+ dataList2.forEach((item) => {
87
+ const children = item.children || [];
88
+ let list = [];
89
+ children.forEach((operate) => {
90
+ if (operateShowHandler(operate)) {
91
+ list.push(operate);
92
+ }
93
+ });
94
+ if (list.length) {
95
+ arr.push({
96
+ ...item,
97
+ children: list
98
+ });
99
+ }
100
+ });
101
+ return arr;
102
+ }
103
+ function setSelectedData() {
104
+ dataList.value = getDataList(props.operateList);
105
+ const length = dataList.value.length;
106
+ if (length === 1) {
107
+ const item = dataList.value[0];
108
+ if (item.children && item.children.length === 1) {
109
+ selectedData.value = item.children[0];
110
+ return;
111
+ }
112
+ }
113
+ selectedData.value = null;
114
+ }
115
+ function operateShowHandler(operate) {
116
+ if (operate.permission && !is.isPermission(operate.permission)) {
117
+ return false;
118
+ }
119
+ const show = vue.unref(operate.show);
120
+ if (is.isBoolean(show)) return show;
121
+ return true;
122
+ }
123
+ vue.watch(() => props.operateList, setSelectedData, { deep: true, immediate: true });
124
+ __expose({});
125
+ return (_ctx, _cache) => {
126
+ const _component_ArrowDown = vue.resolveComponent("ArrowDown");
127
+ return dataList.value.length ? (vue.openBlock(), vue.createElementBlock("div", {
128
+ key: 0,
129
+ class: "hy-table-action-button"
130
+ }, [
131
+ selectedData.value ? (vue.openBlock(), vue.createBlock(vue.unref(index.HyTooltip), {
132
+ key: 0,
133
+ "open-delay": 500,
134
+ disabled: !selectedData.value.altText,
135
+ content: selectedData.value.altText,
136
+ "is-always": true,
137
+ placement: "bottom"
138
+ }, {
139
+ default: vue.withCtx(() => [
140
+ vue.createVNode(vue.unref(index$1.HyButton), {
141
+ type: __props.type,
142
+ size: __props.size,
143
+ disabled: __props.disabled,
144
+ class: vue.normalizeClass(selectedData.value.buttonClass || __props.buttonClass),
145
+ svgName: selectedData.value.svgName || __props.svgName,
146
+ onClick: ($event) => buttonChange(selectedData.value)
147
+ }, {
148
+ default: vue.withCtx(() => [
149
+ vue.createTextVNode(
150
+ vue.toDisplayString(buttonTxt.value),
151
+ 1
152
+ /* TEXT */
153
+ )
154
+ ]),
155
+ _: 1
156
+ /* STABLE */
157
+ }, 8, ["type", "size", "disabled", "class", "svgName", "onClick"])
158
+ ]),
159
+ _: 1
160
+ /* STABLE */
161
+ }, 8, ["disabled", "content"])) : (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElPopover), {
162
+ key: 1,
163
+ visible: visible.value,
164
+ "onUpdate:visible": ($event) => visible.value = $event,
165
+ placement: "bottom",
166
+ "open-delay": 200,
167
+ disabled: __props.disabled,
168
+ trigger: "click"
169
+ }, {
170
+ reference: vue.withCtx(() => [
171
+ vue.createVNode(vue.unref(index$1.HyButton), {
172
+ type: __props.type,
173
+ size: __props.size,
174
+ disabled: __props.disabled,
175
+ class: vue.normalizeClass(__props.buttonClass),
176
+ onClick: ($event) => buttonChange(selectedData.value)
177
+ }, {
178
+ content: vue.withCtx(() => [
179
+ vue.createElementVNode("div", { class: "h-full flex items-center justify-center pl-[14px]" }, [
180
+ vue.createVNode(vue.unref(index$2.HyIcon), { "svg-name": __props.svgName }, null, 8, ["svg-name"]),
181
+ vue.createElementVNode(
182
+ "span",
183
+ { class: "ml-[6px]" },
184
+ vue.toDisplayString(__props.label),
185
+ 1
186
+ /* TEXT */
187
+ ),
188
+ vue.createElementVNode(
189
+ "div",
190
+ {
191
+ class: vue.normalizeClass(["w-[1px] h-full ml-[7px]", {
192
+ "bg-auxiliary": __props.type === "default",
193
+ "bg-success": __props.type === "success",
194
+ "bg-theme": __props.type === "primary",
195
+ "bg-danger-2": __props.type === "danger"
196
+ }])
197
+ },
198
+ null,
199
+ 2
200
+ /* CLASS */
201
+ ),
202
+ vue.createElementVNode("div", { class: "w-[30px] h-full flex items-center justify-center" }, [
203
+ vue.createVNode(vue.unref(elementPlus.ElIcon), {
204
+ color: "rgb(var(--hy-main))",
205
+ style: vue.normalizeStyle([{ "transition": "0.3s all linear" }, {
206
+ transform: visible.value ? "rotateX(180deg)" : "rotateX(0deg)"
207
+ }])
208
+ }, {
209
+ default: vue.withCtx(() => [
210
+ vue.createVNode(_component_ArrowDown)
211
+ ]),
212
+ _: 1
213
+ /* STABLE */
214
+ }, 8, ["style"])
215
+ ])
216
+ ])
217
+ ]),
218
+ _: 1
219
+ /* STABLE */
220
+ }, 8, ["type", "size", "disabled", "class", "onClick"])
221
+ ]),
222
+ default: vue.withCtx(() => [
223
+ vue.createElementVNode("ul", { class: "max-h-[500px] overflow-x-auto box-border" }, [
224
+ (vue.openBlock(true), vue.createElementBlock(
225
+ vue.Fragment,
226
+ null,
227
+ vue.renderList(dataList.value, (item, index$1) => {
228
+ return vue.openBlock(), vue.createElementBlock(
229
+ "li",
230
+ {
231
+ key: index$1,
232
+ class: vue.normalizeClass([{
233
+ "border-b border-border": index$1 !== dataList.value.length - 1
234
+ }, "box-border text-xs text-auxiliary"])
235
+ },
236
+ [
237
+ item.title ? (vue.openBlock(), vue.createElementBlock(
238
+ "div",
239
+ {
240
+ key: 0,
241
+ class: "box-border pt-2 px-2 over_one_line mb-1"
242
+ },
243
+ vue.toDisplayString(item.title),
244
+ 1
245
+ /* TEXT */
246
+ )) : vue.createCommentVNode("v-if", true),
247
+ vue.createElementVNode("ul", { class: "text-sm text-main" }, [
248
+ (vue.openBlock(true), vue.createElementBlock(
249
+ vue.Fragment,
250
+ null,
251
+ vue.renderList(item.children, (row) => {
252
+ return vue.openBlock(), vue.createElementBlock("li", {
253
+ key: row.value,
254
+ class: "h-[32px] flex items-center justify-between px-2 box-border clickBox hover:text-theme hover:bg-backgroundv3",
255
+ onClick: ($event) => buttonChange(row)
256
+ }, [
257
+ vue.createVNode(vue.unref(index.HyTooltip), {
258
+ "open-delay": 500,
259
+ content: row.label,
260
+ "is-always": true,
261
+ placement: "bottom"
262
+ }, {
263
+ default: vue.withCtx(() => [
264
+ vue.createElementVNode(
265
+ "div",
266
+ {
267
+ class: vue.normalizeClass([row.textClass, "max-w-[200px] over_one_line"])
268
+ },
269
+ vue.toDisplayString(row.label),
270
+ 3
271
+ /* TEXT, CLASS */
272
+ )
273
+ ]),
274
+ _: 2
275
+ /* DYNAMIC */
276
+ }, 1032, ["content"]),
277
+ row.altText ? (vue.openBlock(), vue.createBlock(vue.unref(index.HyTooltip), {
278
+ key: 0,
279
+ "open-delay": 500,
280
+ content: row.altText,
281
+ "is-always": true,
282
+ placement: "top"
283
+ }, {
284
+ default: vue.withCtx(() => [
285
+ vue.createVNode(vue.unref(elementPlus.ElIcon), { class: "flex-shrink-0 ml-2 text-auxiliary" }, {
286
+ default: vue.withCtx(() => [
287
+ vue.createVNode(vue.unref(iconsVue.Warning))
288
+ ]),
289
+ _: 1
290
+ /* STABLE */
291
+ })
292
+ ]),
293
+ _: 1
294
+ /* STABLE */
295
+ }, 8, ["content"])) : vue.createCommentVNode("v-if", true)
296
+ ], 8, ["onClick"]);
297
+ }),
298
+ 128
299
+ /* KEYED_FRAGMENT */
300
+ ))
301
+ ])
302
+ ],
303
+ 2
304
+ /* CLASS */
305
+ );
306
+ }),
307
+ 128
308
+ /* KEYED_FRAGMENT */
309
+ ))
310
+ ])
311
+ ]),
312
+ _: 1
313
+ /* STABLE */
314
+ }, 8, ["visible", "onUpdate:visible", "disabled"]))
315
+ ])) : vue.createCommentVNode("v-if", true);
316
+ };
317
+ }
318
+ });
319
+
320
+ exports.default = _sfc_main;
@@ -11,18 +11,19 @@ var index$j = require('./hyTable/index.js');
11
11
  var index$3 = require('./hyTooltip/index.js');
12
12
  var index$7 = require('./hyConfigProvider/index.js');
13
13
  var index$6 = require('./hyButton/index.js');
14
- var index$l = require('./hyUserAvatar/index.js');
14
+ var index$m = require('./hyUserAvatar/index.js');
15
15
  var index$f = require('./hyNoPermissions/index.js');
16
16
  var index$g = require('./hyNoPermissionsMap/index.js');
17
17
  var index$9 = require('./hyCutter/index.js');
18
18
  var index$a = require('./hyDialog/index.js');
19
19
  var index$e = require('./hyMenu/index.js');
20
- var index$k = require('./hyTree/index.js');
21
- var index$m = require('./hyVideoPlayer/index.js');
20
+ var index$l = require('./hyTree/index.js');
21
+ var index$n = require('./hyVideoPlayer/index.js');
22
22
  var index$4 = require('./hyAudioPlayer/index.js');
23
23
  var index$1 = require('./hyInput/index.js');
24
24
  var index$2 = require('./hyTimePicker/index.js');
25
25
  var index$5 = require('./hyTableForm/index.js');
26
+ var index$k = require('./hyTableActionButton/index.js');
26
27
  var useAppForm = require('./hyForm/js/useAppForm.js');
27
28
  var useAppSearch = require('./hySearch/js/useAppSearch.js');
28
29
  var useAppTable = require('./hyTable/js/useAppTable.js');
@@ -43,14 +44,14 @@ exports.ElTooltip = index$3.ElTooltip;
43
44
  exports.HyTooltip = index$3.HyTooltip;
44
45
  exports.HyConfigProvider = index$7.HyConfigProvider;
45
46
  exports.HyButton = index$6.HyButton;
46
- exports.HyUserAvatar = index$l.HyUserAvatar;
47
+ exports.HyUserAvatar = index$m.HyUserAvatar;
47
48
  exports.HyNoPermissions = index$f.HyNoPermissions;
48
49
  exports.HyNoPermissionsMap = index$g.HyNoPermissionsMap;
49
50
  exports.HyCutter = index$9.HyCutter;
50
51
  exports.HyDialog = index$a.HyDialog;
51
52
  exports.HyMenu = index$e.HyMenu;
52
- exports.HyTree = index$k.HyTree;
53
- exports.HyVideoPlayer = index$m.HyVideoPlayer;
53
+ exports.HyTree = index$l.HyTree;
54
+ exports.HyVideoPlayer = index$n.HyVideoPlayer;
54
55
  exports.HyAudioPlayer = index$4.HyAudioPlayer;
55
56
  exports.ElInput = index$1.ElInput;
56
57
  exports.HyInput = index$1.HyInput;
@@ -58,6 +59,7 @@ exports.ElTimePicker = index$2.ElTimePicker;
58
59
  exports.HyTimePicker = index$2.HyTimePicker;
59
60
  exports.HyBatchTableForm = index$5.HyBatchTableForm;
60
61
  exports.HyTableForm = index$5.HyTableForm;
62
+ exports.HyTableActionButton = index$k.HyTableActionButton;
61
63
  exports.resetAppFormValue = useAppForm.resetAppFormValue;
62
64
  exports.useAppForm = useAppForm.useAppForm;
63
65
  exports.resetAppSearchValue = useAppSearch.resetAppSearchValue;
package/lib/index.js CHANGED
@@ -23,9 +23,10 @@ var index$g = require('./components/hyNoPermissionsMap/index.js');
23
23
  var index$h = require('./components/hyOrgCascader/index.js');
24
24
  var index$i = require('./components/hySearch/index.js');
25
25
  var index$j = require('./components/hyTable/index.js');
26
- var index$k = require('./components/hyTree/index.js');
27
- var index$l = require('./components/hyUserAvatar/index.js');
28
- var index$m = require('./components/hyVideoPlayer/index.js');
26
+ var index$k = require('./components/hyTableActionButton/index.js');
27
+ var index$l = require('./components/hyTree/index.js');
28
+ var index$m = require('./components/hyUserAvatar/index.js');
29
+ var index$n = require('./components/hyVideoPlayer/index.js');
29
30
  var crypto = require('./utils/crypto.js');
30
31
  var file = require('./utils/file.js');
31
32
  var useLocale = require('./hooks/useLocale.js');
@@ -80,9 +81,10 @@ exports.HyNoPermissionsMap = index$g.HyNoPermissionsMap;
80
81
  exports.HyOrgCascader = index$h.HyOrgCascader;
81
82
  exports.HySearch = index$i.HySearch;
82
83
  exports.HyTable = index$j.HyTable;
83
- exports.HyTree = index$k.HyTree;
84
- exports.HyUserAvatar = index$l.HyUserAvatar;
85
- exports.HyVideoPlayer = index$m.HyVideoPlayer;
84
+ exports.HyTableActionButton = index$k.HyTableActionButton;
85
+ exports.HyTree = index$l.HyTree;
86
+ exports.HyUserAvatar = index$m.HyUserAvatar;
87
+ exports.HyVideoPlayer = index$n.HyVideoPlayer;
86
88
  exports.base64Decrypt = crypto.base64Decrypt;
87
89
  exports.encryptToBase64 = crypto.encryptToBase64;
88
90
  exports.generateRandomCode = crypto.generateRandomCode;
package/lib/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- const version = "0.2.35";
3
+ const version = "0.2.37";
4
4
 
5
5
  exports.version = version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hy-dispatch-ui-v3",
3
- "version": "0.2.36",
3
+ "version": "0.2.38",
4
4
  "main": "lib/index.js",
5
5
  "module": "es/index.mjs",
6
6
  "scripts": {
@@ -50,6 +50,7 @@
50
50
  "colorful": "2.1.0",
51
51
  "commander": "11.0.0",
52
52
  "consola": "^2.15.3",
53
+ "element-plus": "^2.14.2",
53
54
  "eslint": "8.57.1",
54
55
  "eslint-config-prettier": "9.1.2",
55
56
  "eslint-define-config": "2.1.0",
@@ -76,8 +77,10 @@
76
77
  "unplugin-vue-define-options": "^3.1.2",
77
78
  "unplugin-vue-macros": "^0.16.5",
78
79
  "vite": "^7.3.1",
80
+ "vue": "^3.5.25",
79
81
  "vue-draggable-plus": "^0.6.1",
80
- "vue-eslint-parser": "^9.4.3"
82
+ "vue-eslint-parser": "^9.4.3",
83
+ "vue-router": "^5.2.0"
81
84
  },
82
85
  "browserslist": [
83
86
  "> 0.5%",
@@ -135,7 +138,8 @@
135
138
  },
136
139
  "peerDependencies": {
137
140
  "element-plus": ">=2.13.0",
138
- "vue": ">=3.5.25"
141
+ "vue": ">=3.5.25",
142
+ "vue-router": ">=5.0.0"
139
143
  },
140
144
  "pnpm": {
141
145
  "onlyBuiltDependencies": [