Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
saas-manage
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chehuidong
saas-manage
Commits
098f79b2
Commit
098f79b2
authored
Jul 03, 2025
by
wusiyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 新增操作费管理
parent
e3b6b5af
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
103 additions
and
64 deletions
+103
-64
src/common/components/base/CustomForm.vue
+76
-57
src/common/components/base/tableView.vue
+0
-0
src/common/components/element-ui.js
+13
-7
src/router/index.js
+6
-0
src/views/home/navMenu.vue
+8
-0
src/views/system/operationFee.vue
+0
-0
No files found.
src/common/components/base/CustomForm.vue
View file @
098f79b2
<
script
>
<
script
lang=
"jsx"
>
export
default
{
export
default
{
name
:
'CustomForm'
,
name
:
'CustomForm'
,
components
:
{},
components
:
{},
...
@@ -109,63 +109,82 @@ export default {
...
@@ -109,63 +109,82 @@ export default {
inline
inline
onSubmit
=
{
this
.
handleSubmit
}
onSubmit
=
{
this
.
handleSubmit
}
onKeyupenterCapture
=
{
this
.
search
}
>
onKeyupenterCapture
=
{
this
.
search
}
>
{
this
.
formConfig
?.
map
((
item
,
index
)
=>
(
{
this
.
formConfig
?.
map
((
item
,
index
)
=>
{
<
el
-
form
-
item
if
(
style
=
{{
typeof
item
.
isShow
===
'function'
&&
width
:
item
.
type
===
'textarea'
?
'100%'
:
this
.
formItemWidth
!
item
.
isShow
(
this
.
formData
)
}}
)
{
class
=
{
item
.
type
===
'textarea'
?
'textClass'
:
''
}
return
null
prop
=
{
item
.
prop
}
}
rules
=
{(
item
.
renderRules
&&
item
.
renderRules
(
this
.
formData
))
||
[]}
return
(
label
-
width
=
{
item
.
labelWidth
||
this
.
formLabelWidth
}
<
el
-
form
-
item
key
=
{
index
}
style
=
{{
label
=
{
item
.
name
}
>
width
:
item
.
type
===
'textarea'
?
'100%'
:
this
.
formItemWidth
{
item
.
type
===
'input'
&&
(
}}
<
el
-
input
class
=
{
item
.
type
===
'textarea'
?
'textClass'
:
''
}
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
prop
=
{
item
.
prop
}
placeholder
=
{
item
.
placeholder
||
`请输入
${
item
.
name
}
`
}
rules
=
{
clearable
><
/el-input
>
(
item
.
renderRules
&&
item
.
renderRules
(
this
.
formData
))
||
[]
)}
}
{
item
.
type
===
'textarea'
&&
(
label
-
width
=
{
item
.
labelWidth
||
this
.
formLabelWidth
}
<
el
-
input
key
=
{
index
}
type
=
"textarea"
label
=
{
item
.
name
}
>
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
{
item
.
type
===
'input'
&&
(
placeholder
=
{
item
.
placeholder
||
`请输入
${
item
.
name
}
`
}
<
el
-
input
clearable
><
/el-input
>
)}
{
item
.
type
===
'select'
&&
(
<
el
-
select
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
placeholder
=
{
item
.
placeholder
||
`请选择
${
item
.
name
}
`
}
clearable
>
{
item
.
options
?.
map
((
el
,
idx
)
=>
(
<
el
-
option
label
=
{
el
.
label
}
value
=
{
el
.
value
}
key
=
{
idx
}
><
/el-option
>
))}
<
/el-select
>
)}
{
item
.
type
===
'datePicker'
&&
(
<
el
-
date
-
picker
value
-
format
=
"yyyy-MM-dd"
type
=
{
item
.
dateType
||
'date'
}
placeholder
=
"选择日期"
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
clearable
style
=
"width: 100%;"
><
/el-date-picker
>
)}
{
item
.
type
===
'radio'
&&
item
.
radioOptions
?.
map
((
el
,
idx
)
=>
(
<
el
-
radio
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
label
=
{
el
.
value
}
placeholder
=
{
item
.
placeholder
||
`请输入
${
item
.
name
}
`
}
key
=
{
idx
}
>
clearable
><
/el-input
>
{
el
.
label
}
)}
<
/el-radio
>
{
item
.
type
===
'inputNumber'
&&
(
))}
<
el
-
input
-
number
<
/el-form-item
>
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
))}
placeholder
=
{
item
.
placeholder
||
`请输入
${
item
.
name
}
`
}
clearable
step
=
{
item
.
step
||
1
}
controls
-
position
=
{
item
.
position
||
'right'
}
style
=
"width: 100%;"
><
/el-input-number
>
)}
{
item
.
type
===
'textarea'
&&
(
<
el
-
input
type
=
"textarea"
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
placeholder
=
{
item
.
placeholder
||
`请输入
${
item
.
name
}
`
}
clearable
><
/el-input
>
)}
{
item
.
type
===
'select'
&&
(
<
el
-
select
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
placeholder
=
{
item
.
placeholder
||
`请选择
${
item
.
name
}
`
}
clearable
>
{
item
.
options
?.
map
((
el
,
idx
)
=>
(
<
el
-
option
label
=
{
el
.
label
}
value
=
{
el
.
value
}
key
=
{
idx
}
><
/el-option
>
))}
<
/el-select
>
)}
{
item
.
type
===
'datePicker'
&&
(
<
el
-
date
-
picker
value
-
format
=
"yyyy-MM-dd"
type
=
{
item
.
dateType
||
'date'
}
placeholder
=
"选择日期"
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
clearable
style
=
"width: 100%;"
><
/el-date-picker
>
)}
{
item
.
type
===
'radio'
&&
item
.
radioOptions
?.
map
((
el
,
idx
)
=>
(
<
el
-
radio
v
-
model
=
{
this
.
formData
[
item
.
prop
]}
label
=
{
el
.
value
}
key
=
{
idx
}
>
{
el
.
label
}
<
/el-radio
>
))}
<
/el-form-item
>
)
})}
{
this
.
isCustomButton
&&
(
{
this
.
isCustomButton
&&
(
<
el
-
form
-
item
>
<
el
-
form
-
item
>
<
el
-
button
<
el
-
button
...
...
src/common/components/base/tableView.vue
View file @
098f79b2
This diff is collapsed.
Click to expand it.
src/common/components/element-ui.js
View file @
098f79b2
...
@@ -8,6 +8,7 @@ import {
...
@@ -8,6 +8,7 @@ import {
Form
,
Form
,
FormItem
,
FormItem
,
Input
,
Input
,
InputNumber
,
Message
,
Message
,
MessageBox
,
MessageBox
,
Pagination
,
Pagination
,
...
@@ -21,6 +22,7 @@ import {
...
@@ -21,6 +22,7 @@ import {
Cascader
,
Cascader
,
Radio
,
Radio
,
RadioGroup
,
RadioGroup
,
RadioButton
,
Menu
,
Menu
,
Submenu
,
Submenu
,
MenuItem
,
MenuItem
,
...
@@ -36,6 +38,7 @@ import {
...
@@ -36,6 +38,7 @@ import {
Tooltip
,
Tooltip
,
ColorPicker
,
ColorPicker
,
CheckboxGroup
,
CheckboxGroup
,
CheckboxButton
,
Divider
,
Divider
,
Popover
,
Popover
,
Upload
Upload
...
@@ -49,6 +52,7 @@ const components = [
...
@@ -49,6 +52,7 @@ const components = [
Form
,
Form
,
FormItem
,
FormItem
,
Input
,
Input
,
InputNumber
,
DatePicker
,
DatePicker
,
Pagination
,
Pagination
,
Switch
,
Switch
,
...
@@ -57,6 +61,7 @@ const components = [
...
@@ -57,6 +61,7 @@ const components = [
Cascader
,
Cascader
,
Radio
,
Radio
,
RadioGroup
,
RadioGroup
,
RadioButton
,
Menu
,
Menu
,
MenuItem
,
MenuItem
,
Submenu
,
Submenu
,
...
@@ -75,6 +80,7 @@ const components = [
...
@@ -75,6 +80,7 @@ const components = [
Tooltip
,
Tooltip
,
ColorPicker
,
ColorPicker
,
CheckboxGroup
,
CheckboxGroup
,
CheckboxButton
,
Popover
,
Popover
,
Upload
Upload
]
]
...
@@ -88,13 +94,13 @@ export default {
...
@@ -88,13 +94,13 @@ export default {
Vue
.
prototype
.
$message
=
(
message
)
=>
Vue
.
prototype
.
$message
=
(
message
)
=>
typeof
message
===
'string'
typeof
message
===
'string'
?
Message
({
?
Message
({
duration
:
2500
,
duration
:
2500
,
message
,
message
})
})
:
Message
({
:
Message
({
duration
:
2500
,
duration
:
2500
,
...
message
,
...
message
})
})
Vue
.
prototype
.
$message
.
success
=
(
message
)
=>
Vue
.
prototype
.
$message
.
success
=
(
message
)
=>
typeof
message
===
'string'
typeof
message
===
'string'
?
Message
.
success
({
duration
:
2500
,
message
})
?
Message
.
success
({
duration
:
2500
,
message
})
...
@@ -115,5 +121,5 @@ export default {
...
@@ -115,5 +121,5 @@ export default {
Vue
.
prototype
.
$alert
=
MessageBox
.
alert
Vue
.
prototype
.
$alert
=
MessageBox
.
alert
Vue
.
prototype
.
$confirm
=
MessageBox
.
confirm
Vue
.
prototype
.
$confirm
=
MessageBox
.
confirm
Vue
.
prototype
.
$prompt
=
MessageBox
.
prompt
Vue
.
prototype
.
$prompt
=
MessageBox
.
prompt
}
,
}
}
}
src/router/index.js
View file @
098f79b2
...
@@ -79,6 +79,12 @@ const routes = [
...
@@ -79,6 +79,12 @@ const routes = [
meta
:
{
title
:
'服务管理'
}
meta
:
{
title
:
'服务管理'
}
},
},
{
{
path
:
'/saas/operationFee'
,
component
:
()
=>
import
(
'@/views/system/operationFee.vue'
),
name
:
'system_operationFee'
,
meta
:
{
title
:
'操作费管理'
}
},
{
path
:
'/saas/countryCode'
,
path
:
'/saas/countryCode'
,
component
:
()
=>
import
(
'@/views/system/countryCode.vue'
),
component
:
()
=>
import
(
'@/views/system/countryCode.vue'
),
name
:
'system_countryCode'
,
name
:
'system_countryCode'
,
...
...
src/views/home/navMenu.vue
View file @
098f79b2
...
@@ -275,6 +275,14 @@ export default {
...
@@ -275,6 +275,14 @@ export default {
icon
:
'el-icon-s-order'
,
icon
:
'el-icon-s-order'
,
index
:
'/saas/services'
,
index
:
'/saas/services'
,
children
:
[]
children
:
[]
},
{
id
:
6
,
path
:
''
,
label
:
'操作费管理'
,
icon
:
'el-icon-s-order'
,
index
:
'/saas/operationFee'
,
children
:
[]
}
}
]
]
},
},
...
...
src/views/system/operationFee.vue
0 → 100644
View file @
098f79b2
This diff is collapsed.
Click to expand it.
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