@aplus-frontend/ui 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.mjs +60 -58
- package/es/src/ap-download/ap-download.vue.mjs +26 -26
- package/es/src/ap-form/ap-form-item-group/index.vue.mjs +26 -24
- package/es/src/ap-modal/index.d.ts +2 -2
- package/es/src/ap-modal/index.mjs +1 -1
- package/es/src/ap-modal/{type.d.ts → interface.d.ts} +3 -3
- package/es/src/ap-modal/utils/createModal.d.ts +1 -1
- package/es/src/ap-table/ap-table.vue.mjs +40 -40
- package/es/src/ap-table/interface.d.ts +2 -3
- package/es/src/ap-table/utils.d.ts +1 -1
- package/es/src/ap-table/utils.mjs +20 -20
- package/es/src/business/ap-batch-action/index.css +2 -0
- package/es/src/business/ap-batch-action-group/ApBatchActionGroup.vue.d.ts +13 -0
- package/es/src/business/ap-batch-action-group/ApBatchActionGroup.vue.mjs +4 -0
- package/es/src/business/ap-batch-action-group/ApBatchActionGroup.vue2.mjs +110 -0
- package/es/src/business/ap-batch-action-group/MenuItemGroup.vue.d.ts +17 -0
- package/es/src/business/ap-batch-action-group/MenuItemGroup.vue.mjs +4 -0
- package/es/src/business/ap-batch-action-group/MenuItemGroup.vue2.mjs +50 -0
- package/es/src/business/ap-batch-action-group/interface.d.ts +41 -0
- package/es/src/business/ap-batch-action-group/interface.mjs +1 -0
- package/es/src/business/ap-image/ApImage.vue.d.ts +65 -0
- package/es/src/business/ap-image/ApImage.vue.mjs +4 -0
- package/es/src/business/ap-image/ApImage.vue2.mjs +56 -0
- package/es/src/business/ap-image/hooks/useOss.d.ts +11 -0
- package/es/src/business/ap-image/hooks/useOss.mjs +37 -0
- package/es/src/business/ap-image/imgs/admin-fallback.jpg.mjs +4 -0
- package/es/src/business/ap-image/imgs/aplus-fallback.jpg.mjs +4 -0
- package/es/src/business/ap-label/ApLabel.d.ts +141 -0
- package/es/src/business/ap-label/ApLabel.mjs +49 -0
- package/es/src/business/ap-label/ApLabelGroup.mjs +11 -12
- package/es/src/business/ap-label/constans.d.ts +65 -1
- package/es/src/business/ap-label/constans.mjs +33 -2
- package/es/src/business/ap-label/index.d.ts +1 -1
- package/es/src/business/ap-label/interface.d.ts +2 -1
- package/es/src/business/index.d.ts +815 -164
- package/es/src/business/index.mjs +26 -20
- package/es/src/config-provider/constants.d.ts +1 -1
- package/es/src/editable-table/form-item.vue.mjs +47 -46
- package/es/src/editable-table/hooks/use-get-columns.d.ts +3 -2
- package/es/src/editable-table/hooks/use-get-columns.mjs +32 -32
- package/es/src/editable-table/index.vue.mjs +81 -80
- package/es/src/editable-table/interface.d.ts +7 -13
- package/es/src/editable-table/utils.d.ts +14 -2
- package/es/src/editable-table/utils.mjs +67 -58
- package/es/src/index.mjs +202 -200
- package/es/src/locale/lang/en.mjs +10 -7
- package/es/src/locale/lang/zh-cn.mjs +3 -0
- package/es/src/theme/ap-batch-action/ap-batch-action.css +2 -0
- package/lib/index.js +1 -1
- package/lib/src/ap-download/ap-download.vue.js +1 -1
- package/lib/src/ap-form/ap-form-item-group/index.vue.js +1 -1
- package/lib/src/ap-modal/index.d.ts +2 -2
- package/lib/src/ap-modal/index.js +1 -1
- package/lib/src/ap-modal/{type.d.ts → interface.d.ts} +3 -3
- package/lib/src/ap-modal/utils/createModal.d.ts +1 -1
- package/lib/src/ap-table/ap-table.vue.js +1 -1
- package/lib/src/ap-table/interface.d.ts +2 -3
- package/lib/src/ap-table/utils.d.ts +1 -1
- package/lib/src/ap-table/utils.js +1 -1
- package/lib/src/business/ap-batch-action/index.css +2 -0
- package/lib/src/business/ap-batch-action-group/ApBatchActionGroup.vue.d.ts +13 -0
- package/lib/src/business/ap-batch-action-group/ApBatchActionGroup.vue.js +1 -0
- package/lib/src/business/ap-batch-action-group/ApBatchActionGroup.vue2.js +1 -0
- package/lib/src/business/ap-batch-action-group/MenuItemGroup.vue.d.ts +17 -0
- package/lib/src/business/ap-batch-action-group/MenuItemGroup.vue.js +1 -0
- package/lib/src/business/ap-batch-action-group/MenuItemGroup.vue2.js +1 -0
- package/lib/src/business/ap-batch-action-group/interface.d.ts +41 -0
- package/lib/src/business/ap-batch-action-group/interface.js +1 -0
- package/lib/src/business/ap-image/ApImage.vue.d.ts +65 -0
- package/lib/src/business/{ap-label/ApLabel.vue.js → ap-image/ApImage.vue.js} +1 -1
- package/lib/src/business/ap-image/ApImage.vue2.js +1 -0
- package/lib/src/business/ap-image/hooks/useOss.d.ts +11 -0
- package/lib/src/business/ap-image/hooks/useOss.js +1 -0
- package/lib/src/business/ap-image/imgs/admin-fallback.jpg.js +1 -0
- package/lib/src/business/ap-image/imgs/aplus-fallback.jpg.js +1 -0
- package/lib/src/business/ap-label/ApLabel.d.ts +141 -0
- package/lib/src/business/ap-label/ApLabel.js +1 -0
- package/lib/src/business/ap-label/ApLabelGroup.js +1 -1
- package/lib/src/business/ap-label/constans.d.ts +65 -1
- package/lib/src/business/ap-label/constans.js +1 -1
- package/lib/src/business/ap-label/index.d.ts +1 -1
- package/lib/src/business/ap-label/interface.d.ts +2 -1
- package/lib/src/business/index.d.ts +815 -164
- package/lib/src/business/index.js +1 -1
- package/lib/src/config-provider/constants.d.ts +1 -1
- package/lib/src/editable-table/form-item.vue.js +1 -1
- package/lib/src/editable-table/hooks/use-get-columns.d.ts +3 -2
- package/lib/src/editable-table/hooks/use-get-columns.js +1 -1
- package/lib/src/editable-table/index.vue.js +1 -1
- package/lib/src/editable-table/interface.d.ts +7 -13
- package/lib/src/editable-table/utils.d.ts +14 -2
- package/lib/src/editable-table/utils.js +1 -1
- package/lib/src/index.js +1 -1
- package/lib/src/locale/lang/en.js +1 -1
- package/lib/src/locale/lang/zh-cn.js +1 -1
- package/lib/src/theme/ap-batch-action/ap-batch-action.css +2 -0
- package/package.json +3 -3
- package/es/src/business/ap-label/ApLabel.vue.d.ts +0 -56
- package/es/src/business/ap-label/ApLabel.vue.mjs +0 -4
- package/es/src/business/ap-label/ApLabel.vue2.mjs +0 -85
- package/lib/src/business/ap-label/ApLabel.vue.d.ts +0 -56
- package/lib/src/business/ap-label/ApLabel.vue2.js +0 -1
- /package/es/src/ap-modal/{type.mjs → interface.mjs} +0 -0
- /package/lib/src/ap-modal/{type.js → interface.js} +0 -0
|
@@ -67,12 +67,12 @@ export type ExtraProColumnType<T> = Omit<ColumnType<T>, 'children' | 'filters' |
|
|
|
67
67
|
export type ApTableRowSelection<RecordType = any> = Omit<TableRowSelection<RecordType>, 'selectedRowKeys' | 'onChange' | 'onSelect' | 'onSelectAll' | 'onSelectInvert' | 'onSelectNone'> & {
|
|
68
68
|
mode: 'internal';
|
|
69
69
|
};
|
|
70
|
-
type CommonFieldReturnType = ApFormItemProps & {
|
|
70
|
+
export type CommonFieldReturnType = ApFormItemProps & {
|
|
71
71
|
field: Recordable;
|
|
72
72
|
placeholder?: string;
|
|
73
73
|
disabled?: boolean;
|
|
74
74
|
};
|
|
75
|
-
type FieldPropsType<ReturnType, RecordType, ExtraValueType, ValueType extends ApTableValueTypes, MergedValueType extends ExtraValueType | ValueType> = ReturnType | ((opt: Partial<{
|
|
75
|
+
export type FieldPropsType<ReturnType, RecordType, ExtraValueType, ValueType extends ApTableValueTypes, MergedValueType extends ExtraValueType | ValueType> = ReturnType | ((opt: Partial<{
|
|
76
76
|
value: any;
|
|
77
77
|
text: any;
|
|
78
78
|
record: RecordType;
|
|
@@ -286,4 +286,3 @@ export type ApTableExpose<SearchParamsType = Recordable, RecordType = any> = {
|
|
|
286
286
|
selectedRows: ComputedRef<RecordType[]>;
|
|
287
287
|
};
|
|
288
288
|
};
|
|
289
|
-
export {};
|
|
@@ -71,7 +71,7 @@ export declare function getFieldProps<RecordType = any>(fieldProps: ApColumnType
|
|
|
71
71
|
* @returns
|
|
72
72
|
*/
|
|
73
73
|
export declare function getTableRenderType(item: ApColumnType<any, any>): "number" | "select" | "date" | "text" | "index" | "switch" | "status" | "checkbox" | "radio" | "password" | "action" | "dateRange" | "textArea";
|
|
74
|
-
export declare function getTableCellRenderNode(renderType: keyof typeof apTableRenderItemMap, renderProps: any, extraRenderMap?: Record<string, ValueTypeRenderConfig>): any;
|
|
74
|
+
export declare function getTableCellRenderNode(renderType: keyof typeof apTableRenderItemMap, renderProps: any, record: any, extraRenderMap?: Record<string, ValueTypeRenderConfig>): any;
|
|
75
75
|
/**
|
|
76
76
|
* 获取查询表单最终渲染的节点
|
|
77
77
|
* @param item
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { isVNode as m, createVNode as
|
|
2
|
-
import { isObject as
|
|
1
|
+
import { isVNode as m, createVNode as i, mergeProps as l, cloneVNode as p } from "vue";
|
|
2
|
+
import { isObject as c, isArray as f, isUndefined as d, isFunction as b, omit as T, isBoolean as y } from "lodash-unified";
|
|
3
3
|
import { apTableRenderItemMap as j, apTableFormItemMap as h } from "./constants.mjs";
|
|
4
4
|
import { isType as g } from "@fruits-chain/utils";
|
|
5
5
|
import "../ap-form/index.mjs";
|
|
@@ -9,8 +9,8 @@ function F(t) {
|
|
|
9
9
|
}
|
|
10
10
|
const O = (t, e, n) => {
|
|
11
11
|
let r = {};
|
|
12
|
-
return
|
|
13
|
-
|
|
12
|
+
return c(t) ? Object.keys(t).forEach((o) => {
|
|
13
|
+
c(t[o]) ? r[o] = O(t[o], e[o], n) : r[o] = n(t[o], e);
|
|
14
14
|
}) : r = n(t, e), r;
|
|
15
15
|
}, _ = (t, e) => {
|
|
16
16
|
switch (t) {
|
|
@@ -24,7 +24,7 @@ const O = (t, e, n) => {
|
|
|
24
24
|
}
|
|
25
25
|
case "multiple":
|
|
26
26
|
case "multipleNumber":
|
|
27
|
-
return
|
|
27
|
+
return f(e) ? e : [e];
|
|
28
28
|
case "boolean":
|
|
29
29
|
return e;
|
|
30
30
|
case "object":
|
|
@@ -34,13 +34,13 @@ const O = (t, e, n) => {
|
|
|
34
34
|
}
|
|
35
35
|
};
|
|
36
36
|
function C(t) {
|
|
37
|
-
return
|
|
37
|
+
return f(t) ? t.join(".") : t;
|
|
38
38
|
}
|
|
39
39
|
function N(t) {
|
|
40
40
|
const e = Object.prototype.toString.call(t).match(/^\[object (.*)\]$/)[1].toLowerCase();
|
|
41
41
|
return e === "string" && typeof t == "object" ? "object" : t === null ? "null" : t === void 0 ? "undefined" : e;
|
|
42
42
|
}
|
|
43
|
-
const S = (t) => N(t) === "map" ? t : new Map(Object.entries(t || {})),
|
|
43
|
+
const S = (t) => N(t) === "map" ? t : new Map(Object.entries(t || {})), a = (t) => {
|
|
44
44
|
const e = [], n = S(t);
|
|
45
45
|
return n.forEach((r, o) => {
|
|
46
46
|
const u = n.get(o) || n.get(`${o}`);
|
|
@@ -79,15 +79,15 @@ function q(t) {
|
|
|
79
79
|
let e = t.valueType || "text";
|
|
80
80
|
return t.valueEnum && (e = "status"), e;
|
|
81
81
|
}
|
|
82
|
-
function B(t, e, n) {
|
|
83
|
-
var
|
|
84
|
-
const
|
|
85
|
-
if (
|
|
86
|
-
return
|
|
82
|
+
function B(t, e, n, r) {
|
|
83
|
+
var s;
|
|
84
|
+
const o = j[t];
|
|
85
|
+
if (o)
|
|
86
|
+
return i(o, l(e, {
|
|
87
87
|
mode: "read"
|
|
88
88
|
}), null);
|
|
89
|
-
const
|
|
90
|
-
return ((
|
|
89
|
+
const u = r == null ? void 0 : r[t];
|
|
90
|
+
return ((s = u == null ? void 0 : u.render) == null ? void 0 : s.call(u, e.value, n, e)) || e.value;
|
|
91
91
|
}
|
|
92
92
|
function D(t, e) {
|
|
93
93
|
if (t.customRenderFormItem)
|
|
@@ -106,7 +106,7 @@ function D(t, e) {
|
|
|
106
106
|
return () => {
|
|
107
107
|
var u;
|
|
108
108
|
const o = (u = r == null ? void 0 : r.renderFormItem) == null ? void 0 : u.call(r, t.fieldProps.field);
|
|
109
|
-
return o ?
|
|
109
|
+
return o ? i(E, l(t.fieldProps, {
|
|
110
110
|
span: t.span
|
|
111
111
|
}), F(o) ? o : {
|
|
112
112
|
default: () => [o]
|
|
@@ -114,28 +114,28 @@ function D(t, e) {
|
|
|
114
114
|
};
|
|
115
115
|
}
|
|
116
116
|
function J(t, e) {
|
|
117
|
-
const n = x(t.fieldProps, e), r = (n == null ? void 0 : n.field) || n || {}, o = t.valueType === "switch", u = t.valueType === "index",
|
|
117
|
+
const n = x(t.fieldProps, e), r = (n == null ? void 0 : n.field) || n || {}, o = t.valueType === "switch", u = t.valueType === "index", s = o ? {
|
|
118
118
|
checked: e.value
|
|
119
119
|
} : {
|
|
120
120
|
value: u ? e.index + 1 : e.value
|
|
121
121
|
};
|
|
122
122
|
return t.valueEnum && (r.valueEnum = t.valueEnum), {
|
|
123
123
|
...T(r, ["request"]),
|
|
124
|
-
...
|
|
124
|
+
...s
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
127
|
function L(t) {
|
|
128
128
|
const e = {
|
|
129
129
|
...t
|
|
130
130
|
};
|
|
131
|
-
return y(t.filters) && t.filters && t.valueEnum && (e.filters =
|
|
131
|
+
return y(t.filters) && t.filters && t.valueEnum && (e.filters = a(t.valueEnum)), e;
|
|
132
132
|
}
|
|
133
133
|
function U(t, e) {
|
|
134
134
|
var r;
|
|
135
135
|
const n = e || {};
|
|
136
136
|
return t.valueEnum && !((r = n.field) != null && r.options) && (n.field = {
|
|
137
137
|
...n.field,
|
|
138
|
-
options:
|
|
138
|
+
options: a(t.valueEnum)
|
|
139
139
|
}), n;
|
|
140
140
|
}
|
|
141
141
|
function z(t) {
|
|
@@ -162,5 +162,5 @@ export {
|
|
|
162
162
|
z as objectToString,
|
|
163
163
|
_ as parseFieldValue,
|
|
164
164
|
U as updateFormProps,
|
|
165
|
-
|
|
165
|
+
a as valueEnumToArray
|
|
166
166
|
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ApBatchActionGroupProps } from './interface';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ExtractPropTypes, PropType } from 'vue';
|
|
3
|
+
declare const _default: DefineComponent<__VLS_TypePropsToOption<ApBatchActionGroupProps>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<__VLS_TypePropsToOption<ApBatchActionGroupProps>>>, {}, {}>;
|
|
4
|
+
export default _default;
|
|
5
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
6
|
+
type __VLS_TypePropsToOption<T> = {
|
|
7
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
8
|
+
type: PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
9
|
+
} : {
|
|
10
|
+
type: PropType<T[K]>;
|
|
11
|
+
required: true;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { defineComponent as A, computed as n, openBlock as y, createBlock as h, unref as a, mergeProps as s, withCtx as u, createVNode as c, createElementVNode as C, normalizeStyle as D, toDisplayString as w, normalizeClass as N, createTextVNode as T, createCommentVNode as x } from "vue";
|
|
2
|
+
import { DropdownButton as R, Dropdown as V, Button as G } from "ant-design-vue";
|
|
3
|
+
import "./MenuItemGroup.vue.mjs";
|
|
4
|
+
import "../../config-provider/index.mjs";
|
|
5
|
+
import { DownOutlined as M } from "@ant-design/icons-vue";
|
|
6
|
+
import { usePermission as S } from "@aplus-frontend/hooks";
|
|
7
|
+
import { useNamespace as z } from "../../config-provider/hooks/use-namespace.mjs";
|
|
8
|
+
import { useLocale as F } from "../../config-provider/hooks/use-locale.mjs";
|
|
9
|
+
import { useGlobalConfig as O } from "../../config-provider/hooks/use-global-config.mjs";
|
|
10
|
+
import L from "./MenuItemGroup.vue2.mjs";
|
|
11
|
+
const W = /* @__PURE__ */ A({
|
|
12
|
+
__name: "ApBatchActionGroup",
|
|
13
|
+
props: {
|
|
14
|
+
selectedRows: {},
|
|
15
|
+
buttonProps: {},
|
|
16
|
+
menuList: {}
|
|
17
|
+
},
|
|
18
|
+
setup(P) {
|
|
19
|
+
const { b: i } = z("ap-batch-action-group"), { t: _ } = F(), e = P, B = O("uiMode"), { hasPermission: g } = S(), f = n(
|
|
20
|
+
() => {
|
|
21
|
+
var t;
|
|
22
|
+
return ((t = e == null ? void 0 : e.buttonProps) == null ? void 0 : t.dropdownType) || "default";
|
|
23
|
+
}
|
|
24
|
+
), d = n(
|
|
25
|
+
() => {
|
|
26
|
+
var t;
|
|
27
|
+
return ((t = e == null ? void 0 : e.buttonProps) == null ? void 0 : t.type) || "borderLink";
|
|
28
|
+
}
|
|
29
|
+
), p = n(
|
|
30
|
+
() => {
|
|
31
|
+
var t;
|
|
32
|
+
return ((t = e == null ? void 0 : e.buttonProps) == null ? void 0 : t.content) || _("ap.apApBatchActionGroup.batchOperation");
|
|
33
|
+
}
|
|
34
|
+
), k = n(() => (e == null ? void 0 : e.selectedRows) || []), m = n(
|
|
35
|
+
() => {
|
|
36
|
+
var t;
|
|
37
|
+
return ((t = e == null ? void 0 : e.buttonProps) == null ? void 0 : t.disabled) ?? (Array.isArray(e.selectedRows) ? k.value.length === 0 : !1);
|
|
38
|
+
}
|
|
39
|
+
), b = n(() => {
|
|
40
|
+
const t = {
|
|
41
|
+
aplus: "#0070FF",
|
|
42
|
+
admin: "#34b77c"
|
|
43
|
+
};
|
|
44
|
+
return d.value === "borderLink" ? m.value ? void 0 : t[B.value] || t.aplus : void 0;
|
|
45
|
+
}), r = n(() => {
|
|
46
|
+
var t;
|
|
47
|
+
return ((t = e == null ? void 0 : e.menuList) == null ? void 0 : t.filter((o) => {
|
|
48
|
+
let l = o == null ? void 0 : o.ifShow;
|
|
49
|
+
return !(o != null && o.ifShow) && (o != null && o.auth) && (l = () => g(o.auth)), (l == null ? void 0 : l()) ?? !0;
|
|
50
|
+
})) || [];
|
|
51
|
+
});
|
|
52
|
+
function v() {
|
|
53
|
+
return e != null && e.buttonProps ? {
|
|
54
|
+
...e.buttonProps,
|
|
55
|
+
type: d.value === "borderLink" ? "default" : d.value
|
|
56
|
+
} : {};
|
|
57
|
+
}
|
|
58
|
+
return (t, o) => r.value.length && f.value === "dropdown" ? (y(), h(a(R), s({
|
|
59
|
+
key: 0,
|
|
60
|
+
class: [a(i)()]
|
|
61
|
+
}, {
|
|
62
|
+
...v(),
|
|
63
|
+
disabled: m.value
|
|
64
|
+
}), {
|
|
65
|
+
overlay: u(() => [
|
|
66
|
+
c(L, s({
|
|
67
|
+
...e
|
|
68
|
+
}, { menuList: r.value }), null, 16, ["menuList"])
|
|
69
|
+
]),
|
|
70
|
+
default: u(() => [
|
|
71
|
+
C("span", {
|
|
72
|
+
style: D({
|
|
73
|
+
color: b.value
|
|
74
|
+
})
|
|
75
|
+
}, w(p.value), 5)
|
|
76
|
+
]),
|
|
77
|
+
_: 1
|
|
78
|
+
}, 16, ["class"])) : r.value.length && f.value === "default" ? (y(), h(a(V), {
|
|
79
|
+
key: 1,
|
|
80
|
+
class: N([a(i)()]),
|
|
81
|
+
disabled: m.value
|
|
82
|
+
}, {
|
|
83
|
+
overlay: u(() => [
|
|
84
|
+
c(L, s({
|
|
85
|
+
...e
|
|
86
|
+
}, { menuList: r.value }), null, 16, ["menuList"])
|
|
87
|
+
]),
|
|
88
|
+
default: u(() => [
|
|
89
|
+
c(a(G), s({
|
|
90
|
+
...t.$attrs,
|
|
91
|
+
...v()
|
|
92
|
+
}, {
|
|
93
|
+
style: {
|
|
94
|
+
color: b.value
|
|
95
|
+
}
|
|
96
|
+
}), {
|
|
97
|
+
default: u(() => [
|
|
98
|
+
T(w(p.value) + " ", 1),
|
|
99
|
+
c(a(M))
|
|
100
|
+
]),
|
|
101
|
+
_: 1
|
|
102
|
+
}, 16, ["style"])
|
|
103
|
+
]),
|
|
104
|
+
_: 1
|
|
105
|
+
}, 8, ["class", "disabled"])) : x("", !0);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
export {
|
|
109
|
+
W as default
|
|
110
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ApBatchActionGroupMenuProps, ApBatchActionGroupProps } from './interface';
|
|
2
|
+
import { DefineComponent, ComponentOptionsMixin, PublicProps, ExtractPropTypes, PropType } from 'vue';
|
|
3
|
+
declare const _default: DefineComponent<__VLS_TypePropsToOption<ApBatchActionGroupProps & {
|
|
4
|
+
menuList: ApBatchActionGroupMenuProps[];
|
|
5
|
+
}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<__VLS_TypePropsToOption<ApBatchActionGroupProps & {
|
|
6
|
+
menuList: ApBatchActionGroupMenuProps[];
|
|
7
|
+
}>>>, {}, {}>;
|
|
8
|
+
export default _default;
|
|
9
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
10
|
+
type __VLS_TypePropsToOption<T> = {
|
|
11
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
12
|
+
type: PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
13
|
+
} : {
|
|
14
|
+
type: PropType<T[K]>;
|
|
15
|
+
required: true;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { defineComponent as _, ref as h, openBlock as s, createBlock as a, unref as u, withCtx as d, createElementBlock as v, Fragment as t, renderList as y, mergeProps as k, createElementVNode as w, withDirectives as g, createVNode as C, vShow as b, resolveDynamicComponent as L, h as M } from "vue";
|
|
2
|
+
import { LoadingOutlined as B } from "@ant-design/icons-vue";
|
|
3
|
+
import { Menu as R, MenuItem as x } from "ant-design-vue";
|
|
4
|
+
const D = { style: { display: "flex", "align-items": "center" } }, P = /* @__PURE__ */ _({
|
|
5
|
+
__name: "MenuItemGroup",
|
|
6
|
+
props: {
|
|
7
|
+
selectedRows: {},
|
|
8
|
+
buttonProps: {},
|
|
9
|
+
menuList: {}
|
|
10
|
+
},
|
|
11
|
+
setup(f) {
|
|
12
|
+
const o = f, r = h({});
|
|
13
|
+
async function p(e, c) {
|
|
14
|
+
var l;
|
|
15
|
+
const n = (e == null ? void 0 : e.id) || c;
|
|
16
|
+
r.value[n] = !0;
|
|
17
|
+
try {
|
|
18
|
+
await ((l = e == null ? void 0 : e.onClick) == null ? void 0 : l.call(e, { selectedRows: o == null ? void 0 : o.selectedRows }));
|
|
19
|
+
} finally {
|
|
20
|
+
r.value[n] = !1;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return (e, c) => (s(), a(u(R), null, {
|
|
24
|
+
default: d(() => [
|
|
25
|
+
(s(!0), v(t, null, y(o.menuList, (n, l) => (s(), a(u(x), k({
|
|
26
|
+
key: (n == null ? void 0 : n.id) || l,
|
|
27
|
+
ref_for: !0
|
|
28
|
+
}, {
|
|
29
|
+
...n,
|
|
30
|
+
onClick: () => p(n, l),
|
|
31
|
+
disabled: r.value[(n == null ? void 0 : n.id) || l] ?? (n == null ? void 0 : n.disabled) ?? !1
|
|
32
|
+
}), {
|
|
33
|
+
default: d(() => [
|
|
34
|
+
w("div", D, [
|
|
35
|
+
g(C(u(B), { style: { "margin-right": "10px" } }, null, 512), [
|
|
36
|
+
[b, r.value[(n == null ? void 0 : n.id) || l]]
|
|
37
|
+
]),
|
|
38
|
+
(s(), a(L(M(t, [n == null ? void 0 : n.content]))))
|
|
39
|
+
])
|
|
40
|
+
]),
|
|
41
|
+
_: 2
|
|
42
|
+
}, 1040))), 128))
|
|
43
|
+
]),
|
|
44
|
+
_: 1
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
export {
|
|
49
|
+
P as default
|
|
50
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ButtonProps, MenuItemProps } from 'ant-design-vue';
|
|
2
|
+
import { DropdownButtonProps } from 'ant-design-vue/es/dropdown';
|
|
3
|
+
import { VNodeChild } from 'vue';
|
|
4
|
+
type ApBatchActionGroupButtonType = ButtonProps['type'] | 'borderLink';
|
|
5
|
+
type MixinButton<T> = Omit<T, 'type'> & {
|
|
6
|
+
type?: ApBatchActionGroupButtonType;
|
|
7
|
+
content?: string;
|
|
8
|
+
};
|
|
9
|
+
interface ApBatchActionGroupTypeProps {
|
|
10
|
+
default: MixinButton<ButtonProps>;
|
|
11
|
+
dropdown: MixinButton<DropdownButtonProps>;
|
|
12
|
+
}
|
|
13
|
+
export type ApBatchActionGroupPropsKeys = keyof ApBatchActionGroupTypeProps;
|
|
14
|
+
export type ApBatchActionGroupButtonProps<T extends ApBatchActionGroupPropsKeys = ApBatchActionGroupPropsKeys> = T extends ApBatchActionGroupPropsKeys ? {
|
|
15
|
+
dropdownType?: T;
|
|
16
|
+
} & ApBatchActionGroupTypeProps[T] : never;
|
|
17
|
+
export type ApBatchActionGroupMenuProps<RecordType = any> = Omit<MenuItemProps, 'title' | 'icon' | 'role' | 'originItemValue' | 'onClick'> & {
|
|
18
|
+
content?: VNodeChild;
|
|
19
|
+
onClick?: (item?: {
|
|
20
|
+
selectedRows?: RecordType[];
|
|
21
|
+
}) => Promise<any> | any;
|
|
22
|
+
auth?: string;
|
|
23
|
+
ifShow?: (item?: {
|
|
24
|
+
selectedRows?: RecordType[];
|
|
25
|
+
}) => boolean;
|
|
26
|
+
};
|
|
27
|
+
export type ApBatchActionGroupProps<RecordType = any> = {
|
|
28
|
+
/**
|
|
29
|
+
* 选中行的列表
|
|
30
|
+
*/
|
|
31
|
+
selectedRows?: RecordType[];
|
|
32
|
+
/**
|
|
33
|
+
* 按钮配置
|
|
34
|
+
*/
|
|
35
|
+
buttonProps?: ApBatchActionGroupButtonProps;
|
|
36
|
+
/**
|
|
37
|
+
* 下拉列表配置
|
|
38
|
+
*/
|
|
39
|
+
menuList?: ApBatchActionGroupMenuProps<RecordType>[];
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { accessCreate } from '@aplus-frontend/oss';
|
|
2
|
+
import { PropType, DefineComponent, CSSProperties, ComponentOptionsMixin, PublicProps, ExtractPropTypes } from 'vue';
|
|
3
|
+
import { MouseEventHandler } from 'ant-design-vue/es/_util/EventInterface';
|
|
4
|
+
import { VueTypeValidableDef } from '../../../node_modules/vue-types';
|
|
5
|
+
import { ImagePreviewType } from 'ant-design-vue/es/vc-image';
|
|
6
|
+
declare const _default: DefineComponent<{
|
|
7
|
+
path: StringConstructor;
|
|
8
|
+
getOssAccess: PropType<() => Promise<accessCreate>>;
|
|
9
|
+
onClick: {
|
|
10
|
+
type: PropType< MouseEventHandler>;
|
|
11
|
+
};
|
|
12
|
+
onError: {
|
|
13
|
+
type: PropType<OnErrorEventHandlerNonNull>;
|
|
14
|
+
};
|
|
15
|
+
prefixCls: StringConstructor;
|
|
16
|
+
placeholder: VueTypeValidableDef<any>;
|
|
17
|
+
preview: {
|
|
18
|
+
type: PropType<boolean | ImagePreviewType>;
|
|
19
|
+
default: boolean | ImagePreviewType;
|
|
20
|
+
};
|
|
21
|
+
rootClassName: StringConstructor;
|
|
22
|
+
wrapperClassName: StringConstructor;
|
|
23
|
+
fallback: StringConstructor;
|
|
24
|
+
previewPrefixCls: StringConstructor;
|
|
25
|
+
wrapperStyle: {
|
|
26
|
+
type: PropType< CSSProperties>;
|
|
27
|
+
default: CSSProperties;
|
|
28
|
+
};
|
|
29
|
+
previewMask: {
|
|
30
|
+
type: PropType<false | (() => any)>;
|
|
31
|
+
default: any;
|
|
32
|
+
};
|
|
33
|
+
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
|
|
34
|
+
path: StringConstructor;
|
|
35
|
+
getOssAccess: PropType<() => Promise<accessCreate>>;
|
|
36
|
+
onClick: {
|
|
37
|
+
type: PropType< MouseEventHandler>;
|
|
38
|
+
};
|
|
39
|
+
onError: {
|
|
40
|
+
type: PropType<OnErrorEventHandlerNonNull>;
|
|
41
|
+
};
|
|
42
|
+
prefixCls: StringConstructor;
|
|
43
|
+
placeholder: VueTypeValidableDef<any>;
|
|
44
|
+
preview: {
|
|
45
|
+
type: PropType<boolean | ImagePreviewType>;
|
|
46
|
+
default: boolean | ImagePreviewType;
|
|
47
|
+
};
|
|
48
|
+
rootClassName: StringConstructor;
|
|
49
|
+
wrapperClassName: StringConstructor;
|
|
50
|
+
fallback: StringConstructor;
|
|
51
|
+
previewPrefixCls: StringConstructor;
|
|
52
|
+
wrapperStyle: {
|
|
53
|
+
type: PropType< CSSProperties>;
|
|
54
|
+
default: CSSProperties;
|
|
55
|
+
};
|
|
56
|
+
previewMask: {
|
|
57
|
+
type: PropType<false | (() => any)>;
|
|
58
|
+
default: any;
|
|
59
|
+
};
|
|
60
|
+
}>>, {
|
|
61
|
+
preview: boolean | ImagePreviewType;
|
|
62
|
+
wrapperStyle: CSSProperties;
|
|
63
|
+
previewMask: false | (() => any);
|
|
64
|
+
}, {}>;
|
|
65
|
+
export default _default;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { defineComponent as b, computed as s, ref as h, watchEffect as O, openBlock as _, createBlock as P, unref as w, normalizeProps as C, guardReactiveProps as F } from "vue";
|
|
2
|
+
import { Image as I } from "ant-design-vue";
|
|
3
|
+
import { injectLocaleToOss as M, getOssInstance as S, getSignatureUrl as U } from "./hooks/useOss.mjs";
|
|
4
|
+
import "../../config-provider/index.mjs";
|
|
5
|
+
import { imageProps as x } from "ant-design-vue/es/image";
|
|
6
|
+
import { omit as y } from "lodash-unified";
|
|
7
|
+
import B from "./imgs/admin-fallback.jpg.mjs";
|
|
8
|
+
import L from "./imgs/aplus-fallback.jpg.mjs";
|
|
9
|
+
import { useGlobalConfig as p } from "../../config-provider/hooks/use-global-config.mjs";
|
|
10
|
+
import { useLocale as j } from "../../config-provider/hooks/use-locale.mjs";
|
|
11
|
+
const K = /* @__PURE__ */ b({
|
|
12
|
+
__name: "ApImage",
|
|
13
|
+
props: {
|
|
14
|
+
...y(x(), ["src"]),
|
|
15
|
+
path: String,
|
|
16
|
+
getOssAccess: Function
|
|
17
|
+
},
|
|
18
|
+
setup(u) {
|
|
19
|
+
const e = u, c = {
|
|
20
|
+
aplus: L,
|
|
21
|
+
admin: B
|
|
22
|
+
}, i = p("uiMode"), m = p("apUpload"), { t: f, lang: g } = j(), r = s(() => e.path), v = s(
|
|
23
|
+
() => {
|
|
24
|
+
var a;
|
|
25
|
+
return e.getOssAccess || ((a = m.value) == null ? void 0 : a.getOssAccess);
|
|
26
|
+
}
|
|
27
|
+
), l = s(
|
|
28
|
+
() => c[i.value] || c.aplus
|
|
29
|
+
), n = s(() => (e == null ? void 0 : e.fallback) || l.value), o = h(l.value);
|
|
30
|
+
M(f, g);
|
|
31
|
+
function d(a) {
|
|
32
|
+
const { path: t, getOssAccess: k, ...A } = a;
|
|
33
|
+
return A;
|
|
34
|
+
}
|
|
35
|
+
return O(async () => {
|
|
36
|
+
try {
|
|
37
|
+
if (r.value) {
|
|
38
|
+
const a = await S(v.value), t = await U({
|
|
39
|
+
oss: a,
|
|
40
|
+
fileName: r.value
|
|
41
|
+
});
|
|
42
|
+
t && (o.value = t);
|
|
43
|
+
}
|
|
44
|
+
} catch {
|
|
45
|
+
o.value = n.value;
|
|
46
|
+
}
|
|
47
|
+
}), (a, t) => (_(), P(w(I), C(F({
|
|
48
|
+
...d(e),
|
|
49
|
+
fallback: n.value,
|
|
50
|
+
src: o.value
|
|
51
|
+
})), null, 16));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
export {
|
|
55
|
+
K as default
|
|
56
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { accessCreate, Oss } from '@aplus-frontend/oss';
|
|
2
|
+
import { Translator } from '../../../config-provider';
|
|
3
|
+
import { Ref } from 'vue';
|
|
4
|
+
type GetOssAccess = () => Promise<accessCreate>;
|
|
5
|
+
export declare function injectLocaleToOss(tValue: Translator, langValue: Ref<string>): void;
|
|
6
|
+
export declare function getOssInstance(getOssAccess?: GetOssAccess): Promise<Oss>;
|
|
7
|
+
export declare function getSignatureUrl({ oss, fileName }: {
|
|
8
|
+
oss: Oss;
|
|
9
|
+
fileName: string;
|
|
10
|
+
}): Promise<string | undefined>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createOssInstance as o } from "@aplus-frontend/oss";
|
|
2
|
+
let a, s;
|
|
3
|
+
function c(n, t) {
|
|
4
|
+
a = n, s = t;
|
|
5
|
+
}
|
|
6
|
+
const i = {
|
|
7
|
+
"zh-cn": "zh_CN",
|
|
8
|
+
en: "en_US"
|
|
9
|
+
};
|
|
10
|
+
function l() {
|
|
11
|
+
return i[s.value] ?? "zh_CN";
|
|
12
|
+
}
|
|
13
|
+
async function p(n) {
|
|
14
|
+
if (!n)
|
|
15
|
+
throw new Error(`${a("ap.apUpload.pleasePass")}getOssAccess`);
|
|
16
|
+
const t = o();
|
|
17
|
+
return await t.initOssClient({
|
|
18
|
+
getOssAccess: n,
|
|
19
|
+
locale: l(),
|
|
20
|
+
onFailure: (e) => {
|
|
21
|
+
throw new Error(
|
|
22
|
+
typeof (e == null ? void 0 : e.message) == "string" ? e.message : a("ap.apUpload.FailedToObtainOssTemporaryPermissions")
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}), t;
|
|
26
|
+
}
|
|
27
|
+
function g({
|
|
28
|
+
oss: n,
|
|
29
|
+
fileName: t
|
|
30
|
+
}) {
|
|
31
|
+
return n.getSignatureUrl(t);
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
p as getOssInstance,
|
|
35
|
+
g as getSignatureUrl,
|
|
36
|
+
c as injectLocaleToOss
|
|
37
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const A = "data:image/jpeg;base64,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";
|
|
2
|
+
export {
|
|
3
|
+
A as default
|
|
4
|
+
};
|