Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-manage-ui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-manage-ui
Commits
679d75dd
Commit
679d75dd
authored
Apr 18, 2023
by
李鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
interface
parent
f4a77a56
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
93 additions
and
53 deletions
+93
-53
src/components/bg-menu.vue
src/components/bg-menu.vue
+2
-1
src/page/login/index.vue
src/page/login/index.vue
+17
-5
src/page/main/develop/account/add/system-form.vue
src/page/main/develop/account/add/system-form.vue
+55
-28
src/page/main/log/userAccount/index.vue
src/page/main/log/userAccount/index.vue
+4
-1
src/page/main/log/userBehavior/index.vue
src/page/main/log/userBehavior/index.vue
+9
-15
src/page/password/index.vue
src/page/password/index.vue
+4
-1
src/services/helper.js
src/services/helper.js
+2
-2
No files found.
src/components/bg-menu.vue
View file @
679d75dd
...
@@ -82,7 +82,8 @@ export default {
...
@@ -82,7 +82,8 @@ export default {
},
},
transparentBg
()
{
transparentBg
()
{
return
(
return
(
this
.
documentScrollTop
<
180
&&
(
this
.
$route
.
name
===
"
shopRecommend
"
||
this
.
$route
.
name
===
"
shopSearch
"
)
this
.
documentScrollTop
<
180
&&
(
this
.
$route
.
name
===
"
shopRecommend
"
||
this
.
$route
.
name
===
"
shopSearch
"
)
);
);
},
},
isFront
()
{
isFront
()
{
...
...
src/page/login/index.vue
View file @
679d75dd
...
@@ -3,17 +3,26 @@
...
@@ -3,17 +3,26 @@
class=
"login-container"
class=
"login-container"
:style=
"
{
:style=
"
{
'background-image': `url(${
'background-image': `url(${
configOptions.backgroundUrl ? JSON.parse(configOptions.backgroundUrl)[0].url : getImageUrl('bg.png')
configOptions.backgroundUrl
? JSON.parse(configOptions.backgroundUrl)[0].url
: getImageUrl('bg.png')
})`,
})`,
}">
}">
<el-alert
class=
"bg-warning"
title=
"系统有效期剩余345 天,请管理员及时更换license!"
type=
"warning"
/>
<el-alert
class=
"bg-warning"
title=
"系统有效期剩余345 天,请管理员及时更换license!"
type=
"warning"
/>
<div
class=
"bg-main"
>
<div
class=
"bg-main"
>
<!--
<div
class=
"bg-logo"
>
<!--
<div
class=
"bg-logo"
>
<img
class=
"logo"
src=
"../../assets/imgs/login_img_logo.png"
/>
<img
class=
"logo"
src=
"../../assets/imgs/login_img_logo.png"
/>
</div>
-->
</div>
-->
<div
class=
"bg-content"
>
<div
class=
"bg-content"
>
<bg-tabs
class=
"login-tab"
v-model=
"loginTab"
style=
"width: 480px"
v-if=
"pageType === 'login'"
>
<bg-tabs
class=
"login-tab"
v-model=
"loginTab"
style=
"width: 480px"
v-if=
"pageType === 'login'"
>
<bg-tab
label=
"账号密码登录"
name=
"account"
>
<bg-tab
label=
"账号密码登录"
name=
"account"
>
<LoginByAccount
@
register=
"switchPageType('account')"
@
password=
"password"
/>
<LoginByAccount
@
register=
"switchPageType('account')"
@
password=
"password"
/>
</bg-tab>
</bg-tab>
...
@@ -27,13 +36,16 @@
...
@@ -27,13 +36,16 @@
<div
class=
"bg-msg"
>
<div
class=
"bg-msg"
>
<p
v-if=
"configOptions && configOptions.patent"
>
{{
configOptions
.
patent
}}
</p>
<p
v-if=
"configOptions && configOptions.patent"
>
{{
configOptions
.
patent
}}
</p>
<p
v-if=
"configOptions"
>
<p
v-if=
"configOptions"
>
<span
class=
"can_click_text"
@
click=
"open(configOptions.icpUrl)"
>
{{
configOptions
.
icpFiling
}}
|
</span>
<span
class=
"can_click_text"
@
click=
"open(configOptions.icpUrl)"
>
{{
configOptions
.
icpFiling
}}
|
</span>
<span
class=
"can_click_text"
@
click=
"open(configOptions.publicSecurityUrl)"
>
<span
class=
"can_click_text"
@
click=
"open(configOptions.publicSecurityUrl)"
>
{{
configOptions
.
publicSecurityFiling
}}
{{
configOptions
.
publicSecurityFiling
}}
</span>
</span>
</p>
</p>
<p>
<p>
<span
class=
"can_click_text"
@
click=
"open(configOptions.legalStatementUrl)"
>
法律声明
</span>
|
<span
class=
"can_click_text"
@
click=
"open(configOptions.legalStatementUrl)"
>
法律声明
</span>
|
<span
class=
"can_click_text"
@
click=
"open(configOptions.privacyPolicyUrl)"
>
隐私政策
</span>
<span
class=
"can_click_text"
@
click=
"open(configOptions.privacyPolicyUrl)"
>
隐私政策
</span>
</p>
</p>
</div>
</div>
...
...
src/page/main/develop/account/add/system-form.vue
View file @
679d75dd
...
@@ -22,24 +22,28 @@
...
@@ -22,24 +22,28 @@
<el-input
v-model=
"systemForm.business_name"
/>
<el-input
v-model=
"systemForm.business_name"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"AppId"
prop=
"appid"
v-if=
"formType"
>
<el-form-item
label=
"AppId"
prop=
"appid"
v-if=
"formType"
>
<el-input
v-model=
"systemForm.appid"
:disabled=
"formType"
>
<el-input
v-model=
"systemForm.appid"
:disabled=
"formType"
>
<template
#suffix
>
<template
#suffix
>
<bg-icon
icon=
"#bg-ic-copy"
style=
"cursor: pointer;"
@
click=
"copyText(systemForm.appid)"
></bg-icon>
<bg-icon
icon=
"#bg-ic-copy"
style=
"cursor: pointer"
@
click=
"copyText(systemForm.appid)"
></bg-icon>
</
template
>
</
template
>
</el-input>
</el-input>
<!-- <span class="pl-1"><el-button type="primary" @click="copyText(systemForm.appid)">复制</el-button></span> -->
<!-- <span class="pl-1"><el-button type="primary" @click="copyText(systemForm.appid)">复制</el-button></span> -->
</el-form-item>
</el-form-item>
<el-form-item
label=
"AppSecret"
prop=
"appsecret"
v-if=
"formType"
>
<el-form-item
label=
"AppSecret"
prop=
"appsecret"
v-if=
"formType"
>
<div
style=
"display: flex;
width: 100%;
"
>
<div
style=
"display: flex;
width: 100%
"
>
<el-input
v-model=
"systemForm.appsecret"
:disabled=
"formType"
>
<el-input
v-model=
"systemForm.appsecret"
:disabled=
"formType"
>
<
template
#suffix
>
<
template
#suffix
>
<bg-icon
icon=
"#bg-ic-copy"
style=
"cursor: pointer;"
@
click=
"copyText(systemForm.appsecret)"
></bg-icon>
<bg-icon
icon=
"#bg-ic-copy"
style=
"cursor: pointer"
@
click=
"copyText(systemForm.appsecret)"
></bg-icon>
</
template
>
</
template
>
</el-input>
</el-input>
<span
class=
"pl-1"
><el-button
type=
"primary"
@
click=
"resetSecret"
>
重置
</el-button></span>
<span
class=
"pl-1"
><el-button
type=
"primary"
@
click=
"resetSecret"
>
重置
</el-button></span>
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item
label=
"系统LOGO"
prop=
"logo"
>
<el-form-item
label=
"系统LOGO"
prop=
"logo"
>
<bg-upload-image
<bg-upload-image
...
@@ -53,11 +57,24 @@
...
@@ -53,11 +57,24 @@
customTips=
"请选择图片上传:大小120 * 120像素支持jpg、png等格式,图片需小于500KB"
></bg-upload-image>
customTips=
"请选择图片上传:大小120 * 120像素支持jpg、png等格式,图片需小于500KB"
></bg-upload-image>
</el-form-item>
</el-form-item>
<el-form-item
label=
"业务系统概述"
prop=
"business_desc"
>
<el-form-item
label=
"业务系统概述"
prop=
"business_desc"
>
<el-input
type=
"textarea"
:rows=
"3"
v-model=
"systemForm.business_desc"
show-word-limit
maxlength=
"300"
/>
<el-input
type=
"textarea"
:rows=
"3"
v-model=
"systemForm.business_desc"
show-word-limit
maxlength=
"300"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"角色"
prop=
"system_role_id"
v-if=
"!formType"
>
<el-form-item
label=
"角色"
prop=
"system_role_id"
v-if=
"!formType"
>
<el-select
v-model=
"systemForm.system_role_id"
placeholder=
"请选择角色"
:disabled=
"true"
style=
"width: 100%"
>
<el-select
<el-option
v-for=
"item in roleList"
:key=
"item.role_id"
:label=
"item.role_name"
:value=
"item.role_id"
/>
v-model=
"systemForm.system_role_id"
placeholder=
"请选择角色"
:disabled=
"true"
style=
"width: 100%"
>
<el-option
v-for=
"item in roleList"
:key=
"item.role_id"
:label=
"item.role_name"
:value=
"item.role_id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"账号"
prop=
"system_account"
>
<el-form-item
label=
"账号"
prop=
"system_account"
>
...
@@ -69,7 +86,10 @@
...
@@ -69,7 +86,10 @@
<el-form-item
label=
"密码"
prop=
"password"
v-if=
"!formType"
>
<el-form-item
label=
"密码"
prop=
"password"
v-if=
"!formType"
>
<el-input
:type=
"password_eye ? 'text' : 'password'"
v-model=
"systemForm.password"
>
<el-input
:type=
"password_eye ? 'text' : 'password'"
v-model=
"systemForm.password"
>
<
template
#suffix
>
<
template
#suffix
>
<bg-icon
@
click=
"password_eye = !password_eye"
class=
"icon_eye"
icon=
"#bg-ic-eye"
></bg-icon>
<bg-icon
@
click=
"password_eye = !password_eye"
class=
"icon_eye"
icon=
"#bg-ic-eye"
></bg-icon>
</
template
>
</
template
>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
...
@@ -85,7 +105,11 @@
...
@@ -85,7 +105,11 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"开发厂商名称"
prop=
"develop_id"
>
<el-form-item
label=
"开发厂商名称"
prop=
"develop_id"
>
<el-select
v-model=
"systemForm.develop_id"
placeholder=
"请选择开发厂商"
style=
"width: 100%"
>
<el-select
v-model=
"systemForm.develop_id"
placeholder=
"请选择开发厂商"
style=
"width: 100%"
>
<el-option
v-for=
"item in firmList"
:key=
"item.dict_id"
:label=
"item.dict_name"
:value=
"item.dict_id"
/>
<el-option
v-for=
"item in firmList"
:key=
"item.dict_id"
:label=
"item.dict_name"
:value=
"item.dict_id"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"是否启用"
prop=
"state"
>
<el-form-item
label=
"是否启用"
prop=
"state"
>
...
@@ -98,7 +122,7 @@
...
@@ -98,7 +122,7 @@
import
{
reactive
,
ref
,
onBeforeMount
,
onMounted
,
computed
}
from
"
vue
"
;
import
{
reactive
,
ref
,
onBeforeMount
,
onMounted
,
computed
}
from
"
vue
"
;
import
axios
from
"
@/request/http.js
"
;
import
axios
from
"
@/request/http.js
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
{
validatePhone
}
from
"
@/services/rules.js
"
import
{
validatePhone
}
from
"
@/services/rules.js
"
;
const
props
=
defineProps
({
const
props
=
defineProps
({
formType
:
{
formType
:
{
type
:
Boolean
,
type
:
Boolean
,
...
@@ -143,7 +167,11 @@ const validateBusinessName = (rule, value, callback) => {
...
@@ -143,7 +167,11 @@ const validateBusinessName = (rule, value, callback) => {
}
else
{
}
else
{
let
params
=
null
;
let
params
=
null
;
if
(
props
.
id
)
{
if
(
props
.
id
)
{
params
=
{
id
:
parseInt
(
props
.
id
),
business_name
:
value
,
organization_id
:
systemForm
.
organization_id
};
params
=
{
id
:
parseInt
(
props
.
id
),
business_name
:
value
,
organization_id
:
systemForm
.
organization_id
,
};
}
else
{
}
else
{
params
=
{
business_name
:
value
,
organization_id
:
systemForm
.
organization_id
};
params
=
{
business_name
:
value
,
organization_id
:
systemForm
.
organization_id
};
}
}
...
@@ -182,20 +210,19 @@ const validateSystemAccount = (rule, value, callback) => {
...
@@ -182,20 +210,19 @@ const validateSystemAccount = (rule, value, callback) => {
const
checkPhoneRepet
=
(
rule
,
value
,
callback
)
=>
{
const
checkPhoneRepet
=
(
rule
,
value
,
callback
)
=>
{
let
params
=
null
;
let
params
=
null
;
if
(
props
.
id
){
if
(
props
.
id
)
{
params
=
{
id
:
parseInt
(
props
.
id
),
contact_phone
:
value
,}
params
=
{
id
:
parseInt
(
props
.
id
),
contact_phone
:
value
};
}
else
{
}
else
{
params
=
{
id
:
0
,
contact_phone
:
value
}
params
=
{
id
:
0
,
contact_phone
:
value
};
}
}
axios
.
post
(
`/apaas/system/v5/org/check`
,
params
)
axios
.
post
(
`/apaas/system/v5/org/check`
,
params
).
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
callback
()
callback
();
}
else
{
}
else
{
callback
(
new
Error
(
res
.
data
.
data
))
callback
(
new
Error
(
res
.
data
.
data
));
}
}
})
});
}
}
;
const
formRules
=
reactive
({
const
formRules
=
reactive
({
organization_id
:
[{
required
:
true
,
message
:
"
请选择组织机构
"
,
trigger
:
"
change
"
}],
organization_id
:
[{
required
:
true
,
message
:
"
请选择组织机构
"
,
trigger
:
"
change
"
}],
...
...
src/page/main/log/userAccount/index.vue
View file @
679d75dd
...
@@ -215,10 +215,13 @@ const exportFile = () => {
...
@@ -215,10 +215,13 @@ const exportFile = () => {
axios
axios
.
get
(
`/apaas/system/v5/log/userAccountAudit/list/export`
,
{
.
get
(
`/apaas/system/v5/log/userAccountAudit/list/export`
,
{
params
,
params
,
responseType
:
"
blob
"
,
})
})
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
.
status
===
200
)
{
if
(
res
.
status
===
200
)
{
downloadBlob
(
res
.
data
);
const
type
=
"
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
"
;
downloadBlob
(
res
.
data
,
type
);
}
else
{
}
else
{
ElMessage
.
error
(
res
.
statusText
);
ElMessage
.
error
(
res
.
statusText
);
}
}
...
...
src/page/main/log/userBehavior/index.vue
View file @
679d75dd
...
@@ -254,31 +254,25 @@ const state = reactive({
...
@@ -254,31 +254,25 @@ const state = reactive({
deleteTips
:
""
,
deleteTips
:
""
,
});
});
const
{
const
{
filter
,
operateStatusList
,
headers
,
selectedNum
,
tableRows
,
deleteDialog
,
deleteTips
}
=
filter
,
toRefs
(
state
);
operateStatusList
,
headers
,
selectedNum
,
detailHeaders
,
tableRows
,
tableTotal
,
dialogDetail
,
deleteDialog
,
deleteTips
,
}
=
toRefs
(
state
);
//导出
//导出
const
exportFile
=
()
=>
{
const
exportFile
=
()
=>
{
let
params
=
{
...
state
.
filter
};
let
params
=
{
...
state
.
filter
};
params
.
start_at
=
params
.
time
?
params
.
time
[
0
]
||
""
:
""
;
params
.
start_at
=
params
.
time
?
params
.
time
[
0
]
||
""
:
""
;
params
.
end_at
=
params
.
time
?
params
.
time
[
1
]
||
""
:
""
;
params
.
end_at
=
params
.
time
?
params
.
time
[
1
]
||
""
:
""
;
delete
params
.
time
;
delete
params
.
time
;
delete
params
.
total
;
axios
axios
.
get
(
`/apaas/system/v5/log/userBehavior/list/export`
,
{
.
get
(
`/apaas/system/v5/log/userBehavior/list/export`
,
{
params
,
params
,
responseType
:
"
blob
"
,
})
})
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
.
status
===
200
)
{
if
(
res
.
status
===
200
)
{
downloadBlob
(
res
.
data
);
const
type
=
"
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
"
;
downloadBlob
(
res
.
data
,
type
);
}
else
{
}
else
{
ElMessage
.
error
(
res
.
statusText
);
ElMessage
.
error
(
res
.
statusText
);
}
}
...
@@ -317,10 +311,10 @@ const deleteCurrent = (row) => {
...
@@ -317,10 +311,10 @@ const deleteCurrent = (row) => {
const
confirmDelete
=
()
=>
{
const
confirmDelete
=
()
=>
{
const
ids
=
state
.
selectedRows
.
map
((
item
)
=>
item
.
id
);
const
ids
=
state
.
selectedRows
.
map
((
item
)
=>
item
.
id
);
axios
axios
.
delete
(
"
/apaas/system/v5/log/userBehavior/delete
"
,
{
data
:
{
ids
:
ids
}
}
)
.
delete
(
`/apaas/system/v5/log/userBehavior/delete?ids=
${
ids
.
join
(
"
,
"
)}
`
)
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
if
(
res
.
data
.
code
===
200
)
{
if
(
res
.
data
.
code
===
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
ElMessage
.
success
(
res
.
data
.
data
);
cleanSelected
();
cleanSelected
();
getTableRows
();
getTableRows
();
}
else
{
}
else
{
...
...
src/page/password/index.vue
View file @
679d75dd
...
@@ -53,7 +53,10 @@
...
@@ -53,7 +53,10 @@
ref=
"accountFromRef"
ref=
"accountFromRef"
:form-type=
"route.query.id ? true : false"
:form-type=
"route.query.id ? true : false"
@
action=
"getAccountFromData"
></accountFrom>
@
action=
"getAccountFromData"
></accountFrom>
<passwordForm
v-show=
"step === 2"
ref=
"passwordFormRef"
@
action=
"getPasswordFormData"
></passwordForm>
<passwordForm
v-show=
"step === 2"
ref=
"passwordFormRef"
@
action=
"getPasswordFormData"
></passwordForm>
<div
class=
"process_end"
v-show=
"step === 3"
>
<div
class=
"process_end"
v-show=
"step === 3"
>
<div>
<div>
<div>
<div>
...
...
src/services/helper.js
View file @
679d75dd
...
@@ -266,9 +266,9 @@ var pathToUrl = (path) => {
...
@@ -266,9 +266,9 @@ var pathToUrl = (path) => {
}
}
};
};
const
downloadBlob
=
(
blobData
,
fileName
)
=>
{
const
downloadBlob
=
(
blobData
,
type
,
fileName
)
=>
{
const
blob
=
new
Blob
([
blobData
],
{
const
blob
=
new
Blob
([
blobData
],
{
type
:
"
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
"
,
type
,
});
});
const
url
=
window
.
URL
.
createObjectURL
(
blob
);
const
url
=
window
.
URL
.
createObjectURL
(
blob
);
const
aLink
=
document
.
createElement
(
"
a
"
);
const
aLink
=
document
.
createElement
(
"
a
"
);
...
...
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