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

lab_gzf 部署微服务应用

上级 68226418
......@@ -301,7 +301,7 @@ export default class AppRichTextEditor extends Vue {
@Watch('value', { immediate: true, deep: true })
oncurrentContent(newval: any, val: any) {
const content: any = this.editor ? this.editor.getContent() : undefined;
const url = this.downloadUrl.substring(3);
const url = this.downloadUrl.indexOf('../') === 0 ? this.downloadUrl.substring(3) : this.downloadUrl;
if(newval) {
newval = newval.replace(/\{(\d+)\.(bmp|jpg|jpeg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp)\}/g, `${url}/$1`);
}
......@@ -364,7 +364,7 @@ export default class AppRichTextEditor extends Vue {
richtexteditor.editor = editor;
editor.on('blur', () => {
let content = editor.getContent();
const url = richtexteditor.downloadUrl.substring(3);
const url = richtexteditor.downloadUrl.indexOf('../') === 0 ? richtexteditor.downloadUrl.substring(3) : richtexteditor.downloadUrl;
let newContent: string = "";
const imgsrc = richtexteditor.imgsrc;
if(imgsrc && imgsrc.length > 0){
......
......@@ -245,6 +245,7 @@ export default {
back: "Back",
next: "Next",
complete: "Complete",
preactionmessage:"The calculation of the previous behavior is not configured"
},
viewLayoutPanel: {
appLogoutView: {
......
......@@ -244,6 +244,7 @@ export default {
back: "上一步",
next: "下一步",
complete: "完成",
preactionmessage:"未配置计算上一步行为"
},
viewLayoutPanel: {
appLogoutView: {
......
......@@ -2,6 +2,7 @@ import { Vue } from 'vue-property-decorator';
import { FooterItemsService } from '@/studio-core/service/FooterItemsService';
import { AppService } from '@/studio-core/service/app-service/AppService';
import AppMenusModel from '@/widgets/app/app-index-view-appmenu/app-index-view-appmenu-model';
import { Environment } from '@/environments/environment';
/**
* 应用首页基类
......@@ -170,6 +171,10 @@ export class AppIndexViewBase extends Vue {
* @memberof AppIndexViewBase
*/
protected created() {
this.left_exp = this.handleMenusResource(this.left_exp);
this.bottom_exp = this.handleMenusResource(this.bottom_exp);
this.top_menus = this.handleMenusResource(this.top_menus);
this.user_menus = this.handleMenusResource(this.user_menus);
const secondtag = this.$util.createUUID();
this.$store.commit("viewaction/createdView", {
viewtag: this.viewtag,
......@@ -229,6 +234,61 @@ export class AppIndexViewBase extends Vue {
}
}
/**
* 通过统一资源标识计算菜单
*
* @param {*} data
* @memberof AppIndexViewBase
*/
public handleMenusResource(inputMenus: Array<any>) {
if (Environment.enablePermissionValid) {
this.computedEffectiveMenus(inputMenus);
this.computeParentMenus(inputMenus);
}
return inputMenus;
}
/**
* 计算父项菜单项是否隐藏
*
* @param {*} inputMenus
* @memberof AppIndexViewBase
*/
public computeParentMenus(inputMenus: Array<any>) {
if (inputMenus && inputMenus.length > 0) {
inputMenus.forEach((item: any) => {
if (item.hidden && item.items && item.items.length > 0) {
item.items.map((singleItem: any) => {
if (!singleItem.hidden) {
item.hidden = false;
}
if (singleItem.items && singleItem.items.length > 0) {
this.computeParentMenus(singleItem.items);
}
})
}
})
}
}
/**
* 计算有效菜单项
*
* @param {*} inputMenus
* @memberof AppIndexViewBase
*/
public computedEffectiveMenus(inputMenus: Array<any>) {
inputMenus.forEach((_item: any) => {
if (!this.$store.getters['authresource/getAuthMenu'](_item)) {
_item.hidden = true;
if (_item.items && _item.items.length > 0) {
this.computedEffectiveMenus(_item.items);
}
}
})
}
/**
* 绘制内容
*/
......
......@@ -66,6 +66,7 @@ export const PageComponents = {
Vue.component('eamasset-type-pickup-view', () => import('@pages/asset/eamasset-type-pickup-view/eamasset-type-pickup-view.vue'));
Vue.component('eamproductpickup-view', () => import('@pages/asset/eamproductpickup-view/eamproductpickup-view.vue'));
Vue.component('eamapply-type-edit-view', () => import('@pages/apply/eamapply-type-edit-view/eamapply-type-edit-view.vue'));
Vue.component('eamlocation-state-grid-view', () => import('@pages/location/eamlocation-state-grid-view/eamlocation-state-grid-view.vue'));
Vue.component('eamasset-child-grid-view', () => import('@pages/asset/eamasset-child-grid-view/eamasset-child-grid-view.vue'));
Vue.component('eamspare-parts-group-dashboard-view', () => import('@pages/asset/eamspare-parts-group-dashboard-view/eamspare-parts-group-dashboard-view.vue'));
Vue.component('eamlocation-edit-view', () => import('@pages/location/eamlocation-edit-view/eamlocation-edit-view.vue'));
......@@ -105,7 +106,6 @@ export const PageComponents = {
Vue.component('eamasset-state-model-pickup-view', () => import('@pages/asset/eamasset-state-model-pickup-view/eamasset-state-model-pickup-view.vue'));
Vue.component('eamasset-pickup-grid-view', () => import('@pages/asset/eamasset-pickup-grid-view/eamasset-pickup-grid-view.vue'));
Vue.component('eamlocation-state-model-line-edit-view', () => import('@pages/location/eamlocation-state-model-line-edit-view/eamlocation-state-model-line-edit-view.vue'));
Vue.component('eamlocation-state-list-exp-view', () => import('@pages/location/eamlocation-state-list-exp-view/eamlocation-state-list-exp-view.vue'));
Vue.component('woorigin-pickup-view', () => import('@pages/work-order/woorigin-pickup-view/woorigin-pickup-view.vue'));
Vue.component('eamlocation-type-edit-view', () => import('@pages/location/eamlocation-type-edit-view/eamlocation-type-edit-view.vue'));
Vue.component('eamspare-parts-group-info-main-view', () => import('@pages/asset/eamspare-parts-group-info-main-view/eamspare-parts-group-info-main-view.vue'));
......
......@@ -2096,6 +2096,20 @@ const router = new Router({
},
component: () => import('@pages/apply/eamapply-type-edit-view/eamapply-type-edit-view.vue'),
},
{
path: 'eamlocationstates/:eamlocationstate?/gridview/:gridview?',
meta: {
caption: 'entities.eamlocationstate.views.gridview.title',
info:'',
parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' },
{ pathName: 'eamlocationstates', parameterName: 'eamlocationstate' },
{ pathName: 'gridview', parameterName: 'gridview' },
],
requireAuth: true,
},
component: () => import('@pages/location/eamlocation-state-grid-view/eamlocation-state-grid-view.vue'),
},
{
path: 'eamlocations/:eamlocation?/eamassets/:eamasset?/childgridview/:childgridview?',
meta: {
......@@ -3471,20 +3485,6 @@ const router = new Router({
},
component: () => import('@pages/location/eamlocation-state-model-line-edit-view/eamlocation-state-model-line-edit-view.vue'),
},
{
path: 'eamlocationstates/:eamlocationstate?/listexpview/:listexpview?',
meta: {
caption: 'entities.eamlocationstate.views.listexpview.title',
info:'',
parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' },
{ pathName: 'eamlocationstates', parameterName: 'eamlocationstate' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
],
requireAuth: true,
},
component: () => import('@pages/location/eamlocation-state-list-exp-view/eamlocation-state-list-exp-view.vue'),
},
{
path: 'woorigins/:woorigin?/pickupview/:pickupview?',
meta: {
......
import { Subject } from 'rxjs';
import { GridViewBase } from '@/studio-core';
import EAMLocationStateService from '@/service/eamlocation-state/eamlocation-state-service';
import EAMLocationStateAuthService from '@/authservice/eamlocation-state/eamlocation-state-auth-service';
import GridViewEngine from '@engine/view/grid-view-engine';
import EAMLocationStateUIService from '@/uiservice/eamlocation-state/eamlocation-state-ui-service';
import CodeListService from "@service/app/codelist-service";
/**
* 功能位置状态信息视图基类
*
* @export
* @class EAMLocationStateGridViewBase
* @extends {GridViewBase}
*/
export class EAMLocationStateGridViewBase extends GridViewBase {
/**
* 视图对应应用实体名称
*
* @protected
* @type {string}
* @memberof EAMLocationStateGridViewBase
*/
protected appDeName: string = 'eamlocationstate';
/**
* 应用实体主键
*
* @protected
* @type {string}
* @memberof EAMLocationStateGridViewBase
*/
protected appDeKey: string = 'eamlocationstateid';
/**
* 应用实体主信息
*
* @protected
* @type {string}
* @memberof EAMLocationStateGridViewBase
*/
protected appDeMajor: string = 'eamlocationstatename';
/**
* 实体服务对象
*
* @type {EAMLocationStateService}
* @memberof EAMLocationStateGridViewBase
*/
protected appEntityService: EAMLocationStateService = new EAMLocationStateService;
/**
* 实体权限服务对象
*
* @type EAMLocationStateUIService
* @memberof EAMLocationStateGridViewBase
*/
public appUIService: EAMLocationStateUIService = new EAMLocationStateUIService(this.$store);
/**
* 计数器服务对象集合
*
* @protected
* @type {Array<*>}
* @memberof EAMLocationStateGridViewBase
*/
protected counterServiceArray: Array<any> = [];
/**
* 视图模型数据
*
* @protected
* @type {*}
* @memberof EAMLocationStateGridViewBase
*/
protected model: any = {
srfCaption: 'entities.eamlocationstate.views.gridview.caption',
srfTitle: 'entities.eamlocationstate.views.gridview.title',
srfSubTitle: 'entities.eamlocationstate.views.gridview.subtitle',
dataInfo: ''
}
/**
* 容器模型
*
* @protected
* @type {*}
* @memberof EAMLocationStateGridViewBase
*/
protected containerModel: any = {
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_grid: { name: 'grid', type: 'GRID' },
view_searchform: { name: 'searchform', type: 'SEARCHFORM' },
};
/**
* 工具栏模型
*
* @type {*}
* @memberof EAMLocationStateGridView
*/
public toolBarModels: any = {
tbitem5: { name: 'tbitem5', caption: '新建', 'isShowCaption': true, 'isShowIcon': true, tooltip: '新建', iconcls: 'fa fa-file-text-o', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'New', target: '', class: '' } },
seperator1: { name: 'seperator1', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem2: { name: 'tbitem2', caption: '编辑', 'isShowCaption': true, 'isShowIcon': true, tooltip: '编辑', iconcls: 'fa fa-edit', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Edit', target: 'SINGLEKEY', class: '' } },
seperator2: { name: 'seperator2', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem1: { name: 'tbitem1', caption: '拷贝', 'isShowCaption': true, 'isShowIcon': true, tooltip: '拷贝', iconcls: 'fa fa-copy', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Copy', target: 'SINGLEKEY', class: '' } },
tbitem15: { name: 'tbitem15', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem8: { name: 'tbitem8', caption: '删除', 'isShowCaption': true, 'isShowIcon': true, tooltip: '删除', iconcls: 'fa fa-remove', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Remove', target: 'MULTIKEY', class: '' } },
tbitem16: { name: 'tbitem16', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem3: { name: 'tbitem3', caption: '导出', 'isShowCaption': true, 'isShowIcon': true, tooltip: '导出', iconcls: 'fa fa-file-excel-o', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'ExportExcel', target: '' }, MaxRowCount: 1000, class: '' },
tbitem17: { name: 'tbitem17', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem10: { name: 'tbitem10', caption: '过滤', 'isShowCaption': true, 'isShowIcon': true, tooltip: '过滤', iconcls: 'fa fa-filter', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'ToggleFilter', target: '', class: '' } },
};
/**
* 视图唯一标识
*
* @protected
* @type {string}
* @memberof ViewBase
*/
protected viewtag: string = 'f7c04762f2a3e3026c909e6191a0998f';
/**
* 视图引擎
*
* @public
* @type {Engine}
* @memberof EAMLocationStateGridViewBase
*/
public engine: GridViewEngine = new GridViewEngine();
/**
* 引擎初始化
*
* @public
* @memberof EAMLocationStateGridViewBase
*/
public engineInit(): void {
this.engine.init({
view: this,
opendata: (args: any[],fullargs?:any[],params?: any, $event?: any, xData?: any) => {
this.opendata(args,fullargs, params, $event, xData);
},
newdata: (args: any[],fullargs?:any[],params?: any, $event?: any, xData?: any) => {
this.newdata(args,fullargs, params, $event, xData);
},
grid: this.$refs.grid,
searchform: this.$refs.searchform,
keyPSDEField: 'eamlocationstate',
majorPSDEField: 'eamlocationstatename',
isLoadDefault: true,
});
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public toolbar_click($event: any, $event2?: any): void {
if (Object.is($event.tag, 'tbitem5')) {
this.toolbar_tbitem5_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem2')) {
this.toolbar_tbitem2_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem1')) {
this.toolbar_tbitem1_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem8')) {
this.toolbar_tbitem8_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem3')) {
this.toolbar_tbitem3_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem7')) {
this.toolbar_tbitem7_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem10')) {
this.toolbar_tbitem10_click(null, '', $event2);
}
}
/**
* grid 部件 selectionchange 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public grid_selectionchange($event: any, $event2?: any): void {
this.engine.onCtrlEvent('grid', 'selectionchange', $event);
}
/**
* grid 部件 beforeload 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public grid_beforeload($event: any, $event2?: any): void {
this.engine.onCtrlEvent('grid', 'beforeload', $event);
}
/**
* grid 部件 rowdblclick 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public grid_rowdblclick($event: any, $event2?: any): void {
this.engine.onCtrlEvent('grid', 'rowdblclick', $event);
}
/**
* grid 部件 remove 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public grid_remove($event: any, $event2?: any): void {
this.engine.onCtrlEvent('grid', 'remove', $event);
}
/**
* grid 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public grid_load($event: any, $event2?: any): void {
this.engine.onCtrlEvent('grid', 'load', $event);
}
/**
* searchform 部件 save 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public searchform_save($event: any, $event2?: any): void {
this.engine.onCtrlEvent('searchform', 'save', $event);
}
/**
* searchform 部件 search 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public searchform_search($event: any, $event2?: any): void {
this.engine.onCtrlEvent('searchform', 'search', $event);
}
/**
* searchform 部件 load 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof EAMLocationStateGridViewBase
*/
public searchform_load($event: any, $event2?: any): void {
this.engine.onCtrlEvent('searchform', 'load', $event);
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem5_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.grid;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.New(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem2_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.grid;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.Edit(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem1_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.grid;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.Copy(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem8_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.grid;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.Remove(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem3_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.grid;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.ExportExcel(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem7_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.grid;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.Print(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_tbitem10_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
xData = this.$refs.grid;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.ToggleFilter(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof EAMLocationStateGridView
*/
public newdata(args: any[],fullargs?:any[], params?: any, $event?: any, xData?: any) {
let localContext:any = null;
let localViewParam:any =null;
const data: any = {};
if(args[0].srfsourcekey){
data.srfsourcekey = args[0].srfsourcekey;
}
let tempContext = JSON.parse(JSON.stringify(this.context));
delete tempContext.eamlocationstate;
if(args.length >0){
Object.assign(tempContext,args[0]);
}
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'eamlocationstates', parameterName: 'eamlocationstate' },
{ pathName: 'editview', parameterName: 'editview' },
];
const _this: any = this;
const openIndexViewTab = (data: any) => {
const _data: any = { w: (new Date().getTime()) };
Object.assign(_data, data);
const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, _data);
this.$router.push(routePath);
}
openIndexViewTab(data);
}
/**
* 打开编辑数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof EAMLocationStateGridView
*/
public opendata(args: any[],fullargs?:any[],params?: any, $event?: any, xData?: any) {
const localContext: any = null;
const localViewParam: any =null;
const data: any = {};
let tempContext = JSON.parse(JSON.stringify(this.context));
if(args.length >0){
Object.assign(tempContext,args[0]);
}
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'eamlocationstates', parameterName: 'eamlocationstate' },
{ pathName: 'editview', parameterName: 'editview' },
];
const _this: any = this;
const openIndexViewTab = (data: any) => {
const routePath = this.$viewTool.buildUpRoutePath(this.$route, tempContext, deResParameters, parameters, args, data);
this.$router.push(routePath);
}
openIndexViewTab(data);
}
/**
* 新建
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof EAMLocationStateGridViewBase
*/
public New(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
const _this: any = this;
if (_this.newdata && _this.newdata instanceof Function) {
const data: any = {};
_this.newdata([{ ...data }],[{ ...data }], params, $event, xData);
} else {
_this.$Notice.error({ title: '错误', desc: 'newdata 视图处理逻辑不存在,请添加!' });
}
}
/**
* 编辑
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof EAMLocationStateGridViewBase
*/
public Edit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
if (args.length === 0) {
return;
}
const _this: any = this;
if (_this.opendata && _this.opendata instanceof Function) {
const data: any = { };
if (args.length > 0) {
Object.assign(data, { eamlocationstate: args[0].eamlocationstate })
}
_this.opendata([{ ...data }], params, $event, xData);
} else {
_this.$Notice.error({ title: '错误', desc: 'opendata 视图处理逻辑不存在,请添加!' });
}
}
/**
* 拷贝
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof EAMLocationStateGridViewBase
*/
public Copy(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
if (args.length === 0) {
return;
}
const _this: any = this;
if (_this.opendata && _this.opendata instanceof Function) {
const data: any = { };
if (args.length > 0) {
Object.assign(data, { eamlocationstate: args[0].eamlocationstate });
}
if(!params) params = {};
Object.assign(params,{copymode:true});
_this.opendata([{ ...data }], params, $event, xData);
} else {
Object.assign(this.viewparams,{copymode:true});
}
}
/**
* 删除
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof EAMLocationStateGridViewBase
*/
public Remove(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
const _this: any = this;
if (!xData || !(xData.remove instanceof Function)) {
return ;
}
xData.remove(args);
}
/**
* 导出
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof EAMLocationStateGridViewBase
*/
public ExportExcel(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
const _this: any = this;
if (!xData || !(xData.exportExcel instanceof Function) || !$event) {
return ;
}
xData.exportExcel($event.exportparms);
}
/**
* 打印
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof EAMLocationStateGridViewBase
*/
public Print(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
let _this:any = this;
if (!xData || !(xData.print instanceof Function) || !$event) {
return ;
}
xData.print();
}
/**
* 过滤
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof EAMLocationStateGridViewBase
*/
public ToggleFilter(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
const _this: any = this;
if (_this.hasOwnProperty('isExpandSearchForm')) {
_this.isExpandSearchForm = !_this.isExpandSearchForm;
}
}
}
\ No newline at end of file
<studio-view-style2 viewName="eamlocationstategridview" viewTitle="功能位置状态信息" class='degridview eamlocation-state-grid-view'>
<template slot='title'>
<span class='caption-info'>{{viewCaption}}</span>
</template>
<i-input slot="quickSearch" v-show="!isExpandSearchForm" v-model="query" placeholder="功能位置状态名称" search @on-search="onSearch($event)"/>
<template slot="toolbar">
<view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click.apply(_self, arguments)"/> </template>
<template slot="searchForm">
<view_searchform
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:showBusyIndicator="true"
v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft"
loadAction="FilterGet"
name="searchform"
ref='searchform'
@save="searchform_save($event)"
@search="searchform_search($event)"
@load="searchform_load($event)"
@closeview="closeView($event)">
</view_searchform>
</template>
<view_grid
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:isSingleSelect="isGridSingleSelect"
:showBusyIndicator="true"
:isOpenEdit="false"
:gridRowActiveMode="gridRowActiveMode"
@save="onSave.apply(_self, arguments)"
updateAction=""
removeAction="Remove"
loaddraftAction=""
loadAction=""
createAction=""
fetchAction="FetchDefault"
:newdata="newdata.bind(_self)"
:opendata="opendata.bind(_self)"
name="grid"
ref='grid'
@selectionchange="grid_selectionchange($event)"
@beforeload="grid_beforeload($event)"
@rowdblclick="grid_rowdblclick($event)"
@remove="grid_remove($event)"
@load="grid_load($event)"
@closeview="closeView($event)">
</view_grid>
</studio-view-style2>
\ No newline at end of file
<template src="./eamlocation-state-grid-view.html"/>
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import { VueLifeCycleProcessing } from '@/studio-core';
import { EAMLocationStateGridViewBase } from './eamlocation-state-grid-view-base';
import view_grid from '@widgets/eamlocation-state/main-grid/main-grid.vue';
import view_searchform from '@widgets/eamlocation-state/default-searchform/default-searchform.vue';
/**
* 功能位置状态信息视图
*
* @export
* @class EAMLocationStateGridView
* @extends {EAMLocationStateGridViewBase}
*/
@Component({
components: {
view_grid,
view_searchform,
}
})
@VueLifeCycleProcessing()
export default class EAMLocationStateGridView extends EAMLocationStateGridViewBase { }
</script>
......@@ -744,16 +744,6 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: 'a3d6a9a21765dd59afa2d3d20a99096c',
viewmodule: 'Location',
viewname: 'EAMLocationStateListExpView',
viewaction: '',
viewdatachange: false,
refviews: [
'0b6fa9e6ebc1f6d1afaf3c19585840b0',
],
},
{
viewtag: 'a82c591e524f7289432a30a5ccfa8908',
viewmodule: 'Location',
......@@ -1031,7 +1021,7 @@ export const viewstate: any = {
refviews: [
'b97ed65fd88f536ebb13419938b19e2d',
'9930ab7fa32bcb829b706489a25ca808',
'a3d6a9a21765dd59afa2d3d20a99096c',
'f7c04762f2a3e3026c909e6191a0998f',
'075e8b706da4cd2328cf2239fd6f4d06',
'5c77b6ea410878aa7297d299eb755563',
'ca66d81a69c0f084e3f7cf1e99ae9d28',
......@@ -1225,6 +1215,16 @@ export const viewstate: any = {
refviews: [
],
},
{
viewtag: 'f7c04762f2a3e3026c909e6191a0998f',
viewmodule: 'Location',
viewname: 'EAMLocationStateGridView',
viewaction: '',
viewdatachange: false,
refviews: [
'0b6fa9e6ebc1f6d1afaf3c19585840b0',
],
},
{
viewtag: 'fc2bbe178f6e4ee12ebeb45875b7f87c',
viewmodule: 'Asset',
......
......@@ -139,6 +139,9 @@ export class AppHeaderMenus extends Vue {
* @memberof AppHeaderMenus
*/
protected renderMenuItem(item: any): any {
if(item.hidden) {
return;
}
return <menuItem title={item.tooltip} name={item.name}>
<menu-icon item={item} />
{item.text}
......@@ -154,6 +157,9 @@ export class AppHeaderMenus extends Vue {
* @memberof AppHeaderMenus
*/
protected renderSubMenu(item: any): any {
if(item.hidden) {
return;
}
return <submenu name={item.name}>
<template slot="title">
<menu-icon item={item} />
......
......@@ -120,7 +120,7 @@ export class AppContentBottomExp extends Vue {
return <div class="app-content-bottom-exp">
<tabs size="small" animated={false} value={this.activeIndex.toString()} on-on-click={(name: string) => this.activeTab(name)}>
{this.menus.map((item: any, i: number) => {
if (!Object.is(item.appfuncyype, 'APPVIEW')) {
if (!Object.is(item.appfuncyype, 'APPVIEW') || item.hidden) {
return;
}
return <tabPane label={(h: any) => this.renderTitle(h, item)} name={i.toString()}>
......
......@@ -108,6 +108,9 @@ export class AppContentLeftExp extends Vue {
return <div class="app-content-left-exp">
<div class="exp-actions">
{this.menus.map((item: any, index: number) => {
if(item.hidden) {
return;
}
return <div title={item.tooltip} on-click={() => this.itemClick(item, index)} class={{ 'action-item': true, 'active': this.activeIndex === index }}>
<div class="active-item-indicator" />
<menu-icon item={item} />
......@@ -116,7 +119,7 @@ export class AppContentLeftExp extends Vue {
</div>
<div class="exp-content">
{this.menus.map((item: any, index: number) => {
if (!Object.is(item.appfuncyype, 'APPVIEW') || !item.isActivated) {
if (!Object.is(item.appfuncyype, 'APPVIEW') || !item.isActivated || item.hidden) {
return;
}
return <div v-show={this.activeIndex === index} key={index} class="exp-item">
......
......@@ -140,6 +140,9 @@ export class UserInfo extends Vue {
* @memberof UserInfo
*/
protected renderMenuItem(item: any): any {
if(item.hidden) {
return;
}
return <dropdownItem name={item.name} title={item.tooltip}>
<menu-icon item={item} />
{item.text}
......@@ -155,6 +158,9 @@ export class UserInfo extends Vue {
* @memberof UserInfo
*/
protected renderMenuGroup(item: any): any {
if(item.hidden) {
return;
}
return <dropdown class="user-menu-child" placement="left-start">
<dropdownItem name={item.name} title={item.tooltip}>
<icon type="ios-arrow-back"></icon>
......
......@@ -110,6 +110,9 @@ export class EditFormControlBase extends FormControlBase {
if (Object.is('removeandexit', action)) {
this.removeAndExit(data);
}
if (Object.is('panelaction', action)) {
this.panelAction(data.action,data.emitAction,data);
}
});
}
this.dataChang
......@@ -610,6 +613,50 @@ export class EditFormControlBase extends FormControlBase {
*/
public resetFormData({ name, newVal, oldVal }: { name: string, newVal: any, oldVal: any }): void { }
/**
* 面板行为
*
* @param {string} [action] 调用的实体行为
* @param {string} [emitAction] 抛出行为
* @param {*} [data={}] 传入数据
* @param {boolean} [showloading] 是否显示加载状态
*
* @memberof EditFormControlBase
*/
public panelAction(action:string,emitAction:string,data:any ={},showloading?:boolean):void{
if (!action || (action && Object.is(action, ''))) {
return;
}
const arg: any = { ...data };
const formdata = this.getValues();
Object.assign(arg, formdata);
Object.assign(arg,this.viewparams);
const post: Promise<any> = this.service.frontLogic(action,JSON.parse(JSON.stringify(this.context)),arg, showloading);
post.then((response: any) => {
if (!response.status || response.status !== 200) {
if (response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
}
return;
}
const data = response.data;
this.onFormLoad(data,emitAction);
this.$emit(emitAction, data);
this.$nextTick(() => {
this.formState.next({ type: emitAction, data: data });
});
}).catch((response: any) => {
if (response && response.status && response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.data.message });
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: (this.$t('app.commonWords.sysException') as string) });
return;
}
});
}
/**
* 保存并退出
*
......
......@@ -1292,4 +1292,44 @@ div::-webkit-scrollbar-thumb {
color: var(--form-editor-font-color);
}
}
// 工作流动态导航表格视图
.dewfdynaexpgridview{
.el-tree {
padding-right: 10px;
}
.el-tree-node__content {
height: 40px;
border-left: solid transparent;
}
.el-tree-node__label {
font-size: 15px;
font-family: "Microsoft YaHei";
}
.el-tree-node:nth-child(1) {
margin-top: 0px;
}
.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
background-color: #f0f7ff;
border-color: #1890ff6e;
}
.ivu-split-horizontal {
.ivu-split-pane >div {
height: 100%;
overflow-y: auto;
.content-container {
height: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
margin: 0;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
}
}
}
@import './user.less';
\ No newline at end of file
......@@ -166,7 +166,7 @@ export default class EAMApplyUIServiceBase extends UIService {
xData.refresh(args);
}
if (this.EAMApply_OpenInfo_MainView && this.EAMApply_OpenInfo_MainView instanceof Function) {
this.EAMApply_OpenInfo_MainView(result.datas[0],context,params, $event, xData,actionContext);
this.EAMApply_OpenInfo_MainView(result.datas,context,params, $event, xData,actionContext);
}
return result.datas;
});
......
......@@ -349,7 +349,7 @@ export default class EAMAssetUIServiceBase extends UIService {
}
const _this: any = actionContext;
if (this.EAMAsset_OpenInfo_MainView && this.EAMAsset_OpenInfo_MainView instanceof Function) {
this.EAMAsset_OpenInfo_MainView(result.datas[0],context,params, $event, xData,actionContext);
this.EAMAsset_OpenInfo_MainView(result.datas,context,params, $event, xData,actionContext);
}
return result.datas;
});
......
......@@ -281,7 +281,7 @@ export default class EAMLocationUIServiceBase extends UIService {
xData.refresh(args);
}
if (this.EAMLocation_OpenInfo_MainView && this.EAMLocation_OpenInfo_MainView instanceof Function) {
this.EAMLocation_OpenInfo_MainView(result.datas[0],context,params, $event, xData,actionContext);
this.EAMLocation_OpenInfo_MainView(result.datas,context,params, $event, xData,actionContext);
}
return result.datas;
});
......
......@@ -236,7 +236,7 @@ export default class EAMPlanUIServiceBase extends UIService {
xData.refresh(args);
}
if (this.EAMPlan_OpenInfo_MainView && this.EAMPlan_OpenInfo_MainView instanceof Function) {
this.EAMPlan_OpenInfo_MainView(result.datas[0],context,params, $event, xData,actionContext);
this.EAMPlan_OpenInfo_MainView(result.datas,context,params, $event, xData,actionContext);
}
return result.datas;
});
......
......@@ -240,7 +240,7 @@ export default class EAMWorkOrderUIServiceBase extends UIService {
xData.refresh(args);
}
if (this.EAMWorkOrder_OpenInfo_MainView && this.EAMWorkOrder_OpenInfo_MainView instanceof Function) {
this.EAMWorkOrder_OpenInfo_MainView(result.datas[0],context,params, $event, xData,actionContext);
this.EAMWorkOrder_OpenInfo_MainView(result.datas,context,params, $event, xData,actionContext);
}
return result.datas;
});
......
......@@ -5,11 +5,20 @@ import { Vue } from 'vue-property-decorator';
*/
export class AppIndexViewBase extends Vue {
/**
* 获取应用上下文
*
* @memberof AppIndexViewBase
*/
get context(): any {
return this.$appService.contextStore.appContext || {};
}
/**
* 菜单点击
*
* @param {*} item 菜单数据
* @memberof AppIndexView
* @memberof AppIndexViewBase
*/
public click(item: any) {
if (item) {
......@@ -324,7 +333,7 @@ export class AppIndexViewBase extends Vue {
const deResParameters: any[] = [];
const parameters: any[] = [
{ pathName: 'eamlocationstates', parameterName: 'eamlocationstate' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
{ pathName: 'gridview', parameterName: 'gridview' },
];
const path: string = this.$viewTool.buildUpRoutePath(this.$route, {}, deResParameters, parameters, [], viewparam);
if(Object.is(this.$route.fullPath,path)){
......@@ -454,7 +463,7 @@ export class AppIndexViewBase extends Vue {
* 绘制内容
*
* @private
* @memberof AppIndexView
* @memberof AppIndexViewBase
*/
public render(): any {
return <span style="display: none;"/>
......
......@@ -214,7 +214,7 @@ export default class AppIndexViewModel {
textcls: '',
appfunctag: '_10',
appfuncyype: 'APPVIEW',
viewname: 'eamlocation-state-list-exp-view',
viewname: 'eamlocation-state-grid-view',
resourcetag: '',
}
,
......@@ -685,12 +685,12 @@ export default class AppIndexViewModel {
appfunctag: '_10',
appfuncyype: 'APPVIEW',
openmode: '',
codename: 'eamlocationstatelistexpview',
codename: 'eamlocationstategridview',
deResParameters: [],
routepath: '/appindexview/:appindexview?/eamlocationstates/:eamlocationstate?/listexpview/:listexpview?',
routepath: '/appindexview/:appindexview?/eamlocationstates/:eamlocationstate?/gridview/:gridview?',
parameters: [
{ pathName: 'eamlocationstates', parameterName: 'eamlocationstate' },
{ pathName: 'listexpview', parameterName: 'listexpview' },
{ pathName: 'gridview', parameterName: 'gridview' },
],
},
{
......
......@@ -358,7 +358,7 @@
<!--输出实体[EAMLOCATIONSTATE]数据结构 -->
<changeSet author="a_LAB01_e85d8801c" id="tab-eamlocationstate-46-15">
<changeSet author="a_LAB01_e85d8801c" id="tab-eamlocationstate-47-15">
<createTable tableName="EAMLOCATIONSTATE">
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册