yxuse 1.0.36 → 1.0.37
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/lib/api.cjs.js +1 -1
- package/lib/api.es.js +2 -3
- package/lib/api.es.js.map +1 -1
- package/lib/index.cjs.js +1 -1
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.cjs3.js +1 -1
- package/lib/index.cjs5.js +17 -28
- package/lib/index.cjs5.js.gz +0 -0
- package/lib/index.cjs5.js.map +1 -1
- package/lib/index.cjs6.js +1 -1
- package/lib/index.cjs6.js.map +1 -1
- package/lib/index.es.js +2 -3
- package/lib/index.es.js.map +1 -1
- package/lib/index.es3.js +1 -1
- package/lib/index.es5.js +3671 -4602
- package/lib/index.es5.js.gz +0 -0
- package/lib/index.es5.js.map +1 -1
- package/lib/index.es6.js +173 -47
- package/lib/index.es6.js.map +1 -1
- package/package.json +1 -1
- package/lib/index.cjs7.js +0 -2
- package/lib/index.cjs7.js.map +0 -1
- package/lib/index.es7.js +0 -178
- package/lib/index.es7.js.map +0 -1
package/lib/index.es6.js
CHANGED
|
@@ -1,51 +1,177 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
},
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
1
|
+
import { d as y, o as d, c as f, w as c, a as S, F as v, r as N, b as g, e as T, m, f as s, g as w, j as _, k as D, u as h, l as C, n as x, t as k } from "./index.es5.js";
|
|
2
|
+
const V = {
|
|
3
|
+
tableData: {
|
|
4
|
+
type: Array,
|
|
5
|
+
require: !0
|
|
6
|
+
},
|
|
7
|
+
rowKey: {
|
|
8
|
+
type: String,
|
|
9
|
+
require: !0
|
|
10
|
+
},
|
|
11
|
+
columns: {
|
|
12
|
+
type: Array,
|
|
13
|
+
require: !0,
|
|
14
|
+
default: () => []
|
|
15
|
+
},
|
|
16
|
+
sortHandle: {
|
|
17
|
+
type: String,
|
|
18
|
+
default: "",
|
|
19
|
+
require: !1
|
|
20
|
+
},
|
|
21
|
+
border: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
default: !1
|
|
24
|
+
},
|
|
25
|
+
align: {
|
|
26
|
+
type: String,
|
|
27
|
+
default: "center",
|
|
28
|
+
require: !1
|
|
29
|
+
}
|
|
30
|
+
}, O = /* @__PURE__ */ y({
|
|
31
|
+
__name: "DynamicComponents",
|
|
32
|
+
props: {
|
|
33
|
+
col: null,
|
|
34
|
+
row: null
|
|
35
|
+
},
|
|
36
|
+
setup(r) {
|
|
37
|
+
const n = r;
|
|
38
|
+
return (o, u) => {
|
|
39
|
+
var i, l, t;
|
|
40
|
+
return d(), f(g(`el-${(i = n.col) == null ? void 0 : i.type}`), m({
|
|
41
|
+
modelValue: r.row[(l = n.col) == null ? void 0 : l.prop],
|
|
42
|
+
"onUpdate:modelValue": u[0] || (u[0] = (e) => {
|
|
43
|
+
var a;
|
|
44
|
+
return r.row[(a = n.col) == null ? void 0 : a.prop] = e;
|
|
45
|
+
})
|
|
46
|
+
}, (t = n.col) == null ? void 0 : t.config), {
|
|
47
|
+
default: c(() => {
|
|
48
|
+
var e;
|
|
49
|
+
return [
|
|
50
|
+
n.col.type === "select" ? (d(!0), S(v, { key: 0 }, N((e = n.col) == null ? void 0 : e.config.options, (a) => (d(), f(g("el-option"), {
|
|
51
|
+
key: a.value,
|
|
52
|
+
label: a.label,
|
|
53
|
+
value: a.value
|
|
54
|
+
}, null, 8, ["label", "value"]))), 128)) : T("", !0)
|
|
55
|
+
];
|
|
56
|
+
}),
|
|
57
|
+
_: 1
|
|
58
|
+
}, 16, ["modelValue"]);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
function j(r) {
|
|
63
|
+
return typeof r == "function" || Object.prototype.toString.call(r) === "[object Object]" && !_(r);
|
|
64
|
+
}
|
|
65
|
+
const q = {
|
|
66
|
+
"operate-handle": (r, n) => !!(r || n)
|
|
67
|
+
}, B = /* @__PURE__ */ y({
|
|
68
|
+
name: "YxTable",
|
|
69
|
+
props: V,
|
|
70
|
+
emits: q,
|
|
71
|
+
setup(r, {
|
|
72
|
+
attrs: n,
|
|
73
|
+
slots: o,
|
|
74
|
+
emit: u
|
|
75
|
+
}) {
|
|
76
|
+
return () => {
|
|
77
|
+
const i = (e, a) => {
|
|
78
|
+
var p;
|
|
79
|
+
return e.slotName && ((p = o[e.slotName]) == null ? void 0 : p.call(o, a));
|
|
80
|
+
}, l = r.columns.map((e) => s(w("el-table-column"), m(e, {
|
|
81
|
+
align: r.align
|
|
82
|
+
}), {
|
|
83
|
+
default: (a) => (e == null ? void 0 : e.renderType) === "operate" ? t(e, a) : e != null && e.renderType && (e == null ? void 0 : e.renderType) !== "operate" ? s(O, {
|
|
84
|
+
col: e,
|
|
85
|
+
row: a.row
|
|
86
|
+
}, null) : (e == null ? void 0 : e.slotName) && i(e, a)
|
|
87
|
+
})), t = (e, a) => {
|
|
88
|
+
var p;
|
|
89
|
+
return s("div", {
|
|
90
|
+
class: "flex justify-center cursor-pointer"
|
|
91
|
+
}, [(p = e.operate) == null ? void 0 : p.map((b) => s("span", {
|
|
92
|
+
onClick: () => u("operate-handle", b.key, a.row),
|
|
93
|
+
class: "mr-10 whitespace-nowrap"
|
|
94
|
+
}, [b.label]))]);
|
|
35
95
|
};
|
|
36
|
-
s
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
96
|
+
return s("div", null, [s(w("el-table"), m(n, {
|
|
97
|
+
"row-key": r.rowKey,
|
|
98
|
+
data: r.tableData,
|
|
99
|
+
border: r.border
|
|
100
|
+
}), j(l) ? l : {
|
|
101
|
+
default: () => [l]
|
|
102
|
+
})]);
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}), K = /* @__PURE__ */ y({
|
|
106
|
+
__name: "index",
|
|
107
|
+
setup(r) {
|
|
108
|
+
(async () => {
|
|
109
|
+
const t = await C();
|
|
110
|
+
console.log(t);
|
|
111
|
+
})();
|
|
112
|
+
const o = D([]), u = [
|
|
113
|
+
{ label: "展开行", type: "expand", slotName: "expand" },
|
|
114
|
+
{ label: "序号", type: "index" },
|
|
115
|
+
{ label: "id", prop: "id" },
|
|
116
|
+
{ label: "名字", prop: "name" },
|
|
117
|
+
{ label: "slot", prop: "slot", slotName: "testSlot" },
|
|
118
|
+
{
|
|
119
|
+
label: "time",
|
|
120
|
+
prop: "time",
|
|
121
|
+
formatter: ({ time: t }) => new Date(t).toLocaleString()
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
label: "input",
|
|
125
|
+
prop: "name",
|
|
126
|
+
renderType: "input",
|
|
127
|
+
formatter: ({ time: t }) => new Date(t).toLocaleString()
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
label: "select",
|
|
131
|
+
prop: "name",
|
|
132
|
+
renderType: "select",
|
|
133
|
+
config: {
|
|
134
|
+
options: [{ label: "test", value: "test" }]
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
label: "操作",
|
|
139
|
+
fixed: "right",
|
|
140
|
+
width: 200,
|
|
141
|
+
renderType: "operate",
|
|
142
|
+
operate: [
|
|
143
|
+
{ label: "修改", key: "change" },
|
|
144
|
+
{ label: "重置", key: "reset" },
|
|
145
|
+
{ label: "权限", key: "power" },
|
|
146
|
+
{ label: "删除", key: "del" }
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
], i = "uid";
|
|
150
|
+
for (let t = 0; t < 20; t++)
|
|
151
|
+
o.value.push({
|
|
152
|
+
id: t,
|
|
153
|
+
name: "123" + t,
|
|
154
|
+
uid: "test" + t,
|
|
155
|
+
time: Date.now(),
|
|
156
|
+
slot: "123"
|
|
157
|
+
});
|
|
158
|
+
const l = (t, e) => {
|
|
159
|
+
console.log(t, e);
|
|
160
|
+
};
|
|
161
|
+
return (t, e) => (d(), S("div", null, [
|
|
162
|
+
s(h(B), m({ tableData: o.value, columns: u, rowKey: i }, { onOperateHandle: l }), {
|
|
163
|
+
expand: c(({ row: a }) => [
|
|
164
|
+
x(k(JSON.stringify(a)), 1)
|
|
165
|
+
]),
|
|
166
|
+
testSlot: c(({ row: a }) => [
|
|
167
|
+
x(k(JSON.stringify(a)), 1)
|
|
168
|
+
]),
|
|
169
|
+
_: 1
|
|
170
|
+
}, 16)
|
|
171
|
+
]));
|
|
172
|
+
}
|
|
173
|
+
});
|
|
47
174
|
export {
|
|
48
|
-
|
|
49
|
-
w as i
|
|
175
|
+
K as default
|
|
50
176
|
};
|
|
51
177
|
//# sourceMappingURL=index.es6.js.map
|
package/lib/index.es6.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es6.js","sources":["../packages/api/auth/index.ts"],"sourcesContent":["/*\r\n * @Author: WangXin\r\n * @Date: 2023-08-17 09:29:40\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-09-04 17:39:23\r\n * @FilePath: \\yxUse\\packages\\api\\auth\\index.ts\r\n * @Description:\r\n *\r\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\r\n */\r\nimport { http } from \"../../utils/http\";\r\nexport const getToken = () => {\r\n\tconst GlobalState = sessionStorage.getItem(\"GlobalState\");\r\n\tconst token = JSON.parse(GlobalState)?.token || null;\r\n\treturn token;\r\n};\r\n\r\nexport const getUserInfo = () => {\r\n\tconst GlobalState = sessionStorage.getItem(\"GlobalState\");\r\n\tconst userInfo = JSON.parse(GlobalState)?.userInfo || null;\r\n\treturn userInfo;\r\n};\r\n\r\nexport const getUserRouteList = async () => {\r\n\tif (!getToken()) return [];\r\n\tconst data = await http.request<any>(\"/account/home/menu\", \"GET\", \"\", false, true);\r\n\treturn data;\r\n};\r\n\r\n/**\r\n *\r\n * @param systemName 系统名称\r\n * @description 综合管理分系统->integrated\r\n * @description 站控分系统->station\r\n * @description 综合管理->integrated\r\n * @description 轨道分系统->orbit\r\n * @description 任务计划分系统->traceplan\r\n * @description 遥控分系统->telecommand\r\n * @description 遥测分系统->telemetry\r\n */\r\nexport const getUserPermissions = async (systemName: string) => {\r\n\tconsole.log(\"=======\", getToken());\r\n\tif (!getToken()) return null;\r\n\tconsole.log(\"====request===\", http.request);\r\n\tconst { data } = await http.request<any>(\"/account/auth/route/list\", \"GET\", \"\", false, true);\r\n\tconsole.log(data);\r\n\tconst systemPermissionList = data.filter(route => route.routeTag.includes(systemName));\r\n\tconst userMenuList = systemPermissionList.filter(item => item.routeType === \"VIEW\");\r\n\tconst userBtnList = systemPermissionList.filter(item => item.routeType === \"BTN\");\r\n\treturn {\r\n\t\tuserMenuList,\r\n\t\tuserBtnList\r\n\t};\r\n\ttry {\r\n\t} catch (err) {\r\n\t\tconsole.log(\"===\", err);\r\n\r\n\t\treturn null;\r\n\t}\r\n};\r\n/**\r\n *\r\n * @param userMenuList 用户路由数据\r\n * @returns UserRouter 用户动态路由\r\n * @description 综合管理分系统->integrated\r\n * @description 站控分系统->station\r\n */\r\nexport const getUserRouter = (userMenuList): any[] => {\r\n\tlet menuList = [];\r\n\tconst modules = import.meta.glob(\"@/views/**/*.vue\");\r\n\t//页面配置项\r\n\tconst viewConfig = import.meta.glob(\"@/views/**/config.ts\", {\r\n\t\timport: \"viewConfig\",\r\n\t\teager: true\r\n\t});\r\n\tuserMenuList.forEach((item: any) => {\r\n\t\tconst configKey = `/src/views${item.routeView}/config.ts`;\r\n\t\tconst viewKey = `/src/views${item.routeView}/index.vue`;\r\n\t\t// const globPath = import.meta.env.VITE_APP_IDENTIFY; //自动加入系统标识路径\r\n\t\tif (modules[viewKey] && viewConfig[configKey]) {\r\n\t\t\tconst pageConfig: any = viewConfig[configKey];\r\n\t\t\tconst routerObject = {\r\n\t\t\t\tpath: item.routeView,\r\n\t\t\t\tname: item.routeView.split(\"/\")[1],\r\n\t\t\t\tmeta: {\r\n\t\t\t\t\ttitle: pageConfig.title,\r\n\t\t\t\t\ticon: pageConfig.icon\r\n\t\t\t\t},\r\n\t\t\t\tcomponent: modules[viewKey]\r\n\t\t\t};\r\n\t\t\tmenuList.push(routerObject);\r\n\t\t}\r\n\t});\r\n\treturn menuList;\r\n};\r\n"],"names":["getToken","GlobalState","_a","getUserInfo","getUserRouteList","http","getUserPermissions","systemName","data","systemPermissionList","route","userMenuList","item","userBtnList","getUserRouter","menuList","modules","viewConfig","configKey","viewKey","pageConfig","routerObject"],"mappings":";AAWO,MAAMA,IAAW,MAAM;;AACvB,QAAAC,IAAc,eAAe,QAAQ,aAAa;AAEjD,WADOC,IAAA,KAAK,MAAMD,CAAW,MAAtB,gBAAAC,EAAyB,UAAS;AAEjD,GAEaC,IAAc,MAAM;;AAC1B,QAAAF,IAAc,eAAe,QAAQ,aAAa;AAEjD,WADUC,IAAA,KAAK,MAAMD,CAAW,MAAtB,gBAAAC,EAAyB,aAAY;AAEvD,GAEaE,IAAmB,YAC1BJ,EAAS,IACD,MAAMK,EAAK,QAAa,sBAAsB,OAAO,IAAI,IAAO,EAAI,IADzD,IAgBZC,IAAqB,OAAOC,MAAuB;AAE/D,MADQ,QAAA,IAAI,WAAWP,EAAU,CAAA,GAC7B,CAACA,EAAS;AAAU,WAAA;AAChB,UAAA,IAAI,kBAAkBK,EAAK,OAAO;AACpC,QAAA,EAAE,MAAAG,EAAK,IAAI,MAAMH,EAAK,QAAa,4BAA4B,OAAO,IAAI,IAAO,EAAI;AAC3F,UAAQ,IAAIG,CAAI;AACV,QAAAC,IAAuBD,EAAK,OAAO,CAAAE,MAASA,EAAM,SAAS,SAASH,CAAU,CAAC,GAC/EI,IAAeF,EAAqB,OAAO,CAAQG,MAAAA,EAAK,cAAc,MAAM,GAC5EC,IAAcJ,EAAqB,OAAO,CAAQG,MAAAA,EAAK,cAAc,KAAK;AACzE,SAAA;AAAA,IACN,cAAAD;AAAA,IACA,aAAAE;AAAA,EAAA;AAQF,GAQaC,IAAgB,CAACH,MAAwB;AACrD,MAAII,IAAW,CAAA;AACT,QAAAC,uCAEAC,IAAa,uBAAA,OAAA;AAIN,SAAAN,EAAA,QAAQ,CAACC,MAAc;AAC7B,UAAAM,IAAY,aAAaN,EAAK,uBAC9BO,IAAU,aAAaP,EAAK;AAElC,QAAII,EAAQG,CAAO,KAAKF,EAAWC,CAAS,GAAG;AACxC,YAAAE,IAAkBH,EAAWC,CAAS,GACtCG,IAAe;AAAA,QACpB,MAAMT,EAAK;AAAA,QACX,MAAMA,EAAK,UAAU,MAAM,GAAG,EAAE,CAAC;AAAA,QACjC,MAAM;AAAA,UACL,OAAOQ,EAAW;AAAA,UAClB,MAAMA,EAAW;AAAA,QAClB;AAAA,QACA,WAAWJ,EAAQG,CAAO;AAAA,MAAA;AAE3B,MAAAJ,EAAS,KAAKM,CAAY;AAAA;AAAA,EAC3B,CACA,GACMN;AACR;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.es6.js","sources":["../packages/components/YxTable/interface/index.ts","../packages/components/YxTable/index.tsx","../example/table/index.vue"],"sourcesContent":["/*\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:58:42\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-08-29 09:20:56\r\n * @FilePath: \\yxUse\\packages\\components\\YxTable\\interface\\index.ts\r\n * @Description:\r\n *\r\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\r\n */\r\nimport type { PropType } from \"vue\";\r\nexport const yxTableProps = {\r\n\ttableData: {\r\n\t\ttype: Array as PropType<TableProps[\"tableData\"]>,\r\n\t\trequire: true\r\n\t},\r\n\trowKey: {\r\n\t\ttype: String,\r\n\t\trequire: true\r\n\t},\r\n\tcolumns: {\r\n\t\ttype: Array as PropType<TableColumn[]>,\r\n\t\trequire: true,\r\n\t\tdefault: () => []\r\n\t},\r\n\tsortHandle: {\r\n\t\ttype: String,\r\n\t\tdefault: \"\",\r\n\t\trequire: false\r\n\t},\r\n\tborder: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\talign: {\r\n\t\ttype: String,\r\n\t\tdefault: \"center\",\r\n\t\trequire: false\r\n\t}\r\n};\r\nexport interface TableProps {\r\n\t/**表格数据 */\r\n\ttableData: Array<any>;\r\n\trowKey: string;\r\n\tcolumns: TableColumn[];\r\n\tpageInfo?: PageInfo;\r\n\t/**对齐方式 */\r\n\talign?: string;\r\n\tborder?: boolean;\r\n\tsearchFormConfig?: FormConfig[];\r\n\tsearchParams?: { [key: string]: any };\r\n\t/**是否开启拖拽 */\r\n\tsort?: boolean;\r\n\tsortHandle?: string; //拖拽节点类名\r\n\tload?: Function;\r\n}\r\nexport interface FormConfig {\r\n\tlabel: string; //名称\r\n\ttype: string; //类型\r\n\tkey?: string; // 指定数据绑定的key\r\n\toptions?: Array<{ [key: string]: any }> | Function; //下拉框选项配置\r\n\twidth?: number; //文字宽度\r\n\tcomponentWidth?: string; //组件宽度\r\n\tdateType?: string; //日期渲染的类型\r\n\tinputType?: string; //文本框类型\r\n\tdisabled?: boolean; //是否禁用\r\n\tclearable?: boolean; //是否能清除\r\n}\r\nexport interface PageInfo {\r\n\tsize: number;\r\n\tcurrent: number;\r\n\ttotal: number;\r\n}\r\nexport interface TableColumn {\r\n\t/** 列的名字 */\r\n\tlabel?: string;\r\n\t/** 对应数据的key */\r\n\tprop?: string;\r\n\t/** 宽度 */\r\n\twidth?: number;\r\n\t/** 列的类型 */\r\n\ttype?: \"index\" | \"selection\" | \"expand\";\r\n\t/** 渲染类型 */\r\n\trenderType?: string;\r\n\t/** 操作栏 */\r\n\toperate?: any[];\r\n\t/** 固定栏 */\r\n\tfixed?: string;\r\n\t/** 开关打开的value */\r\n\tactiveValue?: string | number | boolean;\r\n\t/** 开关关闭的value */\r\n\tinactiveValue?: string | number | boolean;\r\n\t/** 对数据进行格式化 */\r\n\tformatter?: Function;\r\n\t/** 插槽名称 */\r\n\tslotName?: string;\r\n\t/** 动态组件配置 */\r\n\tconfig?: Record<string, any>;\r\n}\r\n","/*\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:10:35\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-08-29 09:20:21\r\n * @FilePath: \\yxUse\\packages\\components\\YxTable\\index.tsx\r\n * @Description:\r\n *\r\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\r\n */\r\nimport { defineComponent } from \"vue\";\r\nimport type { ExtractPropTypes } from \"vue\";\r\nimport type { TableColumn, TableRow } from \"./interface/index\";\r\nimport { yxTableProps } from \"./interface/index\";\r\nimport DynamicComponents from \"./components/DynamicComponents.vue\";\r\nexport type YxTableProps = ExtractPropTypes<typeof yxTableProps>;\r\n\r\nconst yxTableEmits = {\r\n\t\"operate-handle\": (key: string, row: object) => (key || row ? true : false)\r\n};\r\nexport type TabNavEmits = typeof yxTableEmits;\r\n\r\nconst YxTable = defineComponent({\r\n\tname: \"YxTable\",\r\n\tprops: yxTableProps,\r\n\temits: yxTableEmits,\r\n\tsetup(props, { attrs, slots, emit }) {\r\n\t\treturn () => {\r\n\t\t\t//动态插槽\r\n\t\t\tconst columnSlots = (col: TableColumn, scope: TableRow) => col.slotName && slots[col.slotName]?.(scope);\r\n\t\t\t//处理列\r\n\t\t\tconst columns = props.columns.map((col: TableColumn) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<el-table-column {...col} align={props.align}>\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdefault: (scope: any) => {\r\n\t\t\t\t\t\t\t\t//先处理操作栏\r\n\t\t\t\t\t\t\t\tif (col?.renderType === \"operate\") return renderOperate(col, scope);\r\n\t\t\t\t\t\t\t\t//处理动态渲染的组件\r\n\t\t\t\t\t\t\t\tif (col?.renderType && col?.renderType !== \"operate\") return <DynamicComponents col={col} row={scope.row} />;\r\n\t\t\t\t\t\t\t\t//处理自定义插槽\r\n\t\t\t\t\t\t\t\treturn col?.slotName && columnSlots(col, scope);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</el-table-column>\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\t//操作栏\r\n\t\t\tconst renderOperate = (col: TableColumn, scope) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div class=\"flex justify-center cursor-pointer\">\r\n\t\t\t\t\t\t{col.operate?.map(op => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<span onClick={() => emit(\"operate-handle\", op.key, scope.row)} class=\"mr-10 whitespace-nowrap\">\r\n\t\t\t\t\t\t\t\t\t{op.label}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\t};\r\n\t\t\treturn (\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<el-table {...attrs} row-key={props.rowKey} data={props.tableData} border={props.border}>\r\n\t\t\t\t\t\t{columns}\r\n\t\t\t\t\t</el-table>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n});\r\nexport default YxTable;\r\n","<!--\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:13:48\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-09-04 17:23:30\r\n * @FilePath: \\yxUse\\example\\table\\index.vue\r\n * @Description: \r\n * \r\n * Copyright (c) 2023 by YuXing, All Rights Reserved. \r\n-->\r\n<script setup lang=\"ts\">\r\nimport { ref } from \"vue\";\r\nimport YxTable from \"../../packages/components/YxTable\";\r\nimport type { TableColumn } from \"../../packages/components/YxTable/interface/index.ts\";\r\nimport { auth } from \"../../packages/api\";\r\nconst test = async () => {\r\n\tconst data = await auth.getUserPermissions();\r\n\tconsole.log(data);\r\n};\r\ntest();\r\ninterface User {\r\n\tid: number;\r\n\tname: string;\r\n\tuid: string;\r\n\ttime: number;\r\n\tslot: string;\r\n}\r\nconst tableData = ref<User[]>([]);\r\nconst columns: TableColumn[] = [\r\n\t{ label: \"展开行\", type: \"expand\", slotName: \"expand\" },\r\n\t{ label: \"序号\", type: \"index\" },\r\n\t{ label: \"id\", prop: \"id\" },\r\n\t{ label: \"名字\", prop: \"name\" },\r\n\t{ label: \"slot\", prop: \"slot\", slotName: \"testSlot\" },\r\n\t{\r\n\t\tlabel: \"time\",\r\n\t\tprop: \"time\",\r\n\t\tformatter: ({ time }) => new Date(time).toLocaleString()\r\n\t},\r\n\t{\r\n\t\tlabel: \"input\",\r\n\t\tprop: \"name\",\r\n\t\trenderType: \"input\",\r\n\t\tformatter: ({ time }) => new Date(time).toLocaleString()\r\n\t},\r\n\t{\r\n\t\tlabel: \"select\",\r\n\t\tprop: \"name\",\r\n\t\trenderType: \"select\",\r\n\t\tconfig: {\r\n\t\t\toptions: [{ label: \"test\", value: \"test\" }]\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tlabel: \"操作\",\r\n\t\tfixed: \"right\",\r\n\t\twidth: 200,\r\n\t\trenderType: \"operate\",\r\n\t\toperate: [\r\n\t\t\t{ label: \"修改\", key: \"change\" },\r\n\t\t\t{ label: \"重置\", key: \"reset\" },\r\n\t\t\t{ label: \"权限\", key: \"power\" },\r\n\t\t\t{ label: \"删除\", key: \"del\" }\r\n\t\t]\r\n\t}\r\n];\r\nconst rowKey = \"uid\";\r\nfor (let index = 0; index < 20; index++) {\r\n\ttableData.value.push({\r\n\t\tid: index,\r\n\t\tname: \"123\" + index,\r\n\t\tuid: \"test\" + index,\r\n\t\ttime: Date.now(),\r\n\t\tslot: \"123\"\r\n\t});\r\n}\r\nconst operateHandle = (key, row) => {\r\n\tconsole.log(key, row);\r\n};\r\n</script>\r\n<template>\r\n\t<div>\r\n\t\t<YxTable v-bind=\"{ tableData, columns, rowKey }\" @operate-handle=\"operateHandle\">\r\n\t\t\t<template #expand=\"{ row }\"> {{ JSON.stringify(row) }} </template>\r\n\t\t\t<template #testSlot=\"{ row }\"> {{ JSON.stringify(row) }} </template>\r\n\t\t</YxTable>\r\n\t</div>\r\n</template>\r\n<style scoped lang=\"scss\"></style>\r\n"],"names":["yxTableProps","_isSlot","s","_isVNode","yxTableEmits","key","row","YxTable","defineComponent","name","props","emits","setup","attrs","slots","emit","columnSlots","col","scope","slotName","columns","map","_createVNode","_resolveComponent","_mergeProps","align","default","renderType","renderOperate","DynamicComponents","operate","op","label","rowKey","tableData","border","data","auth.getUserPermissions","ref","time","index","operateHandle"],"mappings":"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"}
|
package/package.json
CHANGED
package/lib/index.cjs7.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs5.js"),c=require("./index.cjs6.js"),m={tableData:{type:Array,require:!0},rowKey:{type:String,require:!0},columns:{type:Array,require:!0,default:()=>[]},sortHandle:{type:String,default:"",require:!1},border:{type:Boolean,default:!1},align:{type:String,default:"center",require:!1}},y=e.defineComponent({__name:"DynamicComponents",props:{col:null,row:null},setup(a){const o=a;return(i,p)=>{var s,l,r;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(`el-${(s=o.col)==null?void 0:s.type}`),e.mergeProps({modelValue:a.row[(l=o.col)==null?void 0:l.prop],"onUpdate:modelValue":p[0]||(p[0]=t=>{var n;return a.row[(n=o.col)==null?void 0:n.prop]=t})},(r=o.col)==null?void 0:r.config),{default:e.withCtx(()=>{var t;return[o.col.type==="select"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList((t=o.col)==null?void 0:t.config.options,n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent("el-option"),{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128)):e.createCommentVNode("",!0)]}),_:1},16,["modelValue"])}}});function b(a){return typeof a=="function"||Object.prototype.toString.call(a)==="[object Object]"&&!e.isVNode(a)}const f={"operate-handle":(a,o)=>!!(a||o)},g=e.defineComponent({name:"YxTable",props:m,emits:f,setup(a,{attrs:o,slots:i,emit:p}){return()=>{const s=(t,n)=>{var u;return t.slotName&&((u=i[t.slotName])==null?void 0:u.call(i,n))},l=a.columns.map(t=>e.createVNode(e.resolveComponent("el-table-column"),e.mergeProps(t,{align:a.align}),{default:n=>(t==null?void 0:t.renderType)==="operate"?r(t,n):t!=null&&t.renderType&&(t==null?void 0:t.renderType)!=="operate"?e.createVNode(y,{col:t,row:n.row},null):(t==null?void 0:t.slotName)&&s(t,n)})),r=(t,n)=>{var u;return e.createVNode("div",{class:"flex justify-center cursor-pointer"},[(u=t.operate)==null?void 0:u.map(d=>e.createVNode("span",{onClick:()=>p("operate-handle",d.key,n.row),class:"mr-10 whitespace-nowrap"},[d.label]))])};return e.createVNode("div",null,[e.createVNode(e.resolveComponent("el-table"),e.mergeProps(o,{"row-key":a.rowKey,data:a.tableData,border:a.border}),b(l)?l:{default:()=>[l]})])}}}),w=e.defineComponent({__name:"index",setup(a){(async()=>{const r=await c.getUserPermissions();console.log(r)})();const i=e.ref([]),p=[{label:"展开行",type:"expand",slotName:"expand"},{label:"序号",type:"index"},{label:"id",prop:"id"},{label:"名字",prop:"name"},{label:"slot",prop:"slot",slotName:"testSlot"},{label:"time",prop:"time",formatter:({time:r})=>new Date(r).toLocaleString()},{label:"input",prop:"name",renderType:"input",formatter:({time:r})=>new Date(r).toLocaleString()},{label:"select",prop:"name",renderType:"select",config:{options:[{label:"test",value:"test"}]}},{label:"操作",fixed:"right",width:200,renderType:"operate",operate:[{label:"修改",key:"change"},{label:"重置",key:"reset"},{label:"权限",key:"power"},{label:"删除",key:"del"}]}],s="uid";for(let r=0;r<20;r++)i.value.push({id:r,name:"123"+r,uid:"test"+r,time:Date.now(),slot:"123"});const l=(r,t)=>{console.log(r,t)};return(r,t)=>(e.openBlock(),e.createElementBlock("div",null,[e.createVNode(e.unref(g),e.mergeProps({tableData:i.value,columns:p,rowKey:s},{onOperateHandle:l}),{expand:e.withCtx(({row:n})=>[e.createTextVNode(e.toDisplayString(JSON.stringify(n)),1)]),testSlot:e.withCtx(({row:n})=>[e.createTextVNode(e.toDisplayString(JSON.stringify(n)),1)]),_:1},16)]))}});exports.default=w;
|
|
2
|
-
//# sourceMappingURL=index.cjs7.js.map
|
package/lib/index.cjs7.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs7.js","sources":["../packages/components/YxTable/interface/index.ts","../packages/components/YxTable/index.tsx","../example/table/index.vue"],"sourcesContent":["/*\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:58:42\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-08-29 09:20:56\r\n * @FilePath: \\yxUse\\packages\\components\\YxTable\\interface\\index.ts\r\n * @Description:\r\n *\r\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\r\n */\r\nimport type { PropType } from \"vue\";\r\nexport const yxTableProps = {\r\n\ttableData: {\r\n\t\ttype: Array as PropType<TableProps[\"tableData\"]>,\r\n\t\trequire: true\r\n\t},\r\n\trowKey: {\r\n\t\ttype: String,\r\n\t\trequire: true\r\n\t},\r\n\tcolumns: {\r\n\t\ttype: Array as PropType<TableColumn[]>,\r\n\t\trequire: true,\r\n\t\tdefault: () => []\r\n\t},\r\n\tsortHandle: {\r\n\t\ttype: String,\r\n\t\tdefault: \"\",\r\n\t\trequire: false\r\n\t},\r\n\tborder: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\talign: {\r\n\t\ttype: String,\r\n\t\tdefault: \"center\",\r\n\t\trequire: false\r\n\t}\r\n};\r\nexport interface TableProps {\r\n\t/**表格数据 */\r\n\ttableData: Array<any>;\r\n\trowKey: string;\r\n\tcolumns: TableColumn[];\r\n\tpageInfo?: PageInfo;\r\n\t/**对齐方式 */\r\n\talign?: string;\r\n\tborder?: boolean;\r\n\tsearchFormConfig?: FormConfig[];\r\n\tsearchParams?: { [key: string]: any };\r\n\t/**是否开启拖拽 */\r\n\tsort?: boolean;\r\n\tsortHandle?: string; //拖拽节点类名\r\n\tload?: Function;\r\n}\r\nexport interface FormConfig {\r\n\tlabel: string; //名称\r\n\ttype: string; //类型\r\n\tkey?: string; // 指定数据绑定的key\r\n\toptions?: Array<{ [key: string]: any }> | Function; //下拉框选项配置\r\n\twidth?: number; //文字宽度\r\n\tcomponentWidth?: string; //组件宽度\r\n\tdateType?: string; //日期渲染的类型\r\n\tinputType?: string; //文本框类型\r\n\tdisabled?: boolean; //是否禁用\r\n\tclearable?: boolean; //是否能清除\r\n}\r\nexport interface PageInfo {\r\n\tsize: number;\r\n\tcurrent: number;\r\n\ttotal: number;\r\n}\r\nexport interface TableColumn {\r\n\t/** 列的名字 */\r\n\tlabel?: string;\r\n\t/** 对应数据的key */\r\n\tprop?: string;\r\n\t/** 宽度 */\r\n\twidth?: number;\r\n\t/** 列的类型 */\r\n\ttype?: \"index\" | \"selection\" | \"expand\";\r\n\t/** 渲染类型 */\r\n\trenderType?: string;\r\n\t/** 操作栏 */\r\n\toperate?: any[];\r\n\t/** 固定栏 */\r\n\tfixed?: string;\r\n\t/** 开关打开的value */\r\n\tactiveValue?: string | number | boolean;\r\n\t/** 开关关闭的value */\r\n\tinactiveValue?: string | number | boolean;\r\n\t/** 对数据进行格式化 */\r\n\tformatter?: Function;\r\n\t/** 插槽名称 */\r\n\tslotName?: string;\r\n\t/** 动态组件配置 */\r\n\tconfig?: Record<string, any>;\r\n}\r\n","/*\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:10:35\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-08-29 09:20:21\r\n * @FilePath: \\yxUse\\packages\\components\\YxTable\\index.tsx\r\n * @Description:\r\n *\r\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\r\n */\r\nimport { defineComponent } from \"vue\";\r\nimport type { ExtractPropTypes } from \"vue\";\r\nimport type { TableColumn, TableRow } from \"./interface/index\";\r\nimport { yxTableProps } from \"./interface/index\";\r\nimport DynamicComponents from \"./components/DynamicComponents.vue\";\r\nexport type YxTableProps = ExtractPropTypes<typeof yxTableProps>;\r\n\r\nconst yxTableEmits = {\r\n\t\"operate-handle\": (key: string, row: object) => (key || row ? true : false)\r\n};\r\nexport type TabNavEmits = typeof yxTableEmits;\r\n\r\nconst YxTable = defineComponent({\r\n\tname: \"YxTable\",\r\n\tprops: yxTableProps,\r\n\temits: yxTableEmits,\r\n\tsetup(props, { attrs, slots, emit }) {\r\n\t\treturn () => {\r\n\t\t\t//动态插槽\r\n\t\t\tconst columnSlots = (col: TableColumn, scope: TableRow) => col.slotName && slots[col.slotName]?.(scope);\r\n\t\t\t//处理列\r\n\t\t\tconst columns = props.columns.map((col: TableColumn) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<el-table-column {...col} align={props.align}>\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdefault: (scope: any) => {\r\n\t\t\t\t\t\t\t\t//先处理操作栏\r\n\t\t\t\t\t\t\t\tif (col?.renderType === \"operate\") return renderOperate(col, scope);\r\n\t\t\t\t\t\t\t\t//处理动态渲染的组件\r\n\t\t\t\t\t\t\t\tif (col?.renderType && col?.renderType !== \"operate\") return <DynamicComponents col={col} row={scope.row} />;\r\n\t\t\t\t\t\t\t\t//处理自定义插槽\r\n\t\t\t\t\t\t\t\treturn col?.slotName && columnSlots(col, scope);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</el-table-column>\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\t//操作栏\r\n\t\t\tconst renderOperate = (col: TableColumn, scope) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div class=\"flex justify-center cursor-pointer\">\r\n\t\t\t\t\t\t{col.operate?.map(op => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<span onClick={() => emit(\"operate-handle\", op.key, scope.row)} class=\"mr-10 whitespace-nowrap\">\r\n\t\t\t\t\t\t\t\t\t{op.label}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\t};\r\n\t\t\treturn (\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<el-table {...attrs} row-key={props.rowKey} data={props.tableData} border={props.border}>\r\n\t\t\t\t\t\t{columns}\r\n\t\t\t\t\t</el-table>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n});\r\nexport default YxTable;\r\n","<!--\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:13:48\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-09-04 17:23:30\r\n * @FilePath: \\yxUse\\example\\table\\index.vue\r\n * @Description: \r\n * \r\n * Copyright (c) 2023 by YuXing, All Rights Reserved. \r\n-->\r\n<script setup lang=\"ts\">\r\nimport { ref } from \"vue\";\r\nimport YxTable from \"../../packages/components/YxTable\";\r\nimport type { TableColumn } from \"../../packages/components/YxTable/interface/index.ts\";\r\nimport { auth } from \"../../packages/api\";\r\nconst test = async () => {\r\n\tconst data = await auth.getUserPermissions();\r\n\tconsole.log(data);\r\n};\r\ntest();\r\ninterface User {\r\n\tid: number;\r\n\tname: string;\r\n\tuid: string;\r\n\ttime: number;\r\n\tslot: string;\r\n}\r\nconst tableData = ref<User[]>([]);\r\nconst columns: TableColumn[] = [\r\n\t{ label: \"展开行\", type: \"expand\", slotName: \"expand\" },\r\n\t{ label: \"序号\", type: \"index\" },\r\n\t{ label: \"id\", prop: \"id\" },\r\n\t{ label: \"名字\", prop: \"name\" },\r\n\t{ label: \"slot\", prop: \"slot\", slotName: \"testSlot\" },\r\n\t{\r\n\t\tlabel: \"time\",\r\n\t\tprop: \"time\",\r\n\t\tformatter: ({ time }) => new Date(time).toLocaleString()\r\n\t},\r\n\t{\r\n\t\tlabel: \"input\",\r\n\t\tprop: \"name\",\r\n\t\trenderType: \"input\",\r\n\t\tformatter: ({ time }) => new Date(time).toLocaleString()\r\n\t},\r\n\t{\r\n\t\tlabel: \"select\",\r\n\t\tprop: \"name\",\r\n\t\trenderType: \"select\",\r\n\t\tconfig: {\r\n\t\t\toptions: [{ label: \"test\", value: \"test\" }]\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tlabel: \"操作\",\r\n\t\tfixed: \"right\",\r\n\t\twidth: 200,\r\n\t\trenderType: \"operate\",\r\n\t\toperate: [\r\n\t\t\t{ label: \"修改\", key: \"change\" },\r\n\t\t\t{ label: \"重置\", key: \"reset\" },\r\n\t\t\t{ label: \"权限\", key: \"power\" },\r\n\t\t\t{ label: \"删除\", key: \"del\" }\r\n\t\t]\r\n\t}\r\n];\r\nconst rowKey = \"uid\";\r\nfor (let index = 0; index < 20; index++) {\r\n\ttableData.value.push({\r\n\t\tid: index,\r\n\t\tname: \"123\" + index,\r\n\t\tuid: \"test\" + index,\r\n\t\ttime: Date.now(),\r\n\t\tslot: \"123\"\r\n\t});\r\n}\r\nconst operateHandle = (key, row) => {\r\n\tconsole.log(key, row);\r\n};\r\n</script>\r\n<template>\r\n\t<div>\r\n\t\t<YxTable v-bind=\"{ tableData, columns, rowKey }\" @operate-handle=\"operateHandle\">\r\n\t\t\t<template #expand=\"{ row }\"> {{ JSON.stringify(row) }} </template>\r\n\t\t\t<template #testSlot=\"{ row }\"> {{ JSON.stringify(row) }} </template>\r\n\t\t</YxTable>\r\n\t</div>\r\n</template>\r\n<style scoped lang=\"scss\"></style>\r\n"],"names":["yxTableProps","_isSlot","s","_isVNode","yxTableEmits","key","row","YxTable","defineComponent","name","props","emits","setup","attrs","slots","emit","columnSlots","col","scope","slotName","columns","map","_createVNode","_resolveComponent","_mergeProps","align","default","renderType","renderOperate","DynamicComponents","operate","op","label","rowKey","tableData","border","data","auth.getUserPermissions","ref","time","index","operateHandle"],"mappings":"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"}
|
package/lib/index.es7.js
DELETED
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { d as y, o as d, c as b, w as c, a as S, F as v, r as N, b as g, e as T, m, f as s, g as w, i as _, j as D, u as h, k as x, t as k } from "./index.es5.js";
|
|
2
|
-
import { g as C } from "./index.es6.js";
|
|
3
|
-
const V = {
|
|
4
|
-
tableData: {
|
|
5
|
-
type: Array,
|
|
6
|
-
require: !0
|
|
7
|
-
},
|
|
8
|
-
rowKey: {
|
|
9
|
-
type: String,
|
|
10
|
-
require: !0
|
|
11
|
-
},
|
|
12
|
-
columns: {
|
|
13
|
-
type: Array,
|
|
14
|
-
require: !0,
|
|
15
|
-
default: () => []
|
|
16
|
-
},
|
|
17
|
-
sortHandle: {
|
|
18
|
-
type: String,
|
|
19
|
-
default: "",
|
|
20
|
-
require: !1
|
|
21
|
-
},
|
|
22
|
-
border: {
|
|
23
|
-
type: Boolean,
|
|
24
|
-
default: !1
|
|
25
|
-
},
|
|
26
|
-
align: {
|
|
27
|
-
type: String,
|
|
28
|
-
default: "center",
|
|
29
|
-
require: !1
|
|
30
|
-
}
|
|
31
|
-
}, O = /* @__PURE__ */ y({
|
|
32
|
-
__name: "DynamicComponents",
|
|
33
|
-
props: {
|
|
34
|
-
col: null,
|
|
35
|
-
row: null
|
|
36
|
-
},
|
|
37
|
-
setup(r) {
|
|
38
|
-
const n = r;
|
|
39
|
-
return (o, i) => {
|
|
40
|
-
var u, l, t;
|
|
41
|
-
return d(), b(g(`el-${(u = n.col) == null ? void 0 : u.type}`), m({
|
|
42
|
-
modelValue: r.row[(l = n.col) == null ? void 0 : l.prop],
|
|
43
|
-
"onUpdate:modelValue": i[0] || (i[0] = (e) => {
|
|
44
|
-
var a;
|
|
45
|
-
return r.row[(a = n.col) == null ? void 0 : a.prop] = e;
|
|
46
|
-
})
|
|
47
|
-
}, (t = n.col) == null ? void 0 : t.config), {
|
|
48
|
-
default: c(() => {
|
|
49
|
-
var e;
|
|
50
|
-
return [
|
|
51
|
-
n.col.type === "select" ? (d(!0), S(v, { key: 0 }, N((e = n.col) == null ? void 0 : e.config.options, (a) => (d(), b(g("el-option"), {
|
|
52
|
-
key: a.value,
|
|
53
|
-
label: a.label,
|
|
54
|
-
value: a.value
|
|
55
|
-
}, null, 8, ["label", "value"]))), 128)) : T("", !0)
|
|
56
|
-
];
|
|
57
|
-
}),
|
|
58
|
-
_: 1
|
|
59
|
-
}, 16, ["modelValue"]);
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
function j(r) {
|
|
64
|
-
return typeof r == "function" || Object.prototype.toString.call(r) === "[object Object]" && !_(r);
|
|
65
|
-
}
|
|
66
|
-
const q = {
|
|
67
|
-
"operate-handle": (r, n) => !!(r || n)
|
|
68
|
-
}, B = /* @__PURE__ */ y({
|
|
69
|
-
name: "YxTable",
|
|
70
|
-
props: V,
|
|
71
|
-
emits: q,
|
|
72
|
-
setup(r, {
|
|
73
|
-
attrs: n,
|
|
74
|
-
slots: o,
|
|
75
|
-
emit: i
|
|
76
|
-
}) {
|
|
77
|
-
return () => {
|
|
78
|
-
const u = (e, a) => {
|
|
79
|
-
var p;
|
|
80
|
-
return e.slotName && ((p = o[e.slotName]) == null ? void 0 : p.call(o, a));
|
|
81
|
-
}, l = r.columns.map((e) => s(w("el-table-column"), m(e, {
|
|
82
|
-
align: r.align
|
|
83
|
-
}), {
|
|
84
|
-
default: (a) => (e == null ? void 0 : e.renderType) === "operate" ? t(e, a) : e != null && e.renderType && (e == null ? void 0 : e.renderType) !== "operate" ? s(O, {
|
|
85
|
-
col: e,
|
|
86
|
-
row: a.row
|
|
87
|
-
}, null) : (e == null ? void 0 : e.slotName) && u(e, a)
|
|
88
|
-
})), t = (e, a) => {
|
|
89
|
-
var p;
|
|
90
|
-
return s("div", {
|
|
91
|
-
class: "flex justify-center cursor-pointer"
|
|
92
|
-
}, [(p = e.operate) == null ? void 0 : p.map((f) => s("span", {
|
|
93
|
-
onClick: () => i("operate-handle", f.key, a.row),
|
|
94
|
-
class: "mr-10 whitespace-nowrap"
|
|
95
|
-
}, [f.label]))]);
|
|
96
|
-
};
|
|
97
|
-
return s("div", null, [s(w("el-table"), m(n, {
|
|
98
|
-
"row-key": r.rowKey,
|
|
99
|
-
data: r.tableData,
|
|
100
|
-
border: r.border
|
|
101
|
-
}), j(l) ? l : {
|
|
102
|
-
default: () => [l]
|
|
103
|
-
})]);
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}), L = /* @__PURE__ */ y({
|
|
107
|
-
__name: "index",
|
|
108
|
-
setup(r) {
|
|
109
|
-
(async () => {
|
|
110
|
-
const t = await C();
|
|
111
|
-
console.log(t);
|
|
112
|
-
})();
|
|
113
|
-
const o = D([]), i = [
|
|
114
|
-
{ label: "展开行", type: "expand", slotName: "expand" },
|
|
115
|
-
{ label: "序号", type: "index" },
|
|
116
|
-
{ label: "id", prop: "id" },
|
|
117
|
-
{ label: "名字", prop: "name" },
|
|
118
|
-
{ label: "slot", prop: "slot", slotName: "testSlot" },
|
|
119
|
-
{
|
|
120
|
-
label: "time",
|
|
121
|
-
prop: "time",
|
|
122
|
-
formatter: ({ time: t }) => new Date(t).toLocaleString()
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
label: "input",
|
|
126
|
-
prop: "name",
|
|
127
|
-
renderType: "input",
|
|
128
|
-
formatter: ({ time: t }) => new Date(t).toLocaleString()
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
label: "select",
|
|
132
|
-
prop: "name",
|
|
133
|
-
renderType: "select",
|
|
134
|
-
config: {
|
|
135
|
-
options: [{ label: "test", value: "test" }]
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
label: "操作",
|
|
140
|
-
fixed: "right",
|
|
141
|
-
width: 200,
|
|
142
|
-
renderType: "operate",
|
|
143
|
-
operate: [
|
|
144
|
-
{ label: "修改", key: "change" },
|
|
145
|
-
{ label: "重置", key: "reset" },
|
|
146
|
-
{ label: "权限", key: "power" },
|
|
147
|
-
{ label: "删除", key: "del" }
|
|
148
|
-
]
|
|
149
|
-
}
|
|
150
|
-
], u = "uid";
|
|
151
|
-
for (let t = 0; t < 20; t++)
|
|
152
|
-
o.value.push({
|
|
153
|
-
id: t,
|
|
154
|
-
name: "123" + t,
|
|
155
|
-
uid: "test" + t,
|
|
156
|
-
time: Date.now(),
|
|
157
|
-
slot: "123"
|
|
158
|
-
});
|
|
159
|
-
const l = (t, e) => {
|
|
160
|
-
console.log(t, e);
|
|
161
|
-
};
|
|
162
|
-
return (t, e) => (d(), S("div", null, [
|
|
163
|
-
s(h(B), m({ tableData: o.value, columns: i, rowKey: u }, { onOperateHandle: l }), {
|
|
164
|
-
expand: c(({ row: a }) => [
|
|
165
|
-
x(k(JSON.stringify(a)), 1)
|
|
166
|
-
]),
|
|
167
|
-
testSlot: c(({ row: a }) => [
|
|
168
|
-
x(k(JSON.stringify(a)), 1)
|
|
169
|
-
]),
|
|
170
|
-
_: 1
|
|
171
|
-
}, 16)
|
|
172
|
-
]));
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
export {
|
|
176
|
-
L as default
|
|
177
|
-
};
|
|
178
|
-
//# sourceMappingURL=index.es7.js.map
|
package/lib/index.es7.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es7.js","sources":["../packages/components/YxTable/interface/index.ts","../packages/components/YxTable/index.tsx","../example/table/index.vue"],"sourcesContent":["/*\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:58:42\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-08-29 09:20:56\r\n * @FilePath: \\yxUse\\packages\\components\\YxTable\\interface\\index.ts\r\n * @Description:\r\n *\r\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\r\n */\r\nimport type { PropType } from \"vue\";\r\nexport const yxTableProps = {\r\n\ttableData: {\r\n\t\ttype: Array as PropType<TableProps[\"tableData\"]>,\r\n\t\trequire: true\r\n\t},\r\n\trowKey: {\r\n\t\ttype: String,\r\n\t\trequire: true\r\n\t},\r\n\tcolumns: {\r\n\t\ttype: Array as PropType<TableColumn[]>,\r\n\t\trequire: true,\r\n\t\tdefault: () => []\r\n\t},\r\n\tsortHandle: {\r\n\t\ttype: String,\r\n\t\tdefault: \"\",\r\n\t\trequire: false\r\n\t},\r\n\tborder: {\r\n\t\ttype: Boolean,\r\n\t\tdefault: false\r\n\t},\r\n\talign: {\r\n\t\ttype: String,\r\n\t\tdefault: \"center\",\r\n\t\trequire: false\r\n\t}\r\n};\r\nexport interface TableProps {\r\n\t/**表格数据 */\r\n\ttableData: Array<any>;\r\n\trowKey: string;\r\n\tcolumns: TableColumn[];\r\n\tpageInfo?: PageInfo;\r\n\t/**对齐方式 */\r\n\talign?: string;\r\n\tborder?: boolean;\r\n\tsearchFormConfig?: FormConfig[];\r\n\tsearchParams?: { [key: string]: any };\r\n\t/**是否开启拖拽 */\r\n\tsort?: boolean;\r\n\tsortHandle?: string; //拖拽节点类名\r\n\tload?: Function;\r\n}\r\nexport interface FormConfig {\r\n\tlabel: string; //名称\r\n\ttype: string; //类型\r\n\tkey?: string; // 指定数据绑定的key\r\n\toptions?: Array<{ [key: string]: any }> | Function; //下拉框选项配置\r\n\twidth?: number; //文字宽度\r\n\tcomponentWidth?: string; //组件宽度\r\n\tdateType?: string; //日期渲染的类型\r\n\tinputType?: string; //文本框类型\r\n\tdisabled?: boolean; //是否禁用\r\n\tclearable?: boolean; //是否能清除\r\n}\r\nexport interface PageInfo {\r\n\tsize: number;\r\n\tcurrent: number;\r\n\ttotal: number;\r\n}\r\nexport interface TableColumn {\r\n\t/** 列的名字 */\r\n\tlabel?: string;\r\n\t/** 对应数据的key */\r\n\tprop?: string;\r\n\t/** 宽度 */\r\n\twidth?: number;\r\n\t/** 列的类型 */\r\n\ttype?: \"index\" | \"selection\" | \"expand\";\r\n\t/** 渲染类型 */\r\n\trenderType?: string;\r\n\t/** 操作栏 */\r\n\toperate?: any[];\r\n\t/** 固定栏 */\r\n\tfixed?: string;\r\n\t/** 开关打开的value */\r\n\tactiveValue?: string | number | boolean;\r\n\t/** 开关关闭的value */\r\n\tinactiveValue?: string | number | boolean;\r\n\t/** 对数据进行格式化 */\r\n\tformatter?: Function;\r\n\t/** 插槽名称 */\r\n\tslotName?: string;\r\n\t/** 动态组件配置 */\r\n\tconfig?: Record<string, any>;\r\n}\r\n","/*\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:10:35\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-08-29 09:20:21\r\n * @FilePath: \\yxUse\\packages\\components\\YxTable\\index.tsx\r\n * @Description:\r\n *\r\n * Copyright (c) 2023 by YuXing, All Rights Reserved.\r\n */\r\nimport { defineComponent } from \"vue\";\r\nimport type { ExtractPropTypes } from \"vue\";\r\nimport type { TableColumn, TableRow } from \"./interface/index\";\r\nimport { yxTableProps } from \"./interface/index\";\r\nimport DynamicComponents from \"./components/DynamicComponents.vue\";\r\nexport type YxTableProps = ExtractPropTypes<typeof yxTableProps>;\r\n\r\nconst yxTableEmits = {\r\n\t\"operate-handle\": (key: string, row: object) => (key || row ? true : false)\r\n};\r\nexport type TabNavEmits = typeof yxTableEmits;\r\n\r\nconst YxTable = defineComponent({\r\n\tname: \"YxTable\",\r\n\tprops: yxTableProps,\r\n\temits: yxTableEmits,\r\n\tsetup(props, { attrs, slots, emit }) {\r\n\t\treturn () => {\r\n\t\t\t//动态插槽\r\n\t\t\tconst columnSlots = (col: TableColumn, scope: TableRow) => col.slotName && slots[col.slotName]?.(scope);\r\n\t\t\t//处理列\r\n\t\t\tconst columns = props.columns.map((col: TableColumn) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<el-table-column {...col} align={props.align}>\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdefault: (scope: any) => {\r\n\t\t\t\t\t\t\t\t//先处理操作栏\r\n\t\t\t\t\t\t\t\tif (col?.renderType === \"operate\") return renderOperate(col, scope);\r\n\t\t\t\t\t\t\t\t//处理动态渲染的组件\r\n\t\t\t\t\t\t\t\tif (col?.renderType && col?.renderType !== \"operate\") return <DynamicComponents col={col} row={scope.row} />;\r\n\t\t\t\t\t\t\t\t//处理自定义插槽\r\n\t\t\t\t\t\t\t\treturn col?.slotName && columnSlots(col, scope);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</el-table-column>\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\t//操作栏\r\n\t\t\tconst renderOperate = (col: TableColumn, scope) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<div class=\"flex justify-center cursor-pointer\">\r\n\t\t\t\t\t\t{col.operate?.map(op => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t<span onClick={() => emit(\"operate-handle\", op.key, scope.row)} class=\"mr-10 whitespace-nowrap\">\r\n\t\t\t\t\t\t\t\t\t{op.label}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t);\r\n\t\t\t};\r\n\t\t\treturn (\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<el-table {...attrs} row-key={props.rowKey} data={props.tableData} border={props.border}>\r\n\t\t\t\t\t\t{columns}\r\n\t\t\t\t\t</el-table>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t};\r\n\t}\r\n});\r\nexport default YxTable;\r\n","<!--\r\n * @Author: WangXin\r\n * @Date: 2023-08-28 10:13:48\r\n * @LastEditors: WangXin\r\n * @LastEditTime: 2023-09-04 17:23:30\r\n * @FilePath: \\yxUse\\example\\table\\index.vue\r\n * @Description: \r\n * \r\n * Copyright (c) 2023 by YuXing, All Rights Reserved. \r\n-->\r\n<script setup lang=\"ts\">\r\nimport { ref } from \"vue\";\r\nimport YxTable from \"../../packages/components/YxTable\";\r\nimport type { TableColumn } from \"../../packages/components/YxTable/interface/index.ts\";\r\nimport { auth } from \"../../packages/api\";\r\nconst test = async () => {\r\n\tconst data = await auth.getUserPermissions();\r\n\tconsole.log(data);\r\n};\r\ntest();\r\ninterface User {\r\n\tid: number;\r\n\tname: string;\r\n\tuid: string;\r\n\ttime: number;\r\n\tslot: string;\r\n}\r\nconst tableData = ref<User[]>([]);\r\nconst columns: TableColumn[] = [\r\n\t{ label: \"展开行\", type: \"expand\", slotName: \"expand\" },\r\n\t{ label: \"序号\", type: \"index\" },\r\n\t{ label: \"id\", prop: \"id\" },\r\n\t{ label: \"名字\", prop: \"name\" },\r\n\t{ label: \"slot\", prop: \"slot\", slotName: \"testSlot\" },\r\n\t{\r\n\t\tlabel: \"time\",\r\n\t\tprop: \"time\",\r\n\t\tformatter: ({ time }) => new Date(time).toLocaleString()\r\n\t},\r\n\t{\r\n\t\tlabel: \"input\",\r\n\t\tprop: \"name\",\r\n\t\trenderType: \"input\",\r\n\t\tformatter: ({ time }) => new Date(time).toLocaleString()\r\n\t},\r\n\t{\r\n\t\tlabel: \"select\",\r\n\t\tprop: \"name\",\r\n\t\trenderType: \"select\",\r\n\t\tconfig: {\r\n\t\t\toptions: [{ label: \"test\", value: \"test\" }]\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tlabel: \"操作\",\r\n\t\tfixed: \"right\",\r\n\t\twidth: 200,\r\n\t\trenderType: \"operate\",\r\n\t\toperate: [\r\n\t\t\t{ label: \"修改\", key: \"change\" },\r\n\t\t\t{ label: \"重置\", key: \"reset\" },\r\n\t\t\t{ label: \"权限\", key: \"power\" },\r\n\t\t\t{ label: \"删除\", key: \"del\" }\r\n\t\t]\r\n\t}\r\n];\r\nconst rowKey = \"uid\";\r\nfor (let index = 0; index < 20; index++) {\r\n\ttableData.value.push({\r\n\t\tid: index,\r\n\t\tname: \"123\" + index,\r\n\t\tuid: \"test\" + index,\r\n\t\ttime: Date.now(),\r\n\t\tslot: \"123\"\r\n\t});\r\n}\r\nconst operateHandle = (key, row) => {\r\n\tconsole.log(key, row);\r\n};\r\n</script>\r\n<template>\r\n\t<div>\r\n\t\t<YxTable v-bind=\"{ tableData, columns, rowKey }\" @operate-handle=\"operateHandle\">\r\n\t\t\t<template #expand=\"{ row }\"> {{ JSON.stringify(row) }} </template>\r\n\t\t\t<template #testSlot=\"{ row }\"> {{ JSON.stringify(row) }} </template>\r\n\t\t</YxTable>\r\n\t</div>\r\n</template>\r\n<style scoped lang=\"scss\"></style>\r\n"],"names":["yxTableProps","_isSlot","s","_isVNode","yxTableEmits","key","row","YxTable","defineComponent","name","props","emits","setup","attrs","slots","emit","columnSlots","col","scope","slotName","columns","map","_createVNode","_resolveComponent","_mergeProps","align","default","renderType","renderOperate","DynamicComponents","operate","op","label","rowKey","tableData","border","data","auth.getUserPermissions","ref","time","index","operateHandle"],"mappings":"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"}
|