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

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

上级 536ebd28
......@@ -13,13 +13,13 @@
"dependencies": {
"@floating-ui/dom": "^1.0.11",
"@ibiz-template/command": "^0.0.1-beta.50",
"@ibiz-template/controller": "^0.0.1-beta.70",
"@ibiz-template/core": "^0.0.1-beta.70",
"@ibiz-template/model": "^0.0.1-beta.70",
"@ibiz-template/runtime": "^0.0.1-beta.70",
"@ibiz-template/service": "^0.0.1-beta.70",
"@ibiz-template/theme": "^0.0.1-beta.70",
"@ibiz-template/vue-util": "^0.0.1-beta.70",
"@ibiz-template/controller": "^0.0.1-beta.71",
"@ibiz-template/core": "^0.0.1-beta.71",
"@ibiz-template/model": "^0.0.1-beta.71",
"@ibiz-template/runtime": "^0.0.1-beta.71",
"@ibiz-template/service": "^0.0.1-beta.71",
"@ibiz-template/theme": "^0.0.1-beta.71",
"@ibiz-template/vue-util": "^0.0.1-beta.71",
"@ibiz/dynamic-model-api": "^2.1.17",
"@riophae/vue-treeselect": "^0.4.0",
"dayjs": "^1.11.7",
......
此差异已折叠。
......@@ -30,6 +30,7 @@ import {
FormRawItem,
FormButton,
FormDRUIPart,
FormMDCtrl,
GridFieldEditColumn,
GridUAColumn,
GridFieldColumn,
......@@ -155,6 +156,7 @@ export const AppRegister = {
v.component('GridUAColumn', GridUAColumn);
v.component('GridFieldColumn', GridFieldColumn);
v.component('GridFieldEditColumn', GridFieldEditColumn);
v.component('FormMDCtrl', FormMDCtrl);
v.component('FormButton', FormButton);
v.component('FormDruipart', FormDRUIPart);
v.component('FormGroupPanel', FormGroupPanel);
......
......@@ -11,6 +11,7 @@ export const EditFormControl = defineComponent({
},
context: { type: Object as PropType<IContext>, required: true },
params: { type: Object as PropType<IParams>, default: () => ({}) },
enableAutoSave: { type: Boolean, required: false },
},
setup(props) {
const { proxy } = getCurrentInstance()!;
......
......@@ -46,7 +46,7 @@ export const FormGroupPanel = defineComponent({
if (!slot.componentOptions) {
return slot;
}
const props = (slot.componentOptions.propsData || {}) as IData;
const props = (slot.data?.props || {}) as IData;
return (
<app-col
layoutPos={props.modelData.source.getPSLayoutPos()}
......
import { defineComponent, getCurrentInstance, h, watch } from 'vue';
import { useController, useNamespace } from '@ibiz-template/vue-util';
import { FormMDCtrlModel } from '@ibiz-template/model';
import '@ibiz-template/theme/style/components/widgets/form/form-mdctrl.scss';
import { FormMDCtrlController } from '@ibiz-template/controller';
export const FormMDCtrl = defineComponent({
name: 'FormMDCtrl',
props: {
modelData: {
type: FormMDCtrlModel,
required: true,
},
controller: {
type: FormMDCtrlController,
required: true,
},
},
setup(props) {
const ns = useNamespace('form-mdctrl');
// 绑定强制刷新
const { proxy } = getCurrentInstance()!;
useController(proxy, props.controller);
const c = props.controller;
watch(
() => c.form.isLoaded,
(n, o) => {
if (n !== o && n === true) {
c.loadData();
}
},
);
return { ns, c };
},
render() {
const renderFormContent = () => {
return (
this.c.contentCtrlData.length > 0 &&
this.c.contentCtrlData.map((data: IData, index: number) => {
let formComponent = null;
const { form } = this.c.model;
if (form && this.c.providers[form.name] && this.c.model.appEntity) {
const tempContext = Object.assign(this.c.form.context.clone(), {
[this.c.model.appEntity.codeName?.toLowerCase()]:
data[this.c.model.appEntity.keyName],
});
formComponent = h(this.c.providers[form.name].component, {
props: {
modelData: form,
context: tempContext,
params: this.c.form.params,
enableAutoSave: true,
},
on: {
neuronInit: this.c.onNeuronInit(data.srfkey),
},
});
}
return (
<div class={this.ns.b('form-content')} key={data.srfkey}>
{formComponent}
<div class={this.ns.b('btn')}>
<i-button
class={this.ns.b('add-btn')}
type='text'
on-click={() => this.c.handleAdd(index)}
>
添加
</i-button>
<i-button
class={this.ns.b('remove-btn')}
type='text'
on-click={() => this.c.handleRemove(data, index)}
>
删除
</i-button>
</div>
</div>
);
})
);
};
const renderMainContent = () => {
return <div class={this.ns.b('main')}>{renderFormContent()}</div>;
};
return <div class={this.ns.b()}>{renderMainContent()}</div>;
},
});
export default FormMDCtrl;
......@@ -9,6 +9,7 @@ import FormRawItem from './form-raw-item/form-raw-item';
import FormTabPage from './form-tab-page/form-tab-page';
import FormTabPanel from './form-tab-panel/form-tab-panel';
import { FormControl } from './form-control';
import { FormMDCtrl } from './form-mdctrl/form-mdctrl';
export {
FormButton,
......@@ -22,4 +23,5 @@ export {
FormTabPage,
FormTabPanel,
FormControl,
FormMDCtrl,
};
import { FormMDCtrlModel } from '@ibiz-template/model';
import {
FormContainerController,
FormController,
FormMDCtrlController,
IFormDetailProvider,
} from '@ibiz-template/controller';
/**
* 表单多数据部件适配器
*
* @author lxm
* @date 2022-09-19 22:09:03
* @export
* @class FormMDCtrlProvider
* @implements {EditorProvider}
*/
export class FormMDCtrlProvider implements IFormDetailProvider {
component: string = 'FormMDCtrl';
async createController(
detailModel: FormMDCtrlModel,
form: FormController,
parent: FormContainerController | undefined,
): Promise<FormMDCtrlController> {
const c = new FormMDCtrlController(detailModel, form, parent);
await c.init();
return c;
}
}
......@@ -2,6 +2,7 @@ import { FormButtonProvider } from './form-button-provider';
import { FormDRUIPartProvider } from './form-druipart-provider';
import { FormGroupPanelProvider } from './form-group-panel-provider';
import { FormItemProvider } from './form-item-provider';
import { FormMDCtrlProvider } from './form-mdctrl-provider';
import { FormPageProvider } from './form-page-provider';
import { FormRawItemProvider } from './form-raw-item-provider';
import { FormTabPageProvider } from './form-tab-page-provider';
......@@ -35,6 +36,8 @@ export function presetFormDetailProvider(): void {
formDetail.register('TABPANEL', new FormTabPanelProvider());
// 表单分页面板
formDetail.register('TABPAGE', new FormTabPageProvider());
// 表单多数据部件
formDetail.register('MDCTRL', new FormMDCtrlProvider());
}
export {
......
......@@ -651,54 +651,54 @@
dependencies:
qx-util "^0.4.8"
"@ibiz-template/controller@^0.0.1-beta.70":
version "0.0.1-beta.70"
resolved "http://npm.zhr.icu/@ibiz-template/controller/-/controller-0.0.1-beta.70.tgz#a6603f09e1e66a44612142a11f4565041a07b799"
integrity sha512-WUk7glT5PkMUxPAf9wjgE+QZqLF+K3UQd2l/yEb7YM//k0DZ7lA3GzN6NlZy84gTk/dVbSTsFrldBIPe2xAlCA==
"@ibiz-template/controller@^0.0.1-beta.71":
version "0.0.1-beta.71"
resolved "http://npm.zhr.icu/@ibiz-template/controller/-/controller-0.0.1-beta.71.tgz#17dd12bf88a6f61e8a2422a22ef6bb097ee86475"
integrity sha512-Fg2HrG/vzdK5c+/Rfo32AVepsDe62WVDNhRW/YCfpg2Fj2x1ttRZF1oE7cjA7f5klZACZhHdIw6Kt09+Mg4iAw==
dependencies:
async-validator "^4.2.5"
dayjs "^1.11.5"
"@ibiz-template/core@^0.0.1-beta.70":
version "0.0.1-beta.70"
resolved "http://npm.zhr.icu/@ibiz-template/core/-/core-0.0.1-beta.70.tgz#ed81d20789798df1a5903057530d1fcaabc68d5f"
integrity sha512-S/MMfuzd0GIhEFJA5DsBBriJ3ev3hRQxlfeh8UsCzQT8XT0Nm9VzS9LaI++3U69TEhka7RCS8cHdIK927ZW3aQ==
"@ibiz-template/core@^0.0.1-beta.71":
version "0.0.1-beta.71"
resolved "http://npm.zhr.icu/@ibiz-template/core/-/core-0.0.1-beta.71.tgz#32b3d5ad13e800aa5b0702c15101814dbbefeb9b"
integrity sha512-w9yY8PkTe/eooRIbN5P4Ks4fLzHcnAzF7N+8H45eomlARi6Z8vmN643fvyCxWDuPF2Pknu2Co5GMscgSyN3mZQ==
dependencies:
axios "^1.2.1"
loglevel "^1.8.0"
pluralize "^8.0.0"
qs "^6.11.0"
"@ibiz-template/model@^0.0.1-beta.70":
version "0.0.1-beta.70"
resolved "http://npm.zhr.icu/@ibiz-template/model/-/model-0.0.1-beta.70.tgz#7614f8d666d2aa17dc7622ffc64fdfdfaf3ae6b1"
integrity sha512-rqmMmLBDqta6CTEMNJavC7kGM4+vWOAUXf9Z/+CgOeEmYC4/JRa762V2ygs5A3WY1l0OkqfrPi/1caG9qxIx8A==
"@ibiz-template/model@^0.0.1-beta.71":
version "0.0.1-beta.71"
resolved "http://npm.zhr.icu/@ibiz-template/model/-/model-0.0.1-beta.71.tgz#bc7947e7b5ea6e1620605303c28a4823be3aaf4a"
integrity sha512-+FquY22sgR24rR4gS2hlY2LVYlkKv6qNNUvSsUHy7n3BiZi4tEd0YYeks15RbXgHi0d5S4XquACjiHXvl2Yj2A==
dependencies:
"@ibiz/dynamic-model-api" "^2.1.17"
pluralize "^8.0.0"
"@ibiz-template/runtime@^0.0.1-beta.70":
version "0.0.1-beta.70"
resolved "http://npm.zhr.icu/@ibiz-template/runtime/-/runtime-0.0.1-beta.70.tgz#2001747c9529e4b7f4bcdce995e3a89369b1b649"
integrity sha512-RU4vhxNze/2h2oM7VcDHilXu2SBt0ev/8Rw3r2TkEDMlVyidvQSStbyCYW5vwdL3Jsqq7yK91rpqkKN428Of8A==
"@ibiz-template/runtime@^0.0.1-beta.71":
version "0.0.1-beta.71"
resolved "http://npm.zhr.icu/@ibiz-template/runtime/-/runtime-0.0.1-beta.71.tgz#36924cf44918f7029375a610d12689b0b67e6055"
integrity sha512-Q3Suu8Vza13QQnabZUWQnZeyuj0uwX3u4EhuNQ03BoMc0o1TWJJ+K//Gm4Cj/HJtVXuQzPTPDAWjWqXHo9YcXg==
dependencies:
"@ibiz-template/command" "^0.0.1-beta.50"
qs "^6.11.0"
"@ibiz-template/service@^0.0.1-beta.70":
version "0.0.1-beta.70"
resolved "http://npm.zhr.icu/@ibiz-template/service/-/service-0.0.1-beta.70.tgz#0194a8cb33aecc50f3807eff089b9389d4277e76"
integrity sha512-/lHYYX57Rb3v5ljqcGI1OZSCukpdVTl39P36BmFKMvS/BDwOGi0MmpAnOTySFA/Hhh5istjMs6c0qQnAVu/lng==
"@ibiz-template/service@^0.0.1-beta.71":
version "0.0.1-beta.71"
resolved "http://npm.zhr.icu/@ibiz-template/service/-/service-0.0.1-beta.71.tgz#568a8f3661f1ab143d665b284986eacc85cf8e74"
integrity sha512-YTvJuAT2GE+mf6cw8iq5c/VyC6Gz6rVOcbmpHagFsceEOD8Vl8GQ4U0DQezhvPlkXgpvDOwiAfTQR1wMSgbJ0A==
"@ibiz-template/theme@^0.0.1-beta.70":
version "0.0.1-beta.70"
resolved "http://npm.zhr.icu/@ibiz-template/theme/-/theme-0.0.1-beta.70.tgz#9036d5bbd99ecd49231585dbbdf697893cfe0d95"
integrity sha512-XISU6380wu5fSYhTTGLbMtQsuD9uJc4F2EW2+8SDwuMqmCAL9ZoAubmdZJJpGbv38uzxZfp3CsCkgmC6PS80qQ==
"@ibiz-template/theme@^0.0.1-beta.71":
version "0.0.1-beta.71"
resolved "http://npm.zhr.icu/@ibiz-template/theme/-/theme-0.0.1-beta.71.tgz#69346f3722cef6ac0aa8272f6dcdaf2f92a30619"
integrity sha512-9l3Ea4Vl9eZi45C5Xx9jheREZqBCCJfhCRiKuPlAegDBpJ5MAu4ezla6cKsvGtAeh5lABYa0gTsFJHetRSs4Dg==
"@ibiz-template/vue-util@^0.0.1-beta.70":
version "0.0.1-beta.70"
resolved "http://npm.zhr.icu/@ibiz-template/vue-util/-/vue-util-0.0.1-beta.70.tgz#5b94f0fde2874aa820de806abd2547123693e245"
integrity sha512-9DhX20DIlIsvqDSgeT/1BurKSjMtnfVZNcYYWHp9drlj7Q30MsQ44ecCS9d5e4ozDxbNKWs9d6l5ru54vRdcoQ==
"@ibiz-template/vue-util@^0.0.1-beta.71":
version "0.0.1-beta.71"
resolved "http://npm.zhr.icu/@ibiz-template/vue-util/-/vue-util-0.0.1-beta.71.tgz#ef0a6a2c9698c2ec31fbc8d1889adf83702640cc"
integrity sha512-lqCjYSZEx+D97Qc0V4xmXNfWnvlxyDsoFW4AYJi79hCQtGJdzzpsjyJatvj0KjonTqn1B7R0ryofyAoy7QHgOQ==
"@ibiz/dynamic-model-api@^2.1.17":
version "2.1.17"
......
......@@ -1224,16 +1224,16 @@
"mOSFilePath" : "pssysapps/TemplatePublish/psappviewmsggroups/VMGroup2",
"name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息",
"name" : "视图消息2",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg2"
"id" : "ViewMsg3"
}
}, {
"name" : "视图消息2",
"name" : "视图消息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg3"
"id" : "ViewMsg2"
}
} ],
"rTMOSFilePath" : "pssysapps/TemplatePublish/psappviewmsggroups/VMGroup2"
......
......@@ -2476,16 +2476,16 @@
"mOSFilePath" : "pssysapps/Web/psappviewmsggroups/VMGroup2",
"name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息",
"name" : "视图消息2",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg2"
"id" : "ViewMsg3"
}
}, {
"name" : "视图消息2",
"name" : "视图消息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg3"
"id" : "ViewMsg2"
}
} ],
"rTMOSFilePath" : "pssysapps/Web/psappviewmsggroups/VMGroup2"
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册