Browse Source

优化更新

main
likunming 2 months ago
parent
commit
1c8e58a88f
  1. 2
      erm.frontend/package.json
  2. 2
      gradle.properties
  3. 2
      io.sc.engine.mv.frontend/package.json
  4. 2
      io.sc.engine.rule.frontend/package.json
  5. 2
      io.sc.engine.st.frontend/package.json
  6. 2
      io.sc.platform.core.frontend/package.json
  7. 20
      io.sc.platform.core.frontend/src/platform/components/grid/Td.vue
  8. 2
      io.sc.platform.core.frontend/src/platform/components/grid/Tr.vue
  9. 22
      io.sc.platform.core.frontend/src/platform/components/grid/TreeGridFirstTdContent.vue
  10. 3
      io.sc.platform.core.frontend/src/platform/components/grid/ts/Init.ts
  11. 6
      io.sc.platform.core.frontend/src/platform/components/grid/ts/constant/src/FieldNames.ts
  12. 2
      io.sc.platform.core.frontend/src/platform/components/grid/ts/event/src/UpdateTickeds.ts
  13. 62
      io.sc.platform.core.frontend/src/platform/components/grid/ts/function/RowData.ts
  14. 4
      io.sc.platform.core.frontend/src/platform/components/grid/ts/types/PropsType.ts
  15. 4
      io.sc.platform.core.frontend/template-project/package.json
  16. 2
      io.sc.platform.developer.doc/package.json
  17. 2
      io.sc.platform.developer.frontend/package.json
  18. 2
      io.sc.platform.gradle/templates/pgp/setup/gradle.properties
  19. 2
      io.sc.platform.lcdp.frontend/package.json
  20. 2
      io.sc.platform.lcdp.frontend/src/i18n/messages.json
  21. 2
      io.sc.platform.lcdp.frontend/src/i18n/messages_tw_CN.json
  22. 2
      io.sc.platform.lcdp.frontend/src/i18n/messages_zh_CN.json
  23. 6
      io.sc.platform.lcdp.frontend/src/menus/menus.json
  24. 46
      io.sc.platform.lcdp.frontend/src/routes/routes.json
  25. 6
      io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/components.json
  26. 4
      io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/liquibase.json
  27. 6
      io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/repositories.json
  28. 2
      io.sc.platform.license.keygen.frontend/package.json
  29. 2
      io.sc.platform.mvc.frontend/package.json
  30. 2
      io.sc.platform.scheduler.manager.frontend/package.json
  31. 2
      io.sc.platform.system.frontend/package.json
  32. 2
      io.sc.standard.frontend/package.json
  33. 2
      io.sc.website/package.json

2
erm.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
gradle.properties

@ -38,7 +38,7 @@ application_version=1.0.0
platform_group=io.sc
platform_version=8.2.3
platform_plugin_version=8.2.3
platform_core_frontend_version=8.2.15
platform_core_frontend_version=8.2.16
###########################################################
# dependencies version

2
io.sc.engine.mv.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.engine.rule.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.engine.st.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.platform.core.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "platform-core",
"version": "8.2.15",
"version": "8.2.16",
"description": "前端核心包,用于快速构建前端的脚手架",
"//main": "库的主文件",
"main": "dist/platform-core.js",

20
io.sc.platform.core.frontend/src/platform/components/grid/Td.vue

