Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7-Res
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7-Res
提交
d5098e1c
提交
d5098e1c
编写于
11月 02, 2022
作者:
Shine-zwj
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add:添加布局面板文本项
上级
b7f83a11
变更
7
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
244 行增加
和
0 行删除
+244
-0
app-register.ts
src/app-register.ts
+6
-0
app-preset-caption.less
...t-element/text/app-preset-caption/app-preset-caption.less
+9
-0
app-preset-caption.vue
...ut-element/text/app-preset-caption/app-preset-caption.vue
+16
-0
app-preset-text.less
.../layout-element/text/app-preset-text/app-preset-text.less
+4
-0
app-preset-text.vue
...s/layout-element/text/app-preset-text/app-preset-text.vue
+172
-0
app-preset-title.less
...ayout-element/text/app-preset-title/app-preset-title.less
+5
-0
app-preset-title.vue
...layout-element/text/app-preset-title/app-preset-title.vue
+32
-0
未找到文件。
src/app-register.ts
浏览文件 @
d5098e1c
...
...
@@ -115,6 +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'
;
// 全局挂载UI实体服务注册中心
window
[
'uiServiceRegister'
]
=
uiServiceRegister
;
// 全局挂载实体权限服务注册中心
...
...
@@ -244,5 +247,8 @@ 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
);
},
};
\ No newline at end of file
src/components/layout-element/text/app-preset-caption/app-preset-caption.less
0 → 100644
浏览文件 @
d5098e1c
.app-preset-caption {
padding: 8px;
.caption-info {
font-weight: 600;
font-family: "Microsoft YaHei";
font-size: 14px;
}
}
\ No newline at end of file
src/components/layout-element/text/app-preset-caption/app-preset-caption.vue
0 → 100644
浏览文件 @
d5098e1c
<
template
>
<div
class=
"app-preset-caption"
>
<slot></slot>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
}
from
"vue-property-decorator"
;
@
Component
({})
export
default
class
AppPreSetCaption
extends
Vue
{}
</
script
>
<
style
lang=
'less'
>
@import "./app-preset-caption.less";
</
style
>
\ No newline at end of file
src/components/layout-element/text/app-preset-text/app-preset-text.less
0 → 100644
浏览文件 @
d5098e1c
.app-preset-text {
width: 100%;
height: 100%;
}
\ No newline at end of file
src/components/layout-element/text/app-preset-text/app-preset-text.vue
0 → 100644
浏览文件 @
d5098e1c
<
template
>
<div
:class=
"['app-preset-text', `app-preset-text--$
{contentType.toLowerCase()}`]">
<!-- 直接内容类型 -->
<template
v-if=
"Object.is(contentType, 'RAW')"
>
<template
v-if=
"Object.is(renderMode, 'TEXT')"
>
<span
:style=
"cssStyle"
>
{{
value
}}
</span>
</
template
>
<
template
v-else-if=
"Object.is(renderMode, 'HEADING1')"
>
<h1
:style=
"cssStyle"
>
{{
value
}}
</h1>
</
template
>
<
template
v-else-if=
"Object.is(renderMode, 'HEADING2')"
>
<h2
:style=
"cssStyle"
>
{{
value
}}
</h2>
</
template
>
<
template
v-else-if=
"Object.is(renderMode, 'HEADING3')"
>
<h3
:style=
"cssStyle"
>
{{
value
}}
</h3>
</
template
>
<
template
v-else-if=
"Object.is(renderMode, 'HEADING4')"
>
<h4
:style=
"cssStyle"
>
{{
value
}}
</h4>
</
template
>
<
template
v-else-if=
"Object.is(renderMode, 'HEADING5')"
>
<h5
:style=
"cssStyle"
>
{{
value
}}
</h5>
</
template
>
<
template
v-else-if=
"Object.is(renderMode, 'HEADING6')"
>
<h6
:style=
"cssStyle"
>
{{
value
}}
</h6>
</
template
>
<
template
v-else-if=
"Object.is(renderMode, 'PARAGRAPH')"
>
<p
:style=
"cssStyle"
>
{{
value
}}
</p>
</
template
>
</template>
<!-- 图片类型 -->
<
template
v-else-if=
"Object.is(contentType, 'IMAGE')"
>
<img
:style=
"cssStyle"
v-if=
"imgUrl"
:src=
"imgUrl"
/>
<i
:style=
"cssStyle"
v-else
:class=
"imageClass ? imageClass : ''"
></i>
</
template
>
<!-- HTML类型 -->
<
template
v-else-if=
"Object.is(contentType, 'HTML')"
>
<div
:style=
"cssStyle"
v-html=
"value"
/>
</
template
>
<!-- MARKDOWN类型 -->
<
template
v-else-if=
"Object.is(contentType, 'MARKDOWN')"
>
MARKDOWN暂未支持
<!--
<app-markdown-editor
:style=
"cssStyle"
mode=
"PREVIEWONLY"
:itemValue=
"value"
></app-markdown-editor>
-->
</
template
>
</div>
</template>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
}
from
'vue-property-decorator'
;
@
Component
({})
export
default
class
AppPreSetText
extends
Vue
{
/**
* 输入值
*
* @type {*}
* @memberof AppPreSetText
*/
@
Prop
()
public
value
!
:
any
;
/**
* 内容类型
*
* @type {string}
* @memberof AppPreSetText
*/
@
Prop
({
default
:
'RAW'
})
public
contentType
!
:
'RAW'
|
'HTML'
|
'IMAGE'
|
'MARKDOWN'
;
/**
* 绘制模式
*
* @type {string}
* @memberof AppPreSetText
*/
@
Prop
({
default
:
'TEXT'
})
public
renderMode
!
:
'TEXT'
|
'HEADING1'
|
'HEADING2'
|
'HEADING3'
|
'HEADING4'
|
'HEADING5'
|
'HEADING6'
|
'PARAGRAPH'
;
/**
* 内容样式
*
* @type {string}
* @memberof AppPreSetText
*/
@
Prop
()
public
contentStyle
?:
string
;
/**
* 预置类型
*
* @type {string}
* @memberof AppPreSetText
*/
@
Prop
({
default
:
'STATIC_TEXT'
})
public
predefinedType
!
:
'FIELD_TEXT_DYNAMIC'
|
'STATIC_LABEL'
|
'STATIC_TEXT'
;
/**
* 图标
*
* @memberof AppPreSetText
*/
@
Prop
()
public
imageClass
?:
string
;
/**
* 动态图片路径
*
* @memberof AppPreSetText
*/
protected
dynaImgUrl
:
string
=
''
;
/**
* 样式
*
* @memberof AppPreSetText
*/
protected
cssStyle
:
string
=
''
;
/**
* 图片路径
*
* @memberof AppPreSetText
*/
get
imgUrl
():
string
{
return
this
.
dynaImgUrl
;
}
/**
* Vue生命周期 --- Created
*
* @memberof AppPreSetText
*/
created
()
{
this
.
handleText
();
this
.
handleDynaImg
();
}
/**
* 处理文本
*
* @memberof AppPreSetText
*/
protected
handleText
()
{
if
(
this
.
predefinedType
===
'STATIC_LABEL'
)
{
this
.
cssStyle
+=
"white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"
;
}
}
/**
* 处理动态图片
*
* @memberof AppPreSetText
*/
protected
handleDynaImg
()
{
// TODO 动态图片
// if (this.value && typeof this.value == 'string') {
// // 默认识别文件对象形式,识别失败则为全路径模式
// try {
// const _files = JSON.parse(this.value);
// const file = _files instanceof Array ? _files[0] : null;
// const url = file && file.id ? `${this.downloadUrl}/${file.id}` : '';
// ImgurlBase64.getInstance()
// .getImgURLOfBase64(url)
// .then((res: any) => {
// this.dynaImgUrl = res;
// });
// } catch (error) {
// this.dynaImgUrl = this.value;
// }
// }
}
}
</
script
>
<
style
lang=
"less"
>
@import './app-preset-text.less';
</
style
>
\ No newline at end of file
src/components/layout-element/text/app-preset-title/app-preset-title.less
0 → 100644
浏览文件 @
d5098e1c
.app-preset-title {
padding: 16px;
font-weight: 600;
font-size: 24px;
}
\ No newline at end of file
src/components/layout-element/text/app-preset-title/app-preset-title.vue
0 → 100644
浏览文件 @
d5098e1c
<
template
>
<h1
class=
"app-preset-title"
>
{{
curValue
}}
</h1>
</
template
>
<
script
lang=
"ts"
>
import
{
Environment
}
from
"@/environments/environment"
;
import
{
Vue
,
Component
}
from
'vue-property-decorator'
;
@
Component
({})
export
default
class
AppPreSetTitle
extends
Vue
{
/**
* 当前值
*
* @memberof AppPreSetTitle
*/
public
curValue
:
string
=
''
;
/**
* 初始化
*
* @memberof AppPreSetTitle
*/
public
created
()
{
this
.
curValue
=
Environment
.
AppTitle
;
}
}
</
script
>
<
style
lang=
'less'
>
@import './app-preset-title.less';
</
style
>
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录