Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
iBiz4jVue
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
iBiz4jVue
提交
ae91881e
提交
ae91881e
编写于
8月 26, 2020
作者:
tony001
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev'
上级
c303fb34
04455eb4
变更
31
隐藏空白字符变更
内嵌
并排
正在显示
31 个修改的文件
包含
344 行增加
和
52 行删除
+344
-52
CONTROL-BASE.vue.ftl
@CONTROL/向导面板/CONTROL-BASE.vue.ftl
+5
-9
MODEL_CONTENT.ts.ftl
@CONTROL/搜索表单/MODEL_CONTENT.ts.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/日历部件/CONTROL-BASE.vue.ftl
+10
-0
CONTROL-BASE.vue#DETAIL_BUTTON.ftl
@CONTROL/表单/CONTROL-BASE.vue#DETAIL_BUTTON.ftl
+1
-1
CONTROL-BASE.vue.ftl
@CONTROL/表单/CONTROL-BASE.vue.ftl
+17
-15
CONTROL.less.ftl
@CONTROL/表单/CONTROL.less.ftl
+5
-1
CONTROL-BASE.vue.ftl
@CONTROL/表格/CONTROL-BASE.vue.ftl
+43
-2
MODEL.ts.ftl
@CONTROL/表格/MODEL.ts.ftl
+12
-6
SERVICE.ts.ftl
@CONTROL/表格/SERVICE.ts.ftl
+101
-0
VIEW.less.ftl
@CONTROL/视图布局面板/实体工作流动态导航表格视图/VIEW.less.ftl
+8
-0
VIEW.vue.ftl
@CONTROL/视图布局面板/实体工作流动态导航表格视图/VIEW.vue.ftl
+11
-1
VIEW.vue.ftl
@CONTROL/视图布局面板/应用首页视图/VIEW.vue.ftl
+4
-0
CONTROL-BASE.vue#ITEM_TABPANEL.ftl
@CONTROL/面板/CONTROL-BASE.vue#ITEM_TABPANEL.ftl
+13
-0
PANELEDITOR.vue.ftl
@EDITOR/HTML编辑器/PANELEDITOR.vue.ftl
+2
-1
PANELEDITOR.vue.ftl
@EDITOR/图片控件/PANELEDITOR.vue.ftl
+1
-1
PANELEDITOR.vue.ftl
@EDITOR/图片控件(单项)/PANELEDITOR.vue.ftl
+1
-1
PANELEDITOR.vue.ftl
@EDITOR/文件上传/PANELEDITOR.vue.ftl
+1
-1
PANELEDITOR.vue.ftl
@EDITOR/文件上传(支持拖拽)/PANELEDITOR.vue.ftl
+1
-1
PANELEDITOR.vue.ftl
@EDITOR/时间选择器(新)/PANELEDITOR.vue.ftl
+2
-1
PANELEDITOR.vue.ftl
@EDITOR/时间选择控件/PANELEDITOR.vue.ftl
+2
-1
PANELEDITOR.vue.ftl
@EDITOR/时间选择控件_分钟/PANELEDITOR.vue.ftl
+2
-1
PANELEDITOR.vue.ftl
@EDITOR/时间选择控件_小时/PANELEDITOR.vue.ftl
+2
-1
PANELEDITOR.vue.ftl
@EDITOR/时间选择控件_无小时/PANELEDITOR.vue.ftl
+2
-1
PANELEDITOR.vue.ftl
@EDITOR/时间选择控件_无日期/PANELEDITOR.vue.ftl
+2
-1
PANELEDITOR.vue.ftl
@EDITOR/时间选择控件_无日期无秒钟/PANELEDITOR.vue.ftl
+2
-1
PANELEDITOR.vue.ftl
@EDITOR/时间选择控件_秒钟/PANELEDITOR.vue.ftl
+2
-1
VIEW-BASE.vue.ftl
@VIEW/实体工作流动态导航表格视图/VIEW-BASE.vue.ftl
+60
-1
data-dictionary.json.ftl
APP/public/assets/json/data-dictionary.json.ftl
+1
-0
environment.ts.ftl
APP/src/environments/environment.ts.ftl
+8
-2
codelist.ts.ftl
APP/src/mock/codelist/codelist.ts.ftl
+1
-0
app-code-list.less.ftl
APP/src/styles/app-code-list.less.ftl
+21
-0
未找到文件。
@CONTROL/向导面板/CONTROL-BASE.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -397,16 +397,12 @@ ${ctrl.render.code}
if(this.activeForm) {
if(this.$refs && this.$refs[this.activeForm]){
let form: any = this.$refs[this.activeForm];
if(form.formValidateStatus()) {
this.curState = 'PREV';
if(!this.stepActions[this.activeForm].preAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc:this.$t('app.wizardPanel.preactionmessage') as string });
return;
}
this.wizardState.next({ tag: this.activeForm, action:'panelaction',data: {action:this.stepActions[this.activeForm].preAction,emitAction:'save',data:this.formParam} });
} else {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
this.curState = 'PREV';
if(!this.stepActions[this.activeForm].preAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc:this.$t('app.wizardPanel.preactionmessage') as string });
return;
}
this.wizardState.next({ tag: this.activeForm, action:'panelaction',data: {action:this.stepActions[this.activeForm].preAction,emitAction:'save',data:this.formParam} });
}
}
}
...
...
@CONTROL/搜索表单/MODEL_CONTENT.ts.ftl
浏览文件 @
ae91881e
...
...
@@ -5,7 +5,7 @@
name: '${dataitem.getName()}',
prop: '${dataitem.getName()}',
<#if dataitem.getPSDEField()??>
dataType: '
${dataitem.getPSDEField().getDataType()}',
dataType: '
QUERYPARAM'
</#if>
},
</#list>
...
...
@CONTROL/日历部件/CONTROL-BASE.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -377,6 +377,14 @@ FullCalendar,
*/
public searchArgCache: any = {};
<#if ctrl.getPSSysCalendarItems()?? >
<#assign itemPanel = false />
<#list ctrl.getPSSysCalendarItems() as calendarItem>
<#if calendarItem.getPSLayoutPanel()??>
<#assign itemPanel = true />
</#if>
</#list>
<#if itemPanel>
/**
* 面板数据变化处理事件
* @param {any} item 当前数据
...
...
@@ -387,6 +395,8 @@ FullCalendar,
public onPanelDataChange(item:any,$event:any) {
Object.assign(item, $event, {rowDataState:'update'});
}
</#if>
</#if>
/**
* 搜索获取日程事件
...
...
@CONTROL/表单/CONTROL-BASE.vue#DETAIL_BUTTON.ftl
浏览文件 @
ae91881e
...
...
@@ -6,7 +6,7 @@
${item.render.code}
<#else>
<@badge item>
<i-button type="primary" :disabled="detailsModel.${item.getName()}.disabled" @click="${item.getName()}_click($event)"
<#if item.getPSSysCss?? && item.getPSSysCss()??> class="${item.getPSSysCss().getCssName()}"</#if>
<i-button type="primary" :disabled="detailsModel.${item.getName()}.disabled" @click="${item.getName()}_click($event)"
class="app-form-button<#if item.getPSSysCss?? && item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>"
style="<#if item.getHeight() gt 0>height: ${item.getHeight()?c}px;</#if><#if item.getWidth() gt 0>width: ${item.getWidth()?c}px;</#if>">
<#if item.getPSSysImage()??><#assign img=item.getPSSysImage()><#if img.getCssClass()?? && (img.getCssClass()?length gt 0)><i class="${img.getCssClass()}" style="margin-right: 2px;"></i></#if></#if>
<#if item.isShowCaption()><span ><#if item.getCaptionItemName()?? && item.getCaptionItemName()?length gt 0>{{data.${item.getCaptionItemName()}}}<#else><#if langbase??>{{$t('${langbase}.details.${item.name}')}}<#else>${item.getCaption()}</#if></#if></span></#if>
...
...
@CONTROL/表单/CONTROL-BASE.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -13,6 +13,7 @@ ${ctrl.render.code}
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
import schema from 'async-validator';
import { Environment } from '@/environments/environment';
</#assign>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@@ -562,6 +563,7 @@ import schema from 'async-validator';
}
</#if>
this.setFormEnableCond(data);
this.computeButtonState(data);
this.fillForm(data,action);
<#if ctrl.getControlType() == 'FORM'>
this.oldData = {};
...
...
@@ -737,16 +739,20 @@ import schema from 'async-validator';
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public computeButtonState(data:any){
let targetData:any = this.transformData(data);
if(this.detailsModel && Object.keys(this.detailsModel).length >0){
Object.keys(this.detailsModel).forEach((name:any) =>{
if(this.detailsModel[name] && this.detailsModel[name].uiaction && this.detailsModel[name].uiaction.dataaccaction && Object.is(this.detailsModel[name].detailType,"BUTTON")){
let tempUIAction:any = JSON.parse(JSON.stringify(this.detailsModel[name].uiaction));
ViewTool.calcActionItemAuthState(targetData,[tempUIAction],this.appUIService);
this.detailsModel[name].visible = tempUIAction.visabled;
this.detailsModel[name].disabled = tempUIAction.disabled;
}
})
if(Environment.enablePermissionValid){
let targetData:any = this.transformData(data);
if(this.detailsModel && Object.keys(this.detailsModel).length >0){
Object.keys(this.detailsModel).forEach((name:any) =>{
if(this.detailsModel[name] && this.detailsModel[name].uiaction && this.detailsModel[name].uiaction.dataaccaction && Object.is(this.detailsModel[name].detailType,"BUTTON")){
this.detailsModel[name].isPower = true;
let tempUIAction:any = JSON.parse(JSON.stringify(this.detailsModel[name].uiaction));
let result: any[] = ViewTool.calcActionItemAuthState(targetData,[tempUIAction],this.appUIService);
this.detailsModel[name].visible = tempUIAction.visabled;
this.detailsModel[name].disabled = tempUIAction.disabled;
this.detailsModel[name].isPower = result[0] === 1 ? true : false;
}
})
}
}
}
...
...
@@ -925,7 +931,7 @@ import schema from 'async-validator';
this.refresh(data);
}
if (Object.is('panelaction', action)) {
this.panelAction(data.action,data.emitAction,data);
this.panelAction(data.action,data.emitAction,data
.data
);
}
});
}
...
...
@@ -1044,7 +1050,6 @@ import schema from 'async-validator';
const data = response.data;
this.onFormLoad(data,'load');
this.$emit('load', data);
this.computeButtonState(data);
this.$nextTick(() => {
this.formState.next({ type: 'load', data: data });
});
...
...
@@ -1095,7 +1100,6 @@ import schema from 'async-validator';
</#list>
data.${appde.getCodeName()?lower_case} = null;
this.$emit('load', data);
this.computeButtonState(data);
this.$nextTick(() => {
this.formState.next({ type: 'load', data: data });
});
...
...
@@ -1153,7 +1157,6 @@ import schema from 'async-validator';
const data = response.data;
this.onFormLoad(data,'autoSave');
this.$emit('save', data);
this.computeButtonState(data);
<#if ctrl.getControlType() == 'FORM'>
AppCenterService.notifyMessage({name:"${ctrl.getPSAppDataEntity().getCodeName()}",action:'appRefresh',data:data});
</#if>
...
...
@@ -1240,7 +1243,6 @@ import schema from 'async-validator';
const data = response.data;
this.onFormLoad(data,'save');
this.$emit('save', data);
this.computeButtonState(data);
<#if ctrl.getControlType() == 'FORM'>
AppCenterService.notifyMessage({name:"${ctrl.getPSAppDataEntity().getCodeName()}",action:'appRefresh',data:data});
</#if>
...
...
@CONTROL/表单/CONTROL.less.ftl
浏览文件 @
ae91881e
...
...
@@ -40,11 +40,15 @@
}
}
}
// 表单行间距
.app-form{
// 表单行间距
.app-form-item{
margin-bottom: 20px;
}
// 表单按钮margin
.app-form-button{
margin:0 6px;
}
}
<#ibizinclude>
../@MACRO/CSS/DEFAULT.less.ftl
...
...
@CONTROL/表格/CONTROL-BASE.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -107,6 +107,7 @@ ${ctrl.render.code}
<#assign import_block>
import CodeListService from "@service/app/codelist-service";
import { FormItemModel } from '@/model/form-detail';
import { Environment } from '@/environments/environment';
</#assign>
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_HEADER-BASE.vue.ftl
...
...
@@ -545,9 +546,11 @@ import { FormItemModel } from '@/model/form-detail';
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public getActionState(data:any){
let targetData:any = this.transformData(data);
let tempActionModel:any = JSON.parse(JSON.stringify(this.ActionModel));
ViewTool.calcActionItemAuthState(targetData,tempActionModel,this.appUIService);
if(Environment.enablePermissionValid){
let targetData:any = this.transformData(data);
ViewTool.calcActionItemAuthState(targetData,tempActionModel,this.appUIService);
}
return tempActionModel;
}
...
...
@@ -2034,6 +2037,44 @@ import { FormItemModel } from '@/model/form-detail';
return falg;
}
/**
* 工作流提交
*
* @param {*} [data={}]
* @param {*} [localdata={}]
* @returns {Promise<any>}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
public async submitbatch(data: any,localdata:any): Promise<any> {
return new Promise((resolve: any, reject: any) => {
const _this: any = this;
const arg: any = data;
const result: Promise<any> = this.service.submitbatch(_this.WFSubmitAction, JSON.parse(JSON.stringify(this.context)),arg,localdata,this.showBusyIndicator);
result.then((response: any) => {
if (!response || response.status !== 200) {
if(response.data){
this.$Notice.error({ title: '', desc: (this.$t('app.formpage.workflow.submiterror') as string) + ', ' + response.data.message });
}
return;
}
this.$Notice.info({ title: '', desc: (this.$t('app.formpage.workflow.submitsuccess') as string) });
resolve(response);
}).catch((response: any) => {
if (response && response.status && response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
reject(response);
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.sysException') as string) });
reject(response);
return;
}
reject(response);
});
})
}
<#ibizinclude>
../@MACRO/CONTROL/CONTROL_BOTTOM-BASE.vue.ftl
</#ibizinclude>
...
...
@CONTROL/表格/MODEL.ts.ftl
浏览文件 @
ae91881e
...
...
@@ -100,27 +100,33 @@ ${P.getCtrlCode('searchform', 'MODEL_CONTENT.ts').code}
</#if>
{
name:'size',
prop:'size'
prop:'size',
dataType: 'QUERYPARAM'
},
{
name:'query',
prop:'query'
prop:'query',
dataType: 'QUERYPARAM'
},
{
name:'filter',
prop:'filter'
prop:'filter',
dataType: 'QUERYPARAM'
},
{
name:'page',
prop:'page'
prop:'page',
dataType: 'QUERYPARAM'
},
{
name:'sort',
prop:'sort'
prop:'sort',
dataType: 'QUERYPARAM'
},
{
name:'srfparentdata',
prop:'srfparentdata'
prop:'srfparentdata',
dataType: 'QUERYPARAM'
},
// 前端新增修改标识,新增为"0",修改为"1"或未设值
{
...
...
@CONTROL/表格/SERVICE.ts.ftl
浏览文件 @
ae91881e
...
...
@@ -18,6 +18,14 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
../@MACRO/SERVICE/SERVICE_HEADER.ts.ftl
</#ibizinclude>
/**
* 备份原生数据
*
* @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public copynativeData:any;
<#list ctrl.getPSDEGridEditItems() as deItem>
<#if deItem.getPSEditor()?? && deItem.getPSEditor().getPSAppDataEntity?? && deItem.getPSEditor().getPSAppDataEntity()??>
<#assign _appde = deItem.getPSEditor().getPSAppDataEntity()/>
...
...
@@ -242,6 +250,7 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
result =_appEntityService.FetchDefault(Context,Data, isloading);
}
result.then((response) => {
this.copynativeData = Util.deepCopy(response.data);
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
...
...
@@ -418,6 +427,98 @@ import ${srfclassname('${aggAppDataEntity.getCodeName()}')}Service from '@/servi
}
return {context:tempContext,data:requestData};
}
/**
* 处理工作流数据
*
* @param data 传入数据
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public handleWFData(data:any, isMerge:boolean = false){
let model: any = this.getMode();
if (!model && model.getDataItems instanceof Function) {
return data;
}
let dataItems: any[] = model.getDataItems();
let requestData:any = {};
dataItems.forEach((item:any) =>{
if(item && item.prop){
if(item.dataType){
if(!Object.is(item.dataType,'QUERYPARAM')){
requestData[item.prop] = data[item.name];
}
}else{
requestData[item.prop] = data[item.name];
}
}
});
if(isMerge && (data.viewparams && Object.keys(data.viewparams).length > 0)){
Object.assign(requestData,data.viewparams);
}
// 删除前端srffrontuf标识
if(requestData.hasOwnProperty('srffrontuf')){
delete requestData.srffrontuf;
}
//补充工作流所需主键
requestData.srfkey = data.${appde.getCodeName()?lower_case};
//补充全量数据
requestData = this.fillNativeData(requestData);
return requestData;
}
/**
* 补充全量数据
*
* @param {*} [data]
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
public fillNativeData(data:any){
if(this.copynativeData && this.copynativeData.length >0){
let targetData:any = this.copynativeData.find((item:any) =>{
return item.${appde.getKeyPSAppDEField().getCodeName()?lower_case} === data.srfkey;
})
data = Object.assign(targetData,data);
return data;
}
}
/**
* 提交工作流
*
* @param {string} action
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {*} [localdata]
* @returns {Promise<any>}
* @memberof ${srfclassname('${ctrl.codeName}')}Service
*/
@Errorlog
public submitbatch(action: string,context: any = {}, data: any,localdata:any,isloading?: boolean): Promise<any> {
let tempData:any = [];
if(data && data.length > 0){
data.forEach((item:any) => {
let data:any = this.handleWFData(item,true);
tempData.push(data);
});
}
context = this.handleRequestData(action,context,data,true).context;
return new Promise((resolve: any, reject: any) => {
let result: Promise<any>;
const _appEntityService: any = this.appEntityService;
if (_appEntityService[action] && _appEntityService[action] instanceof Function) {
result = _appEntityService[action](context,tempData, localdata,isloading);
} else {
result = this.appEntityService.wfSubmitBatch(context,tempData,localdata,isloading);
}
result.then((response) => {
this.handleResponse(action, response);
resolve(response);
}).catch(response => {
reject(response);
});
});
}
<#ibizinclude>
../@MACRO/SERVICE/SERVICE_BOTTOM.ts.ftl
...
...
@CONTROL/视图布局面板/实体工作流动态导航表格视图/VIEW.less.ftl
浏览文件 @
ae91881e
...
...
@@ -47,4 +47,11 @@
margin-left: 4px;
}
}
}
.dewfdynaexpgridview{
>.view-card{
.ivu-card-extra{
top: 6px;
}
}
}
\ No newline at end of file
@CONTROL/视图布局面板/实体工作流动态导航表格视图/VIEW.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -2,8 +2,18 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction>
<card class='view-card <#if !view.isShowCaptionBar()> view-no-caption</#if> <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :disHover="true" :padding="0" :bordered="false">
<#ibizinclude>
../@MACRO/VIEW_CAPTION.vue.ftl
../@MACRO/VIEW_CAPTION.vue.ftl
</#ibizinclude>
<div slot="extra">
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600" v-for="(linkItem, index) in linkModel" :key="index">
<i-button :disabled="linkItem.disabled" @click="dynamic_toolbar_click(linkItem, $event)">
<span class='caption'>{{linkItem.sequenceFlowName}}</span>
</i-button>
<div slot='content'>{{linkItem.sequenceFlowName}}</div>
</tooltip>
</div>
</div>
<split id="${view.getCodeName()?lower_case}" v-model="split" mode="horizontal">
<div slot='left'>
<el-tree ref="tree" :data="wfStepModel" node-key="userTaskId" :highlight-current="true" :props="defaultProps" @node-click="handleNodeClick">
...
...
@CONTROL/视图布局面板/应用首页视图/VIEW.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -39,6 +39,7 @@
<app-lang style='font-size: 15px;padding: 0 10px;'></app-lang>
<app-orgsector></app-orgsector>
<app-user></app-user>
<app-message-popover></app-message-popover>
<app-lock-scren />
<app-full-scren />
<app-theme style="width:45px;display: flex;justify-content: center;"></app-theme>
...
...
@@ -72,6 +73,9 @@
<app-lang style='font-size: 15px;padding: 0 10px;'></app-lang>
<app-orgsector></app-orgsector>
<app-user></app-user>
<app-message-popover></app-message-popover>
<app-lock-scren />
<app-full-scren />
<app-theme style="width:45px;display: flex;justify-content: center;"></app-theme>
</div>
</header>
...
...
@CONTROL/面板/CONTROL-BASE.vue#ITEM_TABPANEL.ftl
0 → 100644
浏览文件 @
ae91881e
<#ibizinclude>
./@MACRO/PLAYOUT.vue.ftl
</#ibizinclude>
<div v-show="detailsModel.${item.name}.visible" class="app-layoutpanel-tabpanel<#if item.getPSSysCss()??> ${item.getPSSysCss().getCssName()}</#if>" ${tableAttr} style="${flexAttr}<#if item.getWidth() gt 0>width: ${item.getWidth()?c}px;</#if><#if item.getHeight() gt 0>height: ${item.getHeight()?c}px;</#if>">
<#if item.render??>
${item.render.code}
<#else>
<@ibizindent blank=8>
获取面板分页面板代码
</@ibizindent>
</#if>
</div>
\ No newline at end of file
@EDITOR/HTML编辑器/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
<#if item.render??>
${item.render.code}
<#else>
<app-rich-text-editor :formState="formState" :value="data.${editor.name
?lower_case}" @change="(val) =>{this.data.${editor.name?lower_case} =val}" <#if item.getEnableCond??>:disabled="data.srfuf === 1 ? (${item.getEnableCond()?c} & 2) !== 2 : (${item.getEnableCond()?c} & 1) !== 1"</#if> name="${editor.name?lower_case}"
<#if editor.getEditorHeight() gt 0> height={${editor.getEditorHeight()?c}}</#if> style="${editor.getEditorCssStyle()}"></app-rich-text-editor>
<app-rich-text-editor :formState="formState" :value="data.${editor.name
}" @change="(val) =>{this.data.${editor.name} =val;panelEditItemChange(data, '${editor.name?lower_case}', val)}" :disabled="detailsModel.${editor.name}.disabled" :data="JSON.stringify(this.data)" name="${editor.name}" :uploadparams='<#if editor.getEditorParam('uploadparams','') != ''>${editor.getEditorParam('uploadparams','')}<#else>{}</#if>' :exportparams='<#if editor.getEditorParam('exportparams','') != ''>${editor.getEditorParam('exportparams','')}<#else>{}</#if>'
<#if editor.getEditorHeight() gt 0> height={${editor.getEditorHeight()?c}}</#if> style="${editor.getEditorCssStyle()}"></app-rich-text-editor>
</#if>
\ No newline at end of file
@EDITOR/图片控件/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -6,7 +6,7 @@
:ignorefieldvaluechange="false"
@formitemvaluechange="($event)=>{onPanelItemValueChange(data,$event)}"
:data="JSON.stringify(data)"
:
name='${editor.name?lower_case}'
name='${editor.name?lower_case}'
:value="data.${editor.name?lower_case}"
<#if item.getEnableCond??>
:disabled="data.srfuf === 1 ? (${item.getEnableCond()?c} & 2) !== 2 : (${item.getEnableCond()?c} & 1) !== 1"
...
...
@EDITOR/图片控件(单项)/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -6,7 +6,7 @@
:ignorefieldvaluechange="false"
@formitemvaluechange="($event)=>{onPanelItemValueChange(data,$event)}"
:data="JSON.stringify(data)"
:
name='${editor.name?lower_case}'
name='${editor.name?lower_case}'
:value="data.${editor.name?lower_case}"
<#if item.getEnableCond??>
:disabled="data.srfuf === 1 ? (${item.getEnableCond()?c} & 2) !== 2 : (${item.getEnableCond()?c} & 1) !== 1"
...
...
@EDITOR/文件上传/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -6,7 +6,7 @@
:ignorefieldvaluechange="false"
@formitemvaluechange="($event)=>{onPanelItemValueChange(data,$event)}"
:data="JSON.stringify(data)"
:
name='${editor.name?lower_case}'
name='${editor.name?lower_case}'
:value="data.${editor.name?lower_case}"
<#if item.getEnableCond??>
:disabled="data.srfuf === 1 ? (${item.getEnableCond()?c} & 2) !== 2 : (${item.getEnableCond()?c} & 1) !== 1"
...
...
@EDITOR/文件上传(支持拖拽)/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -4,7 +4,7 @@
:ignorefieldvaluechange="false"
@formitemvaluechange="($event)=>{onPanelItemValueChange(data,$event)}"
:data="JSON.stringify(data)"
:
name='${editor.name?lower_case}'
name='${editor.name?lower_case}'
:value="data.${editor.name?lower_case}"
<#if item.getEnableCond??>
:disabled="data.srfuf === 1 ? (${item.getEnableCond()?c} & 2) !== 2 : (${item.getEnableCond()?c} & 1) !== 1"
...
...
@EDITOR/时间选择器(新)/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -11,6 +11,6 @@
</#if>
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val1, val2) => { data.${editor.name?lower_case} = val1;
grid
EditItemChange(data, '${editor.name?lower_case}', val1)}">
@on-change="(val1, val2) => { data.${editor.name?lower_case} = val1;
panel
EditItemChange(data, '${editor.name?lower_case}', val1)}">
</date-picker>
</#if>
\ No newline at end of file
@EDITOR/时间选择控件/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -11,6 +11,6 @@
</#if>
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val1, val2) => { data.${editor.name?lower_case} = val1;
grid
EditItemChange(data, '${editor.name?lower_case}', val1)}">
@on-change="(val1, val2) => { data.${editor.name?lower_case} = val1;
panel
EditItemChange(data, '${editor.name?lower_case}', val1)}">
</date-picker>
</#if>
\ No newline at end of file
@EDITOR/时间选择控件_分钟/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -10,6 +10,6 @@
</#if>
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val) => { data.${editor.name?lower_case} = val;
grid
EditItemChange(data, '${editor.name?lower_case}', val)}">
@on-change="(val) => { data.${editor.name?lower_case} = val;
panel
EditItemChange(data, '${editor.name?lower_case}', val)}">
</time-picker>
</#if>
\ No newline at end of file
@EDITOR/时间选择控件_小时/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -10,6 +10,6 @@
</#if>
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val) => { data.${editor.name?lower_case} = val;
grid
EditItemChange(data, '${editor.name?lower_case}', val)}">
@on-change="(val) => { data.${editor.name?lower_case} = val;
panel
EditItemChange(data, '${editor.name?lower_case}', val)}">
</time-picker>
</#if>
\ No newline at end of file
@EDITOR/时间选择控件_无小时/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -11,6 +11,6 @@
</#if>
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val1, val2) => { data.${editor.name?lower_case} = val1;
grid
EditItemChange(data, '${editor.name?lower_case}', val1)}">
@on-change="(val1, val2) => { data.${editor.name?lower_case} = val1;
panel
EditItemChange(data, '${editor.name?lower_case}', val1)}">
</date-picker>
</#if>
\ No newline at end of file
@EDITOR/时间选择控件_无日期/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -10,6 +10,6 @@
</#if>
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val) => { data.${editor.name?lower_case} = val;
grid
EditItemChange(data, '${editor.name?lower_case}', val)}">
@on-change="(val) => { data.${editor.name?lower_case} = val;
panel
EditItemChange(data, '${editor.name?lower_case}', val)}">
</time-picker>
</#if>
\ No newline at end of file
@EDITOR/时间选择控件_无日期无秒钟/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -10,6 +10,6 @@
</#if>
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val) => { data.${editor.name?lower_case} = val;
grid
EditItemChange(data, '${editor.name?lower_case}', val)}">
@on-change="(val) => { data.${editor.name?lower_case} = val;
panel
EditItemChange(data, '${editor.name?lower_case}', val)}">
</time-picker>
</#if>
\ No newline at end of file
@EDITOR/时间选择控件_秒钟/PANELEDITOR.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -10,6 +10,6 @@
</#if>
:value="data.${editor.name?lower_case}"
style="${item.getEditorCssStyle()}<#if item.getEditorParam('width','') == 'auto'>width:100%;</#if>"
@on-change="(val) => { data.${editor.name?lower_case} = val;
grid
EditItemChange(data, '${editor.name?lower_case}', val)}">
@on-change="(val) => { data.${editor.name?lower_case} = val;
panel
EditItemChange(data, '${editor.name?lower_case}', val)}">
</time-picker>
</#if>
\ No newline at end of file
@VIEW/实体工作流动态导航表格视图/VIEW-BASE.vue.ftl
浏览文件 @
ae91881e
...
...
@@ -29,7 +29,14 @@
* @type {any}
* @memberof ${srfclassname('${view.codeName}')}Base
*/
public isSingleSelect:boolean = true;
public isSingleSelect:boolean = false;
/**
* 工具栏模型数据
*
* @memberof ${srfclassname('${view.codeName}')}Base
*/
public linkModel:Array<any> = [];
/**
* 左侧树的默认配置
...
...
@@ -73,6 +80,7 @@
if(this.curSelectedNode){
Object.assign(this.viewparams,{'userTaskId':this.curSelectedNode['userTaskId'],'processDefinitionKey':this.curSelectedNode['processDefinitionKey']});
this.setTreeNodeHighLight(this.curSelectedNode);
this.getWFLinkModel({'userTaskId':this.curSelectedNode['userTaskId'],'processDefinitionKey':this.curSelectedNode['processDefinitionKey']});
}
resolve(response.data);
}
...
...
@@ -89,6 +97,56 @@
})
}
/**
* 获取工具栏按钮
*
* @memberof ${srfclassname('${view.codeName}')}Base
*/
public getWFLinkModel(data:any){
this.appEntityService.getWFLinks(JSON.parse(JSON.stringify(this.context)),data,true).then((response:any) =>{
if (response && response.status === 200) {
this.linkModel = response.data;
if(this.linkModel.length >0){
this.linkModel.forEach((item:any) =>{
item.disabled = true;
})
}
}
}).catch((response: any) => {
if (response && response.status) {
this.$Notice.error({ title: '错误', desc: response.message });
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 工具栏点击事件
*
* @memberof ${srfclassname('${view.codeName}')}Base
*/
public dynamic_toolbar_click(linkItem:any, $event:any){
let datas: any[] = [];
let xData: any = this.$refs.grid;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
xData.submitbatch(datas,linkItem).then((response: any) => {
if (!response || response.status !== 200) {
return;
}
const { data: _data } = response;
this.engine.load();
if (this.viewdata) {
this.$emit('viewdataschange', [{ ..._data }]);
}
});
}
/**
* 左侧树选中节点
*
...
...
@@ -99,6 +157,7 @@
this.curSelectedNode = data;
this.setTreeNodeHighLight(this.curSelectedNode);
Object.assign(this.viewparams,{'userTaskId':data['userTaskId'],'processDefinitionKey':data['processDefinitionKey']});
this.getWFLinkModel({'userTaskId':this.curSelectedNode['userTaskId'],'processDefinitionKey':this.curSelectedNode['processDefinitionKey']});
(this.$refs.searchform as any).onSearch();
}
...
...
APP/public/assets/json/data-dictionary.json.ftl
浏览文件 @
ae91881e
...
...
@@ -23,6 +23,7 @@ TARGET=PSSYSAPP
"icon":"${sysimage.getImagePath()}",
</#if>
</#if>
"class":"<#if codeitem.getPSSysCss()??>${codeitem.getPSSysCss().getCssName()}</#if>",
"data":<#if codeitem.getData() !="">${codeitem.getData()}<#else>""</#if>,
<#if codeitem.getCodeName()??>
"codename":"${codeitem.getCodeName()}",
...
...
APP/src/environments/environment.ts.ftl
浏览文件 @
ae91881e
...
...
@@ -28,8 +28,10 @@ export const Environment = {
enablePermissionValid:false,
// 项目模板地址
ProjectUrl: "http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7",
// 打开目标工具,可选参数:sln、mos
debugOpenMode:'mos',
// 配置平台地址
StudioUrl: "http://172.16.170.145/
slnstudio
/",
StudioUrl: "http://172.16.170.145/
mos
/",
// 中心标识
SlnId: "B4BF5C84-D020-4D9A-A986-8FA4FD72816C",
// 系统标识
...
...
@@ -42,4 +44,8 @@ export const Environment = {
ibizlabtUrl: 'https://www.ibizlab.cn',
// ibiz论坛地址
ibizbbstUrl: 'https://bbs.ibizlab.cn',
};
\ No newline at end of file
};
// 挂载外部配置文件
if ((window as any).Environment) {
Object.assign(Environment, (window as any).Environment);
}
\ No newline at end of file
APP/src/mock/codelist/codelist.ts.ftl
浏览文件 @
ae91881e
...
...
@@ -32,6 +32,7 @@ mock.onGet('./assets/json/data-dictionary.json').reply((config: any) => {
"icon":"${sysimage.getImagePath()}",
</#if>
</#if>
"class":"<#if codeitem.getPSSysCss()??>${codeitem.getPSSysCss().getCssName()}</#if>",
"data":<#if codeitem.getData() != "">${codeitem.getData()}<#else>""</#if>,
<#if codeitem.getCodeName()??>
"codename":"${codeitem.getCodeName()}",
...
...
APP/src/styles/app-code-list.less.ftl
0 → 100644
浏览文件 @
ae91881e
<#ibiztemplate>
TARGET=PSSYSAPP
</#ibiztemplate>
<#if app.getAllPSAppCodeLists?? && app.getAllPSAppCodeLists()??>
<#assign allAppCodeLists = app.getAllPSAppCodeLists() />
<#list allAppCodeLists as singleCodeList>
<#-- 静态代码表start -->
<#if singleCodeList.getCodeListType() == "STATIC">
<#if singleCodeList.getAllPSCodeItems()??>
<#list singleCodeList.getAllPSCodeItems() as codeItem>
<#if codeItem.getPSSysCss()??>
.${codeItem.getPSSysCss().getCssName()}{
${codeItem.getPSSysCss().getRawCssStyle()}
}
</#if>
</#list>
</#if>
</#if>
<#-- 静态代码表end -->
</#list>
</#if>
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录