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

ibizdev提交

上级 451138fd
## v7.0.0-alpha.2 [2020-5-7] ## v7.0.0-alpha.3 [2020-5-14]
### Bug修复 ### Bug修复
分页导航栏添加图标配置 分页导航栏传递srfparentdename和srfparentkey问题
提交流程、启动流程刷新表格数据问题
修复视图自定义导航参数大小写问题
修复批添加功能
修复树部件查询数据集合异常处理
修复图表排序问题
修复富文本国际化切换失效
修复代码表代码项图标和数据
修复数据多项选择视图UI逻辑不匹配
修复列表高度异常
工具栏按钮样式支持 修复树节点上下文
修复表格(视图)高度,滚动条问题
修复表单loaddraft服务仿真主键丢失修复
修复user显示名称逻辑
修复issue地址为正式环境地址
模态边距样式调整
### 功能新增及优化 ### 功能新增及优化
#### 模板 #### 模板
表格文件上传信息显示 搜索面板布局优化
批添加、批删除 表格checkbox宽度优化
富文本信息模式 选择类视图不显示标题
更新默认值 补充树节点关系导航上下文,导航参数上下文
看板视图默认卡片模式,支持无缝模式 模态时视图样式调整
树导航样式调整 增加菜单权限
表格样式调整 增加快速分组搜索或快速搜索表单功能
拖拽样式修改 增加表格内置工具栏
代码表多选控件分割符从分号转化为逗号
#### 基础文件 #### 基础文件
看板视图默认卡片模式,支持无缝模式 登录页面调整
增加数据选择类插件表格呈现插件
## v7.0.0-alpha.2 [2020-5-7]
### Bug修复
分页导航栏添加图标配置
### 功能新增及优化
#### 模板
表格文件上传信息显示 表格文件上传信息显示
用户名识别 批添加、批删除
实体工作流动态视图
实体工作流动态导航表格视图
富文本信息模式
工具栏按钮样式支持 更新默认值
#### 基础文件
表格文件上传信息显示
模态边距样式调整 实体工作流动态视图
实体工作流动态导航表格视图
## v7.0.0-alpha.1 [2020-4-29] ## v7.0.0-alpha.1 [2020-4-29]
......
...@@ -69,6 +69,8 @@ import AppImagePreview from './components/app-image-preview/app-image-preview.vu ...@@ -69,6 +69,8 @@ import AppImagePreview from './components/app-image-preview/app-image-preview.vu
import AppFormatData from './components/app-format-data/app-format-data.vue' import AppFormatData from './components/app-format-data/app-format-data.vue'
import AppUploadFileInfo from './components/app-upload-file-info/app-upload-file-info.vue' import AppUploadFileInfo from './components/app-upload-file-info/app-upload-file-info.vue'
import ContextMenu from './components/context-menu/context-menu' import ContextMenu from './components/context-menu/context-menu'
import AppColumnFormat from './components/app-column-format/app-column-format.vue'
import AppQuickGroup from './components/app-quick-group/app-quick-group.vue'
// 全局挂载UI实体服务注册中心 // 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister; window['uiServiceRegister'] = uiServiceRegister;
...@@ -147,5 +149,7 @@ export const AppComponents = { ...@@ -147,5 +149,7 @@ export const AppComponents = {
v.component('app-format-data', AppFormatData); v.component('app-format-data', AppFormatData);
v.component('app-upload-file-info', AppUploadFileInfo); v.component('app-upload-file-info', AppUploadFileInfo);
v.component('context-menu',ContextMenu); v.component('context-menu',ContextMenu);
v.component('app-column-format',AppColumnFormat);
v.component('app-quick-group',AppQuickGroup);
}, },
}; };
\ No newline at end of file
...@@ -43,7 +43,7 @@ export default class AppCheckBox extends Vue { ...@@ -43,7 +43,7 @@ export default class AppCheckBox extends Vue {
* @type {string} * @type {string}
* @memberof AppCheckBox * @memberof AppCheckBox
*/ */
@Prop({default:';'}) public valueSeparator?: string; @Prop({default:','}) public valueSeparator?: string;
/** /**
* 是否禁用 * 是否禁用
...@@ -97,28 +97,6 @@ export default class AppCheckBox extends Vue { ...@@ -97,28 +97,6 @@ export default class AppCheckBox extends Vue {
} }
} }
/**
* 分隔符
*
* @type {*}
* @memberof AppCheckBox
*/
@Prop() separator: any;
/**
* 获取分隔符
*
* @readonly
* @memberof AppCheckBox
*/
get currentseparator() {
if (this.separator) {
return this.separator;
} else {
return ';';
}
}
/** /**
* 选中值 * 选中值
* *
......
.app-column-format{
display: inline-block;
}
\ No newline at end of file
<template>
<div class="app-column-format">
{{text}}
</div>
</template>
<script lang="ts">
import { Vue, Component, Prop, Model, Emit, Watch } from "vue-property-decorator";
/**
* 表格列格式化json数组,数据格式为"[{"srfkey":"001","srfmajortext":"TEST1"},{"srfkey":"002","srfmajortext":"TEST2"}......]"
*/
@Component({
})
export default class AppColumnFormat extends Vue {
/**
* 值
* @type {any}
* @memberof AppColumnFormat
*/
@Prop() public value?: any;
/**
* 显示文本
* @type {any}
* @memberof AppColumnFormat
*/
get text(){
if(this.value){
let returnStr:string = "";
let tempData:Array<any> =[];
if(typeof(this.value) === 'string'){
tempData= JSON.parse(this.value);
}else{
tempData = JSON.parse(JSON.stringify(this.value));
}
tempData.forEach((item:any,index:number) =>{
if(index >0){
returnStr +="、";
}
returnStr +=item.srfmajortext;
})
return returnStr;
}else{
return "";
}
}
}
</script>
<style lang='less'>
@import "./app-column-format.less";
</style>
\ No newline at end of file
...@@ -47,6 +47,14 @@ export default class AppFormDRUIPart extends Vue { ...@@ -47,6 +47,14 @@ export default class AppFormDRUIPart extends Vue {
*/ */
@Prop({ default: '' }) public refreshitems!: string; @Prop({ default: '' }) public refreshitems!: string;
/**
* 禁止加载
*
* @type {string}
* @memberof AppFormDRUIPart
*/
@Prop({ default: false }) public isForbidLoad!: boolean;
/** /**
* 关系视图类型 * 关系视图类型
* *
...@@ -254,7 +262,9 @@ export default class AppFormDRUIPart extends Vue { ...@@ -254,7 +262,9 @@ export default class AppFormDRUIPart extends Vue {
this.blockUIStop(); this.blockUIStop();
} }
} }
this.formDruipart.next({action:'load',data:{srfparentdename:this.parentName,srfparentkey:_paramitem}}); if(!this.isForbidLoad){
this.formDruipart.next({action:'load',data:{srfparentdename:this.parentName,srfparentkey:_paramitem}});
}
} }
/** /**
......
...@@ -123,12 +123,12 @@ export default class AppMpicker extends Vue { ...@@ -123,12 +123,12 @@ export default class AppMpicker extends Vue {
* @param newVal * @param newVal
* @param val * @param val
*/ */
@Watch('curvalue', { deep: true }) @Watch('curvalue', {immediate:true, deep: true })
oncurvalueChange(newVal: any, val: any) { oncurvalueChange(newVal: any, val: any) {
this.value = []; this.value = [];
this.selectItems = []; this.selectItems = [];
if (newVal) { if (newVal) {
this.selectItems = JSON.parse(newVal); this.selectItems = this.parseValue(JSON.parse(newVal));
this.selectItems.forEach((item: any) => { this.selectItems.forEach((item: any) => {
this.value.push(item[this.deKeyField]); this.value.push(item[this.deKeyField]);
let index = this.items.findIndex((i) => Object.is(i[this.deKeyField], item[this.deKeyField])); let index = this.items.findIndex((i) => Object.is(i[this.deKeyField], item[this.deKeyField]));
...@@ -187,7 +187,7 @@ export default class AppMpicker extends Vue { ...@@ -187,7 +187,7 @@ export default class AppMpicker extends Vue {
let index = this.items.findIndex((item) => Object.is(item[this.deKeyField], select)); let index = this.items.findIndex((item) => Object.is(item[this.deKeyField], select));
if (index >= 0) { if (index >= 0) {
let item = this.items[index]; let item = this.items[index];
val.push({ [this.deKeyField]: item[this.deKeyField], [this.deMajorField]: item.text }); val.push({ [this.deKeyField]: item[this.deKeyField], [this.deMajorField]: item[this.deMajorField] });
} else { } else {
index = this.selectItems.findIndex((item: any) => Object.is(item[this.deKeyField], select)); index = this.selectItems.findIndex((item: any) => Object.is(item[this.deKeyField], select));
if (index >= 0) { if (index >= 0) {
...@@ -196,7 +196,7 @@ export default class AppMpicker extends Vue { ...@@ -196,7 +196,7 @@ export default class AppMpicker extends Vue {
} }
} }
}); });
let value = val.length > 0 ? JSON.stringify(val) : ''; let value = val.length > 0 ? JSON.stringify(this.formatValue(val)) : '';
this.$emit('formitemvaluechange', { name: this.name, value: value }); this.$emit('formitemvaluechange', { name: this.name, value: value });
} }
} }
...@@ -211,7 +211,7 @@ export default class AppMpicker extends Vue { ...@@ -211,7 +211,7 @@ export default class AppMpicker extends Vue {
let index = this.selectItems.findIndex((item: any) => Object.is(item[this.deKeyField], tag)); let index = this.selectItems.findIndex((item: any) => Object.is(item[this.deKeyField], tag));
if (index >= 0) { if (index >= 0) {
this.selectItems.splice(index, 1); this.selectItems.splice(index, 1);
let value = this.selectItems.length > 0 ? JSON.stringify(this.selectItems) : ''; let value = this.selectItems.length > 0 ? JSON.stringify(this.formatValue(this.selectItems)) : '';
this.$emit('formitemvaluechange', { name: this.name, value: value }); this.$emit('formitemvaluechange', { name: this.name, value: value });
} }
} }
...@@ -256,13 +256,50 @@ export default class AppMpicker extends Vue { ...@@ -256,13 +256,50 @@ export default class AppMpicker extends Vue {
}); });
} }
if (this.name && this.activeData) { if (this.name && this.activeData) {
let value = selects.length > 0 ? JSON.stringify(selects) : ''; let value = selects.length > 0 ? JSON.stringify(this.formatValue(selects)) : '';
this.$emit('formitemvaluechange', { name: this.name, value: value }); this.$emit('formitemvaluechange', { name: this.name, value: value });
} }
}) })
} }
} }
/**
* 解析值,把srfkey和srfmajortext解析成实体属性名
*
* @param {any[]} value 需要转换的数组
* @memberof AppMpicker
*/
public parseValue(value: any[]){
let result = [];
if(this.deKeyField !== "srfkey" || this.deMajorField !== "srfmajortext"){
value.forEach((item: any) => {
result.push({[this.deMajorField]: item.srfmajortext, [this.deKeyField]: item.srfkey});
});
}else{
result = value;
}
return result;
}
/**
* 格式化值,把实体属性名格式化成srfkey和srfmajortext
*
* @param {any[]} value 需要转换的数组
* @memberof AppMpicker
*/
public formatValue(value: any[]){
let result = [];
if(this.deKeyField !== "srfkey" || this.deMajorField !== "srfmajortext"){
value.forEach((item: any) => {
result.push({srfmajortext : item[this.deMajorField], srfkey : item[this.deKeyField]});
});
}else{
result = value;
}
return result;
}
} }
</script> </script>
<style lang="less"> <style lang="less">
......
.app-quick-group{
padding: 4px;
background-color: #F1F1F1;
.app-quick-item{
margin-right: 8px;
padding: 8px;
cursor: pointer;
.app-quick-item-label{
margin-left:4px;
}
.app-seleted-item{
display: inline-block;
font-weight: 700;
color: #0c64eb !important;
padding: 4px;
border-bottom: 2px solid;
}
.app-seleted-item:focus {
outline: none;
}
.app-quick-item-counter{
border-radius: 12px;
padding-left: 4px;
font-size: 12px;
font-weight: 400;
vertical-align: middle;
display: inline-block;
width: 18px;
height: 18px;
margin-left: 4px;
background-color: #ddd;
}
}
.app-quick-item :hover{
color: #0c64eb !important;
}
}
\ No newline at end of file
<template>
<div class="app-quick-group">
<span class="app-quick-item" v-for="item in renderArray" :key="item.id" @click="handleClick(item)">
<span v-if="!item.children" :style="{color:item.color}" :class="{'app-seleted-item':isSelectedItem(item)}">
<i v-if=" item.iconcls && !Object.is(item.iconcls, '')" :class="item.iconcls"></i>
<img v-else-if="item.icon && !Object.is(item.icon, '')" :src="item.icon" />
<span class="app-quick-item-label">{{item.label}}</span>
<span v-show="isSelectedItem(item) && counterService && counterService.counterData && counterService.counterData[item.codename]" class="app-quick-item-counter">{{itemTag(item)}}</span>
</span>
<el-dropdown v-if="item.children" style="outline: none !important;" trigger="click" @command="handleCommand($event,item)">
<span :style="{color:item.color}" :class="{'app-seleted-item':isSelectedItem(item)}">
<i v-if=" item.iconcls && !Object.is(item.iconcls, '')" :class="item.iconcls"></i>
<img v-else-if="item.icon && !Object.is(item.icon, '')" :src="item.icon" />
<span class="app-quick-item-label">{{item.label}}</span>
<span v-show="isSelectedItem(item) && counterService && counterService.counterData && counterService.counterData[item.codename]" class="app-quick-item-counter">{{itemTag(item)}}</span>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="childitem in item.children" :command="childitem" :key="childitem.id">
<span :style="{color:childitem.color}">
<i v-if=" childitem.iconcls && !Object.is(childitem.iconcls, '')" :class="childitem.iconcls"></i>
<img v-else-if="childitem.icon && !Object.is(childitem.icon, '')" :src="childitem.icon" />
<span :style="{color:(childitem.label == item.label)?'#0c64eb':''}">{{childitem.label}}</span>
</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</span>
</div>
</template>
<script lang="ts">
import { Vue, Component, Prop, Model, Emit } from "vue-property-decorator";
@Component({})
export default class AppQuickGroup extends Vue {
/**
* 传入渲染项
*
* @type {Array<any>}
* @memberof AppQuickGroup
*/
@Prop() public items!:Array<any>;
/**
* 计数器服务名
*
* @type {string}
* @memberof AppQuickGroup
*/
@Prop() public counterService?:any;
/**
* UI选中项
*
* @type {*}
* @memberof AppQuickGroup
*/
public selectedUiItem:any;
/**
* 传入渲染项
*
* @type {Array<any>}
* @memberof AppQuickGroup
*/
get renderArray(){
if(this.items && this.items.length >0){
this.selectedUiItem = this.items[0];
this.handleClick(this.items[0]);
return this.handleDataSet(this.items)
}else{
return [];
}
}
public itemTag(item:any){
if(this.counterService && this.counterService.counterData && item.codename){
return this.counterService.counterData[item.codename];
}else{
return "";
}
}
/**
* 是否选中当前项
*
* @param item 传入当前项
* @memberof AppQuickGroup
*/
public isSelectedItem(item:any){
if(this.selectedUiItem && (this.selectedUiItem.id === item.id)){
return true;
}else{
return false;
}
}
/**
* 处理代码表返回数据(树状结构)
*
* @param result 返回数组
* @memberof AppQuickGroup
*/
public handleDataSet(result:Array<any>){
let list:Array<any> = [];
if(result.length === 0){
return list;
}
result.forEach((codeItem:any) =>{
if(!codeItem.pvalue){
let valueField:string = codeItem.value;
this.setChildCodeItems(valueField,result,codeItem);
list.push(codeItem);
}
})
return list;
}
/**
* 处理非根节点数据
*
* @param pValue 父值
* @param result 返回数组
* @param codeItem 代码项
* @memberof AppQuickGroup
*/
public setChildCodeItems(pValue:string,result:Array<any>,codeItem:any){
result.forEach((item:any) =>{
if(item.pvalue == pValue){
let valueField:string = item.value;
this.setChildCodeItems(valueField,result,item);
if(!codeItem.children){
codeItem.children = [];
}
codeItem.children.push(item);
}
})
}
/**
* 处理点击事件
*
* @param $event 值
* @param isswitch 是否切换UI选中项
* @memberof AppQuickGroup
*/
public handleClick($event:any,isswitch:boolean = true){
this.$emit('valuechange',$event);
if(isswitch){
this.selectedUiItem = $event;
}
this.$forceUpdate();
}
/**
* 处理子项点击事件
*
* @param $event 值
* @param item 父值
* @memberof AppQuickGroup
*/
public handleCommand($event:any,item:any){
item.label = $event.label;
item.codename = $event.codename;
this.handleClick($event,false);
}
}
</script>
<style lang='less'>
@import "./app-quick-group.less";
</style>
\ No newline at end of file
...@@ -26,94 +26,112 @@ const tinymceCode:any = tinymce; ...@@ -26,94 +26,112 @@ const tinymceCode:any = tinymce;
@Component({}) @Component({})
export default class AppRichTextEditor extends Vue { export default class AppRichTextEditor extends Vue {
/** /**
* 传入值 * 传入值
*
* @type {*}
* @memberof AppRichTextEditor
*/ */
@Prop() value?: any; @Prop() value?: any;
/**
* 监听value值
*/
@Watch('value', { immediate: true, deep: true })
oncurrentContent(newval: any, val: any) {
if (newval) {
if(this.editor){
tinymceCode.remove('#' + this.id);
}
this.init(newval);
}
}
/** /**
* 输入name * 输入name
*
* @type {string}
* @memberof AppRichTextEditor
*/ */
@Prop() name?: string; @Prop() name?: string;
/** /**
* 输入高度 * 输入高度
*
* @type {*}
* @memberof AppRichTextEditor
*/ */
@Prop() height?: any; @Prop() height?: any;
/** /**
* 是否禁用 * 是否禁用
*
* @type {boolean}
* @memberof AppRichTextEditor
*/ */
@Prop() disabled?: any; @Prop() disabled?: boolean;
/**
* 当前语言,默认中文
*/
public langu: any = localStorage.getItem('local') ? localStorage.getItem('local') : 'zh_CN' ;
/** /**
* 监听语言变化 * 表单状态
*/ *
@Watch('$i18n.locale') * @type {Subject<any>}
onLocaleChange(newval: any, val: any) { * @memberof AppRichTextEditor
console.log("语言变更"+newval)
this.langu = newval;
if(this.editor){
tinymceCode.remove('#' + this.id);
}
this.init('');
}
/**
* 语言映射文件
*/ */
public languMap:any = { @Prop() public formState?: Subject<any>;
'zh-CN': 'zh_CN',
'en-US': 'en_US',
};
/** /**
* 上传文件路径 * 上传文件路径
*
* @type {string}
* @memberof AppRichTextEditor
*/ */
public uploadUrl = Environment.BaseUrl + Environment.UploadFile; public uploadUrl = Environment.BaseUrl + Environment.UploadFile;
/** /**
* 下载路径 * 下载路径
*
* @type {string}
* @memberof AppRichTextEditor
*/ */
public downloadUrl = Environment.BaseUrl + Environment.ExportFile; public downloadUrl = Environment.BaseUrl + Environment.ExportFile;
/** /**
* 当前富文本 * 当前富文本
*
* @type {*}
* @memberof AppRichTextEditor
*/ */
public editor: any = null; public editor: any = null;
/** /**
* 当前富文本id * 当前富文本id
*
* @type {string}
* @memberof AppRichTextEditor
*/ */
id: string = this.$util.createUUID(); public id: string = this.$util.createUUID();
/** /**
* 表单状态 * 当前语言,默认中文
* *
* @type {Subject<any>} * @type {*}
* @memberof AppRichTextEditor * @memberof AppRichTextEditor
*/ */
@Prop() public formState?: Subject<any>; public langu: any = localStorage.getItem('local') ? localStorage.getItem('local') : 'zh_CN' ;
/**
* 语言映射文件
*
* @type {*}
* @memberof AppRichTextEditor
*/
public languMap:any = {
'zh-CN': 'zh_CN',
'en-US': 'en_US',
};
/**
* 是否处于激活状态
*
* @type {boolean}
* @memberof AppRichTextEditor
*/
public isActived:boolean = true;
/**
* 是否需要初始化
*
* @type {boolean}
* @memberof AppRichTextEditor
*/
public isNeedInit:boolean = false;
/** /**
* 生命周期 * 生命周期
...@@ -125,40 +143,92 @@ export default class AppRichTextEditor extends Vue { ...@@ -125,40 +143,92 @@ export default class AppRichTextEditor extends Vue {
this.formState.subscribe(({ type, data }) => { this.formState.subscribe(({ type, data }) => {
if (Object.is('load', type)) { if (Object.is('load', type)) {
if (!this.value) { if (!this.value) {
if(this.editor){ this.init();
tinymceCode.remove('#' + this.id);
}
this.init(this.value);
} }
} }
}); });
} }
} }
/**
* 生命周期:激活
*
* @memberof AppRichTextEditor
*/
public activated(){
this.isActived = true;
if(this.isNeedInit){
this.init();
this.isNeedInit = false;
}
}
/** /**
* 初始化富文本 * 生命周期:缓存
*
* @memberof AppRichTextEditor
*/
public deactivated(){
this.isActived = false;
}
/**
* 生命周期:初始化富文本
*
* @memberof AppRichTextEditor
*/ */
public mounted() { public mounted() {
this.init(''); this.init();
} }
/** /**
* 销毁富文本 * 生命周期:销毁富文本
*
* @memberof AppRichTextEditor
*/ */
public destoryed(){ public destoryed(){
tinymceCode.remove(this.editor); if(this.editor){
tinymceCode.remove('#' + this.id);
}
}
/**
* 监听value值
*
* @memberof AppRichTextEditor
*/
@Watch('value', { immediate: true, deep: true })
oncurrentContent(newval: any, val: any) {
if (newval) {
this.init();
}
}
/**
* 监听语言变化
*/
@Watch('$i18n.locale')
onLocaleChange(newval: any, val: any) {
this.langu = newval;
if(this.isActived){
this.init();
}else{
this.isNeedInit = true;
}
} }
/** /**
* 初始化富文本 * 初始化富文本
* @param val *
* @memberof AppRichTextEditor
*/ */
public init(val: any) { public init() {
this.destoryed();
let richtexteditor = this; let richtexteditor = this;
tinymceCode.init({ tinymceCode.init({
selector: '#' + this.id, selector: '#' + richtexteditor.id,
width: 'calc( 100% - 2px )', width: 'calc( 100% - 2px )',
height: this.height, height: richtexteditor.height,
min_height: 400, min_height: 400,
branding: false, branding: false,
plugins: ['link', 'paste', 'table', 'image', 'codesample', 'code', 'fullscreen', 'preview'], plugins: ['link', 'paste', 'table', 'image', 'codesample', 'code', 'fullscreen', 'preview'],
...@@ -177,13 +247,13 @@ export default class AppRichTextEditor extends Vue { ...@@ -177,13 +247,13 @@ export default class AppRichTextEditor extends Vue {
paste_data_images: true, paste_data_images: true,
codesample_content_css: 'assets/tinymce/prism.css', codesample_content_css: 'assets/tinymce/prism.css',
skin_url: './assets/tinymce/skins/lightgray', skin_url: './assets/tinymce/skins/lightgray',
language_url: './assets/tinymce/langs/' + this.languMap[this.langu] + '.js', language_url: './assets/tinymce/langs/' + richtexteditor.languMap[richtexteditor.langu] + '.js',
language:this.languMap[this.langu], language:richtexteditor.languMap[richtexteditor.langu],
setup: (editor: any) => { setup: (editor: any) => {
this.editor = editor; richtexteditor.editor = editor;
editor.on('blur', () => { editor.on('blur', () => {
const content = editor.getContent(); const content = editor.getContent();
this.$emit('change', content); richtexteditor.$emit('change', content);
}); });
}, },
images_upload_handler: (bolbinfo: any, success: any, failure: any) => { images_upload_handler: (bolbinfo: any, success: any, failure: any) => {
...@@ -202,13 +272,13 @@ export default class AppRichTextEditor extends Vue { ...@@ -202,13 +272,13 @@ export default class AppRichTextEditor extends Vue {
}); });
}, },
init_instance_callback: (editor: any) => { init_instance_callback: (editor: any) => {
this.editor = editor; richtexteditor.editor = editor;
let value = (this.value && this.value.length > 0) ? this.value : ''; let value = (richtexteditor.value && richtexteditor.value.length > 0) ? richtexteditor.value : '';
if (this.editor) { if (richtexteditor.editor) {
this.editor.setContent(value); richtexteditor.editor.setContent(value);
} }
if (this.disabled) { if (richtexteditor.disabled) {
this.editor.setMode('readonly'); richtexteditor.editor.setMode('readonly');
} }
} }
}); });
...@@ -216,8 +286,10 @@ export default class AppRichTextEditor extends Vue { ...@@ -216,8 +286,10 @@ export default class AppRichTextEditor extends Vue {
/** /**
* 上传文件 * 上传文件
* @param url *
* @param formData * @param url 路径
* @param formData 文件对象
* @memberof AppRichTextEditor
*/ */
public uploadFile(url: string, formData: any) { public uploadFile(url: string, formData: any) {
let _this = this; let _this = this;
......
...@@ -55,14 +55,14 @@ export default class AppSpan extends Vue { ...@@ -55,14 +55,14 @@ export default class AppSpan extends Vue {
* @type {boolean} * @type {boolean}
* @memberof AppSpan * @memberof AppSpan
*/ */
@Prop({default:"、"}) public textSeparator?: string; @Prop({default:'、'}) public textSeparator?: string;
/** /**
* 值分隔符 * 值分隔符
* @type {boolean} * @type {boolean}
* @memberof AppSpan * @memberof AppSpan
*/ */
@Prop({default:";"}) public valueSeparator?: string; @Prop({default:','}) public valueSeparator?: string;
/** /**
* 监控表单属性 data 值 * 监控表单属性 data 值
...@@ -108,6 +108,11 @@ export default class AppSpan extends Vue { ...@@ -108,6 +108,11 @@ export default class AppSpan extends Vue {
public load(){ public load(){
if(!this.value || this.tag){ if(!this.value || this.tag){
return; //代码表走codelist组件 return; //代码表走codelist组件
}else if(this.editorType === "ADDRESSPICKUP"){
JSON.parse(this.value).forEach((item:any,index:number) => {
this.text += index === 0 ? item.srfmajortext : ","+item.srfmajortext;
});
}else{ }else{
this.text = this.value; this.text = this.value;
} }
......
...@@ -64,6 +64,12 @@ export default class AppUser extends Vue { ...@@ -64,6 +64,12 @@ export default class AppUser extends Vue {
_user.avatar = this.$store.getters.getAppData().context.srfusericonpath; _user.avatar = this.$store.getters.getAppData().context.srfusericonpath;
} }
} }
if(localStorage.getItem("user")){
let user:any = JSON.parse(localStorage.getItem("user") as string);
if(user && user.personname){
_user.name = user.personname;
}
}
Object.assign(this.user,_user,{ Object.assign(this.user,_user,{
time: +new Date time: +new Date
}); });
......
...@@ -61,14 +61,14 @@ export default class CodeList extends Vue { ...@@ -61,14 +61,14 @@ export default class CodeList extends Vue {
* @type {boolean} * @type {boolean}
* @memberof SelectPicker * @memberof SelectPicker
*/ */
@Prop({default:"、"}) public textSeparator?: string; @Prop({default:'、'}) public textSeparator?: string;
/** /**
* 值分隔符 * 值分隔符
* @type {boolean} * @type {boolean}
* @memberof SelectPicker * @memberof SelectPicker
*/ */
@Prop({default:";"}) public valueSeparator?: string; @Prop({default:','}) public valueSeparator?: string;
/** /**
* 是否为空 * 是否为空
......
...@@ -60,7 +60,7 @@ export default class DropDownListMpicker extends Vue { ...@@ -60,7 +60,7 @@ export default class DropDownListMpicker extends Vue {
* @type {string} * @type {string}
* @memberof DropDownListMpicker * @memberof DropDownListMpicker
*/ */
@Prop({default:';'}) public valueSeparator?: string; @Prop({default:','}) public valueSeparator?: string;
/** /**
* 是否禁用 * 是否禁用
......
...@@ -192,6 +192,7 @@ export class AppHeaderMenus extends Vue { ...@@ -192,6 +192,7 @@ export class AppHeaderMenus extends Vue {
* @memberof AppHeaderMenus * @memberof AppHeaderMenus
*/ */
protected renderMenuItem(item: any): any { protected renderMenuItem(item: any): any {
item.class = item.class ? item.class : "";
if (Object.is(this.mode, 'default')) { if (Object.is(this.mode, 'default')) {
if (item.caption && !Object.is(item.caption, '')) { if (item.caption && !Object.is(item.caption, '')) {
return <div class={"app-header-menu-item text"+item.class} disabled={item.disabled} on-click={() => this.menuClick(item)}> return <div class={"app-header-menu-item text"+item.class} disabled={item.disabled} on-click={() => this.menuClick(item)}>
......
...@@ -116,7 +116,7 @@ export class AppLayout extends Vue { ...@@ -116,7 +116,7 @@ export class AppLayout extends Vue {
if (Object.is(this.layoutMode, 'VIEW') && Object.is(this.openMode, 'DEFAULT')) { if (Object.is(this.layoutMode, 'VIEW') && Object.is(this.openMode, 'DEFAULT')) {
Object.assign(this.className, { 'crm-app-view': true, 'no-caption-bar': (!this.isShowCaptionBar && !this.isShowToolbar) }); Object.assign(this.className, { 'crm-app-view': true, 'no-caption-bar': (!this.isShowCaptionBar && !this.isShowToolbar) });
return <div class={this.className}> return <div class={this.className}>
{(!this.isShowCaptionBar && !this.isShowToolbar) ? null : <div class="crm-app-view-header-wrapper"> {(!this.isShowCaptionBar && !this.isShowToolbar) ? null : <div class="crm-app-view-header-wrapper">
{this.isShowCaptionBar ? <div class="crm-app-view-header-left-wrapper"> {this.isShowCaptionBar ? <div class="crm-app-view-header-left-wrapper">
{this.$slots.headerLeft} {this.$slots.headerLeft}
</div> : null} </div> : null}
......
...@@ -117,6 +117,9 @@ export default class MDViewEngine extends ViewEngine { ...@@ -117,6 +117,9 @@ export default class MDViewEngine extends ViewEngine {
if (Object.is(eventName, 'load')) { if (Object.is(eventName, 'load')) {
this.onSearchFormLoad(args); this.onSearchFormLoad(args);
} }
if (Object.is(eventName, 'search')) {
this.onSearchFormLoad(args);
}
} }
/** /**
...@@ -157,6 +160,20 @@ export default class MDViewEngine extends ViewEngine { ...@@ -157,6 +160,20 @@ export default class MDViewEngine extends ViewEngine {
this.isLoadDefault = true; this.isLoadDefault = true;
} }
/**
* 搜索表单搜索
*
* @param {*} [args={}]
* @memberof MDViewEngine
*/
public onSearchFormSearch(args: any = {}): void {
if (this.getMDCtrl() && this.isLoadDefault) {
const tag = this.getMDCtrl().name;
this.setViewState2({ tag: tag, action: 'load', viewdata: this.view.viewparams });
}
this.isLoadDefault = true;
}
/** /**
* 处理实体界面行为 * 处理实体界面行为
* *
...@@ -372,6 +389,15 @@ export default class MDViewEngine extends ViewEngine { ...@@ -372,6 +389,15 @@ export default class MDViewEngine extends ViewEngine {
if (this.view && !this.view.isExpandSearchForm) { if (this.view && !this.view.isExpandSearchForm) {
Object.assign(arg, { query: this.view.query }); Object.assign(arg, { query: this.view.query });
} }
// 快速分组和快速搜索栏
let otherQueryParam:any = {};
if(this.view && this.view.qucikGroupData){
Object.assign(otherQueryParam,this.view.qucikGroupData);
}
if(this.view && this.view.qucikFormData){
Object.assign(otherQueryParam,this.view.qucikFormData);
}
Object.assign(arg,{viewparams:otherQueryParam});
} }
/** /**
......
...@@ -4,12 +4,12 @@ const mock = MockAdapter.getInstance(); ...@@ -4,12 +4,12 @@ const mock = MockAdapter.getInstance();
// 模拟数据 // 模拟数据
const mockDatas: Array<any> = [ const mockDatas: Array<any> = [
{"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:46:07","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"1","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息","pimeducationid":"1","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:46:07","createman":"示例操作者","pimpersonname":null}, {"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:55:01","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"1","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息","pimeducationid":"1","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:55:01","createman":"示例操作者","pimpersonname":null},
{"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:46:07","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"2","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(1)","pimeducationid":"2","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:46:07","createman":"示例操作者","pimpersonname":null}, {"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:55:01","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"2","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(1)","pimeducationid":"2","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:55:01","createman":"示例操作者","pimpersonname":null},
{"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:46:07","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"3","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(2)","pimeducationid":"3","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:46:07","createman":"示例操作者","pimpersonname":null}, {"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:55:01","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"3","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(2)","pimeducationid":"3","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:55:01","createman":"示例操作者","pimpersonname":null},
{"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:46:07","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"4","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(3)","pimeducationid":"4","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:46:07","createman":"示例操作者","pimpersonname":null}, {"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:55:01","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"4","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(3)","pimeducationid":"4","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:55:01","createman":"示例操作者","pimpersonname":null},
{"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:46:07","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"5","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(4)","pimeducationid":"5","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:46:07","createman":"示例操作者","pimpersonname":null}, {"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:55:01","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"5","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(4)","pimeducationid":"5","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:55:01","createman":"示例操作者","pimpersonname":null},
{"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:46:07","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"6","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(5)","pimeducationid":"6","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:46:07","createman":"示例操作者","pimpersonname":null} {"sxzy":null,"jlczz":null,"ygbh":null,"ormorgsectorid":null,"bz":null,"reason":null,"xl":null,"xkml":null,"jymc":null,"jssj":null,"ormorgid":null,"bdwgznx":null,"createdate":"2020-05-18 18:55:01","enable":1,"updateman":"示例操作者","zjxtgznx":null,"srfkey":"6","gznx":null,"cjgzsj":null,"qssj":null,"fj":null,"pimeducationname":"教育信息(5)","pimeducationid":"6","orgid":null,"bjgznx":null,"xllx":null,"spstate":null,"jlss":null,"byyx":null,"orgsectorid":null,"tozjdate":null,"btz":null,"pimpersonid":null,"sfdyxl":null,"xxxz":null,"xlcx":null,"sfzgxl":null,"jlspzt":null,"xwz":null,"degree":null,"jlglbh":null,"dbdwsj":null,"dzjbjsj":null,"updatedate":"2020-05-18 18:55:01","createman":"示例操作者","pimpersonname":null}
]; ];
......
...@@ -14,7 +14,7 @@ mock.onPost('v7/login').reply((config: any) => { ...@@ -14,7 +14,7 @@ mock.onPost('v7/login').reply((config: any) => {
} catch (error) { } catch (error) {
status = 400; status = 400;
} }
if (!Object.is(user.loginname, 'ibzadmin') || !Object.is(user.password, '123456')) { if (!Object.is(user.loginname, 'guest') || !Object.is(user.password, 'guest')) {
status = 400; status = 400;
} }
if (status !== 200) { if (status !== 200) {
......
...@@ -587,12 +587,12 @@ export default class EntityService { ...@@ -587,12 +587,12 @@ export default class EntityService {
* createBatch接口方法 * createBatch接口方法
* *
* @param {*} [context={}] * @param {*} [context={}]
* @param {*} [data={}] * @param {*} [data]
* @param {boolean} [isloading] * @param {boolean} [isloading]
* @returns {Promise<any>} * @returns {Promise<any>}
* @memberof EntityService * @memberof EntityService
*/ */
public async createBatch(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async createBatch(context: any = {},data: any, isloading?: boolean): Promise<any> {
return Http.getInstance().post(`/${this.APPDENAME}/batch`,data,isloading); return Http.getInstance().post(`/${this.APPDENAME}/batch`,data,isloading);
} }
...@@ -600,12 +600,12 @@ export default class EntityService { ...@@ -600,12 +600,12 @@ export default class EntityService {
* updateBatch接口方法 * updateBatch接口方法
* *
* @param {*} [context={}] * @param {*} [context={}]
* @param {*} [data={}] * @param {*} [data]
* @param {boolean} [isloading] * @param {boolean} [isloading]
* @returns {Promise<any>} * @returns {Promise<any>}
* @memberof EntityService * @memberof EntityService
*/ */
public async updateBatch(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async updateBatch(context: any = {},data: any, isloading?: boolean): Promise<any> {
return Http.getInstance().put(`/${this.APPDENAME}/batch`,data,isloading); return Http.getInstance().put(`/${this.APPDENAME}/batch`,data,isloading);
} }
...@@ -613,12 +613,12 @@ export default class EntityService { ...@@ -613,12 +613,12 @@ export default class EntityService {
* removeBatch接口方法 * removeBatch接口方法
* *
* @param {*} [context={}] * @param {*} [context={}]
* @param {*} [data={}] * @param {*} [data]
* @param {boolean} [isloading] * @param {boolean} [isloading]
* @returns {Promise<any>} * @returns {Promise<any>}
* @memberof EntityService * @memberof EntityService
*/ */
public async removeBatch(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async removeBatch(context: any = {},data: any, isloading?: boolean): Promise<any> {
return Http.getInstance().delete(`/${this.APPDENAME}/batch`,isloading,data); return Http.getInstance().delete(`/${this.APPDENAME}/batch`,isloading,data);
} }
......
...@@ -7,6 +7,7 @@ import * as mutations from './mutations'; ...@@ -7,6 +7,7 @@ import * as mutations from './mutations';
import * as getters from './getters'; import * as getters from './getters';
import viewaction from './modules/view-action' import viewaction from './modules/view-action'
import unifiedresource from './modules/unified-resource'
const state = { const state = {
...rootstate ...rootstate
...@@ -20,7 +21,8 @@ const store = new Vuex.Store({ ...@@ -20,7 +21,8 @@ const store = new Vuex.Store({
mutations, mutations,
getters, getters,
modules: { modules: {
viewaction viewaction,
unifiedresource
}, },
}); });
......
/**
* 提交统一资源数据
*
* @param param0
* @param data
*/
export const commitResourceData = ({ commit, state }: { commit: any, state: any }, { unires, enablepermissionvalid }: { unires: Array<any>, enablepermissionvalid: boolean }) => {
if(unires && unires.length > 0){
commit('setResourceData', unires);
}
if(enablepermissionvalid){
commit('setEnablePermissionValid', enablepermissionvalid);
}
}
\ No newline at end of file
/**
* 判断指定统一资源是否存在
*
* @param state
*/
export const getResourceData = (state: any) => (resourcetag: string) => {
let itemIndex: any = state.resourceData.findIndex((obj: any, objIndex: any, objs: any) => {
return Object.is(obj.unirescode, resourcetag);
})
return itemIndex === -1 ? false : true;
}
/**
* 获取是否开启权限认证
*
* @param state
*/
export const getEnablePermissionValid = (state: any) => {
return state.enablePermissionValid;
}
\ No newline at end of file
import { resourcestate } from './state';
import * as actions from './actions';
import * as mutations from './mutations';
import * as getters from './getters';
const state = {
...resourcestate
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}
\ No newline at end of file
/**
* 设置统一资源数据
*
* @param state
* @param resourceArray
*/
export const setResourceData = (state: any, resourceArray:Array<any>) => {
if(resourceArray && resourceArray.length === 0){
return;
}
state.resourceData = resourceArray;
}
/**
* 设置是否开启权限认证
*
* @param state
* @param resourceArray
*/
export const setEnablePermissionValid = (state: any, enablepermissionvalid:boolean) => {
state.enablePermissionValid = enablepermissionvalid;
}
/**
* 所有资源状态
*/
export const resourcestate: any = {
// 统一资源数据
resourceData: [],
// 是否开启权限认证
enablePermissionValid: false
}
\ No newline at end of file
...@@ -10,6 +10,9 @@ ...@@ -10,6 +10,9 @@
.ivu-modal-body { .ivu-modal-body {
padding: 0 10px; padding: 0 10px;
height: calc(100% - 52px); height: calc(100% - 52px);
.view-container{
padding: 15px;
}
} }
} }
} }
......
...@@ -53,9 +53,21 @@ export class AuthGuard { ...@@ -53,9 +53,21 @@ export class AuthGuard {
const get: Promise<any> = Http.getInstance().get(url); const get: Promise<any> = Http.getInstance().get(url);
get.then((response: any) => { get.then((response: any) => {
if (response && response.status === 200) { if (response && response.status === 200) {
const { data }: { data: any } = response; let { data }: { data: any } = response;
if (data) { if (data) {
// token认证把用户信息放入应用级数据
if(localStorage.getItem('user')){
let user:any = JSON.parse(localStorage.getItem('user') as string);
let localAppData:any = {};
if(user.sessionParams){
localAppData = {context:user.sessionParams};
Object.assign(localAppData,data);
}
data = JSON.parse(JSON.stringify(localAppData));
}
router.app.$store.commit('addAppData', data); router.app.$store.commit('addAppData', data);
// 提交统一资源数据
router.app.$store.dispatch('unifiedresource/commitResourceData', data);
} }
} }
resolve(true); resolve(true);
......
...@@ -78,7 +78,7 @@ export class Http { ...@@ -78,7 +78,7 @@ export class Http {
axios({ axios({
method: 'post', method: 'post',
url: url, url: url,
data: { ...params }, data: params,
headers: { 'Content-Type': 'application/json;charset=UTF-8', 'Accept': 'application/json' }, headers: { 'Content-Type': 'application/json;charset=UTF-8', 'Accept': 'application/json' },
// transformResponse: [(data: any) => { // transformResponse: [(data: any) => {
// let _data: any = null; // let _data: any = null;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册