Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
22
议题
22
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7
提交
bca232b1
提交
bca232b1
编写于
11月 03, 2022
作者:
Mosher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update:更新数据关系栏
上级
df4c63e0
变更
2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
406 行增加
和
421 行删除
+406
-421
CONTROL-BASE.vue.ftl
@CONTROL/数据关系栏/CONTROL-BASE.vue.ftl
+390
-403
CONTROL.html.ftl
@CONTROL/数据关系栏/CONTROL.html.ftl
+16
-18
未找到文件。
@CONTROL/数据关系栏/CONTROL-BASE.vue.ftl
浏览文件 @
bca232b1
<template>
<template>
<#if ctrl.render??>
<#if ctrl.render??>
${ctrl.render.code}
${ctrl.render.code}
<#else>
<#else>
<layout class='app-dr-bar<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>'>
<div class='app-dr-bar<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>' :style="{ width: <#noparse>`${width}px`</#noparse> }">
<sider :width="width">
</div>
<el-menu
<el-menu
:default-openeds="defaultOpeneds"
:mode="menuDir"
:default-active="items[0].id"
:default-openeds="defaultOpeneds"
@select="onSelect"
:default-active="items[0].id"
@open="onOpen"
@select="onSelect"
@close="onClose">
@open="onOpen"
<app-sider-menus :menus="items"></app-sider-menus>
@close="onClose">
</el-menu>
<app-sider-menus :menus="items"></app-sider-menus>
</sider>
</el-menu>
<content <#noparse>:style="{ width: `calc(100% - ${this.width + 1}px)` }"</#noparse>>
</#if>
<div class='main-data' v-show="Object.is(this.selection.id, 'form')">
</template>
<slot></slot>
<#ibizinclude>
</div>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
<component
</#ibizinclude>
v-if="!Object.is(this.selection.id, 'form') && this.selection.view && !Object.is(this.selection.view.viewname, '')"
:is="selection.view.viewname"
<#ibizinclude>
class="viewcontainer2"
../@MACRO/FUNC/MACRO.ftl
:viewDefaultUsage="false"
</#ibizinclude>
:viewdata="JSON.stringify(selection.data)"
:viewparam="JSON.stringify(selection.param)"
/**
:key="this.$util.createUUID()">
* 菜单方向
</component>
</content>
* @type {('horizontal' | 'vertical')}
</layout>
* @memberof ${srfclassname('${ctrl.codeName}')}Base
</#if>
*/
</template>
@Prop({ default: 'vertical' }) public menuDir?: 'horizontal' | 'vertical';
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
/**
</#ibizinclude>
* 获取多项数据
*
<#ibizinclude>
* @returns {any[]}
../@MACRO/FUNC/MACRO.ftl
* @memberof ${srfclassname('${ctrl.codeName}')}Base
</#ibizinclude>
*/
public getDatas(): any[] {
/**
return this.items;
* 获取多项数据
}
*
* @returns {any[]}
/**
* @memberof ${srfclassname('${ctrl.codeName}')}Base
* 获取单项树
*/
*
public getDatas(): any[] {
* @returns {*}
return this.items;
* @memberof ${srfclassname('${ctrl.codeName}')}Base
}
*/
public getData(): any {
/**
return this.selection;
* 获取单项树
}
*
* @returns {*}
/**
* @memberof ${srfclassname('${ctrl.codeName}')}Base
* 加载行为
*/
*
public getData(): any {
* @type {string}
return this.selection;
* @memberof ${srfclassname('${ctrl.codeName}')}Base
}
*/
@Prop() public loadAction?: string;
/**
* 加载行为
/**
*
* 表单数据
* @type {string}
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
* @type {*}
*/
* @memberof ${srfclassname('${ctrl.codeName}')}Base
@Prop() public loadAction?: string;
*/
@Prop({default:{}}) public formData?:any;
/**
* 表单数据
/**
*
* 数据选中项
* @type {*}
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
* @type {*}
*/
* @memberof ${srfclassname('${ctrl.codeName}')}Base
@Prop({default:{}}) public formData?:any;
*/
public selection: any = {};
/**
* 数据选中项
/**
*
* 关系栏数据项
* @type {*}
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
* @type {any[]}
*/
* @memberof ${srfclassname('${ctrl.codeName}')}Base
public selection: any = {};
*/
public items: any[] = [
/**
<#list ctrl.getPSDEDataRelation().getPSDEDRDetails() as item>
* 关系栏数据项
{
*
text: "${item.getCaption()}",
* @type {any[]}
disabled: false,
* @memberof ${srfclassname('${ctrl.codeName}')}Base
id: "${item.getName()?lower_case}",
*/
<#if item.getPSSysImage()??>
public items: any[] = [
iconcls: '${item.getPSSysImage().getCssClass()}',
<#if view.hasPSControl('form')>
icon: '${item.getPSSysImage().getImagePath()}',
{
</#if>
text: "主表单",
},
disabled: false,
</#list>
id: "form",
];
},
</#if>
/**
<#list ctrl.getPSDEDataRelation().getPSDEDRDetails() as item>
* 关系栏数据项导航参数集合
{
*
text: "${item.getCaption()}",
* @type {any[]}
disabled: false,
* @memberof ${srfclassname('${ctrl.codeName}')}Base
id: "${item.getName()?lower_case}",
*/
<#if item.getPSSysImage()??>
public navParamsArray:Array<any> = [
iconcls: '${item.getPSSysImage().getCssClass()}',
<#if ctrl.getPSDEDRCtrlItems?? && ctrl.getPSDEDRCtrlItems()??>
icon: '${item.getPSSysImage().getImagePath()}',
<#list ctrl.getPSDEDRCtrlItems() as appdeDrCtrlItem>
</#if>
{
},
id:'${appdeDrCtrlItem.getName()?lower_case}',
</#list>
localContext:<#if appdeDrCtrlItem.getPSNavigateContexts?? && appdeDrCtrlItem.getPSNavigateContexts()??><@getNavigateContext appdeDrCtrlItem /><#else>null</#if>,
];
localViewParam:<#if appdeDrCtrlItem.getPSNavigateParams?? && appdeDrCtrlItem.getPSNavigateParams()??><@getNavigateParams appdeDrCtrlItem /><#else>null</#if>
}<#if appdeDrCtrlItem_has_next>,</#if>
/**
</#list>
* 关系栏数据项导航参数集合
</#if>
*
];
* @type {any[]}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
/**
*/
* 默认打开项
public navParamsArray:Array<any> = [
*
<#if ctrl.getPSDEDRCtrlItems?? && ctrl.getPSDEDRCtrlItems()??>
* @type {string[]}
<#list ctrl.getPSDEDRCtrlItems() as appdeDrCtrlItem>
* @memberof ${srfclassname('${ctrl.codeName}')}Base
{
*/
id:'${appdeDrCtrlItem.getName()?lower_case}',
public defaultOpeneds: string[] = [];
localContext:<#if appdeDrCtrlItem.getPSNavigateContexts?? && appdeDrCtrlItem.getPSNavigateContexts()??><@getNavigateContext appdeDrCtrlItem /><#else>null</#if>,
localViewParam:<#if appdeDrCtrlItem.getPSNavigateParams?? && appdeDrCtrlItem.getPSNavigateParams()??><@getNavigateParams appdeDrCtrlItem /><#else>null</#if>
/**
}<#if appdeDrCtrlItem_has_next>,</#if>
* 父数据
</#list>
*
</#if>
* @public
];
* @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
/**
*/
* 默认打开项
public parentData: any = {};
*
* @type {string[]}
/**
* @memberof ${srfclassname('${ctrl.codeName}')}Base
* 宽度
*/
*
public defaultOpeneds: string[] = [];
* @type {number}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
/**
*/
* 父数据
public width: number = <#if ctrl.getWidth() gt 240><#else>240</#if>;
*
* @public
/**
* @type {*}
* 生命周期
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*
*/
* @memberof ${srfclassname('${ctrl.codeName}')}Base
public parentData: any = {};
*/
public created(): void {
/**
this.afterCreated();
* 宽度
}
*
* @type {number}
/**
* @memberof ${srfclassname('${ctrl.codeName}')}Base
* 执行created后的逻辑
*/
*
public width: number = <#if ctrl.getWidth() gt 240><#else>240</#if>;
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
/**
public afterCreated(){
* 生命周期
if (this.viewState) {
*
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
* @memberof ${srfclassname('${ctrl.codeName}')}Base
if (!Object.is(tag, this.name)) {
*/
return;
public created(): void {
}
this.afterCreated();
if (Object.is('state', action)) {
}
const state = !this.context.${ctrl.getPSAppDataEntity().getCodeName()?lower_case} ? true : false;
this.setItemDisabled(this.items, state);
/**
}
* 执行created后的逻辑
});
*
}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
this.$nextTick(() => {
*/
this.onSelect(this.items[0].id)
public afterCreated(){
this.$emit('selectionchange', [this.items[0]]);
if (this.viewState) {
});
this.viewStateEvent = this.viewState.subscribe(({ tag, action, data }) => {
}
if (!Object.is(tag, this.name)) {
return;
/**
}
* vue 生命周期
if (Object.is('state', action)) {
*
const state = !this.context.${ctrl.getPSAppDataEntity().getCodeName()?lower_case} ? true : false;
* @memberof ${srfclassname('${ctrl.codeName}')}Base
this.setItemDisabled(this.items, state);
*/
}
public destroyed() {
});
this.afterDestroy();
}
}
this.$nextTick(() => {
this.onSelect(this.items[0].id)
/**
this.$emit('selectionchange', [this.items[0]]);
* 执行destroyed后的逻辑
});
*
}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
/**
public afterDestroy() {
* vue 生命周期
if (this.viewStateEvent) {
*
this.viewStateEvent.unsubscribe();
* @memberof ${srfclassname('${ctrl.codeName}')}Base
}
*/
<#if destroyed_block??>
public destroyed() {
${destroyed_block}
this.afterDestroy();
</#if>
}
}
/**
/**
* 执行destroyed后的逻辑
* 获取关系项
*
*
* @memberof ${srfclassname('${ctrl.codeName}')}Base
* @public
*/
* @param {*} [arg={}]
public afterDestroy() {
* @returns {*}
if (this.viewStateEvent) {
* @memberof ${srfclassname('${ctrl.codeName}')}Base
this.viewStateEvent.unsubscribe();
*/
}
public getDRBarItem(arg: any = {}): any {
<#if destroyed_block??>
let expmode = arg.nodetype;
${destroyed_block}
if (!expmode) {
</#if>
expmode = '';
}
}
<#list ctrl.getPSAppViewRefs() as item>
/**
<#if (item.getName()?index_of("DRITEM:")==0)>
* 获取关系项
<#assign refview = item.getRefPSAppView()>
*
if (Object.is(expmode, '${item.getName()?substring(7)?lower_case}')) {
* @public
return {
* @param {*} [arg={}]
viewname: '${srffilepath2(refview.codeName)}',
* @returns {*}
parentdatajo: <#if item.getParentDataJO()??>${item.getParentDataJO()}<#else>{},</#if>
* @memberof ${srfclassname('${ctrl.codeName}')}Base
};
*/
}
public getDRBarItem(arg: any = {}): any {
</#if>
let expmode = arg.nodetype;
</#list>
if (!expmode) {
return undefined;
expmode = '';
}
}
<#list ctrl.getPSAppViewRefs() as item>
/**
<#if (item.getName()?index_of("DRITEM:")==0)>
* 处理数据
<#assign refview = item.getRefPSAppView()>
*
if (Object.is(expmode, '${item.getName()?substring(7)?lower_case}')) {
* @public
return {
* @param {any[]} items
viewname: '${srffilepath2(refview.codeName)}',
* @memberof ${srfclassname('${ctrl.codeName}')}Base
parentdatajo: <#if item.getParentDataJO()??>${item.getParentDataJO()}<#else>{},</#if>
*/
};
public dataProcess(items: any[]): void {
}
items.forEach((_item: any) => {
</#if>
if (_item.expanded) {
</#list>
this.defaultOpeneds.push(_item.id);
return undefined;
}
}
_item.disabled = false;
/**
if (_item.items && Array.isArray(_item.items) && _item.items.length > 0) {
* 处理数据
this.dataProcess(_item.items);
*
}
* @public
});
* @param {any[]} items
}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
/**
public dataProcess(items: any[]): void {
* 获取子项
items.forEach((_item: any) => {
*
if (_item.expanded) {
* @param {any[]} items
this.defaultOpeneds.push(_item.id);
* @param {string} id
}
* @returns {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
_item.disabled = false;
*/
if (_item.items && Array.isArray(_item.items) && _item.items.length > 0) {
public getItem(items: any[], id: string): any {
this.dataProcess(_item.items);
const item: any = {};
}
items.some((_item: any) => {
});
if (Object.is(_item.id, id)) {
}
Object.assign(item, _item);
return true;
/**
}
* 获取子项
if (_item.items && _item.items.length > 0) {
*
const subItem = this.getItem(_item.items, id);
* @param {any[]} items
if (Object.keys(subItem).length > 0) {
* @param {string} id
Object.assign(item, subItem);
* @returns {*}
return true;
* @memberof ${srfclassname('${ctrl.codeName}')}Base
}
*/
}
public getItem(items: any[], id: string): any {
return false;
const item: any = {};
});
items.some((_item: any) => {
return item;
if (Object.is(_item.id, id)) {
}
Object.assign(item, _item);
return true;
/**
}
* 初始化导航参数
if (_item.items && _item.items.length > 0) {
*
const subItem = this.getItem(_item.items, id);
* @param {*} drItem
if (Object.keys(subItem).length > 0) {
* @memberof ${srfclassname('${ctrl.codeName}')}Base
Object.assign(item, subItem);
*/
return true;
public initNavParam(drItem:any){
}
let returnNavParam:any = {};
}
if(drItem && drItem.id){
return false;
let curDRItem:any = this.navParamsArray.find((item:any) =>{
});
return Object.is(item.id,drItem.id);
return item;
})
}
if(curDRItem){
let localContext:any = curDRItem.localContext;
/**
let localViewParam:any = curDRItem.localViewParam;
* 初始化导航参数
if(localContext && Object.keys(localContext).length >0){
*
let _context:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localContext);
* @param {*} drItem
returnNavParam.localContext = _context;
* @memberof ${srfclassname('${ctrl.codeName}')}Base
}
*/
if(localViewParam && Object.keys(localViewParam).length >0){
public initNavParam(drItem:any){
let _params:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localViewParam);
let returnNavParam:any = {};
returnNavParam.localViewParam = _params;
if(drItem && drItem.id){
}
let curDRItem:any = this.navParamsArray.find((item:any) =>{
return returnNavParam;
return Object.is(item.id,drItem.id);
}else{
})
return null;
if(curDRItem){
}
let localContext:any = curDRItem.localContext;
}
let localViewParam:any = curDRItem.localViewParam;
}
if(localContext && Object.keys(localContext).length >0){
let _context:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localContext);
/**
returnNavParam.localContext = _context;
* 节点选中
}
*
if(localViewParam && Object.keys(localViewParam).length >0){
* @param {*} $event
let _params:any = this.$util.computedNavData(this.formData,this.context,this.viewparams,localViewParam);
* @memberof ${srfclassname('${ctrl.codeName}')}Base
returnNavParam.localViewParam = _params;
*/
}
public onSelect($event: any): void {
return returnNavParam;
const item = this.getItem(this.items, $event);
}else{
if (Object.is(item.id, this.selection.id)) {
return null;
return;
}
}
}
this.$emit('selectionchange', [item]);
}
let localNavParam:any = this.initNavParam(item);
const refview = this.getDRBarItem({ nodetype: item.id });
/**
this.selection = {};
* 节点选中
const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
*
if(localNavParam && localNavParam.localContext){
* @param {*} $event
Object.assign(_context,localNavParam.localContext);
* @memberof ${srfclassname('${ctrl.codeName}')}Base
}
*/
const _params: any = {};
public onSelect($event: any): void {
if(localNavParam && localNavParam.localViewParam){
const item = this.getItem(this.items, $event);
Object.assign(_params,localNavParam.localViewParam);
if (Object.is(item.id, this.selection.id)) {
}
return;
if (refview && refview.parentdatajo) {
}
Object.assign(_context, refview.parentdatajo);
this.$emit('selectionchange', [item]);
Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params });
let localNavParam:any = this.initNavParam(item);
}
const refview = this.getDRBarItem({ nodetype: item.id });
Object.assign(this.selection, item);
this.selection = {};
}
const _context: any = { ...JSON.parse(JSON.stringify(this.context)) };
if(localNavParam && localNavParam.localContext){
/**
Object.assign(_context,localNavParam.localContext);
* 子节点打开
}
*
const _params: any = {};
* @param {*} $event
if(localNavParam && localNavParam.localViewParam){
* @memberof ${srfclassname('${ctrl.codeName}')}Base
Object.assign(_params,localNavParam.localViewParam);
*/
}
public onOpen($event: any): void {
if (refview && refview.parentdatajo) {
const item = this.getItem(this.items, $event);
Object.assign(_context, refview.parentdatajo);
if (Object.is(item.id, this.selection.id)) {
Object.assign(this.selection, { view: { viewname: refview.viewname }, data: _context, param: _params });
return;
}
}
Object.assign(this.selection, item);
this.selection = {};
}
Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
/**
this.$emit('selectionchange', [this.selection]);
* 子节点打开
}
*
}
* @param {*} $event
* @memberof ${srfclassname('${ctrl.codeName}')}Base
/**
*/
* 子节点关闭
public onOpen($event: any): void {
*
const item = this.getItem(this.items, $event);
* @param {*} $event
if (Object.is(item.id, this.selection.id)) {
* @memberof ${srfclassname('${ctrl.codeName}')}Base
return;
*/
}
public onClose($event: any): void {
this.selection = {};
const item = this.getItem(this.items, $event);
Object.assign(this.selection, item);
if (Object.is(item.id, this.selection.id)) {
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
return;
this.$emit('selectionchange', [this.selection]);
}
}
this.selection = {};
}
Object.assign(this.selection, item);
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
/**
this.$emit('selectionchange', [this.selection]);
* 子节点关闭
}
*
}
* @param {*} $event
* @memberof ${srfclassname('${ctrl.codeName}')}Base
/**
*/
* 设置关系项状态
public onClose($event: any): void {
*
const item = this.getItem(this.items, $event);
* @param {any[]} items
if (Object.is(item.id, this.selection.id)) {
* @param {boolean} state
return;
* @memberof ${srfclassname('${ctrl.codeName}')}Base
}
*/
this.selection = {};
public setItemDisabled(items: any[], state: boolean) {
Object.assign(this.selection, item);
items.forEach((item: any) => {
if (Object.is(item.id, 'form') || (item.viewname && !Object.is(item.viewname, ''))) {
if (!Object.is(item.id, 'form')) {
this.$emit('selectionchange', [this.selection]);
item.disabled = state;
}
}
}
if (item.items && Array.isArray(item.items)) {
this.setItemDisabled(item.items, state);
/**
}
* 设置关系项状态
});
*
}
* @param {any[]} items
* @param {boolean} state
<#ibizinclude>
* @memberof ${srfclassname('${ctrl.codeName}')}Base
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
*/
</#ibizinclude>
public setItemDisabled(items: any[], state: boolean) {
items.forEach((item: any) => {
<#ibizinclude>
if (!Object.is(item.id, 'form')) {
../@MACRO/CONTROL/CONTROL-BASE.style.ftl
item.disabled = state;
}
if (item.items && Array.isArray(item.items)) {
this.setItemDisabled(item.items, state);
}
});
}
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL-BASE.style.ftl
</#ibizinclude>
</#ibizinclude>
\ No newline at end of file
@CONTROL/数据关系栏/CONTROL.html.ftl
浏览文件 @
bca232b1
<#-- ctrl document -->
<#-- ctrl document -->
<view_${ctrl.getName()}
<view_${ctrl.getName()}
:viewState="viewState"
:viewState="viewState"
loadAction='get'
loadAction='get'
name='${ctrl.name}'
name='${ctrl.name}'
ref='${ctrl.name}'
ref='${ctrl.name}'
:viewparams="viewparams"
:viewparams="viewparams"
:context="context"
:context="context"
:formData="formData"
:formData="formData"
<#if ctrl.getHookEventNames()??>
<#if ctrl.getHookEventNames()??>
<#list ctrl.getHookEventNames() as eventName>
<#list ctrl.getHookEventNames() as eventName>
@${eventName?lower_case}="${ctrl.name}_${eventName?lower_case}($event)"
@${eventName?lower_case}="${ctrl.name}_${eventName?lower_case}($event)"
</#list>
</#list>
</#if>
</#if>
@closeview="closeView($event)">
@closeview="closeView($event)">
<#if view.hasPSControl('form')>
${P.getCtrlCode('form', 'CONTROL.html').code}
</#if>
</view_${ctrl.getName()}>
</view_${ctrl.getName()}>
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录