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
e539fa65
Commit
e539fa65
authored
Mar 12, 2025
by
wuqian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
赠送订单
parent
5cb7461e
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
182 additions
and
24 deletions
+182
-24
src/assets/images/song.svg
+2
-0
src/common/api/manage/index.js
+12
-5
src/views/saasManage/indexPage.vue
+168
-19
No files found.
src/assets/images/song.svg
0 → 100644
View file @
e539fa65
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
t=
"1741660930197"
class=
"icon"
viewBox=
"0 0 1024 1024"
version=
"1.1"
xmlns=
"http://www.w3.org/2000/svg"
p-id=
"7358"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
width=
"200"
height=
"200"
><path
d=
"M929.220225 286.919536l-75.686209 0c18.749538 0 35.606921-37.327062 43.175542-62.097094 9.460776-30.446498 3.612296-60.376953-16.513355-87.03914-1.376113-1.892155-2.92424-3.440282-4.644381-4.816395-97.359987-83.254829-229.122795-3.096254-282.791198 36.294977-14.449185 9.976818-18.061482 29.930455-8.084663 44.379641 9.976818 14.621199 29.930455 18.40551 44.551655 8.428691 0.344028-0.172014 2.580212-1.892155 2.92424-2.064169 30.618512-22.533848 134.687049-91.339493 199.020326-40.423316 6.020494 8.944734 7.396607 17.373425 4.472367 26.834201-7.568621 24.598018-39.73526 47.475895-55.216529 52.636318-60.204939 22.533848-79.814547 24.942046-105.100622 26.662187-2.064169 0.172014-3.956325 1.204099-5.84848 1.204099l-88.415253 0c-1.376113 0-2.580212-4.128339-4.472367-6.020494-33.026709-30.790526-111.29313-103.036452-126.774399-113.529313-118.00168-80.502604-224.822442-93.059634-293.456073-34.402822-1.720141 1.548127-3.268268 3.268268-4.644381 4.988409C131.41878 164.617504 125.570301 194.375945 135.031077 224.822442c7.568621 24.770032 24.426004 62.097094 43.003528 62.097094L96.499916 286.919536c-17.717453 0-33.370737 15.137242-33.370737 32.854695L63.129179 479.919368c0 17.717453 0 31.994625 31.994625 31.994625l0 313.237695c0 55.904586 42.659499 102.348396 93.403662 102.348396l645.912985 0c51.260205 0 93.403662-47.475895 93.403662-102.348396L927.844112 511.913993c31.994625 0 31.994625-14.277171 31.994625-31.994625l0-160.145137C960.010751 302.056778 946.937678 286.919536 929.220225 286.919536zM356.585251 285.715438c-25.286074-1.892155-44.895683-4.300353-106.30472-27.350244-14.449185-4.816395-46.44381-27.522258-54.184445-52.120275-2.92424-9.460776-1.548127-17.889467 4.472367-26.834201 64.161263-50.400134 169.777927 11.352931 214.845624 42.143457 6.364522 4.472367 37.67109 33.198723 73.450025 65.193348l-126.430371 0C360.541576 286.919536 358.64942 285.887452 356.585251 285.715438zM895.849488 350.908785l0 96.155888L131.074752 447.064673c-0.860071 0-3.956325 1.204099-3.956325 1.204099L127.118428 350.908785 895.849488 350.908785zM834.44045 863.510835 188.527465 863.510835c-16.513355 0-29.414413-20.641693-29.414413-38.359147L159.113052 511.053922l704.741811 0 0 314.097766C863.854863 844.245254 850.265748 863.510835 834.44045 863.510835z"
fill=
"#67C23A"
p-id=
"7359"
></path></svg>
\ No newline at end of file
src/common/api/manage/index.js
View file @
e539fa65
...
@@ -3,7 +3,7 @@ import axios from '../axios'
...
@@ -3,7 +3,7 @@ import axios from '../axios'
export
function
getManageData
(
export
function
getManageData
(
{
ym
,
status
,
companyName
,
user
,
beginDate
,
endDate
,
timeProp
},
{
ym
,
status
,
companyName
,
user
,
beginDate
,
endDate
,
timeProp
},
currentPage
,
currentPage
,
pageSize
,
pageSize
)
{
)
{
return
axios
.
post
(
'/sys/domain/list_page'
,
{
return
axios
.
post
(
'/sys/domain/list_page'
,
{
ym
,
ym
,
...
@@ -14,10 +14,12 @@ export function getManageData(
...
@@ -14,10 +14,12 @@ export function getManageData(
endDate
,
endDate
,
timeProp
,
timeProp
,
currentPage
,
currentPage
,
pageSize
,
pageSize
})
})
}
}
export
function
addGiftOrders
(
data
)
{
return
axios
.
post
(
'/sys/domain/addGiftOrders'
,
data
)
}
export
function
addManageData
(
data
)
{
export
function
addManageData
(
data
)
{
return
axios
.
post
(
'/sys/domain/add'
,
data
)
return
axios
.
post
(
'/sys/domain/add'
,
data
)
}
}
...
@@ -28,13 +30,18 @@ export function updateManageData(data) {
...
@@ -28,13 +30,18 @@ export function updateManageData(data) {
export
function
getDataById
(
id
)
{
export
function
getDataById
(
id
)
{
return
axios
.
get
(
'/sys/domain/get'
,
{
return
axios
.
get
(
'/sys/domain/get'
,
{
params
:
{
id
},
params
:
{
id
}
})
}
export
function
getLogById
(
datasourceId
)
{
return
axios
.
get
(
'/sys/domain/log'
,
{
params
:
{
datasourceId
}
})
})
}
}
export
function
deleteData
(
ids
)
{
export
function
deleteData
(
ids
)
{
return
axios
.
get
(
'/sys/domain/delete'
,
{
return
axios
.
get
(
'/sys/domain/delete'
,
{
params
:
{
ids
}
,
params
:
{
ids
}
})
})
}
}
...
...
src/views/saasManage/indexPage.vue
View file @
e539fa65
...
@@ -110,11 +110,12 @@
...
@@ -110,11 +110,12 @@
<el-table-column
<el-table-column
label=
"域名"
label=
"域名"
prop=
"domain"
prop=
"domain"
min-width=
"160"
header-align=
"center"
header-align=
"center"
:show-overflow-tooltip=
"true"
>
:show-overflow-tooltip=
"true"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<a
:href=
"'https://'+scope.row.domain"
target=
"_blank"
>
{{
scope
.
row
.
domain
}}
</a>
<a
:href=
"'https://' + scope.row.domain"
target=
"_blank"
>
{{
scope
.
row
.
domain
}}
</a>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
...
@@ -136,7 +137,7 @@
...
@@ -136,7 +137,7 @@
prop=
"headName"
prop=
"headName"
header-align=
"center"
header-align=
"center"
align=
"center"
align=
"center"
width=
"
8
0"
width=
"
10
0"
:show-overflow-tooltip=
"true"
></el-table-column>
:show-overflow-tooltip=
"true"
></el-table-column>
<el-table-column
<el-table-column
label=
"联系电话"
label=
"联系电话"
...
@@ -160,6 +161,27 @@
...
@@ -160,6 +161,27 @@
width=
"120"
width=
"120"
:show-overflow-tooltip=
"true"
></el-table-column>
:show-overflow-tooltip=
"true"
></el-table-column>
<el-table-column
<el-table-column
label=
"订单数"
prop=
"expireTime"
header-align=
"center"
align=
"center"
width=
"160"
:show-overflow-tooltip=
"true"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.availableQuantity"
>
{{
scope
.
row
.
availableQuantity
}}
/
{{
scope
.
row
.
orderCnt
}}
</span>
<span
v-else
>
--
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"过期时间"
prop=
"expireTime"
header-align=
"center"
align=
"center"
width=
"160"
:show-overflow-tooltip=
"true"
></el-table-column>
<el-table-column
label=
"状态"
label=
"状态"
header-align=
"center"
header-align=
"center"
align=
"center"
align=
"center"
...
@@ -167,7 +189,9 @@
...
@@ -167,7 +189,9 @@
width=
"150"
width=
"150"
:show-overflow-tooltip=
"true"
>
:show-overflow-tooltip=
"true"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-tag
plain
:type=
"findStatus(scope.row.status)"
>
{{
scope
.
row
.
statusTxt
}}
</el-tag>
<el-tag
plain
:type=
"findStatus(scope.row.status)"
>
{{
scope
.
row
.
statusTxt
}}
</el-tag>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
...
@@ -179,30 +203,41 @@
...
@@ -179,30 +203,41 @@
width=
"160"
width=
"160"
:show-overflow-tooltip=
"true"
></el-table-column>
:show-overflow-tooltip=
"true"
></el-table-column>
<el-table-column
<el-table-column
label=
"过期时间"
prop=
"expireTime"
header-align=
"center"
align=
"center"
width=
"160"
:show-overflow-tooltip=
"true"
></el-table-column>
<el-table-column
label=
"操作"
label=
"操作"
header-align=
"center"
header-align=
"center"
align=
"center"
align=
"center"
width=
"90"
width=
"90"
fixed=
"right"
>
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<div
style=
"display:flex;align-items:center;justify-content: center;font-size: 17px"
>
<div
style=
"
display: flex;
align-items: center;
justify-content: center;
font-size: 17px;
"
>
<i
<i
class=
"el-icon-edit"
class=
"el-icon-edit"
style=
"cursor: pointer"
style=
"cursor: pointer"
title=
"编辑"
title=
"编辑"
@
click=
"handleEdit(scope.row)"
></i>
@
click=
"handleEdit(scope.row)"
></i>
<img
src=
"@/assets/images/song.svg"
style=
"cursor: pointer; margin: 0 6px"
alt=
""
width=
"20"
title=
"赠送订单"
@
click=
"giveOrder(scope.row)"
/>
<i
class=
"el-icon-tickets"
title=
"操作日志"
@
click=
"showLog(scope.row)"
style=
"cursor: pointer; color: #1565c0"
></i>
<i
<i
class=
"el-icon-position"
class=
"el-icon-position"
v-if=
"scope.row.status
===
9"
v-if=
"scope.row.status
===
9"
title=
"重新开通"
title=
"重新开通"
style=
"cursor: pointer;
color:#67C23A;margin-left: 6px
"
style=
"cursor: pointer;
color: #67c23a
"
@
click=
"reOpen(scope.row)"
></i>
@
click=
"reOpen(scope.row)"
></i>
</div>
</div>
</
template
>
</
template
>
...
@@ -329,6 +364,60 @@
...
@@ -329,6 +364,60 @@
<el-button
@
click=
"save"
type=
"primary"
size=
"small"
>
保存
</el-button>
<el-button
@
click=
"save"
type=
"primary"
size=
"small"
>
保存
</el-button>
</span>
</span>
</el-dialog>
</el-dialog>
<el-dialog
title=
"赠送订单"
:visible
.
sync=
"giftOrderVisible"
:close-on-click-modal=
"false"
width=
"400px"
>
<el-form
:model=
"giftOrderForm"
ref=
"giftOrderForm"
label-width=
"100px"
label-position=
"right"
>
<el-form-item
label=
"订单数量"
prop=
"quantity"
:rules=
"[
{ required: true, message: '请输入订单数量' },
{ pattern: /^[1-9]\d*$/, message: '请输入大于0的整数' }
]"
>
<el-input
style=
"width: 200px"
v-model=
"giftOrderForm.quantity"
size=
"small"
placeholder=
"请输入订单数量"
/>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
style=
"width: 200px"
v-model=
"giftOrderForm.remark"
size=
"small"
type=
"textarea"
maxlength=
"100"
show-word-limit
placeholder=
"请输入备注"
/>
</el-form-item>
</el-form>
<span
slot=
"footer"
>
<el-button
@
click=
"giftOrderVisible = false"
size=
"small"
>
取消
</el-button>
<el-button
@
click=
"submitGiftOrder"
type=
"primary"
size=
"small"
>
确定
</el-button>
</span>
</el-dialog>
<el-dialog
title=
"操作日志"
:close-on-click-modal=
"false"
:visible
.
sync=
"noteVisible"
width=
"700px"
>
<ul
style=
"color: #333; font-size: 12px; height: 600px; overflow: auto"
>
<li
v-for=
"(item, index) in logList"
:key=
"index"
style=
"height: 30px"
>
({{ index + 1 }})、{{ item.operateName + ':' + item.msg }}
</li>
</ul>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
...
@@ -339,13 +428,17 @@ import {
...
@@ -339,13 +428,17 @@ import {
updateManageData
,
updateManageData
,
getDataById
,
getDataById
,
deleteData
,
deleteData
,
reOpenErp
reOpenErp
,
addGiftOrders
,
getLogById
}
from
'@/common/api/manage/index'
}
from
'@/common/api/manage/index'
export
default
{
export
default
{
name
:
'saasManage'
,
name
:
'saasManage'
,
data
()
{
data
()
{
return
{
return
{
noteVisible
:
false
,
logList
:
[],
statusColor
:
[
statusColor
:
[
{
{
key
:
1
,
key
:
1
,
...
@@ -437,7 +530,13 @@ export default {
...
@@ -437,7 +530,13 @@ export default {
statusList
:
[],
statusList
:
[],
cloneEditForm
:
{},
cloneEditForm
:
{},
loading
:
false
,
loading
:
false
,
baseDomain
:
'.jomalls.com'
baseDomain
:
'.jomalls.com'
,
giftOrderVisible
:
false
,
giftOrderForm
:
{
quantity
:
''
,
remark
:
''
},
currentRow
:
{}
}
}
},
},
async
created
()
{
async
created
()
{
...
@@ -446,8 +545,22 @@ export default {
...
@@ -446,8 +545,22 @@ export default {
await
this
.
getStatusList
()
await
this
.
getStatusList
()
},
},
methods
:
{
methods
:
{
async
showLog
(
item
)
{
try
{
const
res
=
await
getLogById
(
item
.
id
)
if
(
res
.
code
!==
200
)
return
if
(
res
.
data
.
length
>
0
)
{
this
.
logList
=
res
.
data
this
.
noteVisible
=
true
}
else
{
this
.
$message
.
warning
(
'暂无数据'
)
}
}
catch
(
e
)
{
console
.
error
(
e
)
}
},
findStatus
(
status
)
{
findStatus
(
status
)
{
const
item
=
this
.
statusColor
.
find
(
el
=>
el
.
key
===
status
)
const
item
=
this
.
statusColor
.
find
(
(
el
)
=>
el
.
key
===
status
)
return
item
?
item
.
value
:
''
return
item
?
item
.
value
:
''
},
},
async
getStatusList
()
{
async
getStatusList
()
{
...
@@ -502,7 +615,7 @@ export default {
...
@@ -502,7 +615,7 @@ export default {
await
this
.
$confirm
(
'确认重新开通?'
,
'提示'
,
{
await
this
.
$confirm
(
'确认重新开通?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
type
:
'warning'
})
})
}
catch
{
}
catch
{
return
return
...
@@ -511,12 +624,48 @@ export default {
...
@@ -511,12 +624,48 @@ export default {
const
res
=
await
reOpenErp
(
row
.
id
)
const
res
=
await
reOpenErp
(
row
.
id
)
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
$message
.
success
(
res
.
message
)
this
.
$message
.
success
(
res
.
message
)
await
this
.
getList
()
await
this
.
getList
()
}
}
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
error
(
e
)
console
.
error
(
e
)
}
}
},
},
giveOrder
(
row
)
{
this
.
currentRow
=
row
this
.
giftOrderVisible
=
true
// 表单赋值,否则就清空
// if (row.quantity || row.remark) {
// this.giftOrderForm = {
// quantity: row.quantity || '',
// remark: row.remark || ''
// }
// } else {
this
.
giftOrderForm
=
{
quantity
:
''
,
remark
:
''
}
// }
this
.
$nextTick
(()
=>
{
this
.
$refs
.
giftOrderForm
.
clearValidate
()
})
},
submitGiftOrder
()
{
this
.
$refs
.
giftOrderForm
.
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
const
res
=
await
addGiftOrders
({
apiName
:
this
.
currentRow
.
apiName
,
giftOrderQuantity
:
Number
(
this
.
giftOrderForm
.
quantity
),
remark
:
this
.
giftOrderForm
.
remark
})
if
(
res
.
code
===
200
)
{
this
.
$message
.
success
(
res
.
message
)
this
.
getList
()
this
.
giftOrderVisible
=
false
}
}
})
},
async
handleEdit
(
row
)
{
async
handleEdit
(
row
)
{
this
.
editId
=
row
.
id
this
.
editId
=
row
.
id
const
l
=
this
.
$loading
({
const
l
=
this
.
$loading
({
...
...
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