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
5dcc3bcd
Commit
5dcc3bcd
authored
Jul 22, 2025
by
linjinhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:修改问题
parent
592853c3
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
343 additions
and
185 deletions
+343
-185
src/common/components/base/CustomForm.vue
+2
-2
src/views/operation/asynchronousTask.vue
+69
-13
src/views/system/erpManagementList.vue
+69
-13
src/views/system/services.vue
+203
-157
No files found.
src/common/components/base/CustomForm.vue
View file @
5dcc3bcd
...
@@ -17,7 +17,7 @@ export default {
...
@@ -17,7 +17,7 @@ export default {
},
},
formLabelWidth
:
{
formLabelWidth
:
{
type
:
String
,
type
:
String
,
default
:
'50px'
default
:
null
},
},
formItemWidth
:
{
formItemWidth
:
{
type
:
String
,
type
:
String
,
...
@@ -95,7 +95,7 @@ export default {
...
@@ -95,7 +95,7 @@ export default {
}
}
},
},
created
()
{
created
()
{
// console.log(104, this.formData
)
console
.
log
(
104
,
this
.
formLabelWidth
)
},
},
render
()
{
render
()
{
return
(
return
(
...
...
src/views/operation/asynchronousTask.vue
View file @
5dcc3bcd
<
template
>
<
template
>
<div
class=
"wraper"
>
<div
class=
"recharge-record card"
>
<CustomForm
<div
class=
"search"
>
:formConfig=
"queryformConfig"
<CustomForm
v-model=
"queryFormData"
:formConfig=
"queryformConfig"
formLabelWidth=
"70px"
v-model=
"queryFormData"
:isCustomButton=
"false"
:isCustomButton=
"false"
:isFlex=
"false"
>
:isFlex=
"false"
>
<template
slot=
"btn"
>
<template
slot=
"btn"
>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"search"
>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"search"
>
查询
查询
</el-button>
</el-button>
</
template
>
</
template
>
</CustomForm>
</CustomForm>
</div>
<div
class=
"table_wrap"
v-loading=
"loading"
>
<div
class=
"table_wrap"
v-loading=
"loading"
>
<table-vue
<table-vue
:sourceData=
"sourceData"
:sourceData=
"sourceData"
...
@@ -258,6 +259,7 @@ export default {
...
@@ -258,6 +259,7 @@ export default {
.table_wrap
{
.table_wrap
{
flex
:
1
;
flex
:
1
;
padding
:
0
;
}
}
.circle
{
.circle
{
...
@@ -318,4 +320,58 @@ export default {
...
@@ -318,4 +320,58 @@ export default {
.failStatus
{
.failStatus
{
background-color
:
#f56c6c
;
background-color
:
#f56c6c
;
}
}
.recharge-record
{
height
:
100%
;
overflow
:
hidden
;
display
:
flex
;
flex-direction
:
column
;
&::v-deep
{
.el-table
.el-table__cell
{
padding
:
6px
0
;
}
.el-input__inner
{
padding
:
0
4px
;
}
.el-input--small
.el-input__inner
{
height
:
30px
;
line-height
:
30px
;
}
.el-icon-time
:before
{
content
:
''
;
}
.el-dialog__footer
{
text-align
:
center
;
.el-button--small
{
padding
:
9px
50px
;
}
}
.el-dialog__body
{
padding
:
10px
20px
;
}
.el-icon-edit
:before
{
color
:
#ff9800
;
font-weight
:
bold
;
}
.el-range-editor--small
.el-range-separator
{
line-height
:
31px
;
}
.header-row-class-name
th
{
background-color
:
#f8f8f9
;
}
.el-input-group__append
{
padding-left
:
0
;
}
}
}
</
style
>
</
style
>
src/views/system/erpManagementList.vue
View file @
5dcc3bcd
<
template
>
<
template
>
<div
class=
"wraper"
>
<div
class=
"recharge-record card"
>
<CustomForm
<div
class=
"search"
>
:formConfig=
"queryformConfig"
<CustomForm
v-model=
"queryFormData"
:formConfig=
"queryformConfig"
form-label-width=
"70px"
v-model=
"queryFormData"
:is-custom-button=
"false"
:is-custom-button=
"false"
:isFlex=
"false"
>
:isFlex=
"false"
>
<template
slot=
"btn"
>
<template
slot=
"btn"
>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"search"
>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"search"
>
查询
查询
</el-button>
</el-button>
</
template
>
</
template
>
</CustomForm>
</CustomForm>
</div>
<div
class=
"table_wrap"
v-loading=
"loading"
>
<div
class=
"table_wrap"
v-loading=
"loading"
>
<table-vue
<table-vue
:sourceData=
"sourceData"
:sourceData=
"sourceData"
...
@@ -370,6 +371,60 @@ export default {
...
@@ -370,6 +371,60 @@ export default {
}
}
</
script
>
</
script
>
<
style
scoped
lang=
"less"
>
<
style
scoped
lang=
"less"
>
.recharge-record
{
height
:
100%
;
overflow
:
hidden
;
display
:
flex
;
flex-direction
:
column
;
&::v-deep
{
.el-table
.el-table__cell
{
padding
:
6px
0
;
}
.el-input__inner
{
padding
:
0
4px
;
}
.el-input--small
.el-input__inner
{
height
:
30px
;
line-height
:
30px
;
}
.el-icon-time
:before
{
content
:
''
;
}
.el-dialog__footer
{
text-align
:
center
;
.el-button--small
{
padding
:
9px
50px
;
}
}
.el-dialog__body
{
padding
:
10px
20px
;
}
.el-icon-edit
:before
{
color
:
#ff9800
;
font-weight
:
bold
;
}
.el-range-editor--small
.el-range-separator
{
line-height
:
31px
;
}
.header-row-class-name
th
{
background-color
:
#f8f8f9
;
}
.el-input-group__append
{
padding-left
:
0
;
}
}
}
.wraper
{
.wraper
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
...
@@ -378,6 +433,7 @@ export default {
...
@@ -378,6 +433,7 @@ export default {
.table_wrap
{
.table_wrap
{
flex
:
1
;
flex
:
1
;
padding
:
0
;
}
}
.circle
{
.circle
{
...
...
src/views/system/services.vue
View file @
5dcc3bcd
<
template
>
<
template
>
<div
class=
"wraper"
>
<div
class=
"recharge-record card"
>
<CustomForm
<div
class=
"search"
>
:formConfig=
"queryformConfig"
<CustomForm
v-model=
"queryFormData"
:formConfig=
"queryformConfig"
form-label-width=
"70px"
v-model=
"queryFormData"
@
addDialog=
"addDialog"
@
addDialog=
"addDialog"
@
searchFn=
"search"
@
searchFn=
"search"
:isFlex=
"false"
>
:isFlex=
"false"
>
<template
slot=
"btn"
>
<template
slot=
"btn"
>
<el-button
type=
"primary"
@
click=
"updateListFn"
>
同步
</el-button>
<el-button
type=
"primary"
@
click=
"updateListFn"
>
同步
</el-button>
<el-button
type=
"primary"
@
click=
"toList"
>
查看ERP启动列表
</el-button>
<el-button
type=
"primary"
@
click=
"toList"
>
查看ERP启动列表
</el-button>
</
template
>
</
template
>
</CustomForm>
</CustomForm>
</div>
<div
class=
"table_wrap"
v-loading=
"loading"
>
<div
class=
"table_wrap"
v-loading=
"loading"
>
<table-vue
<table-vue
:sourceData=
"sourceData"
:sourceData=
"sourceData"
...
@@ -30,7 +31,6 @@
...
@@ -30,7 +31,6 @@
@
size-change=
"sizeChange"
@
size-change=
"sizeChange"
@
current-change=
"onCurrentChange"
></el-pagination>
@
current-change=
"onCurrentChange"
></el-pagination>
</div>
</div>
<!-- 弹出层 -->
<!-- 弹出层 -->
<el-dialog
<el-dialog
:close-on-click-modal=
"false"
:close-on-click-modal=
"false"
...
@@ -82,135 +82,10 @@ export default {
...
@@ -82,135 +82,10 @@ export default {
select
:
''
,
select
:
''
,
sourceData
:
[],
sourceData
:
[],
serviceNameList
:
new
Map
(),
serviceNameList
:
new
Map
(),
newServiceNameList
:
[],
formData
:
{},
formData
:
{},
queryFormData
:
{},
queryFormData
:
{},
queryformConfig
:
[
{
prop
:
'name'
,
type
:
'select'
,
name
:
'名称'
,
options
:
[]
},
{
prop
:
'type'
,
type
:
'select'
,
name
:
'服务类型'
,
options
:
[
{
label
:
'基础'
,
value
:
'basics'
},
{
label
:
'增值'
,
value
:
'appreciation'
}
]
},
{
prop
:
'enable'
,
type
:
'select'
,
name
:
'状态'
,
options
:
[
{
label
:
'启用'
,
value
:
true
},
{
label
:
'停用'
,
value
:
false
}
]
}
],
editformConfig
:
[
{
prop
:
'nameObj'
,
type
:
'select'
,
name
:
'名称'
,
options
:
[],
valueKey
:
'value'
,
events
:
{
onChange
:
(
item
,
value
)
=>
{
item
.
name
=
value
.
value
item
.
serveType
=
value
.
type
===
'basics'
?
'基础'
:
'增值'
item
.
type
=
value
.
type
}
},
renderRules
:
()
=>
[
{
required
:
true
,
message
:
'请选择名称'
,
trigger
:
'change'
}
]
},
{
prop
:
'serveType'
,
type
:
'input'
,
name
:
'服务类型'
,
attrs
:
{
disabled
:
true
,
placeholder
:
'选择完名称后展示'
}
},
{
prop
:
'tollCollectionManner'
,
type
:
'select'
,
name
:
'收费方式'
,
options
:
[
{
label
:
'按单'
,
value
:
'order'
},
{
label
:
'按月'
,
value
:
'monthly'
},
{
label
:
'免费'
,
value
:
'免费'
}
],
renderRules
:
(
item
)
=>
[
{
required
:
true
,
message
:
'请选择收费方式'
,
trigger
:
'change'
}
]
},
{
prop
:
'rates'
,
type
:
'input'
,
name
:
'收费标准'
,
renderRules
:
(
item
)
=>
[
{
required
:
item
.
tollCollectionManner
!==
'免费'
,
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
item
.
tollCollectionManner
!==
'免费'
)
{
if
(
value
===
''
||
value
===
null
||
value
===
undefined
)
{
return
callback
(
new
Error
(
'请输入收费标准'
))
}
}
const
numValue
=
Number
(
value
)
if
(
isNaN
(
numValue
))
{
return
callback
(
new
Error
(
'请输入有效数字'
))
}
if
(
numValue
<
0
)
{
return
callback
(
new
Error
(
'数值必须大于等于0'
))
}
// 校验通过
callback
()
},
trigger
:
'blur'
}
]
},
{
prop
:
'enable'
,
type
:
'radio'
,
name
:
'服务启用状态'
,
defaultValue
:
true
,
radioOptions
:
[
{
label
:
'启用'
,
value
:
true
},
{
label
:
'停用'
,
value
:
false
}
]
},
{
prop
:
'discount'
,
type
:
'radio'
,
name
:
'参与折扣'
,
defaultValue
:
true
,
radioOptions
:
[
{
label
:
'是'
,
value
:
true
},
{
label
:
'否'
,
value
:
false
}
]
},
{
prop
:
'remarks'
,
type
:
'textarea'
,
name
:
'备注'
}
],
dialogVisible
:
false
,
dialogVisible
:
false
,
formId
:
null
,
formId
:
null
,
...
@@ -334,7 +209,137 @@ export default {
...
@@ -334,7 +209,137 @@ export default {
}
}
]
]
},
},
queryformConfig
()
{
return
[
{
prop
:
'name'
,
type
:
'select'
,
name
:
'名称'
,
options
:
[...(
this
.
newServiceNameList
||
[])]
},
{
prop
:
'type'
,
type
:
'select'
,
name
:
'服务类型'
,
options
:
[
{
label
:
'基础'
,
value
:
'basics'
},
{
label
:
'增值'
,
value
:
'appreciation'
}
]
},
{
prop
:
'enable'
,
type
:
'select'
,
name
:
'状态'
,
options
:
[
{
label
:
'启用'
,
value
:
true
},
{
label
:
'停用'
,
value
:
false
}
]
}
]
},
editformConfig
()
{
return
[
{
prop
:
'nameObj'
,
type
:
'select'
,
name
:
'名称'
,
options
:
[...(
this
.
newServiceNameList
||
[])],
valueKey
:
'value'
,
events
:
{
onChange
:
(
item
,
value
)
=>
{
item
.
name
=
value
.
value
item
.
serveType
=
value
.
type
===
'basics'
?
'基础'
:
'增值'
item
.
type
=
value
.
type
}
},
renderRules
:
()
=>
[
{
required
:
true
,
message
:
'请选择名称'
,
trigger
:
'change'
}
]
},
{
prop
:
'serveType'
,
type
:
'input'
,
name
:
'服务类型'
,
attrs
:
{
disabled
:
true
,
placeholder
:
'选择完名称后展示'
}
},
{
prop
:
'tollCollectionManner'
,
type
:
'select'
,
name
:
'收费方式'
,
options
:
[
{
label
:
'按单'
,
value
:
'order'
},
{
label
:
'按月'
,
value
:
'monthly'
},
{
label
:
'免费'
,
value
:
'免费'
}
],
renderRules
:
(
item
)
=>
[
{
required
:
true
,
message
:
'请选择收费方式'
,
trigger
:
'change'
}
]
},
{
prop
:
'rates'
,
type
:
'input'
,
name
:
'收费标准'
,
renderRules
:
(
item
)
=>
[
{
required
:
item
.
tollCollectionManner
!==
'免费'
,
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
item
.
tollCollectionManner
!==
'免费'
)
{
if
(
value
===
''
||
value
===
null
||
value
===
undefined
)
{
return
callback
(
new
Error
(
'请输入收费标准'
))
}
}
const
numValue
=
Number
(
value
)
if
(
isNaN
(
numValue
))
{
return
callback
(
new
Error
(
'请输入有效数字'
))
}
if
(
numValue
<
0
)
{
return
callback
(
new
Error
(
'数值必须大于等于0'
))
}
// 校验通过
callback
()
},
trigger
:
'blur'
}
]
},
{
prop
:
'enable'
,
type
:
'radio'
,
name
:
'服务启用状态'
,
defaultValue
:
true
,
radioOptions
:
[
{
label
:
'启用'
,
value
:
true
},
{
label
:
'停用'
,
value
:
false
}
]
},
{
prop
:
'discount'
,
type
:
'radio'
,
name
:
'参与折扣'
,
defaultValue
:
true
,
radioOptions
:
[
{
label
:
'是'
,
value
:
true
},
{
label
:
'否'
,
value
:
false
}
]
},
{
prop
:
'remarks'
,
type
:
'textarea'
,
name
:
'备注'
}
]
},
funcRoleList
()
{
funcRoleList
()
{
if
(
this
.
roleList
.
length
>
0
)
{
if
(
this
.
roleList
.
length
>
0
)
{
return
this
.
roleList
.
filter
((
item
)
=>
item
.
type
===
'FUNCTION_ROLE'
)
return
this
.
roleList
.
filter
((
item
)
=>
item
.
type
===
'FUNCTION_ROLE'
)
...
@@ -348,15 +353,7 @@ export default {
...
@@ -348,15 +353,7 @@ export default {
return
[]
return
[]
}
}
},
},
watch
:
{
formData
:
{
handler
(
newValue
)
{
// console.log(368, newValue)
},
immediate
:
true
,
deep
:
true
}
},
methods
:
{
methods
:
{
sizeChange
(
value
)
{
sizeChange
(
value
)
{
this
.
paginationOptions
.
pageSize
=
value
this
.
paginationOptions
.
pageSize
=
value
...
@@ -528,7 +525,7 @@ export default {
...
@@ -528,7 +525,7 @@ export default {
async
getServiceNameList
()
{
async
getServiceNameList
()
{
try
{
try
{
const
{
data
}
=
await
axios
.
get
(
'serviceManagement/serviceNameList'
)
const
{
data
}
=
await
axios
.
get
(
'serviceManagement/serviceNameList'
)
const
newData
=
data
.
map
((
el
)
=>
{
this
.
newServiceNameList
=
data
.
map
((
el
)
=>
{
return
{
return
{
label
:
el
.
remark
,
label
:
el
.
remark
,
value
:
el
.
code
,
value
:
el
.
code
,
...
@@ -536,18 +533,12 @@ export default {
...
@@ -536,18 +533,12 @@ export default {
}
}
})
})
this
.
serviceNameList
=
new
Map
(
this
.
serviceNameList
=
new
Map
(
newData
.
map
((
item
)
=>
[
this
.
newServiceNameList
.
map
((
item
)
=>
[
item
.
value
,
item
.
value
,
{
label
:
item
.
label
,
type
:
item
.
type
,
value
:
item
.
value
}
{
label
:
item
.
label
,
type
:
item
.
type
,
value
:
item
.
value
}
])
])
)
)
console
.
log
(
509
,
this
.
serviceNameList
)
this
.
queryformConfig
[
0
].
options
=
[...
newData
]
this
.
editformConfig
[
0
].
options
=
[...
newData
]
}
catch
(
error
)
{
}
catch
(
error
)
{
this
.
queryformConfig
[
0
].
options
=
[]
this
.
editformConfig
[
0
].
options
=
[]
console
.
log
(
error
)
console
.
log
(
error
)
}
}
},
},
...
@@ -584,6 +575,60 @@ export default {
...
@@ -584,6 +575,60 @@ export default {
}
}
</
script
>
</
script
>
<
style
scoped
lang=
"less"
>
<
style
scoped
lang=
"less"
>
.recharge-record
{
height
:
100%
;
overflow
:
hidden
;
display
:
flex
;
flex-direction
:
column
;
&::v-deep
{
.el-table
.el-table__cell
{
padding
:
6px
0
;
}
.el-input__inner
{
padding
:
0
4px
;
}
.el-input--small
.el-input__inner
{
height
:
30px
;
line-height
:
30px
;
}
.el-icon-time
:before
{
content
:
''
;
}
.el-dialog__footer
{
text-align
:
center
;
.el-button--small
{
padding
:
9px
50px
;
}
}
.el-dialog__body
{
padding
:
10px
20px
;
}
.el-icon-edit
:before
{
color
:
#ff9800
;
font-weight
:
bold
;
}
.el-range-editor--small
.el-range-separator
{
line-height
:
31px
;
}
.header-row-class-name
th
{
background-color
:
#f8f8f9
;
}
.el-input-group__append
{
padding-left
:
0
;
}
}
}
.wraper
{
.wraper
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
...
@@ -592,6 +637,7 @@ export default {
...
@@ -592,6 +637,7 @@ export default {
.table_wrap
{
.table_wrap
{
flex
:
1
;
flex
:
1
;
padding
:
0
;
}
}
.circle
{
.circle
{
...
...
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