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

tony001 发布系统代码 [后台服务,演示应用]

上级 4f64cd99
......@@ -115,9 +115,9 @@ import AppStandardContainer from './components/layout-element/container/app-stan
import AppTabPanel from './components/layout-element/container/app-tab-panel/app-tab-panel.vue';
import AppTabPage from './components/layout-element/container/app-tab-page/app-tab-page.vue';
import AppNavPos from './components/layout-element/container/app-nav-pos/app-nav-pos.vue';
import AppPreSetText from './components/layout-element/text/app-preset-text/app-preset-text.vue';
import AppPreSetCaption from './components/layout-element/text/app-preset-caption/app-preset-caption.vue';
import AppPreSetTitle from './components/layout-element/text/app-preset-title/app-preset-title.vue';
import AppPresetText from './components/layout-element/text/app-preset-text/app-preset-text.vue';
import AppPresetCaption from './components/layout-element/text/app-preset-caption/app-preset-caption.vue';
import AppPresetTitle from './components/layout-element/text/app-preset-title/app-preset-title.vue';
import AppLoginInput from './components/layout-element/login/app-login-input/app-login-input.vue';
import AppLoginButton from './components/layout-element/login/app-login-button/app-login-button.vue';
import AppLoginOrg from './components/layout-element/login/app-login-org/app-login-org.vue';
......@@ -254,9 +254,9 @@ export const AppComponents = {
v.component('app-tab-panel', AppTabPanel);
v.component('app-tab-page', AppTabPage);
v.component('app-nav-pos', AppNavPos);
v.component('app-preset-text',AppPreSetText);
v.component('app-preset-caption',AppPreSetCaption);
v.component('app-preset-title',AppPreSetTitle);
v.component('app-preset-text',AppPresetText);
v.component('app-preset-caption',AppPresetCaption);
v.component('app-preset-title',AppPresetTitle);
v.component('app-login-input',AppLoginInput);
v.component('app-login-button',AppLoginButton);
v.component('app-login-org',AppLoginOrg);
......
......@@ -22,26 +22,26 @@
</div>
</template>
<script lang="ts">
import { Component, Prop, Vue, Watch } from "vue-property-decorator";
import { Component, Prop, Vue } from "vue-property-decorator";
@Component({})
export default class AppNavPos extends Vue {
/**
* 动态导航模式(DYNAMICCOMP:动态组件 ROUTEVIEW:路由出口)
* 名称
*
* @public
* @type {'DYNAMICCOMP' | 'ROUTEVIEW'}
* @type {string}
* @memberof AppNavPos
*/
@Prop({ default: "ROUTEVIEW" }) public dynaNavMode?: "DYNAMICCOMP" | "ROUTEVIEW";
@Prop() public name!: string;
/**
* 是否启用动态缓存
* 布局模型详情
*
* @type {boolean}
* @type {*}
* @memberof AppNavPos
*/
@Prop({ default: false }) public enableCache?: boolean;
@Prop() public layoutModelDetails: any;
/**
* 导航数据
......@@ -49,7 +49,35 @@ export default class AppNavPos extends Vue {
* @type {*}
* @memberof AppNavPos
*/
@Prop() public navData?: any;
@Prop() public navData: any;
/**
* 获取动态导航模式(DYNAMICCOMP:动态组件 ROUTEVIEW:路由出口)
*
* @type {"DYNAMICCOMP" | "ROUTEVIEW"}
* @memberof AppNavPos
*/
get dynaNavMode(): "DYNAMICCOMP" | "ROUTEVIEW" {
const currentModel = this.layoutModelDetails[this.name];
if (currentModel && currentModel.dynaNavMode) {
return currentModel.dynaNavMode;
}
return 'DYNAMICCOMP';
}
/**
* 是否启用动态缓存
*
* @type {boolean}
* @memberof AppNavPos
*/
get enableCache(): boolean {
const currentModel = this.layoutModelDetails[this.name];
if (currentModel) {
return currentModel.enableCache;
}
return false;
}
/**
* 路由列表
......
......@@ -8,7 +8,7 @@
import { Vue, Component } from "vue-property-decorator";
@Component({})
export default class AppPreSetCaption extends Vue {}
export default class AppPresetCaption extends Vue {}
</script>
<style lang='less'>
......
......@@ -48,13 +48,13 @@
import { Vue, Component, Prop } from 'vue-property-decorator';
@Component({})
export default class AppPreSetText extends Vue {
export default class AppPresetText extends Vue {
/**
* 输入值
*
* @type {*}
* @memberof AppPreSetText
* @memberof AppPresetText
*/
@Prop() public value!: any;
......@@ -62,7 +62,7 @@ export default class AppPreSetText extends Vue {
* 内容类型
*
* @type {string}
* @memberof AppPreSetText
* @memberof AppPresetText
*/
@Prop({ default: 'RAW' }) public contentType!: 'RAW' | 'HTML' | 'IMAGE' | 'MARKDOWN';
......@@ -70,7 +70,7 @@ export default class AppPreSetText extends Vue {
* 绘制模式
*
* @type {string}
* @memberof AppPreSetText
* @memberof AppPresetText
*/
@Prop({ default: 'TEXT' }) public renderMode!: 'TEXT' | 'HEADING1' | 'HEADING2' | 'HEADING3' | 'HEADING4' | 'HEADING5' | 'HEADING6' | 'PARAGRAPH';
......@@ -78,7 +78,7 @@ export default class AppPreSetText extends Vue {
* 内容样式
*
* @type {string}
* @memberof AppPreSetText
* @memberof AppPresetText
*/
@Prop() public contentStyle?: string;
......@@ -86,35 +86,35 @@ export default class AppPreSetText extends Vue {
* 预置类型
*
* @type {string}
* @memberof AppPreSetText
* @memberof AppPresetText
*/
@Prop({ default: 'STATIC_TEXT' }) public predefinedType!: 'FIELD_TEXT_DYNAMIC' | 'STATIC_LABEL' | 'STATIC_TEXT';
/**
* 图标
*
* @memberof AppPreSetText
* @memberof AppPresetText
*/
@Prop() public imageClass?: string;
/**
* 动态图片路径
*
* @memberof AppPreSetText
* @memberof AppPresetText
*/
protected dynaImgUrl: string = '';
/**
* 样式
*
* @memberof AppPreSetText
* @memberof AppPresetText
*/
protected cssStyle: string = '';
/**
* 图片路径
*
* @memberof AppPreSetText
* @memberof AppPresetText
*/
get imgUrl(): string {
return this.dynaImgUrl;
......@@ -123,7 +123,7 @@ export default class AppPreSetText extends Vue {
/**
* 内容
*
* @memberof AppPreSetText
* @memberof AppPresetText
*/
get content(): string {
let content = this.value;
......@@ -145,7 +145,7 @@ export default class AppPreSetText extends Vue {
/**
* Vue生命周期 --- Created
*
* @memberof AppPreSetText
* @memberof AppPresetText
*/
created() {
this.handleText();
......@@ -155,7 +155,7 @@ export default class AppPreSetText extends Vue {
/**
* 处理文本
*
* @memberof AppPreSetText
* @memberof AppPresetText
*/
protected handleText() {
if (this.predefinedType === 'STATIC_LABEL') {
......@@ -166,7 +166,7 @@ export default class AppPreSetText extends Vue {
/**
* 处理动态图片
*
* @memberof AppPreSetText
* @memberof AppPresetText
*/
protected handleDynaImg() {
// TODO 动态图片
......
......@@ -7,19 +7,19 @@ import { Environment } from "@/environments/environment";
import { Vue, Component } from 'vue-property-decorator';
@Component({})
export default class AppPreSetTitle extends Vue {
export default class AppPresetTitle extends Vue {
/**
* 当前值
*
* @memberof AppPreSetTitle
* @memberof AppPresetTitle
*/
public curValue: string = '';
/**
* 初始化
*
* @memberof AppPreSetTitle
* @memberof AppPresetTitle
*/
public created() {
this.curValue = Environment.AppTitle;
......
......@@ -123,6 +123,7 @@ export class ExpViewEngine extends ViewEngine {
}
if (this.view && args && args.srfnavdata && args.srfnavdata.context) {
this.view.navItem = args;
this.setNavPosData(args);
if (this.view.backSplit !== 0) {
this.view.split = this.view.backSplit;
}
......@@ -138,7 +139,7 @@ export class ExpViewEngine extends ViewEngine {
this.isRealSelected = false;
}
}
// this.view.$forceUpdate();
this.view.$forceUpdate();
}
this.view.$emit("viewdataschange", args && args.data ? args.data : []);
}
......@@ -147,6 +148,24 @@ export class ExpViewEngine extends ViewEngine {
}
}
/**
* 设置导航数据
*
* @protected
* @param {*} data
* @return {*}
* @memberof ExpViewEngine
*/
protected setNavPosData(data: any) {
if (!this.view.layoutModelDetails) {
return;
}
const navPos: any = Object.values(this.view.layoutModelDetails).find((item: any) => {
return item.predefinedType === "NAV_POS";
});
navPos.navData = data;
}
/**
* 处理导航栏数据部件事件
*
......
export { PanelDetailModel } from './panel-detail';
export { PanelRawitemModel } from './panel-row-item';
export { PanelRawitemModel } from './panel-raw-item';
export { PanelTabPanelModel } from './panel-tab-panel';
export { PanelTabPageModel } from './panel-tab-page';
export { PanelFieldModel } from './panel-field';
......
......@@ -176,6 +176,14 @@ export class PanelDetailModel {
*/
public sysCss: string = ''
/**
* 预置类型
*
* @type {string}
* @memberof PanelDetailModel
*/
public predefinedType: string = '';
/**
* Creates an instance of PanelDetailModel.
* PanelDetailModel 实例
......@@ -205,6 +213,7 @@ export class PanelDetailModel {
this.flexParams = opts.flexParams;
this.isShowCaption = opts.isShowCaption;
this.sysCss = opts.sysCss;
this.predefinedType = opts.predefinedType;
}
/**
......
import { PanelDetailModel } from './panel-detail';
/**
* 直接内容模型
*
* @export
* @class PanelRawitemModel
* @extends {PanelDetailModel}
*/
export class PanelRawitemModel extends PanelDetailModel {
/**
* 导航数据(用于导航区占位)
*
* @private
* @type {*}
* @memberof PanelRawitemModel
*/
public navData: any = {};
/**
* 视图类型
*
* @private
* @type {string}
* @memberof PanelRawitemModel
*/
private readonly viewType: string;
/**
* Creates an instance of PanelRawitemModel.
* @param {*} [opts={}]
* @memberof PanelRawitemModel
*/
constructor(opts: any = {}) {
super(opts);
this.viewType = opts.viewType;
}
/**
* 设置导航数据
*
* @param {*} value
* @memberof PanelRawitemModel
*/
setNavData(value: any) {
this.navData = value;
}
/**
* 获取导航数据
*
* @return {*}
* @memberof PanelRawitemModel
*/
getNavData() {
return this.navData;
}
/**
* 获取动态导航模式(DYNAMICCOMP:动态组件 ROUTEVIEW:路由出口)
*
* @readonly
* @type {('DYNAMICCOMP' | 'ROUTEVIEW')}
* @memberof PanelRawitemModel
*/
get dynaNavMode(): 'DYNAMICCOMP' | 'ROUTEVIEW' {
return this.viewType === 'APPINDEXVIEW' ? 'ROUTEVIEW' : 'DYNAMICCOMP';
}
/**
* 是否启用动态缓存
*
* @readonly
* @type {boolean}
* @memberof PanelRawitemModel
*/
get enableCache(): boolean {
if (this.viewType === 'APPINDEXVIEW' && this.panel && this.panel.layoutModelDetails) {
const navPos = Object.values(this.panel.layoutModelDetails).find((item: any) => {
return item.predefinedType === 'NAV_TABS';
})
}
return false;
}
}
\ No newline at end of file
......@@ -15,7 +15,7 @@
<template #container_scroll_main1>
<app-scroll-container name="container_scroll_main1" :layoutModelDetails="layoutModelDetails">
<template #nav_pos1>
<app-nav-pos name="nav_pos1" :layoutModelDetails="layoutModelDetails"></app-nav-pos>
<app-nav-pos name="nav_pos1" :layoutModelDetails="layoutModelDetails" :navData="layoutModelDetails['nav_pos1'].navData"></app-nav-pos>
</template>
</app-scroll-container>
</template>
......
......@@ -16,19 +16,19 @@
<span>属性项</span>
</template>
<template #auth_loginbutton1>
<span>按钮</span>
<app-login-button class="app-login-login" type='primary' :caption="$t('components.login.name')" @itemClick="handleItemClick" />
</template>
<template #auth_registbutton1>
<span>按钮</span>
</template>
<template #auth_resetinput1>
<span>按钮</span>
<app-login-button class="app-login-reset" type='success' :caption="$t('components.login.reset')" @itemClick="handleItemClick" />
</template>
<template #auth_logout1>
<span>按钮</span>
<app-login-button class="app-login-logout" :caption="$t('components.login.logout')" @itemClick="handleItemClick" />
</template>
<template #auth_captcha1>
<span>用户自定义控件</span>
<app-login-captcha />
</template>
<template #auth_verificationcode>
<span>属性项</span>
......@@ -37,7 +37,7 @@
<span>属性项</span>
</template>
<template #auth_sso1>
<span>用户自定义控件</span>
<app-login-third />
</template>
</app-standard-container>
</template>
......
......@@ -663,7 +663,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKGroupByCodelistListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -699,7 +699,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKGroupByCodelistListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -621,7 +621,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCalendarView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -657,7 +657,7 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCalendarView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -906,7 +906,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}, pageReset: boolean = false): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView9'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
return;
}
if(pageReset){
......@@ -1001,7 +1001,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView'+(this.$t('app.gridpage.notConfig.removeAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView9'+(this.$t('app.gridpage.notConfig.removeAction') as string) });
return;
}
let _datas:any[] = [];
......@@ -1107,7 +1107,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public addBatch(arg: any = {}): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView9'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
return;
}
if(!arg){
......@@ -1987,7 +1987,7 @@ export default class MainBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView'+(this.$t('app.gridpage.notConfig.createAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView9'+(this.$t('app.gridpage.notConfig.createAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
......@@ -1995,7 +1995,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView'+(this.$t('app.gridpage.notConfig.updateAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView9'+(this.$t('app.gridpage.notConfig.updateAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
if(item.ibizorderdetail){
......@@ -2062,7 +2062,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView'+(this.$t('app.gridpage.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderDetailSGridView9'+(this.$t('app.gridpage.notConfig.loaddraftAction') as string) });
return;
}
let _this = this;
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册