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

ibiz4j 发布系统代码

上级 76b53bf8
*volumes
*target
.settings
*node_modules
......
......@@ -28,7 +28,6 @@ import AppCheckboxList from './components/app-checkbox-list/app-checkbox-list.vu
import AppRadioGroup from './components/app-radio-group/app-radio-group.vue'
import AppEmbedPicker from './components/app-embed-picker/app-embed-picker.vue'
import AppTreePicker from './components/app-tree-picker/app-tree-picker.vue'
import AppRichTextEditor from './components/app-rich-text-editor/app-rich-text-editor.vue'
import AppFileUpload from './components/app-file-upload/app-file-upload.vue'
import AppImageUpload from './components/app-image-upload/app-image-upload.vue'
import PropertyLayout from './components/property-layout/property-layout.vue'
......@@ -53,7 +52,6 @@ import AppRate from './components/app-rate/app-rate.vue'
import AppSwitch from './components/app-switch/app-switch.vue'
import AppSlider from './components/app-slider/app-slider.vue'
import AppStepper from './components/app-stepper/app-stepper.vue'
import AppPortalDesign from './components/app-portal-design/app-portal-design.vue'
import DatePickerRange from './components/date-picker-range/date-picker-range.vue'
import AppRangeDate from './components/app-range-date/app-range-date.vue'
import AppActionBar from './components/app-actionbar/app-actionbar.vue'
......@@ -63,7 +61,6 @@ import AppStudioAction from './components/app-studioaction/app-studioaction.vue'
import AppDebugActions from './components/app-debug-actions/app-debug-actions.vue'
import AppHeaderMenus from './components/app-header-menus/app-header-menus.vue'
import AppColumnLink from './components/app-column-link/app-column-link.vue'
import AppDataUploadView from './components/app-data-upload/app-data-upload.vue'
import DropDownListDynamic from './components/dropdown-list-dynamic/dropdown-list-dynamic.vue'
import AppImagePreview from './components/app-image-preview/app-image-preview.vue'
import AppFormatData from './components/app-format-data/app-format-data.vue'
......@@ -115,7 +112,7 @@ export const AppComponents = {
v.component('app-radio-group',AppRadioGroup);
v.component('app-embed-picker', AppEmbedPicker);
v.component('app-tree-picker', AppTreePicker);
v.component('app-rich-text-editor',AppRichTextEditor);
v.component('app-rich-text-editor', () => import('./components/app-rich-text-editor/app-rich-text-editor.vue'));
v.component('app-file-upload',AppFileUpload);
v.component('app-image-upload',AppImageUpload);
v.component('property-layout',PropertyLayout);
......@@ -140,7 +137,7 @@ export const AppComponents = {
v.component('app-switch', AppSwitch);
v.component('app-slider', AppSlider);
v.component('app-stepper', AppStepper);
v.component('app-portal-design',AppPortalDesign);
v.component('app-portal-design', () => import('./components/app-portal-design/app-portal-design.vue'));
v.component('date-picker-range',DatePickerRange);
v.component('app-range-date', AppRangeDate);
v.component('app-actionbar', AppActionBar);
......@@ -150,7 +147,7 @@ export const AppComponents = {
v.component('app-debug-actions', AppDebugActions);
v.component('app-header-menus', AppHeaderMenus);
v.component('app-column-link', AppColumnLink);
v.component('app-data-upload', AppDataUploadView);
v.component('app-data-upload', () => import('./components/app-data-upload/app-data-upload.vue'));
v.component('dropdown-list-dynamic', DropDownListDynamic);
v.component('app-image-preview', AppImagePreview);
v.component('app-format-data', AppFormatData);
......
<template>
<el-breadcrumb
class="app-breadcrumb"
separator="/"
>
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item
v-for="(item, index) in breadcrumbs"
:key="item.path"
>
<span
v-if="index === breadcrumbs.length-1"
class="no-redirect"
>{{ $t(item.meta.caption) }}</span>
<a
v-else
@click.prevent="handleLink(item)"
>{{ $t(item.meta.caption) }}</a>
<el-breadcrumb-item v-for="(item, index) in breadcrumbs" :key="item.id">
<span v-if="index === breadcrumbs.length-1" class="no-redirect">{{ $t(item.title) }}</span>
<a v-else @click.prevent="handleLink(item)">{{ $t(item.title) }}</a>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
......@@ -24,14 +12,32 @@
<script lang="ts">
import { Component, Vue, Watch, Prop } from 'vue-property-decorator'
import { RouteRecord, Route } from 'vue-router'
import NavDataService from '@/service/app/navdata-service';
@Component({
})
export default class Breadcrumb extends Vue {
private breadcrumbs: RouteRecord[] = []; //面包屑列表
/**
* 面包屑列表
*
* @memberof Breadcrumb
*/
private breadcrumbs: RouteRecord[] = [];
@Prop() public defPSAppView: any; //默认视图
/**
* 默认视图标识
*
* @memberof Breadcrumb
*/
@Prop() public indexViewTag!: string;
/**
* 首页路径
*
* @memberof Breadcrumb
*/
@Prop() public indexViewPath!: string;
/**
* 监听路由
......@@ -58,23 +64,29 @@ export default class Breadcrumb extends Vue {
* @memberof Breadcrumb
*/
private getBreadcrumb() {
this.breadcrumbs = this.$route.matched.filter((item) => {
return item.meta && item.meta.caption
})
if(this.defPSAppView){
/**如果配置了默认视图,给面包屑第一级赋值默认视图为首页 */
}
let navDataService = NavDataService.getInstance();
this.breadcrumbs = navDataService.getNavData();
}
/**
* 单机面包屑
* 面包屑点击行为
*
* @memberof Breadcrumb
*/
private handleLink(item: any) {
this.$router.push(item).catch(err => {
console.warn(err);
});
// 首页
if(Object.is(item.id,this.indexViewTag)){
if(this.$route.matched && this.$route.matched.length >0){
this.$router.push(`/${this.indexViewPath}`);
}
}else{
// 非首页
this.$router.push(item.path).catch(err => {
console.warn(err);
});
}
let navDataService = NavDataService.getInstance();
navDataService.removeNavData(item.id);
}
}
</script>
......
......@@ -100,6 +100,22 @@ export default class AppFileUpload extends Vue {
*/
@Prop() public data!: string;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@Prop() public viewparams!: any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@Prop() public context!: any;
/**
* 初始化值
*
......@@ -146,7 +162,7 @@ export default class AppFileUpload extends Vue {
* @type {string}
* @memberof AppFileUpload
*/
@Prop() public uploadparams?: string;
@Prop() public uploadparams?: any;
/**
* 下载参数
......@@ -154,15 +170,7 @@ export default class AppFileUpload extends Vue {
* @type {string}
* @memberof AppFileUpload
*/
@Prop() public exportparams?: string;
/**
* 自定义参数
*
* @type {*}
* @memberof AppFileUpload
*/
@Prop() public customparams?: any;
@Prop() public exportparams?: any;
/**
* 上传文件路径
......@@ -186,20 +194,20 @@ export default class AppFileUpload extends Vue {
public files = [];
/**
* 上传keys
* 上传params
*
* @type {Array<any>}
* @memberof AppFileUpload
*/
public upload_keys: Array<any> = [];
public upload_params: Array<any> = [];
/**
* 导出keys
* 导出params
*
* @type {Array<any>}
* @memberof AppFileUpload
*/
public export_keys: Array<any> = [];
public export_params: Array<any> = [];
/**
* 自定义数组
......@@ -239,31 +247,37 @@ export default class AppFileUpload extends Vue {
* @memberof AppFileUpload
*/
private dataProcess(): void {
let upload_arr: Array<string> = [];
let export_arr: Array<string> = [];
const _data: any = JSON.parse(this.data);
this.upload_keys.forEach((key: string) => {
upload_arr.push(`${key}=${_data[key]}`);
});
this.export_keys.forEach((key: string) => {
export_arr.push(`${key}=${_data[key]}`);
});
let _url = `${Environment.BaseUrl}${Environment.UploadFile}`;
if (upload_arr.length > 0 || this.custom_arr.length > 0) {
_url = `${_url}?${upload_arr.join('&')}${upload_arr.length > 0 ? '&' : ''}${this.custom_arr.join('&')}`;
if (this.upload_params.length > 0 ) {
_url +='?';
this.upload_params.forEach((item:any,i:any)=>{
_url += `${Object.keys(item)[0]}=${Object.values(item)[0]}`;
if(i<this.upload_params.length-1){
_url += '&';
}
})
}
this.uploadUrl = _url;
this.files.forEach((file: any) => {
let url = `${this.downloadUrl}/${file.id}`;
if (upload_arr.length > 0 || this.custom_arr.length > 0) {
url = `${url}?${upload_arr.join('&')}${upload_arr.length > 0 ? '&' : ''}${this.custom_arr.join('&')}`;
if (this.export_params.length > 0) {
url +='?';
this.export_params.forEach((item:any,i:any)=>{
url += `${Object.keys(item)[0]}=${Object.values(item)[0]}`;
if(i<this.export_params.length-1){
url += '&';
}
})
}
file.url = url;
});
}
/**
* vue 生命周期
*
......@@ -290,28 +304,37 @@ export default class AppFileUpload extends Vue {
public mounted() {
this.appData = this.$store.getters.getAppData();
let uploadparams: string = '';
let exportparams: string = '';
let uploadparams: any = {};
let exportparams: any = {};
let upload_keys: Array<string> = [];
let export_keys: Array<string> = [];
let upload_params: Array<string> = [];
let export_params: Array<string> = [];
let custom_arr: Array<string> = [];
let param:any = this.viewparams;
let context:any = this.context;
let _data:any = JSON.parse(this.data);
if (this.uploadparams && !Object.is(this.uploadparams, '')) {
uploadparams = this.uploadparams;
upload_keys = uploadparams.split(';');
upload_params = this.$util.computedNavData(_data,param,context,uploadparams);
}
if (this.exportparams && !Object.is(this.exportparams, '')) {
exportparams = this.exportparams;
export_keys = exportparams.split(';');
export_params = this.$util.computedNavData(_data,param,context,exportparams);
}
if (this.customparams && !Object.is(this.customparams, '')) {
Object.keys(this.customparams).forEach((name: string) => {
custom_arr.push(`${name}=${this.customparams[name]}`);
});
for (const item in upload_params) {
this.upload_params.push({
[item]:upload_params[item]
})
}
for (const item in export_params) {
this.export_params.push({
[item]:export_params[item]
})
}
this.upload_keys = upload_keys;
this.export_keys = export_keys;
this.custom_arr = custom_arr;
this.setFiles(this.value);
this.dataProcess();
......
.app-form-group {
>.ivu-card-head {
>p {
>i {
......@@ -7,9 +8,12 @@
}
}
}
>.ivu-card-extra {
.item-extract-mode {
display: flex;
.item {
margin-left: 12px;
}
......@@ -18,6 +22,7 @@
}
.app-form-group.app-group-collapse-contant {
.ivu-card-body {
display: none;
}
......@@ -25,9 +30,12 @@
.app-group-flex {
height: 100%;
overflow: auto;
> .ivu-card-body {
overflow-y: auto;
overflow-x: hidden;
>.ivu-card-body {
height: calc(100% - 51px);
overflow: auto;
overflow-y: auto;
overflow-x: hidden;
}
}
\ No newline at end of file
<template>
<div class="app-form-group">
<div v-if="uiStyle=='STYLE2'">
<div :class="classes">
<template v-if="uiStyle=='STYLE2'">
<app-form-group2
:caption="caption"
:uiStyle="uiStyle"
......@@ -10,8 +10,8 @@
:titleBarCloseMode="titleBarCloseMode">
<slot></slot>
</app-form-group2>
</div>
<div v-else>
</template>
<template v-else>
<card v-if="isShowCaption === true" :bordered="false" :dis-hover="true" :class="classes">
<p class='' slot='title'>
<icon v-if="titleBarCloseMode !== 0" :type="collapseContant ? 'ios-arrow-dropright-circle' : 'ios-arrow-dropdown-circle'"
......@@ -87,17 +87,17 @@
</template>
</a >
</template>
<div v-if="Object.is(layoutType, 'FLEX')">
<template v-if="Object.is(layoutType, 'FLEX')">
<slot></slot>
</div>
<div v-if="!Object.is(layoutType, 'FLEX')">
</template>
<template v-if="!Object.is(layoutType, 'FLEX')">
<row :gutter="10"><slot></slot></row>
</div>
</template>
</card>
<row v-if="isShowCaption === false" :class="classes">
<slot></slot>
</row>
</div>
<template v-if="isShowCaption === false">
<slot></slot>
</template>
</template>
</div>
</template>
......
.app-form-item {
// margin-bottom: 16px;
>.ivu-form-item-label {
text-decoration: none;
display: block;
overflow: hidden;
white-space: nowrap;
}
>.ivu-form-item-content {
min-height: 36px;
}
height: 100%;
.editor {
height: 100%;
.ivu-form-item-content {
height: 100%;
min-height: 36px;
}
}
.app-form-item-label {
padding: 6px 10px 6px 0px;
}
}
.app-form-item-label-top {
>.ivu-form-item-label {
float: none;
display: inline-block;
padding: 0 0 10px;
}
.app-form-item.label-top, .app-form-item.label-bottom {
.app-form-item-label {
display: block;
}
}
.app-form-item-label-left{
.app-form-item-label{
float: left;
text-align: right;
padding-right: 12px;
.app-form-item.label-left, .app-form-item.label-right {
.app-form-item-label, .editor {
height: 100%;
}
}
.app-form-item-label-right{
.app-form-item-label{
float: right;
text-align: left;
padding-left: 12px;
.app-form-item.label-left {
.app-form-item-label {
float: left;
text-align: right;
}
}
.app-form-item-label-top{
.app-form-item-label{
display: block;
padding-bottom: 10px;
.app-form-item.label-right {
.app-form-item-label {
float: right;
padding: 6px 0px 6px 10px;
}
}
.app-form-item-label-bottom{
.app-form-item-label{
display: block;
padding-top: 10px;
.app-form-item.label-none {
.app-form-item-label {
display: none !important;
}
}
\ No newline at end of file
......@@ -98,6 +98,22 @@ export default class AppImageUpload extends Vue {
*/
@Prop() public data!: string;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@Prop() public viewparams!: any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@Prop() public context!: any;
/**
* 初始化值
*
......@@ -185,20 +201,20 @@ export default class AppImageUpload extends Vue {
@Provide() public files = [];
/**
* 上传keys
* 上传params
*
* @type {Array<any>}
* @memberof AppImageUpload
*/
public upload_keys: Array<any> = [];
public upload_params: Array<any> = [];
/**
* 导出keys
* 导出params
*
* @type {Array<any>}
* @memberof AppImageUpload
*/
public export_keys: Array<any> = [];
public export_params: Array<any> = [];
/**
* 自定义数组
......@@ -238,26 +254,31 @@ export default class AppImageUpload extends Vue {
* @memberof AppImageUpload
*/
private dataProcess(): void {
let upload_arr: Array<string> = [];
let export_arr: Array<string> = [];
const _data: any = JSON.parse(this.data);
this.upload_keys.forEach((key: string) => {
upload_arr.push(`${key}=${_data[key]}`);
});
this.export_keys.forEach((key: string) => {
export_arr.push(`${key}=${_data[key]}`);
});
let _url = `${Environment.BaseUrl}${Environment.UploadFile}`;
if (upload_arr.length > 0 || this.custom_arr.length > 0) {
_url = `${_url}?${upload_arr.join('&')}${upload_arr.length > 0 ? '&' : ''}${this.custom_arr.join('&')}`;
if (this.upload_params.length > 0 ) {
_url +='?';
this.upload_params.forEach((item:any,i:any)=>{
_url += `${Object.keys(item)[0]}=${Object.values(item)[0]}`;
if(i<this.upload_params.length-1){
_url += '&';
}
})
}
this.uploadUrl = _url;
this.files.forEach((file: any) => {
let url = `${this.downloadUrl}/${file.id}`;
if (upload_arr.length > 0 || this.custom_arr.length > 0) {
url = `${url}?${upload_arr.join('&')}${upload_arr.length > 0 ? '&' : ''}${this.custom_arr.join('&')}`;
if (this.export_params.length > 0) {
url +='?';
this.export_params.forEach((item:any,i:any)=>{
url += `${Object.keys(item)[0]}=${Object.values(item)[0]}`;
if(i<this.export_params.length-1){
url += '&';
}
})
}
file.url = url;
});
......@@ -288,28 +309,35 @@ export default class AppImageUpload extends Vue {
public mounted() {
this.appData = this.$store.getters.getAppData();
let uploadparams: string = '';
let exportparams: string = '';
let uploadparams: any = {};
let exportparams: any = {};
let upload_keys: Array<string> = [];
let export_keys: Array<string> = [];
let upload_params: Array<string> = [];
let export_params: Array<string> = [];
let custom_arr: Array<string> = [];
let param:any = this.viewparams;
let context:any = this.context;
let _data:any = JSON.parse(this.data);
if (this.uploadparams && !Object.is(this.uploadparams, '')) {
uploadparams = this.uploadparams;
upload_keys = uploadparams.split(';');
upload_params = this.$util.computedNavData(_data,param,context,uploadparams);
}
if (this.exportparams && !Object.is(this.exportparams, '')) {
exportparams = this.exportparams;
export_keys = exportparams.split(';');
export_params = this.$util.computedNavData(_data,param,context,exportparams);
}
if (this.customparams && !Object.is(this.customparams, '')) {
Object.keys(this.customparams).forEach((name: string) => {
custom_arr.push(`${name}=${this.customparams[name]}`);
});
for (const item in upload_params) {
this.upload_params.push({
[item]:upload_params[item]
})
}
for (const item in export_params) {
this.export_params.push({
[item]:export_params[item]
})
}
this.upload_keys = upload_keys;
this.export_keys = export_keys;
this.custom_arr = custom_arr;
this.setFiles(this.value);
this.dataProcess();
......
......@@ -324,10 +324,10 @@ export default class AppPickerSelectView extends Vue {
this.items.push({ srfmajortext : item.srfmajortext, srfkey: item.srfkey });
}
});
let _viewparam = JSON.parse(this.viewparam);
_viewparam.selectedData = this.selectItems;
this.viewparam = JSON.stringify(_viewparam);
}
let _viewparam = JSON.parse(this.viewparam);
_viewparam.selectedData = this.selectItems;
this.viewparam = JSON.stringify(_viewparam);
}
this.$forceUpdate();
}
......
......@@ -148,11 +148,19 @@ export default class AppSpan extends Vue {
if(this.tag){
return; //代码表走codelist组件
}else if(this.editorType === "ADDRESSPICKUP"){
JSON.parse(this.value).forEach((item:any,index:number) => {
this.text += index === 0 ? item.srfmajortext : ","+item.srfmajortext;
});
if(this.$util.isEmpty(this.value)){
this.text = '';
}else{
JSON.parse(this.value).forEach((item:any,index:number) => {
this.text += index === 0 ? item.srfmajortext : ","+item.srfmajortext;
});
}
}else{
this.text = this.value;
if(this.$util.isEmpty(this.value)){
this.text = '';
}else{
this.text = this.value;
}
}
}
......
......@@ -6,6 +6,7 @@
:type="type"
v-model="CurrentVal"
:disabled="disabled ? true : false"
:autosize="autoSize"
@on-enter="enter"
></i-input>
<div class="unit-text">{{unit}}</div>
......@@ -62,6 +63,14 @@ export default class InputBox extends Vue {
*/
@Prop() public type?: string;
/**
* 多行文本行数
*
* @type {string}
* @memberof InputBox
*/
@Prop() public autoSize?: any;
/**
* 当前值
*
......
......@@ -160,6 +160,10 @@ export default class Login extends Vue {
* @memberof Login
*/
public handleSubmit(): void {
// 清除cookie
let leftTime = new Date();
leftTime.setTime(leftTime.getSeconds() - 1000);
document.cookie = "ibzuaa-token=;expires=" + leftTime.toUTCString();
const form: any = this.$refs.loginForm;
let validatestate: boolean = true;
form.validate((valid: boolean) => {
......
......@@ -124,6 +124,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFGroupService from '@/service/wfgroup/wfgroup-service';
......@@ -366,6 +367,14 @@ export default class WFGroupEditViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFGroupEditViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -424,6 +433,8 @@ export default class WFGroupEditViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -501,6 +512,17 @@ export default class WFGroupEditViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFGroupEditViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfgroup-edit-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_form from '@widgets/wfgroup/main-form/main-form.vue';
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -148,6 +148,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFGroupService from '@/service/wfgroup/wfgroup-service';
......@@ -397,6 +398,14 @@ export default class WFGroupGridViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFGroupGridViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -455,6 +464,8 @@ export default class WFGroupGridViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -532,6 +543,17 @@ export default class WFGroupGridViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFGroupGridViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfgroup-grid-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -11,6 +11,7 @@ import view_searchform from '@widgets/wfgroup/default-searchform/default-searchf
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -66,6 +66,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFGroupService from '@/service/wfgroup/wfgroup-service';
......@@ -279,6 +280,14 @@ export default class WFGroupMPickupViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFGroupMPickupViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -337,6 +346,8 @@ export default class WFGroupMPickupViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -414,6 +425,17 @@ export default class WFGroupMPickupViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFGroupMPickupViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfgroup-mpickup-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_pickupviewpanel from '@widgets/wfgroup/mpickup-viewpickupviewpanel-p
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -48,6 +48,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFGroupService from '@/service/wfgroup/wfgroup-service';
......@@ -253,6 +254,14 @@ export default class WFGroupPickupGridViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFGroupPickupGridViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -311,6 +320,8 @@ export default class WFGroupPickupGridViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -388,6 +399,17 @@ export default class WFGroupPickupGridViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFGroupPickupGridViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfgroup-pickup-grid-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -11,6 +11,7 @@ import view_searchform from '@widgets/wfgroup/default-searchform/default-searchf
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -33,6 +33,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFGroupService from '@/service/wfgroup/wfgroup-service';
......@@ -246,6 +247,14 @@ export default class WFGroupPickupViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFGroupPickupViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -304,6 +313,8 @@ export default class WFGroupPickupViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -381,6 +392,17 @@ export default class WFGroupPickupViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFGroupPickupViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfgroup-pickup-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_pickupviewpanel from '@widgets/wfgroup/pickup-viewpickupviewpanel-pi
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -16,7 +16,9 @@
:context="context"
:showBusyIndicator="true"
v-model="collapseChange"
:mode="mode"
:mode="mode"
:navModel="navModel"
viewtag="wfindex-view"
:selectTheme="selectTheme"
:isDefaultPage="isDefaultPage"
:defPSAppView="defPSAppView"
......@@ -28,10 +30,10 @@
<layout>
<header class="index_header">
<div class="header-left" >
<div class="page-logo">
<div class="page-logo" v-if="Object.is(navModel,'route')">
<i v-show="!collapseChange" class="ivu-icon el-icon-s-fold" @click="handleClick"></i>
<i v-show="collapseChange" class="ivu-icon el-icon-s-unfold" @click="handleClick"></i>
<app-breadcrumb :defPSAppView="defPSAppView"></app-breadcrumb>
<app-breadcrumb indexViewTag="wfindex-view" indexViewPath="wfindexview"></app-breadcrumb>
</div>
</div>
<div class="header-right" style="display: flex;align-items: center;justify-content: space-between;">
......@@ -43,7 +45,7 @@
</div>
</header>
<content class="index_content" :style="{'width':this.collapseChange ? 'calc(100vw - 64px)' : 'calc(100vw - 200px)' }">
<tab-page-exp></tab-page-exp>
<tab-page-exp v-if="Object.is(navModel,'tab')"></tab-page-exp>
<app-keep-alive :routerList="getRouterList">
<router-view :key="getRouterViewKey"></router-view>
</app-keep-alive>
......@@ -58,6 +60,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
......@@ -237,6 +240,14 @@ export default class WFIndexViewBase extends Vue {
public engineInit(): void {
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFIndexViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -293,6 +304,8 @@ export default class WFIndexViewBase extends Vue {
Object.assign(this.context,this.$store.getters.getAppData().context);
}
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -370,6 +383,17 @@ export default class WFIndexViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFIndexViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfindex-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......@@ -457,6 +481,14 @@ export default class WFIndexViewBase extends Vue {
*/
public mode: string ='vertical';
/**
* 导航模式(route:面包屑模式、tab:分页导航模式)
*
* @type {string}
* @memberof WFIndexViewBase
*/
public navModel:string = "tab";
/**
* 当前主题
*
......
......@@ -9,6 +9,7 @@ import view_appmenu from '@widgets/app/wfindex-view-appmenu/wfindex-view-appmenu
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -124,6 +124,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFMemberService from '@/service/wfmember/wfmember-service';
......@@ -366,6 +367,14 @@ export default class WFMemberEditViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFMemberEditViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -424,6 +433,8 @@ export default class WFMemberEditViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -501,6 +512,17 @@ export default class WFMemberEditViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFMemberEditViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfmember-edit-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_form from '@widgets/wfmember/main-form/main-form.vue';
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -148,6 +148,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFMemberService from '@/service/wfmember/wfmember-service';
......@@ -397,6 +398,14 @@ export default class WFMemberGridViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFMemberGridViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -455,6 +464,8 @@ export default class WFMemberGridViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -532,6 +543,17 @@ export default class WFMemberGridViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFMemberGridViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfmember-grid-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -11,6 +11,7 @@ import view_searchform from '@widgets/wfmember/default-searchform/default-search
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -124,6 +124,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFProcessDefinitionService from '@/service/wfprocess-definition/wfprocess-definition-service';
......@@ -366,6 +367,14 @@ export default class WFProcessDefinitionEditViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFProcessDefinitionEditViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -424,6 +433,8 @@ export default class WFProcessDefinitionEditViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -501,6 +512,17 @@ export default class WFProcessDefinitionEditViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFProcessDefinitionEditViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfprocess-definition-edit-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_form from '@widgets/wfprocess-definition/main-form/main-form.vue';
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -148,6 +148,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFProcessDefinitionService from '@/service/wfprocess-definition/wfprocess-definition-service';
......@@ -397,6 +398,14 @@ export default class WFProcessDefinitionGridViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFProcessDefinitionGridViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -455,6 +464,8 @@ export default class WFProcessDefinitionGridViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -532,6 +543,17 @@ export default class WFProcessDefinitionGridViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFProcessDefinitionGridViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfprocess-definition-grid-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -11,6 +11,7 @@ import view_searchform from '@widgets/wfprocess-definition/default-searchform/de
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -54,6 +54,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFREModelService from '@/service/wfremodel/wfremodel-service';
......@@ -271,6 +272,14 @@ export default class WFREModelEditViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFREModelEditViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -329,6 +338,8 @@ export default class WFREModelEditViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -406,6 +417,17 @@ export default class WFREModelEditViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFREModelEditViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfremodel-edit-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_form from '@widgets/wfremodel/main-form/main-form.vue';
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -124,6 +124,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFUserService from '@/service/wfuser/wfuser-service';
......@@ -366,6 +367,14 @@ export default class WFUserEditViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFUserEditViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -424,6 +433,8 @@ export default class WFUserEditViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -501,6 +512,17 @@ export default class WFUserEditViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFUserEditViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfuser-edit-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_form from '@widgets/wfuser/main-form/main-form.vue';
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -148,6 +148,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFUserService from '@/service/wfuser/wfuser-service';
......@@ -397,6 +398,14 @@ export default class WFUserGridViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFUserGridViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -455,6 +464,8 @@ export default class WFUserGridViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -532,6 +543,17 @@ export default class WFUserGridViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFUserGridViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfuser-grid-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -11,6 +11,7 @@ import view_searchform from '@widgets/wfuser/default-searchform/default-searchfo
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -66,6 +66,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFUserService from '@/service/wfuser/wfuser-service';
......@@ -279,6 +280,14 @@ export default class WFUserMPickupViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFUserMPickupViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -337,6 +346,8 @@ export default class WFUserMPickupViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -414,6 +425,17 @@ export default class WFUserMPickupViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFUserMPickupViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfuser-mpickup-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_pickupviewpanel from '@widgets/wfuser/mpickup-viewpickupviewpanel-pi
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -48,6 +48,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFUserService from '@/service/wfuser/wfuser-service';
......@@ -253,6 +254,14 @@ export default class WFUserPickupGridViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFUserPickupGridViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -311,6 +320,8 @@ export default class WFUserPickupGridViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -388,6 +399,17 @@ export default class WFUserPickupGridViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFUserPickupGridViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfuser-pickup-grid-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -11,6 +11,7 @@ import view_searchform from '@widgets/wfuser/default-searchform/default-searchfo
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
......@@ -33,6 +33,7 @@
<script lang='tsx'>
import { Vue, Component, Prop, Provide, Emit, Watch } from 'vue-property-decorator';
import { UIActionTool,Util } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import { Subject } from 'rxjs';
import WFUserService from '@/service/wfuser/wfuser-service';
......@@ -246,6 +247,14 @@ export default class WFUserPickupViewBase extends Vue {
});
}
/**
* 应用导航服务
*
* @type {*}
* @memberof WFUserPickupViewBase
*/
public navDataService = NavDataService.getInstance();
/**
* 应用上下文
*
......@@ -304,6 +313,8 @@ export default class WFUserPickupViewBase extends Vue {
//初始化视图唯一标识
Object.assign(this.context,{srfsessionid:this.$util.createUUID()});
this.handleCustomViewData();
//初始化导航数据
this.initNavData();
}
/**
......@@ -381,6 +392,17 @@ export default class WFUserPickupViewBase extends Vue {
}
}
}
/**
* 初始化导航数据
*
* @memberof WFUserPickupViewBase
*/
public initNavData(){
if(this.viewDefaultUsage){
this.navDataService.addNavData({id:'wfuser-pickup-view',title:this.$t(this.model.srfTitle),data:null,context:this.context,viewparams:this.viewparams,path:this.$route.fullPath});
}
}
/**
......
......@@ -9,6 +9,7 @@ import view_pickupviewpanel from '@widgets/wfuser/pickup-viewpickupviewpanel-pic
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
console.log(vm);
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
......
export interface NavDataElement {
/**
* 主键标识
*
* @memberof NavDataElement
*/
id: string;
/**
* 视图标题
*
* @memberof NavDataElement
*/
title: any;
/**
* 上下文
*
* @memberof NavDataElement
*/
context:any;
/**
* 视图参数
*
* @memberof NavDataElement
*/
viewparams:any;
/**
* 视图数据
*
* @memberof NavDataElement
*/
data:any;
/**
* 视图路径
*
* @memberof NavDataElement
*/
path:string;
}
/**
* 导航数据服务
*
* @export
* @class CodeListService
*/
export default class NavDataService {
/**
* 单例变量声明
*
* @private
* @static
* @type {NavDataService}
* @memberof NavDataService
*/
private static navDataService: NavDataService;
/**
* 导航数据栈
*
* @memberof NavDataService
*/
public navDataStack:Array<NavDataElement> = [];
/**
* 导航数据存储仓库
*
* @memberof NavDataService
*/
public sessionStore:any;
/**
* 初始化实例
*
* @memberof NavDataService
*/
constructor(opts:any = {}){
this.sessionStore = window.sessionStorage;
this.initNavData();
}
/**
* 获取 NavDataService 单例对象
*
* @static
* @returns {NavDataService}
* @memberof NavDataService
*/
public static getInstance(): NavDataService {
if (!NavDataService.navDataService) {
NavDataService.navDataService = new NavDataService();
}
return this.navDataService;
}
/**
* 初始化基础导航数据
*
* @memberof NavDataService
*/
public initNavData(){
if(this.sessionStore && this.sessionStore.getItem('srfnavdata')){
this.navDataStack = JSON.parse(this.sessionStore.getItem('srfnavdata'));
}
}
/**
* 添加基础导航数据到栈中
*
* @memberof NavDataService
*/
public addNavData(curNavData:NavDataElement){
if(this.navDataStack.length >0){
let tempIndex:number = this.navDataStack.findIndex((element:NavDataElement) =>{
return Object.is(element.id,curNavData.id);
})
if(tempIndex === -1){
this.navDataStack.push(curNavData);
this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack));
return curNavData;
}else{
this.setNavDataById(curNavData.id,curNavData);
}
}else{
this.navDataStack.push(curNavData);
this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack));
return curNavData;
}
}
/**
* 设置指定数据到基础导航数据栈中
*
* @memberof NavDataService
*/
public setNavDataById(id:string,curNavData:NavDataElement){
if(this.navDataStack.length >0){
let tempIndex:number = this.navDataStack.findIndex((element:NavDataElement) =>{
return Object.is(element.id,id);
})
this.navDataStack[tempIndex] = curNavData;
this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack));
return curNavData;
}else{
return null;
}
}
/**
* 从导航数据栈中删除指定数据上层数据
*
* @memberof NavDataService
*/
public removeNavData(id:string){
if(this.navDataStack.length >0){
let tempIndex:number = this.navDataStack.findIndex((element:NavDataElement) =>{
return Object.is(element.id,id);
})
let removeNavData = this.navDataStack.splice(tempIndex+1);
this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack));
return removeNavData;
}else{
return null;
}
}
/**
* 从导航数据栈中获取指定数据
*
* @memberof NavDataService
*/
public getNavDataById(id:string){
if(this.navDataStack.length >0){
let tempIndex:number = this.navDataStack.findIndex((element:NavDataElement) =>{
return Object.is(element.id,id);
})
return this.navDataStack[tempIndex];
}else{
return null;
}
}
/**
* 从导航数据栈中获取指定数据的前一条数据
*
* @memberof NavDataService
*/
public getPreNavDataById(id:string){
if(this.navDataStack.length >0){
let tempIndex:number = this.navDataStack.findIndex((element:NavDataElement) =>{
return Object.is(element.id,id);
})
return this.navDataStack[tempIndex-1];
}else{
return null;
}
}
/**
* 清空导航数据栈数据
*
* @memberof NavDataService
*/
public clearNavData(id:string){
this.navDataStack = [];
this.sessionStore.setItem('srfnavdata',JSON.stringify(this.navDataStack));
}
/**
* 从导航数据栈中获取数据
*
* @memberof NavDataService
*/
public getNavData(){
return this.navDataStack;
}
}
\ No newline at end of file
......@@ -132,13 +132,16 @@ export class Interceptors {
* @memberof Interceptors
*/
private doNoLogin(data: any = {}): void {
// 清除user和token
// 清除user、token和cookie
if(localStorage.getItem('user')){
localStorage.removeItem('user');
}
if(localStorage.getItem('token')){
localStorage.removeItem('token');
}
let leftTime = new Date();
leftTime.setTime(leftTime.getSeconds() - 1);
document.cookie = "ibzuaa-token=;expires=" + leftTime.toUTCString();
if (data.loginurl && !Object.is(data.loginurl, '') && data.originurl && !Object.is(data.originurl, '')) {
let _url = encodeURIComponent(encodeURIComponent(window.location.href));
let loginurl: string = data.loginurl;
......
......@@ -99,15 +99,17 @@ export class ViewTool {
let routePath: string = '';
let [arg] = args;
arg = arg ? arg : {};
deResParameters.forEach(({ pathName, parameterName }: { pathName: string, parameterName: string }) => {
let value:any = null;
if (viewParam[parameterName] && !Object.is(viewParam[parameterName], '') && !Object.is(viewParam[parameterName], 'null')) {
value = viewParam[parameterName];
} else if (arg[parameterName] && !Object.is(arg[parameterName], '') && !Object.is(arg[parameterName], 'null')) {
value = arg[parameterName];
}
routePath = `${routePath}/${pathName}/${value}`;
});
if(deResParameters && deResParameters.length >0){
deResParameters.forEach(({ pathName, parameterName }: { pathName: string, parameterName: string }) => {
let value:any = null;
if (viewParam[parameterName] && !Object.is(viewParam[parameterName], '') && !Object.is(viewParam[parameterName], 'null')) {
value = viewParam[parameterName];
} else if (arg[parameterName] && !Object.is(arg[parameterName], '') && !Object.is(arg[parameterName], 'null')) {
value = arg[parameterName];
}
routePath = `${routePath}/${pathName}/${value}`;
});
}
return routePath;
}
......@@ -124,21 +126,23 @@ export class ViewTool {
public static getActiveRoutePath(parameters: any[], args: any[], data: any): string {
let routePath: string = '';
// 不存在应用实体
if (parameters.length === 1) {
const [{ pathName, parameterName }] = parameters;
routePath = `/${pathName}`;
if (Object.keys(data).length > 0) {
routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`;
}
} else if (parameters.length === 2) {
let [arg] = args;
arg = arg ? arg : {};
const [{ pathName: _pathName, parameterName: _parameterName }, { pathName: _pathName2, parameterName: _parameterName2 }] = parameters;
const _value: any = arg[_parameterName] && !Object.is(arg[_parameterName], '') ?
arg[_parameterName] : null;
routePath = `/${_pathName}/${_value}/${_pathName2}`;
if (Object.keys(data).length > 0) {
routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`;
if(parameters && parameters.length >0){
if (parameters.length === 1) {
const [{ pathName, parameterName }] = parameters;
routePath = `/${pathName}`;
if (Object.keys(data).length > 0) {
routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`;
}
} else if (parameters.length === 2) {
let [arg] = args;
arg = arg ? arg : {};
const [{ pathName: _pathName, parameterName: _parameterName }, { pathName: _pathName2, parameterName: _parameterName2 }] = parameters;
const _value: any = arg[_parameterName] && !Object.is(arg[_parameterName], '') ?
arg[_parameterName] : null;
routePath = `/${_pathName}/${_value}/${_pathName2}`;
if (Object.keys(data).length > 0) {
routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`;
}
}
}
return routePath;
......
......@@ -127,6 +127,7 @@ import WFIndexViewService from './wfindex-view-appmenu-service';
import WFIndexViewModel from './wfindex-view-appmenu-model';
import { Environment } from '@/environments/environment';
import NavDataService from '@/service/app/navdata-service';
@Component({
......@@ -247,6 +248,22 @@ export default class WFIndexViewBase extends Vue implements ControlInterface {
return null;
}
/**
* 导航模式(route:面包屑模式、tab:分页导航模式)
*
* @type {string}
* @memberof WFIndexView
*/
@Prop({default:'tab'}) public navModel?:string;
/**
* 视图标识
*
* @type {string}
* @memberof WFIndexView
*/
@Prop() public viewtag!:string;
/**
* 菜单模型
*
......@@ -558,6 +575,10 @@ export default class WFIndexViewBase extends Vue implements ControlInterface {
*/
public click(item: any) {
if (item) {
if(Object.is(this.navModel,"route")){
let navDataService = NavDataService.getInstance();
navDataService.removeNavData(this.viewtag);
}
switch (item.appfunctag) {
case 'Auto3':
this.clickAuto3(item);
......
......@@ -722,7 +722,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
let _datas:any[] = [];
datas.forEach((record: any, index: number) => {
if (!record.srfkey) {
if (Object.is(record.srfuf,"0")) {
this.items.some((val: any, num: number) =>{
if(JSON.stringify(val) == JSON.stringify(record)){
this.items.splice(num,1);
......@@ -1395,6 +1395,120 @@ export default class MainBase extends Vue implements ControlInterface {
return successItems;
}
/**
* 新建行
*
* @param {*} $event
* @returns {void}
* @memberof Main
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'WFGroupGridView视图表格loaddraftAction参数未配置' });
return;
}
let _this = this;
Object.assign(args[0],{viewparams:this.viewparams});
let post: Promise<any> = this.service.loadDraft(this.loaddraftAction, JSON.parse(JSON.stringify(this.context)), args[0], this.showBusyIndicator);
post.then((response: any) => {
if (!response.status || response.status !== 200) {
if (response.errorMessage) {
this.$Notice.error({ title: '错误', desc: response.errorMessage });
}
return;
}
const data = response.data;
this.createDefault(data);
data.rowDataState = "create";
_this.items.push(data);
_this.gridItemsModel.push(_this.getGridRowModel());
}).catch((response: any) => {
if (response && response.status === 401) {
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 表格编辑项值变更
*
* @param row 行数据
* @param {{ name: string, value: any }} $event
* @returns {void}
* @memberof Main
*/
public onGridItemValueChange(row: any,$event: { name: string, value: any },rowIndex: number): void {
if (!$event) {
return;
}
if (!$event.name || Object.is($event.name, '') || !row.hasOwnProperty($event.name)) {
return;
}
row[$event.name] = $event.value;
this.gridEditItemChange(row, $event.name, $event.value, rowIndex);
}
/**
* 表格编辑项值变化
*
* @public
* @param row 行数据
* @param property 列编辑项名
* @param row 列编辑项值
* @returns {void}
* @memberof Main
*/
public gridEditItemChange(row: any, property: string, value: any, rowIndex: number){
row.rowDataState = row.rowDataState ? row.rowDataState : "update" ;
this.validate(property,row,rowIndex);
}
/**
* 表格编辑项更新
*
* @param {string} mode 界面行为名称
* @param {*} [data={}] 请求数据
* @param {string[]} updateDetails 更新项
* @param {boolean} [showloading] 是否显示加载状态
* @returns {void}
* @memberof Main
*/
public updateGridEditItem(mode: string, data: any = {}, updateDetails: string[], showloading?: boolean): void {
if (!mode || (mode && Object.is(mode, ''))) {
return;
}
const arg: any = JSON.parse(JSON.stringify(data));
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = this.service.frontLogic(mode,JSON.parse(JSON.stringify(this.context)),arg, showloading);
post.then((response: any) => {
if (!response || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '表单项更新失败' });
return;
}
const _data: any = response.data;
if(!_data){
return;
}
updateDetails.forEach((name: string) => {
if (!_data.hasOwnProperty(name)) {
return;
}
data[name] = _data[name];
});
}).catch((response: any) => {
if (response && response.status === 401) {
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 获取对应行class
......
......@@ -267,7 +267,6 @@ export default class MainService extends ControlService {
response.data.id = Util.createUUID();
}
this.handleResponse(action, response, true);
this.mergeDefaults(response);
resolve(response);
}).catch(response => {
reject(response);
......@@ -275,16 +274,6 @@ export default class MainService extends ControlService {
});
}
/**
* 合并配置的默认值
* @param {*}
* @memberof MainService
*/
public mergeDefaults(response:any = {}){
if(response.data){
}
}
/**
* 前台逻辑
......
......@@ -703,7 +703,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
let _datas:any[] = [];
datas.forEach((record: any, index: number) => {
if (!record.srfkey) {
if (Object.is(record.srfuf,"0")) {
this.items.some((val: any, num: number) =>{
if(JSON.stringify(val) == JSON.stringify(record)){
this.items.splice(num,1);
......@@ -1376,6 +1376,120 @@ export default class MainBase extends Vue implements ControlInterface {
return successItems;
}
/**
* 新建行
*
* @param {*} $event
* @returns {void}
* @memberof Main
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'WFMemberGridView视图表格loaddraftAction参数未配置' });
return;
}
let _this = this;
Object.assign(args[0],{viewparams:this.viewparams});
let post: Promise<any> = this.service.loadDraft(this.loaddraftAction, JSON.parse(JSON.stringify(this.context)), args[0], this.showBusyIndicator);
post.then((response: any) => {
if (!response.status || response.status !== 200) {
if (response.errorMessage) {
this.$Notice.error({ title: '错误', desc: response.errorMessage });
}
return;
}
const data = response.data;
this.createDefault(data);
data.rowDataState = "create";
_this.items.push(data);
_this.gridItemsModel.push(_this.getGridRowModel());
}).catch((response: any) => {
if (response && response.status === 401) {
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 表格编辑项值变更
*
* @param row 行数据
* @param {{ name: string, value: any }} $event
* @returns {void}
* @memberof Main
*/
public onGridItemValueChange(row: any,$event: { name: string, value: any },rowIndex: number): void {
if (!$event) {
return;
}
if (!$event.name || Object.is($event.name, '') || !row.hasOwnProperty($event.name)) {
return;
}
row[$event.name] = $event.value;
this.gridEditItemChange(row, $event.name, $event.value, rowIndex);
}
/**
* 表格编辑项值变化
*
* @public
* @param row 行数据
* @param property 列编辑项名
* @param row 列编辑项值
* @returns {void}
* @memberof Main
*/
public gridEditItemChange(row: any, property: string, value: any, rowIndex: number){
row.rowDataState = row.rowDataState ? row.rowDataState : "update" ;
this.validate(property,row,rowIndex);
}
/**
* 表格编辑项更新
*
* @param {string} mode 界面行为名称
* @param {*} [data={}] 请求数据
* @param {string[]} updateDetails 更新项
* @param {boolean} [showloading] 是否显示加载状态
* @returns {void}
* @memberof Main
*/
public updateGridEditItem(mode: string, data: any = {}, updateDetails: string[], showloading?: boolean): void {
if (!mode || (mode && Object.is(mode, ''))) {
return;
}
const arg: any = JSON.parse(JSON.stringify(data));
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = this.service.frontLogic(mode,JSON.parse(JSON.stringify(this.context)),arg, showloading);
post.then((response: any) => {
if (!response || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '表单项更新失败' });
return;
}
const _data: any = response.data;
if(!_data){
return;
}
updateDetails.forEach((name: string) => {
if (!_data.hasOwnProperty(name)) {
return;
}
data[name] = _data[name];
});
}).catch((response: any) => {
if (response && response.status === 401) {
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 获取对应行class
......
......@@ -267,7 +267,6 @@ export default class MainService extends ControlService {
response.data.memberid = Util.createUUID();
}
this.handleResponse(action, response, true);
this.mergeDefaults(response);
resolve(response);
}).catch(response => {
reject(response);
......@@ -275,16 +274,6 @@ export default class MainService extends ControlService {
});
}
/**
* 合并配置的默认值
* @param {*}
* @memberof MainService
*/
public mergeDefaults(response:any = {}){
if(response.data){
}
}
/**
* 前台逻辑
......
......@@ -51,7 +51,7 @@
</i-col>
<i-col v-show="detailsModel.bpmnfile.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='bpmnfile' :itemRules="this.rules.bpmnfile" class='' :caption="$t('entities.wfprocessdefinition.main_form.details.bpmnfile')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.bpmnfile.error" :isEmptyCaption="false" labelPos="LEFT">
<app-file-upload :formState="formState" :ignorefieldvaluechange="ignorefieldvaluechange" @formitemvaluechange="onFormItemValueChange" :data="JSON.stringify(this.data)" name='bpmnfile' :value="data.bpmnfile" :disabled="detailsModel.bpmnfile.disabled" uploadparams='' exportparams='' :customparams="{}" style="overflow: auto;"></app-file-upload>
<app-file-upload :formState="formState" :ignorefieldvaluechange="ignorefieldvaluechange" @formitemvaluechange="onFormItemValueChange" :data="JSON.stringify(this.data)" name='bpmnfile' :value="data.bpmnfile" :disabled="detailsModel.bpmnfile.disabled" :uploadparams='{}' :exportparams='{}' style="overflow: auto;"></app-file-upload>
</app-form-item>
</i-col>
......
......@@ -762,7 +762,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
let _datas:any[] = [];
datas.forEach((record: any, index: number) => {
if (!record.srfkey) {
if (Object.is(record.srfuf,"0")) {
this.items.some((val: any, num: number) =>{
if(JSON.stringify(val) == JSON.stringify(record)){
this.items.splice(num,1);
......@@ -1443,6 +1443,120 @@ export default class MainBase extends Vue implements ControlInterface {
return successItems;
}
/**
* 新建行
*
* @param {*} $event
* @returns {void}
* @memberof Main
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'WFProcessDefinitionGridView视图表格loaddraftAction参数未配置' });
return;
}
let _this = this;
Object.assign(args[0],{viewparams:this.viewparams});
let post: Promise<any> = this.service.loadDraft(this.loaddraftAction, JSON.parse(JSON.stringify(this.context)), args[0], this.showBusyIndicator);
post.then((response: any) => {
if (!response.status || response.status !== 200) {
if (response.errorMessage) {
this.$Notice.error({ title: '错误', desc: response.errorMessage });
}
return;
}
const data = response.data;
this.createDefault(data);
data.rowDataState = "create";
_this.items.push(data);
_this.gridItemsModel.push(_this.getGridRowModel());
}).catch((response: any) => {
if (response && response.status === 401) {
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 表格编辑项值变更
*
* @param row 行数据
* @param {{ name: string, value: any }} $event
* @returns {void}
* @memberof Main
*/
public onGridItemValueChange(row: any,$event: { name: string, value: any },rowIndex: number): void {
if (!$event) {
return;
}
if (!$event.name || Object.is($event.name, '') || !row.hasOwnProperty($event.name)) {
return;
}
row[$event.name] = $event.value;
this.gridEditItemChange(row, $event.name, $event.value, rowIndex);
}
/**
* 表格编辑项值变化
*
* @public
* @param row 行数据
* @param property 列编辑项名
* @param row 列编辑项值
* @returns {void}
* @memberof Main
*/
public gridEditItemChange(row: any, property: string, value: any, rowIndex: number){
row.rowDataState = row.rowDataState ? row.rowDataState : "update" ;
this.validate(property,row,rowIndex);
}
/**
* 表格编辑项更新
*
* @param {string} mode 界面行为名称
* @param {*} [data={}] 请求数据
* @param {string[]} updateDetails 更新项
* @param {boolean} [showloading] 是否显示加载状态
* @returns {void}
* @memberof Main
*/
public updateGridEditItem(mode: string, data: any = {}, updateDetails: string[], showloading?: boolean): void {
if (!mode || (mode && Object.is(mode, ''))) {
return;
}
const arg: any = JSON.parse(JSON.stringify(data));
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = this.service.frontLogic(mode,JSON.parse(JSON.stringify(this.context)),arg, showloading);
post.then((response: any) => {
if (!response || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '表单项更新失败' });
return;
}
const _data: any = response.data;
if(!_data){
return;
}
updateDetails.forEach((name: string) => {
if (!_data.hasOwnProperty(name)) {
return;
}
data[name] = _data[name];
});
}).catch((response: any) => {
if (response && response.status === 401) {
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 获取对应行class
......
......@@ -267,7 +267,6 @@ export default class MainService extends ControlService {
response.data.definitionkey = Util.createUUID();
}
this.handleResponse(action, response, true);
this.mergeDefaults(response);
resolve(response);
}).catch(response => {
reject(response);
......@@ -275,16 +274,6 @@ export default class MainService extends ControlService {
});
}
/**
* 合并配置的默认值
* @param {*}
* @memberof MainService
*/
public mergeDefaults(response:any = {}){
if(response.data){
}
}
/**
* 前台逻辑
......
......@@ -8,7 +8,7 @@
<row>
<i-col v-show="detailsModel.bpmnfile.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='bpmnfile' :itemRules="this.rules.bpmnfile" class='' :caption="$t('entities.wfremodel.main_form.details.bpmnfile')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.bpmnfile.error" :isEmptyCaption="false" labelPos="LEFT">
<app-file-upload :formState="formState" :ignorefieldvaluechange="ignorefieldvaluechange" @formitemvaluechange="onFormItemValueChange" :data="JSON.stringify(this.data)" name='bpmnfile' :value="data.bpmnfile" :disabled="detailsModel.bpmnfile.disabled" uploadparams='' exportparams='' :customparams="{}" style="overflow: auto;"></app-file-upload>
<app-file-upload :formState="formState" :ignorefieldvaluechange="ignorefieldvaluechange" @formitemvaluechange="onFormItemValueChange" :data="JSON.stringify(this.data)" name='bpmnfile' :value="data.bpmnfile" :disabled="detailsModel.bpmnfile.disabled" :uploadparams='{}' :exportparams='{}' style="overflow: auto;"></app-file-upload>
</app-form-item>
</i-col>
......
......@@ -722,7 +722,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
let _datas:any[] = [];
datas.forEach((record: any, index: number) => {
if (!record.srfkey) {
if (Object.is(record.srfuf,"0")) {
this.items.some((val: any, num: number) =>{
if(JSON.stringify(val) == JSON.stringify(record)){
this.items.splice(num,1);
......@@ -1395,6 +1395,120 @@ export default class MainBase extends Vue implements ControlInterface {
return successItems;
}
/**
* 新建行
*
* @param {*} $event
* @returns {void}
* @memberof Main
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'WFUserGridView视图表格loaddraftAction参数未配置' });
return;
}
let _this = this;
Object.assign(args[0],{viewparams:this.viewparams});
let post: Promise<any> = this.service.loadDraft(this.loaddraftAction, JSON.parse(JSON.stringify(this.context)), args[0], this.showBusyIndicator);
post.then((response: any) => {
if (!response.status || response.status !== 200) {
if (response.errorMessage) {
this.$Notice.error({ title: '错误', desc: response.errorMessage });
}
return;
}
const data = response.data;
this.createDefault(data);
data.rowDataState = "create";
_this.items.push(data);
_this.gridItemsModel.push(_this.getGridRowModel());
}).catch((response: any) => {
if (response && response.status === 401) {
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 表格编辑项值变更
*
* @param row 行数据
* @param {{ name: string, value: any }} $event
* @returns {void}
* @memberof Main
*/
public onGridItemValueChange(row: any,$event: { name: string, value: any },rowIndex: number): void {
if (!$event) {
return;
}
if (!$event.name || Object.is($event.name, '') || !row.hasOwnProperty($event.name)) {
return;
}
row[$event.name] = $event.value;
this.gridEditItemChange(row, $event.name, $event.value, rowIndex);
}
/**
* 表格编辑项值变化
*
* @public
* @param row 行数据
* @param property 列编辑项名
* @param row 列编辑项值
* @returns {void}
* @memberof Main
*/
public gridEditItemChange(row: any, property: string, value: any, rowIndex: number){
row.rowDataState = row.rowDataState ? row.rowDataState : "update" ;
this.validate(property,row,rowIndex);
}
/**
* 表格编辑项更新
*
* @param {string} mode 界面行为名称
* @param {*} [data={}] 请求数据
* @param {string[]} updateDetails 更新项
* @param {boolean} [showloading] 是否显示加载状态
* @returns {void}
* @memberof Main
*/
public updateGridEditItem(mode: string, data: any = {}, updateDetails: string[], showloading?: boolean): void {
if (!mode || (mode && Object.is(mode, ''))) {
return;
}
const arg: any = JSON.parse(JSON.stringify(data));
Object.assign(arg,{viewparams:this.viewparams});
const post: Promise<any> = this.service.frontLogic(mode,JSON.parse(JSON.stringify(this.context)),arg, showloading);
post.then((response: any) => {
if (!response || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '表单项更新失败' });
return;
}
const _data: any = response.data;
if(!_data){
return;
}
updateDetails.forEach((name: string) => {
if (!_data.hasOwnProperty(name)) {
return;
}
data[name] = _data[name];
});
}).catch((response: any) => {
if (response && response.status === 401) {
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
}
/**
* 获取对应行class
......
......@@ -267,7 +267,6 @@ export default class MainService extends ControlService {
response.data.id = Util.createUUID();
}
this.handleResponse(action, response, true);
this.mergeDefaults(response);
resolve(response);
}).catch(response => {
reject(response);
......@@ -275,16 +274,6 @@ export default class MainService extends ControlService {
});
}
/**
* 合并配置的默认值
* @param {*}
* @memberof MainService
*/
public mergeDefaults(response:any = {}){
if(response.data){
}
}
/**
* 前台逻辑
......
......@@ -37,11 +37,6 @@
git clone -b master $para2 ibzwf/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibzwf/
mvn clean package -Pweb
cd ibzwf-app/ibzwf-app-web
mvn -Pweb docker:build
mvn -Pweb docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzwf-app-web.yaml ibzlab-rt --with-registry-auth
</command>
</hudson.tasks.Shell>
</builders>
......
......@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzwf-app-web.jar
EXPOSE 30003
EXPOSE 8080
ADD ibzwf-app-web.jar /ibzwf-app-web.jar
......@@ -3,21 +3,9 @@ services:
ibzwf-app-web:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzwf-app-web:latest
ports:
- "30003:30003"
- "8080:8080"
networks:
- agent_network
environment:
- SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
- SERVER_PORT=30003
- SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.102.211:8848
- SPRING_REDIS_HOST=172.16.100.243
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_DATABASE=0
- SPRING_DATASOURCE_USERNAME=a_A_5d9d78509
- SPRING_DATASOURCE_PASSWORD=@6dEfb3@
- SPRING_DATASOURCE_URL=jdbc:mysql://172.16.180.232:3306/a_A_5d9d78509?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true
- SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_DEFAULTSCHEMA=a_A_5d9d78509
deploy:
resources:
limits:
......
!!!!模版产生代码错误:----
FTL stack trace ("~" means nesting-related):
- Failed at: #{sys.name} [in template "CODETEMPL_zh_CN" at line 18, column 3]
----
\ No newline at end of file
!!!!模版产生代码错误:----
FTL stack trace ("~" means nesting-related):
- Failed at: #{sys.name} [in template "CODETEMPL_zh_CN" at line 3, column 3]
----
\ No newline at end of file
!!!!模版产生代码错误:----
FTL stack trace ("~" means nesting-related):
- Failed at: #{sys.name} [in template "CODETEMPL_zh_CN" at line 3, column 3]
----
\ No newline at end of file
......@@ -43,7 +43,7 @@ public class WFGroup extends EntityMP implements Serializable {
* 组标识
*/
@DEField(name = "groupid" , isKeyField=true)
@TableId(value= "groupid",type=IdType.UUID)
@TableId(value= "groupid",type=IdType.ASSIGN_UUID)
@JSONField(name = "id")
@JsonProperty("id")
private String id;
......
......@@ -43,7 +43,7 @@ public class WFMember extends EntityMP implements Serializable {
* 组成员标识
*/
@DEField(isKeyField=true)
@TableId(value= "memberid",type=IdType.UUID)
@TableId(value= "memberid",type=IdType.ASSIGN_UUID)
@JSONField(name = "memberid")
@JsonProperty("memberid")
private String memberid;
......
......@@ -43,7 +43,7 @@ public class WFProcessDefinition extends EntityMP implements Serializable {
* DefinitionKey
*/
@DEField(defaultValue = "deploykey" , defaultValueType = DEFieldDefaultValueType.PARAM , isKeyField=true)
@TableId(value= "definitionkey",type=IdType.UUID)
@TableId(value= "definitionkey",type=IdType.ASSIGN_UUID)
@JSONField(name = "definitionkey")
@JsonProperty("definitionkey")
private String definitionkey;
......
......@@ -43,7 +43,7 @@ public class WFSystem extends EntityMP implements Serializable {
* 系统标识
*/
@DEField(isKeyField=true)
@TableId(value= "pssystemid",type=IdType.UUID)
@TableId(value= "pssystemid",type=IdType.ASSIGN_UUID)
@JSONField(name = "pssystemid")
@JsonProperty("pssystemid")
private String pssystemid;
......
......@@ -43,7 +43,7 @@ public class WFUser extends EntityMP implements Serializable {
* 用户标识
*/
@DEField(name = "userid" , isKeyField=true)
@TableId(value= "userid",type=IdType.UUID)
@TableId(value= "userid",type=IdType.ASSIGN_UUID)
@JSONField(name = "id")
@JsonProperty("id")
private String id;
......
......@@ -162,6 +162,7 @@ public class WFGroupServiceImpl extends ServiceImpl<WFGroupMapper, WFGroup> impl
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -243,6 +243,7 @@ public class WFMemberServiceImpl extends ServiceImpl<WFMemberMapper, WFMember> i
}
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -155,6 +155,7 @@ public class WFProcessDefinitionServiceImpl extends ServiceImpl<WFProcessDefinit
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -155,6 +155,7 @@ public class WFSystemServiceImpl extends ServiceImpl<WFSystemMapper, WFSystem> i
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -158,6 +158,7 @@ public class WFUserServiceImpl extends ServiceImpl<WFUserMapper, WFUser> impleme
@Override
public List<JSONObject> select(String sql, Map param){
return this.baseMapper.selectBySQL(sql,param);
......
......@@ -3,14 +3,14 @@ spring:
cloud:
nacos:
discovery:
server-addr: 172.16.102.211:8848
server-addr: 127.0.0.1:8848
cache:
redis:
time-to-live: 3600
caffeine:
spec: initialCapacity=5,maximumSize=500,expireAfterWrite=3600s
redis:
host: 172.16.100.243
host: 127.0.0.1
port: 6379
password:
database: 0
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册