Commit 67cb9a8c by 孙美琪

对接我的资源

parent 26cf8a12
......@@ -3,17 +3,18 @@ import request from '@/utils/request'
// 查询订单管理-用户资源管理列表
export function listResources(query) {
return request({
url: '/computility/resources/list',
url: '/member/resource/page',
method: 'get',
params: query
})
}
// 查询订单管理-用户资源管理详细
export function getResources(id) {
export function getResources(query) {
return request({
url: '/computility/resources/' + id,
method: 'get'
url: '/member/resource/get',
method: 'get',
params: query
})
}
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="订单编号" prop="orderNo">
<el-input
v-model="queryParams.orderNo"
placeholder="请输入订单编号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="商品类别" prop="category">
<el-select v-model="queryParams.category" placeholder="请选择商品类别" clearable>
<el-option
v-for="dict in application_category"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="型号" prop="model">
<el-select v-model="queryParams.model" placeholder="请选择型号" clearable>
<el-option
v-for="dict in model"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="CPU" prop="cpu">
<el-select v-model="queryParams.cpu" placeholder="请选择CPU" clearable>
<el-option
v-for="dict in cpu_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="GPU" prop="gpu">
<el-select v-model="queryParams.gpu" placeholder="请选择GPU" clearable>
<el-option
v-for="dict in gpu_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="内存" prop="memory">
<el-select v-model="queryParams.memory" placeholder="请选择内存" clearable>
<el-option
v-for="dict in memory_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="存储硬盘" prop="storage">-->
<!-- <el-select v-model="queryParams.storage" placeholder="请选择存储硬盘" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in storage_type"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="算力金额" prop="price">-->
<!-- <el-input-->
<!-- v-model="queryParams.price"-->
<!-- placeholder="请输入算力金额"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="资源状态" prop="sourceStatus">
<el-select v-model="queryParams.sourceStatus" placeholder="请选择资源状态" clearable>
<el-option
v-for="dict in source_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="网络带宽" prop="networkId">-->
<!-- <el-input-->
<!-- v-model="queryParams.networkId"-->
<!-- placeholder="请输入网络带宽"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="额外IP数量" prop="ipNum">-->
<!-- <el-input-->
<!-- v-model="queryParams.ipNum"-->
<!-- placeholder="请输入额外IP数量"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="虚拟机存储" prop="vmStorage">-->
<!-- <el-input-->
<!-- v-model="queryParams.vmStorage"-->
<!-- placeholder="请输入虚拟机存储"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="申请时间" prop="submitTime">
<el-date-picker
clearable
v-model="queryParams.submitTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择申请时间">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="使用人" prop="applyUser">-->
<!-- <el-input-->
<!-- v-model="queryParams.applyUser"-->
<!-- placeholder="请输入使用人"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="承接人" prop="receiveUser">-->
<!-- <el-input-->
<!-- v-model="queryParams.receiveUser"-->
<!-- placeholder="请输入承接人"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="使用期限" prop="useTime">-->
<!-- <el-input-->
<!-- v-model="queryParams.useTime"-->
<!-- placeholder="请输入使用期限"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="Plus"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['computility:resources:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="Edit"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['computility:resources:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="Delete"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['computility:resources:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="Download"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['computility:resources:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
<!-- </el-row>-->
<el-table v-loading="loading" :data="resourcesList" :max-height="620" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="主键" align="center" prop="id" />-->
<el-table-column label="订单编号" align="center" prop="orderNo"/>
<el-table-column label="商品类别" align="center" prop="category">
<template #default="scope">
<dict-tag :options="application_category" :value="scope.row.category"/>
</template>
</el-table-column>
<el-table-column label="型号" align="center" prop="model">
<template #default="scope">
<dict-tag :options="model" :value="scope.row.model"/>
</template>
</el-table-column>
<el-table-column label="CPU" align="center" prop="cpu">
<template #default="scope">
<dict-tag :options="cpu_type" :value="scope.row.cpu"/>
</template>
</el-table-column>
<el-table-column label="GPU" align="center" prop="gpu">
<template #default="scope">
<dict-tag :options="gpu_type" :value="scope.row.gpu"/>
</template>
</el-table-column>
<el-table-column label="内存" align="center" prop="memory">
<template #default="scope">
<dict-tag :options="memory_type" :value="scope.row.memory"/>
<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="categoryName"/>
<el-table-column
v-for="(item, index) in resourcesList[0]?.properties.length!==0?resourcesList[0]?.properties.slice(0,6):resourcesList[0]?.properties"
:key="index"
:label="item.propertyName"
>
<template #default="{ row }">
{{ row.properties[index].valueName }}
</template>
</el-table-column>
<el-table-column label="存储硬盘" align="center" prop="storage">
<template #default="scope">
<dict-tag :options="storage_type" :value="scope.row.storage"/>
</template>
</el-table-column>
<el-table-column label="资源状态" align="center" prop="sourceStatus">
<template #default="scope">
<dict-tag :options="source_status" :value="scope.row.sourceStatus"/>
</template>
</el-table-column>
<!-- <el-table-column label="网络带宽" align="center" prop="networkId"/>-->
<!-- <el-table-column label="额外IP数量" align="center" prop="ipNum"/>-->
<!-- <el-table-column label="虚拟机存储" align="center" prop="vmStorage"/>-->
<!-- <el-table-column label="申请时间" align="center" prop="submitTime" width="180">-->
<!-- <template #default="scope">-->
<!-- <span>{{ parseTime(scope.row.submitTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column v-for="(i, index) in headers" :key="index" :label="i.name" :prop="i.name">-->
<!-- <template v-slot="scope">-->
<!-- {{ getCellValue(scope.row.param, i.name) }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="使用人" align="center" prop="applyUser"/>-->
<!-- <el-table-column label="承接人" align="center" prop="receiveUser"/>-->
<!-- <el-table-column label="使用期限" align="center" prop="useTime"/>-->
<!-- <el-table-column label="备注" align="center" prop="remark"/>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" @click="handleUpdate(scope.row,scope.$index)"
v-hasPermi="['computility:resources:edit']">详情
</el-button>
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['computility:resources:remove']">删除-->
<!-- </el-button>-->
<el-button link type="primary" @click="handleUpdate(scope.row,scope.$index)">详情</el-button>
</template>
</el-table-column>
</el-table>
......@@ -270,164 +30,30 @@
<!-- 添加或修改订单管理-用户资源管理对话框 -->
<el-dialog :title="title" v-model="open" width="800px" append-to-body>
<el-form ref="resourcesRef" :model="form" :rules="rules" label-width="200px" label-position="top" disabled
style="margin: 0 !important;padding: 0 !important;">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="订单编号" prop="orderNo">
<el-input v-model="form.orderNo" placeholder="请输入订单编号"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="商品类别" prop="category">
<el-select v-model="form.category" placeholder="请选择商品类别">
<el-option
v-for="dict in application_category"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="型号" prop="model">
<el-select v-model="form.model" placeholder="请选择型号">
<el-option
v-for="dict in model"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="CPU" prop="cpu">
<el-select v-model="form.cpu" placeholder="请选择CPU">
<el-option
v-for="dict in cpu_type"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="GPU" prop="gpu">
<el-select v-model="form.gpu" placeholder="请选择GPU">
<el-option
v-for="dict in gpu_type"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="内存" prop="memory">
<el-select v-model="form.memory" placeholder="请选择内存">
<el-option
v-for="dict in memory_type"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="存储硬盘" prop="storage">
<el-select v-model="form.storage" placeholder="请选择存储硬盘">
<el-option
v-for="dict in storage_type"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="算力金额" prop="publicTotalPrice">-->
<!-- <el-input v-model="form.publicTotalPrice" placeholder="请输入算力金额"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="12">-->
<!-- <el-form-item label="实际金额" prop="innerTotalPrice">-->
<!-- <el-input v-model="form.innerTotalPrice" placeholder="请输入实际金额"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="12">
<el-form-item label="申请时间" prop="submitTime">
<el-date-picker clearable
v-model="form.submitTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择申请时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="资源状态" prop="sourceStatus">
<el-radio-group v-model="form.sourceStatus">
<el-radio
v-for="dict in source_status"
:key="dict.value"
:label="parseInt(dict.value)"
>{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<template v-for="(i,index) in form.param" :key="index">
<el-col :span="12">
<el-form-item :label="i.name">
<el-input v-model="i.valueName" :disabled="true"/>
</el-form-item>
</el-col>
</template>
</el-row>
<div>
<div class="info-block">
<div class="info-item flex-align-center flex-space-between">
<div class="label">订单编号</div>
<div class="value">{{ form.tradeOrderNo }}</div>
</div>
<div class="info-item flex-align-center flex-space-between">
<div class="label">商品类别</div>
<div class="value">{{ form.categoryName }}</div>
</div>
<!-- <el-form-item label="网络带宽" prop="networkId">-->
<!-- <el-input v-model="form.networkId" placeholder="请输入网络带宽"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="额外IP数量" prop="ipNum">-->
<!-- <el-input v-model="form.ipNum" placeholder="请输入额外IP数量"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="虚拟机存储" prop="vmStorage">-->
<!-- <el-input v-model="form.vmStorage" placeholder="请输入虚拟机存储"/>-->
<!-- </el-form-item>-->
<!-- -->
<!-- <el-form-item label="使用人" prop="applyUser">-->
<!-- <el-select v-model="form.applyUser" placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in userOptions"-->
<!-- :key="item.userId"-->
<!-- :label="item.userName"-->
<!-- :value="item.userId"-->
<!-- :disabled="item.status == 1"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="承接人" prop="receiveUser">-->
<!-- <el-input v-model="form.receiveUser" placeholder="请输入承接人"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="使用期限" prop="useTime">-->
<!-- <el-input v-model="form.useTime" placeholder="请输入使用期限"/>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备注" prop="remark">-->
<!-- <el-input v-model="form.remark" placeholder="请输入备注"/>-->
<!-- </el-form-item>-->
</div>
</el-form>
<div class="info-block">
<div class="info-item flex-align-center flex-space-between" v-for="(i,index) in form.properties"
:key="i.index">
<div class="label">{{ i.propertyName }}</div>
<div class="value">{{ i.valueName }}</div>
</div>
</div>
</div>
<template #footer>
<div class="dialog-footer">
<!-- <el-button type="primary" @click="submitForm">确 定</el-button>-->
<el-button @click="cancel">关闭</el-button>
</div>
</template>
......@@ -436,250 +62,50 @@
</template>
<script setup name="NaturalResources">
import {listResources, getResources, delResources, addResources, updateResources} from '@/api/computility/resources'
import {getAllUser} from '@/api/system/user'
const {proxy} = getCurrentInstance()
const {
source_status,
memory_type,
cpu_type,
storage_type,
model,
application_category,
gpu_type
} = proxy.useDict('source_status', 'memory_type', 'cpu_type', 'storage_type', 'model', 'application_category', 'gpu_type')
import {listResources, getResources} from '@/api/computility/resources'
const resourcesList = ref([])
const open = ref(false)
const loading = ref(true)
const showSearch = ref(true)
const ids = ref([])
const single = ref(true)
const multiple = ref(true)
const total = ref(0)
const title = ref('')
const userOptions = ref([])
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
orderNo: null,
category: null,
model: null,
cpu: null,
gpu: null,
memory: null,
storage: null,
price: null,
sourceStatus: null,
networkId: null,
ipNum: null,
vmStorage: null,
submitTime: null,
applyUser: null,
receiveUser: null,
useTime: null
},
// rowIndex: 0,
rules: {
category: [
{required: true, message: '商品类别不能为空', trigger: 'change'}
],
model: [
{required: true, message: '型号不能为空', trigger: 'change'}
],
cpu: [
{required: true, message: 'CPU不能为空', trigger: 'change'}
],
gpu: [
{required: true, message: 'GPU不能为空', trigger: 'change'}
],
memory: [
{required: true, message: '内存不能为空', trigger: 'change'}
],
storage: [
{required: true, message: '存储硬盘不能为空', trigger: 'change'}
],
sourceStatus: [
{required: true, message: '资源状态不能为空', trigger: 'change'}
],
networkId: [
{required: true, message: '网络带宽不能为空', trigger: 'blur'}
],
submitTime: [
{required: true, message: '申请时间不能为空', trigger: 'blur'}
],
applyUser: [
{required: true, message: '使用人不能为空', trigger: 'blur'}
],
receiveUser: [
{required: true, message: '承接人不能为空', trigger: 'blur'}
],
useTime: [
{required: true, message: '使用期限不能为空', trigger: 'blur'}
],
createTime: [
{required: true, message: '创建时间不能为空', trigger: 'blur'}
]
}
})
const {queryParams, form, rules} = toRefs(data)
const {queryParams, form} = toRefs(data)
/** 查询订单管理-用户资源管理列表 */
function getList() {
loading.value = true
listResources(queryParams.value).then(response => {
resourcesList.value = response.rows
total.value = response.total
resourcesList.value = response.data.list
total.value = response.data.total
loading.value = false
})
}
const headers = computed(() => {
if (resourcesList.value.length > 0 && resourcesList.value[0].param) {
const param = JSON.parse(resourcesList.value[0].param)
return param.map(item => ({
name: item.name
}));
}
return [];
});
const getCellValue = (params, headerName) => {
const paramsCopy = JSON.parse(params)
const param = paramsCopy.find(item => item.name === headerName);
return param ? param.valueName : '';
};
const getCellValue1 = (params, headerName) => {
const paramsCopy = JSON.parse(params)
const param = paramsCopy.find(item => item.name === headerName);
return param ? param.valueName : '';
};
// 取消按钮
function cancel() {
open.value = false
reset()
}
// 表单重置
function reset() {
form.value = {
id: null,
orderNo: null,
category: null,
model: null,
cpu: null,
gpu: null,
memory: null,
storage: null,
price: null,
sourceStatus: null,
networkId: null,
ipNum: null,
vmStorage: null,
submitTime: null,
applyUser: null,
receiveUser: null,
useTime: null,
createTime: null,
createBy: null,
updateBy: null,
updateTime: null,
remark: null,
delFlag: null
}
proxy.resetForm('resourcesRef')
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1
getList()
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm('queryRef')
handleQuery()
}
// 多选框选中数据
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id)
single.value = selection.length != 1
multiple.value = !selection.length
}
/** 新增按钮操作 */
function handleAdd() {
reset()
open.value = true
title.value = '添加订单管理-用户资源管理'
getAllUser().then(res => {
loading.value = false
userOptions.value = res.list
})
}
/** 修改按钮操作 */
function handleUpdate(row, index) {
reset()
// rowIndex.value = index
function handleUpdate(row) {
const _id = row.id || ids.value
getResources(_id).then(response => {
getResources({id: _id}).then(response => {
form.value = response.data
form.value.param = JSON.parse(response.data.param)
open.value = true
title.value = '查看订单'
})
}
/** 提交按钮 */
function submitForm() {
proxy.$refs['resourcesRef'].validate(valid => {
if (valid) {
if (form.value.id != null) {
updateResources(form.value).then(response => {
proxy.$modal.msgSuccess('修改成功')
open.value = false
getList()
})
} else {
addResources(form.value).then(response => {
proxy.$modal.msgSuccess('新增成功')
open.value = false
getList()
})
}
}
})
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value
proxy.$modal.confirm('是否确认删除订单管理-用户资源管理编号为"' + _ids + '"的数据项?').then(function () {
return delResources(_ids)
}).then(() => {
getList()
proxy.$modal.msgSuccess('删除成功')
}).catch(() => {
})
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('computility/resources/export', {
...queryParams.value
}, `resources_${new Date().getTime()}.xlsx`)
}
getList()
</script>
......@@ -698,4 +124,26 @@ getList()
.el-select {
width: 100% !important;
}
.info-block {
background-color: #ffffff;
padding: 4px 0;
//margin-bottom: 14px;
}
.info-item {
padding: 12px 20px;
.label {
font-weight: 400;
font-size: 16px;
color: #626566;
}
.value {
font-weight: bold;
font-size: 16px;
color: #303233;
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment