Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
高东东-金蝶建发
/
jf-yzj-yunying-sheet
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
a2657325
authored
Dec 26, 2023
by
zhongqm
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
update:跳转天眼云
parent
b42d75da
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
588 additions
and
566 deletions
build/webpack.prod.conf.js
src/libraries/polyfill/cordova.js
src/shared/api.js
src/shared/app.vue
build/webpack.prod.conf.js
View file @
a2657325
...
@@ -30,7 +30,8 @@ var webpackConfig = merge(baseWebpackConfig, {
...
@@ -30,7 +30,8 @@ var webpackConfig = merge(baseWebpackConfig, {
plugins
:
[
plugins
:
[
// http://vuejs.github.io/vue-loader/en/workflow/production.html
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new
webpack
.
DefinePlugin
({
new
webpack
.
DefinePlugin
({
'process.env'
:
env
'process.env'
:
env
,
'process.env.PACK_ENV'
:
JSON
.
stringify
(
process
.
env
.
PACK_ENV
)
}),
}),
new
webpack
.
optimize
.
UglifyJsPlugin
({
new
webpack
.
optimize
.
UglifyJsPlugin
({
compress
:
{
compress
:
{
...
...
src/libraries/polyfill/cordova.js
View file @
a2657325
;(
function
(
global
)
{
;(
function
(
global
)
{
var
qing
=
global
.
qing
var
qing
=
global
.
qing
var
appMap
=
{
var
appMap
=
{
'com.jffc.gc-bak'
:
'500000106'
,
'com.cnd.jffc.tyypt'
:
process
.
env
.
PACK_ENV
===
'test'
?
'500000155'
:
''
,
'com.jffc.gc'
:
'500000113'
,
}
'com.jffc.supplier'
:
'500000112'
}
function
isObject
(
value
)
{
console
.
log
(
'appMap>>'
,
appMap
)
return
value
!==
null
&&
typeof
value
===
'object'
}
var
qingPromise
=
function
(
fnName
,
params
)
{
function
isObject
(
value
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
return
value
!==
null
&&
typeof
value
===
'object'
var
originSuccess
=
params
.
success
var
originError
=
params
.
error
var
opt
=
Object
.
assign
(
params
,
{
success
:
function
(
res
)
{
if
(
originSuccess
)
{
originSuccess
(
res
)
}
resolve
(
res
)
},
error
:
function
(
e
)
{
if
(
originError
)
{
originError
(
e
)
}
reject
(
e
)
}
})
qing
.
call
(
fnName
,
opt
)
})
}
// 根据“工号”查询【工号、eid、orgId】等信息
function
getPersonInfosByJobNo
(
jobNos
)
{
var
opt
=
{
url
:
'/gateway/xmjf-other-service/person/role/query/jobNo'
,
serializer
:
'form'
,
method
:
'POST'
,
headers
:
{
'Content-Type'
:
'application/x-www-form-urlencoded'
,
'Cloudoffice-Version'
:
'v0.0.1'
},
data
:
{
jobNos
:
jobNos
.
join
(
','
)
}
}
}
return
new
Promise
(
function
(
resolve
,
reject
)
{
opt
.
success
=
function
(
result
)
{
var
success
=
(
result
||
{}).
success
||
false
var
data
=
(
result
||
{}).
data
||
[]
if
(
String
(
success
).
toLowerCase
()
!==
'true'
||
data
.
length
===
0
)
{
reject
(
result
.
error
||
'获取人员信息失败!'
)
return
}
resolve
(
result
.
data
)
}
opt
.
error
=
function
(
e
)
{
reject
(
e
)
}
qing
.
call
(
'request'
,
opt
)
})
}
// 根据openId查询【工号、eid、orgId】等信息
var
qingPromise
=
function
(
fnName
,
params
)
{
function
getPersonInfosByoIds
(
oIds
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
var
opt
=
{
var
originSuccess
=
params
.
success
url
:
'/gateway/xmjf-other-service/person/role/query/oId'
,
var
originError
=
params
.
error
serializer
:
'form'
,
var
opt
=
Object
.
assign
(
params
,
{
method
:
'POST'
,
success
:
function
(
res
)
{
headers
:
{
if
(
originSuccess
)
{
'Content-Type'
:
'application/x-www-form-urlencoded'
,
originSuccess
(
res
)
'Cloudoffice-Version'
:
'v0.0.1'
}
},
resolve
(
res
)
data
:
{
},
oIds
:
oIds
.
join
(
','
)
error
:
function
(
e
)
{
}
if
(
originError
)
{
originError
(
e
)
}
reject
(
e
)
}
})
qing
.
call
(
fnName
,
opt
)
})
}
}
return
new
Promise
(
function
(
resolve
,
reject
)
{
opt
.
success
=
function
(
result
)
{
var
success
=
(
result
||
{}).
success
var
data
=
(
result
||
{}).
data
||
[]
if
(
String
(
success
).
toLowerCase
()
!==
'true'
||
data
.
length
===
0
)
{
reject
(
result
.
error
||
'获取人员信息失败!'
)
return
}
resolve
(
result
.
data
)
}
opt
.
error
=
function
(
e
)
{
reject
(
e
)
}
qing
.
call
(
'request'
,
opt
)
})
}
// 通过qingjs选人
// 根据“工号”查询【工号、eid、orgId】等信息
function
selectPersonByQing
(
selected
,
isMulti
)
{
function
getPersonInfosByJobNo
(
jobNos
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
var
opt
=
{
qing
.
call
(
'selectPersons'
,
{
url
:
'/gateway/xmjf-other-service/person/role/query/jobNo'
,
isMulti
:
isMulti
,
serializer
:
'form'
,
selected
:
selected
,
method
:
'POST'
,
success
:
function
(
result
)
{
headers
:
{
var
success
=
(
result
||
{}).
success
||
false
'Content-Type'
:
'application/x-www-form-urlencoded'
,
var
persons
=
((
result
||
{}).
data
||
{}).
persons
||
[]
'Cloudoffice-Version'
:
'v0.0.1'
if
(
},
String
(
success
).
toLowerCase
()
!==
'true'
||
data
:
{
persons
.
length
===
0
jobNos
:
jobNos
.
join
(
','
)
)
{
}
reject
(
result
.
error
||
'请选择人员后再提交'
)
return
}
resolve
(
persons
)
}
}
})
return
new
Promise
(
function
(
resolve
,
reject
)
{
})
opt
.
success
=
function
(
result
)
{
}
var
success
=
(
result
||
{}).
success
||
false
var
data
=
(
result
||
{}).
data
||
[]
// 将人员信息转化成美信的
if
(
String
(
success
).
toLowerCase
()
!==
'true'
||
data
.
length
===
0
)
{
function
formatData2Mx
(
persons
)
{
reject
(
result
.
error
||
'获取人员信息失败!'
)
// openId和人员的映射关系
return
var
personMap
=
{}
}
var
openIds
=
persons
.
map
(
function
(
p
)
{
resolve
(
result
.
data
)
// 将云之家的人员字段与美信的人员字段映射起来
}
p
.
telephonenumber
=
p
.
phone
opt
.
error
=
function
(
e
)
{
p
.
cn
=
p
.
name
reject
(
e
)
p
.
positionname
=
p
.
jobTitle
}
p
.
mobile
=
p
.
phone
qing
.
call
(
'request'
,
opt
)
// 创建缓存,方便后续根据openId查询人员信息
var
openId
=
p
.
openId
personMap
[
openId
]
=
p
return
openId
})
return
getPersonInfosByoIds
(
openIds
).
then
(
function
(
ids
)
{
var
persons
=
ids
.
map
(
function
(
personIds
)
{
var
openId
=
personIds
.
oId
var
jobNo
=
personIds
.
jobNo
// 从缓存里面查询对应人员
var
p
=
personMap
[
openId
]
// 更新工号
p
.
uid
=
jobNo
p
.
jobNo
=
jobNo
return
p
})
return
persons
})
}
// 选人
function
selectPersons
(
selected
,
isMulti
,
successFn
,
failFn
)
{
// 将传入的工号转为openId
var
selectedPromise
=
Promise
.
resolve
([])
if
(
selected
&&
selected
.
length
)
{
selectedPromise
=
getPersonInfosByJobNo
(
selected
)
}
// 根据openId选人
selectedPromise
.
then
(
function
(
persons
)
{
var
oIds
=
persons
.
map
(
function
(
p
)
{
return
p
.
oId
})
return
selectPersonByQing
(
oIds
,
isMulti
)
})
.
then
(
function
(
persons
)
{
// 格式化选人信息
return
formatData2Mx
(
persons
)
})
.
then
(
function
(
persons
)
{
successFn
({
result
:
true
,
array
:
persons
})
})
.
catch
(
function
()
{
failFn
({
result
:
false
,
array
:
[]
})
})
})
}
// 获取当前用户信息
function
getCurrentUserInfo
(
callback
)
{
var
opt
=
{
url
:
'/gateway/xmjf-other-service/person/role/save/person'
,
method
:
'POST'
,
headers
:
{
'Cloudoffice-Version'
:
'v0.0.1'
},
data
:
{},
success
:
callback
}
}
qing
.
call
(
'request'
,
opt
)
}
function
openAppWithData
(
appName
,
data
,
url
)
{
var
val
=
''
if
(
isObject
(
data
))
{
data
=
JSON
.
stringify
(
data
)
// 针对json数据格式化来的字符串添加特殊标识,方便后续还原
data
=
'__json__='
+
data
}
if
(
typeof
data
===
'string'
)
{
// IOS有个奇葩的设计,把双引号转单引号输出了,所以需要将单引号,双引号在保存前特殊处理,然后再还原。
val
=
data
.
replace
(
/'/gm
,
'∆∆'
).
replace
(
/"/gm
,
'åå'
)
}
val
=
encodeURIComponent
(
val
)
return
new
Promise
(
function
(
resolve
,
reject
)
{
qing
.
call
(
'storage.setItem'
,
{
shared
:
true
,
key
:
appName
,
value
:
val
,
success
:
function
(
res
)
{
if
(
String
(
res
.
success
).
toLowerCase
()
===
'true'
)
{
qing
.
call
(
'gotoLightApp'
,
{
urlParam
:
url
})
resolve
(
true
)
}
else
{
reject
(
res
.
error
)
}
},
error
:
function
(
e
)
{
reject
(
e
)
}
})
})
}
var
handlers
=
{
// 根据openId查询【工号、eid、orgId】等信息
MIDEACOMMON
:
{
function
getPersonInfosByoIds
(
oIds
)
{
launchExternalAPPByThird
:
function
(
params
,
successFn
,
failFn
)
{
var
opt
=
{
params
=
params
||
[]
url
:
'/gateway/xmjf-other-service/person/role/query/oId'
,
if
(
!
params
.
length
)
{
serializer
:
'form'
,
failFn
(
'未检测到要打开应用的包名!'
)
method
:
'POST'
,
return
headers
:
{
}
'Content-Type'
:
'application/x-www-form-urlencoded'
,
let
scheme
=
params
[
0
]
'Cloudoffice-Version'
:
'v0.0.1'
if
(
!
scheme
)
{
},
failFn
(
'未检测到要打开应用的包名!'
)
data
:
{
return
oIds
:
oIds
.
join
(
','
)
}
}
}
// 针对scheme可能丢失尾部的://的情况进行追加
return
new
Promise
(
function
(
resolve
,
reject
)
{
scheme
=
`
${
scheme
}
://`
opt
.
success
=
function
(
result
)
{
scheme
=
scheme
.
replace
(
'://://'
,
'://'
)
var
success
=
(
result
||
{}).
success
qing
.
call
(
'gotoApp'
,
{
var
data
=
(
result
||
{}).
data
||
[]
data
:
`
${
scheme
}
p?`
,
if
(
String
(
success
).
toLowerCase
()
!==
'true'
||
data
.
length
===
0
)
{
success
:
function
(
result
)
{
reject
(
result
.
error
||
'获取人员信息失败!'
)
const
success
=
(
result
||
{}).
success
||
false
return
if
(
`
${
success
}
`
.
toLowerCase
()
===
'true'
)
{
}
successFn
(
true
)
resolve
(
result
.
data
)
}
else
{
}
failFn
(
'打开应用失败!'
)
opt
.
error
=
function
(
e
)
{
reject
(
e
)
}
}
},
qing
.
call
(
'request'
,
opt
)
error
:
function
()
{
failFn
(
'打开应用失败!'
)
}
})
})
},
}
setBounces
:
function
(
p
,
successFn
,
failFn
)
{
p
=
p
||
[
0
]
var
enable
=
p
[
0
]
var
map
=
{
'0'
:
0
,
'1'
:
1
}
qing
.
call
(
'setBounce'
,
{
// 通过qingjs选人
enable
:
map
[
`
${
enable
}
`
]
||
0
function
selectPersonByQing
(
selected
,
isMulti
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
qing
.
call
(
'selectPersons'
,
{
isMulti
:
isMulti
,
selected
:
selected
,
success
:
function
(
result
)
{
var
success
=
(
result
||
{}).
success
||
false
var
persons
=
((
result
||
{}).
data
||
{}).
persons
||
[]
if
(
String
(
success
).
toLowerCase
()
!==
'true'
||
persons
.
length
===
0
)
{
reject
(
result
.
error
||
'请选择人员后再提交'
)
return
}
resolve
(
persons
)
}
})
})
})
successFn
(
'success'
)
}
},
exit
:
function
(
p
,
successFn
,
failFn
)
{
// 将人员信息转化成美信的
qing
.
call
(
'closeWebView'
)
function
formatData2Mx
(
persons
)
{
successFn
(
'success'
)
// openId和人员的映射关系
},
var
personMap
=
{}
openSysBrowser
:
function
(
urls
,
successFn
,
failFn
)
{
var
openIds
=
persons
.
map
(
function
(
p
)
{
var
u
=
urls
||
[]
// 将云之家的人员字段与美信的人员字段映射起来
if
(
!
u
.
length
)
{
p
.
telephonenumber
=
p
.
phone
failFn
(
'未检测到要打开的url!'
)
p
.
cn
=
p
.
name
return
p
.
positionname
=
p
.
jobTitle
}
p
.
mobile
=
p
.
phone
qing
.
call
(
'localFunction'
,
{
// 创建缓存,方便后续根据openId查询人员信息
name
:
'openExtBrowser'
,
var
openId
=
p
.
openId
param
:
{
personMap
[
openId
]
=
p
url
:
u
[
0
]
return
openId
},
success
:
successFn
})
})
},
return
getPersonInfosByoIds
(
openIds
).
then
(
function
(
ids
)
{
language
:
function
(
param
,
successFn
,
failFn
)
{
var
persons
=
ids
.
map
(
function
(
personIds
)
{
var
lang
=
'zh-CN'
var
openId
=
personIds
.
oId
var
result
=
navigator
.
userAgent
.
match
(
/
(
;|^
)\s
*lang
\s
*:
([^
;
]
*
)
/
)
var
jobNo
=
personIds
.
jobNo
if
(
result
&&
result
.
length
===
3
)
{
// 从缓存里面查询对应人员
lang
=
result
[
2
]
var
p
=
personMap
[
openId
]
}
// 更新工号
// 只取后面的国家代码
p
.
uid
=
jobNo
lang
=
lang
.
replace
(
/^
[
a-z
]
+
\-
/i
,
''
)
p
.
jobNo
=
jobNo
successFn
({
return
p
language
:
lang
.
toLowerCase
()
})
return
persons
})
})
},
}
vcard
:
function
(
uids
,
successFn
,
failFn
)
{
var
jobNos
=
uids
||
[]
// 选人
if
(
!
jobNos
.
length
)
{
function
selectPersons
(
selected
,
isMulti
,
successFn
,
failFn
)
{
failFn
(
'未检测到要打开人员的openId!'
)
// 将传入的工号转为openId
return
var
selectedPromise
=
Promise
.
resolve
([])
if
(
selected
&&
selected
.
length
)
{
selectedPromise
=
getPersonInfosByJobNo
(
selected
)
}
}
// 通过工号获取openId,然后用openId打开人员详情页面。
// 根据openId选人
getPersonInfosByJobNo
(
jobNos
)
selectedPromise
.
then
(
function
(
personInfos
)
{
.
then
(
function
(
persons
)
{
// 打开人员卡片只有一条信息
var
oIds
=
persons
.
map
(
function
(
p
)
{
qing
.
call
(
'personInfo'
,
{
return
p
.
oId
openId
:
personInfos
[
0
].
oId
})
return
selectPersonByQing
(
oIds
,
isMulti
)
})
})
successFn
(
true
)
.
then
(
function
(
persons
)
{
})
// 格式化选人信息
.
catch
(
function
(
e
)
{
return
formatData2Mx
(
persons
)
failFn
(
e
)
})
})
.
then
(
function
(
persons
)
{
},
successFn
({
openUrl
:
function
(
params
,
successFn
,
failFn
)
{
result
:
true
,
// params的第一个参数是要打开的url
array
:
persons
var
url
=
(
params
||
[])[
0
]
})
// 第二个参数是打开url的参数
var
_p
=
(
params
||
[])[
1
]
||
{}
if
(
!
url
)
{
failFn
(
'未检测到要打开的url!'
)
return
}
// 注册页面关闭的回调事件。
if
(
_p
.
H5CallBackFunction
)
{
var
fnName
=
_p
.
H5CallBackFunction
.
replace
(
'()'
,
''
)
var
fn
=
window
[
fnName
]
if
(
fn
&&
(
typeof
fn
===
'function'
))
{
qing
.
on
(
'appear'
,
function
()
{
fn
()
})
})
}
.
catch
(
function
()
{
failFn
({
result
:
false
,
array
:
[]
})
})
}
// 获取当前用户信息
function
getCurrentUserInfo
(
callback
)
{
var
opt
=
{
url
:
'/gateway/xmjf-other-service/person/role/save/person'
,
method
:
'POST'
,
headers
:
{
'Cloudoffice-Version'
:
'v0.0.1'
},
data
:
{},
success
:
callback
}
}
qing
.
call
(
'gotoLightApp'
,
{
qing
.
call
(
'request'
,
opt
)
urlParam
:
url
}
})
},
function
openAppWithData
(
appName
,
data
,
url
)
{
showWidget
:
function
(
params
,
successFn
,
failFn
)
{
var
val
=
''
if
(
!
Array
.
isArray
(
params
)
||
!
params
[
0
])
{
if
(
isObject
(
data
))
{
failFn
(
'未检测到要打开的应用地址!'
)
data
=
JSON
.
stringify
(
data
)
return
// 针对json数据格式化来的字符串添加特殊标识,方便后续还原
data
=
'__json__='
+
data
}
}
var
appName
=
params
[
0
]
if
(
typeof
data
===
'string'
)
{
var
appId
=
appMap
[
appName
]
// IOS有个奇葩的设计,把双引号转单引号输出了,所以需要将单引号,双引号在保存前特殊处理,然后再还原。
if
(
!
appId
)
{
val
=
data
.
replace
(
/'/gm
,
'∆∆'
).
replace
(
/"/gm
,
'åå'
)
failFn
(
'未检测到要打开的应用!'
)
return
}
}
var
data
=
params
[
1
]
||
''
val
=
encodeURIComponent
(
val
)
openAppWithData
(
return
new
Promise
(
function
(
resolve
,
reject
)
{
encodeURIComponent
(
appName
),
qing
.
call
(
'storage.setItem'
,
{
data
,
shared
:
true
,
'cloudhub://miniapp?appid='
+
appId
+
'&path=index.html'
key
:
appName
,
).
then
(
successFn
,
failFn
)
value
:
val
,
},
success
:
function
(
res
)
{
getExtra
:
function
(
params
,
successFn
,
failFn
)
{
if
(
String
(
res
.
success
).
toLowerCase
()
===
'true'
)
{
if
(
Array
.
isArray
(
params
))
{
qing
.
call
(
'gotoLightApp'
,
{
var
appName
=
params
[
0
]
urlParam
:
url
if
(
appName
)
{
})
qing
.
call
(
'storage.getItem'
,
{
resolve
(
true
)
key
:
encodeURIComponent
(
appName
),
shared
:
true
,
success
:
function
(
res
)
{
if
(
String
(
res
.
success
).
toLowerCase
()
===
'true'
)
{
try
{
var
data
=
(
res
.
data
||
{}).
value
||
''
data
=
decodeURIComponent
(
data
)
if
(
data
)
{
// IOS有个奇葩的设计,把双引号转单引号输出了,所以需要将单引号,双引号在保存前特殊处理,然后再还原。
data
=
data
.
replace
(
/∆∆/gm
,
"'"
).
replace
(
/åå/gm
,
'"'
)
// 将json数据反编译回object
if
(
data
.
indexOf
(
'__json__='
)
===
0
)
{
data
=
data
.
replace
(
/^__json__=/
,
''
)
data
=
JSON
.
parse
(
data
)
}
successFn
({
result
:
true
,
msg
:
'成功'
,
widgetId
:
appName
,
extra
:
{
showWidgetKey
:
data
}
})
}
else
{
}
else
{
successFn
({}
)
reject
(
res
.
error
)
}
}
}
catch
(
error
)
{
},
console
.
error
(
'getExtra error:'
,
error
)
error
:
function
(
e
)
{
failFn
()
reject
(
e
)
}
}
else
{
failFn
()
}
}
}
})
})
}
else
{
failFn
()
}
}
else
{
failFn
()
}
}
},
MIDEAUSER
:
{
orgChoose
:
function
(
p
,
successFn
,
failFn
)
{
selectPersons
([],
false
,
successFn
,
failFn
)
},
orgMuChoose
:
function
(
selected
,
successFn
,
failFn
)
{
selectPersons
(
selected
,
true
,
successFn
,
failFn
)
},
getUser
:
function
(
param
,
successFn
,
failFn
)
{
getCurrentUserInfo
(
function
(
result
)
{
var
success
=
(
result
||
{}).
success
var
error
=
(
result
||
{}).
error
var
data
=
(
result
||
{}).
data
||
{}
if
(
String
(
success
).
toLowerCase
()
!==
'true'
)
{
failFn
(
error
)
return
}
var
userInfo
=
data
.
userInfo
||
{}
successFn
({
uid
:
userInfo
.
username
,
email
:
userInfo
.
email
,
avatar
:
userInfo
.
avatar
,
cn
:
userInfo
.
name
,
gender
:
userInfo
.
gender
,
mobile
:
userInfo
.
email
,
fullDeptName
:
userInfo
.
fullDeptName
.
replace
(
'!'
,
'_'
),
departmentName
:
userInfo
.
deptName
,
ssoToken
:
data
.
ssoToken
})
})
})
},
}
getUserPassword
:
function
(
param
,
successFn
,
failFn
)
{
successFn
({})
var
handlers
=
{
}
MIDEACOMMON
:
{
},
launchExternalAPPByThird
:
function
(
params
,
successFn
,
failFn
)
{
MIDEAPDF
:
{
params
=
params
||
[]
showTxt
:
function
(
param
,
successFn
,
failFn
)
{
if
(
!
params
.
length
)
{
var
p
=
param
||
{}
failFn
(
'未检测到要打开应用的包名!'
)
if
(
!
p
.
url
)
{
return
failFn
(
'未检测到要打开文件的url!'
)
}
return
let
scheme
=
params
[
0
]
}
if
(
!
scheme
)
{
/*
failFn
(
'未检测到要打开应用的包名!'
)
var ext = '';
return
var extIndex = param.title.lastIndexOf('.');
}
if (extIndex !== -1) {
// 针对scheme可能丢失尾部的://的情况进行追加
var innerExt = param.title.slice(extIndex + 1);
scheme
=
`
${
scheme
}
://`
if (innerExt.length > 0 && innerExt.length <=4) {
scheme
=
scheme
.
replace
(
'://://'
,
'://'
)
ext = innerExt;
qing
.
call
(
'gotoApp'
,
{
data
:
`
${
scheme
}
p?`
,
success
:
function
(
result
)
{
const
success
=
(
result
||
{}).
success
||
false
if
(
`
${
success
}
`
.
toLowerCase
()
===
'true'
)
{
successFn
(
true
)
}
else
{
failFn
(
'打开应用失败!'
)
}
},
error
:
function
()
{
failFn
(
'打开应用失败!'
)
}
})
},
setBounces
:
function
(
p
,
successFn
,
failFn
)
{
p
=
p
||
[
0
]
var
enable
=
p
[
0
]
var
map
=
{
'0'
:
0
,
'1'
:
1
}
qing
.
call
(
'setBounce'
,
{
enable
:
map
[
`
${
enable
}
`
]
||
0
})
successFn
(
'success'
)
},
exit
:
function
(
p
,
successFn
,
failFn
)
{
qing
.
call
(
'closeWebView'
)
successFn
(
'success'
)
},
openSysBrowser
:
function
(
urls
,
successFn
,
failFn
)
{
var
u
=
urls
||
[]
if
(
!
u
.
length
)
{
failFn
(
'未检测到要打开的url!'
)
return
}
qing
.
call
(
'localFunction'
,
{
name
:
'openExtBrowser'
,
param
:
{
url
:
u
[
0
]
},
success
:
successFn
})
},
language
:
function
(
param
,
successFn
,
failFn
)
{
var
lang
=
'zh-CN'
var
result
=
navigator
.
userAgent
.
match
(
/
(
;|^
)\s
*lang
\s
*:
([^
;
]
*
)
/
)
if
(
result
&&
result
.
length
===
3
)
{
lang
=
result
[
2
]
}
// 只取后面的国家代码
lang
=
lang
.
replace
(
/^
[
a-z
]
+
\-
/i
,
''
)
successFn
({
language
:
lang
.
toLowerCase
()
})
},
vcard
:
function
(
uids
,
successFn
,
failFn
)
{
var
jobNos
=
uids
||
[]
if
(
!
jobNos
.
length
)
{
failFn
(
'未检测到要打开人员的openId!'
)
return
}
// 通过工号获取openId,然后用openId打开人员详情页面。
getPersonInfosByJobNo
(
jobNos
)
.
then
(
function
(
personInfos
)
{
// 打开人员卡片只有一条信息
qing
.
call
(
'personInfo'
,
{
openId
:
personInfos
[
0
].
oId
})
successFn
(
true
)
})
.
catch
(
function
(
e
)
{
failFn
(
e
)
})
},
openUrl
:
function
(
params
,
successFn
,
failFn
)
{
// params的第一个参数是要打开的url
var
url
=
(
params
||
[])[
0
]
// 第二个参数是打开url的参数
var
_p
=
(
params
||
[])[
1
]
||
{}
if
(
!
url
)
{
failFn
(
'未检测到要打开的url!'
)
return
}
// 注册页面关闭的回调事件。
if
(
_p
.
H5CallBackFunction
)
{
var
fnName
=
_p
.
H5CallBackFunction
.
replace
(
'()'
,
''
)
var
fn
=
window
[
fnName
]
if
(
fn
&&
(
typeof
fn
===
'function'
))
{
qing
.
on
(
'appear'
,
function
()
{
fn
()
})
}
}
qing
.
call
(
'gotoLightApp'
,
{
urlParam
:
url
})
},
showWidget
:
function
(
params
,
successFn
,
failFn
)
{
if
(
!
Array
.
isArray
(
params
)
||
!
params
[
0
])
{
failFn
(
'未检测到要打开的应用地址!'
)
return
}
var
appName
=
params
[
0
]
var
appId
=
appMap
[
appName
]
if
(
!
appId
)
{
failFn
(
'未检测到要打开的应用!'
)
return
}
var
data
=
params
[
1
]
||
''
openAppWithData
(
encodeURIComponent
(
appName
),
data
,
'cloudhub://miniapp?appid='
+
appId
+
'&path=index.html'
).
then
(
successFn
,
failFn
)
},
getExtra
:
function
(
params
,
successFn
,
failFn
)
{
if
(
Array
.
isArray
(
params
))
{
var
appName
=
params
[
0
]
if
(
appName
)
{
qing
.
call
(
'storage.getItem'
,
{
key
:
encodeURIComponent
(
appName
),
shared
:
true
,
success
:
function
(
res
)
{
if
(
String
(
res
.
success
).
toLowerCase
()
===
'true'
)
{
try
{
var
data
=
(
res
.
data
||
{}).
value
||
''
data
=
decodeURIComponent
(
data
)
if
(
data
)
{
// IOS有个奇葩的设计,把双引号转单引号输出了,所以需要将单引号,双引号在保存前特殊处理,然后再还原。
data
=
data
.
replace
(
/∆∆/gm
,
"'"
).
replace
(
/åå/gm
,
'"'
)
// 将json数据反编译回object
if
(
data
.
indexOf
(
'__json__='
)
===
0
)
{
data
=
data
.
replace
(
/^__json__=/
,
''
)
data
=
JSON
.
parse
(
data
)
}
successFn
({
result
:
true
,
msg
:
'成功'
,
widgetId
:
appName
,
extra
:
{
showWidgetKey
:
data
}
})
}
else
{
successFn
({})
}
}
catch
(
error
)
{
console
.
error
(
'getExtra error:'
,
error
)
failFn
()
}
}
else
{
failFn
()
}
}
})
}
else
{
failFn
()
}
}
else
{
failFn
()
}
}
},
MIDEAUSER
:
{
orgChoose
:
function
(
p
,
successFn
,
failFn
)
{
selectPersons
([],
false
,
successFn
,
failFn
)
},
orgMuChoose
:
function
(
selected
,
successFn
,
failFn
)
{
selectPersons
(
selected
,
true
,
successFn
,
failFn
)
},
getUser
:
function
(
param
,
successFn
,
failFn
)
{
getCurrentUserInfo
(
function
(
result
)
{
var
success
=
(
result
||
{}).
success
var
error
=
(
result
||
{}).
error
var
data
=
(
result
||
{}).
data
||
{}
if
(
String
(
success
).
toLowerCase
()
!==
'true'
)
{
failFn
(
error
)
return
}
var
userInfo
=
data
.
userInfo
||
{}
successFn
({
uid
:
userInfo
.
username
,
email
:
userInfo
.
email
,
avatar
:
userInfo
.
avatar
,
cn
:
userInfo
.
name
,
gender
:
userInfo
.
gender
,
mobile
:
userInfo
.
email
,
fullDeptName
:
userInfo
.
fullDeptName
.
replace
(
'!'
,
'_'
),
departmentName
:
userInfo
.
deptName
,
ssoToken
:
data
.
ssoToken
})
})
},
getUserPassword
:
function
(
param
,
successFn
,
failFn
)
{
successFn
({})
}
},
MIDEAPDF
:
{
showTxt
:
function
(
param
,
successFn
,
failFn
)
{
var
p
=
param
||
{}
if
(
!
p
.
url
)
{
failFn
(
'未检测到要打开文件的url!'
)
return
}
/*
var ext = '';
var extIndex = param.title.lastIndexOf('.');
if (extIndex !== -1) {
var innerExt = param.title.slice(extIndex + 1);
if (innerExt.length > 0 && innerExt.length <=4) {
ext = innerExt;
}
}
*/
var
qingParam
=
{
fileDownloadUrl
:
param
.
url
,
success
:
successFn
,
fail
:
failFn
,
error
:
failFn
}
if
(
param
.
title
)
{
qingParam
.
fileName
=
param
.
title
}
qing
.
call
(
'showFile'
,
qingParam
)
},
showPdf
:
function
(
urls
,
successFn
,
failFn
)
{
var
u
=
urls
||
[]
if
(
!
u
.
length
)
{
failFn
(
'未检测到要打开文件的url!'
)
return
}
qing
.
call
(
'showFile'
,
{
fileDownloadUrl
:
u
[
0
],
success
:
successFn
,
fail
:
failFn
,
error
:
failFn
})
},
showRAR
:
function
()
{
}
}
}
}
*/
var
qingParam
=
{
fileDownloadUrl
:
param
.
url
,
success
:
successFn
,
fail
:
failFn
,
error
:
failFn
}
if
(
param
.
title
)
{
qingParam
.
fileName
=
param
.
title
}
qing
.
call
(
'showFile'
,
qingParam
)
},
showPdf
:
function
(
urls
,
successFn
,
failFn
)
{
var
u
=
urls
||
[]
if
(
!
u
.
length
)
{
failFn
(
'未检测到要打开文件的url!'
)
return
}
qing
.
call
(
'showFile'
,
{
fileDownloadUrl
:
u
[
0
],
success
:
successFn
,
fail
:
failFn
,
error
:
failFn
})
},
showRAR
:
function
()
{}
}
}
}
global
.
cordova
=
{
global
.
cordova
=
{
exec
:
function
(
successFn
,
failFn
,
module
,
method
,
params
)
{
exec
:
function
(
successFn
,
failFn
,
module
,
method
,
params
)
{
params
=
params
||
[]
params
=
params
||
[]
console
.
warn
(
'cordova-module:'
+
module
+
', method:'
+
method
)
console
.
warn
(
'cordova-module:'
+
module
+
', method:'
+
method
)
var
modules
=
handlers
[
module
.
toUpperCase
()]
var
modules
=
handlers
[
module
.
toUpperCase
()]
if
(
!
modules
)
{
if
(
!
modules
)
{
console
.
error
(
'请求的模块'
+
module
+
'未注册!'
)
console
.
error
(
'请求的模块'
+
module
+
'未注册!'
)
failFn
(
'请求的模块'
+
module
+
'未注册!'
)
failFn
(
'请求的模块'
+
module
+
'未注册!'
)
return
return
}
}
var
handler
=
modules
[
method
]
var
handler
=
modules
[
method
]
if
(
!
handler
)
{
if
(
!
handler
)
{
console
.
error
(
'未在'
+
module
+
'模块找到'
+
method
+
'方法的实现!'
)
console
.
error
(
'未在'
+
module
+
'模块找到'
+
method
+
'方法的实现!'
)
// 当桥不存在的时候,不阻断业务让流程还可以正常走。
// 当桥不存在的时候,不阻断业务让流程还可以正常走。
successFn
({})
successFn
({})
return
return
}
}
handler
(
params
,
successFn
,
failFn
)
handler
(
params
,
successFn
,
failFn
)
}
}
}
}
// var CAMERA = {
// var CAMERA = {
// PictureSourceType: {
// PictureSourceType: {
// 0: 'photo',
// 0: 'photo',
// 1: 'camera',
// 1: 'camera',
// 2: 'photo'
// 2: 'photo'
// }
// }
// }
// }
global
.
navigator
.
camera
=
{
global
.
navigator
.
camera
=
{
getPicture
:
function
(
successFn
,
failFn
,
params
)
{
getPicture
:
function
(
successFn
,
failFn
,
params
)
{
var
sourceType
=
params
.
sourceType
||
1
var
sourceType
=
params
.
sourceType
||
1
var
opt
=
{
var
opt
=
{
type
:
sourceType
===
1
?
'camera'
:
'photo'
type
:
sourceType
===
1
?
'camera'
:
'photo'
}
}
qingPromise
(
'selectPic'
,
opt
)
qingPromise
(
'selectPic'
,
opt
)
.
then
(
function
(
result
)
{
.
then
(
function
(
result
)
{
var
success
=
(
result
||
{}).
success
||
false
var
success
=
(
result
||
{}).
success
||
false
var
data
=
(
result
||
{}).
data
||
{}
var
data
=
(
result
||
{}).
data
||
{}
var
error
=
(
result
||
{}).
error
||
'获取图片信息失败!'
var
error
=
(
result
||
{}).
error
||
'获取图片信息失败!'
if
(
String
(
success
).
toLowerCase
()
===
'true'
)
{
if
(
String
(
success
).
toLowerCase
()
===
'true'
)
{
successFn
(
data
.
fileData
)
successFn
(
data
.
fileData
)
}
else
{
}
else
{
failFn
(
error
)
failFn
(
error
)
}
}
})
})
.
catch
(
function
(
e
)
{
.
catch
(
function
(
e
)
{
failFn
(
e
)
failFn
(
e
)
})
})
}
}
}
}
})(
window
)
})(
window
)
src/shared/api.js
View file @
a2657325
...
@@ -20,6 +20,8 @@ export const SetToken = function (val) {
...
@@ -20,6 +20,8 @@ export const SetToken = function (val) {
}
}
}
}
export
const
appId
=
''
// android or iOS scheme
// android or iOS scheme
export
const
goThirdAppPrefix
=
{
export
const
goThirdAppPrefix
=
{
smartbuild
:
'com.tsinglink.smartbuild://'
,
// 进度概况->项目节点列表->跳转到“智慧工地”第三方app的参数拼接前缀
smartbuild
:
'com.tsinglink.smartbuild://'
,
// 进度概况->项目节点列表->跳转到“智慧工地”第三方app的参数拼接前缀
...
...
src/shared/app.vue
View file @
a2657325
...
@@ -12,9 +12,9 @@
...
@@ -12,9 +12,9 @@
</keep-alive>
</keep-alive>
<router-view
<router-view
v-if=
"!$route.meta.keepAlive"
v-if=
"!$route.meta.keepAlive"
class=
"child-view"
class=
"child-view"
:class=
"
{transition:isShowTransition}"
:class=
"
{transition:isShowTransition}"
>
</router-view>
>
</router-view>
</transition>
</transition>
<!-- bottom -->
<!-- bottom -->
...
@@ -22,17 +22,17 @@
...
@@ -22,17 +22,17 @@
<div
class=
"bar"
>
<div
class=
"bar"
>
<ul>
<ul>
<li
@
click=
"goPage('')"
>
<li
@
click=
"goPage('')"
>
<img
v-if=
"tabIndex==0"
:src=
"require('~proj/assets/images/yygl_active.png')"
/>
<img
v-if=
"tabIndex==0"
:src=
"require('~proj/assets/images/yygl_active.png')"
/>
<img
v-else
:src=
"require('~proj/assets/images/yygl.png')"
/>
<img
v-else
:src=
"require('~proj/assets/images/yygl.png')"
/>
<p>
运营概况
</p>
<p>
运营概况
</p>
</li>
</li>
<li
@
click=
"goMap"
v-if=
"showProjectMap"
>
<li
@
click=
"goMap"
v-if=
"showProjectMap"
>
<img
:src=
"require('~proj/assets/images/xmdt.png')"
/>
<img
:src=
"require('~proj/assets/images/xmdt.png')"
/>
<p>
项目地图
</p>
<p>
项目地图
</p>
</li>
</li>
<li
v-if=
"showReport"
@
click=
"goPage('classifySheet')"
>
<li
v-if=
"showReport"
@
click=
"goPage('classifySheet')"
>
<img
v-if=
"tabIndex==2"
:src=
"require('~proj/assets/images/flbb_active.png')"
/>
<img
v-if=
"tabIndex==2"
:src=
"require('~proj/assets/images/flbb_active.png')"
/>
<img
v-else
:src=
"require('~proj/assets/images/flbb.png')"
/>
<img
v-else
:src=
"require('~proj/assets/images/flbb.png')"
/>
<p>
分类报表
</p>
<p>
分类报表
</p>
</li>
</li>
</ul>
</ul>
...
@@ -44,8 +44,8 @@
...
@@ -44,8 +44,8 @@
<
script
>
<
script
>
import
CHeader
from
"./components/commom/c-header.vue"
;
import
CHeader
from
"./components/commom/c-header.vue"
;
import
{
SetToken
,
code
,
projectMapUrl
}
from
"./api.js"
;
import
{
SetToken
,
code
,
projectMapUrl
}
from
"./api.js"
;
import
{
delCookie
}
from
"~lib/utils/common"
;
import
{
delCookie
}
from
"~lib/utils/common"
;
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -112,43 +112,60 @@ export default {
...
@@ -112,43 +112,60 @@ export default {
});
});
},
},
goMap
()
{
goMap
()
{
// V+切换地图功能: areaNum 填写要进入的片区地图
var
that
=
this
;
console
.
log
(
that
.
currentAreaNum
,
"that.currentAreaNum-===>>>"
);
cordova
.
exec
(
function
(
success
)
{
console
.
log
(
success
);
},
function
(
error
)
{
console
.
log
(
error
);
},
"MideaCommon"
,
"showWidget"
,
[
"com.cnd.jffc.tyypt"
,
`{"action":"gotoMap", "areaNum":"
${
that
.
currentAreaNum
}
","H5CallBackFunction":"callBack()"}`
,
]
);
// const urlParam = {
// action: 'gotoMap',
// areaNum: this.currentAreaNum
// }
//
// const path = encodeURIComponent(`index.html?${urlParam}`);
// const href = `cloudhub://miniapp?appid=${TyyptAppId}&path=${path}`;
// qing.call("gotoLightApp", {
// urlParam: href,
// });
},
goMap_old
()
{
var
that
=
this
;
var
that
=
this
;
// V+切换地图功能: areaNum 填写要进入的片区地图
// V+切换地图功能: areaNum 填写要进入的片区地图
console
.
log
(
that
.
currentAreaNum
,
"that.currentAreaNum-===>>>"
);
console
.
log
(
that
.
currentAreaNum
,
"that.currentAreaNum-===>>>"
);
cordova
.
exec
(
cordova
.
exec
(
function
(
success
)
{
function
(
success
)
{
console
.
log
(
success
);
console
.
log
(
success
);
},
},
function
(
error
)
{
function
(
error
)
{
console
.
log
(
error
);
console
.
log
(
error
);
},
},
"MideaCommon"
,
"MideaCommon"
,
"showWidget"
,
"showWidget"
,
[
[
"com.cnd.jffc.tyypt"
,
"com.cnd.jffc.tyypt"
,
`{"action":"gotoMap", "areaNum":"
${
that
.
currentAreaNum
}
","H5CallBackFunction":"callBack()"}`
,
`{"action":"gotoMap", "areaNum":"
${
that
.
currentAreaNum
}
","H5CallBackFunction":"callBack()"}`
,
]
]
);
);
// cordova.exec(
// function (result) {
// console.log("回调成功: " + JSON.stringify(result));
// },
// function (error) {
// console.log("回调失败");
// },
// "MideaCommon",
// "openUrl", [
// projectMapUrl + "?areaNum=05&access_token=" +
// that.$mas.token,
// {
// title: 1,
// shareRange: 2
// }
// ]
// );
},
},
clickBar
:
function
()
{
clickBar
:
function
()
{
this
.
isShowTransition
=
false
;
this
.
isShowTransition
=
false
;
...
@@ -162,31 +179,31 @@ export default {
...
@@ -162,31 +179,31 @@ export default {
},
},
getUserAccount
()
{
getUserAccount
()
{
this
.
$nativeApi
.
account
this
.
$nativeApi
.
account
.
getUser
()
.
getUser
()
.
then
((
data
)
=>
{
.
then
((
data
)
=>
{
// alert('V+登录用户账号' + JSON.stringify(data))
// alert('V+登录用户账号' + JSON.stringify(data))
this
.
$store
.
commit
(
"updateVUserInfo"
,
{
this
.
$store
.
commit
(
"updateVUserInfo"
,
{
userAccount
:
data
.
uid
,
userAccount
:
data
.
uid
,
});
})
.
catch
((
error
)
=>
{
// alert('获取用户信息失败:' + JSON.stringify(error) )
console
.
log
(
"获取用户信息失败:"
,
error
);
});
});
})
.
catch
((
error
)
=>
{
// alert('获取用户信息失败:' + JSON.stringify(error) )
console
.
log
(
"获取用户信息失败:"
,
error
);
});
},
},
getUserPassword
()
{
getUserPassword
()
{
this
.
$nativeApi
.
account
this
.
$nativeApi
.
account
.
getUserPassword
()
.
getUserPassword
()
.
then
((
data
)
=>
{
.
then
((
data
)
=>
{
// alert('V+用户密码:' + JSON.stringify(data))
// alert('V+用户密码:' + JSON.stringify(data))
this
.
$store
.
commit
(
"updateVUserInfo"
,
{
this
.
$store
.
commit
(
"updateVUserInfo"
,
{
userPassword
:
data
,
userPassword
:
data
,
});
})
.
catch
((
error
)
=>
{
// alert('获取用户密码失败:' + JSON.stringify(error))
console
.
log
(
"获取用户密码失败:"
,
error
);
});
});
})
.
catch
((
error
)
=>
{
// alert('获取用户密码失败:' + JSON.stringify(error))
console
.
log
(
"获取用户密码失败:"
,
error
);
});
},
},
},
},
created
()
{
created
()
{
...
@@ -248,8 +265,8 @@ export default {
...
@@ -248,8 +265,8 @@ export default {
_this
.
$store
.
commit
(
"setNavbarShow"
,
true
);
_this
.
$store
.
commit
(
"setNavbarShow"
,
true
);
if
(
if
(
(
to
.
name
==
"homepage"
&&
from
.
name
==
"subject"
)
||
(
to
.
name
==
"homepage"
&&
from
.
name
==
"subject"
)
||
(
to
.
name
==
"subject"
&&
from
.
name
==
"homepage"
)
(
to
.
name
==
"subject"
&&
from
.
name
==
"homepage"
)
)
{
)
{
if
(
_this
.
isShowTransition
)
{
if
(
_this
.
isShowTransition
)
{
_this
.
isShowTransition
=
false
;
_this
.
isShowTransition
=
false
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment