Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7-Res
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7-Res
提交
1296000b
提交
1296000b
编写于
8月 07, 2020
作者:
Neuromancer255
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改数据选择编辑器(请求数据)
上级
60d36c5e
变更
2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
733 行增加
和
97 行删除
+733
-97
app-upicker.less
src/components/app-upicker/app-upicker.less
+2
-2
app-upicker.vue
src/components/app-upicker/app-upicker.vue
+731
-95
未找到文件。
src/components/app-upicker/app-upicker.less
浏览文件 @
1296000b
.app-picker {
.app-
u
picker {
width: 100%;
width: 100%;
.el-select {
.el-select {
.el-input__suffix {
.el-input__suffix {
right: 20px
;
display: none
;
}
}
}
}
.text-value {
.text-value {
...
...
src/components/app-upicker/app-upicker.vue
浏览文件 @
1296000b
<
template
>
<
template
>
<el-select
style=
"width: 100%;"
size=
'small'
@
change=
"onSelect"
v-model=
"value"
:disabled=
"disabled"
@
visible-change=
"onSelectOpen"
>
<div
v-if=
"Object.is(editortype, 'dropdown')"
class=
'app-upicker'
>
<el-option
v-for=
"(item, index) in items"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
></el-option>
<el-select
ref=
"appPicker"
:value=
"refvalue"
size=
'small'
filterable
</el-select>
@
change=
"onSelect"
:disabled=
"disabled"
style=
'width:100%;'
clearable
@
clear=
"onClear"
@
visible-change=
"onSelectOpen"
>
<template
v-if=
"items"
>
<el-option
v-for=
"(_item,index) in items"
:key=
"index"
:value=
"_item.value"
:label=
"_item.label"
></el-option>
</
template
>
</el-select>
<span
style=
'position: absolute;right: 5px;color: #c0c4cc;top:0;font-size: 13px;'
>
<i
v-show=
"open"
class=
'el-icon-arrow-up'
@
click=
"closeDropdown"
></i>
<i
v-show=
"!open"
class=
'el-icon-arrow-down'
@
click=
"openDropdown"
></i>
</span>
</div>
</template>
</template>
<
script
lang
=
"ts"
>
<
script
lang
=
'ts'
>
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
"vue-property-decorator"
;
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
"rxjs"
;
import
{
Subject
}
from
'rxjs'
;
import
{
AppModal
}
from
"@/utils"
;
import
{
AppModal
}
from
'@/utils'
;
@
Component
({})
@
Component
({
})
export
default
class
AppPicker
extends
Vue
{
export
default
class
AppPicker
extends
Vue
{
/**
/**
* 请求到的数据
* @type {any[]}
* @memberof AppPicker
*/
public
itemList
:
any
[]
=
[]
/**
* 列表项请求路径
*
* @type {string}
* @memberof AppUpicker
*/
public
url
:
string
=
''
;
/**
* 请求参数和请求数据的映射关系
*
* @type {*}
* @memberof AppUpicker
*/
public
interaction
:
any
=
{};
/**
* 编辑器参数
*
* @type {*}
* @memberof AppUpicker
*/
@
Prop
()
public
itemParams
?:
any
;
/**
* 视图上下文
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* AC参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@
Prop
({
default
:
()
=>
{}})
public
acParams
?:
any
;
/**
* 表单服务
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@
Prop
()
public
service
?:
any
;
/**
* 应用实体主信息属性名称
*
* @type {string}
* @memberof AppAutocomplete
*/
@
Prop
({
default
:
'srfmajortext'
})
public
deMajorField
!
:
string
;
/**
* 应用实体主键属性名称
*
* @type {string}
* @memberof AppAutocomplete
*/
@
Prop
({
default
:
'srfkey'
})
public
deKeyField
!
:
string
;
/**
* 表单数据
* 表单数据
*
*
* @type {*}
* @type {*}
* @memberof AppPicker
* @memberof AppPicker
*/
*/
@
Prop
()
public
data
!
:
any
;
@
Prop
()
public
data
!
:
any
;
/**
/**
* 属性项名称
* 属性项名称
*
*
* @type {string}
* @type {string}
* @memberof AppPicker
* @memberof AppPicker
*/
*/
@
Prop
()
public
name
!
:
string
;
@
Prop
()
public
name
!
:
string
;
/**
/**
* 视图上下文
* 是否启用
*
* @type {boolean}
* @memberof AppPicker
*/
@
Prop
()
public
disabled
?:
boolean
;
/**
* 是否显示按钮
*
* @type {boolean}
* @memberof AppPicker
*/
@
Prop
({
default
:
true
})
public
showButton
?:
boolean
;
/**
* 类型
*
* @type {string}
* @memberof AppPicker
*/
@
Prop
()
public
editortype
?:
string
;
/**
* 视图参数(如:视图name,title,width,height)
*
*
* @type {*}
* @type {*}
* @memberof App
FormDRUIPart
* @memberof App
Picker
*/
*/
@
Prop
()
public
context
!
:
any
;
@
Prop
()
public
pickupView
?:
any
;
/**
* 编辑器禁用
*
* @type {boolean}
* @memberof AppUpicker
*/
@
Prop
()
disabled
?:
boolean
;
/**
/**
*
视图
参数
*
数据链接
参数
*
*
* @type {*}
* @type {*}
* @memberof
SelectFormBase
* @memberof
AppPicker
*/
*/
@
Prop
()
public
viewparams
:
any
;
@
Prop
()
public
linkview
?
:
any
;
/**
/**
* 请求参数和请求数据的映射关系
* 局部上下文导航参数
*
*
* @type {*
}
* @type {any
}
* @memberof AppUp
icker
* @memberof AppP
icker
*/
*/
public
interaction
:
any
=
{}
;
@
Prop
()
public
localContext
!
:
any
;
/**
/**
* 当前表单项绑定的值
* 局部导航参数
*
*
* @type {string
}
* @type {any
}
* @memberof AppUp
icker
* @memberof AppP
icker
*/
*/
public
value
:
string
=
""
;
@
Prop
()
public
localParam
!
:
any
;
/**
/**
* 编辑器参数
* 值项名称
*
*
* @type {*
}
* @type {string
}
* @memberof AppUp
icker
* @memberof AppP
icker
*/
*/
@
Prop
()
public
itemParams
?:
any
;
@
Prop
()
public
valueitem
!
:
string
;
/**
/**
* 编辑器参数
* 排序
*
*
* @type {string}
* @type {string}
* @memberof AppUp
icker
* @memberof AppP
icker
*/
*/
@
Prop
()
public
valueItem
?:
string
;
@
Prop
()
public
sort
?:
string
;
/**
/**
* 列表项请求路径
* 行为组
*
*
* @type {string
}
* @type {Array<any>
}
* @memberof AppUp
icker
* @memberof AppP
icker
*/
*/
public
url
:
string
=
''
;
@
Prop
()
public
actionDetails
?:
Array
<
any
>
;
/**
* 下拉数组
* @type {any[]}
* @memberof AppPicker
*/
public
items
:
any
[]
=
[];
/**
/**
* 请求到的数据
* 值
* @type {any[]}
*
* @memberof AppPicker
* @type {*}
*/
* @memberof AppPicker
public
itemList
:
any
[]
=
[{
a
:
1
,
b
:
"zhangsan"
},{
a
:
2
,
b
:
"lisi"
},{
a
:
3
,
b
:
"wangwu"
}]
*/
@
Model
(
'change'
)
public
value
?:
any
;
/**
* 当前值
*
* @type {string}
* @memberof AppPicker
*/
public
curvalue
:
string
=
''
;
/**
* 下拉数组
* @type {any[]}
* @memberof AppPicker
*/
public
items
:
any
[]
=
[];
/**
* 下拉图标指向状态管理
* @type {boolean}
* @memberof AppPicker
*/
public
open
:
boolean
=
false
;
/**
* 输入状态
*
* @type {boolean}
* @memberof AppAutocomplete
*/
public
inputState
:
boolean
=
false
;
/**
* 当前选择的值
*
* @type {string}
* @memberof AppPicker
*/
public
selectValue
=
this
.
value
;
/**
* 获取关联数据项值
*
* @readonly
* @memberof AppPicker
*/
get
refvalue
()
{
if
(
this
.
valueitem
&&
this
.
data
)
{
return
this
.
data
[
this
.
valueitem
];
}
return
this
.
curvalue
;
}
/**
* 值变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AppPicker
*/
@
Watch
(
'value'
,{
immediate
:
true
})
public
onValueChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
curvalue
=
newVal
;
if
(
Object
.
is
(
this
.
editortype
,
'dropdown'
)
&&
this
.
valueitem
)
{
const
value
=
this
.
data
[
this
.
valueitem
];
const
index
=
this
.
items
.
findIndex
((
item
:
any
)
=>
Object
.
is
(
item
.
value
,
value
));
if
(
index
!==
-
1
)
{
return
;
}
this
.
items
=
[];
if
(
value
)
{
this
.
items
.
push
({
text
:
newVal
,
value
:
value
});
}
this
.
fectchItemList
(
this
.
url
);
}
}
/**
* vue 生命周期
*
* @memberof AppPicker
*/
public
created
()
{
if
(
!
Object
.
is
(
this
.
editortype
,
'pickup-no-ac'
)
&&
!
Object
.
is
(
this
.
editortype
,
'dropdown'
)){
this
.
curvalue
=
this
.
value
;
}
}
/**
/**
* vue 生命周期
* vue 生命周期
*
*
* @memberof AppPicker
* @memberof AppPicker
*/
*/
public
mounted
()
{
public
mounted
()
{
// 解析编辑器参数
// 解析编辑器参数
this
.
analysis
(
this
.
itemParams
);
this
.
analysis
(
this
.
itemParams
);
// 请求下拉数据
// 请求下拉数据
this
.
fectchItemList
(
this
.
url
);
this
.
fectchItemList
(
this
.
url
);
}
}
/**
/**
*
下拉重新加载数据
*
组件销毁
*
*
* @memberof AppPicker
* @memberof AppPicker
*/
*/
public
onSelectOpen
()
{
public
destroyed
():
void
{
this
.
fectchItemList
(
this
.
url
);
}
}
/**
/**
* 解析编辑器参数
* 解析编辑器参数
* @param {*} itemparams
* @param {*} itemparams
...
@@ -183,26 +369,476 @@ export default class AppPicker extends Vue {
...
@@ -183,26 +369,476 @@ export default class AppPicker extends Vue {
});
});
});
});
}
}
public
onSelect
(
val
:
string
)
{
/**
let
index
=
this
.
items
.
findIndex
((
item
)
=>
Object
.
is
(
item
.
value
,
val
));
* 下拉切换回调
if
(
index
>=
0
)
{
* @param flag
this
.
onACSelect
(
this
.
items
[
index
]);
*/
public
onSelectOpen
(
flag
:
boolean
):
void
{
this
.
open
=
flag
;
if
(
this
.
open
)
{
this
.
fectchItemList
(
this
.
url
);
}
}
}
}
/**
/**
* 执行搜索数据
* @param query
* @param callback
*/
public
onSearch
(
query
:
any
,
callback
:
any
,
other
:
boolean
):
void
{
// 公共参数处理
let
data
:
any
=
{};
const
bcancel
:
boolean
=
this
.
handlePublicParams
(
data
);
if
(
!
bcancel
)
{
return
;
}
// 处理搜索参数
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
query
=
!
query
?
''
:
query
;
if
(
!
this
.
inputState
&&
other
&&
Object
.
is
(
query
,
this
.
value
))
{
query
=
''
;
}
this
.
inputState
=
false
;
if
(
this
.
sort
&&
!
Object
.
is
(
this
.
sort
,
""
))
{
Object
.
assign
(
_param
,
{
sort
:
this
.
sort
});
}
Object
.
assign
(
_param
,
{
query
:
query
,
size
:
1000
});
// 错误信息国际化
let
error
:
string
=
(
this
.
$t
(
'components.appPicker.error'
)
as
any
);
let
miss
:
string
=
(
this
.
$t
(
'components.appPicker.miss'
)
as
any
);
let
requestException
:
string
=
(
this
.
$t
(
'components.appPicker.requestException'
)
as
any
);
if
(
!
this
.
service
){
this
.
$Notice
.
error
({
title
:
error
,
desc
:
miss
+
'service'
});
}
else
if
(
!
this
.
acParams
.
serviceName
)
{
this
.
$Notice
.
error
({
title
:
error
,
desc
:
miss
+
'serviceName'
});
}
else
if
(
!
this
.
acParams
.
interfaceName
)
{
this
.
$Notice
.
error
({
title
:
error
,
desc
:
miss
+
'interfaceName'
});
}
else
{
this
.
service
.
getItems
(
this
.
acParams
.
serviceName
,
this
.
acParams
.
interfaceName
,
_context
,
_param
).
then
((
response
:
any
)
=>
{
if
(
!
response
)
{
this
.
$Notice
.
error
({
title
:
error
,
desc
:
requestException
});
}
else
{
this
.
items
=
[...
response
];
}
// if(this.acParams && this.linkview){
// this.items.push({ isNew :true });
// }
if
(
this
.
acParams
&&
this
.
actionDetails
&&
this
.
actionDetails
.
length
>
0
){
this
.
items
=
[...
this
.
items
,...
this
.
actionDetails
];
}
if
(
callback
)
{
callback
(
this
.
items
);
}
}).
catch
((
error
:
any
)
=>
{
if
(
callback
)
{
callback
([]);
}
});
}
}
/**
* 选中数据回调
* 选中数据回调
* @param item
* @param item
*/
*/
public
onACSelect
(
item
:
any
):
void
{
public
onACSelect
(
item
:
any
):
void
{
if
(
this
.
name
){
this
.
selectValue
=
item
.
value
;
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
item
.
value
});
if
(
this
.
valueitem
)
{
}
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueitem
,
value
:
item
.
value
});
if
(
this
.
valueItem
){
}
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueItem
,
value
:
item
.
value
});
if
(
this
.
name
)
{
}
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
item
.
value
});
}
}
/**
* 下拉选中
*
* @param {string} val
* @memberof AppPicker
*/
public
onSelect
(
val
:
string
)
{
let
index
=
this
.
items
.
findIndex
((
item
)
=>
Object
.
is
(
item
.
value
,
val
));
if
(
index
>=
0
)
{
this
.
onACSelect
(
this
.
items
[
index
]);
}
}
/**
* 失去焦点事件
* @param e
*/
public
onBlur
(
e
:
any
):
void
{
this
.
curvalue
=
this
.
value
;
}
/**
* 清除
*/
public
onClear
(
$event
:
any
):
void
{
if
(
this
.
valueitem
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueitem
,
value
:
''
});
}
if
(
this
.
name
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
''
});
}
this
.
$forceUpdate
();
}
/**
* 打开视图
*/
public
openView
(
$event
:
any
):
void
{
if
(
this
.
disabled
)
{
return
;
}
// 公共参数处理
let
data
:
any
=
{};
const
bcancel
:
boolean
=
this
.
handlePublicParams
(
data
);
if
(
!
bcancel
)
{
return
;
}
// 参数处理
const
view
=
{
...
this
.
pickupView
};
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
_param
.
selectedData
=
[{
srfkey
:
this
.
data
[
this
.
valueitem
],
srfmajortext
:
this
.
curvalue
}];
// 判断打开方式
if
(
view
.
placement
&&
!
Object
.
is
(
view
.
placement
,
''
))
{
if
(
Object
.
is
(
view
.
placement
,
'POPOVER'
))
{
this
.
openPopOver
(
$event
,
view
,
_context
,
_param
);
}
else
{
this
.
openDrawer
(
view
,
_context
,
_param
);
}
}
else
{
this
.
openPopupModal
(
view
,
_context
,
_param
);
}
}
}
/**
* 路由模式打开视图
*
* @private
* @param {string} viewpath
* @param {*} data
* @memberof AppPicker
*/
private
openIndexViewTab
(
view
:
any
,
context
:
any
,
param
:
any
):
void
{
const
routePath
=
this
.
$viewTool
.
buildUpRoutePath
(
this
.
$route
,
this
.
context
,
view
.
deResParameters
,
view
.
parameters
,
[
context
]
,
param
);
this
.
$router
.
push
(
routePath
);
}
/**
* 模态模式打开视图
*
* @private
* @param {*} view
* @param {*} data
* @memberof AppPicker
*/
private
openPopupModal
(
view
:
any
,
context
:
any
,
param
:
any
):
void
{
let
container
:
Subject
<
any
>
=
this
.
$appmodal
.
openModal
(
view
,
context
,
param
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
this
.
openViewClose
(
result
);
});
}
/**
* 抽屉模式打开视图
*
* @private
* @param {*} view
* @param {*} data
* @memberof AppPicker
*/
private
openDrawer
(
view
:
any
,
context
:
any
,
param
:
any
):
void
{
let
container
:
Subject
<
any
>
=
this
.
$appdrawer
.
openDrawer
(
view
,
context
,
param
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
this
.
openViewClose
(
result
);
});
}
/**
* 气泡卡片模式打开
*
* @private
* @param {*} $event
* @param {*} view
* @param {*} data
* @memberof AppPicker
*/
private
openPopOver
(
$event
:
any
,
view
:
any
,
context
:
any
,
param
:
any
):
void
{
let
container
:
Subject
<
any
>
=
this
.
$apppopover
.
openPop
(
$event
,
view
,
context
,
param
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
this
.
openViewClose
(
result
);
});
}
/**
* 独立里面弹出
*
* @private
* @param {string} url
* @memberof AppPicker
*/
private
openPopupApp
(
url
:
string
):
void
{
window
.
open
(
url
,
'_blank'
);
}
/**
* 打开重定向视图
*
* @private
* @param {*} $event
* @param {*} view
* @param {*} data
* @memberof AppPicker
*/
private
openRedirectView
(
$event
:
any
,
view
:
any
,
data
:
any
):
void
{
this
.
$http
.
get
(
view
.
url
,
data
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'components.appPicker.error'
)
as
any
),
desc
:
(
this
.
$t
(
'components.appPicker.requestException'
)
as
any
)
});
}
if
(
response
.
status
===
401
)
{
return
;
}
const
{
data
:
result
}
=
response
;
if
(
result
.
viewparams
&&
!
Object
.
is
(
result
.
viewparams
.
srfkey
,
''
))
{
Object
.
assign
(
data
,
{
srfkey
:
result
.
viewparams
.
srfkey
});
}
if
(
Object
.
is
(
result
.
openmode
,
'POPUPAPP'
)
&&
result
.
url
&&
!
Object
.
is
(
result
.
url
,
''
))
{
this
.
openPopupApp
(
result
.
url
);
}
else
if
(
Object
.
is
(
result
.
openmode
,
'INDEXVIEWTAB'
)
||
Object
.
is
(
result
.
openmode
,
''
))
{
// 所有数据保持在同一级
if
(
data
.
srfparentdata
)
{
Object
.
assign
(
data
,
data
.
srfparentdata
);
delete
data
.
srfparentdata
;
}
this
.
openIndexViewTab
(
view
,
null
,
data
);
}
else
if
(
Object
.
is
(
result
.
openmode
,
'POPUPMODAL'
))
{
const
viewname
=
this
.
$util
.
srfFilePath2
(
result
.
viewname
);
const
view
:
any
=
{
viewname
:
viewname
,
title
:
result
.
title
,
width
:
result
.
width
,
height
:
result
.
height
,
}
this
.
openPopupModal
(
view
,
null
,
data
);
}
else
if
(
result
.
openmode
.
startsWith
(
'DRAWER'
))
{
const
viewname
=
this
.
$util
.
srfFilePath2
(
result
.
viewname
);
const
view
:
any
=
{
viewname
:
viewname
,
title
:
result
.
title
,
width
:
result
.
width
,
height
:
result
.
height
,
placement
:
result
.
openmode
,
}
this
.
openDrawer
(
view
,
null
,
data
);
}
else
if
(
Object
.
is
(
result
.
openmode
,
'POPOVER'
))
{
const
viewname
=
this
.
$util
.
srfFilePath2
(
result
.
viewname
);
const
view
:
any
=
{
viewname
:
viewname
,
title
:
result
.
title
,
width
:
result
.
width
,
height
:
result
.
height
,
placement
:
result
.
openmode
,
}
this
.
openPopOver
(
$event
,
view
,
null
,
data
);
}
}).
catch
((
response
:
any
)
=>
{
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'components.appPicker.error'
)
as
any
),
desc
:
(
this
.
$t
(
'components.appPicker.systemException'
)
as
any
)
});
return
;
}
if
(
response
.
status
===
401
)
{
return
;
}
});
}
/**
* 打开链接视图
*
* @memberof AppPicker
*/
public
openLinkView
(
$event
:
any
):
void
{
if
(
!
this
.
data
||
!
this
.
valueitem
||
!
this
.
data
[
this
.
valueitem
])
{
console
.
error
({
title
:
(
this
.
$t
(
'components.appPicker.error'
)
as
any
),
desc
:
(
this
.
$t
(
'components.appPicker.valueitemException'
)
as
any
)
});
return
;
}
// 公共参数处理
let
data
:
any
=
{};
const
bcancel
:
boolean
=
this
.
handlePublicParams
(
data
);
if
(
!
bcancel
)
{
return
;
}
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
Object
.
assign
(
_context
,
{
[
this
.
deKeyField
]:
this
.
data
[
this
.
valueitem
]
});
const
view
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
linkview
));
const
viewname2
:
string
=
this
.
$util
.
srfFilePath2
(
view
.
viewname
);
view
.
viewname
=
viewname2
;
if
(
view
.
isRedirectView
)
{
this
.
openRedirectView
(
$event
,
view
,
data
);
}
else
if
(
Object
.
is
(
view
.
placement
,
'INDEXVIEWTAB'
)
||
Object
.
is
(
view
.
placement
,
''
))
{
this
.
openIndexViewTab
(
view
,
_context
,
_param
);
}
else
if
(
Object
.
is
(
view
.
placement
,
'POPOVER'
))
{
this
.
openPopOver
(
$event
,
view
,
_context
,
_param
);
}
else
if
(
Object
.
is
(
view
.
placement
,
'POPUPMODAL'
))
{
this
.
openPopupModal
(
view
,
_context
,
_param
);
}
else
if
(
view
.
placement
.
startsWith
(
'DRAWER'
))
{
this
.
openDrawer
(
view
,
_context
,
_param
);
}
}
/**
* 打开页面关闭
*
* @param {*} result
* @memberof AppPicker
*/
public
openViewClose
(
result
:
any
)
{
let
item
:
any
=
{};
if
(
result
.
datas
&&
Array
.
isArray
(
result
.
datas
))
{
Object
.
assign
(
item
,
result
.
datas
[
0
]);
}
if
(
this
.
data
)
{
if
(
this
.
valueitem
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueitem
,
value
:
item
[
this
.
deKeyField
]?
item
[
this
.
deKeyField
]:
item
[
"srfkey"
]
});
}
if
(
this
.
name
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
item
[
this
.
deMajorField
]?
item
[
this
.
deMajorField
]:
item
[
"srfmajortext"
]
});
}
}
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof AppPicker
*/
public
handlePublicParams
(
arg
:
any
):
boolean
{
if
(
!
this
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'components.appPicker.error'
)
as
any
),
desc
:
(
this
.
$t
(
'components.appPicker.formdataException'
)
as
any
)
});
return
false
;
}
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
localContext
&&
Object
.
keys
(
this
.
localContext
).
length
>
0
)
{
let
_context
=
this
.
$util
.
computedNavData
(
this
.
data
,
arg
.
context
,
arg
.
param
,
this
.
localContext
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
localParam
&&
Object
.
keys
(
this
.
localParam
).
length
>
0
)
{
let
_param
=
this
.
$util
.
computedNavData
(
this
.
data
,
arg
.
param
,
arg
.
param
,
this
.
localParam
);
Object
.
assign
(
arg
.
param
,
_param
);
}
return
true
;
}
/**
* 触发界面行为
*
* @param {*} arg
* @returns
* @memberof AppPicker
*/
public
clickAction
(
arg
:
any
){
this
.
$emit
(
'editoractionclick'
,
arg
);
}
/**
* 创建并编辑
*
* @param {*} arg
* @returns
* @memberof AppPicker
*/
public
newAndEdit
(
$event
:
any
){
if
(
this
.
disabled
)
{
return
;
}
// 公共参数处理
let
data
:
any
=
{};
const
bcancel
:
boolean
=
this
.
handlePublicParams
(
data
);
if
(
!
bcancel
)
{
return
;
}
// 参数处理
const
view
=
{
...
this
.
linkview
};
view
.
viewname
=
this
.
$util
.
srfFilePath2
(
view
.
viewname
);
let
_context
=
data
.
context
;
delete
_context
[
this
.
deKeyField
];
let
_param
=
data
.
param
;
// 判断打开方式
if
(
view
.
placement
&&
!
Object
.
is
(
view
.
placement
,
''
))
{
if
(
Object
.
is
(
view
.
placement
,
'POPOVER'
))
{
this
.
openPopOver
(
$event
,
view
,
_context
,
_param
);
}
else
{
this
.
openDrawer
(
view
,
_context
,
_param
);
}
}
else
{
this
.
openPopupModal
(
view
,
_context
,
_param
);
}
}
/**
* 输入过程中
*
* @memberof AppAutocomplete
*/
public
onInput
(
$event
:
any
)
{
if
(
Object
.
is
(
$event
,
this
.
value
))
{
this
.
inputState
=
true
;
}
}
/**
* 展开下拉
*
* @memberof AppPicker
*/
public
openDropdown
()
{
const
appPicker
:
any
=
this
.
$refs
.
appPicker
;
if
(
appPicker
)
{
appPicker
.
focus
();
}
}
/**
* 收起下拉
*
* @memberof AppPicker
*/
public
closeDropdown
()
{
const
appPicker
:
any
=
this
.
$refs
.
appPicker
;
if
(
appPicker
)
{
appPicker
.
blur
();
}
}
}
}
</
script
>
</
script
>
<
style
lang=
"less"
>
<
style
lang=
"less"
>
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录