Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hls-xcmg-vue-app
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xugong
hls-xcmg-vue-app
Commits
62f6ca6c
Commit
62f6ca6c
authored
Dec 01, 2023
by
jiacheng.mao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
旧sdk的ios分支
parent
c967d4e5
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
452 additions
and
444 deletions
+452
-444
config.xml
config.xml
+4
-0
dev.env.js
config/dev.env.js
+5
-4
prod.env.js
config/prod.env.js
+1
-0
uat.env.js
config/uat.env.js
+1
-0
android.json
plugins/android.json
+1
-1
yyzz_sy.jpg
src/assets/myInfo/yyzz_sy.jpg
+0
-0
zzq_sy.jpg
src/assets/myInfo/zzq_sy.jpg
+0
-0
main.js
src/main.js
+42
-40
location.vue
src/pages/home/location.vue
+2
-2
login.vue
src/pages/login.vue
+227
-221
PrivacyPolicy.vue
src/pages/myInfo/PrivacyPolicy.vue
+6
-173
business-license.vue
src/pages/myInfo/business-license.vue
+40
-0
related-licenses.vue
src/pages/myInfo/related-licenses.vue
+56
-0
setting.vue
src/pages/myInfo/setting.vue
+53
-3
index.js
src/router/index.js
+14
-0
No files found.
config.xml
View file @
62f6ca6c
...
...
@@ -12,6 +12,8 @@
<access
launch-external=
"yes"
origin=
"mailto:*"
/>
<access
launch-external=
"yes"
origin=
"tel:*"
/>
<access
launch-external=
"yes"
origin=
"https://sign-pub.qsign.com.cn/*"
/>
<access
launch-external=
"yes"
origin=
"https://sign-test.qsign.com.cn/*"
/>
<access
launch-external=
"yes"
origin=
"https://www.xcmgfs.com/*"
/>
<allow-intent
href=
"http://*/*"
/>
<allow-intent
href=
"https://*/*"
/>
<allow-intent
href=
"mailto:*"
/>
...
...
@@ -25,6 +27,8 @@
<allow-navigation
href=
"https://docs.jiguang.cn/*"
/>
<allow-navigation
href=
"https://www.rongcloud.cn/*"
/>
<allow-navigation
href=
"https://sign-pub.qsign.com.cn/*"
/>
<allow-navigation
href=
"https://sign-test.qsign.com.cn/*"
/>
<allow-navigation
href=
"https://www.xcmgfs.com/*"
/>
<access
launch-external=
"yes"
origin=
"tel:*"
/>
<access
launch-external=
"yes"
origin=
"sms:*"
/>
<preference
name=
"ScrollEnabled"
value=
"false"
/>
...
...
config/dev.env.js
View file @
62f6ca6c
...
...
@@ -5,11 +5,12 @@ module.exports = {
debug
:
true
,
isMobilePlatform
:
true
,
loginPath
:
'"http://180.104.121.66:8088/oauth/token?client_id=client2&client_secret=secret&grant_type=password&username=appadmin&password=" '
,
basePath
:
'"http://180.104.121.66:8088/r/api/interface?sysName=XCMG_
DEV
&apiName="'
,
basePath
:
'"http://180.104.121.66:8088/r/api/interface?sysName=XCMG_
UAT
&apiName="'
,
rootPath
:
'"http://180.104.121.66:8088/r/api"'
,
filePath
:
'"http://180.104.121.66:8088/r/api/app/fileViewSvc?sysName=XCMG_
DEV
&apiName=file_view&"'
,
filePath
:
'"http://180.104.121.66:8088/r/api/app/fileViewSvc?sysName=XCMG_
UAT
&apiName=file_view&"'
,
ocrPath
:
'"http://180.104.121.66:8088/r/api"'
,
fileUploadSvcPath
:
'"http://180.104.121.66:8088/r/api/app/fileUploadSvc?sysName=XCMG_DEV&apiName="'
,
fileUploadSvcPath
:
'"http://180.104.121.66:8088/r/api/app/fileUploadSvc?sysName=XCMG_UAT&apiName="'
,
privacyPath
:
'"http://180.104.121.66:8090/html/PrivacyPolicy.html"'
,
appId
:
'"com.xcmg.app.dev"'
,
currentVersion
:
'"
3.7.8
"'
currentVersion
:
'"
4.3.1
"'
}
config/prod.env.js
View file @
62f6ca6c
...
...
@@ -10,6 +10,7 @@ module.exports = {
filePath
:
'"http://www.xcmgfs.com:8087/r/api/app/fileViewSvc?sysName=XCMG_PROD&apiName=file_view&"'
,
ocrPath
:
'"http://www.xcmgfs.com:8087/r/api"'
,
fileUploadSvcPath
:
'"http://www.xcmgfs.com:8087/r/api/app/fileUploadSvc?sysName=XCMG_PROD&apiName="'
,
privacyPath
:
'"http://www.xcmgfs.com:8087/html/PrivacyPolicy.html"'
,
appId
:
'"com.xcmg.app"'
,
currentVersion
:
'"0.5.0"'
}
config/uat.env.js
View file @
62f6ca6c
...
...
@@ -10,6 +10,7 @@ module.exports = {
filePath
:
'"http://180.104.121.66:8088/r/api/app/fileViewSvc?sysName=XCMG_UAT&apiName=file_view&"'
,
ocrPath
:
'"http://180.104.121.66:8088/r/api"'
,
fileUploadSvcPath
:
'"http://180.104.121.66:8088/r/api/app/fileUploadSvc?sysName=XCMG_UAT&apiName="'
,
privacyPath
:
'"http://180.104.121.66:8090/html/PrivacyPolicy.html"'
,
appId
:
'"com.xcmg.app.dev"'
,
currentVersion
:
'"4.3.1"'
}
plugins/android.json
View file @
62f6ca6c
src/assets/myInfo/yyzz_sy.jpg
0 → 100755
View file @
62f6ca6c
436 KB
src/assets/myInfo/zzq_sy.jpg
0 → 100755
View file @
62f6ca6c
1.04 MB
src/main.js
View file @
62f6ca6c
...
...
@@ -59,14 +59,14 @@ import hlsUtil from './scripts/hlsUtil'
/**
* jpush jmessage
*/
import
Jpush
from
'./scripts/jpushService'
//
import Jpush from './scripts/jpushService'
import
Jmessage
from
'./scripts/jmessageService'
//
import Jmessage from './scripts/jmessageService'
// || process.env.CONFIG_ENV === 'prod'
if
(
process
.
env
.
CONFIG_ENV
===
'uat'
)
{
const
VConsole
=
require
(
'vconsole'
)
new
VConsole
()
// eslint-disable-line
}
else
if
(
process
.
env
.
CONFIG_ENV
===
'dev'
)
{
}
else
if
(
process
.
env
.
CONFIG_ENV
===
'dev'
)
{
const
VConsole
=
require
(
'vconsole'
)
new
VConsole
()
// eslint-disable-line
}
...
...
@@ -107,9 +107,9 @@ Vue.prototype.PDFJS = window.PDFJS = PDFJS
Vue
.
prototype
.
hlsUtil
=
window
.
hlsUtil
=
hlsUtil
Vue
.
prototype
.
Jpush
=
window
.
Jpush
=
Jpush
//
Vue.prototype.Jpush = window.Jpush = Jpush
Vue
.
prototype
.
Jmessage
=
window
.
Jmessage
=
Jmessage
//
Vue.prototype.Jmessage = window.Jmessage = Jmessage
/**
* 全局返回上一页面
...
...
@@ -129,12 +129,13 @@ Vue.config.productionTip = false
let
backButtonPressedOnceToExit
vum
.
$vumPlatform
.
ready
(
function
()
{
if
(
window
.
localStorage
.
isReadPolicy
===
'true'
)
{
vum
.
$vumPlatform
.
ready
(
function
()
{
if
((
vum
.
Platform
.
isAndroid
())
||
(
vum
.
Platform
.
isIOS
()))
{
/* window.getRegistrationID = function (callback){
callback('')
} */
try
{
/*
try {
setTimeout(function () {
navigator.splashscreen.hide()
if (window.plugins.jPushPlugin) {
...
...
@@ -145,7 +146,7 @@ vum.$vumPlatform.ready(function () {
}
}, 40)
} catch (e) {
}
} */
if
(
window
.
cordova
&&
window
.
cordova
.
plugins
&&
window
.
cordova
.
plugins
.
Keyboard
)
{
cordova
.
plugins
.
Keyboard
.
hideKeyboardAccessoryBar
(
true
)
cordova
.
plugins
.
Keyboard
.
disableScroll
(
true
)
...
...
@@ -164,7 +165,8 @@ vum.$vumPlatform.ready(function () {
window
.
localStorage
.
setItem
(
'height'
,
winSize
.
height
)
}
}
})
})
}
vum
.
$vumPlatform
.
registerBackButtonAction
(
function
(
e
)
{
// let vm = this
...
...
src/pages/home/location.vue
View file @
62f6ca6c
...
...
@@ -111,7 +111,7 @@ export default {
// console.log(error)
// }, {enableHighAccuracy: true})
// } else { // ios使用插件定位
baidumap_location
.
getCurrentPosition
(
function
(
result
)
{
/*
baidumap_location.getCurrentPosition(function (result) {
console.log('*********** ' + JSON.stringify(result))
window.localStorage.setItem('province', result.province)
window.localStorage.setItem('city', result.city)
...
...
@@ -122,7 +122,7 @@ export default {
vm.province_flag = true
}, function (error) {
console.log('errorerrorerrorerror ' + error)
})
})
*/
// }
},
...
...
src/pages/login.vue
View file @
62f6ca6c
<
template
>
<
h-content
id=
"login"
>
<
scroll
id=
"login"
>
<transition
name=
"trans"
>
<div
v-show=
"downNum"
class=
"modal-show"
>
<div
class=
"down"
>
...
...
@@ -11,27 +11,27 @@
</div>
</div>
</transition>
<div
class=
"bird-icon"
/>
<div
class=
"bird-icon"
/>
<div
class=
"login-wrap"
>
<img
class=
"title"
src=
"../assets/login/right-title.png"
>
<img
class=
"title"
src=
"../assets/login/right-title.png"
>
<div
class=
"pwd"
>
<div
class=
"pwd-input"
>
<input
id=
"userInput"
v-model=
"username"
class=
"user"
type=
"text"
placeholder=
"请输入用户名/手机号"
>
id=
"userInput"
v-model
.
trim
=
"username"
class=
"user"
type=
"text"
placeholder=
"请输入用户名/手机号"
>
</div>
<div
v-if=
"username"
class=
"delete"
@
click=
"clearAccount"
>
<img
src=
"../assets/login/login-delete.png"
>
<img
src=
"../assets/login/login-delete.png"
>
</div>
</div>
<div
class=
"pwd"
>
<div
class=
"pwd-input"
>
<input
id=
"passwordInput"
v-model=
"password"
:type=
"pwdType"
placeholder=
"请输入密码"
oninput=
"value=value.replace(/[^\w\.\&\/\|\,\\_\-\+\=\[\]\
{\}\'\^\%\$\@\!\~\`\*\《\》\
<
\
>
\/\;\:\,\,\。\【\】\?\?\、\;\:\‘\“\(\#)]/i,'')">
oninput=
"value=value.replace(/[^\w\.\&\/\|\,\\_\-\+\=\[\]\
{\}\'\^\%\$\@\!\~\`\*\《\》\
<
\
>
\/\;\:\,\,\。\【\】\?\?\、\;\:\‘\“\(\#)]/i,'')"
>
</div>
<div
v-if=
"password"
class=
"delete"
@
click=
"changeType"
>
<img
:src=
"openEye"
>
<img
:src=
"openEye"
>
</div>
</div>
<div
class=
"other-function"
>
...
...
@@ -44,9 +44,12 @@
</div>
</div>
</
h-content
>
</
scroll
>
</
template
>
<
script
>
// import Jpush from "../scripts/jpushService";
// import Jmessage from "../scripts/jmessageService";
var
CryptoJS
=
require
(
'crypto-js'
)
export
default
{
data
()
{
...
...
@@ -103,13 +106,10 @@ export default {
},
methods
:
{
async
goHome
()
{
this
.
hlsPopup
.
showLoading
(
'请稍等'
)
let
flag
=
await
this
.
getAccessToken
()
this
.
hlsPopup
.
hideLoading
()
if
(
flag
)
{
this
.
$router
.
push
({
name
:
'HomePage'
,
})
// this.initJPush()
this
.
$router
.
push
(
'tab'
)
}
},
changeType
()
{
...
...
@@ -142,14 +142,8 @@ export default {
if
(
res
.
result
===
'S'
&&
res
.
info
.
login_flag
===
'Y'
)
{
vm
.
hlsPopup
.
hideLoading
()
// vm.updateVersion() // 版本更新
window
.
localStorage
.
setItem
(
'user_phone'
,
vm
.
username
)
window
.
localStorage
.
setItem
(
'password'
,
md5passwprd
)
// vm.$router.push({
// name: 'HomePage',
// })
vm
.
$router
.
push
(
'/choose-user'
)
window
.
localStorage
.
setItem
(
'user_phone'
,
vm
.
username
)
window
.
localStorage
.
setItem
(
'app_user_id'
,
res
.
info
.
app_user_id
)
// vm.$router.push('tab')
vm
.
$router
.
push
(
'/choose-user'
)
...
...
@@ -308,6 +302,46 @@ export default {
},
})
},
/* initJPush () {
if (window.localStorage.isReadPolicy === 'true') {
vum.$vumPlatform.ready(function () {
if ((vum.Platform.isAndroid()) || (vum.Platform.isIOS())) {
/!* window.getRegistrationID = function (callback){
callback('')
} *!/
try {
setTimeout(function () {
navigator.splashscreen.hide()
if (window.plugins.jPushPlugin) {
Jpush._init()
}
if (window.JMessagePlugin) {
Jmessage._init({'isOpenMessageRoaming': true})
}
}, 40)
} catch (e) {
}
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true)
cordova.plugins.Keyboard.disableScroll(true)
}
if (window.StatusBar) {
window.StatusBar.styleDefault()
window.StatusBar.backgroundColorByName('white')
}
const winSize = vum.$vumPlatform.getWinSize()
if (winSize.width) {
window.localStorage.setItem('width', winSize.width)
}
if (winSize.height) {
window.localStorage.setItem('height', winSize.height)
}
}
})
}
}, */
},
}
</
script
>
...
...
@@ -317,13 +351,11 @@ export default {
.trans-leave-active {
transition: opacity 0.5s;
}
.trans-enter,
.trans-leave-active {
opacity: 0;
}
#login {
#login {
background: url("../assets/login/back.png") no-repeat;
background-size: 100% 100%;
background-position-x: 0px;
...
...
@@ -331,13 +363,11 @@ export default {
width: 100%;
height: 100%;
margin: 0 auto;
.scrollContent {
display: flex;
justify-content: center;
align-items: center;
}
.modal-show {
width: 100%;
height: 100%;
...
...
@@ -347,18 +377,16 @@ export default {
background-color: rgba(56, 63, 69, 0.3);
justify-content: center;
align-items: center;
.policy {
width: 80%;
height: 90%;
margin: 0 auto;
.policy{
width:80%;
height:90%;
margin:0 auto;
display: flex;
justify-content: center;
flex-direction: column;
flex-wrap: wrap;
align-items: center;
}
.down {
position: relative;
width: 301px;
...
...
@@ -370,7 +398,6 @@ export default {
background-size: 301px 24.7px;
background-color: #fff;
border-radius: 8px;
p {
font-family: PingFangSC-Semibold;
font-size: 16px;
...
...
@@ -378,7 +405,6 @@ export default {
margin-top: 16px;
flex: 2;
}
span {
font-family: PingFangSC-Regular;
font-size: 14px;
...
...
@@ -389,7 +415,6 @@ export default {
letter-spacing: 0;
// margin-top: 6px;
}
button {
width: 159px;
flex: 2;
...
...
@@ -403,13 +428,11 @@ export default {
}
}
}
.bird-icon {
padding-top: 30%;
background: url("../assets/login/right.png") 90% no-repeat;
background-size: 51px 25px;
}
.login-wrap {
width: 87%;
height: 355px;
...
...
@@ -419,45 +442,37 @@ export default {
// margin-top: 15%;
margin-top: 6%;
padding: 32px 24px;
.title {
width: 227px;
height: 71px;
margin-left: -10px;
}
}
.pwd {
position: relative;
width: 279px;
margin: 0 auto;
display: flex;
display: -webkit-flex;
.pwd-icon {
margin-top: 2px;
margin-right: 6px;
margin-left: 4px;
img {
width: 18px;
height: 20px;
}
}
.pwd-input {
width: 100%;
.user {
background: url("../assets/login/phone.png") 2px 2px no-repeat;
background-size: 25px 25px;
}
#passwordInput {
background: url("../assets/login/passwordConfirm.png") 2px 2px no-repeat;
background-size: 25px 25px;
}
input {
width: 100%;
text-indent: 30px;
...
...
@@ -470,27 +485,23 @@ export default {
align-items: center;
border-bottom: 1px solid rgba(42, 42, 42, 0.4);
margin-top: 30px;
border-top:
1px solid #FFF;
border-top:
1px solid #FFF;
border-left: 1px solid #FFF;
border-right: 1px solid #FFF;
}
input:focus {
border-bottom: 1px solid #1d3fff;
}
input::-webkit-input-placeholder {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(75, 74, 75, 0.4);
}
}
.delete {
position: absolute;
right: -15px;
top: 30px;
img {
margin-right: 20px;
margin-top: 5px;
...
...
@@ -499,7 +510,6 @@ export default {
}
}
}
.other-function {
width: 279px;
margin: 0 auto;
...
...
@@ -513,12 +523,10 @@ export default {
justify-content: space-between;
-webkit-justify-content: space-between;
}
.both-button {
.both-button{
display: flex;
justify-content: space-around;
}
.submit {
background: #1d3fff;
border-radius: 4px;
...
...
@@ -533,13 +541,11 @@ export default {
-webkit-justify-content: center;
align-items: center;
-webkit-align-items: center;
&.activated {
opacity: 0.8;
-webkit-transform: scale(1, 1);
transform: scale(1, 1);
}
}
.connect {
height: 100%;
}
...
...
src/pages/myInfo/PrivacyPolicy.vue
View file @
62f6ca6c
...
...
@@ -6,179 +6,10 @@
<span>
隐私政策
</span>
</div>
</h-header>
<h-content
class=
""
>
<p
class=
"title"
style=
"text-align: center"
>
隐私声明
</p>
<p>
徐工金服知道您关心我们收到的有关您的个人数据是如何被使用和共享的,我们会认真对待您的隐私。
本隐私声明描述了徐工金服如何通过所提供的软件应用程序及运营的网站收集的信息隐私惯例,
包括我们通过该网站及相关移动应用收集(统称为“域名”)的信息,通过我们的社交媒体页面(统称为“社交媒体页面”)收集的信息,
以及我们在线和离线提供的其他服务和通过我们发送给您的电子邮件收集到的信息(统称包括域,应用和社交媒体页面,“站点”)。
“您”或“用户”是指访问或以其他方式使用本网站的任何个人。
</p>
<p>
本隐私声明不适用于徐工金服不拥有或控制的第三方的做法,也不适用于徐工金服不雇用或管理的个人。
本隐私声明也不适用于我们作为软件提供商代表我们的订户收到或处理的信息,
例如我们通过徐工金服的服务收到的信息,包括我们提供的任何应用程序租户使用(统称为“订阅服务”)。
此类信息受适用的订阅服务协议条款的约束,而非本隐私声明。
</p>
<p
class=
"title"
>
同意条款?
</p>
<p>
在使用徐工金服产品/服务(包括但不限于产品、服务、网站、邮件等)等各项服务前,请您务必仔细阅读并透彻理解本《隐私政策》,
在确认充分理解并同意后方使用相关产品和服务。一旦您开始使用徐工金服提供的产品/服务,
将被视为对本政策内容的接受和认可,使用本网站即表示您同意接受此处所述的信息收集和使用。
</p>
<p>
为什么需要我提供个人数据?一般而言,您授予同意和提供任何个人数据完全是自愿的;如果您选择不同意或不提供个人数据,一般也不会对您产生任何不利影响。但是,在一些情况下,
若徐工金服无法获取您的特定个人数据,就无法采取相应的行动,
比如,需要利用您的个人数据来处理您的订单,或为您提供访问徐工金服或其关联公司相关网站的权限。在这些情况下,如果没有相关的个人数据,徐工金服就无法满足您的请求。
</p>
<p>
此外,您确认,徐工租赁及徐工集团关联公司(根据相关公司运营所在国家/地区的要求,无论您是否明确同意接收还是选择终止接收营销资料)均可保存、
交换或追踪您关于处理或使用个人数据或接收营销资料的选择所需的任何信息。
</p>
<p
class=
"title"
>
徐工金服收集哪些类型的信息?
</p>
<p>
1、个人资料。“个人数据”是指直接或间接识别您或其他个人的信息,其中可能包括:姓名,职称,公司名称,
工作职能,专业知识,邮政地址,电话号码,电子邮件地址,浏览器和设备信息(包括IP)地址),
以及通过cookie和其他类似技术收集的信息。如果您向我们或与本网站相关的服务提供商提交与其他人有关的任何个人数据,
则表示您有权这样做并允许我们根据本隐私声明使用这些信息。
</p>
<p>
2、其他信息。“其他信息”是指不会也不能用于透露您的身份或其他个人身份的任何信息,
例如已完全永久匿名和汇总的信息。我们使用此信息来促进我们的网站运营以及下文所述的其他目的。
</p>
<p
class=
"title"
>
徐工金服如何收集信息?
</p>
<p>
我们和我们的服务提供商以各种方式收集个人数据和其他信息,包括:
</p>
<p>
1.通过网站:我们通过网站收集信息,例如,当您申请免费试用或演示,注册网络研讨会,
联系我们,订阅我们的电子邮件通讯,下载产品内容(例如产品白皮书)或注册试用我们的软件服务。
</p>
<p>
2.离线:我们离线收集您的信息,例如您参加我们的某个活动,与销售代表打电话或与徐工金服代表联系时。
</p>
<p>
3.通过您:当您自愿提供信息时,注册成为徐工金服用户,
以便我们为您提供基础服务,诸如即时通讯、创建群等沟通功能,
您需要提供您的手机号码及短信验证码以注册并创建徐工金服帐号,否则您将不能使用服务。注册成为徐工金服用户后,
你可能需要进一步提供姓名、头像、昵称、性别、生日、工作地区、企业邮箱等基础信息。另外,还可能需要获得您的授权,
使用手机摄像头、有脸识别、同步相册、同步联系人、使用SIM或IMEI、使用微信QQ等第三方登录方式、获取指纹解锁。
徐工金服会收集您的位置或您首选的通信方式等信息。除非与个人数据结合使用,否则此信息不会识别您或本网站的任何其他用户。
</p>
<p>
4.来自其他来源的信息:为了增强我们为您提供相关营销,优惠和服务的能力,
我们从其他来源获取有关您的信息,例如公共数据库,联合营销合作伙伴,社交媒体平台以及其他第三方。
</p>
<p>
5.通过浏览器或设备:大多数浏览器或通过您的设备自动收集某些信息,
例如您的媒体访问控制(MAC)地址,计算机类型(Windows或Macintosh),
屏幕分辨率,操作系统名称和版本,设备制造商和模型,语言,Internet浏览器类型和版本,
以及您正在使用的站点(例如应用程序)的名称和版本。您的“IP地址”是一个自动分配给您的Internet服务提供商(ISP)
使用的计算机的号码。无论何时访问站点,都可以在我们的服务器日志文件中自动识别和记录IP地址,以及访问时间和您访问的页面。
收集IP地址是标准做法,由许多网站,应用程序和其他服务自动完成。徐工金服使用IP地址来计算站点的使用级别,帮助诊断其服务器的问题,
管理站点以及监控导航到徐工金服站点的区域。。
</p>
<p>
6.通过使用应用程序:当您下载和使用应用程序时,
我们和我们的服务提供商会跟踪和收集应用程序使用数据,
例如设备上的应用程序访问我们的服务器的日期和时间以及已下载的信息和文件根据您的设备号码。
</p>
<p>
7.通过Cookie和其他类似技术:“Cookie”包括小文件形式的常用信息,这些信息放置在个人设备上,
使个人能够更轻松地与网站进行通信和交互。当您访问我们的网站时,我们可能会向您的设备发送一个或多个Cookie。
它们使我们能够存储有关您设备的信息,这有助于我们在您浏览我们的网站时提供良好的体验,
并提高您提供的服务和功能。徐工金服识别有关跟踪机制的自动浏览器信号,其中可能包括“不跟踪”指令。
</p>
<p>
8.通过汇总信息:汇总的个人数据不会识别您或网站的任何其他用户(例如,我们可能汇总个人数据以计算具有特定电话区号的用户的百分比)。
</p>
<p>
9.使用第三方产品和服务:在您通过徐工金服客户端个人支付宝(钱包)和企业办公支付功能实现收付、转账、红包等支付相关功能时,
您同意徐工金服公司获取支付宝提供您的个人基础信息(UserID、头像、昵称等信息)及身份信息(姓名)以便开通或绑定支付宝账号;
您同意在上述支付功能开通期间,授权徐工金服公司获得您登录徐工金服账号所绑定的支付宝账户信息(含昵称、头像、账户名),
否则您将无法使用收付、转账、红包等支付相关功能。您在使用支付宝公司的支付相关服务时,需阅读并遵守《支付宝服务协议》、《支付宝隐私权政策》等协议和规则。
</p>
<p
class=
"title"
>
徐工金服如何使用个人数据?
</p>
<p>
我们使用个人资料:
</p>
<p>
1.回复您的询问并满足您的要求,例如向您发送所需材料和新闻通讯,以及有关我们产品和服务的信息和材料。
</p>
<p>
2.向您发送管理信息,例如,有关站点的信息以及我们的条款,条件和政策的更改。
</p>
<p>
3.根据适用法律并根据您的偏好向您发送营销信息,包括我们认为您可能感兴趣的电子邮件和短信。
</p>
<p>
4.通过展示为您量身定制的产品和优惠,个性化您在网站上的体验。
</p>
<p>
5.用于我们的业务目的,例如数据分析,审计,欺诈监控和预防,开发新产品,增强,
改进或修改我们的站点和服务,识别使用趋势,确定促销活动的有效性以及运营和扩展我们的业务活动。
</p>
<p>
6.我们将会:
</p>
<p>
(a)根据适用法律,包括您居住国以外的法律;
</p>
<p>
(b)遵守法律程序;
</p>
<p>
(c)回应公共和政府当局的请求,不包括中国以外的公共和政府当局;
</p>
<p>
(d)执行我们的条款和条件;
</p>
<p>
(e)保护我们的业务或我们任何关联公司的业务;
</p>
<p>
(f)我们将会保护我们的权利,隐私,安全或财产,或我们的关联公司,您或他人的权利;
</p>
<p>
(g)允许我们寻求可用的补救措施或限制我们可能承受的损害赔偿。
我们收集和使用上述个人数据的法律依据将取决于相关的个人数据以及我们收集的具体情况。我们将收集和使用您的个人数据,
其中处理符合我们的合法商业利益,例如直接推广徐工金服的租赁平台和应用程序给潜在的企业对企业(B2B)客户。
在某些情况下处理个人数据的法律依据也将基于您的同意或我们需要与您签订合同。在某些情况下,我们可能还有法律义务向您收集个人数据。
</p>
<p>
如果我们要求您提供个人数据以遵守法律要求或与您签订合同,我们将在相关时间明确说明您是否必须提供您的个人数据
(以及如果您不提供您的个人数据可能产生的后果)。
</p>
<p
class=
"title"
>
徐工金服如何分享它收到的个人数据?
</p>
<p>
在以下情况,徐工金服将披露经过处理的个人数据(无法识别特定个人且该数据不能复原)。
</p>
<p>
1.子公司和关联公司:
</p>
<p>
我们出于本隐私声明中所述的目的向我们的子公司和关联公司披露个人数据。徐工金服是负责管理共同使用的个人数据的一方。
</p>
<p>
2.第三方业务合作伙伴:
</p>
<p>
徐工金服与各种业务合作,并与他们密切合作,以推广或销售产品或服务。在某些情况下,
这些企业在网站内运营。出于上述目的,我们可能会向合作伙伴披露个人数据。
我们的一些第三方业务合作伙伴与徐工金服共同赞助了活动和其他产品。当您注册参加活动或产品时,
我们可能会与这些共同赞助商共享个人数据,以允许我们的合作伙伴向您发送适用法律允许的您可能感兴趣的营销信息。
</p>
<p>
3.代理商和服务提供商:
</p>
<p>
我们与其他公司和人员签订合同,代表我们执行任务,并与其中一些人分享您的个人数据,为您提供产品或服务,
或以其他方式与您沟通,例如代表我们提供促销。示例包括从客户列表中删除重复信息,分析数据,提供营销协助,
进行计费,处理信用卡付款,为我们的服务提供技术支持,提供客户服务以及执行与我们的产品或服务相关的分析。
我们还向代理商和服务提供商提供您的个人数据,以验证或汇总我们向合作伙伴提供的汇总使用数据。当我们以这种方式共享此信息时,
我们要求代理或服务提供商维护个人数据的隐私,机密性和安全性。
</p>
<p>
4.徐工金服博客和社交媒体页面:
</p>
<p>
您也可以通过网站,留言板,聊天,个人资料页面和博客以及您可以发布信息和材料的其他服务来披露个人数据。此信息可以以公共方式显示,
例如通过搜索引擎或其他公共可用平台,并且可以被第三方“抓取”或搜索。请不要将您不想透露的任何信息发布给公众。
</p>
<p>
5.分析和自动决策:
</p>
<p>
徐工金服结合了通过第2节中描述的方法获得的数据,帮助我们确定您可能感兴趣的产品和服务,以及您何时可以根据与徐工金服网站,
电子邮件和内容的重复交互进行购买。徐工金服营销和销售人员参与了这一过程,并且没有做出会导致法律效力或类似地显着影响个人的自动决策。
</p>
<p>
6.保护徐工金服和其他人:
</p>
<p>
我们认为必要且适用于执法,税务,欺诈预防,信用风险机构以及其他公司和组织的个人数据,原因在于上文第3节中的最后一个要点。
</p>
<p
class=
"title"
>
徐工金服如何使用和披露其他信息?
</p>
<p>
我们可以使用和披露其他非个人信息,除非我们根据适用法律要求另行提供。如果我们被要求根据适用法律将其他信息视为个人数据,
那么我们将以与我们使用和披露个人数据相同的方式使用或披露它。
</p>
<p>
在某些情况下,我们可能会将其他信息与个人数据相结合(例如将您的姓名与您组织的名称相结合)。如果该组合允许您进行识别,
我们会将合并后的信息视为个人数据,只要合并即可。
</p>
<p
class=
"title"
>
徐工金服如何使用和披露其他信息?
</p>
<p>
我们可以使用和披露其他非个人信息,除非我们根据适用法律要求另行提供。
如果我们被要求根据适用法律将其他信息视为个人数据,那么我们将以与我们使用和披露个人数据相同的方式使用或披露它。
</p>
<p>
在某些情况下,我们可能会将其他信息与个人数据相结合(例如将您的姓名与您组织的名称相结合)。如果该组合允许您进行识别,
我们会将合并后的信息视为个人数据,只要合并即可。
</p>
<p
class=
"title"
>
徐工金服如何保护关于我的个人数据?
</p>
<p>
我们已实施适当的组织,技术和管理措施来保护组织内的个人数据,包括安全控制,
以防止未经授权访问我们的系统。虽然我们采取合理措施保护您的个人数据免遭丢失,
误用,干扰和未经授权的访问,修改和披露,但您应该知道,任何安全程序或协议都不能保证100%免于入侵或黑客攻击,
因此总是通过在线共享个人数据来承担一定风险。如果您有理由相信您与我们的互动不再安全(例如,如果您认为自己的帐户安全性受到损害),
请立即按照下面的“问题,疑虑和投诉”部分通知我们。
</p>
<p
class=
"title"
>
如何访问,更正,修改或删除有关我的信息?
</p>
<p>
如果您想访问,更正,修改,删除或限制使用或披露由徐工金服收集和存储的任何个人数据,或将其转移到其他组织,请通过xgzl@xcmg.com通知我们。
以便我们根据适用法律考虑并回复您的请求。如果您想反对处理您的个人数据用于直接营销目的,请使用第9节(“我有什么选择?”)中概述的机制。
</p>
<p>
为了保护您的利益,我们仅针对与您向我们发送请求的特定电子邮件地址相关的个人数据实施请求,我们需要在实施您的请求之前验证您的身份。我们将在30天内回复您的请求。
请注意,我们需要保留某些信息用于记录目的和/或完成您在请求访问,更改或删除之前开始的任何交易。
</p>
<p
class=
"title"
>
徐工金服将保留多久我的个人数据?
</p>
<p>
我们将保留您的个人数据一段时间,以符合最初的收集目的,包括追求我们的合法商业利益,遵守我们的法律义务,解决纠纷和执行适用的协议。
</p>
<p>
您的权利
</p>
<p>
您始终可以选择不披露信息。但是,如果您选择这样做,我们可能会限制您回复您的询问或向您提供服务;您所享有的权利如下:
</p>
<p>
请求删除的权利。您可以随时向徐工金服请求徐工金服处理的与您有关的个人数据的信息,以及对任何此类个人数据的更正或删除。
但是,请注意,徐工金服可以删除您的个人数据,但前提是徐工金服不具有保留此类数据的法定义务或合法权益。
另请注意,如果您请求徐工金服删除您的个人数据,您将无法继续使用任何需要徐工金服使用您的个人数据的徐工金服服务。
</p>
<p>
数据处理的权利。若发生以下任一情况,您可以要求徐工金服阻止对您的个人数据作任何进一步的处理:
(i)您表明徐工金服拥有的关于您的个人数据不正确;(ii)徐工金服对您个人数据的处理没有任何法律依据,
且您要求徐工金服阻止对您的个人数据作进一步的处理;或者(iii)徐工金服不再需要您的个人数据,
但您声称要求徐工金服保留此类数据,以便提出或行使法律权利或就第三方诉讼进行抗辩,或(iv)
您反对徐工金服处理您的个人数据,但前提是需要审查徐工金服是否拥有合法权益或法定义务来处理您的个人数据。
</p>
<p>
投诉的权利。若您认为徐工金服未根据本声明规定的要求或相关法律法规处理您的个人数据,您可以随时向国家有关行政部门投诉。
</p>
<p>
反对权利。您可以通过点击【不同意】选择退出,反对徐工金服出于本政策目的使用您的个人数据。如果您选择退出,
徐工金服将停止出于上述目的(也就是说依据上述合法权益)使用您的个人数据并将其从系统中删除,
除非徐工金服获许出于本隐私权声明所述的其他目的使用此类个人数据,或拥有明确的合法权益来继续处理您的个人数据。
</p>
<p>
撤回依据本声明授予的同意。您可以通过书面申请进行终止,随时撤回依据本声明授予的同意。
如果撤回,除非法律要求,否则徐工金服将不会再处理与该同意相关的个人数据。若出于法律原因徐工金服需要保留您的个人数据,
您的个人数据将不会进行进一步处理且保留期限不会超过法律要求的期限。但是,任何撤回均不会对徐工金服之前对个人数据的处理产生影响,
直至您撤回同意。此外,如果您使用徐工金服产品/服务时需要事先经过您的同意,在您撤回同意之后,徐工金服将无法向您提供相关的产品/服务。
</p>
<p>
您可以通过电子邮件中的取消订阅或退订链接取消订阅,或发送电子邮件至xgzl@xcmg.com,选择不接收徐工金服或我们的关联公司的营销消息。
我们将在合理可行的范围内尽快遵守您的请求。请注意,如果您选择不接收我们发送的与营销相关的电子邮件,我们仍可能会向您发送重要的管理消息。
</p>
<p
class=
"title"
>
第三方网站
</p>
<p>
网站允许您通过直接链接或通过“共享”或“点赞”按钮等应用程序链接到互联网上的其他网站,其他网站同样可能包含指向网站的链接。
此类其他网站的信息惯例或内容受这些网站的隐私声明的约束,
而不受本隐私声明的约束。我们建议您查看在此类其他网站,服务和应用程序中找到的隐私政策,以了解您的信息是如何收集和使用的。
</p>
<p>
同样,请注意我们不对其他组织的收集,使用和披露政策和实践(包括数据安全实践)负责,比如应用程序提供商,社交媒体平台提供商,操作系统提供商,
无线服务提供商或设备制造商,包括您通过应用程序或社交媒体页面向其他组织披露的任何个人数据。
</p>
<p
class=
"title"
>
敏感信息
</p>
<p>
我们要求您不要向我们发送或披露任何敏感的个人数据(例如,社会安全号码,与种族或族裔相关的信息,
性取向,政治观点,宗教或其他信仰,健康,生物识别或遗传特征,犯罪背景或社团会员资格)。
</p>
<p
class=
"title"
>
本隐私声明的变更
</p>
<p>
徐工金服可能会不时修改本隐私声明。本页底部的“更新日期”表示上次修订本隐私声明的时间。当我们在网站上发布修订后的隐私声明时,对本隐私声明的任何更改都将生效。
</p>
<p
class=
"title"
>
国际数据转移
</p>
<p>
您的个人数据可能在我们拥有设施或我们与服务提供商合作的任何国家/地区进行存储和处理,并且通过使用本网站或向我们披露信息,
您同意将信息传输到您所在国家/地区以外的国家/地区,可能具有与您所在国家/地区或您最初提供信息时所在国家/地区不同的数据保护规则。
如果需要,我们会制定一个解决方案,以确保在欧洲经济区以外转移的个人数据受到充分保护,即欧盟委员会标准合同条款。
</p>
<p
class=
"title"
>
问题,疑虑或投诉
</p>
<p>
你的隐私对我们很重要。如果您对我们作为数据控制者收集和处理您的信息的方式有任何疑问,顾虑或投诉,您可以发送电子邮件至xgzl@xcmg.com。
由于电子邮件通信并不总是安全的,因此请不要在我们的电子邮件中包含信用卡信息或其他敏感信息。
</p>
<p>
徐工金服将严肃对待任何隐私投诉,任何投诉将由适当的人员进行评估,以便及时有效地解决任何问题。我们要求您在此过程中与我们合作,
并向我们提供我们可能需要的任何相关信息。
</p>
<p>
您可能有权向数据保护机构投诉我们收集和使用您的个人数据。有关详细信息,请与您当地的数据保护机构联系。
</p>
<p>
最近更新日期:2020年01月10日
</p>
<h-content>
<iframe
:src=
"privacyPath"
width=
"100%"
height=
"100%"
frameborder=
"0"
scrolling=
"auto"
/>
</h-content>
<bottom-tab
v-if=
"buttonFlag"
>
<tab-button
@
click
.
native=
"privacyNo"
>
不同意
</tab-button>
...
...
@@ -193,6 +24,7 @@ export default {
data
()
{
return
{
buttonFlag
:
this
.
$route
.
params
.
button
,
privacyPath
:
process
.
env
.
privacyPath
,
}
},
activated
()
{
...
...
@@ -201,6 +33,7 @@ export default {
methods
:
{
privacyNo
()
{
window
.
localStorage
.
setItem
(
'isReadPolicy'
,
false
)
navigator
.
app
&&
navigator
.
app
.
exitApp
&&
navigator
.
app
.
exitApp
()
this
.
$routeGo
()
},
privacyAgree
()
{
...
...
src/pages/myInfo/business-license.vue
0 → 100644
View file @
62f6ca6c
<
template
>
<h-view
class=
"businessLicense public-style"
>
<h-header
:proportion=
"[5,1,1]"
class=
"bar-custom"
>
<div
slot=
"left"
class=
"h-header-btn"
@
click=
"$routeGo()"
>
<img
src=
"@/assets/userBind/arrow.png"
>
<span>
营业执照
</span>
</div>
</h-header>
<h-content>
<div
class=
"license"
>
<img
src=
"../../assets/myInfo/yyzz_sy.jpg"
style=
"width:100%;"
>
</div>
</h-content>
</h-view>
</
template
>
<
script
>
export
default
{
components
:
{},
data
()
{
return
{}
},
}
</
script
>
<
style
lang=
"less"
>
.businessLicense {
.content {
padding: 15px;
.title {
font-weight: 500;
text-indent: 0px;
}
}
.license{
}
}
</
style
>
src/pages/myInfo/related-licenses.vue
0 → 100644
View file @
62f6ca6c
<
template
>
<h-view
id=
"relatedLicenses"
class=
"public-style"
title=
"相关许可证"
>
<h-header
:proportion=
"[5,1,1]"
class=
"bar-custom"
>
<div
slot=
"left"
class=
"h-header-btn"
@
click=
"$routeGo()"
>
<img
src=
"@/assets/userBind/arrow.png"
>
<span>
相关许可证
</span>
</div>
</h-header>
<h-content>
<div
class=
"relatedLicenses"
>
<list-item
:item-height=
"50"
class=
"list"
>
<item
@
click
.
native=
"businessLicense()"
>
<div
slot=
"name"
style=
"color:#656464;"
>
营业执照
</div>
<div
class=
"arrow_right"
><img
src=
"@/assets/myInfo/arrow_right.png"
></div>
</item>
</list-item>
<list-item
:item-height=
"50"
class=
"list"
>
<item>
<div
slot=
"name"
style=
"color:#656464;"
>
苏ICP备2023042290号-2A
</div>
</item>
</list-item>
</div>
</h-content>
</h-view>
</
template
>
<
script
>
export
default
{
components
:
{},
data
()
{
return
{}
},
methods
:
{
businessLicense
()
{
this
.
$router
.
push
({
name
:
'BusinessLicense'
,
})
},
},
}
</
script
>
<
style
lang=
"less"
>
#relatedLicenses{
.content{
margin-top:0 ;
}
.arrow_right {
display: flex;
align-items: center;
img {
height: 20px;
}
}
}
</
style
>
src/pages/myInfo/setting.vue
View file @
62f6ca6c
...
...
@@ -11,7 +11,7 @@
<list-item
:item-height=
"66"
class=
"list"
>
<item
@
click
.
native=
"imgUploadShow(app_user_id)"
>
<div
slot=
"name"
style=
"color:#656464;"
>
修改头像
</div>
<div
class=
"arrow_right"
><img
src=
"@/assets/my
i
nfo/arrow_right.png"
></div>
<div
class=
"arrow_right"
><img
src=
"@/assets/my
I
nfo/arrow_right.png"
></div>
</item>
</list-item>
<list-item
:item-height=
"50"
class=
"list"
>
...
...
@@ -21,11 +21,11 @@
</item>
-->
<item
v-if=
"user_bp_type!='MANAGER'"
@
click
.
native=
"changeRole()"
>
<div
slot=
"name"
style=
"color:#656464;"
>
角色切换
</div>
<div
class=
"arrow_right"
><img
src=
"@/assets/my
i
nfo/arrow_right.png"
></div>
<div
class=
"arrow_right"
><img
src=
"@/assets/my
I
nfo/arrow_right.png"
></div>
</item>
<item
v-if=
"user_bp_type!='MANAGER'"
@
click
.
native=
"resetPwd()"
>
<div
slot=
"name"
style=
"color:red;"
>
修改密码
</div>
<div
class=
"arrow_right"
><img
src=
"@/assets/my
i
nfo/arrow_right.png"
></div>
<div
class=
"arrow_right"
><img
src=
"@/assets/my
I
nfo/arrow_right.png"
></div>
</item>
<item
@
click
.
native=
"updateVersion()"
>
<div
slot=
"name"
style=
"color:#656464;width:100%;display:flex;white-space:nowrap;align-items:center;"
>
版本更新
...
...
@@ -33,6 +33,14 @@
</div>
<div
slot=
"right-icon"
style=
"float:right;color:#383F45;opacity:0.4;"
>
当前版本
{{
currentVersion
}}
</div>
</item>
<item
@
click
.
native=
"relatedLicenses()"
>
<div
slot=
"name"
style=
"color:#656464;width:100%;display:flex;white-space:nowrap;align-items:center;"
>
相关许可证
</div>
<div
class=
"arrow_right"
><img
src=
"@/assets/myInfo/arrow_right.png"
></div>
</item>
<item
@
click
.
native=
"unRegiester()"
>
<div
slot=
"name"
style=
"color:red;"
>
注销账号
</div>
<div
class=
"arrow_right"
><img
src=
"@/assets/myInfo/exit.png"
></div>
</item>
<!--
<item
v-if=
"user_bp_type!='MANAGER'"
@
click
.
native=
"unBind()"
>
<div
slot=
"name"
style=
"color:#656464;"
>
解除绑定
</div>
<div
class=
"arrow_right"
><img
src=
"@/assets/myinfo/arrow_right.png"
></div>
...
...
@@ -586,6 +594,48 @@ export default {
hlsPopup
.
hideLoading
()
}
},
unRegiester
()
{
let
vm
=
this
hlsPopup
.
showConfirm
({
title
:
'提示'
,
content
:
'确认注销?'
,
onConfirm
:
function
(
index
)
{
if
(
index
===
1
)
{
let
phone
=
window
.
localStorage
.
getItem
(
'user_phone'
)
?
window
.
localStorage
.
getItem
(
'user_phone'
)
:
''
if
(
!
phone
)
return
hlsPopup
.
showLongCenter
(
'当前用户未绑定手机号,无法注销!'
)
let
url
=
process
.
env
.
basePath
+
'app_user_delete'
let
params
=
{
phone
:
phone
,
}
hlsHttp
.
post
(
url
,
params
).
then
(
function
(
res
)
{
if
(
res
.
result
===
'S'
)
{
hlsPopup
.
showLongCenter
(
'注销成功'
)
setTimeout
(
function
()
{
let
width
=
window
.
localStorage
.
getItem
(
'width'
)
let
height
=
window
.
localStorage
.
getItem
(
'height'
)
if
(
window
.
localStorage
.
isReadPolicy
===
'false'
)
{
window
.
localStorage
.
clear
()
}
else
if
(
window
.
localStorage
.
isReadPolicy
===
'true'
)
{
window
.
localStorage
.
clear
()
window
.
localStorage
.
setItem
(
'isReadPolicy'
,
true
)
}
else
{
window
.
localStorage
.
clear
()
}
window
.
localStorage
.
setItem
(
'width'
,
width
)
window
.
localStorage
.
setItem
(
'height'
,
height
)
vm
.
$router
.
push
(
'/login'
)
},
100
)
}
})
}
},
})
},
relatedLicenses
()
{
this
.
$router
.
push
({
name
:
'RelatedLicenses'
,
})
},
},
}
</
script
>
...
...
src/router/index.js
View file @
62f6ca6c
...
...
@@ -142,6 +142,8 @@ const Addundertake = resolve => require.ensure([], () => { resolve(require('@/pa
const
About
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/myInfo/About'
))
},
'myInfo'
)
const
ContactUs
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/myInfo/ContactUs'
))
},
'myInfo'
)
const
Setting
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/myInfo/setting'
))
},
'myInfo'
)
const
RelatedLicenses
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/myInfo/related-licenses'
))
},
'myInfo'
)
const
BusinessLicense
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/myInfo/business-license'
))
},
'myInfo'
)
const
UserAgree
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/myInfo/UserAgreement'
))
},
'myInfo'
)
const
PrivacyPolicy
=
resolve
=>
require
.
ensure
([],
()
=>
{
resolve
(
require
(
'@/pages/myInfo/PrivacyPolicy'
))
},
'myInfo'
)
...
...
@@ -373,6 +375,18 @@ export default new Router({
name
:
'Setting'
,
meta
:
{
keepAlive
:
false
},
},
{
path
:
'/RelatedLicenses'
,
component
:
RelatedLicenses
,
name
:
'RelatedLicenses'
,
meta
:
{
keepAlive
:
false
},
},
{
path
:
'/BusinessLicense'
,
component
:
BusinessLicense
,
name
:
'BusinessLicense'
,
meta
:
{
keepAlive
:
false
},
},
{
path
:
'/UserAgree'
,
component
:
UserAgree
,
...
...
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