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

lxm1993 发布系统代码 [TrainSys,网页端]

上级 e33111be
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
:content="value" :content="value"
:context="context" :context="context"
:viewparams="viewparams" :viewparams="viewparams"
:itemValue="value"
/> />
<div class="app-preset-rawitem" v-else-if="type == 'STATIC_VIDEOPLAYER'"> <div class="app-preset-rawitem" v-else-if="type == 'STATIC_VIDEOPLAYER'">
<app-video :videoParmas="rawParams" /> <app-video :videoParmas="rawParams" />
...@@ -34,6 +35,7 @@ ...@@ -34,6 +35,7 @@
import { Vue, Component, Prop } from 'vue-property-decorator'; import { Vue, Component, Prop } from 'vue-property-decorator';
import { ImgurlBase64 } from 'ibiz-core'; import { ImgurlBase64 } from 'ibiz-core';
import { Environment } from '@/environments/environment'; import { Environment } from '@/environments/environment';
import { IPSEditor } from '@ibiz/dynamic-model-api';
@Component({}) @Component({})
export default class AppPresetRawitem extends Vue { export default class AppPresetRawitem extends Vue {
...@@ -122,6 +124,14 @@ export default class AppPresetRawitem extends Vue { ...@@ -122,6 +124,14 @@ export default class AppPresetRawitem extends Vue {
*/ */
@Prop() modelService: any; @Prop() modelService: any;
/**
* 编辑器实例
*
* @type {IPSEditor}
* @memberof AppPresetRawitem
*/
@Prop() editorInstance!: IPSEditor;
/** /**
* 内容类型 * 内容类型
* *
...@@ -184,7 +194,7 @@ export default class AppPresetRawitem extends Vue { ...@@ -184,7 +194,7 @@ export default class AppPresetRawitem extends Vue {
this.handleDynaText(); this.handleDynaText();
break; break;
case 'STATIC_LABEL': case 'STATIC_LABEL':
this.contentType = 'RAW'; this.contentType = this.editorInstance?.editorParams?.['CONTENTTYPE'] || 'RAW';
break; break;
case 'NAV_POS': case 'NAV_POS':
break; break;
...@@ -209,7 +219,7 @@ export default class AppPresetRawitem extends Vue { ...@@ -209,7 +219,7 @@ export default class AppPresetRawitem extends Vue {
* @memberof AppPresetRawitem * @memberof AppPresetRawitem
*/ */
protected handleDynaImg() { protected handleDynaImg() {
this.contentType = 'IMAGE'; this.contentType = this.editorInstance?.editorParams?.['CONTENTTYPE'] || 'IMAGE';
if (this.value && typeof this.value == 'string') { if (this.value && typeof this.value == 'string') {
// 默认识别文件对象形式,识别失败则为全路径模式 // 默认识别文件对象形式,识别失败则为全路径模式
try { try {
...@@ -233,7 +243,7 @@ export default class AppPresetRawitem extends Vue { ...@@ -233,7 +243,7 @@ export default class AppPresetRawitem extends Vue {
* @memberof AppPresetRawitem * @memberof AppPresetRawitem
*/ */
protected handleDynaText() { protected handleDynaText() {
this.contentType = 'RAW'; this.contentType = this.editorInstance?.editorParams?.['CONTENTTYPE'] || 'RAW';
} }
/** /**
......
...@@ -50,7 +50,6 @@ export default class AppLang extends Vue { ...@@ -50,7 +50,6 @@ export default class AppLang extends Vue {
const lang: string = this.$i18n.locale; const lang: string = this.$i18n.locale;
const local: any = this.localList.find((_local: any) => Object.is(_local.type, lang)); const local: any = this.localList.find((_local: any) => Object.is(_local.type, lang));
this.caption = local.name; this.caption = local.name;
document.title = this.title;
} }
/** /**
......
...@@ -301,6 +301,7 @@ ...@@ -301,6 +301,7 @@
justify-content: flex-start; justify-content: flex-start;
flex-wrap: wrap; flex-wrap: wrap;
> .app-middle-menu-item { > .app-middle-menu-item {
width: 320px;
margin: 12px; margin: 12px;
cursor: pointer; cursor: pointer;
color: var(--ctrl-font-color); color: var(--ctrl-font-color);
......
...@@ -309,6 +309,8 @@ export class ViewToolbar extends Vue { ...@@ -309,6 +309,8 @@ export class ViewToolbar extends Vue {
<dropdown transfer transfer-class-name="view-toolbar-transfer" v-show={item.visabled} trigger='click' on-on-click={(name: string) => throttle(this.itemClick,[{ tag: name }],this)}> <dropdown transfer transfer-class-name="view-toolbar-transfer" v-show={item.visabled} trigger='click' on-on-click={(name: string) => throttle(this.itemClick,[{ tag: name }],this)}>
<el-tooltip disabled={!item.tooltip}> <el-tooltip disabled={!item.tooltip}>
<app-button <app-button
showCaption={item.showCaption}
showIcon={item.showIcon}
caption={item.caption} caption={item.caption}
icon={item.icon} icon={item.icon}
iconcls={item.iconcls} iconcls={item.iconcls}
......
...@@ -599,6 +599,7 @@ export class ControlContainer extends Vue { ...@@ -599,6 +599,7 @@ export class ControlContainer extends Vue {
const tempModel: any = { const tempModel: any = {
name: item.name, name: item.name,
showCaption: item.showCaption, showCaption: item.showCaption,
showIcon: item.showIcon,
caption: this.$tl((item.getCapPSLanguageRes() as IPSLanguageRes)?.lanResTag, item.caption), caption: this.$tl((item.getCapPSLanguageRes() as IPSLanguageRes)?.lanResTag, item.caption),
tooltip: this.$tl((item.getTooltipPSLanguageRes() as IPSLanguageRes)?.lanResTag, item.tooltip), tooltip: this.$tl((item.getTooltipPSLanguageRes() as IPSLanguageRes)?.lanResTag, item.tooltip),
disabled: false, disabled: false,
......
...@@ -96,7 +96,6 @@ export class AppIndexViewShell extends ViewContainerBase { ...@@ -96,7 +96,6 @@ export class AppIndexViewShell extends ViewContainerBase {
if (indexRoute && indexRoute.meta) { if (indexRoute && indexRoute.meta) {
if (indexView.caption) { if (indexView.caption) {
indexRoute.meta.caption = indexView.caption; indexRoute.meta.caption = indexView.caption;
document.title = indexView.caption;
} }
if (indexView.getCapPSLanguageRes()) { if (indexView.getCapPSLanguageRes()) {
indexRoute.meta.captionTag = (indexView.getCapPSLanguageRes() as IPSLanguageRes).lanResTag; indexRoute.meta.captionTag = (indexView.getCapPSLanguageRes() as IPSLanguageRes).lanResTag;
......
...@@ -112,6 +112,7 @@ Interceptors.getInstance(router, store); ...@@ -112,6 +112,7 @@ Interceptors.getInstance(router, store);
let instance:any = null; let instance:any = null;
const init = async (props:any = {}) => { const init = async (props:any = {}) => {
document.title = Environment.AppTitle;
const { container } = props; const { container } = props;
instance = new Vue({ instance = new Vue({
i18n, i18n,
......
/*** START:预制按钮行为级别样式类 ***/ /*** START:预制按钮行为级别样式类 ***/
.srfactionlevel50 { .srfactionlevel50 {
color: var(--button-font-color-light) !important; color: var(--button-font-color-light) !important;
border-color: var(--button-font-color-light) !important; border-color: var(--button-font-color-light) !important;
background-color: var(--button-background-color-light) !important; background-color: var(--button-background-color-light) !important;
} }
.srfactionlevel50:disabled { .srfactionlevel50:disabled {
color: var(--button-font-color-light) !important; color: var(--button-font-color-light) !important;
border-color: var(--button-font-color-light) !important; border-color: var(--button-font-color-light) !important;
background-color: var(--button-background-color-light) !important; background-color: var(--button-background-color-light) !important;
} }
.srfactionlevel50:hover { .srfactionlevel50:hover {
color: var(--button-font-color-bright) !important; color: var(--button-font-color-bright) !important;
border-color: var(--button-font-color-bright) !important; border-color: var(--button-font-color-bright) !important;
background-color: var(--button-background-color-bright) !important; background-color: var(--button-background-color-bright) !important;
} }
.srfactionlevel50:disabled:hover { .srfactionlevel50:disabled:hover {
color: var(--button-font-color-light) !important; color: var(--button-font-color-light) !important;
border-color: var(--button-font-color-light) !important; border-color: var(--button-font-color-light) !important;
background-color: var(--button-background-color-light) !important; background-color: var(--button-background-color-light) !important;
} }
.srfactionlevel100 { .srfactionlevel100 {
color: var(--button-font-color) !important; color: var(--button-font-color) !important;
border-color: var(--button-font-color-light) !important; border-color: var(--button-font-color-light) !important;
background-color: var(--button-background-color) !important; background-color: var(--button-background-color) !important;
} }
.srfactionlevel100:disabled { .srfactionlevel100:disabled {
color: var(--button-font-color-light) !important; color: var(--button-font-color-light) !important;
border-color: var(--button-font-color-light) !important; border-color: var(--button-font-color-light) !important;
background-color: var(--button-background-color-light) !important; background-color: var(--button-background-color-light) !important;
} }
.srfactionlevel100:hover { .srfactionlevel100:hover {
color: var(--button-font-color-bright) !important; color: var(--button-font-color-bright) !important;
border-color: var(--button-font-color-bright) !important; border-color: var(--button-font-color-bright) !important;
background-color: var(--button-background-color-bright) !important; background-color: var(--button-background-color-bright) !important;
} }
.srfactionlevel100:disabled:hover { .srfactionlevel100:disabled:hover {
color: var(--button-font-color) !important; color: var(--button-font-color) !important;
border-color: var(--button-font-color-light) !important; border-color: var(--button-font-color-light) !important;
background-color: var(--button-background-color) !important; background-color: var(--button-background-color) !important;
} }
.srfactionlevel200 { .srfactionlevel200 {
color: var(--button-font-color-bright) !important; color: var(--button-font-color-bright) !important;
border-color: var(--button-font-color-bright) !important; border-color: var(--button-font-color-bright) !important;
background-color: var(--button-background-color-bright) !important; background-color: var(--button-background-color-bright) !important;
} }
.srfactionlevel200:disabled { .srfactionlevel200:disabled {
color: var(--button-font-color-light) !important; color: var(--button-font-color-light) !important;
border-color: var(--button-font-color-light) !important; border-color: var(--button-font-color-light) !important;
background-color: var(--button-background-color-light) !important; background-color: var(--button-background-color-light) !important;
} }
.srfactionlevel200:hover { .srfactionlevel200:hover {
color: var(--button-font-color-bright) !important; color: var(--button-font-color-bright) !important;
border-color: var(--button-font-color-bright) !important; border-color: var(--button-font-color-bright) !important;
background-color: var(--button-background-color-bright) !important; background-color: var(--button-background-color-bright) !important;
} }
.srfactionlevel200:disabled:hover { .srfactionlevel200:disabled:hover {
color: var(--button-font-color-bright) !important; color: var(--button-font-color-bright) !important;
border-color: var(--button-font-color-bright) !important; border-color: var(--button-font-color-bright) !important;
background-color: var(--button-background-color-bright) !important; background-color: var(--button-background-color-bright) !important;
} }
/*** END:预制按钮行为级别样式类 ***/ /*** END:预制按钮行为级别样式类 ***/
\ No newline at end of file
/*** START:系统样式表 ***/
/*** END:系统样式表 ***/
\ No newline at end of file
import qs from 'qs'; import qs from 'qs';
import { GlobalHelp, IPSAppView } from '@ibiz/dynamic-model-api'; import { GlobalHelp, IPSAppView } from '@ibiz/dynamic-model-api';
import { clearCookie, getCookie, SyncSeriesHook } from 'qx-util'; import { clearCookie, getCookie, SyncSeriesHook } from 'qx-util';
import { AppServiceBase, Http, getSessionStorage, setSessionStorage, AppModelService, Util, GetModelService, ViewTool } from 'ibiz-core'; import { AppServiceBase, Http, getSessionStorage, setSessionStorage, AppModelService, Util, GetModelService, ViewTool, LogUtil } from 'ibiz-core';
import { AppCenterService, AppNoticeService, AppViewLogicService, NoticeHandler } from 'ibiz-vue'; import { AppCenterService, AppNoticeService, AppViewLogicService, NoticeHandler } from 'ibiz-vue';
import { Environment } from '@/environments/environment'; import { Environment } from '@/environments/environment';
import i18n from '@/locale'; import i18n from '@/locale';
...@@ -237,10 +237,82 @@ export class AuthGuard { ...@@ -237,10 +237,82 @@ export class AuthGuard {
return null; return null;
} }
}, { lang: Environment?.isEnableMultiLan ? handleLocaleMap(i18n.locale) : '' }); }, { lang: Environment?.isEnableMultiLan ? handleLocaleMap(i18n.locale) : '' });
await this.initAppStyle('PSSYSAPP.json.css');
AppServiceBase.getInstance().setAppModelDataObject(service.app); AppServiceBase.getInstance().setAppModelDataObject(service.app);
AppCenterService.getInstance(router.app.$store); AppCenterService.getInstance(router.app.$store);
} }
/**
* 初始化应用样式表
*
* @param cssUrl 样式路径
*/
public async initAppStyle(cssUrl: string) {
const cssContent = await this.loadAppStyle(cssUrl);
if(!cssContent){
LogUtil.warn("暂无应用样式表");
return;
}
this.mountedAppStyle(cssContent);
}
/**
* 加载应用样式表
*
* @param cssUrl 样式路径
*/
public async loadAppStyle(cssUrl: string) {
let url = '';
if (Environment.bDynamic) {
url = `${Environment.remoteDynaPath}/${cssUrl}`;
const queryParam = {};
const { dynamodeltag } = AppServiceBase.getInstance().getAppStore().getters.getAppData();
if (dynamodeltag) {
Object.assign(queryParam, { dynamodeltag });
}
if (queryParam && Object.keys(queryParam).length > 0) {
url += `?${qs.stringify(queryParam)}`;
}
} else {
const microAppService = AppServiceBase.getInstance().getMicroAppService();
if (microAppService && microAppService.getIsMicroApp() && microAppService.getMicroAppFolder()) {
url = `./${microAppService.getMicroAppFolder()}/assets/model/${cssUrl}`;
} else {
url = `./assets/model/${cssUrl}`;
}
}
try {
const result: any = await Http.getInstance().get(url);
return result.data ? result.data : null;
} catch (error) {
return null;
}
}
/**
* 挂载应用样式表
*
* @param cssContent
*/
public mountedAppStyle(cssContent:string){
let appStyleDom:any;
for (let i = document.head.childNodes.length - 1; i >= 0; i--) {
const children: any = document.head.childNodes[i]
if (children.nodeName == "STYLE" && children.getAttribute('title') && children.getAttribute('title') == 'app-style-css') {
appStyleDom = children;
}
}
if (appStyleDom) {
appStyleDom.innerText = cssContent;
} else {
const styleDom = document.createElement('style');
styleDom.type = "text/css";
styleDom.setAttribute('title', 'app-style-css');
styleDom.innerText = cssContent;
document.head.appendChild(styleDom);
}
}
/** /**
* 处理未登录异常情况 * 处理未登录异常情况
* *
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</changeSet> </changeSet>
<!--输出实体[BOOK]数据结构 --> <!--输出实体[BOOK]数据结构 -->
<changeSet author="root" id="tab-book-207-3"> <changeSet author="root" id="tab-book-209-3">
<createTable tableName="T_BOOK"> <createTable tableName="T_BOOK">
<column name="BOOKNAME" remarks="" type="VARCHAR(200)"> <column name="BOOKNAME" remarks="" type="VARCHAR(200)">
</column> </column>
...@@ -194,7 +194,7 @@ ...@@ -194,7 +194,7 @@
</changeSet> </changeSet>
<!--输出实体[REGINFO]数据结构 --> <!--输出实体[REGINFO]数据结构 -->
<changeSet author="root" id="tab-reginfo-49-8"> <changeSet author="root" id="tab-reginfo-50-8">
<createTable tableName="T_REGINFO"> <createTable tableName="T_REGINFO">
<column name="UPDATEDATE" remarks="" type="DATETIME"> <column name="UPDATEDATE" remarks="" type="DATETIME">
</column> </column>
......
...@@ -262,7 +262,7 @@ ...@@ -262,7 +262,7 @@
"width" : 899 "width" : 899
}, },
"width" : 899.0, "width" : 899.0,
"allowEmpty" : true, "allowEmpty" : false,
"showCaption" : true "showCaption" : true
} ], } ],
"getPSLayout" : { "getPSLayout" : {
......
...@@ -255,7 +255,7 @@ ...@@ -255,7 +255,7 @@
"maxLength" : 100, "maxLength" : 100,
"name" : "stuno" "name" : "stuno"
}, },
"allowEmpty" : true "allowEmpty" : false
}, { }, {
"caption" : "学员姓名", "caption" : "学员姓名",
"codeName" : "name", "codeName" : "name",
......
...@@ -1248,7 +1248,7 @@ ...@@ -1248,7 +1248,7 @@
"width" : 899 "width" : 899
}, },
"width" : 899.0, "width" : 899.0,
"allowEmpty" : true, "allowEmpty" : false,
"showCaption" : true "showCaption" : true
} ], } ],
"getPSLayout" : { "getPSLayout" : {
......
...@@ -684,7 +684,7 @@ ...@@ -684,7 +684,7 @@
"maxLength" : 100, "maxLength" : 100,
"name" : "stuno" "name" : "stuno"
}, },
"allowEmpty" : true "allowEmpty" : false
}, { }, {
"caption" : "学员姓名", "caption" : "学员姓名",
"codeName" : "name", "codeName" : "name",
......
...@@ -2142,7 +2142,7 @@ ...@@ -2142,7 +2142,7 @@
"maxLength" : 100, "maxLength" : 100,
"name" : "stuno" "name" : "stuno"
}, },
"allowEmpty" : true "allowEmpty" : false
}, { }, {
"caption" : "学员姓名", "caption" : "学员姓名",
"codeName" : "name", "codeName" : "name",
......
/*** START:系统样式表 ***/
/*** END:系统样式表 ***/
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册