Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz4jVue
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
iBiz4jVue
提交
66cef371
提交
66cef371
编写于
8月 09, 2020
作者:
tony001
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Merge branch 'dev'
上级
f5fe1989
变更
64
隐藏空白字符变更
内嵌
并排
正在显示
64 个修改的文件
包含
452 行增加
和
308 行删除
+452
-308
DEFAULT.ts.ftl
@CONTROL/@MACRO/MODEL/DEFAULT.ts.ftl
+1
-1
FORM.ts.ftl
@CONTROL/@MACRO/MODEL/FORM.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/分页导航面板/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/分页视图面板/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/列表/CONTROL-BASE.vue.ftl
+1
-1
MODEL.ts.ftl
@CONTROL/列表/MODEL.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/列表导航/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/卡片视图导航/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/向导面板/CONTROL-BASE.vue.ftl
+5
-1
MODEL.ts.ftl
@CONTROL/向导面板/MODEL.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/多编辑视图面板/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/应用菜单/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/应用菜单(快捷菜单)/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/搜索栏/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue#FORM.ftl
@CONTROL/搜索表单/CONTROL-BASE.vue#FORM.ftl
+7
-3
CONTROL-BASE.vue.ftl
@CONTROL/数据关系分页部件/CONTROL-BASE.vue.ftl
+6
-2
CONTROL-BASE.vue.ftl
@CONTROL/数据关系栏/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/数据图表 (新)/CONTROL-BASE.vue.ftl
+5
-5
CONTROL-BASE.vue.ftl
@CONTROL/数据图表/CONTROL-BASE.vue.ftl
+4
-4
CONTROL-BASE.vue.ftl
@CONTROL/数据看板/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/数据视图/CONTROL-BASE.vue.ftl
+3
-3
MODEL.ts.ftl
@CONTROL/数据视图/MODEL.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/日历导航/CONTROL-BASE.vue.ftl
+2
-2
CONTROL-BASE.vue.ftl
@CONTROL/日历部件/CONTROL-BASE.vue.ftl
+5
-1
MODEL.ts.ftl
@CONTROL/日历部件/MODEL.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/树表格(增强)/CONTROL-BASE.vue.ftl
+4
-0
MODEL.ts.ftl
@CONTROL/树表格(增强)/MODEL.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/树视图/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/树视图导航栏/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/流程导航栏/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/状态向导面板/CONTROL-BASE.vue.ftl
+5
-1
MODEL.ts.ftl
@CONTROL/状态向导面板/MODEL.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/甘特图部件/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/看板视图/CONTROL-BASE.vue.ftl
+5
-5
MODEL.ts.ftl
@CONTROL/看板视图/MODEL.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/表单/CONTROL-BASE.vue.ftl
+4
-0
CONTROL-BASE.vue.ftl
@CONTROL/表格/CONTROL-BASE.vue.ftl
+6
-5
CONTROL.less.ftl
@CONTROL/表格/CONTROL.less.ftl
+9
-0
MODEL.ts.ftl
@CONTROL/表格/MODEL.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/表格导航/CONTROL-BASE.vue.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/选择视图面板/CONTROL-BASE.vue.ftl
+5
-1
CONTROL-BASE.vue#PANEL.ftl
@CONTROL/面板/CONTROL-BASE.vue#PANEL.ftl
+7
-3
EDITOR.vue.ftl
@EDITOR/人员(指定单位内人员单选)/EDITOR.vue.ftl
+1
-0
EDITOR.vue.ftl
@EDITOR/人员(指定单位内人员多选)/EDITOR.vue.ftl
+1
-0
EDITOR.vue.ftl
@EDITOR/人员(指定单位及其下级单位所有人员单选)/EDITOR.vue.ftl
+1
-0
EDITOR.vue.ftl
@EDITOR/人员(指定单位及其下级单位所有人员多选)/EDITOR.vue.ftl
+1
-0
EDITOR.vue.ftl
@EDITOR/单位(仅含指定单位及其下级单位单选)/EDITOR.vue.ftl
+2
-2
EDITOR.vue.ftl
@EDITOR/单位(仅含指定单位及其下级单位多选)/EDITOR.vue.ftl
+2
-2
EDITOR.vue.ftl
@EDITOR/单位(全部单位单选)/EDITOR.vue.ftl
+2
-2
EDITOR.vue.ftl
@EDITOR/单位(全部单位多选)/EDITOR.vue.ftl
+2
-2
EDITOR.less.ftl
@EDITOR/数据选择(请求数据)/EDITOR.less.ftl
+0
-0
EDITOR.vue.ftl
@EDITOR/数据选择(请求数据)/EDITOR.vue.ftl
+29
-0
GRIDEIDTOR.vue.ftl
@EDITOR/数据选择(请求数据)/GRIDEIDTOR.vue.ftl
+52
-0
PANELEDITOR.vue.ftl
@EDITOR/数据选择(请求数据)/PANELEDITOR.vue.ftl
+52
-0
template.properties
@EDITOR/数据选择(请求数据)/template.properties
+2
-0
EDITOR.vue.ftl
@EDITOR/部门(指定单位内的部门单选)/EDITOR.vue.ftl
+2
-2
EDITOR.vue.ftl
@EDITOR/部门(指定单位内的部门多选)/EDITOR.vue.ftl
+2
-2
EDITOR.vue.ftl
@EDITOR/部门(指定单位及其下级单位的所有部门单选)/EDITOR.vue.ftl
+2
-2
EDITOR.vue.ftl
@EDITOR/部门(指定单位及其下级单位的所有部门多选)/EDITOR.vue.ftl
+2
-2
%APP_CODELIST%.ts.ftl
APP/src/codelist/%APP_CODELIST%.ts.ftl
+9
-0
codelist-register.ts.ftl
APP/src/codelist/codelist-register.ts.ftl
+89
-0
%DE_PKGPATH%-service-base.ts.ftl
...src/service/%DE_PKGPATH%/%DE_PKGPATH%-service-base.ts.ftl
+7
-76
codelist-service.ts.ftl
APP/src/service/app/codelist-service.ts.ftl
+0
-154
CHANGELOG.md
CHANGELOG.md
+48
-0
未找到文件。
@CONTROL/@MACRO/MODEL/DEFAULT.ts.ftl
浏览文件 @
66cef371
...
...
@@ -35,7 +35,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}',
dataType: 'FONTKEY',
},
</#if>
...
...
@CONTROL/@MACRO/MODEL/FORM.ts.ftl
浏览文件 @
66cef371
...
...
@@ -44,7 +44,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}',
dataType: 'FONTKEY',
},
</#if>
...
...
@CONTROL/分页导航面板/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class='tabviewpanel' style="height:100%;">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class='tabviewpanel<#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>' style="height:100%;">
<tabs :value="tabValue" :animated="false" class='tabexppanel' name='${ctrl.getCodeName()?lower_case}' @on-click="tabPanelClick">
<#list ctrl.getPSControls() as tabviewpanel>
<tab-pane :index="${tabviewpanel_index}" name='${tabviewpanel.name}' tab='${ctrl.getCodeName()?lower_case}' class='<#if tabviewpanel.getPSSysCss?? && tabviewpanel.getPSSysCss()??>${tabviewpanel.getPSSysCss().getCssName()}</#if>'
...
...
@@ -38,6 +41,7 @@
</#list>
</tabs>
</div>
</#if>
</template>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@CONTROL/分页视图面板/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class='tabviewpanel' style="height:100%;" v-if = 'isActivied' >
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class='tabviewpanel<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>' style="height:100%;" v-if = 'isActivied' >
<#if ctrl.getEmbeddedPSAppDEView()??><#assign embedddevedview = ctrl.getEmbeddedPSAppDEView()>
<${srffilepath2(embedddevedview.getCodeName())}
class='viewcontainer2'
...
...
@@ -9,6 +12,7 @@
:viewDefaultUsage="false" >
</${srffilepath2(embedddevedview.getCodeName())}></#if>
</div>
</#if>
</template>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@CONTROL/列表/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div :class="['app-list',
this.items.length > 0 ? '' : 'app-list-empty' ]">
<div :class="['app-list',
<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()>'${singleCss.getCssName()}',</#if>
this.items.length > 0 ? '' : 'app-list-empty' ]">
<div v-if="items.length > 0" style="height:100%;">
<#if ctrl.render??>
${ctrl.render.code}
...
...
@CONTROL/列表/MODEL.ts.ftl
浏览文件 @
66cef371
...
...
@@ -35,7 +35,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}'
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}'
},
</#if>
</#list>
...
...
@CONTROL/列表导航/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,7 +2,7 @@
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<split id="${ctrl.getCodeName()?lower_case}" class="app-list-exp-bar
<#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" v-model="split" mode="<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">horizontal<#else>vertical</#if>" @on-move-end="onSplitChange">
<split id="${ctrl.getCodeName()?lower_case}" class="app-list-exp-bar<#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" v-model="split" mode="<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">horizontal<#else>vertical</#if>" @on-move-end="onSplitChange">
<div slot='<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">left<#else>top</#if>'>
<#if ctrl.isShowTitleBar()>
<div class='list-exp-bar-header'>
...
...
@CONTROL/卡片视图导航/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,7 +2,7 @@
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<split id="${ctrl.getCodeName()?lower_case}" class="app-dataview-exp-bar
<#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" v-model="split" mode="<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">horizontal<#else>vertical</#if>" @on-move-end="onSplitChange">
<split id="${ctrl.getCodeName()?lower_case}" class="app-dataview-exp-bar<#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" v-model="split" mode="<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">horizontal<#else>vertical</#if>" @on-move-end="onSplitChange">
<div slot='<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">left<#else>top</#if>'>
<#if ctrl.isShowTitleBar()>
<div class='dataview-exp-bar-header'>
...
...
@CONTROL/向导面板/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<layout class="app-wizard">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<layout class="app-wizard<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if>">
<#if ctrl.getPSDEWizard?? && ctrl.getPSDEWizard()?? && ctrl.getPSDEWizard().getPSDEWizardSteps?? && ctrl.getPSDEWizard().getPSDEWizardSteps()??>
<el-steps class="wizard-steps" :active="wizardForms.indexOf(activeForm)" finish-status="success">
<#list ctrl.getPSDEWizard().getPSDEWizardSteps() as step>
...
...
@@ -37,6 +40,7 @@
<i-button :disabled="isDisabled('FINISH')" @click="onClickFinish()" type="primary">{{$t('app.wizardPanel.complete')}}</i-button>
</footer>
</layout>
</#if>
</template>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@CONTROL/向导面板/MODEL.ts.ftl
浏览文件 @
66cef371
...
...
@@ -36,7 +36,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}',
dataType: 'FONTKEY',
},
</#if>
...
...
@CONTROL/多编辑视图面板/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class='items multieditviewpanel'>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class='items multieditviewpanel<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>'>
<div v-for="(item,index) in items" class='item' :key="index">
<#if ctrl.getEmbeddedPSAppView()??>
<${srffilepath2(ctrl.getEmbeddedPSAppView().getCodeName())}
...
...
@@ -21,6 +24,7 @@
</i-button>
</div>
</div>
</#if>
</template>
<#ibizinclude>
...
...
@CONTROL/应用菜单/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,7 +2,7 @@
<#if quick_menus??>
${quick_menus}
<#else>
<div class="app-app-menu">
<div class="app-app-menu
<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if>
">
<el-menu
class="app-menu"
<#if view.getMainMenuAlign()?? && view.getMainMenuAlign()!="TOP">:default-openeds="defaultOpeneds"</#if>
...
...
@CONTROL/应用菜单(快捷菜单)/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<#assign quick_menus>
<div class="app-app-menu">
<div class="app-app-menu
<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if>
">
<row>
<template v-for="(item,index) in menus" >
<card :bordered="false" dis-hover :key = "index">
...
...
@CONTROL/搜索栏/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class="app-searchbar<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if>">
<div v-if="filterFields.length > 0" class="filter-group">
<filter-tree :datas="filterItems" :fields="filterFields">
<template slot-scope="{ data }">
...
...
@@ -38,6 +41,7 @@
</div>
</div>
</div>
</#if>
</template>
<#assign import_block>
import FilterTree from '@components/filter-tree/filter-tree.vue';
...
...
@CONTROL/搜索表单/CONTROL-BASE.vue#FORM.ftl
浏览文件 @
66cef371
<#ibizinclude>
../@MACRO/CONTROL/LANGBASE.vue.ftl
</#ibizinclude>
<i-form :model="this.data" class='app-search-form<#if ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if><#if ctrl.isInfoFormMode?? && ctrl.isInfoFormMode()> info-form-mode</#if>' ref='${ctrl.name}' style="<#if ctrl.getFormWidth() gt 1>width: ${ctrl.getFormWidth()?c}px;</#if>">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<i-form :model="this.data" class='app-search-form<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if><#if ctrl.isInfoFormMode?? && ctrl.isInfoFormMode()> info-form-mode</#if>' ref='${ctrl.name}' style="<#if ctrl.getFormWidth() gt 1>width: ${ctrl.getFormWidth()?c}px;</#if>">
<input style="display:none;"/>
<row>
<i-col span="20" class="form-content">
...
...
@@ -58,4 +61,5 @@
</i-col>
</#if>
</row>
</i-form>
\ No newline at end of file
</i-form>
</#if>
\ No newline at end of file
@CONTROL/数据关系分页部件/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class = "drtab">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class = "drtab<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>">
<tabs :animated='false' class='app-dr-tab' name='${ctrl.getCodeName()?lower_case}' @on-click="tabPanelClick">
<#list ctrl.getRootItem().getAllItems() as dritem>
<tab-pane <#if dritem_index == 0>v-if="isShowSlot"</#if> :index='${dritem_index?c}' name='${dritem.getId()?lower_case}' tab='${ctrl.getCodeName()?lower_case}' class='' :disabled='items[${dritem_index?c}].disabled'
...
...
@@ -22,7 +25,8 @@
</tab-pane>
</#list>
</tabs>
</div>
</div>
</#if>
</template>
<#ibizinclude>
...
...
@CONTROL/数据关系栏/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<layout class='app-dr-bar'>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<layout class='app-dr-bar<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>'>
<sider :width="width">
<el-menu
:default-openeds="defaultOpeneds"
...
...
@@ -25,6 +28,7 @@
</component>
</content>
</layout>
</#if>
</template>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@CONTROL/数据图表 (新)/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class="app-data-chart <#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>"
>
<#if ctrl.render??><#t>
${ctrl.render.code}
<#else><#t
>
<#if ctrl.render??
>
${ctrl.render.code}
<#else>
<div class="app-data-chart<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>"
>
<div v-if="isNoData" class="chart-no-data"><i class="el-icon-data-analysis"></i>{{$t('app.commonWords.noData')}}</div>
<div v-else class="app-charts" :id="chartId" style="<#if ctrl.getWidth() gt 0>width: ${ctrl.getWidth()};</#if>height: <#if ctrl.getHeight() gt 0>${ctrl.getHeight()}px<#else>100%</#if>;padding: 6px 0;"></div>
</#if>
</div>
</#if>
</template>
<#assign import_block>
...
...
@CONTROL/数据图表/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class="app-data-chart <#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>">
<#if ctrl.render??><#t>
<#if ctrl.render??>
${ctrl.render.code}
<#else><#t>
<#else>
<div class="app-data-chart<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>">
<div v-if="isNoData" class="chart-no-data"><i class="el-icon-data-analysis"></i>{{$t('app.commonWords.noData')}}</div>
<div v-else class="app-charts" :id="chartId" style="<#if ctrl.getWidth() gt 0>width: ${ctrl.getWidth()};</#if>height: <#if ctrl.getHeight() gt 0>${ctrl.getHeight()}px<#else>100%</#if>;padding: 6px 0;"></div>
</#if>
</div>
</#if>
</template>
<#assign import_block>
...
...
@CONTROL/数据看板/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class='dashboard'>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class='dashboard<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>'>
<row v-if="isEnableCustomized">
<app-build @handleClick="handleClick"></app-build>
</row>
...
...
@@ -99,6 +102,7 @@
</div>
</row>
</div>
</#if>
</template>
<#assign import_block>
import UtilService from '@/utilservice/util-service';
...
...
@CONTROL/数据视图/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class="app-data-view">
<#if ctrl.render??><#t>
${ctrl.render.code}
${ctrl.render.code}
<#else><#t>
<div class="app-data-view<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>">
<#assign hasSortBar = false />
<#if ctrl.getPSDEDataViewDataItems?? && ctrl.getPSDEDataViewDataItems()??>
<#list ctrl.getPSDEDataViewDataItems() as dataItem>
...
...
@@ -55,8 +55,8 @@
</a>
</row>
<div v-else class="app-data-empty">{{ $t('app.commonWords.noData') }}</div>
</#if>
</div>
</#if>
</template>
<#ibizinclude>
...
...
@CONTROL/数据视图/MODEL.ts.ftl
浏览文件 @
66cef371
...
...
@@ -31,7 +31,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}'
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}'
},
</#if>
</#list>
...
...
@CONTROL/日历导航/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,7 +2,7 @@
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<split id="${ctrl.getCodeName()?lower_case}" class="app-calendar-exp-bar
<#if
ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" v-model="split" mode="<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">horizontal<#else>vertical</#if>" @on-move-end="onSplitChange">
<split id="${ctrl.getCodeName()?lower_case}" class="app-calendar-exp-bar
<#if ctrl.getPSSysCss?? &&
ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" v-model="split" mode="<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">horizontal<#else>vertical</#if>" @on-move-end="onSplitChange">
<div slot='<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">left<#else>top</#if>'>
<#if ctrl.isShowTitleBar()>
<div class='calendar-exp-bar-header'>
...
...
@@ -49,7 +49,7 @@
</component>
</div>
</split>
</#if>
</#if>
</template>
...
...
@CONTROL/日历部件/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,7 +2,10 @@
../../@MACRO/LANG_FUN.ftl
</#ibizinclude>
<template>
<div :class='calendarClass'>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div :class='calendarClass<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>'>
<#if ctrl.getQuickPSDEToolbar?? && ctrl.getQuickPSDEToolbar()??>
<span class="quick-toolbar">
<#assign quickToolbar = ctrl.getQuickPSDEToolbar()/>
...
...
@@ -72,6 +75,7 @@
</#if>
</context-menu-container>
</div>
</#if>
</template>
<#assign import_block>
import FullCalendar from '@fullcalendar/vue'
...
...
@CONTROL/日历部件/MODEL.ts.ftl
浏览文件 @
66cef371
...
...
@@ -27,7 +27,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}'
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}'
},
</#if>
</#list>
...
...
@CONTROL/树表格(增强)/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -5,6 +5,9 @@
../../@MACRO/LANG_FUN.ftl
</#ibizinclude>
<template>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<el-table ref="${ctrl.name}"
:data="items"
row-key="id"
...
...
@@ -31,6 +34,7 @@
</#list>
</#if>
</el-table>
</#if>
</template>
<#ibizinclude>
...
...
@CONTROL/树表格(增强)/MODEL.ts.ftl
浏览文件 @
66cef371
...
...
@@ -27,7 +27,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}'
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}'
},
</#if>
</#list>
...
...
@CONTROL/树视图/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class="design-tree-container">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class="design-tree-container<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>">
<context-menu-container>
<el-tree
v-if="inited"
...
...
@@ -46,6 +49,7 @@
</el-tree>
</context-menu-container>
</div>
</#if>
</template>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@CONTROL/树视图导航栏/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,7 +2,7 @@
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<split id="${ctrl.getCodeName()?lower_case}" class='app-tree-exp-bar' v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<split id="${ctrl.getCodeName()?lower_case}" class='app-tree-exp-bar
<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>
' v-model="split" mode="horizontal" @on-move-end="onSplitChange">
<div slot='left'>
<#if ctrl.isShowTitleBar()>
<div class='tree-exp-bar-header'>
...
...
@CONTROL/流程导航栏/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<split class='app-workflow-exp-bar' v-model="split">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<split class='app-workflow-exp-bar<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>' v-model="split">
<div slot='left'>
<#if ctrl.isShowTitleBar()>
<div class='workflow-exp-bar-header'>
...
...
@@ -44,6 +47,7 @@
</component>
</div>
</split>
</#if>
</template>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@CONTROL/状态向导面板/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -13,7 +13,10 @@
</#compress>
</#macro>
<template>
<layout class="app-wizard">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<layout class="app-wizard<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if>">
<#if ctrl.getPSDEWizard?? && ctrl.getPSDEWizard()?? && ctrl.getPSDEWizard().getPSDEWizardSteps?? && ctrl.getPSDEWizard().getPSDEWizardSteps()??>
<div class="view-steps">
<div class="background-box"></div>
...
...
@@ -91,6 +94,7 @@
</#if>
</#if>
</layout>
</#if>
</template>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@CONTROL/状态向导面板/MODEL.ts.ftl
浏览文件 @
66cef371
...
...
@@ -36,7 +36,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}',
dataType: 'FONTKEY',
},
</#if>
...
...
@CONTROL/甘特图部件/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,8 +2,12 @@
../../@MACRO/LANG_FUN.ftl
</#ibizinclude>
<template>
<gantt-elastic :class="ganttClass" :tasks="tasks" :options="getOptions(this.locale)" :dynamic-style="dynamicStyle" @taskList-item-dblclick="taskClick" @task-item-expand="taskItemExpand">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<gantt-elastic :class="ganttClass<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" :tasks="tasks" :options="getOptions(this.locale)" :dynamic-style="dynamicStyle" @taskList-item-dblclick="taskClick" @task-item-expand="taskItemExpand">
</gantt-elastic>
</#if>
</template>
<#assign import_block>
import GanttElastic from "ibiz-gantt-elastic/src/GanttElastic.vue";
...
...
@CONTROL/看板视图/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class="app-data-view-group"
>
<#if ctrl.render??>
${ctrl.render.code}
<#else
>
<#if ctrl.render??
>
${ctrl.render.code}
<#else>
<div class="app-data-view-group<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>"
>
<template v-for="(group, index) of groups">
<#if ctrl.groupRender??>
${ctrl.groupRender.code}
...
...
@@ -68,8 +68,8 @@
</#if>
</div>
</#if>
</#if>
</div>
</#if>
</template>
<#assign import_block>
import draggable from "vuedraggable";
...
...
@CONTROL/看板视图/MODEL.ts.ftl
浏览文件 @
66cef371
...
...
@@ -31,7 +31,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}'
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}'
},
</#if>
</#list>
...
...
@CONTROL/表单/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,7 +2,11 @@
../../@MACRO/LANG_FUN.ftl
</#ibizinclude>
<template>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
${P.getPartCode(item,'FORM').code}
</#if>
</template>
<#assign import_block>
...
...
@CONTROL/表格/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<
div class='grid' style="height:100%">
<#if ctrl.render??>
${ctrl.render.code}
<#else
>
<
#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class='grid<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>' style="height:100%"
>
<i-form style="height:100%;display:flex;flex-direction: column;justify-content: space-between">
<el-table v-if="isDisplay === true"
<#-- BEGIN:是否支持排序 -->
...
...
@@ -99,6 +99,7 @@
</i-form>
</#if>
</div>
</#if>
</template>
<#assign import_block>
import CodeListService from "@service/app/codelist-service";
...
...
@@ -1276,7 +1277,7 @@ import { FormItemModel } from '@/model/form-detail';
}
// 已选中则删除,没选中则添加
let selectIndex = this.selections.findIndex((item:any)=>{
return Object.is(item.${ctrl.getPSAppDataEntity().get
Name()?lower_case},$event.${ctrl.getPSAppDataEntity().get
Name()?lower_case});
return Object.is(item.${ctrl.getPSAppDataEntity().get
CodeName()?lower_case},$event.${ctrl.getPSAppDataEntity().getCode
Name()?lower_case});
});
if (Object.is(selectIndex,-1)){
this.selections.push(JSON.parse(JSON.stringify($event)));
...
...
@CONTROL/表格/CONTROL.less.ftl
浏览文件 @
66cef371
...
...
@@ -66,6 +66,15 @@
margin-bottom: 20px;
}
}
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
}
.grid-pagination {
height: 50px;
...
...
@CONTROL/表格/MODEL.ts.ftl
浏览文件 @
66cef371
...
...
@@ -73,7 +73,7 @@
<#assign majorAppDataEntity = minorAppDERSs.getMajorPSAppDataEntity() />
{
name: '${majorAppDataEntity.getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
KeyPSAp
pDEField().getCodeName()?lower_case}',
prop: '${majorAppDataEntity.get
PSDER1N().getPSPicku
pDEField().getCodeName()?lower_case}',
dataType: 'FONTKEY',
},
</#if>
...
...
@CONTROL/表格导航/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
...
...
@@ -2,7 +2,7 @@
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<split id="${ctrl.getCodeName()?lower_case}" class="app-grid-exp-bar
<#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" v-model="split" mode="<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">horizontal<#else>vertical</#if>" @on-move-end="onSplitChange">
<split id="${ctrl.getCodeName()?lower_case}" class="app-grid-exp-bar<#if ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>" v-model="split" mode="<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">horizontal<#else>vertical</#if>" @on-move-end="onSplitChange">
<div slot='<#if view.getSideBarLayout()?? && view.getSideBarLayout() == "LEFT">left<#else>top</#if>'>
<#if ctrl.isShowTitleBar()>
<div class='grid-exp-bar-header'>
...
...
@CONTROL/选择视图面板/CONTROL-BASE.vue.ftl
浏览文件 @
66cef371
<template>
<div class='pickupviewpanel'>
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class='pickupviewpanel<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??> ${ctrl.getPSSysCss().getCssName()}</#if>'>
<component
v-if="inited && view.viewname && !Object.is(view.viewname, '')"
:is="view.viewname"
...
...
@@ -15,6 +18,7 @@
@viewload="onViewLoad">
</component>
</div>
</#if>
</template>
<#assign import_block>
...
...
@CONTROL/面板/CONTROL-BASE.vue#PANEL.ftl
浏览文件 @
66cef371
<div class='panel-container' style="<#if ctrl.getWidth() gt 0>width: ${ctrl.getWidth()?c}px;</#if><#if ctrl.getHeight() gt 0>height: ${ctrl.getHeight()?c}px;</#if>">
<#if ctrl.render??>
${ctrl.render.code}
<#else>
<div class='panel-container<#if ctrl.getPSSysCss?? && ctrl.getPSSysCss()??><#assign singleCss = ctrl.getPSSysCss()> ${singleCss.getCssName()}</#if>' style="<#if ctrl.getWidth() gt 0>width: ${ctrl.getWidth()?c}px;</#if><#if ctrl.getHeight() gt 0>height: ${ctrl.getHeight()?c}px;</#if>">
<#if ctrl.getLayoutMode()=='FLEX'>
<div class="app-layoutpanel" style="height:100%;display: flex;">
<@ibizindent blank=8>
...
...
@@ -20,4 +23,5 @@ ${P.getPartCode(item).code}
</@ibizindent>
</row>
</#if>
</div>
\ No newline at end of file
</div>
</#if>
\ No newline at end of file
@EDITOR/人员(指定单位内人员单选)/EDITOR.vue.ftl
浏览文件 @
66cef371
...
...
@@ -11,5 +11,6 @@
:disabled="detailsModel.${editor.name}.disabled"
:data="data"
:context="context"
<#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>
@formitemvaluechange="onFormItemValueChange">
</app-group-select>
@EDITOR/人员(指定单位内人员多选)/EDITOR.vue.ftl
浏览文件 @
66cef371
...
...
@@ -11,5 +11,6 @@
:disabled="detailsModel.${editor.name}.disabled"
:data="data"
:context="context"
<#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>
@formitemvaluechange="onFormItemValueChange">
</app-group-select>
@EDITOR/人员(指定单位及其下级单位所有人员单选)/EDITOR.vue.ftl
浏览文件 @
66cef371
...
...
@@ -11,5 +11,6 @@
:disabled="detailsModel.${editor.name}.disabled"
:data="data"
:context="context"
<#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>
@formitemvaluechange="onFormItemValueChange">
</app-group-select>
@EDITOR/人员(指定单位及其下级单位所有人员多选)/EDITOR.vue.ftl
浏览文件 @
66cef371
...
...
@@ -11,5 +11,6 @@
:disabled="detailsModel.${editor.name}.disabled"
:data="data"
:context="context"
<#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>
@formitemvaluechange="onFormItemValueChange">
</app-group-select>
@EDITOR/单位(仅含指定单位及其下级单位单选)/EDITOR.vue.ftl
浏览文件 @
66cef371
<app-org-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :multiple="<#if item.getEditorParam('multiple','') != ''>${item.getEditorParam('multiple','')}<#else>false</#if>" style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange"></app-org-select>
\ No newline at end of file
<app-org-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :multiple="<#if item.getEditorParam('multiple','') != ''>${item.getEditorParam('multiple','')}<#else>false</#if>" style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange" <#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>></app-org-select>
\ No newline at end of file
@EDITOR/单位(仅含指定单位及其下级单位多选)/EDITOR.vue.ftl
浏览文件 @
66cef371
<app-org-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :multiple="<#if item.getEditorParam('multiple','') != ''>${item.getEditorParam('multiple','')}<#else>false</#if>" style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange"></app-org-select>
\ No newline at end of file
<app-org-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :multiple="<#if item.getEditorParam('multiple','') != ''>${item.getEditorParam('multiple','')}<#else>false</#if>" style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange" <#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>></app-org-select>
\ No newline at end of file
@EDITOR/单位(全部单位单选)/EDITOR.vue.ftl
浏览文件 @
66cef371
<app-org-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :multiple="<#if item.getEditorParam('multiple','') != ''>${item.getEditorParam('multiple','')}<#else>false</#if>" style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange"></app-org-select>
\ No newline at end of file
<app-org-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :multiple="<#if item.getEditorParam('multiple','') != ''>${item.getEditorParam('multiple','')}<#else>false</#if>" style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange" <#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>></app-org-select>
\ No newline at end of file
@EDITOR/单位(全部单位多选)/EDITOR.vue.ftl
浏览文件 @
66cef371
<app-org-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :multiple="<#if item.getEditorParam('multiple','') != ''>${item.getEditorParam('multiple','')}<#else>false</#if>" style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange"></app-org-select>
\ No newline at end of file
<app-org-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :multiple="<#if item.getEditorParam('multiple','') != ''>${item.getEditorParam('multiple','')}<#else>false</#if>" style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange" <#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>></app-org-select>
\ No newline at end of file
@EDITOR/数据选择(请求数据)/EDITOR.less.ftl
0 → 100644
浏览文件 @
66cef371
@EDITOR/数据选择(请求数据)/EDITOR.vue.ftl
0 → 100644
浏览文件 @
66cef371
<#ibizinclude>../@MACRO/FUNC/PUBLIC.vue.ftl</#ibizinclude>
<#if item.render??>
${item.render.code}
<#else>
<app-upicker
:formState="formState"
:data="data"
:context="context"
:viewparams="viewparams"
:itemParams='<#if editor.getItemParamJO?? && editor.getItemParamJO()??>${editor.getItemParamJO()}</#if>'
:localContext =<@getNavigateContext editor />
:localParam =<@getNavigateParams editor />
:disabled="detailsModel.${editor.name}.disabled"
name='${editor.name}'
<#if editor.getPSAppDEACMode?? && editor.getPSAppDEACMode()??>
<#if editor.getPSAppDEACMode().getMinorSortPSDEF?? && editor.getPSAppDEACMode().getMinorSortPSDEF()?? && editor.getPSAppDEACMode().getMinorSortDir?? && editor.getPSAppDEACMode().getMinorSortDir()??>
<#if editor.getPSAppDEACMode().getMinorSortDir() == 'ASC' || editor.getPSAppDEACMode().getMinorSortDir() == 'DESC'>
sort='${editor.getPSAppDEACMode().getMinorSortPSDEF().getCodeName()?lower_case},${editor.getPSAppDEACMode().getMinorSortDir()?lower_case}'
</#if>
</#if>
</#if>
valueitem='${item.getValueItemName()}'
:value="data.${editor.name}"
style="${editor.getEditorCssStyle()}"
@formitemvaluechange="onFormItemValueChange">
<@getItemRender editor />
</app-upicker>
</#if>
\ No newline at end of file
@EDITOR/数据选择(请求数据)/GRIDEIDTOR.vue.ftl
0 → 100644
浏览文件 @
66cef371
<#ibizinclude>../@MACRO/FUNC/PUBLIC.vue.ftl</#ibizinclude>
<#if item.render??>
${item.render.code}
<#else>
<app-upicker
:formState="formState"
:data="data"
:context="context"
:viewparams="viewparams"
:itemParams='<#if editor.getItemParamJO?? && editor.getItemParamJO()??>${editor.getItemParamJO()}</#if>'
:localContext =<@getNavigateContext editor />
:localParam =<@getNavigateParams editor />
:disabled="detailsModel.${editor.name}.disabled"
name='${editor.name}'
<#if editor.getPSAppDEACMode?? && editor.getPSAppDEACMode()??>
<#if editor.getPSAppDEACMode().getMinorSortPSDEF?? && editor.getPSAppDEACMode().getMinorSortPSDEF()?? && editor.getPSAppDEACMode().getMinorSortDir?? && editor.getPSAppDEACMode().getMinorSortDir()??>
<#if editor.getPSAppDEACMode().getMinorSortDir() == 'ASC' || editor.getPSAppDEACMode().getMinorSortDir() == 'DESC'>
sort='${editor.getPSAppDEACMode().getMinorSortPSDEF().getCodeName()?lower_case},${editor.getPSAppDEACMode().getMinorSortDir()?lower_case}'
</#if>
</#if>
<#-- 自填模式界面行为组start -->
<#if editor.getPSAppDEACMode().getPSDEUIActionGroup?? && editor.getPSAppDEACMode().getPSDEUIActionGroup()??>
<#assign editorActionGroup = editor.getPSAppDEACMode().getPSDEUIActionGroup() />
<#if editorActionGroup.getPSUIActionGroupDetails?? && editorActionGroup.getPSUIActionGroupDetails()??>
:actionDetails="[<#compress>
<#list editorActionGroup.getPSUIActionGroupDetails() as actionDetail>
<#if actionDetail.getPSUIAction?? && actionDetail.getPSUIAction()??>
<#assign uiaction = actionDetail.getPSUIAction() />
{caption:'${uiaction.getCaption()}',tag:${editor.name}_editor_${actionDetail.getName()}_click}<#if actionDetail_has_next>,</#if>
</#if>
</#list>
</#compress>]"
@editoractionclick="onFormItemActionClick"
</#if>
</#if>
<#-- 自填模式界面行为组end -->
</#if>
<#if editor.getPSAppDataEntity?? && editor.getPSAppDataEntity()??>
deMajorField='${editor.getPSAppDataEntity().getMajorPSAppDEField().getCodeName()?lower_case}'
deKeyField='${editor.getPSAppDataEntity().getCodeName()?lower_case}'
</#if>
:service="service"
:acParams=<@getAcParams editor />
valueitem='${item.getValueItemName()}'
:value="data.${editor.name}"
editortype="dropdown"
style="${editor.getEditorCssStyle()}"
@formitemvaluechange="onFormItemValueChange">
<@getItemRender editor />
</app-upicker>
</#if>
\ No newline at end of file
@EDITOR/数据选择(请求数据)/PANELEDITOR.vue.ftl
0 → 100644
浏览文件 @
66cef371
<#ibizinclude>../@MACRO/FUNC/PUBLIC.vue.ftl</#ibizinclude>
<#if item.render??>
${item.render.code}
<#else>
<app-upicker
:formState="formState"
:data="data"
:context="context"
:viewparams="viewparams"
:itemParams='<#if editor.getItemParamJO?? && editor.getItemParamJO()??>${editor.getItemParamJO()}</#if>'
:localContext =<@getNavigateContext editor />
:localParam =<@getNavigateParams editor />
:disabled="detailsModel.${editor.name}.disabled"
name='${editor.name}'
<#if editor.getPSAppDEACMode?? && editor.getPSAppDEACMode()??>
<#if editor.getPSAppDEACMode().getMinorSortPSDEF?? && editor.getPSAppDEACMode().getMinorSortPSDEF()?? && editor.getPSAppDEACMode().getMinorSortDir?? && editor.getPSAppDEACMode().getMinorSortDir()??>
<#if editor.getPSAppDEACMode().getMinorSortDir() == 'ASC' || editor.getPSAppDEACMode().getMinorSortDir() == 'DESC'>
sort='${editor.getPSAppDEACMode().getMinorSortPSDEF().getCodeName()?lower_case},${editor.getPSAppDEACMode().getMinorSortDir()?lower_case}'
</#if>
</#if>
<#-- 自填模式界面行为组start -->
<#if editor.getPSAppDEACMode().getPSDEUIActionGroup?? && editor.getPSAppDEACMode().getPSDEUIActionGroup()??>
<#assign editorActionGroup = editor.getPSAppDEACMode().getPSDEUIActionGroup() />
<#if editorActionGroup.getPSUIActionGroupDetails?? && editorActionGroup.getPSUIActionGroupDetails()??>
:actionDetails="[<#compress>
<#list editorActionGroup.getPSUIActionGroupDetails() as actionDetail>
<#if actionDetail.getPSUIAction?? && actionDetail.getPSUIAction()??>
<#assign uiaction = actionDetail.getPSUIAction() />
{caption:'${uiaction.getCaption()}',tag:${editor.name}_editor_${actionDetail.getName()}_click}<#if actionDetail_has_next>,</#if>
</#if>
</#list>
</#compress>]"
@editoractionclick="onFormItemActionClick"
</#if>
</#if>
<#-- 自填模式界面行为组end -->
</#if>
<#if editor.getPSAppDataEntity?? && editor.getPSAppDataEntity()??>
deMajorField='${editor.getPSAppDataEntity().getMajorPSAppDEField().getCodeName()?lower_case}'
deKeyField='${editor.getPSAppDataEntity().getCodeName()?lower_case}'
</#if>
:service="service"
:acParams=<@getAcParams editor />
valueitem='${item.getValueItemName()}'
:value="data.${editor.name}"
editortype="dropdown"
style="${editor.getEditorCssStyle()}"
@formitemvaluechange="onFormItemValueChange">
<@getItemRender editor />
</app-upicker>
</#if>
\ No newline at end of file
@EDITOR/数据选择(请求数据)/template.properties
0 → 100644
浏览文件 @
66cef371
EDITORTYPE
=
PICKER#REQI
\ No newline at end of file
@EDITOR/部门(指定单位内的部门单选)/EDITOR.vue.ftl
浏览文件 @
66cef371
<app-department-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}<#else>/ibzorganizations/${orgid}/ibzdepartments/picker</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" :multiple=<#if item.getEditorParam('multiple','') != ''>"${item.getEditorParam('multiple','')}"<#else>"false"</#if> style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange"></app-department-select>
\ No newline at end of file
<app-department-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}<#else>/ibzorganizations/${orgid}/ibzdepartments/picker</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" :multiple=<#if item.getEditorParam('multiple','') != ''>"${item.getEditorParam('multiple','')}"<#else>"false"</#if> style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange" <#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>></app-department-select>
\ No newline at end of file
@EDITOR/部门(指定单位内的部门多选)/EDITOR.vue.ftl
浏览文件 @
66cef371
<app-department-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}<#else>/ibzorganizations/${orgid}/ibzdepartments/picker</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" :multiple=<#if item.getEditorParam('multiple','') != ''>"${item.getEditorParam('multiple','')}"<#else>"false"</#if> style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange"></app-department-select>
\ No newline at end of file
<app-department-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}<#else>/ibzorganizations/${orgid}/ibzdepartments/picker</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" :multiple=<#if item.getEditorParam('multiple','') != ''>"${item.getEditorParam('multiple','')}"<#else>"false"</#if> style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange" <#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>></app-department-select>
\ No newline at end of file
@EDITOR/部门(指定单位及其下级单位的所有部门单选)/EDITOR.vue.ftl
浏览文件 @
66cef371
<app-department-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}<#else>/ibzorganizations/${orgid}/ibzdepartments/picker</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" :multiple=<#if item.getEditorParam('multiple','') != ''>"${item.getEditorParam('multiple','')}"<#else>"false"</#if> style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange"></app-department-select>
\ No newline at end of file
<app-department-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}<#else>/ibzorganizations/${orgid}/ibzdepartments/picker</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" :multiple=<#if item.getEditorParam('multiple','') != ''>"${item.getEditorParam('multiple','')}"<#else>"false"</#if> style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange" <#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>></app-department-select>
\ No newline at end of file
@EDITOR/部门(指定单位及其下级单位的所有部门多选)/EDITOR.vue.ftl
浏览文件 @
66cef371
<app-department-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}<#else>/ibzorganizations/${orgid}/ibzdepartments/picker</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" :multiple=<#if item.getEditorParam('multiple','') != ''>"${item.getEditorParam('multiple','')}"<#else>"false"</#if> style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange"></app-department-select>
\ No newline at end of file
<app-department-select :data="data" :disabled="detailsModel.${editor.name}.disabled" :context="JSON.parse(JSON.stringify(context))" url="<#if item.getEditorParam('url','') != ''>${item.getEditorParam('url','')}<#else>/ibzorganizations/${orgid}/ibzdepartments/picker</#if>" filter="<#if item.getEditorParam('filter','') != ''>${item.getEditorParam('filter','')}<#else>srforgid</#if>" :fillMap="<#if item.getEditorParam('fillMap','') != ''>${item.getEditorParam('fillMap','')}<#else>{'id':'${editor.getValueItemName()}','label':'${editor.name}'}</#if>" :multiple=<#if item.getEditorParam('multiple','') != ''>"${item.getEditorParam('multiple','')}"<#else>"false"</#if> style="${editor.getEditorCssStyle()}" @select-change="onFormItemValueChange" <#if editor.getPSEditorContainer().getPSCodeList()??><#assign codelist=editor.getPSEditorContainer().getPSCodeList() /> tag='${codelist.codeName}' codelistType='${codelist.getCodeListType()}'</#if>></app-department-select>
\ No newline at end of file
APP/src/codelist/%APP_CODELIST%.ts.ftl
浏览文件 @
66cef371
...
...
@@ -29,6 +29,14 @@ export default class ${srfclassname('${item.getCodeName()}')} {
*/
public expirationTime:any;
/**
* 预定义类型
*
* @type string
* @memberof ${srfclassname('${item.getCodeName()}')}
*/
public predefinedType:string ='<#if item.getPredefinedType?? && item.getPredefinedType()??>${item.getPredefinedType()}</#if>';
/**
* 缓存超长时长
*
...
...
@@ -102,6 +110,7 @@ export default class ${srfclassname('${item.getCodeName()}')} {
Object.assign(itemdata,{id:item.<#if item.getValuePSAppDEField()??>${item.getValuePSAppDEField().getCodeName()?lower_case}<#else>${item.getPSAppDataEntity().getKeyPSAppDEField().codeName?lower_case}</#if>});
Object.assign(itemdata,{value:item.<#if item.getValuePSAppDEField()??>${item.getValuePSAppDEField().getCodeName()?lower_case}<#else>${item.getPSAppDataEntity().getKeyPSAppDEField().codeName?lower_case}</#if>});
Object.assign(itemdata,{text:item.<#if item.getTextPSAppDEField()??>${item.getTextPSAppDEField().getCodeName()?lower_case}<#else>${item.getPSAppDataEntity().getMajorPSAppDEField().codeName?lower_case}</#if>});
Object.assign(itemdata,{label:item.<#if item.getTextPSAppDEField()??>${item.getTextPSAppDEField().getCodeName()?lower_case}<#else>${item.getPSAppDataEntity().getMajorPSAppDEField().codeName?lower_case}</#if>});
<#if item.getPValuePSAppDEField()??>Object.assign(itemdata,{pvalue:item.${item.getPValuePSAppDEField().getCodeName()?lower_case}});</#if>
_items.push(itemdata);
});
...
...
APP/src/codelist/codelist-register.ts.ftl
0 → 100644
浏览文件 @
66cef371
<#ibiztemplate>
TARGET=PSSYSAPP
</#ibiztemplate>
/**
* 代码表服务注册中心
*
* @export
* @class CodeListRegister
*/
export class CodeListRegister {
/**
* 所有实体数据服务Map
*
* @protected
* @type {*}
* @memberof CodeListRegister
*/
protected allCodeList: Map<string, () => Promise<any>> = new Map();
/**
* 已加载实体数据服务Map缓存
*
* @protected
* @type {Map<string, any>}
* @memberof CodeListRegister
*/
protected serviceCache: Map<string, any> = new Map();
/**
* Creates an instance of CodeListRegister.
* @memberof CodeListRegister
*/
constructor() {
this.init();
}
/**
* 初始化
*
* @protected
* @memberof CodeListRegister
*/
protected init(): void {
<#if app.getAllPSAppCodeLists()??>
<#list app.getAllPSAppCodeLists() as codelist>
<#if codelist.getCodeListType() == "DYNAMIC">
this.allCodeList.set('${codelist.codeName}', () => import('@/codelist/${srffilepath2(codelist.codeName)}'));
</#if>
</#list>
</#if>
}
/**
* 加载实体数据服务
*
* @protected
* @param {string} serviceName
* @returns {Promise<any>}
* @memberof CodeListRegister
*/
protected async loadService(serviceName: string): Promise<any> {
const service = this.allCodeList.get(serviceName);
if (service) {
return service();
}
}
/**
* 获取应用实体数据服务
*
* @param {string} name
* @returns {Promise<any>}
* @memberof CodeListRegister
*/
public async getService(name: string): Promise<any> {
if (this.serviceCache.has(name)) {
return this.serviceCache.get(name);
}
const CodeList: any = await this.loadService(name);
if (CodeList && CodeList.default) {
const instance: any = new CodeList.default();
this.serviceCache.set(name, instance);
return instance;
}
}
}
export const codeListRegister: CodeListRegister = new CodeListRegister();
\ No newline at end of file
APP/src/service/%DE_PKGPATH%/%DE_PKGPATH%-service-base.ts.ftl
浏览文件 @
66cef371
...
...
@@ -85,6 +85,8 @@ import ${srfclassname('${singleLogic.getCodeName()}')}Logic from '@/service/${sr
}
return {status:200,data:res};
</#if>
<#else>
<@service_block item=item singleAppMethod=singleAppMethod />
</#if>
<#-- 预定义类型为索引实体end -->
</#if>
...
...
@@ -104,7 +106,8 @@ import ${srfclassname('${singleLogic.getCodeName()}')}Logic from '@/service/${sr
<#-- 定义service_block start -->
<#macro service_block item singleAppMethod afterActionStr = "">
<#if item.getPSAppDERSPathCount() gt 0 && singleServiceApi??>
<#if item.getPSAppDERSPathCount() gt 0 && singleAppMethod.getPSDEServiceAPIMethod?? && singleAppMethod.getPSDEServiceAPIMethod()??>
<#assign singleServiceApi = singleAppMethod.getPSDEServiceAPIMethod()/>
<#list 1..item.getPSAppDERSPathCount() as count>
<#assign path = ''/>
<#assign condition = ''/>
...
...
@@ -216,7 +219,8 @@ import ${srfclassname('${singleLogic.getCodeName()}')}Logic from '@/service/${sr
</#if>
</#list>
</#if>
<#if item.isMajor()>
<#if item.isMajor() && singleAppMethod.getPSDEServiceAPIMethod?? && singleAppMethod.getPSDEServiceAPIMethod()??>
<#assign singleServiceApi = singleAppMethod.getPSDEServiceAPIMethod()/>
<#-- 方法类型为SELECT -->
<#if singleAppMethod.getMethodType() == "SELECT">
<#-- if(context.${item.getCodeName()?lower_case}){ -->
...
...
@@ -329,7 +333,7 @@ import ${srfclassname('${singleLogic.getCodeName()}')}Logic from '@/service/${sr
</#if>
</#if>
<#-- 嵌套成员 -->
<#if item.isMajor() == false && !
singleServiceApi??
>
<#if item.isMajor() == false && !
(singleAppMethod.getPSDEServiceAPIMethod?? && singleAppMethod.getPSDEServiceAPIMethod()??)
>
<#if singleAppMethod.getMethodType() == "SELECT">
// ${singleAppMethod.getCodeName()} ---SELECT
<#-- 方法类型为FETCH -->
...
...
@@ -577,9 +581,6 @@ export default class ${srfclassname('${item.getCodeName()}')}ServiceBase extends
<#-- 实体接口调用start -->
<#if item.getAllPSAppDEMethods?? && item.getAllPSAppDEMethods()??>
<#list item.getAllPSAppDEMethods() as singleAppMethod>
<#if singleAppMethod.getPSDEServiceAPIMethod?? && singleAppMethod.getPSDEServiceAPIMethod()??>
<#assign singleServiceApi = singleAppMethod.getPSDEServiceAPIMethod()/>
</#if>
<#if singleAppMethod.render??>
${singleAppMethod.render.code}
<#else>
...
...
@@ -631,65 +632,10 @@ export default class ${srfclassname('${item.getCodeName()}')}ServiceBase extends
<#-- 无实体行为,有接口走接口,无接口走本地供数 start -->
<#-- @author zpc -->
<#-- @update 2020.7.22 17:00 -->
<#if singleAppMethod.getPSDEServiceAPIMethod?? && singleAppMethod.getPSDEServiceAPIMethod()??>
<@service_block item=item singleAppMethod=singleAppMethod />
<#else>
<@local_supply item=item singleAppMethod=singleAppMethod />
</#if>
<#-- 无实体行为,有接口走接口,无接口走本地供数 end -->
</#if>
}
<#-- 查询数据集(post方式)start -->
<#-- @author zpc -->
<#-- @update 2020.7.13 15:00 -->
<#-- <#if singleAppMethod.getMethodType?? && singleAppMethod.getMethodType()?? && singleAppMethod.getMethodType() == "FETCH">
<#assign dataSet = singleAppMethod.getPSDEDataSet() /> -->
<#-- /**
* search${dataSet.getCodeName()}接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof ${srfclassname('${item.getCodeName()}')}ServiceBase
*/
public async search${dataSet.getCodeName()}(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { -->
<#-- 检查行为是否可以执行 start -->
<#-- @author zpc -->
<#-- @update 2020.7.13 16:00 -->
<#-- <#if singleAppMethod.getPSDEAction()??>
<#assign appdeAction = singleAppMethod.getPSDEAction() />
<#if appdeAction.getTestActionMode?? && appdeAction.getTestActionMode()?? && (appdeAction.getTestActionMode() == 1 || appdeAction.getTestActionMode() == 3)>
let result:any = await this.test${srfclassname('search${dataSet.getCodeName()}')}(context,data);
if(!result) return;
</#if>
</#if> -->
<#-- 检查行为是否可以执行 end -->
<#-- <#if item.getPSAppDERSPathCount() gt 0 && singleServiceApi??>
<#list 1..item.getPSAppDERSPathCount() as count>
<#assign path = ''/>
<#assign condition = ''/>
<#list item.getPSAppDERSPath(count_index) as deRSPath>
<#if deRSPath.getMajorPSAppDataEntity?? && deRSPath.getMajorPSAppDataEntity()??>
<#assign _dataEntity = deRSPath.getMajorPSAppDataEntity()/>
<#assign condition>${condition}context.${_dataEntity.getCodeName()?lower_case} && </#assign>
<#assign path>${path}${srfpluralize(_dataEntity.codeName)?lower_case}/<#noparse>$</#noparse>{context.${_dataEntity.getCodeName()?lower_case}}/</#assign>
</#if>
</#list>
if(${condition}true){
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().post(`/${path}${srfpluralize(item.codeName)?lower_case}/search${dataSet.getCodeName()?lower_case}`,tempData,isloading);
}
</#list>
</#if>
<#if item.isMajor()>
let tempData:any = JSON.parse(JSON.stringify(data));
return Http.getInstance().post(`/${srfpluralize(item.codeName)?lower_case}/search${dataSet.getCodeName()?lower_case}`,tempData,isloading);
</#if>
}
</#if> -->
<#-- 查询数据集(post方式)end -->
<#-- 检查行为是否可以执行 start -->
<#-- @author zpc -->
<#-- @update 2020.7.13 17:00 -->
...
...
@@ -708,21 +654,6 @@ export default class ${srfclassname('${item.getCodeName()}')}ServiceBase extends
<@getTestActionModifier appdeAction=appdeAction/> async test${srfclassname('${singleAppMethod.getCodeName()}')}(context: any = {},data: any = {}): Promise<any> {
return true;
}
<#-- <#if singleAppMethod.getMethodType?? && singleAppMethod.getMethodType()?? && singleAppMethod.getMethodType() == "FETCH">
<#assign dataSet = singleAppMethod.getPSDEDataSet() />
/**
* test${srfclassname('search${dataSet.getCodeName()}')}方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @returns {Promise<any>}
* @memberof ${srfclassname('${item.getCodeName()}')}ServiceBase
*/
<@getTestActionModifier appdeAction=appdeAction/> async test${srfclassname('search${dataSet.getCodeName()}')}(context: any = {},data: any = {}): Promise<any> {
return true;
}
</#if> -->
</#if>
</#if>
<#-- 检查行为是否可以执行 end -->
...
...
APP/src/service/app/codelist-service.ts.ftl
已删除
100644 → 0
浏览文件 @
f5fe1989
<#ibiztemplate>
TARGET=PSSYSAPP
</#ibiztemplate>
<#if app.getAllPSAppCodeLists()??>
<#list app.getAllPSAppCodeLists() as codelist>
<#if codelist.getCodeListType() == "DYNAMIC">
import ${srfclassname('${codelist.codeName}')} from '@/codelist/${srffilepath2(codelist.codeName)}';
</#if>
</#list>
</#if>
import { Store } from 'vuex';
/**
* 动态代码表服务类
*
* @export
* @class CodeListService
*/
export default class CodeListService {
/**
* Vue 状态管理器
*
* @private
* @type {(any | null)}
* @memberof CodeListService
*/
private $store: Store<any> | null = null;
constructor(opts: any = {}) {
this.$store = opts.$store;
}
/**
* 获取状态管理器
*
* @returns {(any | null)}
* @memberof CodeListService
*/
public getStore(): Store<any> | null {
return this.$store;
}
/**
* 动态代码表缓存(加载中)
*
* @type {Map<string,any>}
* @memberof CodeListService
*/
public static codelistCache:Map<string,any> = new Map();
/**
* 动态代码表缓存(已完成)
*
* @type {Map<string,any>}
* @memberof CodeListService
*/
public static codelistCached:Map<string,any> = new Map();
<#if app.getAllPSAppCodeLists()??>
<#list app.getAllPSAppCodeLists() as codelist>
<#if codelist.getCodeListType() == "DYNAMIC">
/**
* 代码表--${codelist.getName()}
*
* @type {${srfclassname('${codelist.codeName}')}}
* @memberof CodeListService
*/
public ${codelist.codeName}: ${srfclassname('${codelist.codeName}')} = new ${srfclassname('${codelist.codeName}')}();
</#if>
</#list>
</#if>
/**
* 获取动态代码表
*
* @param {string} tag 代码表标识
* @param {string} context
* @returns {Promise<any[]>}
* @memberof CodeListService
*/
<#noparse>public getItems(tag: string,context:any = {}, data?: any, isloading?: boolean,): Promise<any[]> {
let _this: any = this;
if(context && context.srfsessionid){
delete context.srfsessionid;
}
let isEnableCache:boolean = _this[tag].isEnableCache;
let cacheTimeout:any = _this[tag].cacheTimeout;
return new Promise((resolve:any,reject:any) =>{
// 启用缓存
if(isEnableCache){
// 加载完成,从本地缓存获取
if(CodeListService.codelistCached.get(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`)){
let items:any = CodeListService.codelistCached.get(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`);
if(items.length >0){
if(cacheTimeout !== -1){
if(new Date().getTime() > _this[tag].expirationTime){
_this[tag].getItems(context,data,isloading).then((result:any) =>{
CodeListService.codelistCached.set(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`,{items:result});
_this[tag].expirationTime = new Date().getTime() + cacheTimeout;
resolve(result);
}).catch((error:any) =>{
Promise.reject([]);
})
}else{
return resolve(items);
}
}else{
return resolve(items);
}
}
}
if (_this[tag]) {
const callback:Function = (context:any ={},data:any ={},tag:string,promise:Promise<any>) =>{
promise.then((result:any) =>{
console.log()
if(result.length > 0){
CodeListService.codelistCached.set(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`,{items:result});
return resolve(result);
}else{
return resolve([]);
}
}).catch((result:any) =>{
return reject(result);
})
}
// 加载中,UI又需要数据,解决连续加载同一代码表问题
if(CodeListService.codelistCache.get(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`)){
callback(context,data,tag,CodeListService.codelistCache.get(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`));
}else{
let result:Promise<any> = _this[tag].getItems(context,data,isloading);
CodeListService.codelistCache.set(`${JSON.stringify(context)}-${JSON.stringify(data)}-${tag}`,result);
if(cacheTimeout !== -1){
_this[tag].expirationTime = new Date().getTime() + cacheTimeout;
}
callback(context,data,tag,result);
}
}
}else{
if (_this[tag]) {
_this[tag].getItems(context,data,isloading).then((result:any) =>{
resolve(result);
}).catch((error:any) =>{
Promise.reject([]);
})
}else{
return Promise.reject([]);
}
}
})
}</#noparse>
}
\ No newline at end of file
CHANGELOG.md
浏览文件 @
66cef371
## v7.0.0-alpha.17 [2020-8-9]
### Bug修复
修复系统级的操作标识异常问题
修复表格新增插件异常问题
修复表格单击行绑定数据异常bug
修复表格合计行样式问题
### 功能新增及优化
#### 模板
新增支持前后端分离部署
新增动态代码表预定义代码表支持
新增数据选择(调用接口)组件
新增部件样式表支持
优化数据服务逻辑
优化代码表服务基类、动态代码表
优化导航参数处理逻辑
优化数据拷贝逻辑
优化组织、部门、人员控件只绑定id逻辑
优化部件关联外键值
#### 基础文件
新增前后端分离部署
新增下拉列表控件支持树状代码表
新增数据选择(调用接口)组件
优化数据拷贝逻辑
优化组织、部门、人员控件只绑定id逻辑
## v7.0.0-alpha.16 [2020-8-2]
### Bug修复
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录