Skip to content

Commit c43c3cf

Browse files
committed
集成treetable需要更新(package-lock.json,ViewGrid.vue,methods.js,VolTable.vue)注意更新后需要在vol.vue文件夹下重新执行下npm install命令
1 parent 4b46ebe commit c43c3cf

File tree

8 files changed

+104
-36
lines changed

8 files changed

+104
-36
lines changed

Vol.Vue/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Vol.Vue/src/components/basic/ViewGrid.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,11 @@
235235
@parentCall="parentCall"></gridBody>
236236
<!--table表格-->
237237
<div class="grid-container">
238+
<!-- 2021.05.02增加树形结构 rowKey -->
238239
<vol-table ref="table"
239240
:single="single"
241+
:rowKey="rowKey"
242+
:loadTreeChildren="loadTreeTableChildren"
240243
@loadBefore="loadTableBefore"
241244
@loadAfter="loadTableAfter"
242245
@rowChange="rowOnChange"
@@ -314,6 +317,8 @@ var vueParam = {
314317
props: {},
315318
data () {
316319
return {
320+
//树形结构的主键字段,如果设置值默认会开启树形table;注意rowKey字段的值必须是唯一(2021.05.02)
321+
rowKey:undefined,
317322
_searchFormFields: {}, //2020.09.13增加formFileds拼写错误兼容处理
318323
_editFormFields: {}, //2020.09.13增加formFileds拼写错误兼容处理
319324
fiexdSearchForm: false, //2020.09.011是否固定查询表单,true查询表单将固定显示在表单的最上面

Vol.Vue/src/components/basic/ViewGridConfig/methods.js

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,12 @@ let methods = {
223223
}
224224
},
225225
emptyValue(value) {
226+
if (typeof value == 'string' && value.trim() === "") {
227+
return true;
228+
}
229+
if (value instanceof Array && !value.length) {
230+
return true;
231+
}
226232
return value === null || value === undefined || value === "";
227233
},
228234
getSearchParameters() {
@@ -250,26 +256,29 @@ let methods = {
250256
//2021.05.02增加区间查询
251257
if (
252258
typeof value == "string" ||
253-
["date", "datetime","range"].indexOf(displayType) == -1
259+
["date", "datetime", "range"].indexOf(displayType) == -1
254260
) {
261+
255262
query.wheres.push({
256263
name: key,
257-
value: typeof value == "string" || !value ? value : value.join(","),
264+
value: typeof value == "string" ? (value + '').trim() : value.join(","),
258265
displayType: displayType
259266
});
260267
continue;
261268
}
262269
for (let index = 0; index < value.length; index++) {
263-
query.wheres.push({
264-
name: key,
265-
value: value[index],
266-
displayType: (() => {
267-
if (["date", "datetime","range"].indexOf(displayType) != -1) {
268-
return index ? "lessorequal" : "thanorequal";
269-
}
270-
return displayType;
271-
})()
272-
});
270+
if (!this.emptyValue(value[index])) {
271+
query.wheres.push({
272+
name: key,
273+
value: (value[index] + '').trim(),
274+
displayType: (() => {
275+
if (["date", "datetime", "range"].indexOf(displayType) != -1) {
276+
return index ? "lessorequal" : "thanorequal";
277+
}
278+
return displayType;
279+
})()
280+
});
281+
}
273282
}
274283
}
275284
return query;
@@ -1283,6 +1292,12 @@ let methods = {
12831292
},
12841293
destroyed() { //2021.04.11增加vue页面销毁方法,路由必须设置keepLive:false,设置方法见:前端开发文档-》[禁用页面缓存keepAlive]
12851294

1295+
},
1296+
loadTreeTableChildren(tree, treeNode, resolve){
1297+
this.loadTreeChildren.call(this,tree, treeNode, resolve);
1298+
},
1299+
loadTreeChildren(tree, treeNode, resolve) {//树形结构加载子节点(2021.05.02),在onInit中设置了rowKey主键字段后才会生效
1300+
return resolve([]);
12861301
}
12871302
};
12881303
//合并扩展方法

Vol.Vue/src/components/basic/VolTable.vue

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
return this.summaryData;
1111
}
1212
"
13+
:row-key="rowKey"
14+
lazy
15+
:load="loadTreeChildren"
1316
@selection-change="selectionChange"
1417
@row-click="rowClick"
1518
@header-click="headerClick"
@@ -199,7 +202,7 @@
199202
</template>
200203
</div>
201204
<!--没有编辑功能的直接渲染标签-->
202-
<div v-else>
205+
<template v-else>
203206
<a
204207
href="javascript:void(0)"
205208
@click="link(scope.row, column, $event)"
@@ -257,8 +260,8 @@
257260
:color="getColor(scope.row, column)"
258261
>{{ formatter(scope.row, column, true) }}</Tag
259262
>
260-
<div v-else>{{ formatter(scope.row, column, true) }}</div>
261-
</div>
263+
<template v-else>{{ formatter(scope.row, column, true) }}</template>
264+
</template>
262265
</template>
263266
</el-table-column>
264267
</el-table>
@@ -282,6 +285,17 @@ import VolTableRender from "./VolTable/VolTableRender";
282285
export default {
283286
components: { "table-render": VolTableRender },
284287
props: {
288+
rowKey: {
289+
//树形结构的主键字段,如果设置值默认会开启树形table;注意rowKey字段的值必须是唯一(2021.05.02)
290+
typeof: String,
291+
default: undefined,
292+
},
293+
loadTreeChildren: {//树形结构加载子节点
294+
type: Function,
295+
default: (tree, treeNode, resolve) => {
296+
return resolve([]);
297+
}
298+
},
285299
textInline: {
286300
//表格内容超出后是否换行显示(2020.01.16)
287301
type: Boolean,

开发版dev/Vue.NetCore/Vol.Vue/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

开发版dev/Vue.NetCore/Vol.Vue/src/components/basic/ViewGrid.vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,11 @@
235235
@parentCall="parentCall"></gridBody>
236236
<!--table表格-->
237237
<div class="grid-container">
238+
<!-- 2021.05.02增加树形结构 rowKey -->
238239
<vol-table ref="table"
239240
:single="single"
241+
:rowKey="rowKey"
242+
:loadTreeChildren="loadTreeTableChildren"
240243
@loadBefore="loadTableBefore"
241244
@loadAfter="loadTableAfter"
242245
@rowChange="rowOnChange"
@@ -314,6 +317,8 @@ var vueParam = {
314317
props: {},
315318
data () {
316319
return {
320+
//树形结构的主键字段,如果设置值默认会开启树形table;注意rowKey字段的值必须是唯一(2021.05.02)
321+
rowKey:undefined,
317322
_searchFormFields: {}, //2020.09.13增加formFileds拼写错误兼容处理
318323
_editFormFields: {}, //2020.09.13增加formFileds拼写错误兼容处理
319324
fiexdSearchForm: false, //2020.09.011是否固定查询表单,true查询表单将固定显示在表单的最上面

开发版dev/Vue.NetCore/Vol.Vue/src/components/basic/ViewGridConfig/methods.js

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,12 @@ let methods = {
223223
}
224224
},
225225
emptyValue(value) {
226+
if (typeof value == 'string' && value.trim() === "") {
227+
return true;
228+
}
229+
if (value instanceof Array && !value.length) {
230+
return true;
231+
}
226232
return value === null || value === undefined || value === "";
227233
},
228234
getSearchParameters() {
@@ -250,26 +256,29 @@ let methods = {
250256
//2021.05.02增加区间查询
251257
if (
252258
typeof value == "string" ||
253-
["date", "datetime","range"].indexOf(displayType) == -1
259+
["date", "datetime", "range"].indexOf(displayType) == -1
254260
) {
261+
255262
query.wheres.push({
256263
name: key,
257-
value: typeof value == "string" || !value ? value : value.join(","),
264+
value: typeof value == "string" ? (value + '').trim() : value.join(","),
258265
displayType: displayType
259266
});
260267
continue;
261268
}
262269
for (let index = 0; index < value.length; index++) {
263-
query.wheres.push({
264-
name: key,
265-
value: value[index],
266-
displayType: (() => {
267-
if (["date", "datetime","range"].indexOf(displayType) != -1) {
268-
return index ? "lessorequal" : "thanorequal";
269-
}
270-
return displayType;
271-
})()
272-
});
270+
if (!this.emptyValue(value[index])) {
271+
query.wheres.push({
272+
name: key,
273+
value: (value[index] + '').trim(),
274+
displayType: (() => {
275+
if (["date", "datetime", "range"].indexOf(displayType) != -1) {
276+
return index ? "lessorequal" : "thanorequal";
277+
}
278+
return displayType;
279+
})()
280+
});
281+
}
273282
}
274283
}
275284
return query;
@@ -1283,6 +1292,12 @@ let methods = {
12831292
},
12841293
destroyed() { //2021.04.11增加vue页面销毁方法,路由必须设置keepLive:false,设置方法见:前端开发文档-》[禁用页面缓存keepAlive]
12851294

1295+
},
1296+
loadTreeTableChildren(tree, treeNode, resolve){
1297+
this.loadTreeChildren.call(this,tree, treeNode, resolve);
1298+
},
1299+
loadTreeChildren(tree, treeNode, resolve) {//树形结构加载子节点(2021.05.02),在onInit中设置了rowKey主键字段后才会生效
1300+
return resolve([]);
12861301
}
12871302
};
12881303
//合并扩展方法

开发版dev/Vue.NetCore/Vol.Vue/src/components/basic/VolTable.vue

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
return this.summaryData;
1111
}
1212
"
13+
:row-key="rowKey"
14+
lazy
15+
:load="loadTreeChildren"
1316
@selection-change="selectionChange"
1417
@row-click="rowClick"
1518
@header-click="headerClick"
@@ -199,7 +202,7 @@
199202
</template>
200203
</div>
201204
<!--没有编辑功能的直接渲染标签-->
202-
<div v-else>
205+
<template v-else>
203206
<a
204207
href="javascript:void(0)"
205208
@click="link(scope.row, column, $event)"
@@ -257,8 +260,8 @@
257260
:color="getColor(scope.row, column)"
258261
>{{ formatter(scope.row, column, true) }}</Tag
259262
>
260-
<div v-else>{{ formatter(scope.row, column, true) }}</div>
261-
</div>
263+
<template v-else>{{ formatter(scope.row, column, true) }}</template>
264+
</template>
262265
</template>
263266
</el-table-column>
264267
</el-table>
@@ -282,6 +285,17 @@ import VolTableRender from "./VolTable/VolTableRender";
282285
export default {
283286
components: { "table-render": VolTableRender },
284287
props: {
288+
rowKey: {
289+
//树形结构的主键字段,如果设置值默认会开启树形table;注意rowKey字段的值必须是唯一(2021.05.02)
290+
typeof: String,
291+
default: undefined,
292+
},
293+
loadTreeChildren: {//树形结构加载子节点
294+
type: Function,
295+
default: (tree, treeNode, resolve) => {
296+
return resolve([]);
297+
}
298+
},
285299
textInline: {
286300
//表格内容超出后是否换行显示(2020.01.16)
287301
type: Boolean,

0 commit comments

Comments
 (0)