main #34
@ -333,7 +333,7 @@ export const asyncRoutes = [
|
||||
title: "资源概览",
|
||||
fullPath: "/overview",
|
||||
noCache: true,
|
||||
icon: "el-icon-s-data"
|
||||
icon: "el-icon-folder-opened"
|
||||
},
|
||||
children: [
|
||||
{
|
||||
@ -358,7 +358,7 @@ export const asyncRoutes = [
|
||||
title: "订单管理",
|
||||
fullPath: "/orderManagement",
|
||||
noCache: true,
|
||||
icon: "el-icon-s-order"
|
||||
icon: "el-icon-document-copy"
|
||||
},
|
||||
alwaysShow: true,
|
||||
children: [
|
||||
@ -381,7 +381,7 @@ export const asyncRoutes = [
|
||||
title: "资源管理",
|
||||
fullPath: "/resourceManagement",
|
||||
noCache: true,
|
||||
icon: "el-icon-s-management"
|
||||
icon: "el-icon-paperclip"
|
||||
},
|
||||
alwaysShow: true,
|
||||
children: [
|
||||
@ -805,7 +805,7 @@ export const asyncRoutes = [
|
||||
component: Layout,
|
||||
meta: {
|
||||
title: "工单管理",
|
||||
icon: "el-icon-s-ticket",
|
||||
icon: "el-icon-tickets",
|
||||
noCache: true,
|
||||
fullPath: "/workOrderManagement"
|
||||
},
|
||||
@ -866,7 +866,7 @@ export const asyncRoutes = [
|
||||
path: "/rechargeManagement",
|
||||
component: Layout,
|
||||
meta: {
|
||||
title: "充值管理",
|
||||
title: "充值记录",
|
||||
icon: "el-icon-money",
|
||||
noCache: true,
|
||||
fullPath: "/rechargeManagement"
|
||||
@ -876,7 +876,7 @@ export const asyncRoutes = [
|
||||
path: "index",
|
||||
component: () => import("@/views/customer/rechargeRecord"),
|
||||
name: "RechargeManagement",
|
||||
meta: { title: "充值管理", fullPath: "/rechargeManagement/index" },
|
||||
meta: { title: "充值记录", fullPath: "/rechargeManagement/index" },
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -1107,7 +1107,7 @@ export const asyncRoutes = [
|
||||
component: Layout,
|
||||
name: "demandMangement",
|
||||
redirect: "/demandMangement/index",
|
||||
meta: { fullPath: "/demandMangement", title: "需求管理", noCache: true, icon: 'el-icon-s-claim' },
|
||||
meta: { fullPath: "/demandMangement", title: "需求管理", noCache: true, icon: 'el-icon-document-checked' },
|
||||
children: [
|
||||
{
|
||||
path: "index",
|
||||
@ -1128,7 +1128,7 @@ export const asyncRoutes = [
|
||||
component: Layout,
|
||||
name: "productMangement",
|
||||
redirect: "/productMangement/index",
|
||||
meta: { fullPath: "/productMangement", title: "商品管理", noCache: true, icon: 'el-icon-s-shop' },
|
||||
meta: { fullPath: "/productMangement", title: "商品管理", noCache: true, icon: 'el-icon-shopping-cart-full' },
|
||||
children: [
|
||||
{
|
||||
path: "index",
|
||||
@ -1841,7 +1841,7 @@ export const asyncRoutes = [
|
||||
{
|
||||
path: "/administrator", component: Layout, redirect: "/administrator/index", meta: {
|
||||
title: "企业管理",
|
||||
icon: "el-icon-s-custom",
|
||||
icon: "el-icon-office-building",
|
||||
noCache: true,
|
||||
fullPath: "/administrator"
|
||||
},
|
||||
|
||||
@ -24,7 +24,10 @@
|
||||
</div>
|
||||
<div class="findButton" v-else>
|
||||
<el-row class="rowBottom">
|
||||
<el-col :span="8" class="colOne">
|
||||
<el-col :span="2" class="colCharge">
|
||||
<el-button class="recharge-btn" @click="$router.push('/kbossCharge')" >充值</el-button>
|
||||
</el-col>
|
||||
<el-col :span="4" class="colOne">
|
||||
<el-select size="small" v-model="recharge_path" placeholder="请选择充值途径" @change="changeSelect">
|
||||
<el-option label="支付宝" value='0'>
|
||||
</el-option>
|
||||
@ -303,4 +306,26 @@ export default {
|
||||
.really-price {
|
||||
color: #6a7581;
|
||||
}
|
||||
.recharge-btn {
|
||||
background: linear-gradient(135deg, #4fc3f7, #29b6f6);
|
||||
color: white;
|
||||
padding: 12px 34px;
|
||||
border: none;
|
||||
border-radius: 8px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.recharge-btn:hover {
|
||||
background: linear-gradient(135deg, #4fc3f7, #29b6f6);
|
||||
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.recharge-btn:active {
|
||||
transform: translateY(2px);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -114,11 +114,11 @@ export default {
|
||||
this.url = `${baseUrl}?redirectUrl=${redirectUrl}&signinSecurityToken=${token}`;
|
||||
} else {
|
||||
console.error('未能从API响应中获取到token:', response);
|
||||
this.$message.error('获取登录信息失败,请重试');
|
||||
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取百度云Token失败:', error);
|
||||
this.$message.error('网络错误,获取登录信息失败');
|
||||
|
||||
} finally {
|
||||
this.loading = false;
|
||||
}
|
||||
|
||||
@ -2,10 +2,29 @@
|
||||
<div v-loading="loading" class="customerGood">
|
||||
<!-- <div class="tip"><img src="./svg/tip.svg" alt="">资源列表只展示未到期产品。</div>-->
|
||||
<!-- <SshTerminal></SshTerminal>-->
|
||||
<div>
|
||||
<ul class="search-box">
|
||||
<li>
|
||||
<el-input-group class="search-input">
|
||||
<el-input size="mini" placeholder="请输入关键词" clearable></el-input>
|
||||
<el-button slot="append" icon="el-icon-search" size="mini"></el-button>
|
||||
</el-input-group>
|
||||
</li>
|
||||
<li>
|
||||
<span class="search-label">创建日期:</span>
|
||||
<el-date-picker size="mini" style="width: 220px;" type="datetimerange" align="right"
|
||||
start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" format="yyyy-MM-dd"
|
||||
value-format="yyyy-MM-dd" ></el-date-picker>
|
||||
</li>
|
||||
<li>
|
||||
<el-button size="mini" >重置</el-button>
|
||||
<el-button type="primary" size="mini">查询</el-button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<el-table :data="tableData" style="width: 100%;font-size: 12px" height="calc(100vh - 130px)" border>
|
||||
<el-table-column min-width="150px" align="center" prop="productname" label="产品名称"></el-table-column>
|
||||
<el-table-column min-width="150px" align="center" prop="productdesc" label="产品描述"
|
||||
:show-overflow-tooltip="true">
|
||||
<el-table-column min-width="90px" align="center" prop="productname" label="产品名称"></el-table-column>
|
||||
<el-table-column min-width="150px" align="center" prop="productdesc" label="产品描述" :show-overflow-tooltip="true">
|
||||
<template slot-scope="{row}">
|
||||
{{ row.productdesc ? row.productdesc : '-' }}
|
||||
</template>
|
||||
@ -26,46 +45,38 @@
|
||||
</el-table-column> -->
|
||||
<el-table-column prop="" label="操作" align="center" width="120px">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="primary" size="mini" @click="goJiNanChaoSuan()" v-if="scope.row.providername==='济南超算'">
|
||||
<el-button type="primary" size="mini" @click="goJiNanChaoSuan()" v-if="scope.row.providername === '济南超算'">
|
||||
<div style="display: flex;justify-content: center;align-items: center">
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg"
|
||||
alt="">超算产品
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg" alt="">超算产品
|
||||
</div>
|
||||
</el-button>
|
||||
<el-button type="primary" size="mini" @click="goBaiDu(scope.row.product_url)"
|
||||
v-else-if="(scope.row.providername==='百度智能云')">
|
||||
v-else-if="(scope.row.providername === '百度智能云')">
|
||||
<div style="display: flex;justify-content: center;align-items: center">
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg"
|
||||
alt="">百度产品
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg" alt="">实例使用
|
||||
</div>
|
||||
</el-button>
|
||||
<el-button type="primary" size="mini" @click="goJd"
|
||||
v-else-if="(scope.row.providername==='京东云')"
|
||||
>
|
||||
<el-button type="primary" size="mini" @click="goJd" v-else-if="(scope.row.providername === '京东云')">
|
||||
<!-- <i class="el-icon-edit-outline"></i> -->
|
||||
<div style="display: flex;justify-content: center;align-items: center">
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg"
|
||||
alt="">京东产品
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg" alt="">京东产品
|
||||
</div>
|
||||
</el-button>
|
||||
<el-button type="primary" size="mini" @click="goUcloud(scope.row.region)"
|
||||
v-else-if="(scope.row.providername==='优刻得科技股份有限公司')">
|
||||
v-else-if="(scope.row.providername === '优刻得科技股份有限公司')">
|
||||
<!-- <i class="el-icon-edit-outline"></i> -->
|
||||
<div style="display: flex;justify-content: center;align-items: center">
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg"
|
||||
alt="">集群二
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg" alt="">集群二
|
||||
</div>
|
||||
</el-button>
|
||||
<el-button size="mini" @click="nodeThree(scope.row)" v-else-if="(scope.row.classify === 'E')">
|
||||
详情
|
||||
</el-button>
|
||||
<div v-else-if="scope.row.classify ==='CPCC' ">
|
||||
<el-button size="mini" type="primary"
|
||||
@click="openCpccDetail(scope.row)">
|
||||
<div v-else-if="scope.row.classify === 'CPCC'">
|
||||
<el-button size="mini" type="primary" @click="openCpccDetail(scope.row)">
|
||||
容器化详情
|
||||
</el-button>
|
||||
<el-button size="mini" type="primary"
|
||||
@click="$router.push('/customer/SshTerminal')">
|
||||
<el-button size="mini" type="primary" @click="$router.push('/customer/SshTerminal')">
|
||||
登录
|
||||
</el-button>
|
||||
</div>
|
||||
@ -81,11 +92,10 @@
|
||||
<!-- </el-dropdown>-->
|
||||
|
||||
<el-button type="primary" size="mini" @click="goCaption()"
|
||||
v-else-if="(scope.row.providername==='北京首都在线科技股份有限公司')">
|
||||
v-else-if="(scope.row.providername === '北京首都在线科技股份有限公司')">
|
||||
<!-- <i class="el-icon-edit-outline"></i> -->
|
||||
<div style="display: flex;justify-content: center;align-items: center">
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg"
|
||||
alt="">集群一
|
||||
<img style="width: 12px;margin-right: 5px;height: 12px;" src="./svg/跳转.svg" alt="">集群一
|
||||
</div>
|
||||
</el-button>
|
||||
<span v-else>-</span>
|
||||
@ -109,11 +119,7 @@
|
||||
<div class="guige">
|
||||
<span>{{ scope.row.productname }}* {{ scope.row.gpu }}卡</span>
|
||||
|
||||
<el-popover
|
||||
placement="top"
|
||||
title=""
|
||||
width="200"
|
||||
trigger="hover">
|
||||
<el-popover placement="top" title="" width="200" trigger="hover">
|
||||
<span class="tipStyle" slot="reference">查看详情</span>
|
||||
|
||||
<div>
|
||||
@ -143,7 +149,7 @@
|
||||
<div class="itemOut">
|
||||
<div>登录指令</div>
|
||||
<div>ssh ****** <span class="copyBtn">
|
||||
<i @click="copyText('ssh -p '+scope.row.port+' '+scope.row.loginname+'@'+scope.row.ip_region)"
|
||||
<i @click="copyText('ssh -p ' + scope.row.port + ' ' + scope.row.loginname + '@' + scope.row.ip_region)"
|
||||
class="el-icon-copy-document"></i>
|
||||
</span>
|
||||
</div>
|
||||
@ -162,10 +168,7 @@
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column min-width="150px" fixed="right" property="address" label="操作">
|
||||
<template slot-scope="scope">
|
||||
<el-popconfirm
|
||||
@confirm="shutDownThree(scope.row)"
|
||||
title="确定将该设备关机吗?"
|
||||
>
|
||||
<el-popconfirm @confirm="shutDownThree(scope.row)" title="确定将该设备关机吗?">
|
||||
<el-button slot="reference" :loading="deleteBtnLoading" type="danger" size="mini">
|
||||
关机
|
||||
</el-button>
|
||||
@ -176,21 +179,14 @@
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
title="登录信息"
|
||||
:visible.sync="rqyVisible"
|
||||
width="800"
|
||||
>
|
||||
<el-dialog title="登录信息" :visible.sync="rqyVisible" width="800">
|
||||
<el-descriptions title="" direction="vertical" :column="4" border>
|
||||
<el-descriptions-item label="实例id">{{ cpccDetail.id }}</el-descriptions-item>
|
||||
<el-descriptions-item label="实例名称">{{ cpccDetail.source_name }}</el-descriptions-item>
|
||||
<el-descriptions-item label="状态">进行中</el-descriptions-item>
|
||||
<el-descriptions-item label="健康状态">
|
||||
|
||||
<el-tag
|
||||
|
||||
type="success"
|
||||
effect="dark">
|
||||
<el-tag type="success" effect="dark">
|
||||
正常
|
||||
</el-tag>
|
||||
</el-descriptions-item>
|
||||
@ -215,14 +211,14 @@
|
||||
<el-descriptions-item label="核心数">{{ cpccDetail.source_cpurate }}</el-descriptions-item>
|
||||
<el-descriptions-item label="数据盘">{{ cpccDetail.source_storagelimits }}</el-descriptions-item>
|
||||
<el-descriptions-item label="系统盘">{{ cpccDetail.disk_sys_limit }}</el-descriptions-item>
|
||||
<el-descriptions-item v-if="cpccDetail.source_gpu!=='0'" label="卡数">{{
|
||||
<el-descriptions-item v-if="cpccDetail.source_gpu !== '0'" label="卡数">{{
|
||||
cpccDetail.source_gpu
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
|
||||
</el-descriptions>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<!-- <el-button @click="rqyVisible = false">取 消</el-button>-->
|
||||
<!-- <el-button @click="rqyVisible = false">取 消</el-button>-->
|
||||
<el-button type="primary" @click="rqyVisible = false">关 闭</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
@ -230,16 +226,16 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getCustomerGoodsAPI, HpcAccessTimeAPI} from '@/api/customer/userResource'
|
||||
import {getJinanchaosuanSign} from '@/api/JiNanChaoSuan/jiNanChaoSuanUserList'
|
||||
import {goJdUrl} from "@/api/product/jdApi";
|
||||
import {reqDeleteK8sCloud, reqGetInstance} from "@/api/k8s";
|
||||
import {Terminal} from "xterm";
|
||||
import { getCustomerGoodsAPI, HpcAccessTimeAPI } from '@/api/customer/userResource'
|
||||
import { getJinanchaosuanSign } from '@/api/JiNanChaoSuan/jiNanChaoSuanUserList'
|
||||
import { goJdUrl } from "@/api/product/jdApi";
|
||||
import { reqDeleteK8sCloud, reqGetInstance } from "@/api/k8s";
|
||||
import { Terminal } from "xterm";
|
||||
import SshTerminal from "@/views/customer/userResource/SshTerminal.vue";
|
||||
|
||||
export default {
|
||||
name: "userResource",
|
||||
components: {SshTerminal},
|
||||
components: { SshTerminal },
|
||||
data() {
|
||||
return {
|
||||
isShowPass: false,
|
||||
@ -302,7 +298,7 @@ export default {
|
||||
this.deleteBtnLoading = false
|
||||
if (res.status) {
|
||||
this.$message.success("删除成功~")
|
||||
reqGetInstance({customer_goods_id: item.id, orgid: sessionStorage.getItem('orgid')}).then(res => {
|
||||
reqGetInstance({ customer_goods_id: item.id, orgid: sessionStorage.getItem('orgid') }).then(res => {
|
||||
if (res.status) {
|
||||
this.datailList = res.data
|
||||
}
|
||||
@ -314,7 +310,7 @@ export default {
|
||||
},
|
||||
nodeThree(row) {
|
||||
this.detailBtnLoading = true
|
||||
reqGetInstance({customer_goods_id: row.id, orgid: sessionStorage.getItem('orgid')}).then(res => {
|
||||
reqGetInstance({ customer_goods_id: row.id, orgid: sessionStorage.getItem('orgid') }).then(res => {
|
||||
this.detailBtnLoading = false
|
||||
if (res.status) {
|
||||
this.dialogTableVisible = true
|
||||
@ -357,7 +353,7 @@ export default {
|
||||
})
|
||||
},
|
||||
HpcAccessTime() {
|
||||
HpcAccessTimeAPI({orgid: sessionStorage.getItem("orgid")}).then(res => {
|
||||
HpcAccessTimeAPI({ orgid: sessionStorage.getItem("orgid") }).then(res => {
|
||||
if (rs.status == true) {
|
||||
|
||||
}
|
||||
@ -404,8 +400,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.customerGood {
|
||||
}
|
||||
.customerGood {}
|
||||
|
||||
.tip {
|
||||
color: #ff9120;
|
||||
@ -478,4 +473,23 @@ export default {
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
.search-input{
|
||||
display: flex;
|
||||
}
|
||||
.search-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
background-color: white;
|
||||
padding: 10px;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.search-box li {
|
||||
margin-right: 15px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -246,6 +246,7 @@ export default Vue.extend({
|
||||
.title {
|
||||
font-size: 30px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
.banner-title {
|
||||
|
||||
@ -46,14 +46,14 @@
|
||||
|
||||
|
||||
|
||||
<el-form-item label="公司类别" prop="company_type" required class="full-width">
|
||||
<!-- <el-form-item label="公司类别" prop="company_type" required class="full-width">
|
||||
|
||||
<el-checkbox-group v-model="form.company_type">
|
||||
<el-checkbox v-for="item in company_category_list" :key="item.value"
|
||||
:label="item.label"></el-checkbox>
|
||||
|
||||
</el-checkbox-group>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
|
||||
<div class="form-row">
|
||||
<el-form-item label="联系人" prop="contact_person" required class="form-item-half">
|
||||
|
||||
@ -78,8 +78,6 @@ export default {
|
||||
this.url = resultUrlLast
|
||||
console.log('iframeurl', resultUrlLast)
|
||||
this.flag = true
|
||||
} else {
|
||||
this.$message.error('获取token失败!')
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@ -64,8 +64,6 @@ export default {
|
||||
this.url = resultUrlLast
|
||||
console.log('url', resultUrlLast)
|
||||
this.flag = true
|
||||
} else {
|
||||
this.$message.error('获取token失败!')
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user