Browse Source

优化表格数据使用v-html渲染,提高渲染速度。

main
likunming 2 months ago
parent
commit
551db54b64
  1. 1
      io.sc.platform.core.frontend/.eslintrc.cjs
  2. 4
      io.sc.platform.core.frontend/src/platform/components/grid/Header.vue
  3. 2
      io.sc.platform.core.frontend/src/platform/components/grid/TdContent.vue
  4. 4
      io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue
  5. 2
      io.sc.platform.core.frontend/src/platform/components/grid/extra/append/AppendContent.vue
  6. 2
      io.sc.platform.core.frontend/src/platform/components/grid/extra/append/AppendRow.vue
  7. 4
      io.sc.platform.core.frontend/src/platform/components/grid/ts/function/RowData.ts
  8. 2
      io.sc.platform.core.frontend/src/platform/components/panel/WInfoPanel.vue

1
io.sc.platform.core.frontend/.eslintrc.cjs

@ -66,5 +66,6 @@ module.exports = {
'prefer-rest-params': 'off',
'no-control-regex': 'off',
'no-case-declarations': 'off',
'vue/no-v-html': 'off'
},
};

4
io.sc.platform.core.frontend/src/platform/components/grid/Header.vue

@ -28,7 +28,7 @@
style="font-weight: bold"
:title="c.title"
>
<span v-dompurify-html="Tools.isUndefinedOrNull(c.label) ? '' : c.label"></span>
<span v-html="Tools.isUndefinedOrNull(c.label) ? '' : c.label"></span>
</q-th>
</q-tr>
<q-tr v-if="tools.table.rows.length === 0" :style="tools.cm.noDataStyle.value" class="noDataTr">
@ -58,7 +58,7 @@
style="font-weight: bold"
:title="col.title"
>
<span v-dompurify-html="Tools.isUndefinedOrNull(col.label) ? '' : col.label"></span>
<span v-html="Tools.isUndefinedOrNull(col.label) ? '' : col.label"></span>
</q-th>
</template>
</q-tr>

2
io.sc.platform.core.frontend/src/platform/components/grid/TdContent.vue

@ -10,7 +10,7 @@
<component :is="value.componentType" v-bind="value.attrs"></component>
</template>
<template v-else>
<span v-dompurify-html="Tools.isUndefinedOrNull(value) ? '' : value"></span>
<span v-html="Tools.isUndefinedOrNull(value) ? '' : value"></span>
</template>
</template>

4
io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue

@ -156,14 +156,14 @@ watchEffect(() => {
});
//
onMounted(() => {
onMounted(async () => {
tools.opFM.propsValidate();
if (tools.table.columns?.length > tools.table.originalColumns?.length) {
tools.titleFM.handleColumnTitle();
}
topRef.value?.handleQueryFormShowField();
if (props.autoFetchData && (!Tools.isEmpty(props.dataUrl) || !Tools.isEmpty(props.fetchDataUrl))) {
tools.reqApiFM.fetchData({
await tools.reqApiFM.fetchData({
pagination: tools.table.store.pagination,
});
} else {

2
io.sc.platform.core.frontend/src/platform/components/grid/extra/append/AppendContent.vue

@ -3,7 +3,7 @@
<component :is="props.value.componentType" v-bind="props.value.attrs"></component>
</template>
<template v-else>
<span v-dompurify-html="!Tools.isEmpty(props.value) ? props.value : ''"></span>
<span v-html="!Tools.isEmpty(props.value) ? props.value : ''"></span>
</template>
</template>

2
io.sc.platform.core.frontend/src/platform/components/grid/extra/append/AppendRow.vue

@ -6,7 +6,7 @@
<AppendContent :value="col.value({ grid: tools.instance, rows: tools.apiFM.getData.getRows() })"></AppendContent>
</template>
<template v-else>
<span v-dompurify-html="!Tools.isEmpty(col['value']) ? col['value'] : ''"></span>
<span v-html="!Tools.isEmpty(col['value']) ? col['value'] : ''"></span>
</template>
</q-td>
</q-tr>

4
io.sc.platform.core.frontend/src/platform/components/grid/ts/function/RowData.ts

@ -132,7 +132,7 @@ export class RowData extends Base {
* @param rows
* @returns
*/
public async setExtraProperty(rows: Array<any>, ops?: any, lazyloadNoChildren: boolean = false) {
public setExtraProperty(rows: Array<any>, ops?: any, lazyloadNoChildren: boolean = false) {
// 清空分组记录
this.table.configStore.aloneGroupRecords = [];
// 重置分组行下标
@ -362,7 +362,7 @@ export class RowData extends Base {
*
* @param rowData
*/
private async initRowDataExtraProperty(rowData: any, lazyloadNoChildren: boolean = false) {
private initRowDataExtraProperty(rowData: any, lazyloadNoChildren: boolean = false) {
rowData[Constant.FIELD_NAMES.ROW_KEY] = Tools.uuid();
rowData[this.props.tickedField] = this.getInitRowTicked(rowData);
rowData[this.props.selectedField] = this.getInitRowSelected(rowData);

2
io.sc.platform.core.frontend/src/platform/components/panel/WInfoPanel.vue

@ -14,7 +14,7 @@
<component :is="tdItem.value.componentType" v-bind="tdItem.value.attrs"></component>
</template>
<template v-else>
<span v-dompurify-html="Tools.isUndefinedOrNull(tdItem.value) ? '' : tdItem.value"></span>
<span v-html="Tools.isUndefinedOrNull(tdItem.value) ? '' : tdItem.value"></span>
</template>
</td>
</template>

Loading…
Cancel
Save