提交 05330d08 编写于 作者: ibizdev's avatar ibizdev

ibiz4j 发布系统代码

上级 f04b93eb
## v7.0.0-alpha.17 [2020-8-9]
### Bug修复
修复系统级的操作标识异常问题
修复表格新增插件异常问题
修复表格单击行绑定数据异常bug
修复表格合计行样式问题
### 功能新增及优化
#### 模板
新增支持前后端分离部署
新增动态代码表预定义代码表支持
新增数据选择(调用接口)组件
新增部件样式表支持
优化数据服务逻辑
优化代码表服务基类、动态代码表
优化导航参数处理逻辑
优化数据拷贝逻辑
优化组织、部门、人员控件只绑定id逻辑
优化部件关联外键值
#### 基础文件
新增前后端分离部署
新增下拉列表控件支持树状代码表
新增数据选择(调用接口)组件
优化数据拷贝逻辑
优化组织、部门、人员控件只绑定id逻辑
## v7.0.0-alpha.16 [2020-8-2]
### Bug修复
......
......@@ -18,7 +18,7 @@ export default class AuthService {
public $store: Store<any> | null = null;
/**
* 默认操作
* 默认操作标识
*
* @public
* @type {(any)}
......
......@@ -103,7 +103,7 @@ export default class AppDepartmentSelect extends Vue {
* @type {*}
* @memberof AppDepartmentSelect
*/
public oldurl: any[] = [];
public oldurl: any;
/**
* 获取节点数据
......@@ -136,14 +136,14 @@ export default class AppDepartmentSelect extends Vue {
}
this.oldurl = _url;
// 缓存机制
const result:any = this.$store.getters.getDepData(this.filter);
const result:any = this.$store.getters.getDepData(_url);
if(result){
this.Nodesdata = result;
return;
}
this.$http.get(_url).then((response: any) => {
this.Nodesdata = response.data;
this.$store.commit('addDepData', { srfkey: this.filter, depData: response.data });
this.$store.commit('addDepData', { srfkey: _url, depData: response.data });
}).catch((response: any) => {
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.error') as string), desc: (this.$t('app.commonWords.sysException') as string) });
......
......@@ -21,6 +21,7 @@
<script lang="ts">
import { Component, Vue, Prop, Watch } from 'vue-property-decorator';
import { Subject } from 'rxjs';
import CodeListService from '@/service/app/codelist-service';
@Component({})
export default class AppGroupSelect extends Vue {
......@@ -64,6 +65,20 @@ export default class AppGroupSelect extends Vue {
*/
@Prop() data: any;
/**
* 代码表标识
*
* @memberof AppGroupSelect
*/
@Prop() public tag?:string;
/**
* 代码表类型
*
* @memberof AppGroupSelect
*/
@Prop() public codelistType?:string;
/**
* 过滤属性标识
*
......@@ -126,12 +141,12 @@ export default class AppGroupSelect extends Vue {
* @type {*}
* @memberof AppGroupSelect
*/
@Watch('value')
onValueChange(newVal: any) {
@Watch('data',{immediate:true,deep:true})
onValueChange(newVal: any, oldVal: any) {
this.selects = [];
if (newVal) {
let item: any = {};
item.label = newVal.split(',');
item.label = this.data[this.name]?this.data[this.name].split(','):[];
if(this.valueitem) {
item.id = this.data[this.valueitem] ? this.data[this.valueitem].split(',') : [];
}
......@@ -140,13 +155,24 @@ export default class AppGroupSelect extends Vue {
item[this.fillmap[key]] = this.data[key] ? this.data[key].split(',') : [];
}
}
item.label.forEach((val: string, index: number) => {
let _item: any = {};
for(let key in item) {
_item[key] = item[key][index] ? item[key][index] : null;
}
this.selects.push(_item)
})
const callback:any = (item:any) =>{
item.label.forEach((val: string, index: number) => {
let _item: any = {};
for(let key in item) {
_item[key] = item[key][index] ? item[key][index] : null;
}
this.selects.push(_item)
})
}
if(item.label.length == 0 && item.id.length > 0){
this.fillLabel(item,item.id,(result:any) =>{
item.label = result.label;
callback(item);
});
}else{
callback(item);
}
}
}
......@@ -259,7 +285,6 @@ export default class AppGroupSelect extends Vue {
}
});
} else {
item = this.selects.length > 0 ? this.selects[0] : {};
item[this.name] = this.selects.length > 0 ? this.selects[0].label : null;
if(this.valueitem) {
item[this.valueitem] = this.selects.length > 0 ? this.selects[0].id : null;
......@@ -273,7 +298,34 @@ export default class AppGroupSelect extends Vue {
for(let key in item) {
this.$emit('formitemvaluechange', { name: key, value: item[key] });
}
}
}
/**
* 填充label
*
* @memberof AppGroupSelect
*/
public fillLabel(tempObject:any,valueItem:Array<any>,callback:any){
if(tempObject.label.length === 0 && tempObject.id.length >0 && this.tag && this.codelistType && Object.is(this.codelistType,"DYNAMIC")){
let codeListService:CodeListService = new CodeListService();
codeListService.getItems(this.tag).then((items:any) =>{
if(items && items.length >0 && valueItem.length >0){
let tempLabel:Array<any> = [];
valueItem.forEach((value:any) =>{
let result:any = items.find((item:any) =>{
return item.id === value;
})
tempLabel.push(result.label);
})
Object.assign(tempObject,{label:tempLabel});
}
callback(tempObject);
}).catch((error:any) =>{
console.log(error);
})
}
}
}
</script>
......
.app-picker {
.app-upicker {
width: 100%;
.el-select {
.el-input__suffix {
right: 20px;
display: none;
}
}
.text-value {
......
<template>
<el-select style="width: 100%;" size='small' @change="onSelect" v-model="value" :disabled="disabled" @visible-change="onSelectOpen">
<el-option v-for="(item, index) in items" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
<div class='app-upicker'>
<el-select ref="appUpicker" :value="refvalue" size='small' filterable
@change="onSelect" :disabled="disabled" style='width:100%;' clearable
@clear="onClear" @visible-change="onSelectOpen">
<template v-if="items">
<el-option v-for="(_item,index) in items" :key="index" :value="_item.value" :label="_item.label"></el-option>
</template>
</el-select>
<span style='position: absolute;right: 5px;color: #c0c4cc;top:0;font-size: 13px;'>
<i v-show="open" class='el-icon-arrow-up' @click="closeDropdown"></i>
<i v-show="!open" class='el-icon-arrow-down' @click="openDropdown"></i>
</span>
</div>
</template>
<script lang="ts">
import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator";
import { Subject } from "rxjs";
import { AppModal } from "@/utils";
<script lang = 'ts'>
import { Component, Vue, Prop, Model, Watch } from 'vue-property-decorator';
import { Subject } from 'rxjs';
import { AppModal } from '@/utils';
@Component({})
export default class AppPicker extends Vue {
@Component({
})
export default class AppUpicker extends Vue {
/**
* 表单数据
*
* @type {*}
* @memberof AppPicker
*/
@Prop() public data!: any;
* 请求到的数据
* @type {any[]}
* @memberof AppUpicker
*/
public itemList: any[] = []
/**
* 属性项名称
*
* @type {string}
* @memberof AppPicker
*/
@Prop() public name!: string;
/**
* 视图上下文
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@Prop() public context!: any;
/**
* 编辑器禁用
* 列表项请求路径
*
* @type {boolean}
* @type {string}
* @memberof AppUpicker
*/
@Prop() disabled?: boolean;
/**
* 视图参数
*
* @type {*}
* @memberof SelectFormBase
*/
@Prop() public viewparams: any;
public url: string = '';
/**
* 请求参数和请求数据的映射关系
......@@ -60,14 +46,6 @@ export default class AppPicker extends Vue {
*/
public interaction:any = {};
/**
* 当前表单项绑定的值
*
* @type {string}
* @memberof AppUpicker
*/
public value: string = "";
/**
* 编辑器参数
*
......@@ -76,61 +54,245 @@ export default class AppPicker extends Vue {
*/
@Prop() public itemParams?: any;
/**
* 编辑器参数
*
* @type {string}
* @memberof AppUpicker
*/
@Prop() public valueItem?: string;
/**
* 视图上下文
*
* @type {*}
* @memberof AppUpicker
*/
@Prop() public context!: any;
/**
* 列表项请求路径
*
* @type {string}
* @memberof AppUpicker
*/
public url: string = '';
/**
* 视图参数
*
* @type {*}
* @memberof AppUpicker
*/
@Prop() public viewparams!: any;
/**
* 下拉数组
* @type {any[]}
* @memberof AppPicker
*/
public items: any[] = [];
/**
* 表单数据
*
* @type {*}
* @memberof AppUpicker
*/
@Prop() public data!: any;
/**
* 请求到的数据
* @type {any[]}
* @memberof AppPicker
*/
public itemList: any[] = [{a:1,b:"zhangsan"},{a:2,b:"lisi"},{a:3,b:"wangwu"}]
/**
* 属性项名称
*
* @type {string}
* @memberof AppUpicker
*/
@Prop() public name!: string;
/**
* 是否启用
*
* @type {boolean}
* @memberof AppUpicker
*/
@Prop() public disabled?: boolean;
/**
* 是否显示按钮
*
* @type {boolean}
* @memberof AppUpicker
*/
@Prop({default:true}) public showButton?: boolean;
/**
* 局部上下文导航参数
*
* @type {any}
* @memberof AppUpicker
*/
@Prop() public localContext!:any;
/**
* 局部导航参数
*
* @type {any}
* @memberof AppUpicker
*/
@Prop() public localParam!:any;
/**
* 值项名称
*
* @type {string}
* @memberof AppUpicker
*/
@Prop() public valueitem!: string;
/**
* 排序
*
* @type {string}
* @memberof AppUpicker
*/
@Prop() public sort?: string;
/**
* 值
*
* @type {*}
* @memberof AppUpicker
*/
@Model('change') public value?: any;
/**
* 当前值
*
* @type {string}
* @memberof AppUpicker
*/
public curvalue: string = '';
/**
* 下拉数组
* @type {any[]}
* @memberof AppUpicker
*/
public items: any[] = [];
/**
* 下拉图标指向状态管理
* @type {boolean}
* @memberof AppUpicker
*/
public open: boolean = false;
/**
* 输入状态
*
* @type {boolean}
* @memberof AppUpicker
*/
public inputState: boolean = false;
/**
* vue 生命周期
*
* @memberof AppPicker
* @memberof AppUpicker
*/
public mounted() {
// 解析编辑器参数
public created() {
this.analysis(this.itemParams);
// 请求下拉数据
this.fectchItemList(this.url);
}
}
/**
* 获取关联数据项值
*
* @readonly
* @memberof AppUpicker
*/
get refvalue() {
if (this.valueitem && this.data) {
return this.data[this.valueitem];
}
return this.curvalue;
}
/**
* 下拉重新加载数据
/**
* 展开下拉
*
* @memberof AppPicker
* @memberof AppUpicker
*/
public onSelectOpen() {
this.fectchItemList(this.url);
}
public openDropdown() {
const appUpicker: any = this.$refs.appUpicker;
if(appUpicker) {
appUpicker.focus();
}
}
/**
* 收起下拉
*
* @memberof AppUpicker
*/
public closeDropdown() {
const appUpicker: any = this.$refs.appUpicker;
if(appUpicker) {
appUpicker.blur();
}
}
/**
* 下拉切换回调
* @param flag
*
* @memberof AppUpicker
*/
public onSelectOpen(flag: boolean): void {
this.open = flag;
if (this.open) {
this.fectchItemList(this.url);
}
}
/**
* 下拉选中
*
* @param {string} val
* @memberof AppUpicker
*/
public onSelect(val: string) {
let index = this.items.findIndex((item) => Object.is(item.value, val));
if (index >= 0) {
let item:any = this.items[index];
if (this.valueitem) {
this.$emit('formitemvaluechange', { name: this.valueitem, value: item.value });
}
if (this.name) {
this.$emit('formitemvaluechange', { name: this.name, value: item.label });
}
}
}
/**
* 清除
*
* @memberof AppUpicker
*/
public onClear($event: any): void {
if (this.valueitem) {
this.$emit('formitemvaluechange', { name: this.valueitem, value: '' });
}
if (this.name) {
this.$emit('formitemvaluechange', { name: this.name, value: '' });
}
this.$forceUpdate();
}
/**
* 值变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AppUpicker
*/
@Watch('value',{immediate:true})
public onValueChange(newVal: any, oldVal: any) {
this.analysis(this.itemParams);
if(newVal){
this.curvalue = newVal;
const value = this.data[this.valueitem];
const index = this.items.findIndex((item: any) => Object.is(item.value, value));
if (index !== -1) {
return;
}
this.items = [];
if (value) {
this.items.push({text: newVal, value: value});
}
}
}
/**
* 解析编辑器参数
* @param {*} itemparams
* @memberof AppPicker
*
* @memberof AppUpicker
*/
public analysis(itemparams:any) {
Object.keys(itemparams).forEach((param)=>{
......@@ -139,17 +301,20 @@ export default class AppPicker extends Vue {
}else{
this.interaction[param] = itemparams[param]
}
})
})
}
/**
* 请求下拉列表数据
* @param {string} url
* @memberof AppPicker
*
* @memberof AppUpicker
*/
public fectchItemList(url:string) {
let arg:any = {};
this.handlePublicParams(arg);
this.$http
.get(url)
.get(url,arg.param)
.then((response: any) => {
if (response && response.status==200 && response.data) {
this.itemList = response.data;
......@@ -172,36 +337,44 @@ export default class AppPicker extends Vue {
* 解析下拉列表数据
* @param {any[]} itemList 请求到的数据
* @param {any[]} items 下拉数组
* @memberof AppPicker
*
* @memberof AppUpicker
*/
public extractItem(itemList:any[],items:any[]) {
this.items.length = 0;
this.items = [];
itemList.forEach((item) => {
items.push({
this.items.push({
label: item[this.interaction.label],
value: item[this.interaction.value],
});
});
}
public onSelect(val: string) {
let index = this.items.findIndex((item) => Object.is(item.value, val));
if (index >= 0) {
this.onACSelect(this.items[index]);
}
});
}
/**
* 选中数据回调
* @param item
*/
public onACSelect(item: any): void {
if(this.name){
this.$emit('formitemvaluechange', { name: this.name, value: item.value });
}
if(this.valueItem){
this.$emit('formitemvaluechange', { name: this.valueItem, value: item.value });
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof AppUpicker
*/
public handlePublicParams(arg: any): boolean {
if (!this.data) {
this.$Notice.error({ title: (this.$t('components.appPicker.error') as any), desc: (this.$t('components.appPicker.formdataException') as any) });
return false;
}
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.localContext && Object.keys(this.localContext).length >0) {
let _context = this.$util.computedNavData(this.data,arg.context,arg.param,this.localContext);
Object.assign(arg.context,_context);
}
if (this.localParam && Object.keys(this.localParam).length >0) {
let _param = this.$util.computedNavData(this.data,arg.param,arg.param,this.localParam);
Object.assign(arg.param,_param);
}
return true;
}
}
</script>
......
......@@ -193,19 +193,19 @@ export default class EditViewEngine extends ViewEngine {
*/
public setTabCaption(info: string,isNew:boolean): void {
let viewdata: any = this.view.model;
let index:number = viewdata.srfTitle.indexOf("-");
let index:number = viewdata.srfCaption.indexOf("-");
if (viewdata && info && !Object.is(info, '')) {
if(index !== -1){
viewdata.srfTitle = viewdata.srfTitle.substr(0,index);
viewdata.srfCaption = viewdata.srfCaption.substr(0,index);
}
// 解决表格视图标题问题
if(this.view.$tabPageExp && this.view.viewDefaultUsage){
this.view.$tabPageExp.setCurPageCaption(this.view.$t(viewdata.srfTitle), this.view.$t(viewdata.srfTitle), info);
this.view.$tabPageExp.setCurPageCaption(this.view.$t(viewdata.srfCaption), this.view.$t(viewdata.srfCaption), info);
}
if(this.view.$route){
this.view.$route.meta.info = info;
}
this.view.model.srfTitle = `${this.view.$t(viewdata.srfTitle)}-${viewdata.dataInfo}`;
this.view.model.srfCaption = `${this.view.$t(viewdata.srfCaption)}-${viewdata.dataInfo}`;
this.view.initNavDataWithRoute(null,isNew);
}
}
......
......@@ -197,6 +197,7 @@ export default {
back: "Back",
next: "Next",
complete: "Complete",
preactionmessage:"The calculation of the previous behavior is not configured"
},
viewLayoutPanel: {
appLogoutView: {
......
......@@ -196,6 +196,7 @@ export default {
back: "上一步",
next: "下一步",
complete: "完成",
preactionmessage:"未配置计算上一步行为"
},
viewLayoutPanel: {
appLogoutView: {
......
<template>
<div class="view-container deeditview jobs-info-edit-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="jobsinfoeditview"></app-studioaction>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsinfoeditview"></app-studioaction>
<card class='view-card ' :disHover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' @click="toolbar_click({ tag: 'tbitem3' }, $event)">
......@@ -470,7 +470,7 @@ export default class JobsInfoEditViewBase extends Vue {
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'jobs-info-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobsinfo,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
this.navDataService.addNavData({id:'jobs-info-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobsinfo,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
......@@ -481,7 +481,7 @@ export default class JobsInfoEditViewBase extends Vue {
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'jobs-info-edit-view',tag:this.viewtag,srfkey:this.context.jobsinfo,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
this.navDataService.addNavDataByOnly({id:'jobs-info-edit-view',tag:this.viewtag,srfkey:this.context.jobsinfo,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
......
<template>
<div class='view-container degridview jobs-info-grid-view'>
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="jobsinfogridview"></app-studioaction>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsinfogridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
</div>
<div class='content-container'>
<div class='view-top-messages'>
......@@ -549,7 +549,7 @@ export default class JobsInfoGridViewBase extends Vue {
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'jobs-info-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobsinfo,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
this.navDataService.addNavData({id:'jobs-info-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobsinfo,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
......@@ -560,7 +560,7 @@ export default class JobsInfoGridViewBase extends Vue {
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'jobs-info-grid-view',tag:this.viewtag,srfkey:this.context.jobsinfo,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
this.navDataService.addNavDataByOnly({id:'jobs-info-grid-view',tag:this.viewtag,srfkey:this.context.jobsinfo,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
......
<template>
<div class="view-container deeditview jobs-log-edit-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="jobslogeditview"></app-studioaction>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobslogeditview"></app-studioaction>
<card class='view-card view-no-toolbar' :disHover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
</div>
<div class="content-container">
......@@ -440,7 +440,7 @@ export default class JobsLogEditViewBase extends Vue {
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'jobs-log-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobslog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
this.navDataService.addNavData({id:'jobs-log-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobslog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
......@@ -451,7 +451,7 @@ export default class JobsLogEditViewBase extends Vue {
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'jobs-log-edit-view',tag:this.viewtag,srfkey:this.context.jobslog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
this.navDataService.addNavDataByOnly({id:'jobs-log-edit-view',tag:this.viewtag,srfkey:this.context.jobslog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
......
<template>
<div class='view-container degridview jobs-log-grid-view'>
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="jobsloggridview"></app-studioaction>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsloggridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
</div>
<div class='content-container'>
<div class='view-top-messages'>
......@@ -474,7 +474,7 @@ export default class JobsLogGridViewBase extends Vue {
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'jobs-log-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobslog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
this.navDataService.addNavData({id:'jobs-log-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobslog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
......@@ -485,7 +485,7 @@ export default class JobsLogGridViewBase extends Vue {
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'jobs-log-grid-view',tag:this.viewtag,srfkey:this.context.jobslog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
this.navDataService.addNavDataByOnly({id:'jobs-log-grid-view',tag:this.viewtag,srfkey:this.context.jobslog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
......
<template>
<div class="view-container deeditview jobs-registry-edit-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="jobsregistryeditview"></app-studioaction>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsregistryeditview"></app-studioaction>
<card class='view-card ' :disHover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' @click="toolbar_click({ tag: 'tbitem3' }, $event)">
......@@ -470,7 +470,7 @@ export default class JobsRegistryEditViewBase extends Vue {
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'jobs-registry-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobsregistry,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
this.navDataService.addNavData({id:'jobs-registry-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobsregistry,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
......@@ -481,7 +481,7 @@ export default class JobsRegistryEditViewBase extends Vue {
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'jobs-registry-edit-view',tag:this.viewtag,srfkey:this.context.jobsregistry,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
this.navDataService.addNavDataByOnly({id:'jobs-registry-edit-view',tag:this.viewtag,srfkey:this.context.jobsregistry,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
......
<template>
<div class='view-container degridview jobs-registry-grid-view'>
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="jobsregistrygridview"></app-studioaction>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsregistrygridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
</div>
<div class='content-container'>
<div class='view-top-messages'>
......@@ -522,7 +522,7 @@ export default class JobsRegistryGridViewBase extends Vue {
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'jobs-registry-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobsregistry,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
this.navDataService.addNavData({id:'jobs-registry-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.jobsregistry,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
......@@ -533,7 +533,7 @@ export default class JobsRegistryGridViewBase extends Vue {
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'jobs-registry-grid-view',tag:this.viewtag,srfkey:this.context.jobsregistry,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
this.navDataService.addNavDataByOnly({id:'jobs-registry-grid-view',tag:this.viewtag,srfkey:this.context.jobsregistry,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
......
......@@ -25,7 +25,7 @@ const router = new Router({
});
},
meta: {
caption: 'app.views.taskindexview.title',
caption: 'app.views.taskindexview.caption',
info:'',
viewType: 'APPINDEX',
parameters: [
......@@ -38,7 +38,7 @@ const router = new Router({
{
path: 'jobslogs/:jobslog?/gridview/:gridview?',
meta: {
caption: 'entities.jobslog.views.gridview.title',
caption: 'entities.jobslog.views.gridview.caption',
info:'',
parameters: [
{ pathName: 'taskindexview', parameterName: 'taskindexview' },
......@@ -52,7 +52,7 @@ const router = new Router({
{
path: 'jobsregistries/:jobsregistry?/editview/:editview?',
meta: {
caption: 'entities.jobsregistry.views.editview.title',
caption: 'entities.jobsregistry.views.editview.caption',
info:'',
parameters: [
{ pathName: 'taskindexview', parameterName: 'taskindexview' },
......@@ -66,7 +66,7 @@ const router = new Router({
{
path: 'jobsregistries/:jobsregistry?/gridview/:gridview?',
meta: {
caption: 'entities.jobsregistry.views.gridview.title',
caption: 'entities.jobsregistry.views.gridview.caption',
info:'',
parameters: [
{ pathName: 'taskindexview', parameterName: 'taskindexview' },
......@@ -80,7 +80,7 @@ const router = new Router({
{
path: 'jobslogs/:jobslog?/editview/:editview?',
meta: {
caption: 'entities.jobslog.views.editview.title',
caption: 'entities.jobslog.views.editview.caption',
info:'',
parameters: [
{ pathName: 'taskindexview', parameterName: 'taskindexview' },
......@@ -94,7 +94,7 @@ const router = new Router({
{
path: 'jobsinfos/:jobsinfo?/editview/:editview?',
meta: {
caption: 'entities.jobsinfo.views.editview.title',
caption: 'entities.jobsinfo.views.editview.caption',
info:'',
parameters: [
{ pathName: 'taskindexview', parameterName: 'taskindexview' },
......@@ -108,7 +108,7 @@ const router = new Router({
{
path: 'jobsinfos/:jobsinfo?/gridview/:gridview?',
meta: {
caption: 'entities.jobsinfo.views.gridview.title',
caption: 'entities.jobsinfo.views.gridview.caption',
info:'',
parameters: [
{ pathName: 'taskindexview', parameterName: 'taskindexview' },
......@@ -125,7 +125,7 @@ const router = new Router({
{
path: '/jobsinfos/:jobsinfo?/gridview/:gridview?',
meta: {
caption: 'entities.jobsinfo.views.gridview.title',
caption: 'entities.jobsinfo.views.gridview.caption',
info:'',
parameters: [
{ pathName: 'jobsinfos', parameterName: 'jobsinfo' },
......@@ -138,7 +138,7 @@ const router = new Router({
{
path: '/jobsinfos/:jobsinfo?/editview/:editview?',
meta: {
caption: 'entities.jobsinfo.views.editview.title',
caption: 'entities.jobsinfo.views.editview.caption',
info:'',
parameters: [
{ pathName: 'jobsinfos', parameterName: 'jobsinfo' },
......@@ -151,7 +151,7 @@ const router = new Router({
{
path: '/jobsregistries/:jobsregistry?/editview/:editview?',
meta: {
caption: 'entities.jobsregistry.views.editview.title',
caption: 'entities.jobsregistry.views.editview.caption',
info:'',
parameters: [
{ pathName: 'jobsregistries', parameterName: 'jobsregistry' },
......@@ -164,7 +164,7 @@ const router = new Router({
{
path: '/jobslogs/:jobslog?/editview/:editview?',
meta: {
caption: 'entities.jobslog.views.editview.title',
caption: 'entities.jobslog.views.editview.caption',
info:'',
parameters: [
{ pathName: 'jobslogs', parameterName: 'jobslog' },
......@@ -177,7 +177,7 @@ const router = new Router({
{
path: '/jobsregistries/:jobsregistry?/gridview/:gridview?',
meta: {
caption: 'entities.jobsregistry.views.gridview.title',
caption: 'entities.jobsregistry.views.gridview.caption',
info:'',
parameters: [
{ pathName: 'jobsregistries', parameterName: 'jobsregistry' },
......@@ -190,7 +190,7 @@ const router = new Router({
{
path: '/jobslogs/:jobslog?/gridview/:gridview?',
meta: {
caption: 'entities.jobslog.views.gridview.title',
caption: 'entities.jobslog.views.gridview.caption',
info:'',
parameters: [
{ pathName: 'jobslogs', parameterName: 'jobslog' },
......
......@@ -412,7 +412,7 @@ export default class TaskIndexViewBase extends Vue {
*/
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'task-index-view',tag:this.viewtag,srfkey:isNew ? null : null,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
this.navDataService.addNavData({id:'task-index-view',tag:this.viewtag,srfkey:isNew ? null : null,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
......@@ -423,7 +423,7 @@ export default class TaskIndexViewBase extends Vue {
*/
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'task-index-view',tag:this.viewtag,srfkey:null,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
this.navDataService.addNavDataByOnly({id:'task-index-view',tag:this.viewtag,srfkey:null,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
}
}
......
......@@ -62,6 +62,7 @@
</i-col>
</row>
</i-form>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator';
......
......@@ -801,6 +801,9 @@ export default class MainBase extends Vue implements ControlInterface {
if(!falg.hasOwnProperty("isPast")){
falg.isPast = true;
}
if(!this.data[name]){
falg.isPast = true;
}
return falg;
}
......@@ -1484,6 +1487,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (Object.is('refresh', action)) {
this.refresh(data);
}
if (Object.is('panelaction', action)) {
this.panelAction(data.action,data.emitAction,data);
}
});
}
this.dataChang
......@@ -1975,6 +1981,50 @@ export default class MainBase extends Vue implements ControlInterface {
})
}
/**
* 面板行为
*
* @param {string} [action] 调用的实体行为
* @param {string} [emitAction] 抛出行为
* @param {*} [data={}] 传入数据
* @param {boolean} [showloading] 是否显示加载状态
*
* @memberof MainBase
*/
public panelAction(action:string,emitAction:string,data:any ={},showloading?:boolean):void{
if (!action || (action && Object.is(action, ''))) {
return;
}
const arg: any = { ...data };
const formdata = this.getValues();
Object.assign(arg, formdata);
Object.assign(arg,this.viewparams);
const post: Promise<any> = this.service.frontLogic(action,JSON.parse(JSON.stringify(this.context)),arg, showloading);
post.then((response: any) => {
if (!response.status || response.status !== 200) {
if (response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
}
return;
}
const data = response.data;
this.onFormLoad(data,emitAction);
this.$emit(emitAction, data);
this.$nextTick(() => {
this.formState.next({ type: emitAction, data: data });
});
}).catch((response: any) => {
if (response && response.status && response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.sysException') as string) });
return;
}
});
}
/**
* 表单项更新
*
......
<template>
<div class='grid' style="height:100%">
<i-form style="height:100%;display:flex;flex-direction: column;justify-content: space-between">
<i-form style="height:100%;display:flex;flex-direction: column;justify-content: space-between">
<el-table v-if="isDisplay === true"
:default-sort="{ prop: minorSortPSDEF, order: Object.is(minorSortDir, 'ASC') ? 'ascending' : Object.is(minorSortDir, 'DESC') ? 'descending' : '' }"
@sort-change="onSortChange($event)"
......@@ -1385,7 +1385,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
// 已选中则删除,没选中则添加
let selectIndex = this.selections.findIndex((item:any)=>{
return Object.is(item.jobs_info,$event.jobs_info);
return Object.is(item.jobsinfo,$event.jobsinfo);
});
if (Object.is(selectIndex,-1)){
this.selections.push(JSON.parse(JSON.stringify($event)));
......
......@@ -36,7 +36,7 @@
height: 100%;
display:flex;
flex-direction: column;
justify-content: start;
justify-content: flex-start;
.el-table__row{
.grid-uiaction-divider {
padding:0 10px 0 10px;
......@@ -66,6 +66,15 @@
margin-bottom: 20px;
}
}
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
}
.grid-pagination {
height: 50px;
......
......@@ -56,6 +56,7 @@
</i-col>
</row>
</i-form>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator';
......
......@@ -687,6 +687,9 @@ export default class MainBase extends Vue implements ControlInterface {
if(!falg.hasOwnProperty("isPast")){
falg.isPast = true;
}
if(!this.data[name]){
falg.isPast = true;
}
return falg;
}
......@@ -1295,6 +1298,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (Object.is('refresh', action)) {
this.refresh(data);
}
if (Object.is('panelaction', action)) {
this.panelAction(data.action,data.emitAction,data);
}
});
}
this.dataChang
......@@ -1786,6 +1792,50 @@ export default class MainBase extends Vue implements ControlInterface {
})
}
/**
* 面板行为
*
* @param {string} [action] 调用的实体行为
* @param {string} [emitAction] 抛出行为
* @param {*} [data={}] 传入数据
* @param {boolean} [showloading] 是否显示加载状态
*
* @memberof MainBase
*/
public panelAction(action:string,emitAction:string,data:any ={},showloading?:boolean):void{
if (!action || (action && Object.is(action, ''))) {
return;
}
const arg: any = { ...data };
const formdata = this.getValues();
Object.assign(arg, formdata);
Object.assign(arg,this.viewparams);
const post: Promise<any> = this.service.frontLogic(action,JSON.parse(JSON.stringify(this.context)),arg, showloading);
post.then((response: any) => {
if (!response.status || response.status !== 200) {
if (response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
}
return;
}
const data = response.data;
this.onFormLoad(data,emitAction);
this.$emit(emitAction, data);
this.$nextTick(() => {
this.formState.next({ type: emitAction, data: data });
});
}).catch((response: any) => {
if (response && response.status && response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.sysException') as string) });
return;
}
});
}
/**
* 表单项更新
*
......
<template>
<div class='grid' style="height:100%">
<i-form style="height:100%;display:flex;flex-direction: column;justify-content: space-between">
<i-form style="height:100%;display:flex;flex-direction: column;justify-content: space-between">
<el-table v-if="isDisplay === true"
:default-sort="{ prop: minorSortPSDEF, order: Object.is(minorSortDir, 'ASC') ? 'ascending' : Object.is(minorSortDir, 'DESC') ? 'descending' : '' }"
@sort-change="onSortChange($event)"
......@@ -1355,7 +1355,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
// 已选中则删除,没选中则添加
let selectIndex = this.selections.findIndex((item:any)=>{
return Object.is(item.jobs_log,$event.jobs_log);
return Object.is(item.jobslog,$event.jobslog);
});
if (Object.is(selectIndex,-1)){
this.selections.push(JSON.parse(JSON.stringify($event)));
......
......@@ -36,7 +36,7 @@
height: 100%;
display:flex;
flex-direction: column;
justify-content: start;
justify-content: flex-start;
.el-table__row{
.grid-uiaction-divider {
padding:0 10px 0 10px;
......@@ -66,6 +66,15 @@
margin-bottom: 20px;
}
}
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
}
.grid-pagination {
height: 50px;
......
......@@ -48,6 +48,7 @@
</i-col>
</row>
</i-form>
</template>
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator';
......
......@@ -585,6 +585,9 @@ export default class MainBase extends Vue implements ControlInterface {
if(!falg.hasOwnProperty("isPast")){
falg.isPast = true;
}
if(!this.data[name]){
falg.isPast = true;
}
return falg;
}
......@@ -1103,6 +1106,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (Object.is('refresh', action)) {
this.refresh(data);
}
if (Object.is('panelaction', action)) {
this.panelAction(data.action,data.emitAction,data);
}
});
}
this.dataChang
......@@ -1594,6 +1600,50 @@ export default class MainBase extends Vue implements ControlInterface {
})
}
/**
* 面板行为
*
* @param {string} [action] 调用的实体行为
* @param {string} [emitAction] 抛出行为
* @param {*} [data={}] 传入数据
* @param {boolean} [showloading] 是否显示加载状态
*
* @memberof MainBase
*/
public panelAction(action:string,emitAction:string,data:any ={},showloading?:boolean):void{
if (!action || (action && Object.is(action, ''))) {
return;
}
const arg: any = { ...data };
const formdata = this.getValues();
Object.assign(arg, formdata);
Object.assign(arg,this.viewparams);
const post: Promise<any> = this.service.frontLogic(action,JSON.parse(JSON.stringify(this.context)),arg, showloading);
post.then((response: any) => {
if (!response.status || response.status !== 200) {
if (response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
}
return;
}
const data = response.data;
this.onFormLoad(data,emitAction);
this.$emit(emitAction, data);
this.$nextTick(() => {
this.formState.next({ type: emitAction, data: data });
});
}).catch((response: any) => {
if (response && response.status && response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.sysException') as string) });
return;
}
});
}
/**
* 表单项更新
*
......
<template>
<div class='grid' style="height:100%">
<i-form style="height:100%;display:flex;flex-direction: column;justify-content: space-between">
<i-form style="height:100%;display:flex;flex-direction: column;justify-content: space-between">
<el-table v-if="isDisplay === true"
:default-sort="{ prop: minorSortPSDEF, order: Object.is(minorSortDir, 'ASC') ? 'ascending' : Object.is(minorSortDir, 'DESC') ? 'descending' : '' }"
@sort-change="onSortChange($event)"
......@@ -1285,7 +1285,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
// 已选中则删除,没选中则添加
let selectIndex = this.selections.findIndex((item:any)=>{
return Object.is(item.jobs_registry,$event.jobs_registry);
return Object.is(item.jobsregistry,$event.jobsregistry);
});
if (Object.is(selectIndex,-1)){
this.selections.push(JSON.parse(JSON.stringify($event)));
......
......@@ -36,7 +36,7 @@
height: 100%;
display:flex;
flex-direction: column;
justify-content: start;
justify-content: flex-start;
.el-table__row{
.grid-uiaction-divider {
padding:0 10px 0 10px;
......@@ -66,6 +66,15 @@
margin-bottom: 20px;
}
}
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
}
.grid-pagination {
height: 50px;
......
......@@ -4,9 +4,9 @@ public class DTOClient extends DTOBase {
@Override
public void modify(String field,Object val) {
getExtensionparams().put("dirtyflagenable",true);
if(val==null){
this.getFocusNull().add(field.toLowerCase());
getExtensionparams().put("dirtyflagenable",true);
getExtensionparams().put(field.toLowerCase()+"dirtyflag",true);
}
else{
......
......@@ -29,6 +29,9 @@ public class PermissionSyncJob implements ApplicationRunner {
@Value("${ibiz.systemid:ibztask}")
private String systemId;
@Value("${ibiz.systemname:ibztask}")
private String systemName;
@Override
......@@ -39,7 +42,7 @@ public class PermissionSyncJob implements ApplicationRunner {
String permissionResult = IOUtils.toString(permission,"UTF-8");
JSONObject system= new JSONObject();
system.put("pssystemid",systemId);
system.put("pssystemname",systemId);
system.put("pssystemname",systemName);
system.put("sysstructure",JSONObject.parseObject(permissionResult));
system.put("md5check",DigestUtils.md5DigestAsHex(permissionResult.getBytes()));
if(client.syncSysAuthority(system)){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册