提交 dc930310 编写于 作者: tony001's avatar tony001

Merge branch 'dev'

window.Environment = {
// 应用基础路径
BaseUrl: '',
// 是否为开发模式
devMode: true,
// 是否为pc端应用
isAppMode:true,
// 是否开启权限认证
enablePermissionValid:false,
// 打开目标工具,可选参数:sln、mos
debugOpenMode:'mos',
// 配置平台地址
StudioUrl: "http://172.16.170.145/mos/",
// 中心标识
SlnId: "B4BF5C84-D020-4D9A-A986-8FA4FD72816C",
// 系统标识
SysId: "B428B5BE-EA90-4101-A493-BA7085D89F0A",
// 前端应用标识
AppId: "6e0b7357169ef4eba84e1347ed94bd84",
}
\ No newline at end of file
...@@ -85,6 +85,8 @@ import AppFullScren from './components/app-full-scren/app-full-scren.vue' ...@@ -85,6 +85,8 @@ import AppFullScren from './components/app-full-scren/app-full-scren.vue'
import AppLockScren from './components/app-lock-scren/app-lock-scren.vue' import AppLockScren from './components/app-lock-scren/app-lock-scren.vue'
import ActionTimeline from './components/action-timeline/action-timeline.vue' import ActionTimeline from './components/action-timeline/action-timeline.vue'
import CronEditor from './components/cron-editor/cron-editor.vue' import CronEditor from './components/cron-editor/cron-editor.vue'
import AppMessagePopover from './components/app-message-popover/app-message-popover.vue'
// 全局挂载UI实体服务注册中心 // 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister; window['uiServiceRegister'] = uiServiceRegister;
// 全局挂载实体权限服务注册中心 // 全局挂载实体权限服务注册中心
...@@ -183,5 +185,6 @@ export const AppComponents = { ...@@ -183,5 +185,6 @@ export const AppComponents = {
v.component('app-menu-item', AppMenuItem); v.component('app-menu-item', AppMenuItem);
v.component('action-timeline', ActionTimeline); v.component('action-timeline', ActionTimeline);
v.component('cron-editor', CronEditor); v.component('cron-editor', CronEditor);
v.component('app-message-popover', AppMessagePopover);
}, },
}; };
\ No newline at end of file
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<script lang="ts"> <script lang="ts">
import { Vue, Component, Prop, Model, Emit,Inject, Watch } from "vue-property-decorator"; import { Vue, Component, Prop, Model, Emit,Inject, Watch } from "vue-property-decorator";
import { Subject,Subscription } from "rxjs"; import { Subject,Subscription } from "rxjs";
import { Environment } from '@/environments/environment';
@Component({}) @Component({})
export default class AppActionBar extends Vue { export default class AppActionBar extends Vue {
...@@ -99,37 +100,39 @@ export default class AppActionBar extends Vue { ...@@ -99,37 +100,39 @@ export default class AppActionBar extends Vue {
* @memberof AppActionBar * @memberof AppActionBar
*/ */
public calcActionItemAuthState(data:any,ActionModel:any,UIService:any){ public calcActionItemAuthState(data:any,ActionModel:any,UIService:any){
for (const key in ActionModel) { if(Environment.enablePermissionValid){
if (!ActionModel.hasOwnProperty(key)) { for (const key in ActionModel) {
return; if (!ActionModel.hasOwnProperty(key)) {
} return;
const _item = ActionModel[key]; }
if(_item && _item['dataaccaction'] && UIService){ const _item = ActionModel[key];
let dataActionResult:any; if(_item && _item['dataaccaction'] && UIService){
if(Object.is(_item['actiontarget'],"NONE")){ let dataActionResult:any;
dataActionResult = UIService.getResourceOPPrivs(_item['dataaccaction']); if(Object.is(_item['actiontarget'],"NONE")){
}else{ dataActionResult = UIService.getResourceOPPrivs(_item['dataaccaction']);
if(data && Object.keys(data).length >0){ }else{
dataActionResult = UIService.getAllOPPrivs(data)[_item['dataaccaction']]; if(data && Object.keys(data).length >0){
} dataActionResult = UIService.getAllOPPrivs(data)[_item['dataaccaction']];
} }
// 无权限:0;有权限:1 }
if(dataActionResult === 0){ // 无权限:0;有权限:1
// 禁用:1;隐藏:2;隐藏且默认隐藏:6 if(dataActionResult === 0){
if(_item.noprivdisplaymode === 1){ // 禁用:1;隐藏:2;隐藏且默认隐藏:6
_item.disabled = true; if(_item.noprivdisplaymode === 1){
} _item.disabled = true;
if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){ }
_item.visabled = false; if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){
}else{ _item.visabled = false;
_item.visabled = true; }else{
} _item.visabled = true;
} }
if(dataActionResult === 1){ }
_item.visabled = true; if(dataActionResult === 1){
_item.disabled = false; _item.visabled = true;
} _item.disabled = false;
} }
}
}
} }
} }
......
...@@ -222,7 +222,12 @@ export default class AppEmbedPicker extends Vue { ...@@ -222,7 +222,12 @@ export default class AppEmbedPicker extends Vue {
if(Object.is(newFormData[this.refreshitems], oldDormData[this.refreshitems])) { if(Object.is(newFormData[this.refreshitems], oldDormData[this.refreshitems])) {
return; return;
} }
this.setValue([{srfmajortext: null, srfkey: null}]); if (this.valueItem) {
this.$emit('formitemvaluechange', { name: this.valueItem, value: null });
}
if (this.name) {
this.$emit('formitemvaluechange', { name: this.name, value: null });
}
} }
/** /**
...@@ -231,6 +236,7 @@ export default class AppEmbedPicker extends Vue { ...@@ -231,6 +236,7 @@ export default class AppEmbedPicker extends Vue {
* @memberof AppEmbedPicker * @memberof AppEmbedPicker
*/ */
public created() { public created() {
this.setViewParam();
if(this.formState) { if(this.formState) {
this.formStateEvent = this.formState.subscribe(({ tag, action, data }) => { this.formStateEvent = this.formState.subscribe(({ tag, action, data }) => {
if (Object.is('load', action)) { if (Object.is('load', action)) {
......
...@@ -108,6 +108,7 @@ ...@@ -108,6 +108,7 @@
<script lang="ts"> <script lang="ts">
import { Vue, Component, Prop, Watch } from 'vue-property-decorator'; import { Vue, Component, Prop, Watch } from 'vue-property-decorator';
import { Environment } from '@/environments/environment';
@Component({}) @Component({})
export default class AppFormGroup extends Vue { export default class AppFormGroup extends Vue {
...@@ -157,36 +158,38 @@ export default class AppFormGroup extends Vue { ...@@ -157,36 +158,38 @@ export default class AppFormGroup extends Vue {
* @memberof AppFormGroup * @memberof AppFormGroup
*/ */
public calcActionItemAuthState(data:any,ActionModel:any,UIService:any){ public calcActionItemAuthState(data:any,ActionModel:any,UIService:any){
for (const key in ActionModel) { if(Environment.enablePermissionValid){
if (!ActionModel.hasOwnProperty(key)) { for (const key in ActionModel) {
return; if (!ActionModel.hasOwnProperty(key)) {
} return;
const _item = ActionModel[key];
if(_item && _item['dataaccaction'] && UIService){
let dataActionResult:any;
if(Object.is(_item['actiontarget'],"NONE")){
dataActionResult = UIService.getResourceOPPrivs(_item['dataaccaction']);
}else{
if(data && Object.keys(data).length >0){
dataActionResult = UIService.getAllOPPrivs(data)[_item['dataaccaction']];
}
} }
// 无权限:0;有权限:1 const _item = ActionModel[key];
if(dataActionResult === 0){ if(_item && _item['dataaccaction'] && UIService){
// 禁用:1;隐藏:2;隐藏且默认隐藏:6 let dataActionResult:any;
if(_item.noprivdisplaymode === 1){ if(Object.is(_item['actiontarget'],"NONE")){
_item.disabled = true; dataActionResult = UIService.getResourceOPPrivs(_item['dataaccaction']);
}
if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){
_item.visabled = false;
}else{ }else{
if(data && Object.keys(data).length >0){
dataActionResult = UIService.getAllOPPrivs(data)[_item['dataaccaction']];
}
}
// 无权限:0;有权限:1
if(dataActionResult === 0){
// 禁用:1;隐藏:2;隐藏且默认隐藏:6
if(_item.noprivdisplaymode === 1){
_item.disabled = true;
}
if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){
_item.visabled = false;
}else{
_item.visabled = true;
}
}
if(dataActionResult === 1){
_item.visabled = true; _item.visabled = true;
_item.disabled = false;
} }
} }
if(dataActionResult === 1){
_item.visabled = true;
_item.disabled = false;
}
} }
} }
} }
......
.item {
height: 24px;
line-height: 24px;
}
.show-more {
text-align: center;
margin-top: 10px;
height: 20px;
color: #409eff;
label {
cursor: pointer;
}
}
#bellBtn {
height: 24px;
font-size: 19px;
padding-top: 2px;
padding-right: 2px;
color: #aaa;
cursor: pointer;
}
.Row {
min-height: 70px;
height: auto;
border-bottom: 1px solid lightgray;
display: flex;
align-items: center;
.column1 {
text-align: center;
border: 0px solid red;
}
.column2 {
border: 0px red solid;
.process-definition-name {
font-size: 14px;
padding-top: 5px;
}
.description {
margin-top: 6px;
margin-bottom: 6px;
max-width: 95%;
}
.createtime {
padding-bottom: 5px;
}
.el-row {
display: flex;
.el-col {
flex-grow: 1;
div:first-child {
font-weight: 500;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
div:nth-child(n+2) {
font-size: 12px;
}
}
}
}
}
...@@ -5,11 +5,21 @@ ...@@ -5,11 +5,21 @@
display: none; display: none;
} }
.el-transfer{ .el-transfer{
max-height: 200px;
min-width: 100% !important; min-width: 100% !important;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.el-transfer-panel{ .el-transfer-panel{
min-width: 25%; min-width: 25%;
.el-transfer-panel__body{
max-height: 160px;
.el-checkbox-group{
max-height: 160px;
.el-checkbox+.el-checkbox {
margin-left: 0px;
}
}
}
} }
.el-transfer__buttons{ .el-transfer__buttons{
align-self: center; align-self: center;
......
...@@ -5,30 +5,35 @@ ...@@ -5,30 +5,35 @@
<span>{{data.startUserName}}{{$t('components.appWFApproval.commit')}}</span> <span>{{data.startUserName}}{{$t('components.appWFApproval.commit')}}</span>
</div> </div>
<div class="app-wf-approval-content" v-if="data.usertasks && data.usertasks.length >0"> <div class="app-wf-approval-content" v-if="data.usertasks && data.usertasks.length >0">
<div class="approval-content-item" v-for="(usertask,index) in data.usertasks" :key="index"> <template v-for="(usertask,index) in data.usertasks" >
<div class="approval-content-item-left"> <template v-if="usertask.identitylinks.length >0">
{{usertask.userTaskName}} <div class="approval-content-item" :key="index">
</div> <div class="approval-content-item-left">
<div class="approval-content-item-right"> {{usertask.userTaskName}}
<div class="approval-content-item-wait" v-if="usertask.identitylinks.length >0"> </div>
{{$t('components.appWFApproval.wait')}}<span v-for="(identitylink,inx) in usertask.identitylinks" :key="inx">{{identitylink.displayname}}<span v-if="inx >0"></span></span>{{$t('components.appWFApproval.handle')}} <div class="approval-content-item-right">
</div> <div class="approval-content-item-wait" v-if="usertask.identitylinks.length >0">
<div class="approval-content-item-info" v-if="usertask.comments.length >0"> {{$t('components.appWFApproval.wait')}}<span v-for="(identitylink,inx) in usertask.identitylinks" :key="inx">{{identitylink.displayname}}<span v-if="inx >0"></span></span>{{$t('components.appWFApproval.handle')}}
<div v-for="(comment,commentInx) in usertask.comments" :key="commentInx">
<div class="approval-content-item-info-item approval-content-item-info-top">
{{`【${comment.type}】${comment.fullMessage}`}}
</div> </div>
<div class="approval-content-item-info-item approval-content-item-info-bottom"> <div class="approval-content-item-info" v-if="usertask.comments.length >0">
<span class="info-bottom-name">{{comment.authorName}}</span> <div v-for="(comment,commentInx) in usertask.comments" :key="commentInx">
<span>{{comment.time}}</span> <div class="approval-content-item-info-item approval-content-item-info-top">
{{`【${comment.type}】${comment.fullMessage}`}}
</div>
<div class="approval-content-item-info-item approval-content-item-info-bottom">
<span class="info-bottom-name">{{comment.authorName}}</span>
<span>{{comment.time}}</span>
</div>
</div>
</div>
<div class="approval-content-item-memo" v-if="usertask.userTaskId === viewparams.userTaskId">
<el-input type="textarea" v-model="initmemo" :rows="2" @blur="handleBlur" :placeholder="$t('components.appWFApproval.placeholder')"></el-input>
</div> </div>
</div> </div>
</div> </div>
<div class="approval-content-item-memo" v-if="usertask.userTaskId === viewparams.userTaskId"> </template>
<el-input type="textarea" v-model="initmemo" :rows="2" @blur="handleBlur" :placeholder="$t('components.appWFApproval.placeholder')"></el-input> </template>
</div>
</div>
</div>
</div> </div>
<div class="app-wf-approval-bottom"> <div class="app-wf-approval-bottom">
<span v-if="data.endTime">{{data.endTime}}{{$t('components.appWFApproval.end')}}</span> <span v-if="data.endTime">{{data.endTime}}{{$t('components.appWFApproval.end')}}</span>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
:filterable="filterable" :filterable="filterable"
@on-open-change="onClick" @on-open-change="onClick"
:placeholder="$t('components.dropDownListDynamic.placeholder')"> :placeholder="$t('components.dropDownListDynamic.placeholder')">
<i-option v-for="(item, index) in items" :key="index" :value="item.value">{{($t('userCustom.'+tag+'.'+item.value)!== ('userCustom.'+tag+'.'+item.value))?$t('userCustom.'+tag+'.'+item.value) : item.text}}</i-option> <i-option v-for="(item, index) in items" :key="index" :class="item.class" :value="item.value">{{($t('userCustom.'+tag+'.'+item.value)!== ('userCustom.'+tag+'.'+item.value))?$t('userCustom.'+tag+'.'+item.value) : item.text}}</i-option>
</i-select> </i-select>
</template> </template>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
:filterable="filterable" :filterable="filterable"
@on-open-change="onClick" @on-open-change="onClick"
:placeholder="$t('components.dropDownListMpicker.placeholder')"> :placeholder="$t('components.dropDownListMpicker.placeholder')">
<i-option v-for="(item, index) in items" :key="index" :value="item.value.toString()" :label="item.text"> <i-option v-for="(item, index) in items" :key="index" :class="item.class" :value="item.value.toString()" :label="item.text">
<Checkbox :value = "(currentVal.indexOf(item.value.toString()))==-1?false:true"> <Checkbox :value = "(currentVal.indexOf(item.value.toString()))==-1?false:true">
{{Object.is(codelistType,'STATIC') ? $t('codelist.'+tag+'.'+item.value) : item.text}} {{Object.is(codelistType,'STATIC') ? $t('codelist.'+tag+'.'+item.value) : item.text}}
</Checkbox> </Checkbox>
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:filterable="filterable" :filterable="filterable"
@on-open-change="onClick" @on-open-change="onClick"
:placeholder="$t('components.dropDownList.placeholder')"> :placeholder="$t('components.dropDownList.placeholder')">
<i-option v-for="(item, index) in items" :key="index" :value="item.value">{{($t('codelist.'+tag+'.'+item.value)!== ('codelist.'+tag+'.'+item.value))?$t('codelist.'+tag+'.'+item.value) : item.text}}</i-option> <i-option v-for="(item, index) in items" :key="index" :class="item.class" :value="item.value">{{($t('codelist.'+tag+'.'+item.value)!== ('codelist.'+tag+'.'+item.value))?$t('codelist.'+tag+'.'+item.value) : item.text}}</i-option>
</i-select> </i-select>
<ibiz-select-tree v-if="hasChildren" class="tree-dropdown-list" :disabled="disabled" :NodesData="items" v-model="currentVal" :multiple="false"></ibiz-select-tree> <ibiz-select-tree v-if="hasChildren" class="tree-dropdown-list" :disabled="disabled" :NodesData="items" v-model="currentVal" :multiple="false"></ibiz-select-tree>
</div> </div>
......
import { Environment } from '@/environments/environment';
/** /**
* *
* *
...@@ -184,37 +186,39 @@ export default class ViewEngine { ...@@ -184,37 +186,39 @@ export default class ViewEngine {
* @memberof ViewEngine * @memberof ViewEngine
*/ */
public calcToolbarItemAuthState(data:any){ public calcToolbarItemAuthState(data:any){
const _this: any = this; if(Environment.enablePermissionValid){
for (const key in _this.view.toolBarModels) { const _this: any = this;
if (!_this.view.toolBarModels.hasOwnProperty(key)) { for (const key in _this.view.toolBarModels) {
return; if (!_this.view.toolBarModels.hasOwnProperty(key)) {
} return;
const _item = _this.view.toolBarModels[key];
if(_item && _item['dataaccaction'] && _this.view.appUIService){
let dataActionResult:any;
if (_item.uiaction && (Object.is(_item.uiaction.target, 'NONE'))){
dataActionResult = _this.view.appUIService.getResourceOPPrivs(_item['dataaccaction']);
}else{
if(data && Object.keys(data).length >0){
dataActionResult= _this.view.appUIService.getAllOPPrivs(data)[_item['dataaccaction']];
}
} }
// 无权限:0;有权限:1 const _item = _this.view.toolBarModels[key];
if(dataActionResult === 0){ if(_item && _item['dataaccaction'] && _this.view.appUIService){
// 禁用:1;隐藏:2;隐藏且默认隐藏:6 let dataActionResult:any;
if(_item.noprivdisplaymode === 1){ if (_item.uiaction && (Object.is(_item.uiaction.target, 'NONE'))){
_this.view.toolBarModels[key].disabled = true; dataActionResult = _this.view.appUIService.getResourceOPPrivs(_item['dataaccaction']);
}
if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){
_this.view.toolBarModels[key].visabled = false;
}else{ }else{
if(data && Object.keys(data).length >0){
dataActionResult= _this.view.appUIService.getAllOPPrivs(data)[_item['dataaccaction']];
}
}
// 无权限:0;有权限:1
if(dataActionResult === 0){
// 禁用:1;隐藏:2;隐藏且默认隐藏:6
if(_item.noprivdisplaymode === 1){
_this.view.toolBarModels[key].disabled = true;
}
if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){
_this.view.toolBarModels[key].visabled = false;
}else{
_this.view.toolBarModels[key].visabled = true;
}
}
if(dataActionResult === 1){
_this.view.toolBarModels[key].visabled = true; _this.view.toolBarModels[key].visabled = true;
_this.view.toolBarModels[key].disabled = false;
} }
} }
if(dataActionResult === 1){
_this.view.toolBarModels[key].visabled = true;
_this.view.toolBarModels[key].disabled = false;
}
} }
} }
} }
......
...@@ -76,4 +76,37 @@ export default class WFDynaExpGridViewEngine extends GridViewEngine { ...@@ -76,4 +76,37 @@ export default class WFDynaExpGridViewEngine extends GridViewEngine {
public GridLoad(args: any[]) { public GridLoad(args: any[]) {
this.view.getWFStepModel(); this.view.getWFStepModel();
} }
/**
* 选中变化
*
* @param {any[]} args
* @memberof WFDynaExpGridViewEngine
*/
public selectionChange(args: any[]): void {
if (this.view) {
this.view.selectedData = args;
this.view.$emit('viewdataschange', args);
}
const state = args.length > 0 && !Object.is(args[0].srfkey, '') ? false : true;
this.calcToolbarItemState(state);
}
/**
* 计算工具栏状态
*
* @param {boolean} state
* @param {*} [dataaccaction]
* @memberof WFDynaExpGridViewEngine
*/
public calcToolbarItemState(state: boolean, dataaccaction?: any) {
const _this: any = this;
if (!_this.view.linkModel || Object.keys(_this.view.linkModel).length === 0) {
return;
}
_this.view.linkModel.forEach((item:any) => {
item.disabled = state;
});
this.view.$forceUpdate();
}
} }
\ No newline at end of file
...@@ -261,68 +261,72 @@ export default { ...@@ -261,68 +261,72 @@ export default {
}, },
cronEditor: { cronEditor: {
label: { label: {
second: 'Second', second: 'Second',
minute: 'Minute', minute: 'Minute',
hour: 'Hour', hour: 'Hour',
day: 'Day', day: 'Day',
week: 'Week', week: 'Week',
month: 'Month', month: 'Month',
year: 'Year', year: 'Year',
}, },
public : { public : {
specify: 'Specify', specify: 'Specify',
notSpecify: 'Not specify', notSpecify: 'Not specify',
cycle: 'Cycle', cycle: 'Cycle',
from: 'From', from: 'From',
to: 'to', to: 'to',
loop: 'Loop', loop: 'Loop',
every: 'Every', every: 'Every',
once: 'execute once', once: 'execute once',
}, },
second: 'second', second: 'second',
minute: 'minute', minute: 'minute',
hour: { hour: {
title: 'hour', title: 'hour',
everyHour: 'Every hour', everyHour: 'Every hour',
hourStart: "o'clock start, every ", hourStart: "o'clock start, every ",
onceAHour: "o'clock to execute once.", onceAHour: "o'clock to execute once.",
}, },
day: { day: {
title: 'day', title: 'day',
daily: 'Every day', daily: 'Every day',
workDay: 'Working day', workDay: 'Working day',
dayStart: 'rd start, every ', dayStart: 'rd start, every ',
onceADay: 'rd to execute once', onceADay: 'rd to execute once',
thisMonth: 'this month', thisMonth: 'this month',
lastWorkDay: 'rd, Recent working day', lastWorkDay: 'rd, Recent working day',
lastDayOfMonth: 'Last day of the month', lastDayOfMonth: 'Last day of the month',
}, },
month: { month: {
title: 'month', title: 'month',
everyMonth: 'Every month', everyMonth: 'Every month',
monthStart: ' month start, every', monthStart: ' month start, every',
onceAMonth: ' month to execute once', onceAMonth: ' month to execute once',
}, },
week: { week: {
title: 'week', title: 'week',
everyWeek: 'Every week', everyWeek: 'Every week',
from: '', from: '',
to: 'from weekday', to: 'from weekday',
start: 'start, every', start: 'start, every',
onceADay: 'days to execute once', onceADay: 'days to execute once',
specifyWeek: 'Specify week', specifyWeek: 'Specify week',
weekOfMonth: 'this month', weekOfMonth: 'this month',
weekWeek: 'week, weekday', weekWeek: 'week, weekday',
lastOfMonth: 'Last of the month', lastOfMonth: 'Last of the month',
week: 'weekday', week: 'weekday',
}, },
year: { year: {
title: 'year', title: 'year',
everyYear: 'Every year', everyYear: 'Every year',
}, },
message: { message: {
error1: 'Date and day of the week cannot be "not specified" at the same time', error1: 'Date and day of the week cannot be "not specified" at the same time',
error2: 'Both the date and the day of the week must be "not specified"', error2: 'Both the date and the day of the week must be "not specified"',
}, },
},
appMessagePopover: {
loadMore: 'Load more',
noMore: 'No more'
} }
}; };
\ No newline at end of file
...@@ -262,68 +262,72 @@ export default { ...@@ -262,68 +262,72 @@ export default {
}, },
cronEditor: { cronEditor: {
label: { label: {
second: '秒', second: '秒',
minute: '分', minute: '分',
hour: '时', hour: '时',
day: '日', day: '日',
week: '周', week: '周',
month: '月', month: '月',
year: '年', year: '年',
}, },
public : { public : {
specify: '指定', specify: '指定',
notSpecify: '不指定', notSpecify: '不指定',
cycle: '周期', cycle: '周期',
from: '从', from: '从',
to: '至', to: '至',
loop: '循环', loop: '循环',
every: '每', every: '每',
once: '执行一次', once: '执行一次',
}, },
second: '秒', second: '秒',
minute: '分', minute: '分',
hour: { hour: {
title: '时', title: '时',
everyHour: '每时', everyHour: '每时',
hourStart: '时开始,每', hourStart: '时开始,每',
onceAHour: '时执行一次', onceAHour: '时执行一次',
}, },
day: { day: {
title: '日', title: '日',
daily: '每日', daily: '每日',
workDay: '工作日', workDay: '工作日',
dayStart: '日开始,每', dayStart: '日开始,每',
onceADay: '日执行一次', onceADay: '日执行一次',
thisMonth: '本月', thisMonth: '本月',
lastWorkDay: '号,最近的工作日', lastWorkDay: '号,最近的工作日',
lastDayOfMonth: '本月最后一天', lastDayOfMonth: '本月最后一天',
}, },
month: { month: {
title: '月', title: '月',
everyMonth: '每月', everyMonth: '每月',
monthStart: '月开始,每', monthStart: '月开始,每',
onceAMonth: '月执行一次', onceAMonth: '月执行一次',
}, },
week: { week: {
title: '周', title: '周',
everyWeek: '每周', everyWeek: '每周',
from: '从星期', from: '从星期',
to: '至星期', to: '至星期',
start: '开始,每', start: '开始,每',
onceADay: '天执行一次', onceADay: '天执行一次',
specifyWeek: '指定周', specifyWeek: '指定周',
weekOfMonth: '本月第', weekOfMonth: '本月第',
weekWeek: '周,星期', weekWeek: '周,星期',
lastOfMonth: '本月最后一个', lastOfMonth: '本月最后一个',
week: '星期', week: '星期',
}, },
year: { year: {
title: '年', title: '年',
everyYear: '每年', everyYear: '每年',
}, },
message: { message: {
error1: '日期与星期不可以同时为“不指定”', error1: '日期与星期不可以同时为“不指定”',
error2: '日期与星期必须有一个为“不指定”', error2: '日期与星期必须有一个为“不指定”',
}, },
},
appMessagePopover: {
loadMore: '加载更多',
noMore: '没有更多了'
} }
}; };
\ No newline at end of file
...@@ -11,7 +11,7 @@ export class FormButtonModel extends FormDetailModel { ...@@ -11,7 +11,7 @@ export class FormButtonModel extends FormDetailModel {
constructor(opts: any = {}) { constructor(opts: any = {}) {
super(opts); super(opts);
this.disabled = opts.disabled; this.$disabled = opts.disabled;
this.uiaction = opts.uiaction; this.uiaction = opts.uiaction;
} }
...@@ -21,7 +21,7 @@ export class FormButtonModel extends FormDetailModel { ...@@ -21,7 +21,7 @@ export class FormButtonModel extends FormDetailModel {
* @type {boolean} * @type {boolean}
* @memberof FormButtonModel * @memberof FormButtonModel
*/ */
public disabled:boolean = false; private $disabled:boolean = false;
/** /**
* 按钮对应的界面行为 * 按钮对应的界面行为
...@@ -31,4 +31,26 @@ export class FormButtonModel extends FormDetailModel { ...@@ -31,4 +31,26 @@ export class FormButtonModel extends FormDetailModel {
*/ */
public uiaction:any; public uiaction:any;
/**
* 是否启用
*
* @type {boolean}
* @memberof FormButtonModel
*/
public get disabled(): boolean {
return this.$disabled;
}
/**
* 设置是否启用
*
* @memberof FormButtonModel
*/
public set disabled(val: boolean) {
if(this.isPower) {
this.$disabled = val;
}
}
} }
\ No newline at end of file
...@@ -6,6 +6,14 @@ ...@@ -6,6 +6,14 @@
*/ */
export class FormDetailModel { export class FormDetailModel {
/**
* 是否有权限
*
* @type {boolean}
* @memberof FormDetailModel
*/
public isPower: boolean = true;
/** /**
* 成员标题 * 成员标题
* *
...@@ -44,7 +52,7 @@ export class FormDetailModel { ...@@ -44,7 +52,7 @@ export class FormDetailModel {
* @type {boolean} * @type {boolean}
* @memberof FormDetailModel * @memberof FormDetailModel
*/ */
public visible: boolean = true; public $visible: boolean = true;
/** /**
* 成员是否显示(旧) * 成员是否显示(旧)
...@@ -83,12 +91,33 @@ export class FormDetailModel { ...@@ -83,12 +91,33 @@ export class FormDetailModel {
this.detailType = !Object.is(opts.detailType, '') ? opts.detailType : ''; this.detailType = !Object.is(opts.detailType, '') ? opts.detailType : '';
this.form = opts.form ? opts.form : {}; this.form = opts.form ? opts.form : {};
this.name = !Object.is(opts.name, '') ? opts.name : ''; this.name = !Object.is(opts.name, '') ? opts.name : '';
this.visible = opts.visible ? true : false; this.$visible = opts.visible ? true : false;
this.oldVisible = opts.visible ? true : false; this.oldVisible = opts.visible ? true : false;
this.isShowCaption = opts.isShowCaption ? true : false; this.isShowCaption = opts.isShowCaption ? true : false;
this.isControlledContent = opts.isControlledContent ? true : false; this.isControlledContent = opts.isControlledContent ? true : false;
} }
/**
* 设置成员是否隐藏
*
* @memberof FormDetailModel
*/
public set visible(val: boolean) {
if(this.isPower) {
this.$visible = val;
}
}
/**
* 获取成员是否隐藏
*
* @memberof FormDetailModel
*/
public get visible() {
return this.$visible;
}
/** /**
* 设置显示与隐藏 * 设置显示与隐藏
* *
...@@ -96,7 +125,9 @@ export class FormDetailModel { ...@@ -96,7 +125,9 @@ export class FormDetailModel {
* @memberof FormDetailModel * @memberof FormDetailModel
*/ */
public setVisible(state: boolean): void { public setVisible(state: boolean): void {
this.visible = state; if(this.isPower) {
this.visible = state;
}
} }
/** /**
......
...@@ -829,6 +829,32 @@ export default class EntityService { ...@@ -829,6 +829,32 @@ export default class EntityService {
return Http.getInstance().get(`/wfcore/${this.SYSTEMNAME}-app-${this.APPNAME}/${this.APPDENAME}/${context[this.APPLYDEKEY]}/usertasks/${data['taskDefinitionKey']}/ways`); return Http.getInstance().get(`/wfcore/${this.SYSTEMNAME}-app-${this.APPNAME}/${this.APPDENAME}/${context[this.APPLYDEKEY]}/usertasks/${data['taskDefinitionKey']}/ways`);
} }
/**
* GetWFLinks接口方法(根据当前步骤和任务获取批量操作路径)
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof EntityService
*/
public async getWFLinks(context: any = {},data: any = {}, isloading?: boolean):Promise<any>{
return Http.getInstance().get(`/wfcore/${this.SYSTEMNAME}-app-${this.APPNAME}/${this.APPDENAME}/process-definitions/${data['processDefinitionKey']}/usertasks/${data['userTaskId']}/ways`);
}
/**
* wfSubmitBatch接口方法(批量提交)
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof EntityService
*/
public async wfSubmitBatch(context: any = {},data: any = {},localdata:any,isloading?: boolean):Promise<any>{
return Http.getInstance().post(`/wfcore/${this.SYSTEMNAME}-app-${this.APPNAME}/${this.APPDENAME}/process-definitions/${localdata['processDefinitionKey']}/usertasks/${localdata['taskDefinitionKey']}/ways/${localdata['sequenceFlowId']}/submit`,data);
}
/** /**
* GetWFHistory接口方法(根据业务主键获取工作流程记录) * GetWFHistory接口方法(根据业务主键获取工作流程记录)
* *
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
@import '../theme/blue.theme.less'; @import '../theme/blue.theme.less';
@import '../theme/dark-blue.theme.less'; @import '../theme/dark-blue.theme.less';
@import '../theme/default.theme.less'; @import '../theme/default.theme.less';
@import './app-code-list.less';
@import './var.css'; @import './var.css';
.ibiz-page-tag .tags-body .tags-container .ivu-tag.tag-is-active .ivu-tag-text { .ibiz-page-tag .tags-body .tags-container .ivu-tag.tag-is-active .ivu-tag-text {
......
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
<strong>We're sorry but app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> <strong>We're sorry but app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript> </noscript>
<div id="app"></div> <div id="app"></div>
<!-- <link rel="stylesheet" href="<%= BASE_URL %>assets/styles/loader.css"> <script src="./environments/environment.js"></script>
<div class="loader" id="app-loader"></div> -->
<!-- built files will be auto injected -->
</body> </body>
</html> </html>
...@@ -119,8 +119,12 @@ export class StudioActionUtil { ...@@ -119,8 +119,12 @@ export class StudioActionUtil {
}, '*'); }, '*');
Vue.prototype.$message.warning('请在已打开的配置平台查看!'); Vue.prototype.$message.warning('请在已打开的配置平台查看!');
} else { } else {
console.log(`${Environment.StudioUrl}?ov=${JSON.stringify(params)}#/common_slnindex/srfkeys=${Environment.SlnId}/sysdesign_psdevslnsysmodeltreeexpview/srfkey=${Environment.SysId}`); if(Environment.debugOpenMode === 'sln'){
this.studioWin = window.open(`${Environment.StudioUrl}?ov=${encodeURIComponent(JSON.stringify(params))}#/common_slnindex/srfkeys=${Environment.SlnId}/sysdesign_psdevslnsysmodeltreeexpview/srfkey=${Environment.SysId}`, '_blank'); console.log("打开sln未支持");
// this.studioWin = window.open(`${Environment.StudioUrl}?ov=${encodeURIComponent(JSON.stringify(params))}#/common_slnindex/srfkeys=${Environment.SlnId}/sysdesign_psdevslnsysmodeltreeexpview/srfkey=${Environment.SysId}`, '_blank');
}else{
this.studioWin = window.open(`${Environment.StudioUrl}?ov=${encodeURIComponent(JSON.stringify(params))}#/common_mosindex/srfkeys=${Environment.SysId}`, '_blank');
}
} }
} }
} }
......
...@@ -252,9 +252,10 @@ export class ViewTool { ...@@ -252,9 +252,10 @@ export class ViewTool {
* @memberof ViewTool * @memberof ViewTool
*/ */
public static calcActionItemAuthState(data:any,ActionModel:any,UIService:any){ public static calcActionItemAuthState(data:any,ActionModel:any,UIService:any){
let result: any[] = [];
for (const key in ActionModel) { for (const key in ActionModel) {
if (!ActionModel.hasOwnProperty(key)) { if (!ActionModel.hasOwnProperty(key)) {
return; return result;
} }
const _item = ActionModel[key]; const _item = ActionModel[key];
if(_item && _item['dataaccaction'] && UIService){ if(_item && _item['dataaccaction'] && UIService){
...@@ -282,7 +283,9 @@ export class ViewTool { ...@@ -282,7 +283,9 @@ export class ViewTool {
_item.visabled = true; _item.visabled = true;
_item.disabled = false; _item.disabled = false;
} }
result.push(dataActionResult);
} }
} }
return result;
} }
} }
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册