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

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

上级 bef39400
......@@ -13,13 +13,13 @@
"dependencies": {
"@floating-ui/dom": "^1.5.3",
"@ibiz-template/command": "^0.0.1-beta.50",
"@ibiz-template/controller": "^0.0.1-beta.138",
"@ibiz-template/core": "^0.0.1-beta.138",
"@ibiz-template/model": "^0.0.1-beta.138",
"@ibiz-template/runtime": "^0.0.1-beta.138",
"@ibiz-template/service": "^0.0.1-beta.138",
"@ibiz-template/theme": "^0.0.1-beta.138",
"@ibiz-template/vue-util": "^0.0.1-beta.138",
"@ibiz-template/controller": "^0.0.1-beta.139",
"@ibiz-template/core": "^0.0.1-beta.139",
"@ibiz-template/model": "^0.0.1-beta.139",
"@ibiz-template/runtime": "^0.0.1-beta.139",
"@ibiz-template/service": "^0.0.1-beta.139",
"@ibiz-template/theme": "^0.0.1-beta.139",
"@ibiz-template/vue-util": "^0.0.1-beta.139",
"@ibiz/dynamic-model-api": "^2.1.28",
"@riophae/vue-treeselect": "^0.4.0",
"dayjs": "^1.11.10",
......
此差异已折叠。
......@@ -62,6 +62,7 @@ import {
ListView,
TreeExpView,
PickupView2,
MPickupView2,
} from './components/views';
import { IndexView } from './views';
import AppKeepAlive from './components/common/app-keep-alive/app-keep-alive.vue';
......@@ -155,6 +156,7 @@ export const AppRegister = {
v.component('ListView', ListView);
v.component('TreeExpView', TreeExpView);
v.component('PickupView2', PickupView2);
v.component('MPickupView2', MPickupView2);
// 注册部件组件
v.component('AppMenu', AppMenu);
v.component('GridControl', GridControl);
......
......@@ -15,3 +15,4 @@ export * from './list-exp-view/list-exp-view';
export * from './list-view/list-view';
export * from './tree-exp-view/tree-exp-view';
export * from './pickup-view2/pickup-view2';
export * from './mpickup-view2/mpickup-view2';
import { IModal } from '@ibiz-template/runtime';
import {
useNamespace,
useMPickupView2Controller,
} from '@ibiz-template/vue-util';
import {
defineComponent,
getCurrentInstance,
PropType,
ref,
Ref,
VNode,
} from 'vue';
import '@ibiz-template/theme/style/components/views/mpickup-view2/mpickup-view2.scss';
export const MPickupView2 = defineComponent({
props: {
context: Object as PropType<IContext>,
params: { type: Object as PropType<IParams>, default: () => ({}) },
modelPath: { type: String, required: true },
modal: { type: Object as PropType<IModal> },
noLoadDefault: { type: Boolean, required: false },
},
setup(props) {
const { proxy } = getCurrentInstance()!;
const c = useMPickupView2Controller(proxy, props.modelPath);
const ns = useNamespace('view-dempickupview2');
// UI层单击选中的数组
const UISelections: Ref<IData[]> = ref([]);
const isSelected = (selection: IData) => {
return UISelections.value.includes(selection);
};
const addRight = () => {
c.addSelections(c.embedSelection);
UISelections.value = [];
};
const addRightAll = () => {
c.selectAll();
UISelections.value = [];
};
const removeRight = () => {
c.removeSelections(UISelections.value);
UISelections.value = [];
};
const removeRightAll = () => {
c.selfSelection = [];
UISelections.value = [];
};
const handleSelectionClick = (selection: IData) => {
const index = UISelections.value.indexOf(selection);
if (index === -1) {
UISelections.value.push(selection);
} else {
UISelections.value.splice(index, 1);
}
};
return {
ns,
c,
addRight,
addRightAll,
removeRight,
removeRightAll,
isSelected,
handleSelectionClick,
};
},
render(h) {
let panelComponent = null;
let treeComponent: VNode | null = null;
if (this.c.complete) {
const { tree, pickupViewPanel } = this.c.model;
if (this.c.providers[tree.name]) {
treeComponent = h(this.c.providers[tree.name].component, {
props: {
modelData: tree,
context: this.c.context,
params: this.c.params,
isSelectFirstDefault: true,
},
on: {
neuronInit: this.c.nerve.onNeuronInit('tree'),
},
});
}
if (this.c.providers[pickupViewPanel.name]) {
panelComponent = h(this.c.providers[pickupViewPanel.name].component, {
props: {
modelData: pickupViewPanel,
context: this.c.navPanelParams.context,
params: this.c.navPanelParams.params,
noLoadDefault: true,
},
on: {
neuronInit: this.c.nerve.onNeuronInit(pickupViewPanel.name),
},
});
}
}
return (
<view-base
controller={this.c}
scopedSlots={{
footer: () => {
return (
<div class={this.ns.b('footer')}>
<i-button
on-click={() => {
this.c.onOkButtonClick();
}}
>
确定
</i-button>
<i-button
on-click={() => {
this.c.onCancelButtonClick();
}}
>
取消
</i-button>
</div>
);
},
}}
>
<div class={this.ns.b('content')}>
<div class={this.ns.b('left-container')}>
<div class={this.ns.b('left-container-left')}>{treeComponent}</div>
<div class={this.ns.b('left-container-right')}>
{panelComponent}
</div>
</div>
<div class={this.ns.b('center')}>
<i-button on-click={this.addRight} title='右移'>
{'>'}
</i-button>
<i-button on-click={this.removeRight} title='左移'>
{'<'}
</i-button>
<i-button on-click={this.addRightAll} title='全部右移'>
{'>>'}
</i-button>
<i-button on-click={this.removeRightAll} title='全部左移'>
{'<<'}
</i-button>
</div>
<div class={this.ns.b('right')}>
{this.c.selfSelection.map(item => {
return (
<div
key={item.srfkey}
class={[
this.ns.be('right', 'list-item'),
this.ns.is('selected', this.isSelected(item)),
]}
on-click={() => this.handleSelectionClick(item)}
>
{item.srfmajortext}
<i-icon
type='ios-close'
size={24}
on-click={() => {
this.c.removeSelections([item]);
}}
/>
</div>
);
})}
</div>
</div>
</view-base>
);
},
});
......@@ -17,6 +17,7 @@ import { WFDynaEditView3Provider } from './wf-dyna-edit-view3-provider';
import { WFDynaStartViewProvider } from './wf-dyna-start-view-provider';
import { WFStepTraceViewProvider } from './wf-step-trace-view-provider';
import { PickupView2Provider } from './pickup-view2-provider';
import { MPickupView2Provider } from './mpickup-view2-provider';
/**
* 预置默认的视图适配器
......@@ -51,6 +52,7 @@ export function presetViewProvider(): void {
view.register(ViewType.APP_PORTAL_VIEW, new AppPortalViewProvider());
view.register(ViewType.DE_PORTAL_VIEW, new AppPortalViewProvider());
view.register(ViewType.DE_PICKUP_VIEW2, new PickupView2Provider());
view.register(ViewType.DE_MPICKUP_VIEW2, new MPickupView2Provider());
// 导航
view.register(ViewType.DE_TAB_EXP_VIEW, new TabExpViewProvider());
view.register(ViewType.DE_LIST_EXP_VIEW, new ListExpViewProvider());
......
import { IViewProvider } from '@ibiz-template/controller';
/**
* 实体多项数据选择视图(左右关系)适配器
*
* @author zk
* @date 2024-01-19 10:01:23
* @export
* @class MPickupView2Provider
* @implements {IViewProvider}
*/
export class MPickupView2Provider implements IViewProvider {
component: string = 'MPickupView2';
}
......@@ -12948,12 +12948,6 @@
"modelref" : true,
"id" : "ViewMsg10"
}
}, {
"name" : "消息位置-视图下方",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg8"
}
}, {
"name" : "消息位置-视图内容区",
"getPSAppViewMsg" : {
......@@ -12966,6 +12960,12 @@
"modelref" : true,
"id" : "ViewMsg7"
}
}, {
"name" : "消息位置-视图下方",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg8"
}
} ]
}, {
"codeName" : "VMGroup8",
......@@ -12977,13 +12977,6 @@
"id" : "ViewMsg6"
},
"position" : "POPUP"
}, {
"name" : "消息类型-常规信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg4"
},
"position" : "POPUP"
}, {
"name" : "关闭模式-无删除-上方-常规",
"getPSAppViewMsg" : {
......@@ -12991,11 +12984,12 @@
"id" : "ViewMsg11"
}
}, {
"name" : "消息位置-视图内容区",
"name" : "消息类型-常规信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg9"
}
"id" : "ViewMsg4"
},
"position" : "POPUP"
}, {
"name" : "消息位置-视图下方",
"getPSAppViewMsg" : {
......@@ -13008,6 +13002,12 @@
"modelref" : true,
"id" : "ViewMsg12"
}
}, {
"name" : "消息位置-视图内容区",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg9"
}
}, {
"name" : "消息类型-警告信息",
"getPSAppViewMsg" : {
......@@ -13026,16 +13026,16 @@
"codeName" : "VMGroup5",
"name" : "视图消息关闭模式",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "关闭模式-默认删除",
"name" : "关闭模式-删除",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg12"
"id" : "ViewMsg11"
}
}, {
"name" : "关闭模式-删除",
"name" : "关闭模式-默认删除",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg11"
"id" : "ViewMsg12"
}
}, {
"name" : "关闭模式-本次删除",
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册