Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7-Res
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7-Res
提交
26fcf093
提交
26fcf093
编写于
9月 21, 2020
作者:
tony001
1
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'dev'
上级
0b0f56b7
e4bb3478
变更
46
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
46 个修改的文件
包含
1325 行增加
和
117 行删除
+1325
-117
avue.min.js
public/assets/js/avue.min.js
+8
-0
index.css
public/assets/styles/index.css
+1
-0
app-register.ts
src/app-register.ts
+13
-2
codelist-service.ts
src/codelist/codelist-service.ts
+1
-1
app-alert-group.vue
src/components/app-alert-group/app-alert-group.vue
+84
-0
app-alert.less
src/components/app-alert/app-alert.less
+13
-0
app-alert.vue
src/components/app-alert/app-alert.vue
+201
-0
app-checkbox-list.vue
src/components/app-checkbox-list/app-checkbox-list.vue
+1
-1
app-data-upload.vue
src/components/app-data-upload/app-data-upload.vue
+1
-1
app-department-personnel.vue
...nts/app-department-personnel/app-department-personnel.vue
+1
-1
app-department-select.vue
...omponents/app-department-select/app-department-select.vue
+1
-1
app-form-druipart.vue
src/components/app-form-druipart/app-form-druipart.vue
+1
-1
app-form-part.less
src/components/app-form-part/app-form-part.less
+3
-0
app-form-part.vue
src/components/app-form-part/app-form-part.vue
+236
-0
app-group-select.vue
src/components/app-group-select/app-group-select.vue
+1
-1
app-message-popover.less
src/components/app-message-popover/app-message-popover.less
+1
-1
app-message-popover.vue
src/components/app-message-popover/app-message-popover.vue
+1
-1
app-org-select.vue
src/components/app-org-select/app-org-select.vue
+1
-1
app-panel-button.vue
src/components/app-panel-button/app-panel-button.vue
+3
-36
app-panel-item.less
src/components/app-panel-item/app-panel-item.less
+0
-5
app-radio-group.vue
src/components/app-radio-group/app-radio-group.vue
+1
-1
app-rawitem.vue
src/components/app-rawitem/app-rawitem.vue
+86
-0
app-transfer.vue
src/components/app-transfer/app-transfer.vue
+1
-1
avue-custom-form.vue
src/components/avue-custom-form/avue-custom-form.vue
+54
-41
codelist.vue
src/components/codelist/codelist.vue
+1
-1
dropdown-list-dynamic.vue
...omponents/dropdown-list-dynamic/dropdown-list-dynamic.vue
+1
-1
dropdown-list-mpicker.vue
...omponents/dropdown-list-mpicker/dropdown-list-mpicker.vue
+1
-1
dropdown-list.vue
src/components/dropdown-list/dropdown-list.vue
+47
-1
data-view9-engine.ts
src/engine/view/data-view9-engine.ts
+2
-2
grid-view-engine.ts
src/engine/view/grid-view-engine.ts
+2
-2
list-view9-engine.ts
src/engine/view/list-view9-engine.ts
+2
-2
md-view-engine.ts
src/engine/view/md-view-engine.ts
+3
-3
wfdyna-exp-grid-view-engine.ts
src/engine/view/wfdyna-exp-grid-view-engine.ts
+2
-2
index.d.ts
src/index.d.ts
+3
-1
message.ts
src/interface/message.ts
+103
-0
view-message-group-service.ts
src/message/view-message-group-service.ts
+87
-0
view-message-service.ts
src/message/view-message-service.ts
+308
-0
form-item.ts
src/model/form-detail/form-item.ts
+9
-0
entity-service.ts
src/service/entity-service.ts
+1
-1
getters.ts
src/store/getters.ts
+17
-1
mutations.ts
src/store/mutations.ts
+13
-1
state.ts
src/store/state.ts
+1
-0
default.less
src/styles/default.less
+1
-0
template.html
src/template.html
+1
-0
auth-guard.ts
src/utils/auth-guard/auth-guard.ts
+5
-1
control-service.ts
src/widgets/control-service.ts
+1
-1
未找到文件。
public/assets/js/avue.min.js
0 → 100644
浏览文件 @
26fcf093
因为 它太大了无法显示 源差异 。您可以改为
查看blob
。
public/assets/styles/index.css
0 → 100644
浏览文件 @
26fcf093
此差异已折叠。
点击以展开。
src/app-register.ts
浏览文件 @
26fcf093
...
...
@@ -13,6 +13,7 @@ import { utilServiceRegister } from '@/utilservice/util-service-register';
import
{
entityServiceRegister
}
from
'@/service/entity-service-register'
;
import
{
counterServiceRegister
}
from
'@/counter/counter-service-register'
;
import
{
codeListRegister
}
from
'@codelist/codelist-register'
;
import
{
messageServiceRegister
}
from
'@/message/message-service-register'
;
import
InputBox
from
'./components/input-box/input-box.vue'
import
AppKeepAlive
from
'./components/app-keep-alive/app-keep-alive.vue'
...
...
@@ -87,11 +88,15 @@ import ActionTimeline from './components/action-timeline/action-timeline.vue'
import
CronEditor
from
'./components/cron-editor/cron-editor.vue'
import
AppMessagePopover
from
'./components/app-message-popover/app-message-popover.vue'
import
AppPanelField
from
'./components/app-panel-field/app-panel-field.vue'
import
AppPanel
Item
from
'./components/app-panel-item/app-panel-item
.vue'
import
AppPanel
Button
from
'./components/app-panel-button/app-panel-button
.vue'
import
AppDepartmentPersonnel
from
'./components/app-department-personnel/app-department-personnel.vue'
import
DiskFileUpload
from
'./components/disk-file-upload/disk-file-upload.vue'
import
AvueCustomForm
from
'./components/avue-custom-form/avue-custom-form.vue'
import
DiskImageUpload
from
'./components/disk-image-upload/disk-image-upload.vue'
import
AppFormPart
from
'./components/app-form-part/app-form-part.vue'
import
AppAlert
from
'./components/app-alert/app-alert.vue'
import
AppAlertGroup
from
'./components/app-alert-group/app-alert-group.vue'
import
AppRawItem
from
'./components/app-rawitem/app-rawitem.vue'
// 全局挂载UI实体服务注册中心
window
[
'uiServiceRegister'
]
=
uiServiceRegister
;
...
...
@@ -105,6 +110,8 @@ window['entityServiceRegister'] = entityServiceRegister;
window
[
'counterServiceRegister'
]
=
counterServiceRegister
;
// 全局挂载代码表服务注册中心
window
[
'codeListRegister'
]
=
codeListRegister
;
// 全局挂载视图消息服务注册中心
window
[
'messageServiceRegister'
]
=
messageServiceRegister
;
export
const
AppComponents
=
{
install
(
v
:
any
,
opt
:
any
)
{
...
...
@@ -118,7 +125,7 @@ export const AppComponents = {
v
.
prototype
.
$viewTool
=
ViewTool
;
v
.
prototype
.
$uiActionTool
=
UIActionTool
;
v
.
component
(
'app-department-personnel'
,
AppDepartmentPersonnel
);
v
.
component
(
'app-panel-
item'
,
AppPanelItem
);
v
.
component
(
'app-panel-
button'
,
AppPanelButton
);
v
.
component
(
'app-panel-field'
,
AppPanelField
);
v
.
component
(
'app-full-scren'
,
AppFullScren
);
v
.
component
(
'app-lock-scren'
,
AppLockScren
);
...
...
@@ -198,5 +205,9 @@ export const AppComponents = {
v
.
component
(
'disk-file-upload'
,
DiskFileUpload
);
v
.
component
(
'avue-custom-form'
,
AvueCustomForm
);
v
.
component
(
'disk-image-upload'
,
DiskImageUpload
);
v
.
component
(
'app-form-part'
,
AppFormPart
);
v
.
component
(
'app-alert'
,
AppAlert
);
v
.
component
(
'app-alert-group'
,
AppAlertGroup
);
v
.
component
(
'app-rawitem'
,
AppRawItem
);
},
};
\ No newline at end of file
src/
service/app
/codelist-service.ts
→
src/
codelist
/codelist-service.ts
浏览文件 @
26fcf093
import
store
from
'@/store'
;
import
EntityService
from
'
..
/entity-service'
;
import
EntityService
from
'
@/service
/entity-service'
;
/**
* 动态代码表服务类
...
...
src/components/app-alert-group/app-alert-group.vue
0 → 100644
浏览文件 @
26fcf093
<
template
>
<div
class=
"app-alert-group"
>
<template
v-for=
"(item, index) in items"
>
<app-alert
:key=
"index"
:tag=
"item.tag"
:position=
"item.position"
/>
</
template
>
</div>
</template>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
}
from
'vue-property-decorator'
;
import
ViewMessageGroupService
from
'@/message/view-message-group-service'
;
@
Component
({})
export
default
class
AppAlertGroup
extends
Vue
{
/**
* 视图消息组服务
*
* @type {any}
* @memberof AppAlertGroup
*/
public
viewMessageGroupService
=
ViewMessageGroupService
.
getInstance
();
/**
* 视图消息组tag
*
* @type {any}
* @memberof AppAlertGroup
*/
@
Prop
()
infoGroup
:
any
;
/**
* 视图消息组显示位置
*
* @type {any}
* @memberof AppAlertGroup
*/
@
Prop
()
position
:
any
;
/**
* 当前位置视图消息集合
*
* @type {any}
* @memberof AppAlertGroup
*/
public
items
:
any
[]
=
[];
/**
* Vue生命周期
*
* @memberof AppAlertGroup
*/
public
created
()
{
if
(
this
.
infoGroup
)
{
this
.
getItems
();
}
}
/**
* 获取当前位置视图消息集合
*
* @memberof AppAlertGroup
*/
public
getItems
()
{
this
.
viewMessageGroupService
.
getViewMessageDetailsByTag
(
this
.
infoGroup
).
then
((
response
:
any
)
=>
{
if
(
response
)
{
response
.
forEach
((
data
:
any
)
=>
{
if
(
this
.
position
&&
Object
.
is
(
this
.
position
,
data
.
position
))
{
this
.
items
.
push
(
data
);
}
if
(
Object
.
is
(
'TOP'
,
this
.
position
)
&&
Object
.
is
(
'POPUP'
,
data
.
position
))
{
this
.
items
.
push
(
data
);
}
})
}
}).
catch
(
error
=>
{
console
.
log
(
error
);
});
}
}
</
script
>
\ No newline at end of file
src/components/app-alert/app-alert.less
0 → 100644
浏览文件 @
26fcf093
.el-message {
.el-message__content {
.title {
padding-bottom: 10px;
}
}
}
.app-alert-group {
.el-alert {
margin: 5px 0px;
}
}
\ No newline at end of file
src/components/app-alert/app-alert.vue
0 → 100644
浏览文件 @
26fcf093
<
template
>
<div
class=
"app-alert"
>
<template
v-if=
"items && items.length > 0"
>
<template
v-for=
"(item, index) in items"
>
<template
v-if=
"item.hasContent && !Object.is('POPUP', item.position)"
>
<el-alert
:key=
"index"
v-show=
"item.showState"
:title=
"item.title"
:type=
"item.type"
:closable=
"item.closable"
@
close=
"alertClose(item)"
>
<template
slot
>
<span
v-html=
"item.content"
></span>
</
template
>
</el-alert>
</template>
</template>
</template>
</div>
</template>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
}
from
'vue-property-decorator'
;
import
ViewMessageService
from
'@/message/view-message-service'
;
@
Component
({})
export
default
class
AppAlert
extends
Vue
{
/**
* 视图消息标识
*
* @type {any}
* @memberof AppAlert
*/
@
Prop
()
tag
:
any
;
/**
* 显示位置
*
* @type {any}
* @memberof AppAlert
*/
@
Prop
()
position
:
any
;
/**
* 视图消息对象
*
* @type {any}
* @memberof AppAlert
*/
public
items
:
any
[]
=
[];
/**
* 视图消息服务
*
* @type {ViewMessageService}
* @memberof AppAlert
*/
public
viewMessageService
=
ViewMessageService
.
getInstance
();
/**
* Vue生命周期
*
* @memberof AppAlert
*/
public
created
()
{
this
.
getData
().
then
((
result
:
any
)
=>
{
if
(
!
this
.
items
)
{
return
;
}
})
}
/**
* 获取视图消息对象
*
* @memberof AppAlert
*/
public
async
getData
()
{
let
response
:
any
=
await
this
.
viewMessageService
.
getViewMessageByTag
(
this
.
tag
,
null
,
null
)
if
(
response
&&
response
.
length
>
0
)
{
response
.
forEach
((
item
:
any
)
=>
{
let
tempData
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
item
));
if
(
!
tempData
.
type
)
{
tempData
.
type
=
"info"
;
}
// 判断是否存在内容
this
.
handleItemHasContent
(
tempData
);
tempData
.
closable
=
tempData
.
isEnableRemove
;
let
flag
=
this
.
handleItemCloseMode
(
tempData
);
this
.
handleItemPosition
(
tempData
,
flag
);
this
.
items
.
push
(
tempData
);
});
}
}
/**
* 处理数据项是否存在内容
*
* @memberof AppAlert
*/
public
handleItemHasContent
(
data
:
any
)
{
data
.
hasContent
=
true
;
if
(
!
data
.
title
&&
!
data
.
content
)
{
data
.
hasContent
=
false
;
}
}
/**
* 处理数据关闭模式
*
* @memberof AppAlert
*/
public
handleItemCloseMode
(
data
:
any
)
{
let
flag
=
true
;
data
.
showState
=
true
;
if
(
data
.
closeMode
||
data
.
closeMode
==
0
)
{
if
(
data
.
closeMode
==
1
)
{
const
id
=
this
.
$store
.
getters
.
getViewMessage
(
data
.
codename
);
if
(
id
)
{
data
.
showState
=
false
;
flag
=
false
;
}
}
if
(
data
.
closeMode
==
0
)
{
data
.
closable
=
false
;
}
}
return
flag
;
}
/**
* 处理数据显示位置
*
* @memberof AppAlert
*/
public
handleItemPosition
(
data
:
any
,
flag
:
boolean
)
{
if
(
data
.
position
)
{
if
(
flag
&&
Object
.
is
(
'POPUP'
,
data
.
position
))
{
const
h
=
this
.
$createElement
;
data
.
showState
=
false
;
if
(
Object
.
is
(
'HTML'
,
data
.
messageType
)
&&
data
.
hasMessageTemp
)
{
setTimeout
(()
=>
{
this
.
$message
({
customClass
:
data
.
codename
+
","
+
data
.
closeMode
,
message
:
h
(
'div'
,{},
[
h
(
'p'
,
data
.
title
),
h
(
'p'
,{
domProps
:{
innerHTML
:
data
.
content
}})
]),
type
:
data
.
type
,
showClose
:
data
.
closable
,
onClose
:
this
.
alertClose
,
})
},
0
)
}
else
{
setTimeout
(()
=>
{
this
.
$message
({
customClass
:
data
.
codename
+
","
+
data
.
closeMode
,
message
:
h
(
'div'
,{},
[
h
(
'p'
,
data
.
title
),
h
(
'p'
,
data
.
content
)
]),
type
:
data
.
type
,
showClose
:
data
.
closable
,
onClose
:
this
.
alertClose
,
})
},
0
)
}
}
}
}
/**
* 视图消息关闭
*
* @memberof AppAlert
*/
public
alertClose
(
data
:
any
)
{
if
(
data
.
customClass
)
{
let
tempArr
:
any
[]
=
data
.
customClass
.
toString
().
split
(
','
);
if
(
tempArr
&&
tempArr
.
length
>
0
)
{
if
(
Object
.
is
(
"1"
,
tempArr
[
1
]))
{
const
args
=
{
tag
:
tempArr
[
0
],
id
:
data
.
customClass
};
this
.
$store
.
commit
(
'addViewMessage'
,
args
);
}
}
}
if
(
data
.
closeMode
&&
data
.
closeMode
==
1
)
{
const
args
=
{
tag
:
data
.
codename
,
id
:
data
.
id
};
this
.
$store
.
commit
(
'addViewMessage'
,
args
);
}
}
}
</
script
>
<
style
lang=
"less"
>
@import './app-alert.less';
</
style
>
\ No newline at end of file
src/components/app-checkbox-list/app-checkbox-list.vue
浏览文件 @
26fcf093
...
...
@@ -8,7 +8,7 @@
<
script
lang=
"ts"
>
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
@
Component
({
})
...
...
src/components/app-data-upload/app-data-upload.vue
浏览文件 @
26fcf093
...
...
@@ -48,7 +48,7 @@
<
script
lang=
"ts"
>
import
XLSX
from
'xlsx'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
import
EntityService
from
'@/service/entity-service'
;
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
Environment
}
from
'@/environments/environment'
;
...
...
src/components/app-department-personnel/app-department-personnel.vue
浏览文件 @
26fcf093
...
...
@@ -13,7 +13,7 @@
import
{
Component
,
Vue
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
'rxjs'
;
import
{
Http
}
from
'../../utils'
;
import
CodeListService
from
'@/service/app/codelist-service'
;
import
CodeListService
from
"@/codelist/codelist-service"
;
@
Component
({})
export
default
class
AppDepartmentPersonnel
extends
Vue
{
...
...
src/components/app-department-select/app-department-select.vue
浏览文件 @
26fcf093
...
...
@@ -6,7 +6,7 @@
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Watch
,
Prop
,
Model
}
from
'vue-property-decorator'
;
import
CodeListService
from
'@/service/app/codelist-service'
;
import
CodeListService
from
"@/codelist/codelist-service"
;
@
Component
({
})
export
default
class
AppDepartmentSelect
extends
Vue
{
...
...
src/components/app-form-druipart/app-form-druipart.vue
浏览文件 @
26fcf093
...
...
@@ -370,7 +370,7 @@ export default class AppFormDRUIPart extends Vue {
}
}
});
this
.
refreshDRUIPart
();
//
this.refreshDRUIPart();
}
/**
...
...
src/components/app-form-part/app-form-part.less
0 → 100644
浏览文件 @
26fcf093
.app-form-part {
display: block;
}
\ No newline at end of file
src/components/app-form-part/app-form-part.vue
0 → 100644
浏览文件 @
26fcf093
<
template
>
<div
class=
'app-form-part'
v-if=
"loadState"
>
<avue-form
:option=
"formOption"
v-model=
"formVal"
></avue-form>
</div>
</
template
>
<
script
lang =
'ts'
>
import
{
Vue
,
Component
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
,
Subscription
}
from
"rxjs"
;
@
Component
({
})
export
default
class
AppFormPart
extends
Vue
{
/**
* 应用名称
*
* @type {string}
* @memberof AppFormPart
*/
@
Prop
()
public
appCodeName
!
:
string
;
/**
* 实体名称
*
* @type {string}
* @memberof AppFormPart
*/
@
Prop
()
public
deCodeName
!
:
string
;
/**
* 表单代码标识
*
* @type {string}
* @memberof AppFormPart
*/
@
Prop
()
public
formCodeName
!
:
string
;
/**
* 表单成员标识
*
* @type {string}
* @memberof AppFormPart
*/
@
Prop
()
public
formDetailCodeName
!
:
string
;
/**
* 当前表单项名称
*
* @type {string}
* @memberof AppFormPart
*/
@
Prop
()
public
name
!
:
string
;
/**
* 导航上下文
*
* @type {string}
* @memberof AppFormPart
*/
@
Prop
()
public
context
!
:
any
;
/**
* 导航参数
*
* @type {string}
* @memberof AppFormPart
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 表单数据
*
* @type {any}
* @memberof AppFormPart
*/
@
Prop
()
public
data
:
any
;
/**
* 表单状态对象
*
* @type {Subject<any>}
* @memberof AppFormPart
*/
@
Prop
()
public
formState
!
:
Subject
<
any
>
;
/**
* 订阅对象
*
* @protected
* @type {(Subscription | undefined)}
* @memberof AppFormPart
*/
public
formStateEvent
:
Subscription
|
undefined
;
/**
* 远程地址
*
* @protected
* @type {(Subscription | undefined)}
* @memberof AppFormPart
*/
public
remoteUrl
:
string
=
`/getFormModel/
${
this
.
appCodeName
}
/
${
this
.
deCodeName
}
/
${
this
.
formCodeName
}
/
${
this
.
formDetailCodeName
}
`
;
/**
* 动态表单配置对象
*
* @type {*}
* @memberof AppFormPart
*/
public
formOption
:
any
;
/**
* 当前动态表单绑定值
*
* @type {*}
* @memberof AppFormPart
*/
public
curFormValue
:
any
=
{};
/**
* 获取动态表单值对象
*
* @type {*}
* @memberof AppFormPart
*/
get
formVal
(){
return
this
.
curFormValue
;
}
/**
* 设置动态表单值对象
*
* @type {*}
* @memberof AppFormPart
*/
set
formVal
(
data
:
any
){
this
.
$emit
(
"change"
,{
name
:
this
.
name
,
value
:
data
});
}
/**
* 加载数据状态
*
* @type {*}
* @memberof AppFormPart
*/
public
loadState
:
boolean
=
false
;
/**
* 初始化组件(vue生命周期)
*
* @type {Subject<any>}
* @memberof AppFormPart
*/
public
created
(){
if
(
this
.
formState
)
{
this
.
formStateEvent
=
this
.
formState
.
subscribe
(({
type
,
data
})
=>
{
if
(
Object
.
is
(
"load"
,
type
)){
this
.
loadRemoteFormModel
().
then
((
result
:
any
)
=>
{
this
.
initStateData
(
result
);
})
}
});
}
}
/**
* 初始化状态数据
*
* @type {Subject<any>}
* @memberof AppFormPart
*/
public
initStateData
(
modelData
:
any
){
this
.
computedFormVal
(
modelData
);
this
.
formOption
=
modelData
;
this
.
loadState
=
true
;
}
/**
* 计算动态表单绑定数据
*
* @type {Subject<any>}
* @memberof AppFormPart
*/
public
computedFormVal
(
modelData
:
any
){
this
.
curFormValue
=
{};
if
(
modelData
&&
modelData
.
column
&&
modelData
.
column
.
length
>
0
){
modelData
.
column
.
forEach
((
element
:
any
)
=>
{
Object
.
assign
(
this
.
curFormValue
,{[
element
.
prop
]:
null
});
});
}
if
(
Object
.
keys
(
this
.
curFormValue
).
length
>
0
){
Object
.
keys
(
this
.
curFormValue
).
forEach
((
item
:
any
)
=>
{
if
(
this
.
data
&&
this
.
data
[
item
]){
this
.
curFormValue
[
item
]
=
this
.
data
[
item
];
}
})
}
}
/**
* 加载动态表单数据模型
*
* @type {Subject<any>}
* @memberof AppFormPart
*/
public
loadRemoteFormModel
(){
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
this
.
$http
.
get
(
this
.
remoteUrl
).
then
((
res
:
any
)
=>
{
if
(
res
.
status
&&
res
.
status
==
200
){
let
result
:
any
=
res
.
data
;
resolve
(
result
);
}
else
{
console
.
warn
(
"加载动态表单模型数据异常"
);
}
}).
catch
((
error
:
any
)
=>
{
console
.
warn
(
"加载动态表单模型数据异常"
);
})
})
}
/**
* 销毁组件(vue生命周期)
*
* @type {Subject<any>}
* @memberof AppFormPart
*/
public
destroy
(){
if
(
this
.
formStateEvent
){
this
.
formStateEvent
.
unsubscribe
();
}
}
}
</
script
>
<
style
lang =
"less"
>
@import './app-form-part.less';
</
style
>
\ No newline at end of file
src/components/app-group-select/app-group-select.vue
浏览文件 @
26fcf093
...
...
@@ -21,7 +21,7 @@
<
script
lang=
"ts"
>
import
{
Component
,
Vue
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
'rxjs'
;
import
CodeListService
from
'@/service/app/codelist-service'
;
import
CodeListService
from
"@/codelist/codelist-service"
;
@
Component
({})
export
default
class
AppGroupSelect
extends
Vue
{
...
...
src/components/app-message-popover/app-message-popover.less
浏览文件 @
26fcf093
.
item
{
.
app-message-popover
{
height: 24px;
line-height: 24px;
padding: 0 5px 0 0;
...
...
src/components/app-message-popover/app-message-popover.vue
浏览文件 @
26fcf093
<
template
>
<!-- 消息弹出框绘制开始 -->
<el-badge
:is-dot=
"showIsDot"
class=
"
item
"
>
<el-badge
:is-dot=
"showIsDot"
class=
"
app-message-popover
"
>
<el-popover
placement=
"bottom"
trigger=
"click"
...
...
src/components/app-org-select/app-org-select.vue
浏览文件 @
26fcf093
...
...
@@ -6,7 +6,7 @@
<
script
lang =
'ts'
>
import
{
Vue
,
Component
,
Prop
,
Watch
}
from
"vue-property-decorator"
;
import
{
Http
}
from
'@/utils'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
import
{
observable
}
from
'rxjs'
;
@
Component
({})
export
default
class
AppOrgSelect
extends
Vue
{
...
...
src/components/app-panel-
item/app-panel-item
.vue
→
src/components/app-panel-
button/app-panel-button
.vue
浏览文件 @
26fcf093
<
template
>
<div
class=
"app-panel-item"
>
<div
v-if=
"Object.is(itemType,'BUTTON')"
>
<div
class=
"app-panel-button"
>
<Button
type=
"primary"
long
@
click=
"onClick"
>
<i
v-if=
"icon"
:class=
"icon"
></i>
<span
v-if=
"showCaption"
:class=
"lableStyle"
>
{{
caption
?
caption
:
''
}}
</span>
</Button>
</div>
<div
v-if=
"Object.is(itemType,'RAWITEM')"
>
<i
v-if=
"icon"
:class=
"icon"
></i>
<span
v-if=
"caption"
class=
"app-panel-item-rawitem"
>
{{
caption
}}
</span>
<div
:class=
"contentStyle"
>
<slot></slot>
</div>
</div>
</div>
</
template
>
...
...
@@ -20,15 +11,7 @@
import
{
Vue
,
Component
,
Prop
,
Watch
}
from
"vue-property-decorator"
;
@
Component
({})
export
default
class
AppPanelItem
extends
Vue
{
/**
* 面板成员类型
*
* @type {string}
* @memberof AppPanelItem
*/
@
Prop
()
public
itemType
!
:
string
;
export
default
class
AppPanelButton
extends
Vue
{
/**
* 图标
...
...
@@ -62,22 +45,6 @@ export default class AppPanelItem extends Vue {
*/
@
Prop
()
public
lableStyle
?:
string
;
/**
* 内容样式
*
* @type {boolean}
* @memberof AppPanelItem
*/
@
Prop
()
public
contentStyle
?:
string
;
/**
* 部件样式
*
* @type {boolean}
* @memberof AppPanelItem
*/
@
Prop
()
public
partsStyle
?:
string
;
/**
* 点击按钮
*
...
...
@@ -91,5 +58,5 @@ export default class AppPanelItem extends Vue {
}
</
script
>
<
style
lang=
'less'
>
@import "./app-panel-item.less";
</
style
>
\ No newline at end of file
src/components/app-panel-item/app-panel-item.less
已删除
100644 → 0
浏览文件 @
0b0f56b7
.app-panel-item{
.app-panel-item-rawitem{
padding-right: 10px;
}
}
\ No newline at end of file
src/components/app-radio-group/app-radio-group.vue
浏览文件 @
26fcf093
...
...
@@ -7,7 +7,7 @@
</
template
>
<
script
lang =
'ts'
>
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
@
Component
({})
export
default
class
AppRadioGroup
extends
Vue
{
...
...
src/components/app-rawitem/app-rawitem.vue
0 → 100644
浏览文件 @
26fcf093
<
template
>
<div>
<span
v-if=
"caption"
>
{{
caption
}}
</span>
<div
:class=
"contentStyle"
:style=
"sizeStyle"
>
<template
v-if=
"Object.is(contentType,'RAW')"
>
{{
rawContent
?
rawContent
:
''
}}
</
template
>
<
template
v-else-if=
"Object.is(contentType,'HTML')"
>
{{
htmlContent
?
htmlContent
:
''
}}
</
template
>
<
template
v-else-if=
"Object.is(contentType,'IMAGE')"
>
<i
:class=
"imageClass ? imageClass : ''"
></i>
</
template
>
</div>
</div>
</template>
<
script
lang=
'ts'
>
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
"vue-property-decorator"
;
@
Component
({})
export
default
class
AppRawItem
extends
Vue
{
/**
* 内容类型
*
* @type {string}
* @memberof AppRawItem
*/
@
Prop
()
public
contentType
!
:
string
;
/**
* 直接内容
*
* @type {strin}
* @memberof AppRawItem
*/
@
Prop
()
public
rawContent
?:
string
;
/**
* html内容
*
* @type {strin}
* @memberof AppRawItem
*/
@
Prop
()
public
htmlContent
?:
string
;
/**
* html内容
*
* @type {strin}
* @memberof AppRawItem
*/
@
Prop
()
public
imageClass
?:
string
;
/**
* 标题
*
* @type {string}
* @memberof AppRawItem
*/
@
Prop
()
public
caption
?:
string
;
/**
* 内容样式
*
* @type {strin}
* @memberof AppRawItem
*/
@
Prop
()
public
contentStyle
!
:
string
;
/**
* 内容宽高
*
* @type {strin}
* @memberof AppRawItem
*/
@
Prop
()
public
sizeStyle
!
:
string
;
}
</
script
>
<
style
lang=
'less'
>
</
style
>
\ No newline at end of file
src/components/app-transfer/app-transfer.vue
浏览文件 @
26fcf093
...
...
@@ -21,7 +21,7 @@
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Watch
,
Prop
,
Model
}
from
"vue-property-decorator"
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
import
{
ElSelect
}
from
"element-ui/types/select"
;
@
Component
({})
...
...
src/components/avue-custom-form/avue-custom-form.vue
浏览文件 @
26fcf093
<
template
>
<div
v-if=
"formOption!=null"
class=
"app-custom-form"
>
<avue-form
:option=
"formOption"
v-model=
"form
value
"
></avue-form>
<avue-form
:option=
"formOption"
v-model=
"form
Val
"
></avue-form>
</div>
</
template
>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
,
Model
,
Emit
,
Watch
,}
from
"vue-property-decorator"
;
import
{
Subject
,
Subscription
}
from
"rxjs"
;
import
{
Vue
,
Component
,
Prop
,
Model
,
Emit
,
Watch
,
}
from
"vue-property-decorator"
;
import
{
Subject
,
Subscription
}
from
"rxjs"
;
@
Component
({})
export
default
class
AvueCustomForm
extends
Vue
{
/**
...
...
@@ -16,8 +23,7 @@ export default class AvueCustomForm extends Vue {
* @type {any}
* @memberof AvueCustomForm
*/
@
Prop
()
public
options
?:
any
;
@
Prop
()
public
options
?:
any
;
/**
* 是否需要转换为string类型
...
...
@@ -25,8 +31,7 @@ export default class AvueCustomForm extends Vue {
* @type {boolean}
* @memberof AvueCustomForm
*/
@
Prop
()
public
isParseString
?:
boolean
;
@
Prop
()
public
isParseString
?:
boolean
;
/**
* 远端地址
...
...
@@ -42,7 +47,7 @@ export default class AvueCustomForm extends Vue {
* @type {any}
* @memberof AvueCustomForm
*/
@
Prop
(
)
public
value
:
any
;
@
Model
(
'change'
)
public
value
:
any
;
/**
* 是否将表单数据通过组件配置带入组件中
...
...
@@ -52,25 +57,6 @@ export default class AvueCustomForm extends Vue {
*/
@
Prop
()
public
isFormData
?:
boolean
;
/**
* 监听事件
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AvueCustomForm
*/
@
Watch
(
"value"
)
public
onValueChange
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
)
{
let
obj
:
any
=
{};
if
(
newVal
&&
newVal
!=
null
)
{
if
(
this
.
isParseString
)
obj
=
JSON
.
parse
(
newVal
);
else
obj
=
newVal
;
}
if
(
obj
)
this
.
formvalue
=
JSON
.
parse
(
JSON
.
stringify
(
obj
));
}
}
/**
* 表单数据
*
...
...
@@ -89,29 +75,46 @@ export default class AvueCustomForm extends Vue {
@
Prop
()
public
formState
!
:
Subject
<
any
>
;
/**
*
视图状态事件
*
获取组件值
*
* @protected
* @type {(Subscription | undefined)}
* @return {any}
* @memberof AvueCustomForm
*/
protected
formStateEvent
:
Subscription
|
undefined
;
get
formVal
()
{
let
obj
:
any
=
{};
if
(
this
.
value
)
{
if
(
this
.
isParseString
)
obj
=
JSON
.
parse
(
this
.
value
);
else
obj
=
this
.
value
;
}
return
obj
;
}
/**
*
当前组件配置设置属性
*
设置组件值
*
* @
type {any}
* @
param value
* @memberof AvueCustomForm
*/
public
formOption
:
any
=
null
;
set
formVal
(
value
:
any
)
{
this
.
setValue
(
value
);
}
/**
* 订阅对象
*
* @protected
* @type {(Subscription | undefined)}
* @memberof AvueCustomForm
*/
protected
formStateEvent
:
Subscription
|
undefined
;
/**
*
avue-form绑定值
*
当前组件配置设置属性
*
* @type {any}
* @memberof AvueCustomForm
*/
public
form
value
:
any
=
{}
;
public
form
Option
:
any
=
null
;
/**
* avue-form默认配置
...
...
@@ -189,10 +192,8 @@ export default class AvueCustomForm extends Vue {
if
(
this
.
url
&&
this
.
options
==
null
)
{
const
get
:
Promise
<
any
>
=
this
.
$http
.
get
(
this
.
url
);
get
.
then
((
response
:
any
)
=>
{
if
(
response
&&
response
.
data
&&
response
.
data
.
view_config
)
{
that
.
formOption
=
JSON
.
parse
(
response
.
data
.
view_config
)[
"formConfig"
];
if
(
response
&&
response
.
data
)
{
that
.
formOption
=
JSON
.
parse
(
response
.
data
);
if
(
this
.
isFormData
)
that
.
getFormData
();
}
});
...
...
@@ -214,7 +215,7 @@ export default class AvueCustomForm extends Vue {
public
getFormData
()
{
let
that
:
any
=
this
;
let
obj
:
any
;
if
(
this
.
value
)
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
value
));
if
(
this
.
formVal
)
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
formVal
));
else
obj
=
{};
let
recursionOption
:
any
=
function
(
group
:
any
)
{
group
.
column
.
forEach
((
gItem
:
any
)
=>
{
...
...
@@ -242,5 +243,17 @@ export default class AvueCustomForm extends Vue {
if
(
this
.
isParseString
)
this
.
$emit
(
"change"
,
JSON
.
stringify
(
value
));
else
this
.
$emit
(
"change"
,
value
);
}
/**
* 销毁组件(vue生命周期)
*
* @type {Subject<any>}
* @memberof AvueCustomForm
*/
public
destroy
(){
if
(
this
.
formStateEvent
){
this
.
formStateEvent
.
unsubscribe
();
}
}
}
</
script
>
\ No newline at end of file
src/components/codelist/codelist.vue
浏览文件 @
26fcf093
...
...
@@ -13,7 +13,7 @@
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
,
Model
,
Watch
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
@
Component
({})
export
default
class
CodeList
extends
Vue
{
...
...
src/components/dropdown-list-dynamic/dropdown-list-dynamic.vue
浏览文件 @
26fcf093
...
...
@@ -14,7 +14,7 @@
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Watch
,
Prop
,
Model
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
@
Component
({
})
...
...
src/components/dropdown-list-mpicker/dropdown-list-mpicker.vue
浏览文件 @
26fcf093
...
...
@@ -24,7 +24,7 @@
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
,
Model
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
import
{
Util
}
from
'@/utils'
;
@
Component
({
})
...
...
src/components/dropdown-list/dropdown-list.vue
浏览文件 @
26fcf093
...
...
@@ -17,8 +17,9 @@
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Watch
,
Prop
,
Model
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
import
{
Util
}
from
'@/utils'
;
import
{
Subject
,
Subscription
}
from
'rxjs'
;
@
Component
({
})
...
...
@@ -84,6 +85,23 @@ export default class DropDownList extends Vue {
*/
@
Prop
()
public
data
?:
any
;
/**
* 表单状态对象
*
* @type {Subject<any>}
* @memberof AppEmbedPicker
*/
@
Prop
()
public
formState
!
:
Subject
<
any
>
/**
* 订阅对象
*
* @protected
* @type {(Subscription | undefined)}
* @memberof SelectType
*/
protected
formStateEvent
:
Subscription
|
undefined
;
/**
* 监听表单数据
*
...
...
@@ -241,6 +259,23 @@ export default class DropDownList extends Vue {
* @memberof DropDownList
*/
public
created
()
{
if
(
this
.
formState
)
{
this
.
formStateEvent
=
this
.
formState
.
subscribe
(({
type
,
data
})
=>
{
if
(
Object
.
is
(
'load'
,
type
))
{
this
.
loadData
();
}
});
}
else
{
this
.
loadData
();
}
}
/**
* 加载数据
*
* @memberof DropDownList
*/
public
loadData
(){
if
(
this
.
tag
&&
Object
.
is
(
this
.
codelistType
,
"STATIC"
)){
const
codelist
=
this
.
$store
.
getters
.
getCodeList
(
this
.
tag
);
if
(
codelist
)
{
...
...
@@ -372,6 +407,17 @@ export default class DropDownList extends Vue {
}
})
}
/**
* vue 生命周期
*
* @memberof DropDownList
*/
public
destroyed
()
{
if
(
this
.
formStateEvent
)
{
this
.
formStateEvent
.
unsubscribe
();
}
}
}
</
script
>
...
...
src/engine/view/data-view9-engine.ts
浏览文件 @
26fcf093
...
...
@@ -17,10 +17,10 @@ export default class DataView9Engine extends DataViewEngine {
*/
public
load
(
opts
:
any
=
{},
isnotify
:
boolean
=
false
):
void
{
if
(
!
this
.
view
.
isformDruipart
){
super
.
load
(
opts
);
super
.
load
(
opts
,
isnotify
);
}
else
{
if
(
isnotify
){
super
.
load
(
opts
);
super
.
load
(
opts
,
isnotify
);
}
}
}
...
...
src/engine/view/grid-view-engine.ts
浏览文件 @
26fcf093
...
...
@@ -45,10 +45,10 @@ export default class GridViewEngine extends MDViewEngine {
*/
public
load
(
opts
:
any
=
{},
isnotify
:
boolean
=
false
):
void
{
if
(
!
this
.
view
.
isformDruipart
){
super
.
load
(
opts
);
super
.
load
(
opts
,
isnotify
);
}
else
{
if
(
isnotify
){
super
.
load
(
opts
);
super
.
load
(
opts
,
isnotify
);
}
}
}
...
...
src/engine/view/list-view9-engine.ts
浏览文件 @
26fcf093
...
...
@@ -17,10 +17,10 @@ export default class ListView9Engine extends ListViewEngine {
*/
public
load
(
opts
:
any
=
{},
isnotify
:
boolean
=
false
):
void
{
if
(
!
this
.
view
.
isformDruipart
){
super
.
load
(
opts
);
super
.
load
(
opts
,
isnotify
);
}
else
{
if
(
isnotify
){
super
.
load
(
opts
);
super
.
load
(
opts
,
isnotify
);
}
}
...
...
src/engine/view/md-view-engine.ts
浏览文件 @
26fcf093
...
...
@@ -78,12 +78,12 @@ export default class MDViewEngine extends ViewEngine {
* @param {*} [opts={}]
* @memberof MDViewEngine
*/
public
load
(
opts
:
any
=
{}):
void
{
public
load
(
opts
:
any
=
{}
,
isnotify
:
boolean
=
false
):
void
{
super
.
load
(
opts
);
if
(
this
.
getSearchForm
())
{
if
(
this
.
getSearchForm
()
&&
(
this
.
isLoadDefault
||
isnotify
)
)
{
const
tag
=
this
.
getSearchForm
().
name
;
this
.
setViewState2
({
tag
:
tag
,
action
:
'loaddraft'
,
viewdata
:
this
.
view
.
viewparams
});
}
else
if
(
this
.
getMDCtrl
()
&&
this
.
isLoadDefault
)
{
}
else
if
(
this
.
getMDCtrl
()
&&
(
this
.
isLoadDefault
||
isnotify
)
)
{
const
tag
=
this
.
getMDCtrl
().
name
;
this
.
setViewState2
({
tag
:
tag
,
action
:
'load'
,
viewdata
:
Object
.
assign
(
this
.
view
.
viewparams
,
opts
)
});
}
else
{
...
...
src/engine/view/wfdyna-exp-grid-view-engine.ts
浏览文件 @
26fcf093
...
...
@@ -29,10 +29,10 @@ export default class WFDynaExpGridViewEngine extends GridViewEngine {
return
;
}
if
(
!
this
.
view
.
isformDruipart
){
super
.
load
(
opts
);
super
.
load
(
opts
,
isnotify
);
}
else
{
if
(
isnotify
){
super
.
load
(
opts
);
super
.
load
(
opts
,
isnotify
);
}
}
})
...
...
src/index.d.ts
浏览文件 @
26fcf093
...
...
@@ -4,6 +4,7 @@ import { UtilServiceRegister } from '@/utilservice/util-service-register';
import
{
EntityServiceRegister
}
from
'@/service/entity-service-register'
;
import
{
CounterServiceRegister
}
from
'@/counter/counter-service-register'
;
import
{
CodeListRegister
}
from
'@codelist/codelist-register'
;
import
{
MessageServiceRegister
}
from
'@/message/message-service-register'
;
declare
global
{
interface
Window
{
uiServiceRegister
:
UIServiceRegister
,
...
...
@@ -11,6 +12,7 @@ declare global {
utilServiceRegister
:
UtilServiceRegister
,
entityServiceRegister
:
EntityServiceRegister
,
counterServiceRegister
:
CounterServiceRegister
,
codeListRegister
:
CodeListRegister
codeListRegister
:
CodeListRegister
,
messageServiceRegister
:
MessageServiceRegister
}
}
\ No newline at end of file
src/interface/message.ts
0 → 100644
浏览文件 @
26fcf093
/**
* 视图消息
*
* @interface ViewMessage
*/
export
interface
ViewMessage
{
/**
* 视图消息标识
*
* @type {string}
* @memberof ViewMessage
*/
id
:
string
;
/**
* 视图消息名称
*
* @type {string}
* @memberof ViewMessage
*/
name
:
string
;
/**
* 视图消息代码名称
*
* @type {string}
* @memberof ViewMessage
*/
codename
:
string
;
/**
* 视图消息标题
*
* @type {string}
* @memberof ViewMessage
*/
title
:
string
;
/**
* 视图消息内容
*
* @type {string}
* @memberof ViewMessage
*/
content
:
string
;
/**
* 视图消息关闭模式
*
* @type {number}
* @memberof ViewMessage
*/
closeMode
:
number
;
/**
* 视图消息位置
*
* @type {string}
* @memberof ViewMessage
*/
position
:
string
;
/**
* 视图消息类型
*
* @type {string}
* @memberof ViewMessage
*/
type
:
string
;
/**
* 视图消息是否支持删除
*
* @type {boolean}
* @memberof ViewMessage
*/
isEnableRemove
:
boolean
;
/**
* 排序值
*
* @type {number}
* @memberof ViewMessage
*/
order
:
number
;
/**
* 动态模式
*
* @type {string}
* @memberof ViewMessage
*/
dynamicMode
:
string
;
/**
* 消息类型
*
* @type {string}
* @memberof ViewMessage
*/
messageType
:
string
;
}
\ No newline at end of file
src/message/view-message-group-service.ts
0 → 100644
浏览文件 @
26fcf093
import
{
Http
}
from
'@/utils/http/http'
;
/**
* 视图消息组
*
* @export
* @class ViewMessageGroupService
*/
export
default
class
ViewMessageGroupService
{
/**
* 单例变量声明
*
* @private
* @static
* @type {ViewMessageGroupService}
* @memberof ViewMessageGroupService
*/
private
static
ViewMessageGroup
:
ViewMessageGroupService
;
/**
* 所有视图消息组对象
*
* @private
* @static
* @type {ViewMessageGroupService}
* @memberof ViewMessageGroupService
*/
private
static
allViewMessageGroup
:
any
;
/**
* 初始化实例
*
* @memberof ViewMessageGroupService
*/
constructor
(
opts
:
any
=
{}){}
/**
* 获取 ViewMessageGroupService 单例对象
*
* @static
* @returns {ViewMessageGroupService}
* @memberof ViewMessageGroupService
*/
public
static
getInstance
():
ViewMessageGroupService
{
if
(
!
ViewMessageGroupService
.
ViewMessageGroup
)
{
ViewMessageGroupService
.
ViewMessageGroup
=
new
ViewMessageGroupService
();
}
return
this
.
ViewMessageGroup
;
}
/**
* 获取视图消息组成员集合
*
* @returns {Promise<any></any>}
* @memberof ViewMessageGroupService
*/
public
async
getViewMessageDetailsByTag
(
tag
:
string
):
Promise
<
any
>
{
if
(
ViewMessageGroupService
.
allViewMessageGroup
){
return
ViewMessageGroupService
.
allViewMessageGroup
[
tag
]?
ViewMessageGroupService
.
allViewMessageGroup
[
tag
]:[];
}
else
{
let
result
:
any
=
await
this
.
loadAllViewMessageGroup
();
return
result
[
tag
]?
result
[
tag
]:[];
}
}
/**
* 加载应用所有视图消息组集合
*
* @returns {Promise<any></any>}
* @memberof ViewMessageGroupService
*/
public
loadAllViewMessageGroup
():
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
Http
.
getInstance
().
get
(
'./assets/json/view-message-group.json'
).
then
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
===
200
&&
response
.
data
)
{
ViewMessageGroupService
.
allViewMessageGroup
=
response
.
data
;
resolve
(
response
.
data
);
}
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
error
);
});
})
}
}
\ No newline at end of file
src/message/view-message-service.ts
0 → 100644
浏览文件 @
26fcf093
import
{
ViewMessage
}
from
'@/interface/message'
;
import
EntityService
from
'@/service/entity-service'
;
/**
* 视图消息
*
* @export
* @class ViewMessage
*/
export
default
class
ViewMessageService
{
/**
* 单例变量声明
*
* @private
* @static
* @type {ViewMessageService}
* @memberof ViewMessageService
*/
private
static
ViewMessage
:
ViewMessageService
;
/**
* 实体数据服务对象
*
* @protected
* @type {EntityService}
* @memberof ViewMessageService
*/
protected
entityService
:
EntityService
=
new
EntityService
();
/**
* 视图消息标识
*
* @type {string}
* @memberof ViewMessageService
*/
public
id
:
string
=
""
;
/**
* 视图消息名称
*
* @type {string}
* @memberof ViewMessageService
*/
public
name
:
string
=
""
;
/**
* 视图消息代码名称
*
* @type {string}
* @memberof ViewMessageService
*/
public
codename
:
string
=
""
;
/**
* 视图消息标题
*
* @type {string}
* @memberof ViewMessageService
*/
public
title
:
string
=
""
;
/**
* 视图消息内容
*
* @type {string}
* @memberof ViewMessageService
*/
public
content
:
string
=
""
;
/**
* 视图消息关闭模式(0:无关闭,1:默认关闭,2:本次关闭)
*
* @type {number}
* @memberof ViewMessageService
*/
public
closeMode
:
number
=
0
;
/**
* 视图消息位置
*
* @type {string}
* @memberof ViewMessageService
*/
public
position
:
string
=
""
;
/**
* 视图消息类型
*
* @type {string}
* @memberof ViewMessageService
*/
public
type
:
string
=
"info"
;
/**
* 视图消息是否支持删除
*
* @type {boolean}
* @memberof ViewMessageService
*/
public
isEnableRemove
:
boolean
=
true
;
/**
* 视图消息排序值
*
* @type {boolean}
* @memberof ViewMessageService
*/
public
order
:
number
=
1
;
/**
* 动态模式
*
* @type {string}
* @memberof ViewMessageService
*/
public
dynamicMode
:
string
=
"STATIC"
;
/**
* 消息类型(可选值:TEXT/HTML)
*
* @type {string}
* @memberof ViewMessageService
*/
public
messageType
:
string
=
"TEXT"
;
/**
* 是否含有消息模板
*
* @type {boolean}
* @memberof ViewMessageService
*/
public
hasMessageTemp
:
boolean
=
false
;
/**
* 视图消息缓存(加载中)
*
* @type {Map<string,any>}
* @memberof ViewMessageService
*/
public
static
messageCache
:
Map
<
string
,
any
>
=
new
Map
();
/**
* 视图消息缓存(已完成)
*
* @type {Map<string,any>}
* @memberof ViewMessageService
*/
public
static
messageCached
:
Map
<
string
,
any
>
=
new
Map
();
/**
* 初始化实例
*
* @memberof ViewMessageService
*/
constructor
(
opts
:
any
=
{})
{
this
.
initBasicParam
();
}
/**
* 获取 ViewMessageService 单例对象
*
* @static
* @returns {ViewMessageService}
* @memberof ViewMessageService
*/
public
static
getInstance
():
ViewMessageService
{
if
(
!
ViewMessageService
.
ViewMessage
)
{
ViewMessageService
.
ViewMessage
=
new
ViewMessageService
();
}
return
this
.
ViewMessage
;
}
/**
* 初始化基础参数
*
* @memberof ViewMessageService
*/
public
initBasicParam
(){}
/**
* 获取视图消息服务
*
* @protected
* @param {string} name 视图消息codename
* @returns {Promise<any>}
* @memberof ViewMessageService
*/
public
getService
(
name
:
string
):
Promise
<
any
>
{
return
(
window
as
any
)[
'messageServiceRegister'
].
getService
(
name
);
}
/**
* 通过tag获取视图消息
*
* @param {tag:string} 视图消息标识
* @param {context:any} 导航上下文
* @param {viewparam:any} 导航参数
* @memberof ViewMessageService
*/
public
async
getViewMessageByTag
(
tag
:
string
,
context
:
any
=
{},
viewparam
:
any
=
{}){
let
messageService
:
any
=
await
this
.
getService
(
tag
);
if
(
messageService
.
dynamicMode
&&
Object
.
is
(
messageService
.
dynamicMode
,
"STATIC"
)){
return
messageService
.
getStaticViewMessage
();
}
else
{
return
messageService
.
getDynamicViewMessage
(
tag
,
messageService
,
context
,
viewparam
);
}
}
/**
* 转化消息模板标题和内容
*
* @memberof ViewMessageService
*/
public
translateMessageTemp
(
target
:
any
,
item
?:
any
){
}
/**
* 获取动态模式(静态)类型视图消息
*
* @memberof ViewMessageService
*/
public
getStaticViewMessage
():
Array
<
ViewMessage
>
{
let
returnViewMessage
:
ViewMessage
=
{
id
:
this
.
id
,
name
:
this
.
name
,
codename
:
this
.
codename
,
title
:
this
.
title
,
content
:
this
.
content
,
closeMode
:
this
.
closeMode
,
position
:
this
.
position
,
type
:
this
.
type
,
isEnableRemove
:
this
.
isEnableRemove
,
order
:
this
.
order
,
dynamicMode
:
this
.
dynamicMode
,
messageType
:
this
.
messageType
};
this
.
translateMessageTemp
(
returnViewMessage
);
return
[
returnViewMessage
];
}
/**
* 获取动态模式(实体数据集合)类型视图消息
*
* @param {any} tag 视图消息标识
* @param {any} messageService 消息服务
* @param {string} context
* @returns {Promise<any[]>}
* @memberof ViewMessageService
*/
public
getDynamicViewMessage
(
tag
:
string
,
messageService
:
any
,
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
[]
>
{
if
(
context
&&
context
.
srfsessionid
){
delete
context
.
srfsessionid
;
}
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
let
isEnableCache
:
boolean
=
messageService
.
isEnableCache
;
let
cacheTimeout
:
any
=
messageService
.
cacheTimeout
;
// 启用缓存
if
(
isEnableCache
){
const
callback
:
Function
=
(
context
:
any
=
{},
data
:
any
=
{},
tag
:
string
,
promise
:
Promise
<
any
>
)
=>
{
promise
.
then
((
result
:
any
)
=>
{
if
(
result
.
length
>
0
){
ViewMessageService
.
messageCached
.
set
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
,{
items
:
result
});
ViewMessageService
.
messageCache
.
delete
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
);
return
resolve
(
result
);
}
else
{
return
resolve
([]);
}
}).
catch
((
result
:
any
)
=>
{
return
reject
(
result
);
})
}
// 加载完成,从本地缓存获取
if
(
ViewMessageService
.
messageCached
.
get
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
)){
let
items
:
any
=
ViewMessageService
.
messageCached
.
get
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
).
items
;
if
(
items
.
length
>
0
){
if
(
new
Date
().
getTime
()
<=
messageService
.
getExpirationTime
()){
return
resolve
(
items
);
}
}
}
if
(
messageService
)
{
// 加载中,UI又需要数据,解决连续加载同一代码表问题
if
(
ViewMessageService
.
messageCache
.
get
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
)){
callback
(
context
,
data
,
tag
,
ViewMessageService
.
messageCache
.
get
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
));
}
else
{
let
result
:
Promise
<
any
>
=
messageService
.
getItems
(
context
,
data
,
isloading
);
ViewMessageService
.
messageCache
.
set
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
,
result
);
messageService
.
setExpirationTime
(
new
Date
().
getTime
()
+
cacheTimeout
);
callback
(
context
,
data
,
tag
,
result
);
}
}
}
else
{
if
(
messageService
)
{
messageService
.
getItems
(
context
,
data
,
isloading
).
then
((
result
:
any
)
=>
{
resolve
(
result
);
}).
catch
((
error
:
any
)
=>
{
Promise
.
reject
([]);
})
}
else
{
return
Promise
.
reject
([]);
}
}
})
}
}
\ No newline at end of file
src/model/form-detail/form-item.ts
浏览文件 @
26fcf093
...
...
@@ -38,6 +38,14 @@ export class FormItemModel extends FormDetailModel {
*/
public
enableCond
:
number
|
0
|
1
|
2
|
3
=
3
;
/**
* 是否必填
*
* @type {boolean}
* @memberof FormItemModel
*/
public
required
:
boolean
=
false
;
/**
* Creates an instance of FormItemModel.
* FormItemModel 实例
...
...
@@ -49,6 +57,7 @@ export class FormItemModel extends FormDetailModel {
super
(
opts
);
this
.
disabled
=
opts
.
disabled
?
true
:
false
;
this
.
enableCond
=
opts
.
enableCond
;
this
.
required
=
opts
.
required
;
}
/**
...
...
src/service/entity-service.ts
浏览文件 @
26fcf093
import
{
Http
}
from
'@/utils'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
/**
* 实体服务基类
...
...
src/store/getters.ts
浏览文件 @
26fcf093
...
...
@@ -47,7 +47,13 @@ export const getLocalData = (state: any) => () => {
* @param state
*/
export
const
getAppData
=
(
state
:
any
)
=>
()
=>
{
return
state
.
appdata
;
let
result
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
state
.
appdata
));
if
(
state
.
localdata
&&
Object
.
keys
(
state
.
localdata
).
length
>
0
){
let
copyContext
:
any
=
result
.
context
?
result
.
context
:{};
Object
.
assign
(
copyContext
,
state
.
localdata
);
result
.
context
=
copyContext
;
}
return
result
;
}
/**
...
...
@@ -104,4 +110,14 @@ export const getOrgData = (state: any) => (srfkey: string) => {
export
const
getDepData
=
(
state
:
any
)
=>
(
srfkey
:
string
)
=>
{
let
depData
=
state
.
depDataMap
[
srfkey
];
return
depData
;
}
/**
* 获取视图信息
*
* @param state
*/
export
const
getViewMessage
=
(
state
:
any
)
=>
(
tag
:
string
)
=>
{
let
id
=
state
.
viewMessage
[
tag
];
return
id
;
}
\ No newline at end of file
src/store/mutations.ts
浏览文件 @
26fcf093
...
...
@@ -29,8 +29,8 @@ export const addCodeLists = (state: any, codelists: any) => {
* @param localdata
*/
export
const
addLocalData
=
(
state
:
any
,
localdata
:
any
=
{})
=>
{
state
.
localdata
=
{};
Object
.
assign
(
state
.
localdata
,
localdata
);
localStorage
.
setItem
(
'localdata'
,
JSON
.
stringify
(
state
.
localdata
));
}
/**
...
...
@@ -291,4 +291,16 @@ export const addDepData = (state: any, args: {srfkey: string,depData: any}) => {
if
(
args
&&
args
.
srfkey
&&
args
.
depData
){
state
.
depDataMap
[
args
.
srfkey
]
=
JSON
.
parse
(
JSON
.
stringify
(
args
.
depData
));
}
}
/**
* 添加视图信息
*
* @param state
* @param args
*/
export
const
addViewMessage
=
(
state
:
any
,
args
:
{
tag
:
string
,
id
:
any
})
=>
{
if
(
args
&&
args
.
tag
&&
args
.
id
)
{
state
.
viewMessage
[
args
.
tag
]
=
args
.
id
;
}
}
\ No newline at end of file
src/store/state.ts
浏览文件 @
26fcf093
...
...
@@ -16,4 +16,5 @@ export const rootstate: any = {
viewSplit
:
{},
orgDataMap
:{},
depDataMap
:{},
viewMessage
:
{},
}
\ No newline at end of file
src/styles/default.less
浏览文件 @
26fcf093
@import '../../node_modules/font-awesome/less/font-awesome.less';
@import'/assets/styles/index.css';
@import '../theme/blue.theme.less';
@import '../theme/dark-blue.theme.less';
@import '../theme/default.theme.less';
...
...
src/template.html
浏览文件 @
26fcf093
...
...
@@ -13,5 +13,6 @@
</noscript>
<div
id=
"app"
></div>
<script
src=
"./environments/environment.js"
></script>
<script
src=
"../assets/js/avue.min.js"
></script>
</body>
</html>
src/utils/auth-guard/auth-guard.ts
浏览文件 @
26fcf093
...
...
@@ -41,10 +41,11 @@ export class AuthGuard {
private
constructor
()
{
}
/**
*
post请求
*
获取应用数据
*
* @param {string} url url 请求路径
* @param {*} [params={}] 请求参数
* @param {*} [router] 路由对象
* @returns {Promise<any>} 请求相响应对象
* @memberof AuthGuard
*/
...
...
@@ -65,6 +66,9 @@ export class AuthGuard {
}
data
=
JSON
.
parse
(
JSON
.
stringify
(
localAppData
));
}
if
(
localStorage
.
getItem
(
'localdata'
)){
router
.
app
.
$store
.
commit
(
'addLocalData'
,
JSON
.
parse
(
localStorage
.
getItem
(
'localdata'
)
as
string
));
}
router
.
app
.
$store
.
commit
(
'addAppData'
,
data
);
// 提交统一资源数据
router
.
app
.
$store
.
dispatch
(
'authresource/commitAuthData'
,
data
);
...
...
src/widgets/control-service.ts
浏览文件 @
26fcf093
import
{
Store
}
from
'vuex'
;
import
{
Util
}
from
'@/utils/util/util'
;
import
CodeListService
from
"@
service/app
/codelist-service"
;
import
CodeListService
from
"@
/codelist
/codelist-service"
;
/**
* 部件服务基类
...
...
tony001
@tony001
被提及 commit
2f857f0a
·
9月 21, 2020
被提及 commit
2f857f0a
被提及 commit 2f857f0ad48c57319581d421513989747ada8325
切换提交列表
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录