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

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

上级 0ff78dd3
......@@ -335,6 +335,10 @@ function getLocaleResourceBase(){
loadMore: 'མང་ཙམ་བླུགས་རོགས།',
noMore: 'དེ་ལས་མང་བ་མི་འདུག'
},
appmessagebox: {
ok: 'ངོས་འཛིན་',
cancel: 'མེད་པར་བཟོ་བ་',
},
diskFileUpload:{
fileDrag: 'ཡིག་ཆ་འདིར་དྲུད་།,ཡང་ན་',
clickUpload: 'སྣོན་ནས་ཡར་སྐུར་དགོས།',
......
......@@ -345,6 +345,10 @@ function getLocaleResourceBase(){
loadMore: 'Load more',
noMore: 'No more'
},
appmessagebox: {
ok: "OK",
cancel: "Cancel"
},
diskFileUpload:{
fileDrag: 'Drag the file here, or',
clickUpload: 'Click on the upload',
......
......@@ -346,6 +346,10 @@ function getLocaleResourceBase(){
loadMore: '加载更多',
noMore: '没有更多了'
},
appmessagebox: {
ok: "确 认",
cancel: "取 消"
},
diskFileUpload:{
fileDrag: '将文件拖到此处,或',
clickUpload: '点击上传',
......
......@@ -3,11 +3,9 @@ import { Component } from 'vue-property-decorator';
import IBIZOrderListExpView_layoutBase from './ibizorder-list-exp-view-layout-base.vue';
import view_listexpbar from '@widgets/ibizorder/list-exp-view-layoutlistexpbar-listexpbar/list-exp-view-layoutlistexpbar-listexpbar.vue';
import view_searchbar from '@widgets/ibizorder/-searchbar/-searchbar.vue';
@Component({
components: {
view_listexpbar,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
......
......@@ -3,11 +3,9 @@ import { Component } from 'vue-property-decorator';
import IBIZOrderTestCustomLayoutPanelGridExpViewBase from './ibizorder-test-custom-layout-panel-grid-exp-view-base.vue';
import view_gridexpbar from '@widgets/ibizorder/test-custom-layout-panel-grid-exp-viewgridexpbar-gridexpbar/test-custom-layout-panel-grid-exp-viewgridexpbar-gridexpbar.vue';
import view_searchbar from '@widgets/ibizorder/-searchbar/-searchbar.vue';
@Component({
components: {
view_gridexpbar,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
......
......@@ -2,6 +2,8 @@ import { UIActionContext } from "@/logic/ui-logic";
import { LogicReturnType } from "@/logic/const/logic-return-type";
import { UILogicParamType } from "@/logic/const/ui-logic-param-type";
import { Util } from "@/utils";
import { AppMessageBox } from "@/utils/app-message-box/app-message-box";
import { Subject } from "rxjs";
import InitDataLogic from '@/service/ibizbook/init-data-logic';
/**
* 表格加载
......@@ -174,7 +176,7 @@ export default class GridLoadUILogicBase {
if (Object.is(dstParam.logicParamType, UILogicParamType.entityParam)) {
const tempContext = getTempContext(dstParam.getReal());
const res = await service['Get'](tempContext, dstParam.getReal() ? dstParam.getReal() : {});
if (res && res.ok && res.data) {
if (res && res.status === 200 && res.data) {
if (retParam) {
retParam.bind(res.data);
}
......@@ -197,7 +199,7 @@ export default class GridLoadUILogicBase {
if (resArray && resArray.length > 0) {
const resultArray: any[] = [];
resArray.forEach((res: any) => {
if (res && res.ok && res.data) {
if (res && res.status === 200 && res.data) {
resultArray.push(res.data);
}
})
......@@ -316,7 +318,6 @@ export default class GridLoadUILogicBase {
* @memberof GridLoadUILogicBase
*/
protected async execute_msgbox1_node(actionContext: UIActionContext) {
// TODO 等待补充
return new Promise<void>((resolve: any) => {
const msgBoxParam: any = actionContext.getParam('');
const data = msgBoxParam ? msgBoxParam.getReal() : {};
......@@ -330,13 +331,23 @@ export default class GridLoadUILogicBase {
mask: true,
maskClosable: true
};
// TODO 支持具体弹窗
// const subject: Subject<any> | null = AppMessageBoxService.getInstance().open(options);
// const subscription = subject?.subscribe((result: any) => {
// resolve(this.handleResponse(logicNode, actionContext, options, result));
// subscription!.unsubscribe();
// subject.complete();
// })
const subject: Subject<any> | null = AppMessageBox.getInstance().open(options);
if (subject) {
const handleResponse = (result: any) => {
if (msgBoxParam) {
msgBoxParam.bind(result);
}
actionContext.bindLastReturnParam(result);
return true;
}
const subscription = subject.subscribe((result: any) => {
resolve(handleResponse(result));
subscription!.unsubscribe();
subject.complete();
});
} else {
resolve(true);
}
});
console.log('已完成执行 消息弹窗 节点');
}
......
......@@ -2,6 +2,8 @@ import { UIActionContext } from "@/logic/ui-logic";
import { LogicReturnType } from "@/logic/const/logic-return-type";
import { UILogicParamType } from "@/logic/const/ui-logic-param-type";
import { Util } from "@/utils";
import { AppMessageBox } from "@/utils/app-message-box/app-message-box";
import { Subject } from "rxjs";
/**
* 自定义表格数据加载
*
......
......@@ -2,6 +2,8 @@ import { UIActionContext } from "@/logic/ui-logic";
import { LogicReturnType } from "@/logic/const/logic-return-type";
import { UILogicParamType } from "@/logic/const/ui-logic-param-type";
import { Util } from "@/utils";
import { AppMessageBox } from "@/utils/app-message-box/app-message-box";
import { Subject } from "rxjs";
/**
* 打开语雀文档
*
......
.app-modal-ok {
.ivu-modal-header {
padding-left: 32px;
padding-top: 28px;
border-bottom: 0;
.header {
text-align: left;
line-height: 26px;
height: auto;
color: #333333;
font-weight: 600;
font-size: 18px;
i {
font-size: 24px;
position: relative;
top: 1px;
margin-right: 8px;
}
}
}
.ivu-modal-body {
padding: 0 32px 0 68px;
color: #707070;
.content {
line-height: 1.5;
font-size: 16px;
}
>.body-icon {
height: 40px;
i {
font-size: 24px;
position: relative;
top: 1px;
margin-right: 8px;
display: block;
position: absolute;
left: 32px;
top: 40px;
}
}
}
.ivu-modal-footer {
border-top: 0;
padding: 24px 32px 24px 18px;
.ivu-btn {
width: 80px;
height: 34px;
font-size: 15px;
}
.ivu-btn-primary {
color: rgb(187,218,254);
}
.ivu-btn-default {
color: rgb(157,157,157);
}
}
.info {
i {
color: #2d8cf0;
}
}
.success {
i {
color: rgb(25,190,107);
}
}
.warning {
i {
color: #f90;
}
}
.error {
i {
color: #ed4014;
}
}
.question {
i {
color: #DADADA
}
}
}
import { Subject } from 'rxjs';
import Vue from 'vue';
import { MessageBoxOptions } from './interface/message-box-options';
import appMessageBox from "./app-message-box.vue";
import i18n from '@/locale';
import store from '@/store';
/**
* 提示信息
*
* @export
* @class AppMessageBox
*/
export class AppMessageBox {
/**
* 唯一实例
*
* @private
* @static
* @memberof AppMessageBox
*/
private static readonly instance = new AppMessageBox();
/**
* vue 实例
*
* @private
* @type {Vue | null}
* @memberof AppModal
*/
private vueExample: Vue | null = null;
/**
* 引用对象
*
* @private
* @type {*}
* @memberof AppMessageBox
*/
private refs: any;
/**
* 获取唯一实例
*
* @static
* @return {*} {AppMessageBox}
* @memberof AppMessageBox
*/
public static getInstance(): AppMessageBox {
return AppMessageBox.instance;
}
/**
* 打开提示信息
*
* @param {*} options
* @return {*}
* @memberof AppMessageBox
*/
public open(options: any): Subject<any> {
return this.createVueExample(options)
}
/**
* 创建vue 实例
*
* @private
* @param {ModalConfirmOptions} opt
* @return {*} {Subject<any>}
* @memberof AppMessageBox
*/
private createVueExample(opt: MessageBoxOptions): Subject<any> {
const self: any = this;
try {
let props = { ...opt };
this.vueExample = new Vue({
store: store,
i18n: i18n,
render(h) {
return h(appMessageBox, { props, class: opt.customClass });
}
}).$mount();
document.body.appendChild(this.vueExample.$el);
this.refs = this.vueExample.$children[0];
return this.refs.getSubject();
} catch (error) {
console.error(error);
return new Subject<any>();
}
}
/**
* 关闭
*
* @memberof AppMessageBox
*/
public close() {
if (this.refs) {
this.refs.close();
}
}
/**
* @description 销毁临时vue对象
* @memberof AppModal
*/
destroyVueExample() {
if (this.vueExample) {
this.vueExample.$destroy();
this.vueExample = null;
}
}
}
<template>
<modal
v-model="isShow"
:ref="refName"
class="app-modal-ok"
:class="customClass"
:closable="showClose"
:zIndex="zIndex"
:mask="mask"
:maskClosable="maskClosable"
:className="getClassName()"
>
<p slot="header" v-if="title" :class="type" class="header">
<i :class="geticonClass()"></i>
{{ title }}
</p>
<p v-else :class="[type,'body-icon']">
<i :class="geticonClass()"></i>
</p>
<div class="content" v-html="content"></div>
<div slot="footer" ref="modelokFooter">
<template v-for="item in buttonModel">
<i-button v-if="item.visibel" :key="item.value" :type="item.type" @click="button_click(item)">
{{ item.text }}
</i-button>
</template>
<slot name="customFooter" @click="button_click"></slot>
</div>
</modal>
</template>
<script lang="ts">
import { VNode } from 'node_modules/vue/types';
import { Subject } from 'rxjs';
import { AppMessageBox as AppMessage } from './app-message-box';
import { Vue, Component, Prop } from 'vue-property-decorator';
import './app-message-box.less';
@Component({
components: {},
})
export default class AppMessageBox extends Vue {
/**
* 对话框类型
*
* @type {('info' | 'success' | 'warning' | 'error')}
* @memberof AppMessageBox
*/
@Prop({ default: 'info' })
public type?: 'info' | 'success' | 'warning' | 'error' | 'question';
/**
* 标题
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop()
public title?: string;
/**
* 内容
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop()
public content?: string;
/**
* 按钮类型
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop({ default: 'okcancel' })
public buttonType?: string | 'okcancel' | 'yesno' | 'yesnocancel' | 'ok';
/**
* 启用自定义底部
*
* @type {boolean}
* @memberof ModalokOptions
*/
@Prop({ default: false })
public visibleCustomFooter?: boolean;
/**
* 自定义底部
*
* @type {VNode}
* @memberof ModalokOptions
*/
@Prop()
public customFooter?: VNode;
/**
* 自定义类名
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop()
public customClass?: string;
/**
* 自定义类名
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop()
public iconClass?: string;
/**
* 是否显示右上角的关闭按钮
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop({ default: false })
public showClose?: boolean;
/**
* 是否显示遮罩
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop({ default: true })
public mask?: boolean;
/**
* 是否可以点击遮罩关闭
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop({ default: false })
public maskClosable?: boolean;
/**
* 显示模式
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop({ default: 'center' })
public showMode?: string | 'center';
/**
* 关闭回调
*
* @type {Function}
* @memberof AppMessageBox
*/
@Prop()
public onClose?: Function;
/**
* 引用对象名称
*
* @type {string}
* @memberof AppMessageBox
*/
@Prop()
public refName?: string;
/**
* 内置按钮模型
*
* @type {any}
* @memberof AppMessageBox
*/
public buttonModel = [
{ text: this.$t('components.appmessagebox.ok'), value: 'ok', type: 'primary', visibel: false },
{ text: this.$t('app.commonwords.yes'), value: 'yes', type: 'primary', visibel: false },
{ text: this.$t('app.commonwords.no'), value: 'no', visibel: false },
{ text: this.$t('components.appmessagebox.cancel'), value: 'cancel', visibel: false },
];
/**
* 数据传递对象
*
* @type {any}
* @memberof AppMessageBox
*/
public subject: null | Subject<any> = new Subject<any>();
/**
* 层级
*
* @type {any}
* @memberof AppMessageBox
*/
public zIndex: any = null;
/**
* 是否显示
*
* @type {boolean}
* @memberof AppMessageBox
*/
public isShow: boolean = false;
/**
* 获取显示模式类名 居中/top
*
* @memberof AppMessageBox
*/
public getClassName() {
return this.showMode === 'center' ? 'center' : 'top';
}
/**
* 根据type计算iconClass
*
* @memberof AppMessageBox
*/
public geticonClass() {
if (this.customClass) {
return this.customClass;
}
let classes = 'ivu-icon ';
switch (this.type) {
case 'info':
classes = classes + 'ivu-icon-ios-information-circle';
break;
case 'success':
classes = classes + 'ivu-icon-ios-checkmark-circle';
break;
case 'warning':
classes = classes + 'ivu-icon-ios-alert';
break;
case 'error':
classes = classes + 'ivu-icon-ios-close-circle';
break;
case 'question':
classes = classes + 'el-icon-question';
break;
}
return classes;
}
/**
* 获取数据传递对象
*
* @memberof AppMessageBox
*/
public getSubject() {
return this.subject;
}
/**
* 按钮点击
*
* @memberof AppMessageBox
*/
public button_click(item: any) {
this.isShow = false;
if (this.subject) {
this.subject.next(item.value);
}
this.close();
}
/**
* 初始化按钮Model
*
* @memberof AppMessageBox
*/
public initButtonModel() {
if (this.visibleCustomFooter) {
return;
}
switch (this.buttonType) {
case 'okcancel':
this.buttonModel[0].visibel = true;
this.buttonModel[3].visibel = true;
break;
case 'yesno':
this.buttonModel[1].visibel = true;
this.buttonModel[2].visibel = true;
break;
case 'yesnocancel':
this.buttonModel[1].visibel = true;
this.buttonModel[2].visibel = true;
this.buttonModel[3].visibel = true;
break;
case 'ok':
this.buttonModel[0].visibel = true;
break;
}
}
/**
* 关闭方法
*
* @memberof AppMessageBox
*/
public close() {
if (this.onClose) {
this.onClose(this);
}
setTimeout(() => {
document.body.removeChild(this.$el);
this.$destroy();
AppMessage.getInstance().destroyVueExample();
this.subject = null;
}, 500);
}
/**
* Vue生命周期created
*
* @memberof AppMessageBox
*/
public created() {
this.initButtonModel();
}
/**
* Vue生命周期mounted
*
* @memberof AppMessageBox
*/
public mounted() {
const zIndex = this.$store.getters.getZIndex();
if (zIndex) {
this.zIndex = zIndex + 100;
this.$store.commit('updateZIndex', this.zIndex);
}
if (this.visibleCustomFooter && this.customFooter) {
this.$slots.customFooter = [this.customFooter];
this.$forceUpdate();
}
this.isShow = true;
}
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
import { VNode } from "vue";
export interface MessageBoxOptions {
/**
* 对话框类型
*
* @type {(string | 'info' | 'success' | 'warning' | 'error' | 'ok' )}
* @memberof AppModalok
*/
type?: string | 'info' | 'success' | 'warning' | 'error';
/**
* 标题
*
* @type {string}
* @memberof AppModalok
*/
title?: string;
/**
* 内容
*
* @type {string}
* @memberof AppModalok
*/
content?: string;
/**
* 按钮类型
* 默认值:'okcancel'
* okcancel 确认/取消
* yesno 是/否
* yesnocanel 是/否/取消
* ok 确认
*
* @type {(string | 'okcancel' | 'yesno' | 'yesnocanel' | 'ok')}
* @memberof ModalokOptions
*/
buttonType?: string | 'okcancel' | 'yesno' | 'yesnocanel' | 'ok';
/**
* 启用自定义底部
*
* @type {boolean}
* @memberof ModalokOptions
*/
visibleCustomFooter?: boolean;
/**
* 自定义底部
*
* @type {VNode}
* @memberof ModalokOptions
*/
customFooter?: VNode;
/**
* 显示模式
* 默认值:center
*
* @type {('top' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left')}
* @memberof NoticeOptions
*/
showMode?: 'center' | string;
/**
* 自定义图标的类名,会覆盖type
*
* @type {string}
* @memberof NoticeOptions
*/
iconClass?: string;
/**
* 自定义类名
*
* @type {string}
* @memberof NoticeOptions
*/
customClass?: string;
/**
* 是否显示右上角的关闭按钮
* 默认值:false
*
* @type {boolean}
* @memberof NoticeOptions
*/
showClose?: boolean;
/**
* 是否显示遮罩
* 默认值:true
*
* @type {boolean}
* @memberof NoticeOptions
*/
mask?: boolean;
/**
* 是否点击遮罩关闭
* 默认值:false
*
* @type {boolean}
* @memberof NoticeOptions
*/
maskClosable?: boolean;
/**
* 引用对象名称
*
* @type {string}
* @memberof ModalokOptions
*/
refName?: string;
/**
* 关闭时的回调函数, 参数为被关闭的实例
*
* @memberof NoticeOptions
*/
onClose?: (val: any) => void;
}
......@@ -1266,7 +1266,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loadaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loadaction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -1301,7 +1301,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
*/
public loadDraft(opt: any = {}): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
return;
}
const arg: any = { ...opt } ;
......@@ -1362,7 +1362,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -1470,7 +1470,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -1544,7 +1544,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.removeaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.removeaction') as string) });
return;
}
const arg: any = opt[0];
......
......@@ -1369,7 +1369,7 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loadaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loadaction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -1404,7 +1404,7 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {}): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
return;
}
const arg: any = { ...opt } ;
......@@ -1465,7 +1465,7 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -1573,7 +1573,7 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -1647,7 +1647,7 @@ export default class GuideViewFormBase extends Vue implements ControlInterface {
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.removeaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.removeaction') as string) });
return;
}
const arg: any = opt[0];
......
......@@ -759,4 +759,4 @@ export default class QUICKSEARCHFORMBase extends Vue implements ControlInterface
<style lang='less'>
@import './quicksearchform-searchform.less';
</style></style>
\ No newline at end of file
</style>
\ No newline at end of file
......@@ -172,7 +172,7 @@
<!--输出实体[IBIZBOOK]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-346-7">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-347-7">
<createTable tableName="T_IBIZBOOK">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column>
......@@ -340,7 +340,7 @@
<!--输出实体[IBIZORDER]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-479-14">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-491-14">
<createTable tableName="T_IBIZORDER">
<column name="TP" remarks="" type="TEXT(1048576)">
</column>
......
......@@ -37,7 +37,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZORDER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-479-8" runOnChange="true">
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-491-8" runOnChange="true">
<createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZORDER">
<![CDATA[ SELECT t1.[AMOUNT], t1.[CREATEDATE], t1.[CREATEMAN], t1.[DETAILNUM], t1.[IBIZCUSTOMERID], t11.[IBIZCUSTOMERNAME], t1.[IBIZORDERID], t1.[IBIZORDERNAME], t1.[MEMO], t1.[ORDERSTATE], t1.[ORDERTIME], t1.[ORDERTYPE], t1.[ORDERUID], t1.[UPDATEDATE], t1.[UPDATEMAN], t1.[WFINSTANCEID], t1.[WFSTATE], t1.[WFSTEP] FROM [T_IBIZORDER] t1 LEFT JOIN T_IBIZCUSTOMER t11 ON t1.IBIZCUSTOMERID = t11.IBIZCUSTOMERID ]]>
</createView>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册