@ -8,7 +8,8 @@
:style="tdStyleComputed"
:title="titleComputed"
:rowspan="rowSpanComputed"
@click="tdClick"
@click.stop="tdClick($event, props.scope.row, props.scope.rowIndex, props.col.name)"
@dblclick.stop="tdDbClick($event, props.scope.row, props.scope.rowIndex, props.col.name)"
>
<!-- 前端排序号 -->
<template v-if="props.col.name === Constant.FIELD_NAMES.SORT_NO">
@ -81,6 +82,11 @@ const titleComputed = computed(() => {
});
const tdClassComputed = computed(() => {
const tdClass = <any>[];
const colSelectable = tools.dataFM.getSelectable(props.scope.row, props.col['name']);
if (!colSelectable) {
tdClass.push('mouseDisabled');
return tdClass;
}
if (props.col.name === Constant.FIELD_NAMES.SORT_NO) {
tdClass.push('sortNo_td');
}
@ -131,8 +137,9 @@ const generateTdIfComputed = computed(() => {
return true;
});
const tdClick = () => {
if (props.scope.row[Constant.FIELD_NAMES.SELECTABLE]) {
const tdClick = (event: any, row: any, rowIndex: any, colName: string) => {
const colSelectable = tools.dataFM.getSelectable(props.scope.row, props.col['name']);
if (colSelectable) {
// 退
const cellSelected = tools.table.store.cellSelected;
if (cellSelected) {
@ -159,9 +166,16 @@ const tdClick = () => {
colName: props.col['name'],
value: props.scope.row[props.col['name']],
};
tools.em.rowClick(event, row, rowIndex);
}
}
};
const tdDbClick = (event: any, row: any, rowIndex: any, colName: string) => {
const colSelectable = tools.dataFM.getSelectable(props.scope.row, props.col['name']);
if (colSelectable) {
tools.em.rowDbClick(event, row, rowIndex);
}
};
onMounted(() => {
if (tdRef.value?.$el) {

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

@ -18,7 +18,7 @@
<q-checkbox
v-model="rowDataComputed[tickedField]"
flat
:disable="!props.scope.row[Constant.FIELD_NAMES.SELECTABLE]"
:disable="!tools.dataFM.getSelectable(props.scope.row)"
:dense="tools.table.configStore.dense || tools.table.configStore.denseBody || false"
@update:model-value="tools.em.updateTicked($event, scope.row)"
/>

22
io.sc.platform.core.frontend/src/platform/components/grid/TreeGridFirstTdContent.vue

@ -25,6 +25,7 @@
v-model="rowDataComputed[tickedField]"
flat
dense
:disable="!tools.dataFM.getTreeTickable(props.row)"
@dblclick.stop="() => {}"
@update:model-value="selectedFun(rowDataComputed[tickedField], $event)"
/>
@ -195,7 +196,9 @@ const selectedFun = (value, event) => {
const selectedChildren = (row, value) => {
if (row.children && row.children.length > 0) {
for (let child of row.children) {
child[tickedField] = value;
if (tools.dataFM.getTreeTickable(child)) {
child[tickedField] = value;
}
selectedChildren(child, value);
}
}
@ -206,15 +209,18 @@ const selectedParent = (row, value) => {
if (row.parent) {
const parent = tools.dataFM.getRow(tools.table.rows, row.parent, true);
if (parent) {
if (value && childrenSelectedStatus(parent).allSelected) {
parent[tickedField] = true;
} else if (value) {
parent[tickedField] = null;
} else {
if (childrenSelectedStatus(parent).partSelected) {
const treeTickable = tools.dataFM.getTreeTickable(parent);
if (treeTickable) {
if (value && childrenSelectedStatus(parent).allSelected) {
parent[tickedField] = true;
} else if (value) {
parent[tickedField] = null;
} else {
parent[tickedField] = false;
if (childrenSelectedStatus(parent).partSelected) {
parent[tickedField] = null;
} else {
parent[tickedField] = false;
}
}
}
selectedParent(parent, value);

3
io.sc.platform.core.frontend/src/platform/components/grid/ts/Init.ts

@ -58,7 +58,8 @@ export class Init {
return [];
},
},
selectableIf: { type: Function, default: undefined }, // 数据行可选规则函数,不配置都可选,配置后根据返回的布尔结果判定是否可选
selectableIf: { type: Function, default: undefined }, // 数据行可选规则函数,不配置都可选,配置后根据返回的布尔结果判定是否可选。
treeTickableIf: { type: Function, default: undefined }, // 树表格可勾选规则函数,不配置都可勾选,配置后根据返回的布尔结果判定是否可勾选。
appendRows: {
// 表格追加行,添加到当前表格数据行尾,可添加多行,支持跨行跨列配置,用于添加合计或者额外信息。
type: Array,

6
io.sc.platform.core.frontend/src/platform/components/grid/ts/constant/src/FieldNames.ts

@ -47,6 +47,11 @@ export class FieldNames {
*/
public static SELECTABLE = '_selectable';
/**
*
*/
public static TREE_TICKABLE = '_treeTickable';
/**
*
* @param props
@ -64,6 +69,7 @@ export class FieldNames {
rowIndex: FieldNames.ROW_INDEX,
lazyloadNoChildren: FieldNames.LAZYLOAD_NO_CHILDREN,
selectable: FieldNames.SELECTABLE,
treeTickable: FieldNames.TREE_TICKABLE,
};
}
}

2
io.sc.platform.core.frontend/src/platform/components/grid/ts/event/src/UpdateTickeds.ts

@ -18,7 +18,7 @@ export class UpdateTickeds extends Base {
const tickedField = this.props.tickedField;
if (this.table?.store.inlineEditStatus === Constant.EDIT_STATUS.NONE) {
this.table.rows.forEach((item) => {
if (this.tools?.dataFM.getRowSelectable(item)) {
if (this.tools?.dataFM.getSelectable(item)) {
item[tickedField] = value;
item[selectedField] = value;
}

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

@ -21,7 +21,8 @@ export class RowData extends Base {
this.checkLastRow = this.checkLastRow.bind(this);
this.setExtraProperty = this.setExtraProperty.bind(this);
this.arrayOrderBy = this.arrayOrderBy.bind(this);
this.getRowSelectable = this.getRowSelectable.bind(this);
this.getSelectable = this.getSelectable.bind(this);
this.getTreeTickable = this.getTreeTickable.bind(this);
this.mergeSortFields = this.mergeSortFields.bind(this);
this.mergeDefaultSortBy = this.mergeDefaultSortBy.bind(this);
this.rowDataExtraPropertyHandle = this.rowDataExtraPropertyHandle.bind(this);
@ -366,7 +367,10 @@ export class RowData extends Base {
rowData[this.props.tickedField] = this.getInitRowTicked(rowData);
rowData[this.props.selectedField] = this.getInitRowSelected(rowData);
rowData[Constant.FIELD_NAMES.ROW_OLD_VALUE] = {};
rowData[Constant.FIELD_NAMES.SELECTABLE] = this.getSelectable(rowData);
rowData[Constant.FIELD_NAMES.SELECTABLE] = this.getInitSelectable(rowData);
if (this.props.tree) {
rowData[Constant.FIELD_NAMES.TREE_TICKABLE] = this.getInitTreeTickable(rowData);
}
this.setOldValue(rowData);
if (this.props.tree) {
if (this.table.store.expandDatas.length > 0 && this.table.store.expandDatas.includes(rowData[this.props.primaryKey])) {
@ -381,11 +385,11 @@ export class RowData extends Base {
}
/**
*
*
* @param rowData
* @returns
*/
private getSelectable(rowData: any): boolean {
private getInitSelectable(rowData: any) {
let selectable: any = true;
const this_ = this;
if (this_.props.selectMode === Constant.SELECT_MODE.NONE) {
@ -401,8 +405,8 @@ export class RowData extends Base {
} else if (this_.props.selectMode === Constant.SELECT_MODE.CELL) {
if (this_.props.selectableIf && typeof this_.props.selectableIf === 'function') {
selectable = {};
let cellSelectable = false;
for (let i = 0; i < this_.table.columns.length; i++) {
let cellSelectable = false;
const colName = this_.table.columns[i]['name'];
if (colName !== Constant.FIELD_NAMES.SORT_NO) {
const result = this_.props.selectableIf({ grid: this_.instance, data: rowData, colName });
@ -418,26 +422,60 @@ export class RowData extends Base {
}
/**
* _selectable字段
* @param row
*
* @param rowData
*/
getInitTreeTickable(rowData: any) {
const this_ = this;
let tickable = true;
if (this_.props.treeTickableIf && typeof this_.props.treeTickableIf === 'function') {
const result = this_.props.treeTickableIf({ grid: this_.instance, data: rowData });
if (!result) {
tickable = false;
}
}
return tickable;
}
/**
* _selectable字段
* @param row
* @param colName
* @returns
*/
getRowSelectable(row) {
getSelectable(row: any, colName?: string) {
if (this.props.selectMode === Constant.SELECT_MODE.CELL && typeof row[Constant.FIELD_NAMES.SELECTABLE] === 'object') {
let selectable = true;
if (colName) {
return row[Constant.FIELD_NAMES.SELECTABLE][colName];
}
let falseNumber = 0;
const keys = Object.keys(row[Constant.FIELD_NAMES.SELECTABLE]);
for (let i = 0; i < keys.length; i++) {
if (row[Constant.FIELD_NAMES.SELECTABLE][keys[i]] === false) {
selectable = false;
break;
falseNumber++;
}
}
return selectable;
if (keys.length === falseNumber) {
return false;
}
return true;
} else {
return row[Constant.FIELD_NAMES.SELECTABLE];
}
}
/**
* _treeTickable字段
* @param row
* @returns
*/
getTreeTickable(row: any) {
if (row[Constant.FIELD_NAMES.TREE_TICKABLE] === undefined || row[Constant.FIELD_NAMES.TREE_TICKABLE] === true) {
return true;
}
return false;
}
/**
* ticked状态
* @param rowData

4
io.sc.platform.core.frontend/src/platform/components/grid/ts/types/PropsType.ts

@ -211,6 +211,10 @@ export type PropsType = {
*
*/
selectableIf?: Function,
/**
*
*/
treeTickableIf?: Function,
/**
*
*/

4
io.sc.platform.core.frontend/template-project/package.json

@ -1,6 +1,6 @@
{
"name": "platform-core",
"version": "8.2.15",
"version": "8.2.16",
"description": "前端核心包,用于快速构建前端的脚手架",
"private": false,
"keywords": [],
@ -110,7 +110,7 @@
"mockjs": "1.1.0",
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.platform.developer.doc/package.json

@ -28,7 +28,7 @@
"vuepress": "2.0.0-rc.15"
},
"dependencies": {
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"vue": "3.5.13",
"vue-i18n": "10.0.4"

2
io.sc.platform.developer.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.platform.gradle/templates/pgp/setup/gradle.properties

@ -38,7 +38,7 @@ application_version=1.0.0
platform_group=io.sc
platform_version=8.2.3
platform_plugin_version=8.2.3
platform_core_frontend_version=8.2.14
platform_core_frontend_version=8.2.16
###########################################################
# dependencies version

2
io.sc.platform.lcdp.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.platform.lcdp.frontend/src/i18n/messages.json

@ -3,6 +3,8 @@
"menu.lcdp.frontend": "Frontend",
"menu.lcdp.theme": "Theme",
"menu.lcdp.bpm": "Bussiness Process Manager",
"menu.lcdp.form": "Form",
"menu.lcdp.excel.template": "Excel Template",
"theme.action.setDefaultTheme":"Set As Default",
"theme.action.setDefaultTheme.confirm":"Would you like to set \"{themeName}\" as default theme?",

2
io.sc.platform.lcdp.frontend/src/i18n/messages_tw_CN.json

@ -3,6 +3,8 @@
"menu.lcdp.frontend": "前端",
"menu.lcdp.theme": "主題",
"menu.lcdp.bpm": "流程管理",
"menu.lcdp.form": "表单管理",
"menu.lcdp.excel.template": "报表模板管理(Excel)",
"theme.action.setDefaultTheme":"設置為默認主題",
"theme.action.setDefaultTheme.confirm":"您確定要將 \"{themeName}\" 設置為默認主題嗎?",

2
io.sc.platform.lcdp.frontend/src/i18n/messages_zh_CN.json

@ -3,6 +3,8 @@
"menu.lcdp.frontend": "前端",
"menu.lcdp.theme": "主题",
"menu.lcdp.bpm": "流程管理",
"menu.lcdp.form": "表单管理",
"menu.lcdp.excel.template": "报表模板管理(Excel)",
"theme.action.setDefaultTheme":"设置为默认主题",
"theme.action.setDefaultTheme.confirm":"您确定要将 \"{themeName}\" 设置为默认主题吗?",

6
io.sc.platform.lcdp.frontend/src/menus/menus.json

@ -48,5 +48,9 @@
"titleI18nKey": "menu.lcdp.bpm",
"icon": "bi-share",
"routeName": "route.lcdp.bpm"
}
},
/* /*/
{"type":"ROUTE", "order":400, "parentId":"menu.lcdp", "id":"menu.lcdp.form", "titleI18nKey":"menu.lcdp.form", "icon":"widgets", "routeName":"route.lcdp.form"},
/* /(Excel)*/
{"type":"ROUTE", "order":500, "parentId":"menu.lcdp", "id":"menu.lcdp.excel.template", "titleI18nKey":"menu.lcdp.excel.template", "icon":"view_list", "routeName":"route.lcdp.excel.template"}
]

46
io.sc.platform.lcdp.frontend/src/routes/routes.json

@ -34,5 +34,51 @@
"meta": {
"permissions": ["/lcdp/bpm/**/*"]
}
},
{
"parent": "/",
"name": "route.lcdp.form.page",
"path": "lcdp/form/page",
"priority": 0,
"component": "component.lcdp.form.page",
"componentPath": "@/views/form/Page.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"parent": "/",
"name": "route.lcdp.excel.report",
"path": "lcdp/excel/report",
"priority": 0,
"component": "component.lcdp.excel.report",
"componentPath": "@/views/excel_template/ExcelReport.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"parent": "/",
"name": "route.lcdp.form",
"path": "lcdp/form",
"component": "component.lcdp.formConfig",
"componentPath": "@/views/form/FormConfig.vue",
"meta": {
},
"children": []
},
{
"parent": "/",
"name": "route.lcdp.excel.template",
"path": "lcdp/excel/template",
"component": "component.lcdp.excel.template",
"componentPath": "@/views/excel_template/TemplateGrid.vue",
"meta": {
},
"children": []
}
]

6
io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/components.json

@ -10,7 +10,11 @@
{
"includes":[
"io.sc.platform.lcdp.configure.controller",
"io.sc.platform.lcdp.configure.service.impl"
"io.sc.platform.lcdp.configure.service.impl",
"io.sc.platform.lcdp.form.controller",
"io.sc.platform.lcdp.form.service.impl",
"io.sc.platform.lcdp.excel.template.controller",
"io.sc.platform.lcdp.excel.template.service.impl"
],
"excludes":[]
}

4
io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/liquibase.json

@ -4,7 +4,9 @@
"order" : 300,
"description":"低代码平台",
"locations":[
"classpath:/liquibase/io.sc.platform.lcdp_8.0.0_20220606__LowCode Developer Database Schema DDL.xml"
"classpath:/liquibase/io.sc.platform.lcdp_8.0.0_20220606__LowCode Developer Database Schema DDL.xml",
"classpath:/liquibase/io.sc.platform.lcdp_Form_DDL.xml",
"classpath:/liquibase/io.sc.platform.lcdp_Excel_Template_DDL.xml"
]
}
]

6
io.sc.platform.lcdp/src/main/resources/META-INF/platform/plugins/repositories.json

@ -10,7 +10,11 @@
{
"includes":[
"io.sc.platform.lcdp.configure.jpa.entity",
"io.sc.platform.lcdp.configure.jpa.repository"
"io.sc.platform.lcdp.configure.jpa.repository",
"io.sc.platform.lcdp.form.entity",
"io.sc.platform.lcdp.form.repository",
"io.sc.platform.lcdp.excel.template.entity",
"io.sc.platform.lcdp.excel.template.repository"
],
"excludes":[]
}

2
io.sc.platform.license.keygen.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.platform.mvc.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.platform.scheduler.manager.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.platform.system.frontend/package.json

@ -110,7 +110,7 @@
"mockjs": "1.1.0",
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.standard.frontend/package.json

@ -111,7 +111,7 @@
"node-sql-parser": "5.3.4",
"pinia": "2.2.6",
"pinia-undo": "0.2.4",
"platform-core": "8.2.15",
"platform-core": "8.2.16",
"quasar": "2.17.4",
"sort-array": "5.0.0",
"svg-path-commander": "2.1.5",

2
io.sc.website/package.json

@ -28,6 +28,6 @@
},
"dependencies": {
"vue": "3.5.13",
"platform-core": "8.2.15"
"platform-core": "8.2.16"
}
}
Loading…
Cancel
Save