提交 10a37506 编写于 作者: ibizdev's avatar ibizdev

ibiz4j 发布系统代码

上级 db547d5b
## v7.0.0-alpha.17 [2020-8-9]
### Bug修复
修复系统级的操作标识异常问题
修复表格新增插件异常问题
修复表格单击行绑定数据异常bug
修复表格合计行样式问题
### 功能新增及优化
#### 模板
新增支持前后端分离部署
新增动态代码表预定义代码表支持
新增数据选择(调用接口)组件
新增部件样式表支持
优化数据服务逻辑
优化代码表服务基类、动态代码表
优化导航参数处理逻辑
优化数据拷贝逻辑
优化组织、部门、人员控件只绑定id逻辑
优化部件关联外键值
#### 基础文件
新增前后端分离部署
新增下拉列表控件支持树状代码表
新增数据选择(调用接口)组件
优化数据拷贝逻辑
优化组织、部门、人员控件只绑定id逻辑
## v7.0.0-alpha.16 [2020-8-2] ## v7.0.0-alpha.16 [2020-8-2]
### Bug修复 ### Bug修复
......
...@@ -18,7 +18,7 @@ export default class AuthService { ...@@ -18,7 +18,7 @@ export default class AuthService {
public $store: Store<any> | null = null; public $store: Store<any> | null = null;
/** /**
* 默认操作 * 默认操作标识
* *
* @public * @public
* @type {(any)} * @type {(any)}
......
...@@ -103,7 +103,7 @@ export default class AppDepartmentSelect extends Vue { ...@@ -103,7 +103,7 @@ export default class AppDepartmentSelect extends Vue {
* @type {*} * @type {*}
* @memberof AppDepartmentSelect * @memberof AppDepartmentSelect
*/ */
public oldurl: any[] = []; public oldurl: any;
/** /**
* 获取节点数据 * 获取节点数据
...@@ -136,14 +136,14 @@ export default class AppDepartmentSelect extends Vue { ...@@ -136,14 +136,14 @@ export default class AppDepartmentSelect extends Vue {
} }
this.oldurl = _url; this.oldurl = _url;
// 缓存机制 // 缓存机制
const result:any = this.$store.getters.getDepData(this.filter); const result:any = this.$store.getters.getDepData(_url);
if(result){ if(result){
this.Nodesdata = result; this.Nodesdata = result;
return; return;
} }
this.$http.get(_url).then((response: any) => { this.$http.get(_url).then((response: any) => {
this.Nodesdata = response.data; 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) => { }).catch((response: any) => {
if (!response || !response.status || !response.data) { 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) }); this.$Notice.error({ title: (this.$t('app.commonWords.error') as string), desc: (this.$t('app.commonWords.sysException') as string) });
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
<script lang="ts"> <script lang="ts">
import { Component, Vue, Prop, Watch } from 'vue-property-decorator'; import { Component, Vue, Prop, Watch } from 'vue-property-decorator';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
import CodeListService from '@/service/app/codelist-service';
@Component({}) @Component({})
export default class AppGroupSelect extends Vue { export default class AppGroupSelect extends Vue {
...@@ -64,6 +65,20 @@ export default class AppGroupSelect extends Vue { ...@@ -64,6 +65,20 @@ export default class AppGroupSelect extends Vue {
*/ */
@Prop() data: any; @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 { ...@@ -126,12 +141,12 @@ export default class AppGroupSelect extends Vue {
* @type {*} * @type {*}
* @memberof AppGroupSelect * @memberof AppGroupSelect
*/ */
@Watch('value') @Watch('data',{immediate:true,deep:true})
onValueChange(newVal: any) { onValueChange(newVal: any, oldVal: any) {
this.selects = []; this.selects = [];
if (newVal) { if (newVal) {
let item: any = {}; let item: any = {};
item.label = newVal.split(','); item.label = this.data[this.name]?this.data[this.name].split(','):[];
if(this.valueitem) { if(this.valueitem) {
item.id = this.data[this.valueitem] ? this.data[this.valueitem].split(',') : []; item.id = this.data[this.valueitem] ? this.data[this.valueitem].split(',') : [];
} }
...@@ -140,6 +155,7 @@ export default class AppGroupSelect extends Vue { ...@@ -140,6 +155,7 @@ export default class AppGroupSelect extends Vue {
item[this.fillmap[key]] = this.data[key] ? this.data[key].split(',') : []; item[this.fillmap[key]] = this.data[key] ? this.data[key].split(',') : [];
} }
} }
const callback:any = (item:any) =>{
item.label.forEach((val: string, index: number) => { item.label.forEach((val: string, index: number) => {
let _item: any = {}; let _item: any = {};
for(let key in item) { for(let key in item) {
...@@ -148,6 +164,16 @@ export default class AppGroupSelect extends Vue { ...@@ -148,6 +164,16 @@ export default class AppGroupSelect extends Vue {
this.selects.push(_item) 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 { ...@@ -259,7 +285,6 @@ export default class AppGroupSelect extends Vue {
} }
}); });
} else { } else {
item = this.selects.length > 0 ? this.selects[0] : {};
item[this.name] = this.selects.length > 0 ? this.selects[0].label : null; item[this.name] = this.selects.length > 0 ? this.selects[0].label : null;
if(this.valueitem) { if(this.valueitem) {
item[this.valueitem] = this.selects.length > 0 ? this.selects[0].id : null; item[this.valueitem] = this.selects.length > 0 ? this.selects[0].id : null;
...@@ -274,6 +299,33 @@ export default class AppGroupSelect extends Vue { ...@@ -274,6 +299,33 @@ export default class AppGroupSelect extends Vue {
this.$emit('formitemvaluechange', { name: key, value: item[key] }); 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> </script>
......
.app-picker { .app-upicker {
width: 100%; width: 100%;
.el-select { .el-select {
.el-input__suffix { .el-input__suffix {
right: 20px; display: none;
} }
} }
.text-value { .text-value {
......
<template> <template>
<el-select style="width: 100%;" size='small' @change="onSelect" v-model="value" :disabled="disabled" @visible-change="onSelectOpen"> <div class='app-upicker'>
<el-option v-for="(item, index) in items" :key="index" :label="item.label" :value="item.value"></el-option> <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> </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> </template>
<script lang="ts"> <script lang = 'ts'>
import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator"; import { Component, Vue, Prop, Model, Watch } from 'vue-property-decorator';
import { Subject } from "rxjs"; import { Subject } from 'rxjs';
import { AppModal } from "@/utils"; import { AppModal } from '@/utils';
@Component({}) @Component({
export default class AppPicker extends Vue { })
export default class AppUpicker extends Vue {
/**
* 请求到的数据
* @type {any[]}
* @memberof AppUpicker
*/
public itemList: any[] = []
/**
* 列表项请求路径
*
* @type {string}
* @memberof AppUpicker
*/
public url: string = '';
/**
* 请求参数和请求数据的映射关系
*
* @type {*}
* @memberof AppUpicker
*/
public interaction:any = {};
/**
* 编辑器参数
*
* @type {*}
* @memberof AppUpicker
*/
@Prop() public itemParams?: any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppUpicker
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof AppUpicker
*/
@Prop() public viewparams!: any;
/** /**
* 表单数据 * 表单数据
* *
* @type {*} * @type {*}
* @memberof AppPicker * @memberof AppUpicker
*/ */
@Prop() public data!: any; @Prop() public data!: any;
...@@ -24,113 +82,217 @@ export default class AppPicker extends Vue { ...@@ -24,113 +82,217 @@ export default class AppPicker extends Vue {
* 属性项名称 * 属性项名称
* *
* @type {string} * @type {string}
* @memberof AppPicker * @memberof AppUpicker
*/ */
@Prop() public name!: string; @Prop() public name!: string;
/** /**
* 视图上下文 * 是否启用
* *
* @type {*} * @type {boolean}
* @memberof AppFormDRUIPart * @memberof AppUpicker
*/ */
@Prop() public context!: any; @Prop() public disabled?: boolean;
/** /**
* 编辑器禁用 * 是否显示按钮
* *
* @type {boolean} * @type {boolean}
* @memberof AppUpicker * @memberof AppUpicker
*/ */
@Prop() disabled?: boolean; @Prop({default:true}) public showButton?: boolean;
/** /**
* 视图参数 * 局部上下文导航参数
* *
* @type {*} * @type {any}
* @memberof SelectFormBase * @memberof AppUpicker
*/ */
@Prop() public viewparams: any; @Prop() public localContext!:any;
/** /**
* 请求参数和请求数据的映射关系 * 局部导航参数
* *
* @type {*} * @type {any}
* @memberof AppUpicker * @memberof AppUpicker
*/ */
public interaction:any = {}; @Prop() public localParam!:any;
/** /**
* 当前表单项绑定的值 * 值项名称
* *
* @type {string} * @type {string}
* @memberof AppUpicker * @memberof AppUpicker
*/ */
public value: string = ""; @Prop() public valueitem!: string;
/** /**
* 编辑器参数 * 排序
* *
* @type {*} * @type {string}
* @memberof AppUpicker * @memberof AppUpicker
*/ */
@Prop() public itemParams?: any; @Prop() public sort?: string;
/** /**
* 编辑器参数 * 值
* *
* @type {string} * @type {*}
* @memberof AppUpicker * @memberof AppUpicker
*/ */
@Prop() public valueItem?: string; @Model('change') public value?: any;
/** /**
* 列表项请求路径 * 当前值
* *
* @type {string} * @type {string}
* @memberof AppUpicker * @memberof AppUpicker
*/ */
public url: string = ''; public curvalue: string = '';
/** /**
* 下拉数组 * 下拉数组
* @type {any[]} * @type {any[]}
* @memberof AppPicker * @memberof AppUpicker
*/ */
public items: any[] = []; public items: any[] = [];
/** /**
* 请求到的数据 * 下拉图标指向状态管理
* @type {any[]} * @type {boolean}
* @memberof AppPicker * @memberof AppUpicker
*/
public open: boolean = false;
/**
* 输入状态
*
* @type {boolean}
* @memberof AppUpicker
*/ */
public itemList: any[] = [{a:1,b:"zhangsan"},{a:2,b:"lisi"},{a:3,b:"wangwu"}] public inputState: boolean = false;
/** /**
* vue 生命周期 * vue 生命周期
* *
* @memberof AppPicker * @memberof AppUpicker
*/ */
public mounted() { public created() {
// 解析编辑器参数
this.analysis(this.itemParams); 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() { 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); 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 * @param {*} itemparams
* @memberof AppPicker *
* @memberof AppUpicker
*/ */
public analysis(itemparams:any) { public analysis(itemparams:any) {
Object.keys(itemparams).forEach((param)=>{ Object.keys(itemparams).forEach((param)=>{
...@@ -145,11 +307,14 @@ export default class AppPicker extends Vue { ...@@ -145,11 +307,14 @@ export default class AppPicker extends Vue {
/** /**
* 请求下拉列表数据 * 请求下拉列表数据
* @param {string} url * @param {string} url
* @memberof AppPicker *
* @memberof AppUpicker
*/ */
public fectchItemList(url:string) { public fectchItemList(url:string) {
let arg:any = {};
this.handlePublicParams(arg);
this.$http this.$http
.get(url) .get(url,arg.param)
.then((response: any) => { .then((response: any) => {
if (response && response.status==200 && response.data) { if (response && response.status==200 && response.data) {
this.itemList = response.data; this.itemList = response.data;
...@@ -172,36 +337,44 @@ export default class AppPicker extends Vue { ...@@ -172,36 +337,44 @@ export default class AppPicker extends Vue {
* 解析下拉列表数据 * 解析下拉列表数据
* @param {any[]} itemList 请求到的数据 * @param {any[]} itemList 请求到的数据
* @param {any[]} items 下拉数组 * @param {any[]} items 下拉数组
* @memberof AppPicker *
* @memberof AppUpicker
*/ */
public extractItem(itemList:any[],items:any[]) { public extractItem(itemList:any[],items:any[]) {
this.items.length = 0; this.items = [];
itemList.forEach((item) => { itemList.forEach((item) => {
items.push({ this.items.push({
label: item[this.interaction.label], label: item[this.interaction.label],
value: item[this.interaction.value], 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 *
* @param {*} arg
* @returns
* @memberof AppUpicker
*/ */
public onACSelect(item: any): void { public handlePublicParams(arg: any): boolean {
if(this.name){ if (!this.data) {
this.$emit('formitemvaluechange', { name: this.name, value: item.value }); 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.valueItem){ if (this.localParam && Object.keys(this.localParam).length >0) {
this.$emit('formitemvaluechange', { name: this.valueItem, value: item.value }); let _param = this.$util.computedNavData(this.data,arg.param,arg.param,this.localParam);
Object.assign(arg.param,_param);
} }
return true;
} }
} }
</script> </script>
......
...@@ -193,19 +193,19 @@ export default class EditViewEngine extends ViewEngine { ...@@ -193,19 +193,19 @@ export default class EditViewEngine extends ViewEngine {
*/ */
public setTabCaption(info: string,isNew:boolean): void { public setTabCaption(info: string,isNew:boolean): void {
let viewdata: any = this.view.model; 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 (viewdata && info && !Object.is(info, '')) {
if(index !== -1){ if(index !== -1){
viewdata.srfTitle = viewdata.srfTitle.substr(0,index); viewdata.srfCaption = viewdata.srfCaption.substr(0,index);
} }
// 解决表格视图标题问题 // 解决表格视图标题问题
if(this.view.$tabPageExp && this.view.viewDefaultUsage){ 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){ if(this.view.$route){
this.view.$route.meta.info = info; 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); this.view.initNavDataWithRoute(null,isNew);
} }
} }
......
...@@ -194,6 +194,7 @@ export default { ...@@ -194,6 +194,7 @@ export default {
back: "Back", back: "Back",
next: "Next", next: "Next",
complete: "Complete", complete: "Complete",
preactionmessage:"The calculation of the previous behavior is not configured"
}, },
viewLayoutPanel: { viewLayoutPanel: {
appLogoutView: { appLogoutView: {
......
...@@ -193,6 +193,7 @@ export default { ...@@ -193,6 +193,7 @@ export default {
back: "上一步", back: "上一步",
next: "下一步", next: "下一步",
complete: "完成", complete: "完成",
preactionmessage:"未配置计算上一步行为"
}, },
viewLayoutPanel: { viewLayoutPanel: {
appLogoutView: { appLogoutView: {
......
...@@ -412,7 +412,7 @@ export default class AppIndexViewBase extends Vue { ...@@ -412,7 +412,7 @@ export default class AppIndexViewBase extends Vue {
*/ */
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){ public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'app-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:'app-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 AppIndexViewBase extends Vue { ...@@ -423,7 +423,7 @@ export default class AppIndexViewBase extends Vue {
*/ */
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){ public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'app-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:'app-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);
} }
} }
......
...@@ -25,7 +25,7 @@ const router = new Router({ ...@@ -25,7 +25,7 @@ const router = new Router({
}); });
}, },
meta: { meta: {
caption: 'app.views.appindexview.title', caption: 'app.views.appindexview.caption',
info:'', info:'',
viewType: 'APPINDEX', viewType: 'APPINDEX',
parameters: [ parameters: [
...@@ -38,7 +38,7 @@ const router = new Router({ ...@@ -38,7 +38,7 @@ const router = new Router({
{ {
path: 'dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/editview/:editview?', path: 'dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/editview/:editview?',
meta: { meta: {
caption: 'entities.dictoption.views.editview.title', caption: 'entities.dictoption.views.editview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -53,7 +53,7 @@ const router = new Router({ ...@@ -53,7 +53,7 @@ const router = new Router({
{ {
path: 'dictoptions/:dictoption?/editview/:editview?', path: 'dictoptions/:dictoption?/editview/:editview?',
meta: { meta: {
caption: 'entities.dictoption.views.editview.title', caption: 'entities.dictoption.views.editview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -67,7 +67,7 @@ const router = new Router({ ...@@ -67,7 +67,7 @@ const router = new Router({
{ {
path: 'dictcatalogs/:dictcatalog?/pickupgridview/:pickupgridview?', path: 'dictcatalogs/:dictcatalog?/pickupgridview/:pickupgridview?',
meta: { meta: {
caption: 'entities.dictcatalog.views.pickupgridview.title', caption: 'entities.dictcatalog.views.pickupgridview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -81,7 +81,7 @@ const router = new Router({ ...@@ -81,7 +81,7 @@ const router = new Router({
{ {
path: 'dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/gridview/:gridview?', path: 'dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/gridview/:gridview?',
meta: { meta: {
caption: 'entities.dictoption.views.gridview.title', caption: 'entities.dictoption.views.gridview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -96,7 +96,7 @@ const router = new Router({ ...@@ -96,7 +96,7 @@ const router = new Router({
{ {
path: 'dictoptions/:dictoption?/gridview/:gridview?', path: 'dictoptions/:dictoption?/gridview/:gridview?',
meta: { meta: {
caption: 'entities.dictoption.views.gridview.title', caption: 'entities.dictoption.views.gridview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -110,7 +110,7 @@ const router = new Router({ ...@@ -110,7 +110,7 @@ const router = new Router({
{ {
path: 'dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/grideditview/:grideditview?', path: 'dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/grideditview/:grideditview?',
meta: { meta: {
caption: 'entities.dictoption.views.grideditview.title', caption: 'entities.dictoption.views.grideditview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -125,7 +125,7 @@ const router = new Router({ ...@@ -125,7 +125,7 @@ const router = new Router({
{ {
path: 'dictoptions/:dictoption?/grideditview/:grideditview?', path: 'dictoptions/:dictoption?/grideditview/:grideditview?',
meta: { meta: {
caption: 'entities.dictoption.views.grideditview.title', caption: 'entities.dictoption.views.grideditview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -139,7 +139,7 @@ const router = new Router({ ...@@ -139,7 +139,7 @@ const router = new Router({
{ {
path: 'dictcatalogs/:dictcatalog?/pickupview/:pickupview?', path: 'dictcatalogs/:dictcatalog?/pickupview/:pickupview?',
meta: { meta: {
caption: 'entities.dictcatalog.views.pickupview.title', caption: 'entities.dictcatalog.views.pickupview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -153,7 +153,7 @@ const router = new Router({ ...@@ -153,7 +153,7 @@ const router = new Router({
{ {
path: 'dictcatalogs/:dictcatalog?/editview/:editview?', path: 'dictcatalogs/:dictcatalog?/editview/:editview?',
meta: { meta: {
caption: 'entities.dictcatalog.views.editview.title', caption: 'entities.dictcatalog.views.editview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -167,7 +167,7 @@ const router = new Router({ ...@@ -167,7 +167,7 @@ const router = new Router({
{ {
path: 'dictcatalogs/:dictcatalog?/gridview/:gridview?', path: 'dictcatalogs/:dictcatalog?/gridview/:gridview?',
meta: { meta: {
caption: 'entities.dictcatalog.views.gridview.title', caption: 'entities.dictcatalog.views.gridview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' }, { pathName: 'appindexview', parameterName: 'appindexview' },
...@@ -184,7 +184,7 @@ const router = new Router({ ...@@ -184,7 +184,7 @@ const router = new Router({
{ {
path: '/dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/gridview/:gridview?', path: '/dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/gridview/:gridview?',
meta: { meta: {
caption: 'entities.dictoption.views.gridview.title', caption: 'entities.dictoption.views.gridview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictcatalogs', parameterName: 'dictcatalog' }, { pathName: 'dictcatalogs', parameterName: 'dictcatalog' },
...@@ -198,7 +198,7 @@ const router = new Router({ ...@@ -198,7 +198,7 @@ const router = new Router({
{ {
path: '/dictoptions/:dictoption?/gridview/:gridview?', path: '/dictoptions/:dictoption?/gridview/:gridview?',
meta: { meta: {
caption: 'entities.dictoption.views.gridview.title', caption: 'entities.dictoption.views.gridview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictoptions', parameterName: 'dictoption' }, { pathName: 'dictoptions', parameterName: 'dictoption' },
...@@ -211,7 +211,7 @@ const router = new Router({ ...@@ -211,7 +211,7 @@ const router = new Router({
{ {
path: '/dictcatalogs/:dictcatalog?/pickupgridview/:pickupgridview?', path: '/dictcatalogs/:dictcatalog?/pickupgridview/:pickupgridview?',
meta: { meta: {
caption: 'entities.dictcatalog.views.pickupgridview.title', caption: 'entities.dictcatalog.views.pickupgridview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictcatalogs', parameterName: 'dictcatalog' }, { pathName: 'dictcatalogs', parameterName: 'dictcatalog' },
...@@ -224,7 +224,7 @@ const router = new Router({ ...@@ -224,7 +224,7 @@ const router = new Router({
{ {
path: '/dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/grideditview/:grideditview?', path: '/dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/grideditview/:grideditview?',
meta: { meta: {
caption: 'entities.dictoption.views.grideditview.title', caption: 'entities.dictoption.views.grideditview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictcatalogs', parameterName: 'dictcatalog' }, { pathName: 'dictcatalogs', parameterName: 'dictcatalog' },
...@@ -238,7 +238,7 @@ const router = new Router({ ...@@ -238,7 +238,7 @@ const router = new Router({
{ {
path: '/dictoptions/:dictoption?/grideditview/:grideditview?', path: '/dictoptions/:dictoption?/grideditview/:grideditview?',
meta: { meta: {
caption: 'entities.dictoption.views.grideditview.title', caption: 'entities.dictoption.views.grideditview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictoptions', parameterName: 'dictoption' }, { pathName: 'dictoptions', parameterName: 'dictoption' },
...@@ -251,7 +251,7 @@ const router = new Router({ ...@@ -251,7 +251,7 @@ const router = new Router({
{ {
path: '/dictcatalogs/:dictcatalog?/gridview/:gridview?', path: '/dictcatalogs/:dictcatalog?/gridview/:gridview?',
meta: { meta: {
caption: 'entities.dictcatalog.views.gridview.title', caption: 'entities.dictcatalog.views.gridview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictcatalogs', parameterName: 'dictcatalog' }, { pathName: 'dictcatalogs', parameterName: 'dictcatalog' },
...@@ -264,7 +264,7 @@ const router = new Router({ ...@@ -264,7 +264,7 @@ const router = new Router({
{ {
path: '/dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/editview/:editview?', path: '/dictcatalogs/:dictcatalog?/dictoptions/:dictoption?/editview/:editview?',
meta: { meta: {
caption: 'entities.dictoption.views.editview.title', caption: 'entities.dictoption.views.editview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictcatalogs', parameterName: 'dictcatalog' }, { pathName: 'dictcatalogs', parameterName: 'dictcatalog' },
...@@ -278,7 +278,7 @@ const router = new Router({ ...@@ -278,7 +278,7 @@ const router = new Router({
{ {
path: '/dictoptions/:dictoption?/editview/:editview?', path: '/dictoptions/:dictoption?/editview/:editview?',
meta: { meta: {
caption: 'entities.dictoption.views.editview.title', caption: 'entities.dictoption.views.editview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictoptions', parameterName: 'dictoption' }, { pathName: 'dictoptions', parameterName: 'dictoption' },
...@@ -291,7 +291,7 @@ const router = new Router({ ...@@ -291,7 +291,7 @@ const router = new Router({
{ {
path: '/dictcatalogs/:dictcatalog?/editview/:editview?', path: '/dictcatalogs/:dictcatalog?/editview/:editview?',
meta: { meta: {
caption: 'entities.dictcatalog.views.editview.title', caption: 'entities.dictcatalog.views.editview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictcatalogs', parameterName: 'dictcatalog' }, { pathName: 'dictcatalogs', parameterName: 'dictcatalog' },
...@@ -304,7 +304,7 @@ const router = new Router({ ...@@ -304,7 +304,7 @@ const router = new Router({
{ {
path: '/dictcatalogs/:dictcatalog?/pickupview/:pickupview?', path: '/dictcatalogs/:dictcatalog?/pickupview/:pickupview?',
meta: { meta: {
caption: 'entities.dictcatalog.views.pickupview.title', caption: 'entities.dictcatalog.views.pickupview.caption',
info:'', info:'',
parameters: [ parameters: [
{ pathName: 'dictcatalogs', parameterName: 'dictcatalog' }, { pathName: 'dictcatalogs', parameterName: 'dictcatalog' },
......
<template> <template>
<div class="view-container deeditview dict-catalog-edit-view"> <div class="view-container deeditview dict-catalog-edit-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="dictcatalogeditview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="dictcatalogeditview"></app-studioaction>
<card class='view-card ' :disHover="true" :bordered="false"> <card class='view-card ' :disHover="true" :bordered="false">
<div slot='title' class="header-container"> <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'> <div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' @click="toolbar_click({ tag: 'tbitem3' }, $event)"> <i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' @click="toolbar_click({ tag: 'tbitem3' }, $event)">
...@@ -556,7 +556,7 @@ export default class DictCatalogEditViewBase extends Vue { ...@@ -556,7 +556,7 @@ export default class DictCatalogEditViewBase extends Vue {
*/ */
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){ public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'dict-catalog-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictcatalog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath}); this.navDataService.addNavData({id:'dict-catalog-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictcatalog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
} }
} }
...@@ -567,7 +567,7 @@ export default class DictCatalogEditViewBase extends Vue { ...@@ -567,7 +567,7 @@ export default class DictCatalogEditViewBase extends Vue {
*/ */
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){ public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'dict-catalog-edit-view',tag:this.viewtag,srfkey:this.context.dictcatalog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd); this.navDataService.addNavDataByOnly({id:'dict-catalog-edit-view',tag:this.viewtag,srfkey:this.context.dictcatalog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
} }
} }
......
<template> <template>
<div class='view-container degridview dict-catalog-grid-view'> <div class='view-container degridview dict-catalog-grid-view'>
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="dictcataloggridview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="dictcataloggridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false"> <card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container"> <div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span> <span class='caption-info'>{{$t(model.srfCaption)}}</span>
</div> </div>
<div class='content-container'> <div class='content-container'>
<div class='view-top-messages'> <div class='view-top-messages'>
...@@ -581,7 +581,7 @@ export default class DictCatalogGridViewBase extends Vue { ...@@ -581,7 +581,7 @@ export default class DictCatalogGridViewBase extends Vue {
*/ */
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){ public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'dict-catalog-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictcatalog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath}); this.navDataService.addNavData({id:'dict-catalog-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictcatalog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
} }
} }
...@@ -592,7 +592,7 @@ export default class DictCatalogGridViewBase extends Vue { ...@@ -592,7 +592,7 @@ export default class DictCatalogGridViewBase extends Vue {
*/ */
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){ public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'dict-catalog-grid-view',tag:this.viewtag,srfkey:this.context.dictcatalog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd); this.navDataService.addNavDataByOnly({id:'dict-catalog-grid-view',tag:this.viewtag,srfkey:this.context.dictcatalog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
} }
} }
......
<template> <template>
<div class='view-container depickupgridview dict-catalog-pickup-grid-view'> <div class='view-container depickupgridview dict-catalog-pickup-grid-view'>
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="dictcatalogpickupgridview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="dictcatalogpickupgridview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false"> <card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='content-container pickup-grid-view'> <div class='content-container pickup-grid-view'>
<view_searchform <view_searchform
...@@ -446,7 +446,7 @@ export default class DictCatalogPickupGridViewBase extends Vue { ...@@ -446,7 +446,7 @@ export default class DictCatalogPickupGridViewBase extends Vue {
*/ */
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){ public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'dict-catalog-pickup-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictcatalog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath}); this.navDataService.addNavData({id:'dict-catalog-pickup-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictcatalog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
} }
} }
...@@ -457,7 +457,7 @@ export default class DictCatalogPickupGridViewBase extends Vue { ...@@ -457,7 +457,7 @@ export default class DictCatalogPickupGridViewBase extends Vue {
*/ */
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){ public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'dict-catalog-pickup-grid-view',tag:this.viewtag,srfkey:this.context.dictcatalog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd); this.navDataService.addNavDataByOnly({id:'dict-catalog-pickup-grid-view',tag:this.viewtag,srfkey:this.context.dictcatalog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
} }
} }
......
<template> <template>
<div class="view-container depickupview dict-catalog-pickup-view"> <div class="view-container depickupview dict-catalog-pickup-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="dictcatalogpickupview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="dictcatalogpickupview"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :padding="0" :bordered="false"> <card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :padding="0" :bordered="false">
<div class="content-container pickup-view"> <div class="content-container pickup-view">
<view_pickupviewpanel <view_pickupviewpanel
...@@ -439,7 +439,7 @@ export default class DictCatalogPickupViewBase extends Vue { ...@@ -439,7 +439,7 @@ export default class DictCatalogPickupViewBase extends Vue {
*/ */
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){ public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'dict-catalog-pickup-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictcatalog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath}); this.navDataService.addNavData({id:'dict-catalog-pickup-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictcatalog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
} }
} }
...@@ -450,7 +450,7 @@ export default class DictCatalogPickupViewBase extends Vue { ...@@ -450,7 +450,7 @@ export default class DictCatalogPickupViewBase extends Vue {
*/ */
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){ public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'dict-catalog-pickup-view',tag:this.viewtag,srfkey:this.context.dictcatalog,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd); this.navDataService.addNavDataByOnly({id:'dict-catalog-pickup-view',tag:this.viewtag,srfkey:this.context.dictcatalog,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
} }
} }
......
<template> <template>
<div class="view-container deeditview dict-option-edit-view"> <div class="view-container deeditview dict-option-edit-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="dictoptioneditview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="dictoptioneditview"></app-studioaction>
<card class='view-card ' :disHover="true" :bordered="false"> <card class='view-card ' :disHover="true" :bordered="false">
<div slot='title' class="header-container"> <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'> <div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600"> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem1.visabled" :disabled="toolBarModels.tbitem1.disabled" class='' @click="toolbar_click({ tag: 'tbitem1' }, $event)"> <i-button v-show="toolBarModels.tbitem1.visabled" :disabled="toolBarModels.tbitem1.disabled" class='' @click="toolbar_click({ tag: 'tbitem1' }, $event)">
...@@ -470,7 +470,7 @@ export default class DictOptionEditViewBase extends Vue { ...@@ -470,7 +470,7 @@ export default class DictOptionEditViewBase extends Vue {
*/ */
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){ public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'dict-option-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictoption,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath}); this.navDataService.addNavData({id:'dict-option-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictoption,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 DictOptionEditViewBase extends Vue { ...@@ -481,7 +481,7 @@ export default class DictOptionEditViewBase extends Vue {
*/ */
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){ public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'dict-option-edit-view',tag:this.viewtag,srfkey:this.context.dictoption,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd); this.navDataService.addNavDataByOnly({id:'dict-option-edit-view',tag:this.viewtag,srfkey:this.context.dictoption,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
} }
} }
......
<template> <template>
<div class='view-container degridview dict-option-grid-edit-view'> <div class='view-container degridview dict-option-grid-edit-view'>
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="dictoptiongrideditview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="dictoptiongrideditview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false"> <card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container"> <div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span> <span class='caption-info'>{{$t(model.srfCaption)}}</span>
</div> </div>
<div class='content-container'> <div class='content-container'>
<div class='view-top-messages'> <div class='view-top-messages'>
...@@ -568,7 +568,7 @@ export default class DictOptionGridEditViewBase extends Vue { ...@@ -568,7 +568,7 @@ export default class DictOptionGridEditViewBase extends Vue {
*/ */
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){ public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'dict-option-grid-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictoption,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath}); this.navDataService.addNavData({id:'dict-option-grid-edit-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictoption,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
} }
} }
...@@ -579,7 +579,7 @@ export default class DictOptionGridEditViewBase extends Vue { ...@@ -579,7 +579,7 @@ export default class DictOptionGridEditViewBase extends Vue {
*/ */
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){ public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'dict-option-grid-edit-view',tag:this.viewtag,srfkey:this.context.dictoption,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd); this.navDataService.addNavDataByOnly({id:'dict-option-grid-edit-view',tag:this.viewtag,srfkey:this.context.dictoption,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
} }
} }
......
<template> <template>
<div class='view-container degridview dict-option-grid-view'> <div class='view-container degridview dict-option-grid-view'>
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="dictoptiongridview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="dictoptiongridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false"> <card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container"> <div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfTitle)}}</span> <span class='caption-info'>{{$t(model.srfCaption)}}</span>
</div> </div>
<div class='content-container'> <div class='content-container'>
<div class='view-top-messages'> <div class='view-top-messages'>
...@@ -568,7 +568,7 @@ export default class DictOptionGridViewBase extends Vue { ...@@ -568,7 +568,7 @@ export default class DictOptionGridViewBase extends Vue {
*/ */
public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){ public initNavDataWithRoute(data:any = null, isNew:boolean = false, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && Object.is(this.navModel,"route")) ){
this.navDataService.addNavData({id:'dict-option-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictoption,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath}); this.navDataService.addNavData({id:'dict-option-grid-view',tag:this.viewtag,srfkey:isNew ? null : this.context.dictoption,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
} }
} }
...@@ -579,7 +579,7 @@ export default class DictOptionGridViewBase extends Vue { ...@@ -579,7 +579,7 @@ export default class DictOptionGridViewBase extends Vue {
*/ */
public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){ public initNavDataWithTab(data:any = null,isOnlyAdd:boolean = true, isAlways:boolean = false){
if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){ if( isAlways || (this.viewDefaultUsage && !Object.is(this.navModel,"route")) ){
this.navDataService.addNavDataByOnly({id:'dict-option-grid-view',tag:this.viewtag,srfkey:this.context.dictoption,title:this.$t(this.model.srfTitle),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd); this.navDataService.addNavDataByOnly({id:'dict-option-grid-view',tag:this.viewtag,srfkey:this.context.dictoption,title:this.$t(this.model.srfCaption),data:data,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath},isOnlyAdd);
} }
} }
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
:disabled="detailsModel.n_ccode_like.disabled" :disabled="detailsModel.n_ccode_like.disabled"
type='text' type='text'
style="width:100px;"> style="">
</input-box> </input-box>
</app-form-item> </app-form-item>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
:disabled="detailsModel.n_cname_like.disabled" :disabled="detailsModel.n_cname_like.disabled"
type='text' type='text'
style="width:100px;"> style="">
</input-box> </input-box>
</app-form-item> </app-form-item>
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
:disabled="detailsModel.n_cgroup_like.disabled" :disabled="detailsModel.n_cgroup_like.disabled"
type='text' type='text'
style="width:100px;"> style="">
</input-box> </input-box>
</app-form-item> </app-form-item>
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
</i-col> </i-col>
</row> </row>
</i-form> </i-form>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator'; import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator';
......
...@@ -634,6 +634,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -634,6 +634,9 @@ export default class MainBase extends Vue implements ControlInterface {
if(!falg.hasOwnProperty("isPast")){ if(!falg.hasOwnProperty("isPast")){
falg.isPast = true; falg.isPast = true;
} }
if(!this.data[name]){
falg.isPast = true;
}
return falg; return falg;
} }
...@@ -1185,6 +1188,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1185,6 +1188,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (Object.is('refresh', action)) { if (Object.is('refresh', action)) {
this.refresh(data); this.refresh(data);
} }
if (Object.is('panelaction', action)) {
this.panelAction(data.action,data.emitAction,data);
}
}); });
} }
this.dataChang this.dataChang
...@@ -1676,6 +1682,50 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1676,6 +1682,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;
}
});
}
/** /**
* 表单项更新 * 表单项更新
* *
......
...@@ -1295,7 +1295,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1295,7 +1295,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
// 已选中则删除,没选中则添加 // 已选中则删除,没选中则添加
let selectIndex = this.selections.findIndex((item:any)=>{ let selectIndex = this.selections.findIndex((item:any)=>{
return Object.is(item.dict_catalog,$event.dict_catalog); return Object.is(item.dictcatalog,$event.dictcatalog);
}); });
if (Object.is(selectIndex,-1)){ if (Object.is(selectIndex,-1)){
this.selections.push(JSON.parse(JSON.stringify($event))); this.selections.push(JSON.parse(JSON.stringify($event)));
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
height: 100%; height: 100%;
display:flex; display:flex;
flex-direction: column; flex-direction: column;
justify-content: start; justify-content: flex-start;
.el-table__row{ .el-table__row{
.grid-uiaction-divider { .grid-uiaction-divider {
padding:0 10px 0 10px; padding:0 10px 0 10px;
...@@ -66,6 +66,15 @@ ...@@ -66,6 +66,15 @@
margin-bottom: 20px; margin-bottom: 20px;
} }
} }
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
} }
.grid-pagination { .grid-pagination {
height: 50px; height: 50px;
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
:disabled="detailsModel.n_cname_like.disabled" :disabled="detailsModel.n_cname_like.disabled"
type='text' type='text'
style="width:100px;"> style="">
</input-box> </input-box>
</app-form-item> </app-form-item>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
:disabled="detailsModel.n_val_like.disabled" :disabled="detailsModel.n_val_like.disabled"
type='text' type='text'
style="width:100px;"> style="">
</input-box> </input-box>
</app-form-item> </app-form-item>
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
:disabled="detailsModel.n_label_like.disabled" :disabled="detailsModel.n_label_like.disabled"
type='text' type='text'
style="width:100px;"> style="">
</input-box> </input-box>
</app-form-item> </app-form-item>
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
</i-col> </i-col>
</row> </row>
</i-form> </i-form>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator'; import { Vue, Component, Prop, Provide, Emit, Watch, Model,Inject } from 'vue-property-decorator';
......
...@@ -781,6 +781,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -781,6 +781,9 @@ export default class MainBase extends Vue implements ControlInterface {
if(!falg.hasOwnProperty("isPast")){ if(!falg.hasOwnProperty("isPast")){
falg.isPast = true; falg.isPast = true;
} }
if(!this.data[name]){
falg.isPast = true;
}
return falg; return falg;
} }
...@@ -1449,6 +1452,9 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1449,6 +1452,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (Object.is('refresh', action)) { if (Object.is('refresh', action)) {
this.refresh(data); this.refresh(data);
} }
if (Object.is('panelaction', action)) {
this.panelAction(data.action,data.emitAction,data);
}
}); });
} }
this.dataChang this.dataChang
...@@ -1940,6 +1946,50 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1940,6 +1946,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;
}
});
}
/** /**
* 表单项更新 * 表单项更新
* *
......
...@@ -1747,7 +1747,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1747,7 +1747,7 @@ export default class MainBase extends Vue implements ControlInterface {
} }
// 已选中则删除,没选中则添加 // 已选中则删除,没选中则添加
let selectIndex = this.selections.findIndex((item:any)=>{ let selectIndex = this.selections.findIndex((item:any)=>{
return Object.is(item.dict_option,$event.dict_option); return Object.is(item.dictoption,$event.dictoption);
}); });
if (Object.is(selectIndex,-1)){ if (Object.is(selectIndex,-1)){
this.selections.push(JSON.parse(JSON.stringify($event))); this.selections.push(JSON.parse(JSON.stringify($event)));
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
height: 100%; height: 100%;
display:flex; display:flex;
flex-direction: column; flex-direction: column;
justify-content: start; justify-content: flex-start;
.el-table__row{ .el-table__row{
.grid-uiaction-divider { .grid-uiaction-divider {
padding:0 10px 0 10px; padding:0 10px 0 10px;
...@@ -66,6 +66,15 @@ ...@@ -66,6 +66,15 @@
margin-bottom: 20px; margin-bottom: 20px;
} }
} }
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
} }
.grid-pagination { .grid-pagination {
height: 50px; height: 50px;
......
...@@ -1727,7 +1727,7 @@ export default class OptionsBase extends Vue implements ControlInterface { ...@@ -1727,7 +1727,7 @@ export default class OptionsBase extends Vue implements ControlInterface {
} }
// 已选中则删除,没选中则添加 // 已选中则删除,没选中则添加
let selectIndex = this.selections.findIndex((item:any)=>{ let selectIndex = this.selections.findIndex((item:any)=>{
return Object.is(item.dict_option,$event.dict_option); return Object.is(item.dictoption,$event.dictoption);
}); });
if (Object.is(selectIndex,-1)){ if (Object.is(selectIndex,-1)){
this.selections.push(JSON.parse(JSON.stringify($event))); this.selections.push(JSON.parse(JSON.stringify($event)));
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
height: 100%; height: 100%;
display:flex; display:flex;
flex-direction: column; flex-direction: column;
justify-content: start; justify-content: flex-start;
.el-table__row{ .el-table__row{
.grid-uiaction-divider { .grid-uiaction-divider {
padding:0 10px 0 10px; padding:0 10px 0 10px;
...@@ -66,6 +66,15 @@ ...@@ -66,6 +66,15 @@
margin-bottom: 20px; margin-bottom: 20px;
} }
} }
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
} }
.grid-pagination { .grid-pagination {
height: 50px; height: 50px;
......
...@@ -4,9 +4,9 @@ public class DTOClient extends DTOBase { ...@@ -4,9 +4,9 @@ public class DTOClient extends DTOBase {
@Override @Override
public void modify(String field,Object val) { public void modify(String field,Object val) {
getExtensionparams().put("dirtyflagenable",true);
if(val==null){ if(val==null){
this.getFocusNull().add(field.toLowerCase()); this.getFocusNull().add(field.toLowerCase());
getExtensionparams().put("dirtyflagenable",true);
getExtensionparams().put(field.toLowerCase()+"dirtyflag",true); getExtensionparams().put(field.toLowerCase()+"dirtyflag",true);
} }
else{ else{
......
...@@ -30,6 +30,9 @@ public class PermissionSyncJob implements ApplicationRunner { ...@@ -30,6 +30,9 @@ public class PermissionSyncJob implements ApplicationRunner {
@Value("${ibiz.systemid:ibzdict}") @Value("${ibiz.systemid:ibzdict}")
private String systemId; private String systemId;
@Value("${ibiz.systemname:ibzdict}")
private String systemName;
@Override @Override
public void run(ApplicationArguments args) { public void run(ApplicationArguments args) {
...@@ -39,7 +42,7 @@ public class PermissionSyncJob implements ApplicationRunner { ...@@ -39,7 +42,7 @@ public class PermissionSyncJob implements ApplicationRunner {
String permissionResult = IOUtils.toString(permission,"UTF-8"); String permissionResult = IOUtils.toString(permission,"UTF-8");
JSONObject system= new JSONObject(); JSONObject system= new JSONObject();
system.put("pssystemid",systemId); system.put("pssystemid",systemId);
system.put("pssystemname",systemId); system.put("pssystemname",systemName);
system.put("sysstructure",JSONObject.parseObject(permissionResult)); system.put("sysstructure",JSONObject.parseObject(permissionResult));
system.put("md5check",DigestUtils.md5DigestAsHex(permissionResult.getBytes())); system.put("md5check",DigestUtils.md5DigestAsHex(permissionResult.getBytes()));
if(client.syncSysAuthority(system)){ if(client.syncSysAuthority(system)){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册