提交 b508711f 编写于 作者: ibizdev's avatar ibizdev

zhujiamin 发布系统代码 [TrainSys,网页端]

上级 e410fdca
...@@ -12,14 +12,14 @@ ...@@ -12,14 +12,14 @@
}, },
"dependencies": { "dependencies": {
"@floating-ui/dom": "^1.0.11", "@floating-ui/dom": "^1.0.11",
"@ibiz-template/command": "^0.0.1-beta.48", "@ibiz-template/command": "^0.0.1-beta.49",
"@ibiz-template/controller": "^0.0.1-beta.48", "@ibiz-template/controller": "^0.0.1-beta.49",
"@ibiz-template/core": "^0.0.1-beta.48", "@ibiz-template/core": "^0.0.1-beta.49",
"@ibiz-template/model": "^0.0.1-beta.48", "@ibiz-template/model": "^0.0.1-beta.49",
"@ibiz-template/runtime": "^0.0.1-beta.48", "@ibiz-template/runtime": "^0.0.1-beta.49",
"@ibiz-template/service": "^0.0.1-beta.48", "@ibiz-template/service": "^0.0.1-beta.49",
"@ibiz-template/theme": "^0.0.1-beta.48", "@ibiz-template/theme": "^0.0.1-beta.49",
"@ibiz-template/vue-util": "^0.0.1-beta.48", "@ibiz-template/vue-util": "^0.0.1-beta.49",
"@ibiz/dynamic-model-api": "^2.1.11", "@ibiz/dynamic-model-api": "^2.1.11",
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
......
...@@ -4,14 +4,14 @@ specifiers: ...@@ -4,14 +4,14 @@ specifiers:
'@commitlint/cli': ^17.3.0 '@commitlint/cli': ^17.3.0
'@commitlint/config-conventional': ^17.3.0 '@commitlint/config-conventional': ^17.3.0
'@floating-ui/dom': ^1.0.11 '@floating-ui/dom': ^1.0.11
'@ibiz-template/command': ^0.0.1-beta.48 '@ibiz-template/command': ^0.0.1-beta.49
'@ibiz-template/controller': ^0.0.1-beta.48 '@ibiz-template/controller': ^0.0.1-beta.49
'@ibiz-template/core': ^0.0.1-beta.48 '@ibiz-template/core': ^0.0.1-beta.49
'@ibiz-template/model': ^0.0.1-beta.48 '@ibiz-template/model': ^0.0.1-beta.49
'@ibiz-template/runtime': ^0.0.1-beta.48 '@ibiz-template/runtime': ^0.0.1-beta.49
'@ibiz-template/service': ^0.0.1-beta.48 '@ibiz-template/service': ^0.0.1-beta.49
'@ibiz-template/theme': ^0.0.1-beta.48 '@ibiz-template/theme': ^0.0.1-beta.49
'@ibiz-template/vue-util': ^0.0.1-beta.48 '@ibiz-template/vue-util': ^0.0.1-beta.49
'@ibiz/dynamic-model-api': ^2.1.11 '@ibiz/dynamic-model-api': ^2.1.11
'@types/lodash-es': ^4.17.6 '@types/lodash-es': ^4.17.6
'@types/node': ^18.11.15 '@types/node': ^18.11.15
...@@ -63,14 +63,14 @@ specifiers: ...@@ -63,14 +63,14 @@ specifiers:
dependencies: dependencies:
'@floating-ui/dom': 1.2.3 '@floating-ui/dom': 1.2.3
'@ibiz-template/command': 0.0.1-beta.48 '@ibiz-template/command': 0.0.1-beta.49
'@ibiz-template/controller': 0.0.1-beta.48_uql53fkcqv67e3qpsiw5wvkvwa '@ibiz-template/controller': 0.0.1-beta.49_bjux3alwunjwl37tydsewqwf2a
'@ibiz-template/core': 0.0.1-beta.48_r2u2pf57tdrzsloecwaklwkkci '@ibiz-template/core': 0.0.1-beta.49_r2u2pf57tdrzsloecwaklwkkci
'@ibiz-template/model': 0.0.1-beta.48_y6kbchkrnlrtpfodzmrb2uku5e '@ibiz-template/model': 0.0.1-beta.49_y6kbchkrnlrtpfodzmrb2uku5e
'@ibiz-template/runtime': 0.0.1-beta.48_q2qq77kj34fvafri2g726hxtzu '@ibiz-template/runtime': 0.0.1-beta.49_qx2bufwzienid6qyga4ze7tswy
'@ibiz-template/service': 0.0.1-beta.48_kebrja7telx5rwvp7v4q4r6qjm '@ibiz-template/service': 0.0.1-beta.49_hws6ss73mbj7ldec3ehiwhqluq
'@ibiz-template/theme': 0.0.1-beta.48 '@ibiz-template/theme': 0.0.1-beta.49
'@ibiz-template/vue-util': 0.0.1-beta.48_642gojcysn2zoo6hnvxhajtjky '@ibiz-template/vue-util': 0.0.1-beta.49_abxhb35ktzoiv2gkxh7rpokgw4
'@ibiz/dynamic-model-api': 2.1.16_qx-util@0.4.8 '@ibiz/dynamic-model-api': 2.1.16_qx-util@0.4.8
dayjs: 1.11.7 dayjs: 1.11.7
lodash-es: 4.17.21 lodash-es: 4.17.21
...@@ -875,14 +875,14 @@ packages: ...@@ -875,14 +875,14 @@ packages:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
dev: true dev: true
/@ibiz-template/command/0.0.1-beta.48: /@ibiz-template/command/0.0.1-beta.49:
resolution: {integrity: sha512-5CZzkYA8n72pYMoNt9L8oGDsCDbngPHrnxSU1t+R4ttvDGNQHFrtDEVKX0iuZwjxillsFw1S3t1cdkbmZfxJCA==} resolution: {integrity: sha512-F/GbkndfnvpEAek0fNG/73pZIic2ECb6oAiG8O6NjQGR8K/iNWKWfhlDgBiWtjtbj44Ogerzox3sIh+6eh5CEw==}
dependencies: dependencies:
qx-util: 0.4.8 qx-util: 0.4.8
dev: false dev: false
/@ibiz-template/controller/0.0.1-beta.48_uql53fkcqv67e3qpsiw5wvkvwa: /@ibiz-template/controller/0.0.1-beta.49_bjux3alwunjwl37tydsewqwf2a:
resolution: {integrity: sha512-zkFdc5n4G0SJcO/E+kEhW/ab8bhlTrWIXpJ08Uwj6iwcyRSJ77UaEBpeaHTsPQB72dMYrvF/MEVp9cow0F8jkg==} resolution: {integrity: sha512-B6NQyip0q7BDsjXb7mAK9QrCO1VeIEP3SpcE5G0J+c9NSUZd3uz13mCaa6V6FQ5tuehC3pRJsvfdOOyvk9aBfA==}
peerDependencies: peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30 '@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30 '@ibiz-template/model': ^0.0.1-beta.30
...@@ -892,10 +892,10 @@ packages: ...@@ -892,10 +892,10 @@ packages:
qs: ^6.11.0 qs: ^6.11.0
qx-util: ^0.4.4 qx-util: ^0.4.4
dependencies: dependencies:
'@ibiz-template/core': 0.0.1-beta.48_r2u2pf57tdrzsloecwaklwkkci '@ibiz-template/core': 0.0.1-beta.49_r2u2pf57tdrzsloecwaklwkkci
'@ibiz-template/model': 0.0.1-beta.48_y6kbchkrnlrtpfodzmrb2uku5e '@ibiz-template/model': 0.0.1-beta.49_y6kbchkrnlrtpfodzmrb2uku5e
'@ibiz-template/runtime': 0.0.1-beta.48_q2qq77kj34fvafri2g726hxtzu '@ibiz-template/runtime': 0.0.1-beta.49_qx2bufwzienid6qyga4ze7tswy
'@ibiz-template/service': 0.0.1-beta.48_kebrja7telx5rwvp7v4q4r6qjm '@ibiz-template/service': 0.0.1-beta.49_hws6ss73mbj7ldec3ehiwhqluq
async-validator: 4.2.5 async-validator: 4.2.5
dayjs: 1.11.7 dayjs: 1.11.7
lodash-es: 4.17.21 lodash-es: 4.17.21
...@@ -903,8 +903,8 @@ packages: ...@@ -903,8 +903,8 @@ packages:
qx-util: 0.4.8 qx-util: 0.4.8
dev: false dev: false
/@ibiz-template/core/0.0.1-beta.48_r2u2pf57tdrzsloecwaklwkkci: /@ibiz-template/core/0.0.1-beta.49_r2u2pf57tdrzsloecwaklwkkci:
resolution: {integrity: sha512-ikSdGnjLcMQh7YttSE0GRAeEqDlE6T9QCbSbSLh0ybb88HEsEtCSCcOckir3g8f0OV8UIlRRN1aE4BOtXXPcpg==} resolution: {integrity: sha512-9KaK6m7Ozob8dlyGi1OPqv29T9MOXr0xlG68VNBfEHxq7S0Vcmz5dgOUF48YlAwTs4UJq7s2LWj6lzVxPXgd7A==}
peerDependencies: peerDependencies:
lodash-es: ^4.17.21 lodash-es: ^4.17.21
qx-util: ^0.4.4 qx-util: ^0.4.4
...@@ -919,8 +919,8 @@ packages: ...@@ -919,8 +919,8 @@ packages:
- debug - debug
dev: false dev: false
/@ibiz-template/model/0.0.1-beta.48_y6kbchkrnlrtpfodzmrb2uku5e: /@ibiz-template/model/0.0.1-beta.49_y6kbchkrnlrtpfodzmrb2uku5e:
resolution: {integrity: sha512-N830Iph4+T2w2jRhR/eBOUOzEAUtinB0u0BXhck+wQnzaLcMmnzJIdD0Lr19wMdXnOHZ++YdGZjXQ5bZBGau+A==} resolution: {integrity: sha512-YhFmomTWplQgbaCBFMH0RT93QiVRhp5ZxApNjvw30I2THbw+/iV+aVSjvEdMHp5GsRIEQBO0Bfft/rlVds9f/g==}
peerDependencies: peerDependencies:
'@ibiz/dynamic-model-api': ^2.1.11 '@ibiz/dynamic-model-api': ^2.1.11
lodash-es: ^4.17.21 lodash-es: ^4.17.21
...@@ -932,55 +932,57 @@ packages: ...@@ -932,55 +932,57 @@ packages:
qx-util: 0.4.8 qx-util: 0.4.8
dev: false dev: false
/@ibiz-template/runtime/0.0.1-beta.48_q2qq77kj34fvafri2g726hxtzu: /@ibiz-template/runtime/0.0.1-beta.49_qx2bufwzienid6qyga4ze7tswy:
resolution: {integrity: sha512-PKiYNv+QN2/EgY12qttATTFw+5g+O8FcBGEnuNJ4n7Y7+dDqZmjrDpTXzGwyJZef4OjBQN5wEbbnkADl6OnERw==} resolution: {integrity: sha512-BlJ+Z+exyZLGDNMA3cL6WBLAgNdQyliOaFwEr3hx6hk3H13Igbj1ZZB6NGPykwL6hnnytoQ73cf12rChz87Ksw==}
peerDependencies: peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30 '@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30 '@ibiz-template/model': ^0.0.1-beta.30
'@ibiz-template/service': ^0.0.1-beta.30 '@ibiz-template/service': ^0.0.1-beta.30
qx-util: ^0.4.4 qx-util: ^0.4.4
dependencies: dependencies:
'@ibiz-template/command': 0.0.1-beta.48 '@ibiz-template/command': 0.0.1-beta.49
'@ibiz-template/core': 0.0.1-beta.48_r2u2pf57tdrzsloecwaklwkkci '@ibiz-template/core': 0.0.1-beta.49_r2u2pf57tdrzsloecwaklwkkci
'@ibiz-template/model': 0.0.1-beta.48_y6kbchkrnlrtpfodzmrb2uku5e '@ibiz-template/model': 0.0.1-beta.49_y6kbchkrnlrtpfodzmrb2uku5e
'@ibiz-template/service': 0.0.1-beta.48_kebrja7telx5rwvp7v4q4r6qjm '@ibiz-template/service': 0.0.1-beta.49_hws6ss73mbj7ldec3ehiwhqluq
qs: 6.11.1 qs: 6.11.1
qx-util: 0.4.8 qx-util: 0.4.8
dev: false dev: false
/@ibiz-template/service/0.0.1-beta.48_kebrja7telx5rwvp7v4q4r6qjm: /@ibiz-template/service/0.0.1-beta.49_hws6ss73mbj7ldec3ehiwhqluq:
resolution: {integrity: sha512-0dXmdXwELNtmtkj5txQ4anJbpKkI0d3F1hLGD4F2OpMUfZxb7jWViMg9RzIp/8ZvFICfTn1ToOb7oSZSpqFeQg==} resolution: {integrity: sha512-0R84rSehJCDMmEH0LgcO+wlrOK9rW52/BzvtuIS+1lEqxqtqzW0x0TyynSkFppTz6Ft7RCyBeIhQj5Ivw72G9g==}
peerDependencies: peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30 '@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30 '@ibiz-template/model': ^0.0.1-beta.30
qx-util: ^0.4.4 qx-util: ^0.4.4
ramda: ^0.28.0 ramda: ^0.28.0
dependencies: dependencies:
'@ibiz-template/core': 0.0.1-beta.48_r2u2pf57tdrzsloecwaklwkkci '@ibiz-template/core': 0.0.1-beta.49_r2u2pf57tdrzsloecwaklwkkci
'@ibiz-template/model': 0.0.1-beta.48_y6kbchkrnlrtpfodzmrb2uku5e '@ibiz-template/model': 0.0.1-beta.49_y6kbchkrnlrtpfodzmrb2uku5e
qx-util: 0.4.8 qx-util: 0.4.8
ramda: 0.28.0 ramda: 0.28.0
dev: false dev: false
/@ibiz-template/theme/0.0.1-beta.48: /@ibiz-template/theme/0.0.1-beta.49:
resolution: {integrity: sha512-oFOM1iOLgvkPMs/h8nXXIKdaFe49n1X+uTY/ZJEp82Iup/W7m3XrGN/3hBXsfl+Jw7O6/mbjEbSkphUCKeFq4g==} resolution: {integrity: sha512-JuGC7+04Yw7WviGv9dg4wzhhZDfWJGCpHdMIPsviX6k33gLeM56r9M0rtkHimmf4Uj8kJIbR/9bCEKeFBtUSiw==}
dev: false dev: false
/@ibiz-template/vue-util/0.0.1-beta.48_642gojcysn2zoo6hnvxhajtjky: /@ibiz-template/vue-util/0.0.1-beta.49_abxhb35ktzoiv2gkxh7rpokgw4:
resolution: {integrity: sha512-H4Ak50xCBXuHQVXDTDgS0ij67kXZ4Z0fXzrh2jsB/pJJ5+mA6MrjN2Y7sNwbnvPexCvVs/fqktMo3/hc687cDQ==} resolution: {integrity: sha512-9YtXQT22HKGsd/PrXFHVvbPHvlEFYLHVkfrIFPO3Rn0pF6poW3epAvboANP3g3xXmw0dRGIcbM6Sz8Zmp+MSWw==}
peerDependencies: peerDependencies:
'@ibiz-template/controller': ^0.0.1-beta.30 '@ibiz-template/controller': ^0.0.1-beta.30
'@ibiz-template/core': ^0.0.1-beta.30 '@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30 '@ibiz-template/model': ^0.0.1-beta.30
'@ibiz-template/service': ^0.0.1-beta.30
qs: ^6.11.0 qs: ^6.11.0
qx-util: ^0.4.4 qx-util: ^0.4.4
ramda: ^0.28.0 ramda: ^0.28.0
vue: ^2.7.14 vue: ^2.7.14
vue-router: ^3.6.5 vue-router: ^3.6.5
dependencies: dependencies:
'@ibiz-template/controller': 0.0.1-beta.48_uql53fkcqv67e3qpsiw5wvkvwa '@ibiz-template/controller': 0.0.1-beta.49_bjux3alwunjwl37tydsewqwf2a
'@ibiz-template/core': 0.0.1-beta.48_r2u2pf57tdrzsloecwaklwkkci '@ibiz-template/core': 0.0.1-beta.49_r2u2pf57tdrzsloecwaklwkkci
'@ibiz-template/model': 0.0.1-beta.48_y6kbchkrnlrtpfodzmrb2uku5e '@ibiz-template/model': 0.0.1-beta.49_y6kbchkrnlrtpfodzmrb2uku5e
'@ibiz-template/service': 0.0.1-beta.49_hws6ss73mbj7ldec3ehiwhqluq
qs: 6.11.1 qs: 6.11.1
qx-util: 0.4.8 qx-util: 0.4.8
ramda: 0.28.0 ramda: 0.28.0
......
...@@ -52,6 +52,10 @@ export const IBizPickerDropDown = defineComponent({ ...@@ -52,6 +52,10 @@ export const IBizPickerDropDown = defineComponent({
(newVal, oldVal) => { (newVal, oldVal) => {
if (newVal !== oldVal) { if (newVal !== oldVal) {
refValue.value = newVal; refValue.value = newVal;
// 如果值项被清空了,主文本也需清空
if (newVal === null) {
emit('change', null);
}
} }
}, },
{ immediate: true, deep: true }, { immediate: true, deep: true },
......
import { defineComponent, getCurrentInstance, ref } from 'vue'; import {
defineComponent,
getCurrentInstance,
onUnmounted,
ref,
toRaw,
watch,
} from 'vue';
import { ModelUtil } from '@ibiz-template/model'; import { ModelUtil } from '@ibiz-template/model';
import { import {
IRouteViewData,
parseRouteViewData, parseRouteViewData,
useRoute, useRoute,
useRouter, useRouter,
} from '@ibiz-template/vue-util'; } from '@ibiz-template/vue-util';
import { Route } from 'vue-router'; import { Route } from 'vue-router';
import { IBizContext } from '@ibiz-template/core';
import { ViewMode } from '@ibiz-template/runtime';
export default defineComponent({ export default defineComponent({
name: 'RouterShell', name: 'RouterShell',
...@@ -20,34 +28,75 @@ export default defineComponent({ ...@@ -20,34 +28,75 @@ export default defineComponent({
const { proxy } = getCurrentInstance()!; const { proxy } = getCurrentInstance()!;
const route = useRoute(proxy) as Route; const route = useRoute(proxy) as Route;
const router = useRouter(proxy); const router = useRouter(proxy);
const viewData = ref<IRouteViewData>({}); const viewData = ref<{
viewPath?: string;
viewType?: string;
context?: IContext;
params?: IParams;
srfnav?: string;
}>({});
const isLoaded = ref(false); const isLoaded = ref(false);
// 销毁视图上下文
onUnmounted(() => {
if (viewData.value.context) {
const context = toRaw(viewData.value).context;
if (context) context.destroy();
}
});
// 视图初始化事件,往上抛
const onNeuronInit = (...args: IData[]) => {
ctx.emit('neuronInit', ...args);
};
const viewModal = {
mode: ViewMode.ROUTE,
level: props.level,
};
// 根据应用模型解析视图参数 // 根据应用模型解析视图参数
ModelUtil.getModelService().then(async service => { const calcViewData = async () => {
const service = await ModelUtil.getModelService();
const appModel = service.app; const appModel = service.app;
if (appModel) { if (appModel) {
// 获取视图 // 获取视图
try { try {
viewData.value = parseRouteViewData(appModel, route, props.level); const _viewData = parseRouteViewData(appModel, route, props.level);
// 路由绘制的视图,添加一个上下文isRouter
_viewData.context!.isRouter = true;
const _context = IBizContext.create(_viewData.context);
viewData.value = {
..._viewData,
context: _context,
};
// 确定视图组件 // 确定视图组件
isLoaded.value = true; isLoaded.value = true;
ctx.emit('viewFound', { modelPath: viewData.value.viewPath }); ctx.emit('viewFound', { modelPath: viewData.value.viewPath });
} catch (error) { } catch (error) {
router.replace(`/${route.params.view1}/404`); router.push({ name: `404View${props.level}` });
} }
} }
});
// 视图初始化事件,往上抛
const onNeuronInit = (...args: IData[]) => {
ctx.emit('neuronInit', ...args);
}; };
calcViewData();
watch(
() => route.params.view1,
() => {
if (props.level === 1) {
// 第一级路由壳监测到view1变化后,就重新计算一遍viewData
calcViewData();
}
},
);
return { return {
route, route,
viewData, viewData,
isLoaded, isLoaded,
onNeuronInit, onNeuronInit,
viewModal,
}; };
}, },
render(h) { render(h) {
......
import { IBizContext, Namespace } from '@ibiz-template/core'; import { Namespace } from '@ibiz-template/core';
import { import {
AppMenuModel, AppMenuModel,
AppMenuItemModel, AppMenuItemModel,
...@@ -9,6 +9,7 @@ import { ...@@ -9,6 +9,7 @@ import {
defineComponent, defineComponent,
getCurrentInstance, getCurrentInstance,
onMounted, onMounted,
PropType,
Ref, Ref,
ref, ref,
watch, watch,
...@@ -156,7 +157,7 @@ export const AppMenu = defineComponent({ ...@@ -156,7 +157,7 @@ export const AppMenu = defineComponent({
name: 'AppMenu', name: 'AppMenu',
props: { props: {
modelData: AppMenuModel, modelData: AppMenuModel,
context: IBizContext, context: { type: Object as PropType<IContext>, required: true },
collapseChange: Boolean, collapseChange: Boolean,
currentPath: String, currentPath: String,
}, },
......
import { DashboardController } from '@ibiz-template/controller'; import { DashboardController } from '@ibiz-template/controller';
import { IBizContext } from '@ibiz-template/core';
import { import {
DashboardModel, DashboardModel,
ContainerPortletModel, ContainerPortletModel,
...@@ -59,10 +58,7 @@ export const DashboardControl = defineComponent({ ...@@ -59,10 +58,7 @@ export const DashboardControl = defineComponent({
type: DashboardModel, type: DashboardModel,
required: true, required: true,
}, },
context: { context: { type: Object as PropType<IContext>, required: true },
type: IBizContext,
required: true,
},
params: { type: Object as PropType<IParams>, default: () => ({}) }, params: { type: Object as PropType<IParams>, default: () => ({}) },
}, },
setup(props) { setup(props) {
......
import { IBizContext } from '@ibiz-template/core';
import { EditFormModel } from '@ibiz-template/model'; import { EditFormModel } from '@ibiz-template/model';
import { useEditFormController } from '@ibiz-template/vue-util'; import { useEditFormController } from '@ibiz-template/vue-util';
import { defineComponent, getCurrentInstance, PropType } from 'vue'; import { defineComponent, getCurrentInstance, PropType } from 'vue';
...@@ -10,10 +9,7 @@ export const EditFormControl = defineComponent({ ...@@ -10,10 +9,7 @@ export const EditFormControl = defineComponent({
type: EditFormModel, type: EditFormModel,
required: true, required: true,
}, },
context: { context: { type: Object as PropType<IContext>, required: true },
type: IBizContext,
required: true,
},
params: { type: Object as PropType<IParams>, default: () => ({}) }, params: { type: Object as PropType<IParams>, default: () => ({}) },
}, },
setup(props) { setup(props) {
......
import { FormController } from '@ibiz-template/controller'; import { FormController } from '@ibiz-template/controller';
import { IBizContext } from '@ibiz-template/core';
import { import {
FormDetailModel, FormDetailModel,
FormGroupPanelModel, FormGroupPanelModel,
...@@ -58,7 +57,7 @@ export const FormControl = defineComponent({ ...@@ -58,7 +57,7 @@ export const FormControl = defineComponent({
type: FormModel, type: FormModel,
required: true, required: true,
}, },
context: IBizContext, context: { type: Object as PropType<IContext>, required: true },
controller: { controller: {
type: Object as PropType<FormController>, type: Object as PropType<FormController>,
required: true, required: true,
......
import { IBizContext } from '@ibiz-template/core';
import { GridModel } from '@ibiz-template/model'; import { GridModel } from '@ibiz-template/model';
import { useGridController, useNamespace } from '@ibiz-template/vue-util'; import { useGridController, useNamespace } from '@ibiz-template/vue-util';
import { defineComponent, getCurrentInstance, h, PropType } from 'vue'; import { defineComponent, getCurrentInstance, h, PropType } from 'vue';
...@@ -13,7 +12,7 @@ import '@ibiz-template/theme/style/components/widgets/grid/grid.scss'; ...@@ -13,7 +12,7 @@ import '@ibiz-template/theme/style/components/widgets/grid/grid.scss';
export const GridControl = defineComponent({ export const GridControl = defineComponent({
props: { props: {
modelData: GridModel, modelData: GridModel,
context: IBizContext, context: { type: Object as PropType<IContext>, required: true },
params: { type: Object as PropType<IParams>, default: () => ({}) }, params: { type: Object as PropType<IParams>, default: () => ({}) },
/** /**
* 表格行数据默认激活模式 * 表格行数据默认激活模式
......
import { IBizContext } from '@ibiz-template/core';
import { ListModel } from '@ibiz-template/model'; import { ListModel } from '@ibiz-template/model';
import { useListController, useNamespace } from '@ibiz-template/vue-util'; import { useListController, useNamespace } from '@ibiz-template/vue-util';
import { defineComponent, getCurrentInstance, PropType } from 'vue'; import { defineComponent, getCurrentInstance, PropType } from 'vue';
...@@ -10,10 +9,7 @@ export const ListControl = defineComponent({ ...@@ -10,10 +9,7 @@ export const ListControl = defineComponent({
type: ListModel, type: ListModel,
required: true, required: true,
}, },
context: { context: { type: Object as PropType<IContext>, required: true },
type: IBizContext,
required: true,
},
params: { type: Object as PropType<IParams>, default: () => ({}) }, params: { type: Object as PropType<IParams>, default: () => ({}) },
}, },
setup(props) { setup(props) {
......
import { IBizContext } from '@ibiz-template/core';
import { ViewPanelModel } from '@ibiz-template/model'; import { ViewPanelModel } from '@ibiz-template/model';
import { defineComponent, getCurrentInstance, PropType } from 'vue'; import { defineComponent, getCurrentInstance, PropType } from 'vue';
import { usePickupViewPanelController } from '@ibiz-template/vue-util'; import { usePickupViewPanelController } from '@ibiz-template/vue-util';
...@@ -10,10 +9,7 @@ export const PickupViewPanel = defineComponent({ ...@@ -10,10 +9,7 @@ export const PickupViewPanel = defineComponent({
type: ViewPanelModel, type: ViewPanelModel,
required: true, required: true,
}, },
context: { context: { type: Object as PropType<IContext>, required: true },
type: IBizContext,
required: true,
},
params: { type: Object as PropType<IParams>, default: () => ({}) }, params: { type: Object as PropType<IParams>, default: () => ({}) },
}, },
setup(props) { setup(props) {
......
import { IBizContext } from '@ibiz-template/core';
import { SearchFormModel } from '@ibiz-template/model'; import { SearchFormModel } from '@ibiz-template/model';
import { useNamespace, useSearchFormController } from '@ibiz-template/vue-util'; import { useNamespace, useSearchFormController } from '@ibiz-template/vue-util';
import { defineComponent, getCurrentInstance, PropType } from 'vue'; import { defineComponent, getCurrentInstance, PropType } from 'vue';
...@@ -11,10 +10,7 @@ export const SearchFormControl = defineComponent({ ...@@ -11,10 +10,7 @@ export const SearchFormControl = defineComponent({
type: SearchFormModel, type: SearchFormModel,
required: true, required: true,
}, },
context: { context: { type: Object as PropType<IContext>, required: true },
type: IBizContext,
required: true,
},
params: { type: Object as PropType<IParams>, default: () => ({}) }, params: { type: Object as PropType<IParams>, default: () => ({}) },
}, },
setup(props) { setup(props) {
......
import { IBizContext } from '@ibiz-template/core';
import { ViewPanelModel } from '@ibiz-template/model'; import { ViewPanelModel } from '@ibiz-template/model';
import { useViewPanelController } from '@ibiz-template/vue-util'; import { useViewPanelController } from '@ibiz-template/vue-util';
import { defineComponent, getCurrentInstance, PropType } from 'vue'; import { defineComponent, getCurrentInstance, PropType } from 'vue';
...@@ -10,10 +9,7 @@ export const ViewPanel = defineComponent({ ...@@ -10,10 +9,7 @@ export const ViewPanel = defineComponent({
type: ViewPanelModel, type: ViewPanelModel,
required: true, required: true,
}, },
context: { context: { type: Object as PropType<IContext>, required: true },
type: IBizContext,
required: true,
},
params: { type: Object as PropType<IParams>, default: () => ({}) }, params: { type: Object as PropType<IParams>, default: () => ({}) },
}, },
setup(props) { setup(props) {
......
...@@ -126,6 +126,8 @@ async function appInit(): Promise<void> { ...@@ -126,6 +126,8 @@ async function appInit(): Promise<void> {
setRefreshToken(); setRefreshToken();
// 设置权限服务需要的appData里的数据 // 设置权限服务需要的appData里的数据
await ibiz.authority.init(); await ibiz.authority.init();
// TODO临时 多应用适配时需要修改 资源路径计算,资源路径上下文计算工具类
await ibiz.resourcePathUtil.init();
} catch (error) { } catch (error) {
const { response } = error as IData; const { response } = error as IData;
if (response?.status === 401) { if (response?.status === 401) {
......
import Router from 'vue-router'; import Router from 'vue-router';
import { Environment } from '@ibiz-template/core';
import { AuthGuard } from '../guard'; import { AuthGuard } from '../guard';
import RouterShell from '@/components/router-shell/router-shell'; import RouterShell from '@/components/router-shell/router-shell';
import appRedirectView from '@/views/app-redirect-view/app-redirect-view'; import appRedirectView from '@/views/app-redirect-view/app-redirect-view';
import todoRedirect from '@/views/todo-redirect/todo-redirect'; import todoRedirect from '@/views/todo-redirect/todo-redirect';
const placeholder = Environment.routePlaceholder;
// 参数正则,占位符或者以等号相隔的参数键值对
const paramReg = `[^/]+=[^/]+|${placeholder}`;
// 视图正则,非=/的字符串
const viewReg = `[^=/]+`;
const router = new Router({ const router = new Router({
routes: [ routes: [
{ {
path: '/', path: '/',
redirect: '/index', redirect: `/${placeholder}/index/${placeholder}`,
}, },
{ {
path: '/login', path: '/login',
...@@ -17,7 +24,7 @@ const router = new Router({ ...@@ -17,7 +24,7 @@ const router = new Router({
}, },
{ {
path: '/404', path: '/404',
name: '404View', name: '404View1',
component: () => import('../views/404-view/404-view'), component: () => import('../views/404-view/404-view'),
}, },
{ {
...@@ -47,7 +54,7 @@ const router = new Router({ ...@@ -47,7 +54,7 @@ const router = new Router({
component: todoRedirect, component: todoRedirect,
}, },
{ {
path: '/:view1([^=/]+)/:params1([^/]+=[^/]+)?', path: `/:appContext(${paramReg})/:view1(${viewReg})/:params1(${paramReg})`,
props: { props: {
level: 1, level: 1,
}, },
...@@ -63,30 +70,61 @@ const router = new Router({ ...@@ -63,30 +70,61 @@ const router = new Router({
children: [ children: [
{ {
path: '404', path: '404',
name: '404View', name: '404View2',
component: () => import('../views/404-view/404-view'), component: () => import('../views/404-view/404-view'),
}, },
{ {
path: ':view2([^=/]+)/:params2([^/]+=[^/]+)?', path: `:view2(${viewReg})/:params2(${paramReg})`,
props: { props: {
level: 2, level: 2,
}, },
component: RouterShell, component: RouterShell,
children: [ children: [
{ {
path: ':view3([^=/]+)/:params3([^/]+=[^/]+)?', path: '404',
name: '404View3',
component: () => import('../views/404-view/404-view'),
},
{
path: `:view3(${viewReg})/:params3(${paramReg})`,
props: { props: {
level: 3, level: 3,
}, },
component: RouterShell, component: RouterShell,
children: [
{
path: '404',
name: '404View4',
component: () => import('../views/404-view/404-view'),
},
{
path: `:view4(${viewReg})/:params4(${paramReg})`,
props: {
level: 4,
},
component: RouterShell,
},
{
path: '*',
redirect: { name: '404View4' },
},
],
},
{
path: '*',
redirect: { name: '404View3' },
}, },
], ],
}, },
{
path: '*',
redirect: { name: '404View2' },
},
], ],
}, },
{ {
path: '*', path: '/*',
redirect: '/404', redirect: { name: '404View1' },
}, },
], ],
}); });
......
import { IBizContext } from '@ibiz-template/core';
import { IPSAppView } from '@ibiz-template/model'; import { IPSAppView } from '@ibiz-template/model';
import { import {
IModal, IModal,
...@@ -28,10 +27,10 @@ import { ...@@ -28,10 +27,10 @@ import {
export class OpenViewUtil implements IOpenViewUtil { export class OpenViewUtil implements IOpenViewUtil {
root( root(
appView: IPSAppView, appView: IPSAppView,
context?: IBizContext | undefined, context: IContext,
params?: IParams | undefined, params?: IParams | undefined,
): void { ): void {
const path = generateRoutePath( const { path } = generateRoutePath(
appView, appView,
router.currentRoute, router.currentRoute,
context, context,
...@@ -47,13 +46,13 @@ export class OpenViewUtil implements IOpenViewUtil { ...@@ -47,13 +46,13 @@ export class OpenViewUtil implements IOpenViewUtil {
* @author lxm * @author lxm
* @date 2022-09-12 01:09:06 * @date 2022-09-12 01:09:06
* @param {IPSAppView} appView * @param {IPSAppView} appView
* @param {(IBizContext | undefined)} [context] * @param {(IContext | undefined)} [context]
* @param {(IParams | undefined)} [params] * @param {(IParams | undefined)} [params]
* @returns {*} {Promise<IModalData>} * @returns {*} {Promise<IModalData>}
*/ */
async modal( async modal(
appView: IPSAppView, appView: IPSAppView,
context?: IBizContext | undefined, context: IContext,
params?: IParams | undefined, params?: IParams | undefined,
): Promise<IModalData> { ): Promise<IModalData> {
// 获取视图path // 获取视图path
...@@ -81,7 +80,7 @@ export class OpenViewUtil implements IOpenViewUtil { ...@@ -81,7 +80,7 @@ export class OpenViewUtil implements IOpenViewUtil {
async popover( async popover(
appView: IPSAppView, appView: IPSAppView,
event: MouseEvent, event: MouseEvent,
context?: IBizContext | undefined, context: IContext,
params?: IParams | undefined, params?: IParams | undefined,
): Promise<IModalData> { ): Promise<IModalData> {
// 获取视图path // 获取视图path
...@@ -106,13 +105,13 @@ export class OpenViewUtil implements IOpenViewUtil { ...@@ -106,13 +105,13 @@ export class OpenViewUtil implements IOpenViewUtil {
* @author lxm * @author lxm
* @date 2022-09-15 15:09:50 * @date 2022-09-15 15:09:50
* @param {IPSAppView} appView * @param {IPSAppView} appView
* @param {(IBizContext | undefined)} [context] * @param {(IContext | undefined)} [context]
* @param {(IParams | undefined)} [params] * @param {(IParams | undefined)} [params]
* @returns {*} {Promise<IModalData>} * @returns {*} {Promise<IModalData>}
*/ */
async drawer( async drawer(
appView: IPSAppView, appView: IPSAppView,
context?: IBizContext | undefined, context: IContext,
params?: IParams | undefined, params?: IParams | undefined,
): Promise<IModalData> { ): Promise<IModalData> {
// 获取视图path // 获取视图path
...@@ -140,7 +139,7 @@ export class OpenViewUtil implements IOpenViewUtil { ...@@ -140,7 +139,7 @@ export class OpenViewUtil implements IOpenViewUtil {
async custom( async custom(
appView: IPSAppView, appView: IPSAppView,
context?: IBizContext | undefined, context: IContext,
params?: IParams | undefined, params?: IParams | undefined,
): Promise<IModalData> { ): Promise<IModalData> {
ibiz.log.warn('openUserCustom', appView, context, params); ibiz.log.warn('openUserCustom', appView, context, params);
......
import { defineComponent, onMounted } from 'vue'; import { defineComponent, onMounted, onUnmounted } from 'vue';
import { getModelService } from '@ibiz-template/model'; import { getModelService } from '@ibiz-template/model';
import { IBizContext } from '@ibiz-template/core'; import { IBizContext } from '@ibiz-template/core';
import { toLocalOpenWFRedirectView } from '@ibiz-template/runtime'; import { toLocalOpenWFRedirectView } from '@ibiz-template/runtime';
export default defineComponent({ export default defineComponent({
setup() { setup() {
const context = IBizContext.newTempContext( const context = IBizContext.create(ibiz.appData?.context || {});
{},
IBizContext.newByIContext(ibiz.appData?.context), onUnmounted(() => {
); context.destroy();
});
const { href } = window.location; const { href } = window.location;
......
...@@ -637,61 +637,61 @@ ...@@ -637,61 +637,61 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
"@ibiz-template/command@^0.0.1-beta.48": "@ibiz-template/command@^0.0.1-beta.49":
version "0.0.1-beta.48" version "0.0.1-beta.49"
resolved "http://npm.zhr.icu/@ibiz-template/command/-/command-0.0.1-beta.48.tgz#23c88eb58509ce887df525f8c9f329dd32364f9b" resolved "http://npm.zhr.icu/@ibiz-template/command/-/command-0.0.1-beta.49.tgz#7edb52efebd9126a5352b1ed5a8a6312f44a19e7"
integrity sha512-5CZzkYA8n72pYMoNt9L8oGDsCDbngPHrnxSU1t+R4ttvDGNQHFrtDEVKX0iuZwjxillsFw1S3t1cdkbmZfxJCA== integrity sha512-F/GbkndfnvpEAek0fNG/73pZIic2ECb6oAiG8O6NjQGR8K/iNWKWfhlDgBiWtjtbj44Ogerzox3sIh+6eh5CEw==
dependencies: dependencies:
qx-util "^0.4.4" qx-util "^0.4.4"
"@ibiz-template/controller@^0.0.1-beta.48": "@ibiz-template/controller@^0.0.1-beta.49":
version "0.0.1-beta.48" version "0.0.1-beta.49"
resolved "http://npm.zhr.icu/@ibiz-template/controller/-/controller-0.0.1-beta.48.tgz#59939719d9be70f7f0f6636fabd7e9eb370e03ad" resolved "http://npm.zhr.icu/@ibiz-template/controller/-/controller-0.0.1-beta.49.tgz#5a90941718f4b639aaa6d0010e1a705ecb1516b1"
integrity sha512-zkFdc5n4G0SJcO/E+kEhW/ab8bhlTrWIXpJ08Uwj6iwcyRSJ77UaEBpeaHTsPQB72dMYrvF/MEVp9cow0F8jkg== integrity sha512-B6NQyip0q7BDsjXb7mAK9QrCO1VeIEP3SpcE5G0J+c9NSUZd3uz13mCaa6V6FQ5tuehC3pRJsvfdOOyvk9aBfA==
dependencies: dependencies:
async-validator "^4.2.5" async-validator "^4.2.5"
dayjs "^1.11.5" dayjs "^1.11.5"
"@ibiz-template/core@^0.0.1-beta.48": "@ibiz-template/core@^0.0.1-beta.49":
version "0.0.1-beta.48" version "0.0.1-beta.49"
resolved "http://npm.zhr.icu/@ibiz-template/core/-/core-0.0.1-beta.48.tgz#be06fef89ffde5ad1efba29beaf8dadf0fff0724" resolved "http://npm.zhr.icu/@ibiz-template/core/-/core-0.0.1-beta.49.tgz#335e5c542d0890f471574660af99b64a65d3ba8e"
integrity sha512-ikSdGnjLcMQh7YttSE0GRAeEqDlE6T9QCbSbSLh0ybb88HEsEtCSCcOckir3g8f0OV8UIlRRN1aE4BOtXXPcpg== integrity sha512-9KaK6m7Ozob8dlyGi1OPqv29T9MOXr0xlG68VNBfEHxq7S0Vcmz5dgOUF48YlAwTs4UJq7s2LWj6lzVxPXgd7A==
dependencies: dependencies:
axios "^1.2.1" axios "^1.2.1"
loglevel "^1.8.0" loglevel "^1.8.0"
pluralize "^8.0.0" pluralize "^8.0.0"
qs "^6.11.0" qs "^6.11.0"
"@ibiz-template/model@^0.0.1-beta.48": "@ibiz-template/model@^0.0.1-beta.49":
version "0.0.1-beta.48" version "0.0.1-beta.49"
resolved "http://npm.zhr.icu/@ibiz-template/model/-/model-0.0.1-beta.48.tgz#f4cfc0f41b57f18a5c6324c67ba9ad051b2a3234" resolved "http://npm.zhr.icu/@ibiz-template/model/-/model-0.0.1-beta.49.tgz#ba4a0331d02ae9853bd46b7a3af81286cee09102"
integrity sha512-N830Iph4+T2w2jRhR/eBOUOzEAUtinB0u0BXhck+wQnzaLcMmnzJIdD0Lr19wMdXnOHZ++YdGZjXQ5bZBGau+A== integrity sha512-YhFmomTWplQgbaCBFMH0RT93QiVRhp5ZxApNjvw30I2THbw+/iV+aVSjvEdMHp5GsRIEQBO0Bfft/rlVds9f/g==
dependencies: dependencies:
"@ibiz/dynamic-model-api" "^2.1.11" "@ibiz/dynamic-model-api" "^2.1.11"
pluralize "^8.0.0" pluralize "^8.0.0"
"@ibiz-template/runtime@^0.0.1-beta.48": "@ibiz-template/runtime@^0.0.1-beta.49":
version "0.0.1-beta.48" version "0.0.1-beta.49"
resolved "http://npm.zhr.icu/@ibiz-template/runtime/-/runtime-0.0.1-beta.48.tgz#ee7136aad6ff55ab41ef54af7d4140bf16a729c6" resolved "http://npm.zhr.icu/@ibiz-template/runtime/-/runtime-0.0.1-beta.49.tgz#f666be7eaca1a4af3eb3fcbecbd1a292b5d96084"
integrity sha512-PKiYNv+QN2/EgY12qttATTFw+5g+O8FcBGEnuNJ4n7Y7+dDqZmjrDpTXzGwyJZef4OjBQN5wEbbnkADl6OnERw== integrity sha512-BlJ+Z+exyZLGDNMA3cL6WBLAgNdQyliOaFwEr3hx6hk3H13Igbj1ZZB6NGPykwL6hnnytoQ73cf12rChz87Ksw==
dependencies: dependencies:
"@ibiz-template/command" "^0.0.1-beta.48" "@ibiz-template/command" "^0.0.1-beta.49"
qs "^6.11.0" qs "^6.11.0"
"@ibiz-template/service@^0.0.1-beta.48": "@ibiz-template/service@^0.0.1-beta.49":
version "0.0.1-beta.48" version "0.0.1-beta.49"
resolved "http://npm.zhr.icu/@ibiz-template/service/-/service-0.0.1-beta.48.tgz#577e210a06c3f5ca7933c52de0ae6d1e89281d90" resolved "http://npm.zhr.icu/@ibiz-template/service/-/service-0.0.1-beta.49.tgz#ce701333cabea3e456d3e729742a9270324e8ceb"
integrity sha512-0dXmdXwELNtmtkj5txQ4anJbpKkI0d3F1hLGD4F2OpMUfZxb7jWViMg9RzIp/8ZvFICfTn1ToOb7oSZSpqFeQg== integrity sha512-0R84rSehJCDMmEH0LgcO+wlrOK9rW52/BzvtuIS+1lEqxqtqzW0x0TyynSkFppTz6Ft7RCyBeIhQj5Ivw72G9g==
"@ibiz-template/theme@^0.0.1-beta.48": "@ibiz-template/theme@^0.0.1-beta.49":
version "0.0.1-beta.48" version "0.0.1-beta.49"
resolved "http://npm.zhr.icu/@ibiz-template/theme/-/theme-0.0.1-beta.48.tgz#b652cb8438be3f196650378ab537a5faeb8b0535" resolved "http://npm.zhr.icu/@ibiz-template/theme/-/theme-0.0.1-beta.49.tgz#9507b1c439ead32b8bc816833666fca9435bb0c4"
integrity sha512-oFOM1iOLgvkPMs/h8nXXIKdaFe49n1X+uTY/ZJEp82Iup/W7m3XrGN/3hBXsfl+Jw7O6/mbjEbSkphUCKeFq4g== integrity sha512-JuGC7+04Yw7WviGv9dg4wzhhZDfWJGCpHdMIPsviX6k33gLeM56r9M0rtkHimmf4Uj8kJIbR/9bCEKeFBtUSiw==
"@ibiz-template/vue-util@^0.0.1-beta.48": "@ibiz-template/vue-util@^0.0.1-beta.49":
version "0.0.1-beta.48" version "0.0.1-beta.49"
resolved "http://npm.zhr.icu/@ibiz-template/vue-util/-/vue-util-0.0.1-beta.48.tgz#d1055d880c12dbafe3dd7857f7af6a24b5379d0a" resolved "http://npm.zhr.icu/@ibiz-template/vue-util/-/vue-util-0.0.1-beta.49.tgz#7edc9edbaa7f5c338c92dffd7fc81a7203ce9c7a"
integrity sha512-H4Ak50xCBXuHQVXDTDgS0ij67kXZ4Z0fXzrh2jsB/pJJ5+mA6MrjN2Y7sNwbnvPexCvVs/fqktMo3/hc687cDQ== integrity sha512-9YtXQT22HKGsd/PrXFHVvbPHvlEFYLHVkfrIFPO3Rn0pF6poW3epAvboANP3g3xXmw0dRGIcbM6Sz8Zmp+MSWw==
"@ibiz/dynamic-model-api@^2.1.11": "@ibiz/dynamic-model-api@^2.1.11":
version "2.1.11" version "2.1.11"
......
...@@ -1219,16 +1219,16 @@ ...@@ -1219,16 +1219,16 @@
"mOSFilePath" : "pssysapps/TemplatePublish/psappviewmsggroups/VMGroup2", "mOSFilePath" : "pssysapps/TemplatePublish/psappviewmsggroups/VMGroup2",
"name" : "视图消息组2", "name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ { "getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息", "name" : "视图消息2",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg2" "id" : "ViewMsg3"
} }
}, { }, {
"name" : "视图消息2", "name" : "视图消息",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg3" "id" : "ViewMsg2"
} }
} ], } ],
"rTMOSFilePath" : "pssysapps/TemplatePublish/psappviewmsggroups/VMGroup2" "rTMOSFilePath" : "pssysapps/TemplatePublish/psappviewmsggroups/VMGroup2"
......
...@@ -37,6 +37,46 @@ ...@@ -37,6 +37,46 @@
} }
} ], } ],
"getPSDEFormItemVRs" : [ { "getPSDEFormItemVRs" : [ {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule5",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"name" : "field4值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condType" : "SYSVALUERULE",
"dEFName" : "FIELD4",
"name" : "[系统值规则]URL",
"getPSSysValueRule" : {
"codeName" : "ValueRule17",
"dynaModelFilePath" : "PSSYSVALUERULES/ValueRule17.json",
"mOSFilePath" : "pssysvaluerules/ValueRule17",
"name" : "URL",
"rTMOSFilePath" : "pssysvaluerules/ValueRule17",
"regExCode" : "[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?",
"ruleInfo" : "内容必须为有效URL格式",
"ruleType" : "REG",
"enableBackend" : true,
"enableFront" : true
},
"ruleInfo" : "内容必须为有效URL格式"
} ],
"ruleInfo" : "内容必须为有效URL格式"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"ruleInfo" : "内容必须为有效URL格式",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3, "checkMode" : 3,
"name" : "表单项值规则", "name" : "表单项值规则",
"getPSDEFValueRule" : { "getPSDEFValueRule" : {
...@@ -108,6 +148,37 @@ ...@@ -108,6 +148,37 @@
}, },
"getPSDEFormItemName" : "field5", "getPSDEFormItemName" : "field5",
"valueRuleType" : "DEFVALUERULE" "valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, { }, {
"checkMode" : 3, "checkMode" : 3,
"name" : "表单项值规则", "name" : "表单项值规则",
...@@ -320,77 +391,6 @@ ...@@ -320,77 +391,6 @@
}, },
"getPSDEFormItemName" : "field7", "getPSDEFormItemName" : "field7",
"valueRuleType" : "DEFVALUERULE" "valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule5",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"name" : "field4值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condType" : "SYSVALUERULE",
"dEFName" : "FIELD4",
"name" : "[系统值规则]URL",
"getPSSysValueRule" : {
"codeName" : "ValueRule17",
"dynaModelFilePath" : "PSSYSVALUERULES/ValueRule17.json",
"mOSFilePath" : "pssysvaluerules/ValueRule17",
"name" : "URL",
"rTMOSFilePath" : "pssysvaluerules/ValueRule17",
"regExCode" : "[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?",
"ruleInfo" : "内容必须为有效URL格式",
"ruleType" : "REG",
"enableBackend" : true,
"enableFront" : true
},
"ruleInfo" : "内容必须为有效URL格式"
} ],
"ruleInfo" : "内容必须为有效URL格式"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"ruleInfo" : "内容必须为有效URL格式",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
} ], } ],
"getPSDEFormItems" : [ { "getPSDEFormItems" : [ {
"id" : "srfupdatedate", "id" : "srfupdatedate",
......
...@@ -166,6 +166,46 @@ ...@@ -166,6 +166,46 @@
"id" : "FORM" "id" : "FORM"
}, },
"getPSDEFormItemVRs" : [ { "getPSDEFormItemVRs" : [ {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule5",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"name" : "field4值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condType" : "SYSVALUERULE",
"dEFName" : "FIELD4",
"name" : "[系统值规则]URL",
"getPSSysValueRule" : {
"codeName" : "ValueRule17",
"dynaModelFilePath" : "PSSYSVALUERULES/ValueRule17.json",
"mOSFilePath" : "pssysvaluerules/ValueRule17",
"name" : "URL",
"rTMOSFilePath" : "pssysvaluerules/ValueRule17",
"regExCode" : "[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?",
"ruleInfo" : "内容必须为有效URL格式",
"ruleType" : "REG",
"enableBackend" : true,
"enableFront" : true
},
"ruleInfo" : "内容必须为有效URL格式"
} ],
"ruleInfo" : "内容必须为有效URL格式"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"ruleInfo" : "内容必须为有效URL格式",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3, "checkMode" : 3,
"name" : "表单项值规则", "name" : "表单项值规则",
"getPSDEFValueRule" : { "getPSDEFValueRule" : {
...@@ -237,6 +277,37 @@ ...@@ -237,6 +277,37 @@
}, },
"getPSDEFormItemName" : "field5", "getPSDEFormItemName" : "field5",
"valueRuleType" : "DEFVALUERULE" "valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, { }, {
"checkMode" : 3, "checkMode" : 3,
"name" : "表单项值规则", "name" : "表单项值规则",
...@@ -449,77 +520,6 @@ ...@@ -449,77 +520,6 @@
}, },
"getPSDEFormItemName" : "field7", "getPSDEFormItemName" : "field7",
"valueRuleType" : "DEFVALUERULE" "valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule5",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"name" : "field4值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condType" : "SYSVALUERULE",
"dEFName" : "FIELD4",
"name" : "[系统值规则]URL",
"getPSSysValueRule" : {
"codeName" : "ValueRule17",
"dynaModelFilePath" : "PSSYSVALUERULES/ValueRule17.json",
"mOSFilePath" : "pssysvaluerules/ValueRule17",
"name" : "URL",
"rTMOSFilePath" : "pssysvaluerules/ValueRule17",
"regExCode" : "[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?",
"ruleInfo" : "内容必须为有效URL格式",
"ruleType" : "REG",
"enableBackend" : true,
"enableFront" : true
},
"ruleInfo" : "内容必须为有效URL格式"
} ],
"ruleInfo" : "内容必须为有效URL格式"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"ruleInfo" : "内容必须为有效URL格式",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
} ], } ],
"getPSDEFormItems" : [ { "getPSDEFormItems" : [ {
"id" : "srfupdatedate", "id" : "srfupdatedate",
......
...@@ -2400,16 +2400,16 @@ ...@@ -2400,16 +2400,16 @@
"mOSFilePath" : "pssysapps/Web/psappviewmsggroups/VMGroup2", "mOSFilePath" : "pssysapps/Web/psappviewmsggroups/VMGroup2",
"name" : "视图消息组2", "name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ { "getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息", "name" : "视图消息2",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg2" "id" : "ViewMsg3"
} }
}, { }, {
"name" : "视图消息2", "name" : "视图消息",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg3" "id" : "ViewMsg2"
} }
} ], } ],
"rTMOSFilePath" : "pssysapps/Web/psappviewmsggroups/VMGroup2" "rTMOSFilePath" : "pssysapps/Web/psappviewmsggroups/VMGroup2"
...@@ -18007,6 +18007,46 @@ ...@@ -18007,6 +18007,46 @@
"id" : "FORM" "id" : "FORM"
}, },
"getPSDEFormItemVRs" : [ { "getPSDEFormItemVRs" : [ {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule5",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"name" : "field4值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condType" : "SYSVALUERULE",
"dEFName" : "FIELD4",
"name" : "[系统值规则]URL",
"getPSSysValueRule" : {
"codeName" : "ValueRule17",
"dynaModelFilePath" : "PSSYSVALUERULES/ValueRule17.json",
"mOSFilePath" : "pssysvaluerules/ValueRule17",
"name" : "URL",
"rTMOSFilePath" : "pssysvaluerules/ValueRule17",
"regExCode" : "[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?",
"ruleInfo" : "内容必须为有效URL格式",
"ruleType" : "REG",
"enableBackend" : true,
"enableFront" : true
},
"ruleInfo" : "内容必须为有效URL格式"
} ],
"ruleInfo" : "内容必须为有效URL格式"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"ruleInfo" : "内容必须为有效URL格式",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3, "checkMode" : 3,
"name" : "表单项值规则", "name" : "表单项值规则",
"getPSDEFValueRule" : { "getPSDEFValueRule" : {
...@@ -18078,6 +18118,37 @@ ...@@ -18078,6 +18118,37 @@
}, },
"getPSDEFormItemName" : "field5", "getPSDEFormItemName" : "field5",
"valueRuleType" : "DEFVALUERULE" "valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, { }, {
"checkMode" : 3, "checkMode" : 3,
"name" : "表单项值规则", "name" : "表单项值规则",
...@@ -18290,77 +18361,6 @@ ...@@ -18290,77 +18361,6 @@
}, },
"getPSDEFormItemName" : "field7", "getPSDEFormItemName" : "field7",
"valueRuleType" : "DEFVALUERULE" "valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule5",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"name" : "field4值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condType" : "SYSVALUERULE",
"dEFName" : "FIELD4",
"name" : "[系统值规则]URL",
"getPSSysValueRule" : {
"codeName" : "ValueRule17",
"dynaModelFilePath" : "PSSYSVALUERULES/ValueRule17.json",
"mOSFilePath" : "pssysvaluerules/ValueRule17",
"name" : "URL",
"rTMOSFilePath" : "pssysvaluerules/ValueRule17",
"regExCode" : "[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?",
"ruleInfo" : "内容必须为有效URL格式",
"ruleType" : "REG",
"enableBackend" : true,
"enableFront" : true
},
"ruleInfo" : "内容必须为有效URL格式"
} ],
"ruleInfo" : "内容必须为有效URL格式"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD4/psdefvaluerules/ValueRule5",
"ruleInfo" : "内容必须为有效URL格式",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
} ], } ],
"getPSDEFormItems" : [ { "getPSDEFormItems" : [ {
"id" : "srfupdatedate", "id" : "srfupdatedate",
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册