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
4e25ebe4
Commit
4e25ebe4
authored
Aug 28, 2025
by
wusiyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 操作费相关页面修改
parent
5b7d99c8
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
102 additions
and
30 deletions
+102
-30
src/common/api/manage/index.js
+7
-0
src/common/components/base/CustomForm.vue
+5
-1
src/views/saasManage/indexPage.vue
+67
-11
src/views/system/operationFee.vue
+20
-15
src/views/user/operatingDetails.vue
+3
-3
No files found.
src/common/api/manage/index.js
View file @
4e25ebe4
...
@@ -57,3 +57,10 @@ export function getOperationFeeSelect(name) {
...
@@ -57,3 +57,10 @@ export function getOperationFeeSelect(name) {
params
:
{
name
}
params
:
{
name
}
})
})
}
}
// 获取仓库列表
export
function
listErpWarehouse
(
namespace
)
{
return
axios
.
get
(
'/sys/domain/listErpWarehouse'
,
{
params
:
{
namespace
}
})
}
src/common/components/base/CustomForm.vue
View file @
4e25ebe4
...
@@ -16,6 +16,10 @@ export default {
...
@@ -16,6 +16,10 @@ export default {
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
},
size
:
{
type
:
String
,
default
:
'mini'
},
formLabelWidth
:
{
formLabelWidth
:
{
type
:
String
,
type
:
String
,
default
:
'auto'
default
:
'auto'
...
@@ -107,7 +111,7 @@ export default {
...
@@ -107,7 +111,7 @@ export default {
props
=
{{
props
=
{{
model
:
this
.
formData
model
:
this
.
formData
}}
}}
size
=
"mini"
size
=
{
this
.
size
||
'mini'
}
inline
inline
onSubmit
=
{
this
.
handleSubmit
}
onSubmit
=
{
this
.
handleSubmit
}
onKeyupenterCapture
=
{
this
.
search
}
onKeyupenterCapture
=
{
this
.
search
}
...
...
src/views/saasManage/indexPage.vue
View file @
4e25ebe4
...
@@ -270,7 +270,7 @@
...
@@ -270,7 +270,7 @@
:title=
"editId ? '编辑' : '新增'"
:title=
"editId ? '编辑' : '新增'"
:visible
.
sync=
"addVisible"
:visible
.
sync=
"addVisible"
:close-on-click-modal=
"false"
:close-on-click-modal=
"false"
width=
"
7
00px"
>
width=
"
10
00px"
>
<el-form
<el-form
:model=
"editForm"
:model=
"editForm"
size=
"small"
size=
"small"
...
@@ -283,7 +283,7 @@
...
@@ -283,7 +283,7 @@
prop=
"domain"
prop=
"domain"
:rules=
"[{ required: true, message: '请输入域名' }]"
>
:rules=
"[{ required: true, message: '请输入域名' }]"
>
<el-input
<el-input
style=
"width:
20
0px"
style=
"width:
35
0px"
v-model
.
trim=
"editForm.domain"
v-model
.
trim=
"editForm.domain"
size=
"small"
size=
"small"
:disabled=
"!!editId"
:disabled=
"!!editId"
...
@@ -299,7 +299,7 @@
...
@@ -299,7 +299,7 @@
prop=
"companyName"
prop=
"companyName"
:rules=
"[{ required: true, message: '请输入公司名称' }]"
>
:rules=
"[{ required: true, message: '请输入公司名称' }]"
>
<el-input
<el-input
style=
"width:
20
0px"
style=
"width:
35
0px"
v-model=
"editForm.companyName"
v-model=
"editForm.companyName"
size=
"small"
size=
"small"
placeholder=
"请输入公司名称"
/>
placeholder=
"请输入公司名称"
/>
...
@@ -309,7 +309,7 @@
...
@@ -309,7 +309,7 @@
prop=
"packages"
prop=
"packages"
:rules=
"[{ required: true, message: '请选择套餐' }]"
>
:rules=
"[{ required: true, message: '请选择套餐' }]"
>
<el-select
<el-select
style=
"width:
20
0px"
style=
"width:
35
0px"
v-model=
"editForm.packages"
v-model=
"editForm.packages"
size=
"small"
size=
"small"
@
change=
"changeCharges"
@
change=
"changeCharges"
...
@@ -326,7 +326,7 @@
...
@@ -326,7 +326,7 @@
prop=
"headName"
prop=
"headName"
:rules=
"[{ required: true, message: '请输入负责人' }]"
>
:rules=
"[{ required: true, message: '请输入负责人' }]"
>
<el-input
<el-input
style=
"width:
20
0px"
style=
"width:
35
0px"
v-model=
"editForm.headName"
v-model=
"editForm.headName"
size=
"small"
size=
"small"
placeholder=
"负责人"
/>
placeholder=
"负责人"
/>
...
@@ -343,7 +343,7 @@
...
@@ -343,7 +343,7 @@
}
}
]"
>
]"
>
<el-input
<el-input
style=
"width:
20
0px"
style=
"width:
35
0px"
v-model=
"editForm.contactPhone"
v-model=
"editForm.contactPhone"
size=
"small"
size=
"small"
placeholder=
"请输入联系电话"
/>
placeholder=
"请输入联系电话"
/>
...
@@ -354,7 +354,7 @@
...
@@ -354,7 +354,7 @@
:rules=
"[{ required: true, message: '请输入资费' }]"
>
:rules=
"[{ required: true, message: '请输入资费' }]"
>
<el-input
<el-input
disabled
disabled
style=
"width:
20
0px"
style=
"width:
35
0px"
v-model=
"editForm.charges"
v-model=
"editForm.charges"
size=
"small"
size=
"small"
placeholder=
"请输入资费"
/>
placeholder=
"请输入资费"
/>
...
@@ -364,7 +364,7 @@
...
@@ -364,7 +364,7 @@
prop=
"expireTime"
prop=
"expireTime"
:rules=
"[{ required: true, message: '请选择过期时间' }]"
>
:rules=
"[{ required: true, message: '请选择过期时间' }]"
>
<el-date-picker
<el-date-picker
style=
"width:
20
0px"
style=
"width:
35
0px"
v-model=
"editForm.expireTime"
v-model=
"editForm.expireTime"
type=
"datetime"
type=
"datetime"
value-format=
"yyyy-MM-dd HH:mm:ss"
value-format=
"yyyy-MM-dd HH:mm:ss"
...
@@ -385,7 +385,7 @@
...
@@ -385,7 +385,7 @@
{ required: true, message: '请选择操作费', trigger: 'blur' }
{ required: true, message: '请选择操作费', trigger: 'blur' }
]"
>
]"
>
<el-select
<el-select
style=
"width:
20
0px"
style=
"width:
35
0px"
v-model=
"editForm.operationFeeId"
v-model=
"editForm.operationFeeId"
size=
"small"
size=
"small"
@
change=
"changeCharges"
@
change=
"changeCharges"
...
@@ -398,6 +398,29 @@
...
@@ -398,6 +398,29 @@
:label=
"item.name"
></el-option>
:label=
"item.name"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
v-if=
"editForm.operated === true"
label=
"扣费仓库"
prop=
"operationFeeWarehouseIds"
>
<div>
<el-select
style=
"width: 350px"
v-model=
"editForm.operationFeeWarehouseIds"
size=
"small"
multiple
placeholder=
"请选择扣费仓库"
filterable
>
<el-option
v-for=
"item in warehouseList"
:key=
"item.id"
:value=
"item.id"
:label=
"item.name"
></el-option>
</el-select>
<div
style=
"color: #f56c6c; font-size: 12px; margin-top: 0px"
>
如果不选,则视为对所有仓库都进行扣费
</div>
</div>
</el-form-item>
</el-form>
</el-form>
<span
slot=
"footer"
>
<span
slot=
"footer"
>
<el-button
@
click=
"addVisible = false"
size=
"small"
>
取消
</el-button>
<el-button
@
click=
"addVisible = false"
size=
"small"
>
取消
</el-button>
...
@@ -464,6 +487,7 @@
...
@@ -464,6 +487,7 @@
import
{
import
{
getManageData
,
getManageData
,
getStatusSelect
,
getStatusSelect
,
listErpWarehouse
,
addManageData
,
addManageData
,
updateManageData
,
updateManageData
,
getDataById
,
getDataById
,
...
@@ -578,7 +602,8 @@ export default {
...
@@ -578,7 +602,8 @@ export default {
remark
:
''
remark
:
''
},
},
currentRow
:
{},
currentRow
:
{},
operationList
:
[]
operationList
:
[],
warehouseList
:
[]
}
}
},
},
async
created
()
{
async
created
()
{
...
@@ -609,6 +634,10 @@ export default {
...
@@ -609,6 +634,10 @@ export default {
const
{
data
}
=
await
getStatusSelect
()
const
{
data
}
=
await
getStatusSelect
()
this
.
statusList
=
data
this
.
statusList
=
data
},
},
async
getWarehouseList
(
namespace
)
{
const
{
data
}
=
await
listErpWarehouse
(
namespace
)
this
.
warehouseList
=
data
},
async
getOperationFee
()
{
async
getOperationFee
()
{
const
{
data
}
=
await
getOperationFeeSelect
()
const
{
data
}
=
await
getOperationFeeSelect
()
this
.
operationList
=
data
this
.
operationList
=
data
...
@@ -620,6 +649,15 @@ export default {
...
@@ -620,6 +649,15 @@ export default {
this
.
$set
(
this
.
editForm
,
'charges'
,
charges
.
oName
)
this
.
$set
(
this
.
editForm
,
'charges'
,
charges
.
oName
)
}
}
},
},
changeWarehouse
(
v
)
{
console
.
log
(
v
)
// if (!v) return
// const charges = this.warehouseList.find((item) => item.id === v)
// if (charges) {
// this.$set(this.editForm, 'operationFeeWarehouseIds', charges.name)
// }
},
onChange
(
e
)
{
onChange
(
e
)
{
this
.
$set
(
this
.
editForm
,
'apiName'
,
e
)
this
.
$set
(
this
.
editForm
,
'apiName'
,
e
)
this
.
$set
(
this
.
editForm
,
'databaseName'
,
e
)
this
.
$set
(
this
.
editForm
,
'databaseName'
,
e
)
...
@@ -652,6 +690,7 @@ export default {
...
@@ -652,6 +690,7 @@ export default {
this
.
editId
=
undefined
this
.
editId
=
undefined
this
.
editForm
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
cloneEditForm
))
this
.
editForm
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
cloneEditForm
))
this
.
baseDomain
=
'.jomalls.com'
this
.
baseDomain
=
'.jomalls.com'
this
.
warehouseList
=
[]
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
$refs
.
form
.
clearValidate
()
this
.
$refs
.
form
.
clearValidate
()
})
})
...
@@ -714,11 +753,16 @@ export default {
...
@@ -714,11 +753,16 @@ export default {
},
},
async
handleEdit
(
row
)
{
async
handleEdit
(
row
)
{
this
.
editId
=
row
.
id
this
.
editId
=
row
.
id
this
.
warehouseList
=
[]
const
l
=
this
.
$loading
({
const
l
=
this
.
$loading
({
background
:
'rgba(0, 0, 0, 0.3)'
background
:
'rgba(0, 0, 0, 0.3)'
})
})
try
{
try
{
await
this
.
getStatusList
()
await
Promise
.
all
([
this
.
getStatusList
(),
this
.
getWarehouseList
(
row
.
apiName
)
])
const
res
=
await
getDataById
(
row
.
id
)
const
res
=
await
getDataById
(
row
.
id
)
const
parts
=
/^
(
.*
)(\.(([^
.
]
+
)\.([^
.
]
+
)))
$/
.
exec
(
res
.
data
.
domain
)
const
parts
=
/^
(
.*
)(\.(([^
.
]
+
)\.([^
.
]
+
)))
$/
.
exec
(
res
.
data
.
domain
)
if
(
parts
)
{
if
(
parts
)
{
...
@@ -727,7 +771,14 @@ export default {
...
@@ -727,7 +771,14 @@ export default {
res
.
data
.
domain
=
name
res
.
data
.
domain
=
name
this
.
baseDomain
=
tld
this
.
baseDomain
=
tld
}
}
this
.
editForm
=
res
.
data
this
.
editForm
=
res
.
data
if
(
this
.
editForm
.
operationFeeWarehouseIds
)
{
this
.
editForm
.
operationFeeWarehouseIds
=
this
.
editForm
.
operationFeeWarehouseIds
.
split
(
','
)
.
map
((
id
)
=>
Number
(
id
))
}
}
catch
(
e
)
{
}
catch
(
e
)
{
this
.
$message
.
error
(
e
)
this
.
$message
.
error
(
e
)
}
finally
{
}
finally
{
...
@@ -748,6 +799,11 @@ export default {
...
@@ -748,6 +799,11 @@ export default {
if
(
!
this
.
editId
)
{
if
(
!
this
.
editId
)
{
databaseName
=
'saas_'
+
this
.
editForm
.
databaseName
databaseName
=
'saas_'
+
this
.
editForm
.
databaseName
}
}
if
(
this
.
editForm
.
operationFeeWarehouseIds
)
{
this
.
editForm
.
operationFeeWarehouseIds
=
this
.
editForm
.
operationFeeWarehouseIds
.
join
(
','
)
}
const
domain
=
this
.
editForm
.
domain
+
this
.
baseDomain
const
domain
=
this
.
editForm
.
domain
+
this
.
baseDomain
try
{
try
{
if
(
this
.
editId
)
{
if
(
this
.
editId
)
{
...
...
src/views/system/operationFee.vue
View file @
4e25ebe4
...
@@ -31,14 +31,16 @@
...
@@ -31,14 +31,16 @@
:title=
"is_title == 1 ? '新增' : '编辑'"
:title=
"is_title == 1 ? '新增' : '编辑'"
:visible
.
sync=
"dialogVisible"
:visible
.
sync=
"dialogVisible"
@
closed=
"closedFn"
@
closed=
"closedFn"
width=
"
59
0px"
>
width=
"
80
0px"
>
<CustomForm
<CustomForm
class=
"editForm"
formItemWidth=
"50%"
formItemWidth=
"50%"
ref=
"formRefs"
ref=
"formRefs"
v-model=
"formData"
v-model=
"formData"
:formConfig=
"editformConfig"
:formConfig=
"editformConfig"
:isCustomButton=
"false"
:isCustomButton=
"false"
formLabelWidth=
"100px"
></CustomForm>
size=
"small"
formLabelWidth=
"120px"
></CustomForm>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
<el-button
@
click=
"dialogVisible = false"
@
click=
"dialogVisible = false"
...
@@ -95,14 +97,12 @@ export default {
...
@@ -95,14 +97,12 @@ export default {
{
{
prop
:
'name'
,
prop
:
'name'
,
type
:
'input'
,
type
:
'input'
,
name
:
'名称'
,
name
:
'名称'
options
:
[]
},
},
{
{
prop
:
'type'
,
prop
:
'type'
,
name
:
'费用类型'
,
name
:
'费用类型'
,
type
:
'select'
,
type
:
'select'
,
labelWidth
:
'20'
,
options
:
[
options
:
[
{
label
:
'固定'
,
value
:
1
},
{
label
:
'固定'
,
value
:
1
},
{
label
:
'浮动'
,
value
:
2
}
{
label
:
'浮动'
,
value
:
2
}
...
@@ -114,7 +114,6 @@ export default {
...
@@ -114,7 +114,6 @@ export default {
prop
:
'name'
,
prop
:
'name'
,
type
:
'input'
,
type
:
'input'
,
name
:
'名称'
,
name
:
'名称'
,
options
:
[],
renderRules
:
(
item
)
=>
[
renderRules
:
(
item
)
=>
[
{
{
required
:
true
,
required
:
true
,
...
@@ -143,7 +142,7 @@ export default {
...
@@ -143,7 +142,7 @@ export default {
{
{
prop
:
'fixedFee'
,
prop
:
'fixedFee'
,
type
:
'inputNumber'
,
type
:
'inputNumber'
,
name
:
'固定费用'
,
name
:
'固定费用
(¥)
'
,
step
:
0.01
,
step
:
0.01
,
min
:
0
,
min
:
0
,
precision
:
2
,
precision
:
2
,
...
@@ -182,7 +181,7 @@ export default {
...
@@ -182,7 +181,7 @@ export default {
{
{
prop
:
'startFee'
,
prop
:
'startFee'
,
type
:
'inputNumber'
,
type
:
'inputNumber'
,
name
:
'起收费用'
,
name
:
'起收费用
(¥)
'
,
step
:
0.01
,
step
:
0.01
,
min
:
0
,
min
:
0
,
precision
:
2
,
precision
:
2
,
...
@@ -198,7 +197,7 @@ export default {
...
@@ -198,7 +197,7 @@ export default {
{
{
prop
:
'incrementalFee'
,
prop
:
'incrementalFee'
,
type
:
'inputNumber'
,
type
:
'inputNumber'
,
name
:
'每件加收'
,
name
:
'每件加收
(¥)
'
,
step
:
0.01
,
step
:
0.01
,
min
:
0
,
min
:
0
,
precision
:
2
,
precision
:
2
,
...
@@ -214,7 +213,7 @@ export default {
...
@@ -214,7 +213,7 @@ export default {
{
{
prop
:
'endFee'
,
prop
:
'endFee'
,
type
:
'inputNumber'
,
type
:
'inputNumber'
,
name
:
'上限费用
'
,
name
:
'上限费用
(¥)
'
,
step
:
0.01
,
step
:
0.01
,
min
:
0
,
min
:
0
,
precision
:
2
,
precision
:
2
,
...
@@ -273,7 +272,7 @@ export default {
...
@@ -273,7 +272,7 @@ export default {
)
)
},
},
{
{
label
:
'固定费用'
,
label
:
'固定费用
(¥)
'
,
key
:
'fixedFee'
,
key
:
'fixedFee'
,
width
:
'150'
width
:
'150'
},
},
...
@@ -292,17 +291,17 @@ export default {
...
@@ -292,17 +291,17 @@ export default {
)
)
},
},
{
{
label
:
'起收费用'
,
label
:
'起收费用
(¥)
'
,
key
:
'startFee'
,
key
:
'startFee'
,
width
:
'150'
width
:
'150'
},
},
{
{
label
:
'每件加收'
,
label
:
'每件加收
(¥)
'
,
key
:
'incrementalFee'
,
key
:
'incrementalFee'
,
width
:
'150'
width
:
'150'
},
},
{
{
label
:
'上限费用'
,
label
:
'上限费用
(¥)
'
,
key
:
'endFee'
,
key
:
'endFee'
,
width
:
'150'
width
:
'150'
},
},
...
@@ -532,7 +531,7 @@ export default {
...
@@ -532,7 +531,7 @@ export default {
}
}
}
}
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
lang=
"scss"
>
.wraper
{
.wraper
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
...
@@ -542,4 +541,10 @@ export default {
...
@@ -542,4 +541,10 @@ export default {
.table_wrap
{
.table_wrap
{
flex
:
1
;
flex
:
1
;
}
}
.editForm
{
::v-deep
.el-input--suffix
.el-input__inner
{
width
:
235px
;
}
}
</
style
>
</
style
>
src/views/user/operatingDetails.vue
View file @
4e25ebe4
...
@@ -59,7 +59,7 @@ export default {
...
@@ -59,7 +59,7 @@ export default {
{
{
prop
:
'timeRange'
,
prop
:
'timeRange'
,
type
:
'dateRange'
,
type
:
'dateRange'
,
name
:
'
时间范围
'
name
:
'
称重时间
'
},
},
{
{
prop
:
'namespace'
,
prop
:
'namespace'
,
...
@@ -95,7 +95,7 @@ export default {
...
@@ -95,7 +95,7 @@ export default {
key
:
'orderNum'
key
:
'orderNum'
},
},
{
{
label
:
'扣费金额'
,
label
:
'扣费金额
(¥)
'
,
key
:
'fee'
key
:
'fee'
},
},
{
{
...
@@ -104,7 +104,7 @@ export default {
...
@@ -104,7 +104,7 @@ export default {
},
},
{
{
label
:
'
扣费
时间'
,
label
:
'
称重
时间'
,
key
:
'createTime'
key
:
'createTime'
}
}
]
]
...
...
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