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

ibiz4j 发布系统代码

上级 36f2767c
......@@ -24,7 +24,7 @@ export default class AuthService {
* @type {(any)}
* @memberof AuthService
*/
public defaultOPPrivs: any = { UPDATE: 1, CREATE: 1, READ: 1, DELETE: 1 };
public defaultOPPrivs: any = { UPDATE: 1, CREATE: 1, READ: 1, DELETE: 1, WFSTART:1,DENY:1,NONE:1 };
/**
* Creates an instance of AuthService.
......
import AuthService from '../auth-service';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
/**
* 角色/用户组权限服务对象基类
......@@ -10,13 +9,6 @@ import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
*/
export default class WFGroupAuthServiceBase extends AuthService {
/**
* 所依赖UI服务
*
* @memberof WFGroupAuthServiceBase
*/
public wfgroupUIService:any;
/**
* Creates an instance of WFGroupAuthServiceBase.
*
......@@ -25,18 +17,16 @@ export default class WFGroupAuthServiceBase extends AuthService {
*/
constructor(opts: any = {}) {
super(opts);
this.wfgroupUIService = new WFGroupUIService(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} data 传入数据
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof WFGroupAuthServiceBase
*/
public getOPPrivs(data:any):any{
let mainSateOPPrivs:any = this.wfgroupUIService.getDEMainStateOPPrivs(data);
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = JSON.parse(JSON.stringify(this.defaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
......
import AuthService from '../auth-service';
import WFMemberUIService from '@/uiservice/wfmember/wfmember-ui-service';
/**
* 成员权限服务对象基类
......@@ -10,13 +9,6 @@ import WFMemberUIService from '@/uiservice/wfmember/wfmember-ui-service';
*/
export default class WFMemberAuthServiceBase extends AuthService {
/**
* 所依赖UI服务
*
* @memberof WFMemberAuthServiceBase
*/
public wfmemberUIService:any;
/**
* Creates an instance of WFMemberAuthServiceBase.
*
......@@ -25,18 +17,16 @@ export default class WFMemberAuthServiceBase extends AuthService {
*/
constructor(opts: any = {}) {
super(opts);
this.wfmemberUIService = new WFMemberUIService(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} data 传入数据
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof WFMemberAuthServiceBase
*/
public getOPPrivs(data:any):any{
let mainSateOPPrivs:any = this.wfmemberUIService.getDEMainStateOPPrivs(data);
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = JSON.parse(JSON.stringify(this.defaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
......
import AuthService from '../auth-service';
import WFProcessDefinitionUIService from '@/uiservice/wfprocess-definition/wfprocess-definition-ui-service';
/**
* 流程定义权限服务对象基类
......@@ -10,13 +9,6 @@ import WFProcessDefinitionUIService from '@/uiservice/wfprocess-definition/wfpro
*/
export default class WFProcessDefinitionAuthServiceBase extends AuthService {
/**
* 所依赖UI服务
*
* @memberof WFProcessDefinitionAuthServiceBase
*/
public wfprocessdefinitionUIService:any;
/**
* Creates an instance of WFProcessDefinitionAuthServiceBase.
*
......@@ -25,18 +17,16 @@ export default class WFProcessDefinitionAuthServiceBase extends AuthService {
*/
constructor(opts: any = {}) {
super(opts);
this.wfprocessdefinitionUIService = new WFProcessDefinitionUIService(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} data 传入数据
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof WFProcessDefinitionAuthServiceBase
*/
public getOPPrivs(data:any):any{
let mainSateOPPrivs:any = this.wfprocessdefinitionUIService.getDEMainStateOPPrivs(data);
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = JSON.parse(JSON.stringify(this.defaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
......
import AuthService from '../auth-service';
import WFREModelUIService from '@/uiservice/wfremodel/wfremodel-ui-service';
/**
* 流程模型权限服务对象基类
......@@ -10,13 +9,6 @@ import WFREModelUIService from '@/uiservice/wfremodel/wfremodel-ui-service';
*/
export default class WFREModelAuthServiceBase extends AuthService {
/**
* 所依赖UI服务
*
* @memberof WFREModelAuthServiceBase
*/
public wfremodelUIService:any;
/**
* Creates an instance of WFREModelAuthServiceBase.
*
......@@ -25,18 +17,16 @@ export default class WFREModelAuthServiceBase extends AuthService {
*/
constructor(opts: any = {}) {
super(opts);
this.wfremodelUIService = new WFREModelUIService(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} data 传入数据
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof WFREModelAuthServiceBase
*/
public getOPPrivs(data:any):any{
let mainSateOPPrivs:any = this.wfremodelUIService.getDEMainStateOPPrivs(data);
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = JSON.parse(JSON.stringify(this.defaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
......
import AuthService from '../auth-service';
import WFSystemUIService from '@/uiservice/wfsystem/wfsystem-ui-service';
/**
* 系统权限服务对象基类
......@@ -10,13 +9,6 @@ import WFSystemUIService from '@/uiservice/wfsystem/wfsystem-ui-service';
*/
export default class WFSystemAuthServiceBase extends AuthService {
/**
* 所依赖UI服务
*
* @memberof WFSystemAuthServiceBase
*/
public wfsystemUIService:any;
/**
* Creates an instance of WFSystemAuthServiceBase.
*
......@@ -25,18 +17,16 @@ export default class WFSystemAuthServiceBase extends AuthService {
*/
constructor(opts: any = {}) {
super(opts);
this.wfsystemUIService = new WFSystemUIService(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} data 传入数据
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof WFSystemAuthServiceBase
*/
public getOPPrivs(data:any):any{
let mainSateOPPrivs:any = this.wfsystemUIService.getDEMainStateOPPrivs(data);
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = JSON.parse(JSON.stringify(this.defaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
......
import AuthService from '../auth-service';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
/**
* 用户权限服务对象基类
......@@ -10,13 +9,6 @@ import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
*/
export default class WFUserAuthServiceBase extends AuthService {
/**
* 所依赖UI服务
*
* @memberof WFUserAuthServiceBase
*/
public wfuserUIService:any;
/**
* Creates an instance of WFUserAuthServiceBase.
*
......@@ -25,18 +17,16 @@ export default class WFUserAuthServiceBase extends AuthService {
*/
constructor(opts: any = {}) {
super(opts);
this.wfuserUIService = new WFUserUIService(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} data 传入数据
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof WFUserAuthServiceBase
*/
public getOPPrivs(data:any):any{
let mainSateOPPrivs:any = this.wfuserUIService.getDEMainStateOPPrivs(data);
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = JSON.parse(JSON.stringify(this.defaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
......
......@@ -27,7 +27,7 @@
</a>
<dropdown-menu slot='list' v-if="uiActionGroup.details && Array.isArray(uiActionGroup.details)">
<dropdown-item v-for="(detail,index) in (uiActionGroup.details)" :key="index" :name="detail.name">
<span class='item' @click="doUIAction($event, detail)">
<span class='item' v-show="detail.visabled" :style="{'pointer-events':detail.disabled?'none':'auto'}" @click="doUIAction($event, detail)">
<template v-if="detail.isShowIcon">
<template v-if="detail.icon && !Object.is(detail.icon, '')">
<i :class="detail.icon" ></i>
......@@ -58,7 +58,7 @@
<span class='item-extract-mode'>
<template v-if="uiActionGroup.details && Array.isArray(uiActionGroup.details)">
<div v-for="(detail,index) in uiActionGroup.details" :key="index">
<span class='item' @click="doUIAction($event, detail)">
<span v-show="detail.visabled" :style="{'pointer-events':detail.disabled?'none':'auto'}" class='item' @click="doUIAction($event, detail)">
<template v-if="detail.isShowIcon">
<template v-if="detail.icon && !Object.is(detail.icon, '')">
<i :class="detail.icon" ></i>
......@@ -107,7 +107,7 @@
</template>
<script lang="ts">
import { Vue, Component, Prop } from 'vue-property-decorator';
import { Vue, Component, Prop, Watch } from 'vue-property-decorator';
@Component({})
export default class AppFormGroup extends Vue {
......@@ -120,6 +120,69 @@ export default class AppFormGroup extends Vue {
*/
@Prop() public caption?: string;
/**
* 注入的UI服务
*
* @type {*}
* @memberof AppFormGroup
*/
@Prop() public uiService!: any;
/**
* 注入数据
*
* @type {*}
* @memberof AppFormGroup
*/
@Prop() public data!: any;
/**
* 监听值变化
*
* @memberof AppFormGroup
*/
@Watch('data')
onSrfupdatedateChange(newVal: any, oldVal: any) {
if((newVal !== oldVal) && this.uiActionGroup.details.length >0){
this.calcActionItemAuthState(newVal,this.uiActionGroup.details,this.uiService);
}
}
/**
* 计算界面行为项权限状态
*
* @param {*} [data] 传入数据
* @param {*} [ActionModel] 界面行为模型
* @param {*} [UIService] 界面行为服务
* @memberof AppFormGroup
*/
public calcActionItemAuthState(data:any,ActionModel:any,UIService:any){
for (const key in ActionModel) {
if (!ActionModel.hasOwnProperty(key)) {
return;
}
const _item = ActionModel[key];
if(_item && _item['dataaccaction'] && UIService && data && Object.keys(data).length >0){
let dataActionResult:any = UIService.getAllOPPrivs(data)[_item['dataaccaction']];
// 无权限:0;有权限:1
if(!dataActionResult){
// 禁用:1;隐藏:2;隐藏且默认隐藏:6
if(_item.noprivdisplaymode === 1){
_item.disabled = true;
}
if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){
_item.visabled = false;
}else{
_item.visabled = true;
}
}else{
_item.visabled = true;
_item.disabled = false;
}
}
}
}
/**
* 是否为管理容器
*
......
.ivu-dropdown{
cursor: pointer;
}
\ No newline at end of file
......@@ -330,6 +330,11 @@ export default class AppRichTextEditor extends Vue {
this.uploadUrl = _url;
richtexteditor.uploadFile(_url, formData).subscribe((file: any) => {
let downloadUrl = richtexteditor.downloadUrl;
if (file.filename) {
const id: string = file.fileid;
const url: string = `${downloadUrl}/${id}`
success(url);
}
if (this.export_params.length > 0) {
downloadUrl +='?';
this.export_params.forEach((item:any,i:any)=>{
......@@ -339,11 +344,6 @@ export default class AppRichTextEditor extends Vue {
}
})
}
if (file.filename) {
const id: string = file.fileid;
const url: string = `${downloadUrl}/${id}`
success(url);
}
}, (error: any) => {
console.log(error);
failure('HTTP Error: ' + error.status);
......
......@@ -76,6 +76,7 @@ export default class AppSlider extends Vue {
*/
@Watch('value')
public onValueChange(newVal: any, oldVal: any) {
newVal = (newVal === null) ? 0 : newVal;
this.currentVal = parseInt(newVal);
}
......
<template>
<el-select size="small" class="filter-mode" :placeholder="$t('components.filterMode.placeholder')" v-model="curVal" @change="onChange">
<el-option
v-for="mode in filterMode"
v-for="mode in fieldFilterMode"
:key="mode.value"
:label="getLabel(mode)"
:value="mode.value"
......@@ -11,7 +11,7 @@
</template>
<script lang="ts">
import { Vue, Component, Model } from "vue-property-decorator";
import { Vue, Component, Model, Prop, Watch } from "vue-property-decorator";
@Component({})
export default class FilterMode extends Vue {
......@@ -24,6 +24,19 @@ export default class FilterMode extends Vue {
*/
@Model('change') readonly value: any;
/**
* 自定义逻辑集合
*
* @type {*}
* @memberof FilterMode
*/
@Prop() modes!: any[];
@Watch('modes')
onModesChange(newVal: any) {
this.setDefValue();
}
get curVal() {
return this.value;
}
......@@ -34,6 +47,21 @@ export default class FilterMode extends Vue {
this.$emit('change', val);
}
get fieldFilterMode() {
if(this.modes && this.modes.length > 0) {
let index: number = this.modes.findIndex((mode: any) => Object.is(mode.mode, 'all'));
if(index < 0) {
let items: any[] = [];
this.modes.forEach((mode: any) => {
let item: any = this.filterMode.find((filter: any) => Object.is(filter['en-US'], mode.mode));
items.push(item);
})
return items;
}
}
return this.filterMode;
}
/**
* 过滤模式
*
......@@ -44,13 +72,13 @@ export default class FilterMode extends Vue {
// { name: 'AND', value: '$and' },
// { name: 'OR', value: '$or' },
{ 'zh-CN': '等于(=)', 'en-US': 'EQ', value: '$eq' },
{ 'zh-CN': '不等于(<>)', 'en-US': 'NE', value: '$ne' },
{ 'zh-CN': '不等于(<>)', 'en-US': 'NOTEQ', value: '$ne' },
{ 'zh-CN': '大于(>)', 'en-US': 'GT', value: '$gt' },
{ 'zh-CN': '大于等于(>=)', 'en-US': 'GE', value: '$gte' },
{ 'zh-CN': '大于等于(>=)', 'en-US': 'GTANDEQ', value: '$gte' },
{ 'zh-CN': '小于(<)', 'en-US': 'LT', value: '$lt' },
{ 'zh-CN': '小于(<=)', 'en-US': 'LE', value: '$lte' },
{ 'zh-CN': '值为空(Nil)', 'en-US': 'IS_NULL', value: '$null' },
{ 'zh-CN': '值不为空(NotNil)', 'en-US': 'IS_NOT_NULL', value: '$notNull' },
{ 'zh-CN': '小于等于(<=)', 'en-US': 'LTANDEQ', value: '$lte' },
{ 'zh-CN': '值为空(Nil)', 'en-US': 'ISNULL', value: '$null' },
{ 'zh-CN': '值不为空(NotNil)', 'en-US': 'ISNOTNULL', value: '$notNull' },
{ 'zh-CN': '值在范围中(In)', 'en-US': 'IN', value: '$in' },
{ 'zh-CN': '值不在范围中(NotIn)', 'en-US': 'NOTIN', value: '$notIn' },
{ 'zh-CN': '文本包含(%)', 'en-US': 'LIKE', value: '$like' },
......@@ -60,13 +88,37 @@ export default class FilterMode extends Vue {
// { 'zh-CN': '', en: 'NOTEXISTS', value: '$notExists' }
];
/**
* 生命周期
*
* @return {void}
* @memberof FilterMode
*/
public mounted() {
this.setDefValue()
}
/**
* 设置默认值
*
* @return {void}
* @memberof FilterMode
*/
public setDefValue() {
if(this.fieldFilterMode.length > 0) {
this.curVal = this.fieldFilterMode[0].value;
this.onChange();
}
}
/**
* 获取语言文本
*
* @return {string}
* @memberof FilterMode
*/
getLabel(mode: any): string {
public getLabel(mode: any): string {
if(this.$i18n.locale) {
return mode[this.$i18n.locale];
}
......@@ -79,7 +131,16 @@ export default class FilterMode extends Vue {
* @memberof FilterMode
*/
public onChange() {
this.$emit('mode-change', this.value);
this.$nextTick(() => {
let item: any = this.filterMode.find((filter: any) => Object.is(filter.value, this.curVal));
if(this.modes && this.modes.length > 0) {
let mode: any = this.modes.find((mode: any) => Object.is(mode.mode, item['en-US']));
if(!mode) {
mode = this.modes.find((mode: any) => Object.is(mode.mode, 'all'));
}
this.$emit('on-change', mode);
}
})
}
}
......
......@@ -15,18 +15,20 @@
</template>
<template v-else>
<div class="filter-tree-item">
<el-select size="small" class="filter-item-field" v-model="data.field" clearable :placeholder="$t('components.filterTree.placeholder')" @change="onFieldChange(data)">
<el-select size="small" class="filter-item-field" v-model="data.field" clearable :placeholder="$t('components.filterTree.placeholder')">
<el-option
v-for="item in fields"
:key="item.prop"
v-for="item in fieldItems"
:key="item.value"
:label="item.label"
:value="item.name">
:value="item.value">
</el-option>
</el-select>
<filter-mode class="filter-item-mode" v-model="data.mode"></filter-mode>
<filter-mode class="filter-item-mode" v-model="data.mode" :modes="getModes(data.field)" @on-change="onModeChange($event, data)"></filter-mode>
<div class="filter-item-value">
<i-input v-if="!data.field"></i-input>
<slot v-else :data="data"></slot>
<i-input v-if="!data.editor"></i-input>
<div v-else :key="data.editor">
<slot :data="data"></slot>
</div>
</div>
<div class="filter-tree-action">
<icon type="md-close" @click="onRemoveItem(node, data)"/>
......@@ -64,6 +66,14 @@ export default class FilterTree extends Vue {
*/
@Prop() fields: any;
/**
* 属性项集合
*
* @type {*}
* @memberof FilterTree
*/
protected fieldItems: any[] = [];
/**
* 组条件集合
*
......@@ -93,29 +103,77 @@ export default class FilterTree extends Vue {
return [root];
}
/**
* 获取语言文本
* 生命周期
*
* @return {string}
* @return {void}
* @memberof FilterTree
*/
getLabel(mode: any): string {
if(this.$i18n.locale) {
return mode[this.$i18n.locale];
public created() {
if(!this.fields) {
return;
}
return mode['zh-CN'];
this.fields.forEach((field: any) => {
let index: number = this.fieldItems.findIndex((item: any) => Object.is(item.value, field.prop));
if(index < 0) {
this.fieldItems.push({
label: field.label,
value: field.prop,
modes: this.getFieldModes(field.prop)
})
}
});
}
/**
* 属性变化
* 获取逻辑模式集合
*
* @return {*}
* @return {void}
* @memberof FilterTree
*/
public getModes(field: string) {
if(this.fieldItems.length > 0) {
let item: any = this.fieldItems.find((item: any) => Object.is(item.value, field));
if(item) {
return item.modes;
}
}
return [];
}
/**
* 获取属性逻辑模式集合
*
* @return {void}
* @memberof FilterTree
*/
public onFieldChange(data: any) {
if(!data.mode) {
data.mode = '$eq';
public getFieldModes(name: string) {
let modes: any[] = [];
for(let i = 0; i < this.fields.length; i++) {
let field: any = this.fields[i];
if(!Object.is(field.prop, name)) {
continue;
}
modes.push({
name: field.name,
mode: field.mode ? field.mode : 'all'
})
}
return modes;
}
/**
* 获取语言文本
*
* @return {string}
* @memberof FilterTree
*/
getLabel(mode: any): string {
if(this.$i18n.locale) {
return mode[this.$i18n.locale];
}
return mode['zh-CN'];
}
/**
......@@ -128,7 +186,8 @@ export default class FilterTree extends Vue {
if(data && data.children) {
data.children.push({
field: null,
mode: null
mode: null,
editor: null
});
}
}
......@@ -162,6 +221,18 @@ export default class FilterTree extends Vue {
}
}
}
/**
* 条件逻辑变化
*
* @return {*}
* @memberof FilterTree
*/
public onModeChange(mode: any, data: any) {
if(mode && data) {
data.editor = mode.name;
}
}
}
</script>
......
......@@ -398,8 +398,8 @@ export default class MDViewEngine extends ViewEngine {
if (this.getSearchForm() && this.view.isExpandSearchForm) {
Object.assign(arg, this.getSearchForm().getData());
}
if (this.view && this.view.searchbar) {
Object.assign(arg, this.view.searchbar.getData());
if (this.view && this.view.$refs.searchbar && this.view.isExpandSearchForm) {
Object.assign(arg, this.view.$refs.searchbar.getData());
}
if (this.view && !this.view.isExpandSearchForm) {
Object.assign(arg, { query: this.view.query });
......
......@@ -190,8 +190,8 @@ export default class ViewEngine {
return;
}
const _item = _this.view.toolBarModels[key];
if(_item && _item['dataaccaction'] && _this.view.appAuthService && data && Object.keys(data).length >0){
let dataActionResult:any = _this.view.appAuthService.getOPPrivs(data)[_item['dataaccaction']];
if(_item && _item['dataaccaction'] && _this.view.appUIService && data && Object.keys(data).length >0){
let dataActionResult:any = _this.view.appUIService.getAllOPPrivs(data)[_item['dataaccaction']];
// 无权限:0;有权限:1
if(!dataActionResult){
// 禁用:1;隐藏:2;隐藏且默认隐藏:6
......
......@@ -7,6 +7,10 @@ export default {
groupname: "用户组",
userid: "用户标识",
personname: "用户",
orgid: "单位",
orgname: "单位",
mdeptid: "主部门",
mdeptname: "主部门",
},
views: {
gridview: {
......@@ -32,6 +36,9 @@ export default {
groupid: "组标识",
userid: "用户标识",
personname: "用户",
orgname: "单位",
mdeptname: "主部门",
groupname: "用户组",
memberid: "组成员标识",
},
uiactions: {
......@@ -40,6 +47,8 @@ export default {
main_grid: {
columns: {
personname: "用户",
orgname: "单位",
mdeptname: "主部门",
groupname: "用户组",
},
uiactions: {
......
......@@ -6,6 +6,10 @@ export default {
groupname: "用户组",
userid: "用户标识",
personname: "用户",
orgid: "单位",
orgname: "单位",
mdeptid: "主部门",
mdeptname: "主部门",
},
views: {
gridview: {
......@@ -31,6 +35,9 @@ export default {
groupid: "组标识",
userid: "用户标识",
personname: "用户",
orgname: "单位",
mdeptname: "主部门",
groupname: "用户组",
memberid: "组成员标识",
},
uiactions: {
......@@ -39,6 +46,8 @@ export default {
main_grid: {
columns: {
personname: "用户",
orgname: "单位",
mdeptname: "主部门",
groupname: "用户组",
},
uiactions: {
......
......@@ -4,6 +4,13 @@ export default {
id: "用户标识",
firstname: "用户全局名",
displayname: "用户名称",
mdeptid: "主部门",
mdeptcode: "主部门代码",
mdeptname: "主部门名称",
bcode: "业务编码",
orgid: "单位",
orgcode: "单位代码",
orgname: "单位名称",
},
views: {
mpickupview: {
......@@ -50,6 +57,8 @@ export default {
userid: "用户标识",
personname: "用户名称",
username: "用户全局名",
orgname: "单位名称",
mdeptname: "主部门名称",
},
uiactions: {
},
......
......@@ -3,6 +3,13 @@ export default {
id: "用户标识",
firstname: "用户全局名",
displayname: "用户名称",
mdeptid: "主部门",
mdeptcode: "主部门代码",
mdeptname: "主部门名称",
bcode: "业务编码",
orgid: "单位",
orgcode: "单位代码",
orgname: "单位名称",
},
views: {
mpickupview: {
......@@ -49,6 +56,8 @@ export default {
userid: "用户标识",
personname: "用户名称",
username: "用户全局名",
orgname: "单位名称",
mdeptname: "主部门名称",
},
uiactions: {
},
......
......@@ -129,6 +129,7 @@ import WFGroupAuthService from '@/authservice/wfgroup/wfgroup-auth-service';
import EditViewEngine from '@engine/view/edit-view-engine';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
@Component({
components: {
......@@ -147,10 +148,10 @@ export default class WFGroupEditViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFGroupAuthService}
* @type WFGroupUIService
* @memberof WFGroupEditViewBase
*/
public appAuthService: WFGroupAuthService = new WFGroupAuthService(this.$store);
public appUIService: WFGroupUIService = new WFGroupUIService(this.$store);
/**
......
......@@ -156,6 +156,7 @@ import WFGroupAuthService from '@/authservice/wfgroup/wfgroup-auth-service';
import GridViewEngine from '@engine/view/grid-view-engine';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
import CodeListService from "@service/app/codelist-service";
......@@ -176,10 +177,10 @@ export default class WFGroupGridViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFGroupAuthService}
* @type WFGroupUIService
* @memberof WFGroupGridViewBase
*/
public appAuthService: WFGroupAuthService = new WFGroupAuthService(this.$store);
public appUIService: WFGroupUIService = new WFGroupUIService(this.$store);
/**
......@@ -1222,16 +1223,28 @@ export default class WFGroupGridViewBase extends Vue {
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'wfgroups', parameterName: 'wfgroup' },
{ pathName: 'editview', parameterName: 'editview' },
];
const _this: any = this;
const openIndexViewTab = (data: any) => {
const _data: any = { w: (new Date().getTime()) };
Object.assign(_data, data);
const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, _data);
this.$router.push(routePath);
const openDrawer = (view: any, data: any) => {
let container: Subject<any> = this.$appdrawer.openDrawer(view, tempContext, data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
}
openIndexViewTab(data);
const view: any = {
viewname: 'wfgroup-edit-view',
height: 0,
width: 0,
title: this.$t('entities.wfgroup.views.editview.title'),
placement: 'DRAWER_RIGHT',
};
openDrawer(view, data);
}
......@@ -1263,14 +1276,28 @@ export default class WFGroupGridViewBase extends Vue {
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'wfgroups', parameterName: 'wfgroup' },
{ pathName: 'editview', parameterName: 'editview' },
];
const _this: any = this;
const openIndexViewTab = (data: any) => {
const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, data);
this.$router.push(routePath);
const openDrawer = (view: any, data: any) => {
let container: Subject<any> = this.$appdrawer.openDrawer(view, tempContext, data);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
}
openIndexViewTab(data);
const view: any = {
viewname: 'wfgroup-edit-view',
height: 0,
width: 0,
title: this.$t('entities.wfgroup.views.editview.title'),
placement: 'DRAWER_RIGHT',
};
openDrawer(view, data);
}
......
......@@ -74,6 +74,7 @@ import WFGroupAuthService from '@/authservice/wfgroup/wfgroup-auth-service';
import MPickupViewEngine from '@engine/view/mpickup-view-engine';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
@Component({
components: {
......@@ -92,10 +93,10 @@ export default class WFGroupMPickupViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFGroupAuthService}
* @type WFGroupUIService
* @memberof WFGroupMPickupViewBase
*/
public appAuthService: WFGroupAuthService = new WFGroupAuthService(this.$store);
public appUIService: WFGroupUIService = new WFGroupUIService(this.$store);
/**
......
......@@ -56,6 +56,7 @@ import WFGroupAuthService from '@/authservice/wfgroup/wfgroup-auth-service';
import PickupGridViewEngine from '@engine/view/pickup-grid-view-engine';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
@Component({
components: {
......@@ -74,10 +75,10 @@ export default class WFGroupPickupGridViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFGroupAuthService}
* @type WFGroupUIService
* @memberof WFGroupPickupGridViewBase
*/
public appAuthService: WFGroupAuthService = new WFGroupAuthService(this.$store);
public appUIService: WFGroupUIService = new WFGroupUIService(this.$store);
/**
......
......@@ -41,6 +41,7 @@ import WFGroupAuthService from '@/authservice/wfgroup/wfgroup-auth-service';
import PickupViewEngine from '@engine/view/pickup-view-engine';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
@Component({
components: {
......@@ -59,10 +60,10 @@ export default class WFGroupPickupViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFGroupAuthService}
* @type WFGroupUIService
* @memberof WFGroupPickupViewBase
*/
public appAuthService: WFGroupAuthService = new WFGroupAuthService(this.$store);
public appUIService: WFGroupUIService = new WFGroupUIService(this.$store);
/**
......
......@@ -10,6 +10,7 @@ export const PageComponents = {
Vue.component('wfuser-mpickup-view', () => import('@pages/workflow/wfuser-mpickup-view/wfuser-mpickup-view.vue'));
Vue.component('wfgroup-mpickup-view', () => import('@pages/workflow/wfgroup-mpickup-view/wfgroup-mpickup-view.vue'));
Vue.component('wfmember-grid-view', () => import('@pages/workflow/wfmember-grid-view/wfmember-grid-view.vue'));
Vue.component('wfgroup-pickup-view', () => import('@pages/workflow/wfgroup-pickup-view/wfgroup-pickup-view.vue'));
Vue.component('wfgroup-edit-view', () => import('@pages/workflow/wfgroup-edit-view/wfgroup-edit-view.vue'));
Vue.component('wfprocess-definition-edit-view', () => import('@pages/workflow/wfprocess-definition-edit-view/wfprocess-definition-edit-view.vue'));
}
......
......@@ -235,6 +235,20 @@ const router = new Router({
},
component: () => import('@pages/workflow/wfmember-grid-view/wfmember-grid-view.vue'),
},
{
path: 'wfgroups/:wfgroup?/pickupview/:pickupview?',
meta: {
caption: 'entities.wfgroup.views.pickupview.title',
info:'',
parameters: [
{ pathName: 'wfindexview', parameterName: 'wfindexview' },
{ pathName: 'wfgroups', parameterName: 'wfgroup' },
{ pathName: 'pickupview', parameterName: 'pickupview' },
],
requireAuth: true,
},
component: () => import('@pages/workflow/wfgroup-pickup-view/wfgroup-pickup-view.vue'),
},
{
path: 'wfgroups/:wfgroup?/editview/:editview?',
meta: {
......@@ -439,6 +453,19 @@ const router = new Router({
},
component: () => import('@pages/workflow/wfgroup-edit-view/wfgroup-edit-view.vue'),
},
{
path: '/wfgroups/:wfgroup?/pickupview/:pickupview?',
meta: {
caption: 'entities.wfgroup.views.pickupview.title',
info:'',
parameters: [
{ pathName: 'wfgroups', parameterName: 'wfgroup' },
{ pathName: 'pickupview', parameterName: 'pickupview' },
],
requireAuth: true,
},
component: () => import('@pages/workflow/wfgroup-pickup-view/wfgroup-pickup-view.vue'),
},
{
path: '/wfremodels/:wfremodel?/editview/:editview?',
meta: {
......
......@@ -700,6 +700,7 @@ export default class WFIndexViewBase extends Vue {
let left_move :any= document.getElementById("left_move");
let right_move :any= document.getElementById("right_move");
let movebox :any= document.getElementById("movebox");
let leftWidth :number = parseInt(left_move.style.width);
move_axis.onmousedown = (e:any) =>{
let startX = e.clientX;
move_axis.left = move_axis.offsetLeft;
......@@ -712,6 +713,15 @@ export default class WFIndexViewBase extends Vue {
move_axis.style.left = moveLen;
left_move.style.width = moveLen + "px";
right_move.style.width = (movebox.clientWidth - moveLen - 5) + "px";
if (moveLen>500) {
left_move.style.width = 500 + 'px';
}
let left_width : number = parseInt(left_move.style.width);
move_axis.style.left = left_width - 5 + 'px';
if (left_width < leftWidth){
move_axis.style.left = leftWidth - 5 + 'px';
}
}
document.onmouseup = (evt) =>{
document.onmousemove = null;
......@@ -721,6 +731,7 @@ export default class WFIndexViewBase extends Vue {
move_axis.setCapture && move_axis.setCapture();
return false;
}
}
}
......
......@@ -105,10 +105,12 @@
}
#move_axis{
position: absolute;
left: 195px;
width: 5px;
height: 100%;
cursor: w-resize;
float: left;
background-color: rgba(255,255,255,0);
}
.index_sider{
flex: none!important;
......
......@@ -129,6 +129,7 @@ import WFMemberAuthService from '@/authservice/wfmember/wfmember-auth-service';
import EditViewEngine from '@engine/view/edit-view-engine';
import WFMemberUIService from '@/uiservice/wfmember/wfmember-ui-service';
@Component({
components: {
......@@ -147,10 +148,10 @@ export default class WFMemberEditViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFMemberAuthService}
* @type WFMemberUIService
* @memberof WFMemberEditViewBase
*/
public appAuthService: WFMemberAuthService = new WFMemberAuthService(this.$store);
public appUIService: WFMemberUIService = new WFMemberUIService(this.$store);
/**
......
......@@ -156,6 +156,7 @@ import WFMemberAuthService from '@/authservice/wfmember/wfmember-auth-service';
import GridViewEngine from '@engine/view/grid-view-engine';
import WFMemberUIService from '@/uiservice/wfmember/wfmember-ui-service';
import CodeListService from "@service/app/codelist-service";
......@@ -176,10 +177,10 @@ export default class WFMemberGridViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFMemberAuthService}
* @type WFMemberUIService
* @memberof WFMemberGridViewBase
*/
public appAuthService: WFMemberAuthService = new WFMemberAuthService(this.$store);
public appUIService: WFMemberUIService = new WFMemberUIService(this.$store);
/**
......
......@@ -129,6 +129,7 @@ import WFProcessDefinitionAuthService from '@/authservice/wfprocess-definition/w
import EditViewEngine from '@engine/view/edit-view-engine';
import WFProcessDefinitionUIService from '@/uiservice/wfprocess-definition/wfprocess-definition-ui-service';
@Component({
components: {
......@@ -147,10 +148,10 @@ export default class WFProcessDefinitionEditViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFProcessDefinitionAuthService}
* @type WFProcessDefinitionUIService
* @memberof WFProcessDefinitionEditViewBase
*/
public appAuthService: WFProcessDefinitionAuthService = new WFProcessDefinitionAuthService(this.$store);
public appUIService: WFProcessDefinitionUIService = new WFProcessDefinitionUIService(this.$store);
/**
......
......@@ -156,6 +156,7 @@ import WFProcessDefinitionAuthService from '@/authservice/wfprocess-definition/w
import GridViewEngine from '@engine/view/grid-view-engine';
import WFProcessDefinitionUIService from '@/uiservice/wfprocess-definition/wfprocess-definition-ui-service';
import CodeListService from "@service/app/codelist-service";
......@@ -176,10 +177,10 @@ export default class WFProcessDefinitionGridViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFProcessDefinitionAuthService}
* @type WFProcessDefinitionUIService
* @memberof WFProcessDefinitionGridViewBase
*/
public appAuthService: WFProcessDefinitionAuthService = new WFProcessDefinitionAuthService(this.$store);
public appUIService: WFProcessDefinitionUIService = new WFProcessDefinitionUIService(this.$store);
/**
......
......@@ -59,6 +59,7 @@ import WFREModelAuthService from '@/authservice/wfremodel/wfremodel-auth-service
import EditViewEngine from '@engine/view/edit-view-engine';
import WFREModelUIService from '@/uiservice/wfremodel/wfremodel-ui-service';
@Component({
components: {
......@@ -77,10 +78,10 @@ export default class WFREModelEditViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFREModelAuthService}
* @type WFREModelUIService
* @memberof WFREModelEditViewBase
*/
public appAuthService: WFREModelAuthService = new WFREModelAuthService(this.$store);
public appUIService: WFREModelUIService = new WFREModelUIService(this.$store);
/**
......
......@@ -129,6 +129,7 @@ import WFUserAuthService from '@/authservice/wfuser/wfuser-auth-service';
import EditViewEngine from '@engine/view/edit-view-engine';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
@Component({
components: {
......@@ -147,10 +148,10 @@ export default class WFUserEditViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFUserAuthService}
* @type WFUserUIService
* @memberof WFUserEditViewBase
*/
public appAuthService: WFUserAuthService = new WFUserAuthService(this.$store);
public appUIService: WFUserUIService = new WFUserUIService(this.$store);
/**
......
......@@ -156,6 +156,7 @@ import WFUserAuthService from '@/authservice/wfuser/wfuser-auth-service';
import GridViewEngine from '@engine/view/grid-view-engine';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
import CodeListService from "@service/app/codelist-service";
......@@ -176,10 +177,10 @@ export default class WFUserGridViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFUserAuthService}
* @type WFUserUIService
* @memberof WFUserGridViewBase
*/
public appAuthService: WFUserAuthService = new WFUserAuthService(this.$store);
public appUIService: WFUserUIService = new WFUserUIService(this.$store);
/**
......
......@@ -74,6 +74,7 @@ import WFUserAuthService from '@/authservice/wfuser/wfuser-auth-service';
import MPickupViewEngine from '@engine/view/mpickup-view-engine';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
@Component({
components: {
......@@ -92,10 +93,10 @@ export default class WFUserMPickupViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFUserAuthService}
* @type WFUserUIService
* @memberof WFUserMPickupViewBase
*/
public appAuthService: WFUserAuthService = new WFUserAuthService(this.$store);
public appUIService: WFUserUIService = new WFUserUIService(this.$store);
/**
......
......@@ -56,6 +56,7 @@ import WFUserAuthService from '@/authservice/wfuser/wfuser-auth-service';
import PickupGridViewEngine from '@engine/view/pickup-grid-view-engine';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
@Component({
components: {
......@@ -74,10 +75,10 @@ export default class WFUserPickupGridViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFUserAuthService}
* @type WFUserUIService
* @memberof WFUserPickupGridViewBase
*/
public appAuthService: WFUserAuthService = new WFUserAuthService(this.$store);
public appUIService: WFUserUIService = new WFUserUIService(this.$store);
/**
......
......@@ -41,6 +41,7 @@ import WFUserAuthService from '@/authservice/wfuser/wfuser-auth-service';
import PickupViewEngine from '@engine/view/pickup-view-engine';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
@Component({
components: {
......@@ -59,10 +60,10 @@ export default class WFUserPickupViewBase extends Vue {
/**
* 实体权限服务对象
*
* @type {WFUserAuthService}
* @type WFUserUIService
* @memberof WFUserPickupViewBase
*/
public appAuthService: WFUserAuthService = new WFUserAuthService(this.$store);
public appUIService: WFUserUIService = new WFUserUIService(this.$store);
/**
......
......@@ -102,6 +102,7 @@ export const viewstate: any = {
viewdatachange: false,
refviews: [
'5592ca3571d551675c5306a0a9f1352e',
'bfd32eedd618add6408b75a98f40f809',
],
},
{
......
......@@ -17,6 +17,13 @@ export default class UIService {
*/
private $store: Store<any> | null = null;
/**
* 所依赖权限服务
*
* @memberof UIService
*/
public authService:any;
/**
* Creates an instance of UIService.
*
......
......@@ -3,6 +3,7 @@ import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import WFGroupService from '@/service/wfgroup/wfgroup-service';
import WFGroupAuthService from '@/authservice/wfgroup/wfgroup-auth-service';
/**
* 角色/用户组UI服务对象基类
......@@ -76,6 +77,7 @@ export default class WFGroupUIServiceBase extends UIService {
*/
constructor(opts: any = {}) {
super(opts);
this.authService = new WFGroupAuthService(opts);
this.initViewMap();
this.initDeMainStateMap();
this.initDeMainStateOPPrivsMap();
......@@ -227,17 +229,27 @@ export default class WFGroupUIServiceBase extends UIService {
}
/**
* 获取数据对象操作标识
* 获取数据对象当前操作标识
*
* @param curData 当前数据
* @param data 当前数据
* @memberof WFGroupUIServiceBase
*/
public getDEMainStateOPPrivs(curData:any){
if(this.getDEMainStateTag(curData)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(curData) as string));
public getDEMainStateOPPrivs(data:any){
if(this.getDEMainStateTag(data)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(data) as string));
}else{
return null;
}
}
/**
* 获取数据对象所有的操作标识
*
* @param data 当前数据
* @memberof WFGroupUIServiceBase
*/
public getAllOPPrivs(data:any){
return this.authService.getOPPrivs(this.getDEMainStateOPPrivs(data));
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import WFMemberService from '@/service/wfmember/wfmember-service';
import WFMemberAuthService from '@/authservice/wfmember/wfmember-auth-service';
/**
* 成员UI服务对象基类
......@@ -76,6 +77,7 @@ export default class WFMemberUIServiceBase extends UIService {
*/
constructor(opts: any = {}) {
super(opts);
this.authService = new WFMemberAuthService(opts);
this.initViewMap();
this.initDeMainStateMap();
this.initDeMainStateOPPrivsMap();
......@@ -224,17 +226,27 @@ export default class WFMemberUIServiceBase extends UIService {
}
/**
* 获取数据对象操作标识
* 获取数据对象当前操作标识
*
* @param curData 当前数据
* @param data 当前数据
* @memberof WFMemberUIServiceBase
*/
public getDEMainStateOPPrivs(curData:any){
if(this.getDEMainStateTag(curData)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(curData) as string));
public getDEMainStateOPPrivs(data:any){
if(this.getDEMainStateTag(data)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(data) as string));
}else{
return null;
}
}
/**
* 获取数据对象所有的操作标识
*
* @param data 当前数据
* @memberof WFMemberUIServiceBase
*/
public getAllOPPrivs(data:any){
return this.authService.getOPPrivs(this.getDEMainStateOPPrivs(data));
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import WFProcessDefinitionService from '@/service/wfprocess-definition/wfprocess-definition-service';
import WFProcessDefinitionAuthService from '@/authservice/wfprocess-definition/wfprocess-definition-auth-service';
/**
* 流程定义UI服务对象基类
......@@ -76,6 +77,7 @@ export default class WFProcessDefinitionUIServiceBase extends UIService {
*/
constructor(opts: any = {}) {
super(opts);
this.authService = new WFProcessDefinitionAuthService(opts);
this.initViewMap();
this.initDeMainStateMap();
this.initDeMainStateOPPrivsMap();
......@@ -224,17 +226,27 @@ export default class WFProcessDefinitionUIServiceBase extends UIService {
}
/**
* 获取数据对象操作标识
* 获取数据对象当前操作标识
*
* @param curData 当前数据
* @param data 当前数据
* @memberof WFProcessDefinitionUIServiceBase
*/
public getDEMainStateOPPrivs(curData:any){
if(this.getDEMainStateTag(curData)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(curData) as string));
public getDEMainStateOPPrivs(data:any){
if(this.getDEMainStateTag(data)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(data) as string));
}else{
return null;
}
}
/**
* 获取数据对象所有的操作标识
*
* @param data 当前数据
* @memberof WFProcessDefinitionUIServiceBase
*/
public getAllOPPrivs(data:any){
return this.authService.getOPPrivs(this.getDEMainStateOPPrivs(data));
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import WFREModelService from '@/service/wfremodel/wfremodel-service';
import WFREModelAuthService from '@/authservice/wfremodel/wfremodel-auth-service';
/**
* 流程模型UI服务对象基类
......@@ -76,6 +77,7 @@ export default class WFREModelUIServiceBase extends UIService {
*/
constructor(opts: any = {}) {
super(opts);
this.authService = new WFREModelAuthService(opts);
this.initViewMap();
this.initDeMainStateMap();
this.initDeMainStateOPPrivsMap();
......@@ -223,17 +225,27 @@ export default class WFREModelUIServiceBase extends UIService {
}
/**
* 获取数据对象操作标识
* 获取数据对象当前操作标识
*
* @param curData 当前数据
* @param data 当前数据
* @memberof WFREModelUIServiceBase
*/
public getDEMainStateOPPrivs(curData:any){
if(this.getDEMainStateTag(curData)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(curData) as string));
public getDEMainStateOPPrivs(data:any){
if(this.getDEMainStateTag(data)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(data) as string));
}else{
return null;
}
}
/**
* 获取数据对象所有的操作标识
*
* @param data 当前数据
* @memberof WFREModelUIServiceBase
*/
public getAllOPPrivs(data:any){
return this.authService.getOPPrivs(this.getDEMainStateOPPrivs(data));
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import WFSystemService from '@/service/wfsystem/wfsystem-service';
import WFSystemAuthService from '@/authservice/wfsystem/wfsystem-auth-service';
/**
* 系统UI服务对象基类
......@@ -76,6 +77,7 @@ export default class WFSystemUIServiceBase extends UIService {
*/
constructor(opts: any = {}) {
super(opts);
this.authService = new WFSystemAuthService(opts);
this.initViewMap();
this.initDeMainStateMap();
this.initDeMainStateOPPrivsMap();
......@@ -222,17 +224,27 @@ export default class WFSystemUIServiceBase extends UIService {
}
/**
* 获取数据对象操作标识
* 获取数据对象当前操作标识
*
* @param curData 当前数据
* @param data 当前数据
* @memberof WFSystemUIServiceBase
*/
public getDEMainStateOPPrivs(curData:any){
if(this.getDEMainStateTag(curData)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(curData) as string));
public getDEMainStateOPPrivs(data:any){
if(this.getDEMainStateTag(data)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(data) as string));
}else{
return null;
}
}
/**
* 获取数据对象所有的操作标识
*
* @param data 当前数据
* @memberof WFSystemUIServiceBase
*/
public getAllOPPrivs(data:any){
return this.authService.getOPPrivs(this.getDEMainStateOPPrivs(data));
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ import { UIActionTool,Util } from '@/utils';
import UIService from '../ui-service';
import { Subject } from 'rxjs';
import WFUserService from '@/service/wfuser/wfuser-service';
import WFUserAuthService from '@/authservice/wfuser/wfuser-auth-service';
/**
* 用户UI服务对象基类
......@@ -76,6 +77,7 @@ export default class WFUserUIServiceBase extends UIService {
*/
constructor(opts: any = {}) {
super(opts);
this.authService = new WFUserAuthService(opts);
this.initViewMap();
this.initDeMainStateMap();
this.initDeMainStateOPPrivsMap();
......@@ -227,17 +229,27 @@ export default class WFUserUIServiceBase extends UIService {
}
/**
* 获取数据对象操作标识
* 获取数据对象当前操作标识
*
* @param curData 当前数据
* @param data 当前数据
* @memberof WFUserUIServiceBase
*/
public getDEMainStateOPPrivs(curData:any){
if(this.getDEMainStateTag(curData)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(curData) as string));
public getDEMainStateOPPrivs(data:any){
if(this.getDEMainStateTag(data)){
return this.allDeMainStateOPPrivsMap.get((this.getDEMainStateTag(data) as string));
}else{
return null;
}
}
/**
* 获取数据对象所有的操作标识
*
* @param data 当前数据
* @memberof WFUserUIServiceBase
*/
public getAllOPPrivs(data:any){
return this.authService.getOPPrivs(this.getDEMainStateOPPrivs(data));
}
}
\ No newline at end of file
......@@ -93,6 +93,17 @@ export declare interface ViewTool {
* @memberof ViewTool
*/
getIndexViewParam(): any;
/**
* 计算界面行为项权限状态
*
* @static
* @param {*} [data] 传入数据
* @param {*} [ActionModel] 界面行为模型
* @param {*} [UIService] 界面行为服务
* @memberof ViewTool
*/
calcActionItemAuthState(data:any,ActionModel:any,UIService:any):any;
}
declare module "vue/types/vue" {
......
......@@ -241,4 +241,40 @@ export class ViewTool {
public static getIndexViewParam(): any {
return this.indexViewParam;
}
/**
* 计算界面行为项权限状态
*
* @static
* @param {*} [data] 传入数据
* @param {*} [ActionModel] 界面行为模型
* @param {*} [UIService] 界面行为服务
* @memberof ViewTool
*/
public static calcActionItemAuthState(data:any,ActionModel:any,UIService:any){
for (const key in ActionModel) {
if (!ActionModel.hasOwnProperty(key)) {
return;
}
const _item = ActionModel[key];
if(_item && _item['dataaccaction'] && UIService && data && Object.keys(data).length >0){
let dataActionResult:any = UIService.getAllOPPrivs(data)[_item['dataaccaction']];
// 无权限:0;有权限:1
if(!dataActionResult){
// 禁用:1;隐藏:2;隐藏且默认隐藏:6
if(_item.noprivdisplaymode === 1){
_item.disabled = true;
}
if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){
_item.visabled = false;
}else{
_item.visabled = true;
}
}else{
_item.visabled = true;
_item.disabled = false;
}
}
}
}
}
\ No newline at end of file
......@@ -122,11 +122,10 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFIndexViewService from './wfindex-view-appmenu-service';
import WFIndexViewModel from './wfindex-view-appmenu-model';
import { Environment } from '@/environments/environment';
......
......@@ -26,12 +26,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFGroupService from '@/service/wfgroup/wfgroup-service';
import DefaultService from './default-searchform-service';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
......
......@@ -4,7 +4,7 @@
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.wfgroup.main_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<app-form-group :uiService="appUIService" :data="transformData(data)" :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.wfgroup.main_form.details.group1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<row>
<i-col v-show="detailsModel.groupname.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='groupname' :itemRules="this.rules.groupname" class='' :caption="$t('entities.wfgroup.main_form.details.groupname')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.groupname.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -60,12 +60,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFGroupService from '@/service/wfgroup/wfgroup-service';
import MainService from './main-form-service';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
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';
......@@ -207,6 +207,14 @@ export default class MainBase extends Vue implements ControlInterface {
@Inject({from:'navModel',default: 'tab'})
public navModel!:string;
/**
* 界面UI服务对象
*
* @type {WFGroupUIService}
* @memberof MainBase
*/
public appUIService:WFGroupUIService = new WFGroupUIService(this.$store);
/**
* 工作流审批意见控件绑定值
*
......@@ -495,7 +503,7 @@ export default class MainBase extends Vue implements ControlInterface {
public detailsModel: any = {
druipart1: new FormDRUIPartModel({ caption: '成员', detailType: 'DRUIPART', name: 'druipart1', visible: true, isShowCaption: true, form: this, isControlledContent: false })
,
group1: new FormGroupPanelModel({ caption: '角色/用户组基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: true, form: this, isControlledContent: false , uiActionGroup: { caption: '', langbase: 'entities.wfgroup.main_form', extractMode: 'ITEM', details: [] }, isManageContainer: false, showMoreModeItems: [] })
group1: new FormGroupPanelModel({ caption: '角色/用户组基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, isControlledContent: false , uiActionGroup: { caption: '', langbase: 'entities.wfgroup.main_form', extractMode: 'ITEM', details: [] }, isManageContainer: false, showMoreModeItems: [] })
,
formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this, isControlledContent: false })
,
......
......@@ -103,12 +103,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFGroupService from '@/service/wfgroup/wfgroup-service';
import MainService from './main-grid-service';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
import CodeListService from "@service/app/codelist-service";
import { FormItemModel } from '@/model/form-detail';
......@@ -248,6 +248,23 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 界面UI服务对象
*
* @type {WFGroupUIService}
* @memberof MainBase
*/
public appUIService:WFGroupUIService = new WFGroupUIService(this.$store);
/**
* 界面行为模型
*
* @type {*}
* @memberof MainBase
*/
public ActionModel:any ={
};
/**
* 应用状态事件
*
......@@ -497,6 +514,13 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public totalrow: number = 0;
/**
* 表格更新默认值项
*
* @memberof MainBase
*/
public defaultUpdateItems:Array<any> =['srfkey'];
/**
* 选中行数据
*
......@@ -591,6 +615,18 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public gridItemsModel: any[] = [];
/**
* 获取界面行为权限状态
*
* @memberof MainBase
*/
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);
return tempActionModel;
}
/**
* 获取表格行模型
*
......@@ -706,6 +742,9 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = [];
this.gridItemsModel = [];
this.items.forEach(()=>{this.gridItemsModel.push(this.getGridRowModel())});
this.items.forEach((item:any)=>{
Object.assign(item,this.getActionState(item));
});
this.$emit('load', this.items);
// 设置默认选中
let _this = this;
......@@ -1389,6 +1428,13 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async save(args: any[], params?: any, $event?: any, xData?: any){
let _this = this;
if(_this.items && _this.items.length >0){
for (const item of _this.items) {
if(Object.is(item.rowDataState, 'update')){
_this.updateDefault(item);
}
}
}
if(!await this.validateAll()){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
return [];
......@@ -1414,7 +1460,7 @@ export default class MainBase extends Vue implements ControlInterface {
if(item.wfgroup){
Object.assign(this.context,{wfgroup:item.wfgroup});
}
let response = await this.service.add(this.updateAction,JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
let response = await this.service.update(this.updateAction,JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
successItems.push(JSON.parse(JSON.stringify(response.data)));
}
}
......@@ -1505,6 +1551,11 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public gridEditItemChange(row: any, property: string, value: any, rowIndex: number){
row.rowDataState = row.rowDataState ? row.rowDataState : "update" ;
if(Object.is(row.rowDataState,"update")){
if(!value && this.defaultUpdateItems.includes(property)){
row.hasUpdated = true;
}
}
this.validate(property,row,rowIndex);
}
......@@ -1593,6 +1644,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public createDefault(row: any){
}
/**
* 更新默认值
* @param {*} row 行数据
* @memberof MainBase
*/
public updateDefault(row: any){
}
}
</script>
......
......@@ -74,6 +74,10 @@ export default class MainModel {
name:'query',
prop:'query'
},
{
name:'filter',
prop:'filter'
},
{
name:'page',
prop:'page'
......
......@@ -22,12 +22,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFGroupService from '@/service/wfgroup/wfgroup-service';
import MPickupViewpickupviewpanelService from './mpickup-viewpickupviewpanel-pickupviewpanel-service';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
import MPickupViewpickupviewpanelModel from './mpickup-viewpickupviewpanel-pickupviewpanel-model';
......
......@@ -22,12 +22,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFGroupService from '@/service/wfgroup/wfgroup-service';
import PickupViewpickupviewpanelService from './pickup-viewpickupviewpanel-pickupviewpanel-service';
import WFGroupUIService from '@/uiservice/wfgroup/wfgroup-ui-service';
import PickupViewpickupviewpanelModel from './pickup-viewpickupviewpanel-pickupviewpanel-model';
......
......@@ -26,12 +26,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFMemberService from '@/service/wfmember/wfmember-service';
import DefaultService from './default-searchform-service';
import WFMemberUIService from '@/uiservice/wfmember/wfmember-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
......
......@@ -65,6 +65,21 @@ export default class MainModel {
prop: 'personname',
dataType: 'PICKUPTEXT',
},
{
name: 'orgname',
prop: 'orgname',
dataType: 'PICKUPDATA',
},
{
name: 'mdeptname',
prop: 'mdeptname',
dataType: 'PICKUPDATA',
},
{
name: 'groupname',
prop: 'groupname',
dataType: 'PICKUPTEXT',
},
{
name: 'memberid',
prop: 'memberid',
......
......@@ -3,6 +3,7 @@ import ControlService from '@/widgets/control-service';
import WFMemberService from '@/service/wfmember/wfmember-service';
import MainModel from './main-form-model';
import WFUserService from '@/service/wfuser/wfuser-service';
import WFGroupService from '@/service/wfgroup/wfgroup-service';
/**
......@@ -50,6 +51,14 @@ export default class MainService extends ControlService {
*/
public wfuserService: WFUserService = new WFUserService();
/**
* 角色/用户组服务对象
*
* @type {WFGroupService}
* @memberof MainService
*/
public wfgroupService: WFGroupService = new WFGroupService();
/**
* 处理数据
*
......@@ -94,6 +103,9 @@ export default class MainService extends ControlService {
if (Object.is(serviceName, 'WFUserService') && Object.is(interfaceName, 'FetchDefault')) {
return this.doItems(this.wfuserService.FetchDefault(JSON.parse(JSON.stringify(context)),data, isloading), 'id', 'wfuser');
}
if (Object.is(serviceName, 'WFGroupService') && Object.is(interfaceName, 'FetchDefault')) {
return this.doItems(this.wfgroupService.FetchDefault(JSON.parse(JSON.stringify(context)),data, isloading), 'id', 'wfgroup');
}
return Promise.reject([])
}
......
......@@ -33,6 +33,30 @@
</template>
</el-table-column>
</template>
<template v-if="getColumnState('orgname')">
<el-table-column show-overflow-tooltip :prop="'orgname'" :label="$t('entities.wfmember.main_grid.columns.orgname')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot:header="{column}">
<span class="column-header ">
{{$t('entities.wfmember.main_grid.columns.orgname')}}
</span>
</template>
<template v-slot="{row,column,$index}">
<span>{{row.orgname}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('mdeptname')">
<el-table-column show-overflow-tooltip :prop="'mdeptname'" :label="$t('entities.wfmember.main_grid.columns.mdeptname')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot:header="{column}">
<span class="column-header ">
{{$t('entities.wfmember.main_grid.columns.mdeptname')}}
</span>
</template>
<template v-slot="{row,column,$index}">
<span>{{row.mdeptname}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('groupname')">
<el-table-column show-overflow-tooltip :prop="'groupname'" :label="$t('entities.wfmember.main_grid.columns.groupname')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot:header="{column}">
......@@ -91,12 +115,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFMemberService from '@/service/wfmember/wfmember-service';
import MainService from './main-grid-service';
import WFMemberUIService from '@/uiservice/wfmember/wfmember-ui-service';
import CodeListService from "@service/app/codelist-service";
import { FormItemModel } from '@/model/form-detail';
......@@ -236,6 +260,23 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 界面UI服务对象
*
* @type {WFMemberUIService}
* @memberof MainBase
*/
public appUIService:WFMemberUIService = new WFMemberUIService(this.$store);
/**
* 界面行为模型
*
* @type {*}
* @memberof MainBase
*/
public ActionModel:any ={
};
/**
* 应用状态事件
*
......@@ -485,6 +526,13 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public totalrow: number = 0;
/**
* 表格更新默认值项
*
* @memberof MainBase
*/
public defaultUpdateItems:Array<any> =['srfkey'];
/**
* 选中行数据
*
......@@ -553,6 +601,22 @@ export default class MainBase extends Vue implements ControlInterface {
util: 'PX',
isEnableRowEdit: false,
},
{
name: 'orgname',
label: '单位',
langtag: 'entities.wfmember.main_grid.columns.orgname',
show: true,
util: 'PX',
isEnableRowEdit: false,
},
{
name: 'mdeptname',
label: '主部门',
langtag: 'entities.wfmember.main_grid.columns.mdeptname',
show: true,
util: 'PX',
isEnableRowEdit: false,
},
{
name: 'groupname',
label: '用户组',
......@@ -571,6 +635,18 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public gridItemsModel: any[] = [];
/**
* 获取界面行为权限状态
*
* @memberof MainBase
*/
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);
return tempActionModel;
}
/**
* 获取表格行模型
*
......@@ -686,6 +762,9 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = [];
this.gridItemsModel = [];
this.items.forEach(()=>{this.gridItemsModel.push(this.getGridRowModel())});
this.items.forEach((item:any)=>{
Object.assign(item,this.getActionState(item));
});
this.$emit('load', this.items);
// 设置默认选中
let _this = this;
......@@ -1369,6 +1448,13 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async save(args: any[], params?: any, $event?: any, xData?: any){
let _this = this;
if(_this.items && _this.items.length >0){
for (const item of _this.items) {
if(Object.is(item.rowDataState, 'update')){
_this.updateDefault(item);
}
}
}
if(!await this.validateAll()){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
return [];
......@@ -1394,7 +1480,7 @@ export default class MainBase extends Vue implements ControlInterface {
if(item.wfmember){
Object.assign(this.context,{wfmember:item.wfmember});
}
let response = await this.service.add(this.updateAction,JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
let response = await this.service.update(this.updateAction,JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
successItems.push(JSON.parse(JSON.stringify(response.data)));
}
}
......@@ -1485,6 +1571,11 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public gridEditItemChange(row: any, property: string, value: any, rowIndex: number){
row.rowDataState = row.rowDataState ? row.rowDataState : "update" ;
if(Object.is(row.rowDataState,"update")){
if(!value && this.defaultUpdateItems.includes(property)){
row.hasUpdated = true;
}
}
this.validate(property,row,rowIndex);
}
......@@ -1573,6 +1664,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public createDefault(row: any){
}
/**
* 更新默认值
* @param {*} row 行数据
* @memberof MainBase
*/
public updateDefault(row: any){
}
}
</script>
......
......@@ -26,6 +26,11 @@ export default class MainModel {
]
}else{
return [
{
name: 'orgname',
prop: 'orgname',
dataType: 'PICKUPDATA',
},
{
name: 'userid',
prop: 'userid',
......@@ -41,6 +46,11 @@ export default class MainModel {
prop: 'groupid',
dataType: 'PICKUP',
},
{
name: 'mdeptname',
prop: 'mdeptname',
dataType: 'PICKUPDATA',
},
{
name: 'personname',
prop: 'personname',
......@@ -79,6 +89,10 @@ export default class MainModel {
name:'query',
prop:'query'
},
{
name:'filter',
prop:'filter'
},
{
name:'page',
prop:'page'
......
......@@ -32,12 +32,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFProcessDefinitionService from '@/service/wfprocess-definition/wfprocess-definition-service';
import DefaultService from './default-searchform-service';
import WFProcessDefinitionUIService from '@/uiservice/wfprocess-definition/wfprocess-definition-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
......
......@@ -4,7 +4,7 @@
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.wfprocessdefinition.main_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<app-form-group :uiService="appUIService" :data="transformData(data)" :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.wfprocessdefinition.main_form.details.group1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<row>
<i-col v-show="detailsModel.deploykey.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='deploykey' :itemRules="this.rules.deploykey" class='' :caption="$t('entities.wfprocessdefinition.main_form.details.deploykey')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.deploykey.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -77,12 +77,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFProcessDefinitionService from '@/service/wfprocess-definition/wfprocess-definition-service';
import MainService from './main-form-service';
import WFProcessDefinitionUIService from '@/uiservice/wfprocess-definition/wfprocess-definition-ui-service';
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';
......@@ -224,6 +224,14 @@ export default class MainBase extends Vue implements ControlInterface {
@Inject({from:'navModel',default: 'tab'})
public navModel!:string;
/**
* 界面UI服务对象
*
* @type {WFProcessDefinitionUIService}
* @memberof MainBase
*/
public appUIService:WFProcessDefinitionUIService = new WFProcessDefinitionUIService(this.$store);
/**
* 工作流审批意见控件绑定值
*
......@@ -545,7 +553,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof MainBase
*/
public detailsModel: any = {
group1: new FormGroupPanelModel({ caption: '模型基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: true, form: this, isControlledContent: false , uiActionGroup: { caption: '', langbase: 'entities.wfprocessdefinition.main_form', extractMode: 'ITEM', details: [] }, isManageContainer: false, showMoreModeItems: [] })
group1: new FormGroupPanelModel({ caption: '模型基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, isControlledContent: false , uiActionGroup: { caption: '', langbase: 'entities.wfprocessdefinition.main_form', extractMode: 'ITEM', details: [] }, isManageContainer: false, showMoreModeItems: [] })
,
formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this, isControlledContent: false })
,
......
......@@ -129,12 +129,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFProcessDefinitionService from '@/service/wfprocess-definition/wfprocess-definition-service';
import MainService from './main-grid-service';
import WFProcessDefinitionUIService from '@/uiservice/wfprocess-definition/wfprocess-definition-ui-service';
import CodeListService from "@service/app/codelist-service";
import { FormItemModel } from '@/model/form-detail';
......@@ -274,6 +274,23 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 界面UI服务对象
*
* @type {WFProcessDefinitionUIService}
* @memberof MainBase
*/
public appUIService:WFProcessDefinitionUIService = new WFProcessDefinitionUIService(this.$store);
/**
* 界面行为模型
*
* @type {*}
* @memberof MainBase
*/
public ActionModel:any ={
};
/**
* 应用状态事件
*
......@@ -523,6 +540,13 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public totalrow: number = 0;
/**
* 表格更新默认值项
*
* @memberof MainBase
*/
public defaultUpdateItems:Array<any> =['srfkey'];
/**
* 选中行数据
*
......@@ -633,6 +657,18 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public gridItemsModel: any[] = [];
/**
* 获取界面行为权限状态
*
* @memberof MainBase
*/
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);
return tempActionModel;
}
/**
* 获取表格行模型
*
......@@ -748,6 +784,9 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = [];
this.gridItemsModel = [];
this.items.forEach(()=>{this.gridItemsModel.push(this.getGridRowModel())});
this.items.forEach((item:any)=>{
Object.assign(item,this.getActionState(item));
});
this.$emit('load', this.items);
// 设置默认选中
let _this = this;
......@@ -1439,6 +1478,13 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async save(args: any[], params?: any, $event?: any, xData?: any){
let _this = this;
if(_this.items && _this.items.length >0){
for (const item of _this.items) {
if(Object.is(item.rowDataState, 'update')){
_this.updateDefault(item);
}
}
}
if(!await this.validateAll()){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
return [];
......@@ -1464,7 +1510,7 @@ export default class MainBase extends Vue implements ControlInterface {
if(item.wfprocessdefinition){
Object.assign(this.context,{wfprocessdefinition:item.wfprocessdefinition});
}
let response = await this.service.add(this.updateAction,JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
let response = await this.service.update(this.updateAction,JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
successItems.push(JSON.parse(JSON.stringify(response.data)));
}
}
......@@ -1555,6 +1601,11 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public gridEditItemChange(row: any, property: string, value: any, rowIndex: number){
row.rowDataState = row.rowDataState ? row.rowDataState : "update" ;
if(Object.is(row.rowDataState,"update")){
if(!value && this.defaultUpdateItems.includes(property)){
row.hasUpdated = true;
}
}
this.validate(property,row,rowIndex);
}
......@@ -1643,6 +1694,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public createDefault(row: any){
}
/**
* 更新默认值
* @param {*} row 行数据
* @memberof MainBase
*/
public updateDefault(row: any){
}
}
</script>
......
......@@ -89,6 +89,10 @@ export default class MainModel {
name:'query',
prop:'query'
},
{
name:'filter',
prop:'filter'
},
{
name:'page',
prop:'page'
......
......@@ -4,7 +4,7 @@
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.wfremodel.main_form.details.group1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<app-form-group :uiService="appUIService" :data="transformData(data)" :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.wfremodel.main_form.details.group1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<row>
<i-col v-show="detailsModel.bpmnfile.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='bpmnfile' :itemRules="this.rules.bpmnfile" class='' :caption="$t('entities.wfremodel.main_form.details.bpmnfile')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.bpmnfile.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -28,12 +28,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFREModelService from '@/service/wfremodel/wfremodel-service';
import MainService from './main-form-service';
import WFREModelUIService from '@/uiservice/wfremodel/wfremodel-ui-service';
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';
......@@ -175,6 +175,14 @@ export default class MainBase extends Vue implements ControlInterface {
@Inject({from:'navModel',default: 'tab'})
public navModel!:string;
/**
* 界面UI服务对象
*
* @type {WFREModelUIService}
* @memberof MainBase
*/
public appUIService:WFREModelUIService = new WFREModelUIService(this.$store);
/**
* 工作流审批意见控件绑定值
*
......
......@@ -26,12 +26,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFUserService from '@/service/wfuser/wfuser-service';
import DefaultService from './default-searchform-service';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
......
......@@ -4,7 +4,7 @@
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.wfuser.main_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<app-form-group :uiService="appUIService" :data="transformData(data)" :manageContainerStatus="detailsModel.group1.manageContainerStatus" :isManageContainer="detailsModel.group1.isManageContainer" @managecontainerclick="manageContainerClick('group1')" layoutType="TABLE_24COL" titleStyle="" class='' :uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.wfuser.main_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false" >
<row>
<i-col v-show="detailsModel.personname.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='personname' :itemRules="this.rules.personname" class='' :caption="$t('entities.wfuser.main_form.details.personname')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.personname.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -34,12 +34,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFUserService from '@/service/wfuser/wfuser-service';
import MainService from './main-form-service';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
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';
......@@ -181,6 +181,14 @@ export default class MainBase extends Vue implements ControlInterface {
@Inject({from:'navModel',default: 'tab'})
public navModel!:string;
/**
* 界面UI服务对象
*
* @type {WFUserUIService}
* @memberof MainBase
*/
public appUIService:WFUserUIService = new WFUserUIService(this.$store);
/**
* 工作流审批意见控件绑定值
*
......
......@@ -57,6 +57,30 @@
</template>
</el-table-column>
</template>
<template v-if="getColumnState('orgname')">
<el-table-column show-overflow-tooltip :prop="'orgname'" :label="$t('entities.wfuser.main_grid.columns.orgname')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot:header="{column}">
<span class="column-header ">
{{$t('entities.wfuser.main_grid.columns.orgname')}}
</span>
</template>
<template v-slot="{row,column,$index}">
<span>{{row.orgname}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('mdeptname')">
<el-table-column show-overflow-tooltip :prop="'mdeptname'" :label="$t('entities.wfuser.main_grid.columns.mdeptname')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot:header="{column}">
<span class="column-header ">
{{$t('entities.wfuser.main_grid.columns.mdeptname')}}
</span>
</template>
<template v-slot="{row,column,$index}">
<span>{{row.mdeptname}}</span>
</template>
</el-table-column>
</template>
<template v-if="adaptiveState">
<el-table-column></el-table-column>
</template>
......@@ -103,12 +127,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFUserService from '@/service/wfuser/wfuser-service';
import MainService from './main-grid-service';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
import CodeListService from "@service/app/codelist-service";
import { FormItemModel } from '@/model/form-detail';
......@@ -248,6 +272,23 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 界面UI服务对象
*
* @type {WFUserUIService}
* @memberof MainBase
*/
public appUIService:WFUserUIService = new WFUserUIService(this.$store);
/**
* 界面行为模型
*
* @type {*}
* @memberof MainBase
*/
public ActionModel:any ={
};
/**
* 应用状态事件
*
......@@ -497,6 +538,13 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public totalrow: number = 0;
/**
* 表格更新默认值项
*
* @memberof MainBase
*/
public defaultUpdateItems:Array<any> =['srfkey'];
/**
* 选中行数据
*
......@@ -581,6 +629,22 @@ export default class MainBase extends Vue implements ControlInterface {
util: 'PX',
isEnableRowEdit: false,
},
{
name: 'orgname',
label: '单位名称',
langtag: 'entities.wfuser.main_grid.columns.orgname',
show: true,
util: 'PX',
isEnableRowEdit: false,
},
{
name: 'mdeptname',
label: '主部门名称',
langtag: 'entities.wfuser.main_grid.columns.mdeptname',
show: true,
util: 'PX',
isEnableRowEdit: false,
},
]
/**
......@@ -591,6 +655,18 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public gridItemsModel: any[] = [];
/**
* 获取界面行为权限状态
*
* @memberof MainBase
*/
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);
return tempActionModel;
}
/**
* 获取表格行模型
*
......@@ -706,6 +782,9 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = [];
this.gridItemsModel = [];
this.items.forEach(()=>{this.gridItemsModel.push(this.getGridRowModel())});
this.items.forEach((item:any)=>{
Object.assign(item,this.getActionState(item));
});
this.$emit('load', this.items);
// 设置默认选中
let _this = this;
......@@ -1389,6 +1468,13 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async save(args: any[], params?: any, $event?: any, xData?: any){
let _this = this;
if(_this.items && _this.items.length >0){
for (const item of _this.items) {
if(Object.is(item.rowDataState, 'update')){
_this.updateDefault(item);
}
}
}
if(!await this.validateAll()){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.rulesException') as string) });
return [];
......@@ -1414,7 +1500,7 @@ export default class MainBase extends Vue implements ControlInterface {
if(item.wfuser){
Object.assign(this.context,{wfuser:item.wfuser});
}
let response = await this.service.add(this.updateAction,JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
let response = await this.service.update(this.updateAction,JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
successItems.push(JSON.parse(JSON.stringify(response.data)));
}
}
......@@ -1505,6 +1591,11 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public gridEditItemChange(row: any, property: string, value: any, rowIndex: number){
row.rowDataState = row.rowDataState ? row.rowDataState : "update" ;
if(Object.is(row.rowDataState,"update")){
if(!value && this.defaultUpdateItems.includes(property)){
row.hasUpdated = true;
}
}
this.validate(property,row,rowIndex);
}
......@@ -1593,6 +1684,14 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public createDefault(row: any){
}
/**
* 更新默认值
* @param {*} row 行数据
* @memberof MainBase
*/
public updateDefault(row: any){
}
}
</script>
......
......@@ -31,11 +31,21 @@ export default class MainModel {
prop: 'firstname',
dataType: 'TEXT',
},
{
name: 'orgname',
prop: 'orgname',
dataType: 'TEXT',
},
{
name: 'userid',
prop: 'id',
dataType: 'TEXT',
},
{
name: 'mdeptname',
prop: 'mdeptname',
dataType: 'TEXT',
},
{
name: 'personname',
prop: 'displayname',
......@@ -74,6 +84,10 @@ export default class MainModel {
name:'query',
prop:'query'
},
{
name:'filter',
prop:'filter'
},
{
name:'page',
prop:'page'
......
......@@ -22,12 +22,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFUserService from '@/service/wfuser/wfuser-service';
import MPickupViewpickupviewpanelService from './mpickup-viewpickupviewpanel-pickupviewpanel-service';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
import MPickupViewpickupviewpanelModel from './mpickup-viewpickupviewpanel-pickupviewpanel-model';
......
......@@ -24,6 +24,27 @@ export default class MPickupViewpickupviewpanelModel {
{
name: 'displayname',
},
{
name: 'mdeptid',
},
{
name: 'mdeptcode',
},
{
name: 'mdeptname',
},
{
name: 'bcode',
},
{
name: 'orgid',
},
{
name: 'orgcode',
},
{
name: 'orgname',
},
]
}
......
......@@ -22,12 +22,12 @@ import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-pr
import { CreateElement } from 'vue';
import { Subject, Subscription } from 'rxjs';
import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util } from '@/utils';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import WFUserService from '@/service/wfuser/wfuser-service';
import PickupViewpickupviewpanelService from './pickup-viewpickupviewpanel-pickupviewpanel-service';
import WFUserUIService from '@/uiservice/wfuser/wfuser-ui-service';
import PickupViewpickupviewpanelModel from './pickup-viewpickupviewpanel-pickupviewpanel-model';
......
......@@ -24,6 +24,27 @@ export default class PickupViewpickupviewpanelModel {
{
name: 'displayname',
},
{
name: 'mdeptid',
},
{
name: 'mdeptcode',
},
{
name: 'mdeptname',
},
{
name: 'bcode',
},
{
name: 'orgid',
},
{
name: 'orgcode',
},
{
name: 'orgname',
},
]
}
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
/**
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
......@@ -82,6 +83,34 @@ public class WFMember extends EntityMP implements Serializable {
@JSONField(name = "personname")
@JsonProperty("personname")
private String personname;
/**
* 单位
*/
@TableField(exist = false)
@JSONField(name = "orgid")
@JsonProperty("orgid")
private String orgid;
/**
* 单位
*/
@TableField(exist = false)
@JSONField(name = "orgname")
@JsonProperty("orgname")
private String orgname;
/**
* 主部门
*/
@TableField(exist = false)
@JSONField(name = "mdeptid")
@JsonProperty("mdeptid")
private String mdeptid;
/**
* 主部门
*/
@TableField(exist = false)
@JSONField(name = "mdeptname")
@JsonProperty("mdeptname")
private String mdeptname;
/**
* 用户组
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
/**
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
/**
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
/**
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
/**
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
/**
......
......@@ -21,6 +21,7 @@ import cn.ibizlab.util.enums.DEFieldDefaultValueType;
import java.io.Serializable;
import lombok.*;
import org.springframework.data.annotation.Transient;
import cn.ibizlab.util.annotation.Audit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
......@@ -63,6 +64,57 @@ public class WFUser extends EntityMP implements Serializable {
@JSONField(name = "displayname")
@JsonProperty("displayname")
private String displayname;
/**
* 主部门
*/
@TableField(value = "mdeptid")
@JSONField(name = "mdeptid")
@JsonProperty("mdeptid")
private String mdeptid;
/**
* 主部门代码
*/
@TableField(value = "mdeptcode")
@JSONField(name = "mdeptcode")
@JsonProperty("mdeptcode")
private String mdeptcode;
/**
* 主部门名称
*/
@TableField(value = "mdeptname")
@JSONField(name = "mdeptname")
@JsonProperty("mdeptname")
private String mdeptname;
/**
* 业务编码
*/
@TableField(value = "bcode")
@JSONField(name = "bcode")
@JsonProperty("bcode")
private String bcode;
/**
* 单位
*/
@DEField(preType = DEPredefinedFieldType.ORGID)
@TableField(value = "orgid")
@JSONField(name = "orgid")
@JsonProperty("orgid")
private String orgid;
/**
* 单位代码
*/
@TableField(value = "orgcode")
@JSONField(name = "orgcode")
@JsonProperty("orgcode")
private String orgcode;
/**
* 单位名称
*/
@DEField(preType = DEPredefinedFieldType.ORGNAME)
@TableField(value = "orgname")
@JSONField(name = "orgname")
@JsonProperty("orgname")
private String orgname;
......@@ -82,6 +134,46 @@ public class WFUser extends EntityMP implements Serializable {
this.modify("personname",displayname);
}
/**
* 设置 [主部门]
*/
public void setMdeptid(String mdeptid){
this.mdeptid = mdeptid ;
this.modify("mdeptid",mdeptid);
}
/**
* 设置 [主部门代码]
*/
public void setMdeptcode(String mdeptcode){
this.mdeptcode = mdeptcode ;
this.modify("mdeptcode",mdeptcode);
}
/**
* 设置 [主部门名称]
*/
public void setMdeptname(String mdeptname){
this.mdeptname = mdeptname ;
this.modify("mdeptname",mdeptname);
}
/**
* 设置 [业务编码]
*/
public void setBcode(String bcode){
this.bcode = bcode ;
this.modify("bcode",bcode);
}
/**
* 设置 [单位代码]
*/
public void setOrgcode(String orgcode){
this.orgcode = orgcode ;
this.modify("orgcode",orgcode);
}
}
......
......@@ -57,6 +57,8 @@ public interface IWFMemberService extends IService<WFMember>{
*/
boolean execute(String sql, Map param);
List<WFMember> getWfmemberByIds(List<String> ids) ;
List<WFMember> getWfmemberByEntities(List<WFMember> entities) ;
}
......@@ -52,6 +52,8 @@ public interface IWFUserService extends IService<WFUser>{
*/
boolean execute(String sql, Map param);
List<WFUser> getWfuserByIds(List<String> ids) ;
List<WFUser> getWfuserByEntities(List<WFUser> entities) ;
}
......@@ -239,6 +239,10 @@ public class WFMemberServiceImpl extends ServiceImpl<WFMemberMapper, WFMember> i
user=majorEntity;
}
et.setPersonname(user.getDisplayname());
et.setOrgid(user.getOrgid());
et.setOrgname(user.getOrgname());
et.setMdeptid(user.getMdeptid());
et.setMdeptname(user.getMdeptname());
}
}
......@@ -269,6 +273,25 @@ public class WFMemberServiceImpl extends ServiceImpl<WFMemberMapper, WFMember> i
return true;
}
@Override
public List<WFMember> getWfmemberByIds(List<String> ids) {
return this.listByIds(ids);
}
@Override
public List<WFMember> getWfmemberByEntities(List<WFMember> entities) {
List ids =new ArrayList();
for(WFMember entity : entities){
Serializable id=entity.getMemberid();
if(!ObjectUtils.isEmpty(id)){
ids.add(id);
}
}
if(ids.size()>0)
return this.listByIds(ids);
else
return entities;
}
}
......
......@@ -184,6 +184,25 @@ public class WFUserServiceImpl extends ServiceImpl<WFUserMapper, WFUser> impleme
return true;
}
@Override
public List<WFUser> getWfuserByIds(List<String> ids) {
return this.listByIds(ids);
}
@Override
public List<WFUser> getWfuserByEntities(List<WFUser> entities) {
List ids =new ArrayList();
for(WFUser entity : entities){
Serializable id=entity.getId();
if(!ObjectUtils.isEmpty(id)){
ids.add(id);
}
}
if(ids.size()>0)
return this.listByIds(ids);
else
return entities;
}
}
......
!!!!模版产生代码错误:----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${dbinst.getUserName()} [in template "CODETEMPL_zh_CN" at line 28, column 24]
----
\ No newline at end of file
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
<!--输出实体[WF_GROUP]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-wf_group-26-1">
<createTable tableName="IBZWFGROUP">
<column name="GROUPID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_WF_GROUP_GROUPID"/>
</column>
<column name="GROUPNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="GROUPSCOPE" remarks="" type="VARCHAR(100)">
</column>
</createTable>
</changeSet>
<!--输出实体[WF_GROUP_MEMBER]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-wf_group_member-50-2">
<createTable tableName="IBZWFMEMBER">
<column name="MEMBERID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_WF_GROUP_MEMBER_MEMBERID"/>
</column>
<column name="MEMBERNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="GROUPID" remarks="" type="VARCHAR(100)">
</column>
<column name="USERID" remarks="" type="VARCHAR(100)">
</column>
</createTable>
</changeSet>
<!--输出实体[WF_DEFINITION]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-wf_definition-57-3">
<createTable tableName="IBZWFDEFINITION">
<column name="DEFINITIONKEY" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_WF_DEFINITION_DEFINITIONKEY"/>
</column>
<column name="DEFINITIONNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="MODELVERSION" remarks="" type="INT">
</column>
<column name="MODELENABLE" remarks="" type="INT">
</column>
<column name="PSSYSTEMID" remarks="" type="VARCHAR(100)">
</column>
<column name="TASKDEFINITIONKEY" remarks="" type="VARCHAR(100)">
</column>
<column name="MD5CHECK" remarks="" type="VARCHAR(100)">
</column>
<column name="BPMNFILE" remarks="" type="VARCHAR(1000)">
</column>
<column name="DEPLOYKEY" remarks="" type="VARCHAR(100)">
</column>
</createTable>
</changeSet>
<!--输出实体[WF_PSSYSTEM]数据结构 -->
<!--输出实体[WF_GROUP]外键关系 -->
<!--输出实体[WF_GROUP_MEMBER]外键关系 -->
<changeSet author="a_A_5d9d78509" id="fk-wf_group_member-50-5">
<addForeignKeyConstraint baseColumnNames="GROUPID" baseTableName="IBZWFMEMBER" constraintName="DER1N_WF_GROUP_MEMBER_WF_GROUP" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="GROUPID" referencedTableName="IBZWFGROUP" validate="true"/>
</changeSet>
<!--输出实体[WF_DEFINITION]外键关系 -->
<!--输出实体[WF_PSSYSTEM]外键关系 -->
</databaseChangeLog>
......@@ -44,7 +44,7 @@
<!--数据查询[Default]-->
<sql id="Default" databaseId="mysql">
<![CDATA[ SELECT t1.`GROUPID`, t11.`GROUPNAME`, t1.`MEMBERID`, t1.`MEMBERNAME`, t21.`PERSONNAME`, t1.`USERID` FROM `IBZWFMEMBER` t1 LEFT JOIN IBZWFGROUP t11 ON t1.GROUPID = t11.GROUPID LEFT JOIN IBZUSER t21 ON t1.USERID = t21.USERID
<![CDATA[ SELECT t1.`GROUPID`, t11.`GROUPNAME`, t21.`MDEPTID`, t21.`MDEPTNAME`, t1.`MEMBERID`, t1.`MEMBERNAME`, t21.`ORGID`, t21.`ORGNAME`, t21.`PERSONNAME`, t1.`USERID` FROM `IBZWFMEMBER` t1 LEFT JOIN IBZWFGROUP t11 ON t1.GROUPID = t11.GROUPID LEFT JOIN IBZUSER t21 ON t1.USERID = t21.USERID
]]>
</sql>
<!--数据查询[Default]-->
......
......@@ -26,7 +26,7 @@
<!--数据查询[Default]-->
<sql id="Default" databaseId="mysql">
<![CDATA[ SELECT t1.`PERSONNAME`, t1.`USERID`, t1.`USERNAME` FROM `IBZUSER` t1
<![CDATA[ SELECT t1.`BCODE`, t1.`MDEPTCODE`, t1.`MDEPTID`, t1.`MDEPTNAME`, t1.`ORGCODE`, t1.`ORGID`, t1.`ORGNAME`, t1.`PERSONNAME`, t1.`USERID`, t1.`USERNAME` FROM `IBZUSER` t1
]]>
</sql>
<!--数据查询[Default]-->
......
......@@ -17,7 +17,7 @@
"sysmoudle":{"id":"WORKFLOW","name":"workflow"},
"dedataset":[{"id":"Default" , "name":"DEFAULT"}],
"deaction":[{"id":"Create" , "name":"Create" , "type":"BUILTIN" },{"id":"Update" , "name":"Update" , "type":"BUILTIN" },{"id":"Remove" , "name":"Remove" , "type":"BUILTIN" },{"id":"Get" , "name":"Get" , "type":"BUILTIN" },{"id":"GetDraft" , "name":"GetDraft" , "type":"BUILTIN" },{"id":"CheckKey" , "name":"CheckKey" , "type":"BUILTIN" },{"id":"Save" , "name":"Save" , "type":"BUILTIN" }],
"datascope":[{"id":"all","name":"全部数据"}]
"datascope":[{"id":"all","name":"全部数据"}, {"id":"curorg","name":"当前单位"},{"id":"porg","name":"上级单位"},{"id":"sorg","name":"下级单位"} ]
}
, {
"dename":"WFGroup",
......@@ -33,7 +33,7 @@
"sysmoudle":{"id":"WORKFLOW","name":"workflow"},
"dedataset":[{"id":"Default" , "name":"DEFAULT"}],
"deaction":[{"id":"Create" , "name":"Create" , "type":"BUILTIN" },{"id":"Update" , "name":"Update" , "type":"BUILTIN" },{"id":"Remove" , "name":"Remove" , "type":"BUILTIN" },{"id":"Get" , "name":"Get" , "type":"BUILTIN" },{"id":"GetDraft" , "name":"GetDraft" , "type":"BUILTIN" },{"id":"CheckKey" , "name":"CheckKey" , "type":"BUILTIN" },{"id":"Save" , "name":"Save" , "type":"BUILTIN" }],
"datascope":[{"id":"all","name":"全部数据"}]
"datascope":[{"id":"all","name":"全部数据"}, {"id":"curorg","name":"当前单位"},{"id":"porg","name":"上级单位"},{"id":"sorg","name":"下级单位"} ]
}
, {
"dename":"WFProcessDefinition",
......
......@@ -10,6 +10,9 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
@ConditionalOnClass(apiRestConfiguration.class)
......@@ -24,6 +27,18 @@ public class apiAutoConfiguration implements ApplicationContextAware{
this.applicationContext = applicationContext;
}
@Bean("asyncExecutor")
public Executor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setQueueCapacity(2000);
executor.setKeepAliveSeconds(600);
executor.setThreadNamePrefix("asyncExecutor-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
return executor;
}
// @Bean
// public ServletRegistrationBean apiServlet() {
// AnnotationConfigWebApplicationContext dispatcherServletConfiguration = new AnnotationConfigWebApplicationContext();
......
......@@ -71,6 +71,38 @@ public class WFMemberDTO extends DTOBase implements Serializable {
@JsonProperty("personname")
private String personname;
/**
* 属性 [ORGID]
*
*/
@JSONField(name = "orgid")
@JsonProperty("orgid")
private String orgid;
/**
* 属性 [ORGNAME]
*
*/
@JSONField(name = "orgname")
@JsonProperty("orgname")
private String orgname;
/**
* 属性 [MDEPTID]
*
*/
@JSONField(name = "mdeptid")
@JsonProperty("mdeptid")
private String mdeptid;
/**
* 属性 [MDEPTNAME]
*
*/
@JSONField(name = "mdeptname")
@JsonProperty("mdeptname")
private String mdeptname;
/**
* 设置 [MEMBERNAME]
......
......@@ -47,6 +47,62 @@ public class WFUserDTO extends DTOBase implements Serializable {
@JsonProperty("displayname")
private String displayname;
/**
* 属性 [MDEPTID]
*
*/
@JSONField(name = "mdeptid")
@JsonProperty("mdeptid")
private String mdeptid;
/**
* 属性 [MDEPTCODE]
*
*/
@JSONField(name = "mdeptcode")
@JsonProperty("mdeptcode")
private String mdeptcode;
/**
* 属性 [MDEPTNAME]
*
*/
@JSONField(name = "mdeptname")
@JsonProperty("mdeptname")
private String mdeptname;
/**
* 属性 [BCODE]
*
*/
@JSONField(name = "bcode")
@JsonProperty("bcode")
private String bcode;
/**
* 属性 [ORGID]
*
*/
@JSONField(name = "orgid")
@JsonProperty("orgid")
private String orgid;
/**
* 属性 [ORGCODE]
*
*/
@JSONField(name = "orgcode")
@JsonProperty("orgcode")
private String orgcode;
/**
* 属性 [ORGNAME]
*
*/
@JSONField(name = "orgname")
@JsonProperty("orgname")
private String orgname;
/**
* 设置 [USERNAME]
......@@ -64,6 +120,46 @@ public class WFUserDTO extends DTOBase implements Serializable {
this.modify("personname",displayname);
}
/**
* 设置 [MDEPTID]
*/
public void setMdeptid(String mdeptid){
this.mdeptid = mdeptid ;
this.modify("mdeptid",mdeptid);
}
/**
* 设置 [MDEPTCODE]
*/
public void setMdeptcode(String mdeptcode){
this.mdeptcode = mdeptcode ;
this.modify("mdeptcode",mdeptcode);
}
/**
* 设置 [MDEPTNAME]
*/
public void setMdeptname(String mdeptname){
this.mdeptname = mdeptname ;
this.modify("mdeptname",mdeptname);
}
/**
* 设置 [BCODE]
*/
public void setBcode(String bcode){
this.bcode = bcode ;
this.modify("bcode",bcode);
}
/**
* 设置 [ORGCODE]
*/
public void setOrgcode(String orgcode){
this.orgcode = orgcode ;
this.modify("orgcode",orgcode);
}
}
......@@ -47,7 +47,7 @@ public class WFUserResource {
@Lazy
public WFUserMapping wfuserMapping;
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Create-all')")
@PreAuthorize("hasPermission(this.wfuserMapping.toDomain(#wfuserdto),'ibzwf-WFUser-Create')")
@ApiOperation(value = "新建用户", tags = {"用户" }, notes = "新建用户")
@RequestMapping(method = RequestMethod.POST, value = "/wfusers")
@Transactional
......@@ -58,7 +58,7 @@ public class WFUserResource {
return ResponseEntity.status(HttpStatus.OK).body(dto);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Create-all')")
@PreAuthorize("hasPermission(this.wfuserMapping.toDomain(#wfuserdtos),'ibzwf-WFUser-Create')")
@ApiOperation(value = "批量新建用户", tags = {"用户" }, notes = "批量新建用户")
@RequestMapping(method = RequestMethod.POST, value = "/wfusers/batch")
public ResponseEntity<Boolean> createBatch(@RequestBody List<WFUserDTO> wfuserdtos) {
......@@ -66,7 +66,7 @@ public class WFUserResource {
return ResponseEntity.status(HttpStatus.OK).body(true);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Update-all')")
@PreAuthorize("hasPermission(this.wfuserService.get(#wfuser_id),'ibzwf-WFUser-Update')")
@ApiOperation(value = "更新用户", tags = {"用户" }, notes = "更新用户")
@RequestMapping(method = RequestMethod.PUT, value = "/wfusers/{wfuser_id}")
@Transactional
......@@ -78,7 +78,7 @@ public class WFUserResource {
return ResponseEntity.status(HttpStatus.OK).body(dto);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Update-all')")
@PreAuthorize("hasPermission(this.wfuserService.getWfuserByEntities(this.wfuserMapping.toDomain(#wfuserdtos)),'ibzwf-WFUser-Update')")
@ApiOperation(value = "批量更新用户", tags = {"用户" }, notes = "批量更新用户")
@RequestMapping(method = RequestMethod.PUT, value = "/wfusers/batch")
public ResponseEntity<Boolean> updateBatch(@RequestBody List<WFUserDTO> wfuserdtos) {
......@@ -86,7 +86,7 @@ public class WFUserResource {
return ResponseEntity.status(HttpStatus.OK).body(true);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Remove-all')")
@PreAuthorize("hasPermission(this.wfuserService.get(#wfuser_id),'ibzwf-WFUser-Remove')")
@ApiOperation(value = "删除用户", tags = {"用户" }, notes = "删除用户")
@RequestMapping(method = RequestMethod.DELETE, value = "/wfusers/{wfuser_id}")
@Transactional
......@@ -94,7 +94,7 @@ public class WFUserResource {
return ResponseEntity.status(HttpStatus.OK).body(wfuserService.remove(wfuser_id));
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Remove-all')")
@PreAuthorize("hasPermission(this.wfuserService.getWfuserByIds(#ids),'ibzwf-WFUser-Remove')")
@ApiOperation(value = "批量删除用户", tags = {"用户" }, notes = "批量删除用户")
@RequestMapping(method = RequestMethod.DELETE, value = "/wfusers/batch")
public ResponseEntity<Boolean> removeBatch(@RequestBody List<String> ids) {
......@@ -102,7 +102,7 @@ public class WFUserResource {
return ResponseEntity.status(HttpStatus.OK).body(true);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Get-all')")
@PostAuthorize("hasPermission(this.wfuserMapping.toDomain(returnObject.body),'ibzwf-WFUser-Get')")
@ApiOperation(value = "获取用户", tags = {"用户" }, notes = "获取用户")
@RequestMapping(method = RequestMethod.GET, value = "/wfusers/{wfuser_id}")
public ResponseEntity<WFUserDTO> get(@PathVariable("wfuser_id") String wfuser_id) {
......@@ -123,14 +123,14 @@ public class WFUserResource {
return ResponseEntity.status(HttpStatus.OK).body(wfuserService.checkKey(wfuserMapping.toDomain(wfuserdto)));
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Save-all')")
@PreAuthorize("hasPermission(this.wfuserMapping.toDomain(#wfuserdto),'ibzwf-WFUser-Save')")
@ApiOperation(value = "保存用户", tags = {"用户" }, notes = "保存用户")
@RequestMapping(method = RequestMethod.POST, value = "/wfusers/save")
public ResponseEntity<Boolean> save(@RequestBody WFUserDTO wfuserdto) {
return ResponseEntity.status(HttpStatus.OK).body(wfuserService.save(wfuserMapping.toDomain(wfuserdto)));
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-Save-all')")
@PreAuthorize("hasPermission(this.wfuserMapping.toDomain(#wfuserdtos),'ibzwf-WFUser-Save')")
@ApiOperation(value = "批量保存用户", tags = {"用户" }, notes = "批量保存用户")
@RequestMapping(method = RequestMethod.POST, value = "/wfusers/savebatch")
public ResponseEntity<Boolean> saveBatch(@RequestBody List<WFUserDTO> wfuserdtos) {
......@@ -138,7 +138,7 @@ public class WFUserResource {
return ResponseEntity.status(HttpStatus.OK).body(true);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-searchDefault-all')")
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-searchDefault-all') and hasPermission(#context,'ibzwf-WFUser-Get')")
@ApiOperation(value = "获取DEFAULT", tags = {"用户" } ,notes = "获取DEFAULT")
@RequestMapping(method= RequestMethod.GET , value="/wfusers/fetchdefault")
public ResponseEntity<List<WFUserDTO>> fetchDefault(WFUserSearchContext context) {
......@@ -151,7 +151,7 @@ public class WFUserResource {
.body(list);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-searchDefault-all')")
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibzwf-WFUser-searchDefault-all') and hasPermission(#context,'ibzwf-WFUser-Get')")
@ApiOperation(value = "查询DEFAULT", tags = {"用户" } ,notes = "查询DEFAULT")
@RequestMapping(method= RequestMethod.POST , value="/wfusers/searchdefault")
public ResponseEntity<Page<WFUserDTO>> searchDefault(@RequestBody WFUserSearchContext context) {
......
......@@ -9,10 +9,7 @@ import java.lang.annotation.Target;
@Target({ ElementType.FIELD})
public @interface Audit
{
String fieldLogicName() default "";//字段逻辑名称
String dictName() default "";//代码表名称
String fieldType() default"";//字段类型
String format() default "";//格式化
}
......@@ -16,6 +16,11 @@ public @interface DEField
* @return
*/
String name() default "";
/**
* 属性名称
* @return
*/
String value() default "";
/**
* 是否为数据主键
* @return
......@@ -26,29 +31,40 @@ public @interface DEField
* @return
*/
String defaultValue() default "";
/**
* 属性类型
* @return
*/
String fieldType() default"";
/**
* 默认值类型
* @return
*/
DEFieldDefaultValueType defaultValueType() default DEFieldDefaultValueType.NONE;
/**
* 预置属性类型
* @return
*/
DEPredefinedFieldType preType() default DEPredefinedFieldType.NONE;
/**
/**
* 逻辑删除有效值
* @return
*/
String logicval() default "";
/**
* 逻辑删除无效值
* @return
*/
String logicdelval() default "";
/**
* 代码表
* @return
*/
String dict() default "";
/**
* 日期格式化
* @return
*/
String format() default "";
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册