Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
client
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
8b02ad2e
authored
Oct 17, 2025
by
Jony.L
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
算力资源重构-更换服务器前修改
parent
4091693c
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
127 additions
and
61 deletions
+127
-61
src/api/computility/order.js
+1
-1
src/api/computility/resources.js
+4
-4
src/api/system/dict/data.js
+5
-2
src/store/modules/dict.js
+0
-0
src/utils/dict.js
+29
-1
src/views/console/myOrder.vue
+36
-21
src/views/console/naturalResources.vue
+52
-32
No files found.
src/api/computility/order.js
View file @
8b02ad2e
...
@@ -3,7 +3,7 @@ import request from '@/utils/request'
...
@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询订单管理-需求单管理列表
// 查询订单管理-需求单管理列表
export
function
listOrder
(
query
)
{
export
function
listOrder
(
query
)
{
return
request
({
return
request
({
url
:
'/
trad
e/order/page'
,
url
:
'/
comput
e/order/page'
,
method
:
'get'
,
method
:
'get'
,
params
:
query
params
:
query
})
})
...
...
src/api/computility/resources.js
View file @
8b02ad2e
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
// 查询
订单管理-用户资源管理
列表
// 查询
算力资源订单
列表
export
function
listResources
(
query
)
{
export
function
listResources
(
query
)
{
return
request
({
return
request
({
url
:
'/
member/resource
/page'
,
url
:
'/
compute/order
/page'
,
method
:
'get'
,
method
:
'get'
,
params
:
query
params
:
query
})
})
...
@@ -19,10 +19,10 @@ export function listApiResources(query) {
...
@@ -19,10 +19,10 @@ export function listApiResources(query) {
})
})
}
}
// 查询
订单管理-用户资源管理
详细
// 查询
算力资源订单
详细
export
function
getResources
(
query
)
{
export
function
getResources
(
query
)
{
return
request
({
return
request
({
url
:
'/
member/resource
/get'
,
url
:
'/
compute/order
/get'
,
method
:
'get'
,
method
:
'get'
,
params
:
query
params
:
query
})
})
...
...
src/api/system/dict/data.js
View file @
8b02ad2e
...
@@ -20,8 +20,11 @@ export function getData(dictCode) {
...
@@ -20,8 +20,11 @@ export function getData(dictCode) {
// 根据字典类型查询字典数据信息
// 根据字典类型查询字典数据信息
export
function
getDicts
(
dictType
)
{
export
function
getDicts
(
dictType
)
{
return
request
({
return
request
({
url
:
'/system/dict/data/type/'
+
dictType
,
url
:
'/system/dict-data/type'
,
method
:
'get'
method
:
'get'
,
params
:
{
type
:
dictType
}
})
})
}
}
...
...
src/store/modules/dict.js
View file @
8b02ad2e
src/utils/dict.js
View file @
8b02ad2e
...
@@ -2,6 +2,34 @@ import useDictStore from '@/store/modules/dict'
...
@@ -2,6 +2,34 @@ import useDictStore from '@/store/modules/dict'
import
{
getDicts
}
from
'@/api/system/dict/data'
import
{
getDicts
}
from
'@/api/system/dict/data'
import
request
from
"@/utils/request.js"
;
import
request
from
"@/utils/request.js"
;
export
const
DICT_TYPE
=
{
TRADE_INVOICE_STATUS
:
'trade_invoice_status'
}
/**
* 获取 dictType 对应的数据字典数组
*/
export
const
getDictOptions
=
(
dictType
)
=>
{
const
dicts
=
useDictStore
().
getDict
(
dictType
);
return
dicts
||
[];
}
export
const
getIntDictOptions
=
(
dictType
)
=>
{
const
dictOptions
=
getDictOptions
(
dictType
);
return
dictOptions
.
map
(
dict
=>
({
...
dict
,
value
:
parseInt
(
dict
.
value
)
}));
}
export
const
getStrDictOptions
=
(
dictType
)
=>
{
const
dictOptions
=
getDictOptions
(
dictType
);
return
dictOptions
.
map
(
dict
=>
({
...
dict
,
value
:
dict
.
value
+
''
}));
}
/**
/**
* 获取字典数据
* 获取字典数据
*/
*/
...
@@ -15,7 +43,7 @@ export function useDict(...args) {
...
@@ -15,7 +43,7 @@ export function useDict(...args) {
res
.
value
[
dictType
]
=
dicts
;
res
.
value
[
dictType
]
=
dicts
;
}
else
{
}
else
{
getDicts
(
dictType
).
then
(
resp
=>
{
getDicts
(
dictType
).
then
(
resp
=>
{
res
.
value
[
dictType
]
=
resp
.
data
.
map
(
p
=>
({
label
:
p
.
dictLabel
,
value
:
p
.
dictValue
,
elTagType
:
p
.
listClass
,
elTagClass
:
p
.
css
Class
}))
res
.
value
[
dictType
]
=
resp
.
data
.
map
(
p
=>
({
label
:
p
.
label
,
value
:
p
.
value
,
elTagType
:
p
.
elTagType
,
elTagClass
:
p
.
elTag
Class
}))
useDictStore
().
setDict
(
dictType
,
res
.
value
[
dictType
]);
useDictStore
().
setDict
(
dictType
,
res
.
value
[
dictType
]);
})
})
}
}
...
...
src/views/console/myOrder.vue
View file @
8b02ad2e
...
@@ -104,7 +104,7 @@
...
@@ -104,7 +104,7 @@
<!--
<el-table-column
type=
"selection"
width=
"45"
align=
"center"
/>
-->
<!--
<el-table-column
type=
"selection"
width=
"45"
align=
"center"
/>
-->
<!--
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
/>
-->
<!--
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
/>
-->
<el-table-column
label=
"商品名称"
align=
"center"
prop=
"spuName"
/>
<el-table-column
label=
"商品名称"
align=
"center"
prop=
"spuName"
/>
<el-table-column
label=
"订单编号"
align=
"center"
prop=
"
n
o"
/>
<el-table-column
label=
"订单编号"
align=
"center"
prop=
"
orderN
o"
/>
<!--
<el-table-column
label=
"商品数量"
align=
"center"
prop=
"productCount"
/>
-->
<!--
<el-table-column
label=
"商品数量"
align=
"center"
prop=
"productCount"
/>
-->
<el-table-column
label=
"费用"
align=
"center"
prop=
"payPrice"
>
<el-table-column
label=
"费用"
align=
"center"
prop=
"payPrice"
>
<template
#
default=
"scope"
>
<template
#
default=
"scope"
>
...
@@ -113,25 +113,20 @@
...
@@ -113,25 +113,20 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"资源类型"
align=
"center"
prop=
"categoryName"
/>
<el-table-column
label=
"资源类型"
align=
"center"
prop=
"categoryName"
/>
<el-table-column
label=
"商品属性"
align=
"center"
width=
"400"
>
<el-table-column
label=
"CPU"
align=
"center"
prop=
"cpu"
/>
<
template
#
default=
"{ row }"
>
<el-table-column
label=
"GPU"
align=
"center"
prop=
"gpu"
/>
<div
class=
"mt-1 properties-cell"
v-if=
"row.properties && row.properties.length"
>
<el-table-column
label=
"内存"
align=
"center"
prop=
"ram"
/>
<el-tag
<el-table-column
label=
"存储"
align=
"center"
prop=
"storage"
/>
v-for=
"(property, i) in row.properties"
<el-table-column
label=
"所在地"
align=
"center"
prop=
"location"
/>
:key=
"property.propertyId ?? i"
<el-table-column
label=
"订单状态"
align=
"center"
prop=
"status"
>
class=
"mb-1 mr-1"
<
template
#
default=
"scope"
>
>
<dict-tag
:options=
"compute_resource_order_status"
:value=
"scope.row.status"
/>
{{
property
.
propertyName
}}
:
{{
property
.
valueName
}}
</el-tag>
</div>
<span
v-else
>
-
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"订单状态"
align=
"center"
prop=
"statusName"
/>
<!-- <el-table-column label="发票链接" align="center" prop="invoiceUrl"/>-->
<!-- <el-table-column label="发票链接" align="center" prop="invoiceUrl"/>-->
<el-table-column
label=
"开票状态"
align=
"center"
prop=
"invoiceStatus
Name
"
>
<el-table-column
label=
"开票状态"
align=
"center"
prop=
"invoiceStatus"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<
!--
<dict-tag
:type=
"invoice_status"
:value=
"scope.row.invoiceStatus"
/>
--
>
<
dict-tag
:options=
"trade_invoice_status"
:value=
"scope.row.invoiceStatus"
/
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"下单时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"下单时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
...
@@ -200,7 +195,7 @@
...
@@ -200,7 +195,7 @@
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
订单编号
<
/div
>
<
div
class
=
"label"
>
订单编号
<
/div
>
<
div
class
=
"value"
>
{{
form
.
n
o
}}
<
/div
>
<
div
class
=
"value"
>
{{
form
.
orderN
o
}}
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
费用
<
/div
>
<
div
class
=
"label"
>
费用
<
/div
>
...
@@ -215,10 +210,29 @@
...
@@ -215,10 +210,29 @@
<
/div
>
<
/div
>
<
div
class
=
"info-block"
>
<
div
class
=
"info-block"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
v
-
for
=
"(i,index) in form.properties"
<
div
class
=
"info-item flex-align-center flex-space-between"
>
:
key
=
"i.index"
>
<
div
class
=
"label"
>
CPU
<
/div
>
<
div
class
=
"label"
>
{{
i
.
propertyName
}}
<
/div
>
<
div
class
=
"value"
>
{{
form
.
cpu
||
'-'
}}
<
/div
>
<
div
class
=
"value"
>
{{
i
.
valueName
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
GPU
<
/div
>
<
div
class
=
"value"
>
{{
form
.
gpu
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
内存
<
/div
>
<
div
class
=
"value"
>
{{
form
.
ram
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
存储
<
/div
>
<
div
class
=
"value"
>
{{
form
.
storage
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
服务器
IP
<
/div
>
<
div
class
=
"value"
>
{{
form
.
ip
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
服务器所在地
<
/div
>
<
div
class
=
"value"
>
{{
form
.
location
||
'-'
}}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
@@ -252,6 +266,7 @@ import {ElMessage} from "element-plus";
...
@@ -252,6 +266,7 @@ import {ElMessage} from "element-plus";
import
{
InvoiceRequestEnum
}
from
"@/utils/constants.js"
;
import
{
InvoiceRequestEnum
}
from
"@/utils/constants.js"
;
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
{
trade_invoice_status
,
compute_resource_order_status
}
=
proxy
.
useDict
(
'trade_invoice_status'
,
'compute_resource_order_status'
)
const
orderList
=
ref
([])
const
orderList
=
ref
([])
const
open
=
ref
(
false
)
const
open
=
ref
(
false
)
const
sOpen
=
ref
(
false
)
const
sOpen
=
ref
(
false
)
...
...
src/views/console/naturalResources.vue
View file @
8b02ad2e
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-table
v-loading=
"loading"
:data=
"resourcesList"
:max-height=
"620"
>
<el-table
v-loading=
"loading"
:data=
"resourcesList"
:max-height=
"620"
>
<el-table-column
label=
"订单编号"
align=
"center"
prop=
"tradeOrderNo"
/>
<el-table-column
label=
"订单编号"
align=
"center"
prop=
"orderNo"
/>
<!--
<el-table-column
label=
"商品类别"
align=
"center"
prop=
"categoryName"
/>
-->
<el-table-column
label=
"资源名称"
align=
"center"
prop=
"spuName"
/>
<el-table-column
label=
"资源属性"
align=
"center"
width=
"400"
>
<el-table-column
label=
"CPU"
align=
"center"
prop=
"cpu"
/>
<template
#
default=
"
{ row }">
<el-table-column
label=
"GPU"
align=
"center"
prop=
"gpu"
/>
<div
class=
"mt-1 properties-cell"
v-if=
"row.properties && row.properties.length"
>
<el-table-column
label=
"内存"
align=
"center"
prop=
"ram"
/>
<el-tag
<el-table-column
label=
"存储"
align=
"center"
prop=
"storage"
/>
v-for=
"(property, i) in row.properties"
<el-table-column
label=
"所在地"
align=
"center"
prop=
"location"
/>
:key=
"property.propertyId ?? i"
<el-table-column
label=
"租期"
align=
"center"
>
class=
"mb-1 mr-1"
<template
#
default=
"scope"
>
>
<span>
{{
scope
.
row
.
skuName
}}
</span>
{{
property
.
propertyName
}}
:
{{
property
.
valueName
}}
</el-tag>
</div>
<span
v-else
>
-
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"订单状态"
align=
"center"
prop=
"statusName"
/>
<el-table-column
label=
"申请时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"申请时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
#
default=
"scope"
>
<
template
#
default=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/span
>
<span>
{{
parseTime
(
scope
.
row
.
createTime
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/span
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"
有效期限"
align
=
"center"
prop
=
"exp
Time"
width
=
"180"
>
<
el
-
table
-
column
label
=
"
租赁结束时间"
align
=
"center"
prop
=
"rentEnd
Time"
width
=
"180"
>
<
template
#
default
=
"scope"
>
<
template
#
default
=
"scope"
>
<
span
>
{{
parseTime
(
scope
.
row
.
exp
Time
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/span
>
<
span
>
{{
parseTime
(
scope
.
row
.
rentEnd
Time
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/span
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"操作"
align
=
"center"
class
-
name
=
"small-padding fixed-width"
>
<
el
-
table
-
column
label
=
"操作"
align
=
"center"
class
-
name
=
"small-padding fixed-width"
>
...
@@ -48,21 +45,45 @@
...
@@ -48,21 +45,45 @@
<
div
class
=
"info-block"
>
<
div
class
=
"info-block"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
订单编号
<
/div
>
<
div
class
=
"label"
>
订单编号
<
/div
>
<
div
class
=
"value"
>
{{
form
.
tradeO
rderNo
}}
<
/div
>
<
div
class
=
"value"
>
{{
form
.
o
rderNo
}}
<
/div
>
<
/div
>
<
/div
>
<!--
<
div
class
=
"info-item flex-align-center flex-space-between"
>-->
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<!--
<
div
class
=
"label"
>
商品类别
<
/div>--
>
<
div
class
=
"label"
>
资源名称
<
/div
>
<!--
<
div
class
=
"value"
>
{{
form
.
categoryName
}}
<
/div>--
>
<
div
class
=
"value"
>
{{
form
.
spuName
}}
<
/div
>
<!--
<
/div>--
>
<
/div
>
<
/div
>
<
div
class
=
"info-block"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
v
-
for
=
"(i,index) in form.properties"
<
div
class
=
"label"
>
CPU
<
/div
>
:
key
=
"i.index"
>
<
div
class
=
"value"
>
{{
form
.
cpu
||
'-'
}}
<
/div
>
<
div
class
=
"label"
>
{{
i
.
propertyName
}}
<
/div
>
<
/div
>
<
div
class
=
"value"
>
{{
i
.
valueName
}}
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
GPU
<
/div
>
<
div
class
=
"value"
>
{{
form
.
gpu
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
内存
<
/div
>
<
div
class
=
"value"
>
{{
form
.
ram
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
存储
<
/div
>
<
div
class
=
"value"
>
{{
form
.
storage
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
服务器
IP
<
/div
>
<
div
class
=
"value"
>
{{
form
.
ip
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
服务器所在地
<
/div
>
<
div
class
=
"value"
>
{{
form
.
location
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
租期
<
/div
>
<
div
class
=
"value"
>
{{
form
.
skuName
}}
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
订单状态
<
/div
>
<
div
class
=
"value"
>
{{
form
.
statusName
}}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
@@ -71,13 +92,12 @@
...
@@ -71,13 +92,12 @@
<
div
class
=
"value"
>
{{
parseTime
(
form
.
createTime
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/div
>
<
div
class
=
"value"
>
{{
parseTime
(
form
.
createTime
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
有效期限
<
/div
>
<
div
class
=
"label"
>
租赁开始时间
<
/div
>
<
div
class
=
"value"
>
{{
parseTime
(
form
.
exp
Time
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/div
>
<
div
class
=
"value"
>
{{
parseTime
(
form
.
rentStart
Time
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"info-item flex-align-center flex-space-between"
>
<
div
class
=
"label"
>
鉴权信息
<
/div
>
<
div
class
=
"label"
>
租赁结束时间
<
/div
>
<
div
class
=
"value"
>
{{
form
.
auth
}}
<
/div
>
<
div
class
=
"value"
>
{{
parseTime
(
form
.
rentEndTime
,
'
{
y
}
-
{
m
}
-
{
d
}'
)
}}
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
template
#
footer
>
<
template
#
footer
>
...
...
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