@touchvue/ui 1.0.0-beta.54 → 1.0.0-beta.56
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/components/input/src/input.vue.d.ts +2 -2
- package/es/components/pic/index.d.ts +9 -0
- package/es/components/pic/src/Pic.vue.d.ts +9 -0
- package/es/components/pic/src/pic.d.ts +7 -0
- package/es/components/rate/src/rate.vue.d.ts +46 -10
- package/es/components/scroll/index.d.ts +15 -0
- package/es/components/scroll/src/Scroll.vue.d.ts +9 -0
- package/es/components/scroll/src/scroll.d.ts +7 -0
- package/es/components/select/src/select.d.ts +18 -0
- package/es/components/select/src/select.vue.d.ts +18 -0
- package/es/components/table/src/table-head.vue.d.ts +2 -0
- package/es/components/tip/src/tip.vue.d.ts +2 -2
- package/es/components/upload/src/upload.vue.d.ts +6 -4
- package/es/index.d.mjs.map +1 -1
- package/es/index.mjs +2 -1
- package/es/index.mjs.map +1 -1
- package/es/packages/components/calendar/src/calendar.vue2.mjs +22 -0
- package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
- package/es/packages/components/cascader/src/cascader-item.vue2.mjs +1 -0
- package/es/packages/components/cascader/src/cascader-item.vue2.mjs.map +1 -1
- package/es/packages/components/cascader/src/cascader.vue2.mjs +1 -0
- package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
- package/es/packages/components/float/src/Float.vue2.mjs +4 -4
- package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/Pic.vue2.mjs +18 -2
- package/es/packages/components/pic/src/Pic.vue2.mjs.map +1 -1
- package/es/packages/components/pic/src/pic.mjs +7 -0
- package/es/packages/components/pic/src/pic.mjs.map +1 -1
- package/es/packages/components/rate/src/rate.vue2.mjs +153 -85
- package/es/packages/components/rate/src/rate.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/Scroll.vue2.mjs +3 -0
- package/es/packages/components/scroll/src/Scroll.vue2.mjs.map +1 -1
- package/es/packages/components/scroll/src/scroll.mjs +7 -0
- package/es/packages/components/scroll/src/scroll.mjs.map +1 -1
- package/es/packages/components/segment/src/segment.vue.mjs +10 -12
- package/es/packages/components/segment/src/segment.vue.mjs.map +1 -1
- package/es/packages/components/select/src/select.mjs +18 -0
- package/es/packages/components/select/src/select.mjs.map +1 -1
- package/es/packages/components/select/src/select.vue2.mjs +263 -87
- package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table-head.vue2.mjs +101 -45
- package/es/packages/components/table/src/table-head.vue2.mjs.map +1 -1
- package/es/packages/components/table/src/table.vue2.mjs +244 -62
- package/es/packages/components/table/src/table.vue2.mjs.map +1 -1
- package/es/packages/components/tree/src/tree-item.vue2.mjs +2 -1
- package/es/packages/components/tree/src/tree-item.vue2.mjs.map +1 -1
- package/es/packages/components/upload/src/upload.vue2.mjs +203 -153
- package/es/packages/components/upload/src/upload.vue2.mjs.map +1 -1
- package/es/packages/directives/tip/src/tip.mjs +42 -27
- package/es/packages/directives/tip/src/tip.mjs.map +1 -1
- package/es/packages/locale/format.mjs +1 -1
- package/es/packages/locale/format.mjs.map +1 -1
- package/es/ui/index.d.ts +6 -0
- package/lib/components/input/src/input.vue.d.ts +2 -2
- package/lib/components/pic/index.d.ts +9 -0
- package/lib/components/pic/src/Pic.vue.d.ts +9 -0
- package/lib/components/pic/src/pic.d.ts +7 -0
- package/lib/components/rate/src/rate.vue.d.ts +46 -10
- package/lib/components/scroll/index.d.ts +15 -0
- package/lib/components/scroll/src/Scroll.vue.d.ts +9 -0
- package/lib/components/scroll/src/scroll.d.ts +7 -0
- package/lib/components/select/src/select.d.ts +18 -0
- package/lib/components/select/src/select.vue.d.ts +18 -0
- package/lib/components/table/src/table-head.vue.d.ts +2 -0
- package/lib/components/tip/src/tip.vue.d.ts +2 -2
- package/lib/components/upload/src/upload.vue.d.ts +6 -4
- package/lib/index.d.js.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/packages/components/calendar/src/calendar.vue2.js +22 -0
- package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
- package/lib/packages/components/cascader/src/cascader-item.vue2.js +1 -0
- package/lib/packages/components/cascader/src/cascader-item.vue2.js.map +1 -1
- package/lib/packages/components/cascader/src/cascader.vue2.js +1 -0
- package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
- package/lib/packages/components/float/src/Float.vue2.js +4 -4
- package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/Pic.vue2.js +17 -1
- package/lib/packages/components/pic/src/Pic.vue2.js.map +1 -1
- package/lib/packages/components/pic/src/pic.js +7 -0
- package/lib/packages/components/pic/src/pic.js.map +1 -1
- package/lib/packages/components/rate/src/rate.vue2.js +152 -84
- package/lib/packages/components/rate/src/rate.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/Scroll.vue2.js +3 -0
- package/lib/packages/components/scroll/src/Scroll.vue2.js.map +1 -1
- package/lib/packages/components/scroll/src/scroll.js +7 -0
- package/lib/packages/components/scroll/src/scroll.js.map +1 -1
- package/lib/packages/components/segment/src/segment.vue.js +10 -12
- package/lib/packages/components/segment/src/segment.vue.js.map +1 -1
- package/lib/packages/components/select/src/select.js +18 -0
- package/lib/packages/components/select/src/select.js.map +1 -1
- package/lib/packages/components/select/src/select.vue2.js +262 -86
- package/lib/packages/components/select/src/select.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table-head.vue2.js +100 -44
- package/lib/packages/components/table/src/table-head.vue2.js.map +1 -1
- package/lib/packages/components/table/src/table.vue2.js +243 -61
- package/lib/packages/components/table/src/table.vue2.js.map +1 -1
- package/lib/packages/components/tree/src/tree-item.vue2.js +2 -1
- package/lib/packages/components/tree/src/tree-item.vue2.js.map +1 -1
- package/lib/packages/components/upload/src/upload.vue2.js +202 -152
- package/lib/packages/components/upload/src/upload.vue2.js.map +1 -1
- package/lib/packages/directives/tip/src/tip.js +41 -26
- package/lib/packages/directives/tip/src/tip.js.map +1 -1
- package/lib/packages/locale/format.js +1 -1
- package/lib/packages/locale/format.js.map +1 -1
- package/lib/ui/index.d.ts +6 -0
- package/package.json +1 -1
- package/theme/base.css +0 -3
- package/theme/components/index.css +445 -255
- package/theme/index.css +445 -255
- package/theme/skin/default.css +445 -255
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, inject, ref, watch, onMounted, resolveComponent, openBlock, createElementBlock,
|
|
1
|
+
import { defineComponent, inject, ref, watch, onMounted, computed, resolveComponent, openBlock, createElementBlock, Fragment, renderList, createVNode, normalizeClass, createElementVNode, toDisplayString, createCommentVNode } from 'vue';
|
|
2
2
|
|
|
3
3
|
const __default__ = defineComponent({
|
|
4
4
|
name: "ToTableHead"
|
|
@@ -34,6 +34,48 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
});
|
|
37
|
+
function getMaxDepth(columns) {
|
|
38
|
+
let max = 0;
|
|
39
|
+
function traverse(cols, depth) {
|
|
40
|
+
max = Math.max(max, depth);
|
|
41
|
+
for (const col of cols) {
|
|
42
|
+
if (col.children && col.children.length > 0) {
|
|
43
|
+
traverse(col.children, depth + 1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
traverse(columns, 1);
|
|
48
|
+
return max;
|
|
49
|
+
}
|
|
50
|
+
function countLeaves(col) {
|
|
51
|
+
if (!col.children || col.children.length === 0)
|
|
52
|
+
return 1;
|
|
53
|
+
return col.children.reduce((sum, child) => sum + countLeaves(child), 0);
|
|
54
|
+
}
|
|
55
|
+
function buildHeaderRows(columns, maxDepth) {
|
|
56
|
+
const rows = Array.from({ length: maxDepth }, () => []);
|
|
57
|
+
function traverse(cols, depth) {
|
|
58
|
+
for (const col of cols) {
|
|
59
|
+
if (col.children && col.children.length > 0) {
|
|
60
|
+
const leafCount = countLeaves(col);
|
|
61
|
+
rows[depth].push({ ...col, colspan: leafCount, rowspan: 1 });
|
|
62
|
+
traverse(col.children, depth + 1);
|
|
63
|
+
} else {
|
|
64
|
+
const rowspan = maxDepth - depth;
|
|
65
|
+
rows[depth].push({ ...col, colspan: 1, rowspan });
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
traverse(columns, 0);
|
|
70
|
+
return rows;
|
|
71
|
+
}
|
|
72
|
+
const headerRows = computed(() => {
|
|
73
|
+
const maxDepth = getMaxDepth(props.data);
|
|
74
|
+
if (maxDepth <= 1) {
|
|
75
|
+
return [props.data.map((col) => ({ ...col, colspan: 1, rowspan: 1 }))];
|
|
76
|
+
}
|
|
77
|
+
return buildHeaderRows(props.data, maxDepth);
|
|
78
|
+
});
|
|
37
79
|
const sortClick = (column) => {
|
|
38
80
|
if (!column.sortable)
|
|
39
81
|
return false;
|
|
@@ -76,52 +118,66 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
76
118
|
class: "to-table-head"
|
|
77
119
|
},
|
|
78
120
|
[
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
121
|
+
(openBlock(true), createElementBlock(
|
|
122
|
+
Fragment,
|
|
123
|
+
null,
|
|
124
|
+
renderList(headerRows.value, (row2, rowIndex) => {
|
|
125
|
+
return openBlock(), createElementBlock("tr", {
|
|
126
|
+
key: rowIndex,
|
|
127
|
+
class: "to-table-head-row"
|
|
128
|
+
}, [
|
|
129
|
+
(openBlock(true), createElementBlock(
|
|
85
130
|
Fragment,
|
|
86
131
|
null,
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
132
|
+
renderList(row2, (cell, cellIndex) => {
|
|
133
|
+
return openBlock(), createElementBlock(
|
|
134
|
+
Fragment,
|
|
135
|
+
{ key: cellIndex },
|
|
136
|
+
[
|
|
137
|
+
cell.type === "check" ? (openBlock(), createElementBlock("th", {
|
|
138
|
+
key: 0,
|
|
139
|
+
class: "to-table-th is-check",
|
|
140
|
+
rowspan: cell.rowspan
|
|
141
|
+
}, [
|
|
142
|
+
createVNode(_component_ToCheckbox, {
|
|
143
|
+
"model-value": _ctx.checkedAll,
|
|
144
|
+
onChange: change
|
|
145
|
+
}, null, 8, ["model-value"])
|
|
146
|
+
], 8, ["rowspan"])) : cell._show !== false ? (openBlock(), createElementBlock("th", {
|
|
147
|
+
key: 1,
|
|
148
|
+
class: normalizeClass(["to-table-th", setThClass(cell).value]),
|
|
149
|
+
colspan: cell.colspan,
|
|
150
|
+
rowspan: cell.rowspan,
|
|
151
|
+
onClick: ($event) => sortClick(cell)
|
|
152
|
+
}, [
|
|
153
|
+
createElementVNode(
|
|
154
|
+
"span",
|
|
155
|
+
null,
|
|
156
|
+
toDisplayString(cell.label),
|
|
157
|
+
1
|
|
158
|
+
/* TEXT */
|
|
159
|
+
),
|
|
160
|
+
cell.sortable ? (openBlock(), createElementBlock("span", {
|
|
161
|
+
key: 0,
|
|
162
|
+
class: "to-table-sorticon"
|
|
163
|
+
}, [
|
|
164
|
+
createElementVNode("span", { class: "to-table-sorticon-item ascending" }),
|
|
165
|
+
createElementVNode("span", { class: "to-table-sorticon-item descending" })
|
|
166
|
+
])) : createCommentVNode("v-if", true)
|
|
167
|
+
], 10, ["colspan", "rowspan", "onClick"])) : createCommentVNode("v-if", true)
|
|
168
|
+
],
|
|
169
|
+
64
|
|
170
|
+
/* STABLE_FRAGMENT */
|
|
171
|
+
);
|
|
172
|
+
}),
|
|
173
|
+
128
|
|
174
|
+
/* KEYED_FRAGMENT */
|
|
175
|
+
))
|
|
176
|
+
]);
|
|
177
|
+
}),
|
|
178
|
+
128
|
|
179
|
+
/* KEYED_FRAGMENT */
|
|
180
|
+
))
|
|
125
181
|
],
|
|
126
182
|
512
|
|
127
183
|
/* NEED_PATCH */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-head.vue2.mjs","sources":["../../../../../../packages/components/table/src/table-head.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTableHead'\n});\n</script>\n<template>\n\t<thead ref=\"row\" class=\"to-table-head\">\n\t\t<tr class=\"to-table-head-row\">\n\t\t\t<template v-for=\"
|
|
1
|
+
{"version":3,"file":"table-head.vue2.mjs","sources":["../../../../../../packages/components/table/src/table-head.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToTableHead'\n});\n</script>\n<template>\n\t<thead ref=\"row\" class=\"to-table-head\">\n\t\t<tr v-for=\"(row, rowIndex) in headerRows\" :key=\"rowIndex\" class=\"to-table-head-row\">\n\t\t\t<template v-for=\"(cell, cellIndex) in row\" :key=\"cellIndex\">\n\t\t\t\t<th v-if=\"cell.type === 'check'\" class=\"to-table-th is-check\" :rowspan=\"cell.rowspan\">\n\t\t\t\t\t<ToCheckbox :model-value=\"checkedAll\" @change=\"change\"></ToCheckbox>\n\t\t\t\t</th>\n\t\t\t\t<th v-else-if=\"cell._show !== false\" class=\"to-table-th\" :class=\"setThClass(cell).value\" :colspan=\"cell.colspan\" :rowspan=\"cell.rowspan\" @click=\"sortClick(cell)\">\n\t\t\t\t\t<span>{{ cell.label }}</span>\n\t\t\t\t\t<span v-if=\"cell.sortable\" class=\"to-table-sorticon\">\n\t\t\t\t\t\t<span class=\"to-table-sorticon-item ascending\"></span>\n\t\t\t\t\t\t<span class=\"to-table-sorticon-item descending\"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</th>\n\t\t\t</template>\n\t\t</tr>\n\t</thead>\n</template>\n<script setup lang=\"ts\">\nimport { computed, inject, onMounted, ref, watch } from 'vue'\nimport { TableProvideType } from './table.vue'\n\nconst tableRef: TableProvideType = inject('TableRef')\nconst emit = defineEmits(['change'])\ninterface Props {\n\tdata?: { prop?: string; label?: string; type?: string; toggler?: boolean; _show: boolean; thWrap?: boolean; sortable?: boolean; sortType?: boolean; children?: any[] }[]\n\tcheckedAll?: boolean\n}\nconst props = withDefaults(defineProps<Props>(), {\n\tdata: () => [],\n\tcheckedAll: false\n})\n\nconst row = ref(null)\nconst sortSet = ref({})\n\nwatch(\n\t() => props.data,\n\tval => {\n\t\tval.forEach(item => {\n\t\t\tif (item.sortable) {\n\t\t\t\tsortSet.value[item.prop] = sortSet.value[item.prop] || ''\n\t\t\t}\n\t\t})\n\t},\n\t{ deep: true }\n)\n\nonMounted(() => {\n\tprops.data.forEach(item => {\n\t\tif (item.sortable) {\n\t\t\tsortSet.value[item.prop] = sortSet.value[item.prop] || ''\n\t\t}\n\t})\n})\n\n// 多级表头支持\nfunction getMaxDepth(columns) {\n\tlet max = 0\n\tfunction traverse(cols, depth) {\n\t\tmax = Math.max(max, depth)\n\t\tfor (const col of cols) {\n\t\t\tif (col.children && col.children.length > 0) {\n\t\t\t\ttraverse(col.children, depth + 1)\n\t\t\t}\n\t\t}\n\t}\n\ttraverse(columns, 1)\n\treturn max\n}\n\nfunction countLeaves(col) {\n\tif (!col.children || col.children.length === 0) return 1\n\treturn col.children.reduce((sum, child) => sum + countLeaves(child), 0)\n}\n\nfunction buildHeaderRows(columns, maxDepth) {\n\tconst rows = Array.from({ length: maxDepth }, () => [])\n\tfunction traverse(cols, depth) {\n\t\tfor (const col of cols) {\n\t\t\tif (col.children && col.children.length > 0) {\n\t\t\t\tconst leafCount = countLeaves(col)\n\t\t\t\trows[depth].push({ ...col, colspan: leafCount, rowspan: 1 })\n\t\t\t\ttraverse(col.children, depth + 1)\n\t\t\t} else {\n\t\t\t\tconst rowspan = maxDepth - depth\n\t\t\t\trows[depth].push({ ...col, colspan: 1, rowspan })\n\t\t\t}\n\t\t}\n\t}\n\ttraverse(columns, 0)\n\treturn rows\n}\n\nconst headerRows = computed(() => {\n\tconst maxDepth = getMaxDepth(props.data)\n\tif (maxDepth <= 1) {\n\t\treturn [props.data.map(col => ({ ...col, colspan: 1, rowspan: 1 }))]\n\t}\n\treturn buildHeaderRows(props.data, maxDepth)\n})\n\nconst sortClick = column => {\n\tif (!column.sortable) return false\n\tif (sortSet.value[column.prop] === 'asc') {\n\t\tsortSet.value[column.prop] = 'desc'\n\t} else if (sortSet.value[column.prop] === 'desc') {\n\t\tsortSet.value[column.prop] = ''\n\t} else {\n\t\tsortSet.value[column.prop] = 'asc'\n\t}\n\ttableRef.handleTheadCellClick(column, sortSet.value[column.prop])\n}\nconst setThClass = column => {\n\treturn computed(() => {\n\t\tconst classes: string[] = []\n\t\tif (column.thWrap) {\n\t\t\tclasses.push('is-wrap')\n\t\t} else if (column.thWrap === false) {\n\t\t\tclasses.push('is-nowrap')\n\t\t}\n\t\tif (sortSet.value[column.prop]) {\n\t\t\tclasses.push(`type-${sortSet.value[column.prop]}`)\n\t\t}\n\t\treturn classes\n\t})\n}\nfunction change(checked) {\n\temit('change', checked)\n}\n\ndefineExpose({\n\trow\n})\n</script>\n"],"names":["DO_defineComponent","_createElementBlock","_openBlock","_Fragment","_renderList","row","_createVNode","checkedAll","_createElementVNode","_toDisplayString"],"mappings":"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"}
|