Commit efd742cf authored by 张俊's avatar 张俊

合并

parents c4a104dc 6537e94e
src/assets/imgs/ic_true.png

1.51 KB | W: | H:

src/assets/imgs/ic_true.png

1.51 KB | W: | H:

src/assets/imgs/ic_true.png
src/assets/imgs/ic_true.png
src/assets/imgs/ic_true.png
src/assets/imgs/ic_true.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -3,6 +3,11 @@
<div class="apass_breadcrumb">
<slot name="breadcrumb"></slot>
</div>
<div class="main-container top_container" v-if="$slots.top">
<slot name="top"></slot>
</div>
<div class="main-container">
<div class="header-container" v-if="!hideHeader">
<div class="header-left apass_button">
......@@ -18,6 +23,28 @@
"
></i>
</el-button>
<div
v-for="(item, index) in selectFilter"
:key="'select_' + index"
class="select_container"
>
<span class="select_title" v-text="item.name"></span>
<el-select
v-model="item.value"
placeholder="请选择"
@change="listAction"
>
<el-option
v-for="(v, i) in item.options"
:key="'select_' + index + '_option_' + i"
:label="v.name"
:value="v.value"
>
</el-option>
</el-select>
</div>
<slot name="header-left"></slot>
</div>
<div class="header-center">
......@@ -51,7 +78,7 @@
<list-table
:header="listHeader"
:data="listData"
:padding-left="35"
:padding-left="listPaddingLeft"
></list-table>
</div>
......@@ -84,6 +111,10 @@ export default {
type: Array,
default: () => [],
},
otherFilter: {
type: Array,
default: () => [],
},
listHeader: {
type: Array,
default: () => [],
......@@ -116,8 +147,21 @@ export default {
currentPage: 1,
timer: null,
pageSizes: [15, 50, 100],
selectFilter: [],
}),
methods: {
initOtherFilter() {
this.otherFilter.forEach((item) => {
this.$set(this.filter, item.prop, item.default);
this.selectFilter.push({
name: item.name,
prop: item.prop,
value: item.default,
options: item.options,
});
});
},
searchAction(value) {
this.listAction();
},
......@@ -140,8 +184,15 @@ export default {
}
this.timer = setTimeout(() => {
let selectFilter = {};
this.selectFilter.forEach((item) => {
selectFilter[item.prop] = item.value;
});
this.$emit("list-action", {
...this.filter,
...selectFilter,
keyword: this.searchValue,
size: this.pageSize,
page: this.currentPage,
......@@ -150,6 +201,10 @@ export default {
},
},
mounted() {
if (this.otherFilter && this.otherFilter.length > 0) {
this.initOtherFilter();
}
this.listAction();
},
};
......@@ -182,7 +237,17 @@ export default {
justify-content: space-between;
align-items: center;
}
.header-container .el-button + .el-button {
.header-container .select_container {
display: inline-block;
vertical-align: middle;
}
.header-container .select_container .select_title {
font-size: 14px;
color: #242c43;
margin-right: 10px;
}
.header-container .el-button + .el-button,
.header-container .select_container + .select_container {
margin-left: 25px;
}
.apass_filter {
......@@ -195,4 +260,8 @@ export default {
.list-container {
flex-grow: 1;
}
.top_container {
flex-grow: 0;
margin-bottom: 20px;
}
</style>
<template>
<div class="apass_table">
<el-table :data="data" :height="height">
<el-table-column :width="Math.max(paddingLeft - 10, 0)" v-if="icon"></el-table-column>
<el-table-column v-if="paddingLeft > 10" :width="paddingLeft - 10"></el-table-column>
<el-table-column
v-for="(item, index) in header"
:label="item.label"
......@@ -61,6 +61,33 @@
</sparkline>
<span class="use" v-if="item.prop=='cpu'">{{scope.row['cpu_use']}}.00mm</span>
<span class="use" v-if="item.prop=='mermoy'">{{scope.row['memory_use']}}.00Mi</span>
</div>
<div v-else-if="item.type === 'image'" class="img_content">
<img
:src="item.getImage && item.getImage(scope.row)"
:width="item.size"
/>
</div>
<div
v-else-if="
item.type === 'tooltip' &&
item.getLength &&
item.getLength(scope.row) > 1
"
>
<el-tooltip
placement="right-start"
popper-class="apass_table_tooltip"
>
<div
slot="content"
v-html="item.getContent && item.getContent(scope.row)"
></div>
<span
v-text="(item.getText && item.getText(scope.row)) + '..'"
style="text-decoration: underline;color: #515fe7;"
></span>
</el-tooltip>
</div>
<span
v-else
......@@ -89,10 +116,6 @@ export default {
type: [Number, String],
default: () => 50,
},
icon:{
type: Boolean,
default: true,
},
height:{
type: Number,
default: null,
......@@ -162,4 +185,17 @@ export default {
font-size: 12px;
color: rgba(26, 34, 54, 1);
}
.apass_table_tooltip {
font-size: 12px;
line-height: 20px;
}
</style>
<style scoped>
.img_content {
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
</style>
This diff is collapsed.
<template>
<div class="menu">
<img src="../assets/imgs/home_img_logo.png" alt class="logo" />
<div
style="float:right;cursor: pointer;position:relative;"
class="user_hover"
>
<span
v-if="userInfo.user_name && userInfo.user_name != ''"
class="user"
>{{ userInfo.user_name }}</span
>
<div style="float:right;cursor: pointer;position:relative;" class="user_hover">
<span v-if="userInfo.user_name && userInfo.user_name != ''" class="user">{{ userInfo.user_name }}</span>
<span v-else @click="gotopage('login')" class="user">请登录</span>
<img
:class="userInfo.picture_path ? 'user_pic' : 'user_default'"
:src="
<img :class="userInfo.picture_path ? 'user_pic' : 'user_default'" :src="
userInfo.picture_path || require('../assets/imgs/home_ic_user.png')
"
/>
<div
v-if="userInfo.user_name && userInfo.user_name != ''"
class="user_menu"
>
<div
v-for="(item, index) in user_arr"
:key="index + 700"
@click="gotopage(item.path)"
>
" />
<div v-if="userInfo.user_name && userInfo.user_name != ''" class="user_menu">
<div v-for="(item, index) in user_arr" :key="index + 700" @click="gotopage(item.path)">
{{ item.name }}
</div>
</div>
<div
v-if="userInfo.user_name && userInfo.user_name != ''"
class="sj"
></div>
<div v-if="userInfo.user_name && userInfo.user_name != ''" class="sj"></div>
</div>
<div
style="float:right;cursor: pointer;position:relative;"
class="shop_hover"
@click="gotopage('/shop/shopping_cart')"
>
<div style="float:right;cursor: pointer;position:relative;" class="shop_hover" @click="gotopage('/shop/shopping_cart')">
<div class="car">
<el-badge
v-if="menuCartNum != 0"
:value="menuCartNum"
:max="99"
class="number"
></el-badge>
<el-badge v-if="menuCartNum != 0" :value="menuCartNum" :max="99" class="number"></el-badge>
<img src="../assets/imgs/home_ic_shop.png" alt class="car_img" />
</div>
<div
v-if="userInfo.user_name && userInfo.user_name != ''"
class="shop_menu"
>
<div v-if="userInfo.user_name && userInfo.user_name != ''" class="shop_menu">
<div class="shop_list_title">最近加入的服务:</div>
<div
v-for="(item, index) in shopping_list"
:key="'shopping' + index"
class="shop_list_cell shop_line"
>
<div v-for="(item, index) in shopping_list" :key="'shopping' + index" class="shop_list_cell shop_line">
<img :src="item.service.cover" class="shop_img" />
<div class="shop_cell_msgs">
<p @click="getDetail(item.id)" class="shop_cell_name over_one">
{{
item.service_id == 0
? item.application.app_name
: item.service.name
}}
{{ item.service_id == 0 ? item.application.app_name : item.service.name }}
</p>
<p class="shop_cell_msg bover_one">
{{
item.service_id == 0
? item.application.ywly
: item.service.sectors_name
}}
{{ item.service_id == 0 ? item.application.ywly : item.service.sectors_name }}
</p>
<p class="shop_cell_msg over_one">
{{
item.service_id == 0
? item.application.org
: item.service.organization_name
}}
{{ item.service_id == 0 ? item.application.org : item.service.organization_name }}
</p>
</div>
<div>
<img
@click.stop="deleteItem(item.id)"
src="../assets/imgs/ic_delete.png"
alt
/>
<img @click.stop="deleteItem(item.id)" src="../assets/imgs/ic_delete.png" alt />
</div>
</div>
<div class="shop_footer">
<el-button @click="settlement" size="small" class="shop_settlement"
>去购物车申请结算</el-button
>
<el-button @click="settlement" size="small" class="shop_settlement">去购物车申请结算</el-button>
</div>
</div>
<div
v-if="userInfo.user_name && userInfo.user_name != ''"
class="shop_sj"
></div>
<div v-if="userInfo.user_name && userInfo.user_name != ''" class="shop_sj"></div>
</div>
<div style="float:right">
<div
v-for="(item, index) in menu_arr"
:key="index + 200"
class="menu_box user_hover"
@click="navAction(item.visit_url)"
:style="{ color: now_menu == item.visit_url ? '#fff' : '' }"
>
<div v-for="(item, index) in menu_arr" :key="index + 200" class="menu_box user_hover" @click="navAction(item.visit_url)" :style="{ color: now_menu == item.visit_url ? '#fff' : '' }">
{{ item.menu_name }}
<div
class="user_menu"
v-if="item.Child && item.Child.length"
style="left: 30px;"
>
<div
v-for="(v, indexs) in item.Child"
:key="indexs + 700"
@click.stop="gotoChildPage(v, item.visit_url)"
>
<div class="user_menu" v-if="item.Child && item.Child.length" style="left: 30px;">
<div v-for="(v, indexs) in item.Child" :key="indexs + 700" @click.stop="gotoChildPage(v, item.visit_url)">
{{ v.menu_name }}
</div>
</div>
<div
class="sj"
v-if="item.Child && item.Child.length"
style="left: 60px;"
></div>
<div class="sj" v-if="item.Child && item.Child.length" style="left: 60px;"></div>
<div class="bottom_show" v-if="now_menu == item.visit_url"></div>
</div>
</div>
......@@ -146,10 +71,10 @@ export default {
{ name: "消息通知", path: "/user/message" },
{ name: "收银中心", path: "" },
{ name: "关于BD-aPaaS", path: "" },
{ name: "退出登录", path: "logout" },
{ name: "退出登录", path: "logout" }
],
shopping_list: [],
menuCartNum: 0,
menuCartNum: 0
};
},
mounted() {
......@@ -162,15 +87,16 @@ export default {
},
userInfo() {
return this.$store.state.userInfo || {};
},
}
},
watch: {
getMenuCartState(newVal) {
this.getList();
},
}
},
methods: {
gotopage(n) {
console.log("function gotopage,menu test:" + n);
if (n == "logout") {
window.location.href = "/iam/api/logout";
} else if (n == "login") {
......@@ -185,7 +111,7 @@ export default {
},
deleteItem(id) {
let query = [id];
this.$api.serviceShop.delShoppingCart(query).then((response) => {
this.$api.serviceShop.delShoppingCart(query).then(response => {
this.getList();
});
},
......@@ -195,26 +121,29 @@ export default {
this.$router.push({ name: "shoppingCart" });
},
navAction(path) {
this.$router.push(path);
console.log("function navAction,menu test:" + path);
this.now_menu = path;
window.sessionStorage.setItem("menuVisitUrl", path);
this.$router.push(path);
},
gotoChildPage(v, parent) {
console.log("function gotoChildPage,menu test:" + v + "|" + parent);
if (v.visit_url) {
if (v.visit_url == "/fwgl/" || v.visit_url == "/yygl/") {
this.$router.push(v.visit_url + this.$store.getters.level);
} else if (parent == "/services_shop") {
this.$router.push(v.visit_url);
this.$store.commit("serviceShopMenuAct", v.visit_url);
this.$router.push(v.visit_url);
} else {
this.$router.push(v.visit_url);
}
this.now_menu = parent;
window.sessionStorage.setItem("menuVisitUrl", parent);
}
},
getList() {
this.$api.serviceShop.getShoppingCart().then((response) => {
this.$api.serviceShop.getShoppingCart().then(response => {
if (response.data.success == "1") {
this.menuCartNum = response.data.data.valid
? response.data.data.valid.length
......@@ -233,15 +162,15 @@ export default {
this.now_menu = visit_url ? visit_url : "/services_shop";
},
getNowMenu() {
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then((response) => {
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then(response => {
if (response.data.success == 1) {
this.menu_arr =
(response.data.data[0] && response.data.data[0].Child) || [];
this.getMenuIndex();
}
});
},
},
}
}
};
</script>
......
......@@ -50,11 +50,11 @@ export default {
score: 0,
starInfo: [
{
star: 1,
star: 5,
percent: 0,
},
{
star: 2,
star: 4,
percent: 0,
},
{
......@@ -62,11 +62,11 @@ export default {
percent: 0,
},
{
star: 4,
star: 2,
percent: 0,
},
{
star: 5,
star: 1,
percent: 0,
},
],
......@@ -79,7 +79,7 @@ export default {
return {
score: data.avgScore || 0,
starInfo: [1, 2, 3, 4, 5].map((star) => {
starInfo: [5,4,3,2,1].map((star) => {
let percent =
this.commentsTtotal > 0
? (((data.scoreStatic && data.scoreStatic[star]) || 0) /
......
......@@ -13,7 +13,7 @@
></service-tab-detail>
</el-tab-pane>
<!-- 规格定价 -->
<!-- 规格说明 -->
<el-tab-pane
:label="specificationTitle"
name="specification"
......@@ -25,7 +25,7 @@
></service-tab-specification>
</el-tab-pane>
<!-- 提供机构 -->
<!-- 提供组织 -->
<el-tab-pane :label="providerTitle" name="provider" v-if="providerData">
<service-tab-provider
class="service_info"
......@@ -65,11 +65,11 @@ export default {
},
specificationTitle: {
type: String,
default: () => "规格定价",
default: () => "规格说明",
},
providerTitle: {
type: String,
default: () => "提供机构",
default: () => "提供组织",
},
commentsTitle: {
type: String,
......
<template>
<div class="shop_card">
<div class="shop_car-img" v-if="data.img" @click="intoDetail">
<img :src="data.img" width="100%" />
<div class="shop_car-img" v-if="showImg" @click="intoDetail">
<img :src="data.cover" width="100%" />
</div>
<div class="shop_card-top">
<p
class="shop_card-title text_clip_2"
v-text="data.title"
:title="data.title"
v-text="data.name"
:title="data.name"
@click="intoDetail"
></p>
<p class="shop_card-text under_text">
<span
class="text_clip"
v-text="data.provider"
:title="data.provider"
></span>
<span class="text_clip" v-text="data.department_name" :title="data.department_name"></span>
<span>
<i class="el-icon-star-on"></i>
<span v-text="data.rate"></span>
<el-rate
v-model="data.score"
disabled
show-score
text-color="#ea7d19"
score-template="{value}"
></el-rate>
</span>
</p>
</div>
......@@ -28,16 +29,22 @@
</p>
<p class="shop_card-text update_time">
<img :src="require('@/assets/imgs/icon_shijian.png')" style="margin-right: 5px;" />
<span class="text_clip" v-text="'更新时间:' + data.updateTime"></span>
<span class="text_clip" v-text="'更新时间:' + helper.dateStringTransform(data.update_date)"></span>
</p>
<div class="shop_card-text access">
<span>
<img :src="require('@/assets/imgs/icon_liulan.png')" />
<span class="text_clip" v-text="data.viewCount + '次浏览'"></span>
<span
class="text_clip"
v-text="helper.numberFormat(data.view_count, 2) + (data.view_count > 10000 ? '万' : '') + '次浏览'"
></span>
</span>
<span>
<img :src="require('@/assets/imgs/icon_huoqu1.png')" />
<span class="text_clip" v-text="data.numberOfMonth + '次获取'"></span>
<span
class="text_clip"
v-text="helper.numberFormat(data.apply_count, 2) + (data.apply_count > 10000 ? '万' : '') + '次获取'"
></span>
</span>
</div>
</div>
......@@ -45,22 +52,32 @@
</template>
<script>
import helper from "@/services/helper";
export default {
props: {
data: {
type: Object,
required: true,
default: () => {}
},
detailPath: {
type: String,
required: true,
required: true
},
showImg: {
type: Boolean,
default: false
}
},
data() {
return {
helper
};
},
methods: {
intoDetail() {
this.$router.push(this.detailPath + this.data.id);
},
},
}
}
};
</script>
......
This diff is collapsed.
......@@ -9,7 +9,7 @@
<ul class="shop_cards">
<li v-for="(item, index) in data" :key="'card_' + index">
<shop-card :data="item" :detail-path="detailPath"></shop-card>
<shop-card :data="item" :showImg="showImg" :detail-path="detailPath"></shop-card>
</li>
</ul>
</div>
......@@ -20,33 +20,37 @@ import shopCard from "./shop-card";
export default {
components: {
shopCard,
shopCard
},
props: {
name: {
type: String,
required: true,
required: true
},
to: {
type: String,
required: true,
required: true
},
detailPath: {
type: String,
required: true,
required: true
},
data: {
type: Array,
required: true,
default: () => []
},
showImg: {
type: Boolean,
default: false
}
},
methods: {
goto() {
if (this.to) {
this.$router.push(this.to);
}
},
},
}
}
};
</script>
......
<template>
<div class="services_shop-container">
<div class="services_shop-carousel">
<el-carousel height="400px">
<el-carousel-item
v-for="(banner, index) in banners"
:key="'banner_' + index"
>
<img :src="banner" width="100%" />
<el-carousel height="400px" arrow="never">
<el-carousel-item v-for="(banner, index) in banners" :key="'banner_' + index">
<img :src="banner.image_url" width="100%" @click="goto(banner.url)" />
</el-carousel-item>
</el-carousel>
<ul class="services_shop-info">
......@@ -18,16 +15,12 @@
<div class="right-container">
<p v-text="item.name"></p>
<p>
<span v-text="item.value"></span>
<span v-text="item.unit"></span>
<span>{{ helper.numberFormat(item.value, 2) }}</span>
<span>{{ item.value > 10000 ? "" : "" }}</span>
</p>
</div>
</li>
<li
class="info_line"
:key="'line_' + index"
v-if="index + 1 < servicesShopInfo.length"
></li>
<li class="info_line" :key="'line_' + index" v-if="index + 1 < servicesShopInfo.length"></li>
</template>
</ul>
</div>
......@@ -38,6 +31,7 @@
to="/shop/data_service_list"
detail-path="/shop/sjfwDetail/"
:data="hot_datas"
:showImg="false"
></shop-list>
<!-- 精品地图 -->
......@@ -46,6 +40,7 @@
to="/shop/space_time_service_list"
detail-path="/shop/skfwDetail/"
:data="map_datas"
:showImg="true"
></shop-list>
<!-- 综合应用 -->
......@@ -54,84 +49,90 @@
to="/shop/comprehensive_app_list"
detail-path="/shop/zhfwDetail/"
:data="comprehensive_datas"
:showImg="true"
></shop-list>
</div>
</template>
<script>
import shopList from "@/components/shop-list";
import helper from "@/services/helper";
export default {
components: {
shopList,
shopList
},
data: () => ({
banners: null,
servicesShopInfo: null,
servicesShopInfo: [
{
name: "服务总数",
value: 0,
icon: require("@/assets/imgs/shop_ic_fuwuzs.png")
},
{
name: "用户总数",
value: 0,
icon: require("@/assets/imgs/shop_ic_yonghuzs.png")
},
{
name: "接入机构",
value: 0,
icon: require("@/assets/imgs/shop_ic_jierujg.png")
},
{
name: "接入系统",
value: 0,
icon: require("@/assets/imgs/shop_ic_jieruxt.png")
},
{
name: "服务请求次数",
value: 0,
icon: require("@/assets/imgs/shop_ic_fuwuzs.png")
}
],
hot_datas: [],
map_datas: [],
comprehensive_datas: [],
helper
}),
methods: {
init() {
this.$http
.get("./static/serviceshop.json")
.then((response) => {
let data = response.body;
let servicesShopInfo = [
{
name: "服务总数",
value: "",
unit: "",
icon: require("@/assets/imgs/shop_ic_fuwuzs.png"),
},
{
name: "用户总数",
value: "",
unit: "",
icon: require("@/assets/imgs/shop_ic_yonghuzs.png"),
},
{
name: "接入机构",
value: "",
unit: "",
icon: require("@/assets/imgs/shop_ic_jierujg.png"),
},
{
name: "接入系统",
value: "",
unit: "",
icon: require("@/assets/imgs/shop_ic_jieruxt.png"),
},
{
name: "服务请求次数",
value: ".2",
unit: "亿",
icon: require("@/assets/imgs/shop_ic_fuwuzs.png"),
},
];
this.banners = data.banners;
this.servicesShopInfo = servicesShopInfo.map((item) => {
let temp = data.servicesShopInfo.find((v) => v.name === item.name);
return {
...item,
value: temp && temp.value,
};
});
this.hot_datas = data.hot_datas;
this.map_datas = data.map_datas;
this.comprehensive_datas = data.comprehensive_datas;
})
.catch(function(error) {
console.log(error);
});
init(type) {
this.$api.serviceShop.getFeaturedList({ type }).then(response => {
if (type == "hotdata") {
this.hot_datas = response.data.data;
} else if (type == "hgmap") {
this.map_datas = response.data.data;
} else if (type == "zhapp") {
this.comprehensive_datas = response.data.data;
}
});
},
getBenner() {
this.$api.serviceShop.getBenner().then(response => {
this.banners = response.data.data;
});
},
getGeneralOverview() {
this.$api.serviceShop.getGeneralOverview().then(response => {
let data = response.data.data;
this.servicesShopInfo[0].value = data.service_num;
this.servicesShopInfo[1].value = data.person_num;
this.servicesShopInfo[2].value = data.org_num;
this.servicesShopInfo[3].value = data.system_num;
this.servicesShopInfo[4].value = data.request_num;
});
},
goto(page) {
window.location.href = page;
}
},
mounted() {
this.init();
},
this.getBenner();
this.init("hotdata");
this.init("hgmap");
this.init("zhapp");
}
};
</script>
......
......@@ -94,7 +94,7 @@
下一步
</el-button>
</div>
<image-detail ref="imageDetail" :image="selectedImage"></image-detail>
<image-detail ref="imageDetail"></image-detail>
</app-build-step>
<app-build-step
title="上传部署文件"
......@@ -360,7 +360,6 @@ export default {
msg: "",
submit: null,
},
selectedImage: null,
}),
methods: {
preStep() {
......@@ -575,8 +574,7 @@ export default {
}
},
showImageDetail(item) {
this.selectedImage = item;
this.$refs.imageDetail.showDialog();
this.$refs.imageDetail.showDialog(item);
},
},
mounted() {
......
This diff is collapsed.
......@@ -27,7 +27,7 @@
<el-input placeholder="请输入内容" style="float:right;" v-model="pod_name" prefix-icon="el-icon-search"></el-input>
</div>
<div style="padding:20px;padding-top:0px;">
<apass-table :header="header_arr" :data="tableData" :icon="false" :height="560"></apass-table>
<apass-table :header="header_arr" :data="tableData" :icon="false" :height="560" :paddingLeft="5"></apass-table>
<list-pagination
:total="listTotal"
:page-sizes="pageSizes"
......
......@@ -64,6 +64,17 @@ businessArea=${params.businessArea}&developable=${params.developable}&orgSource=
submitShoppingCart() {
return axios.post(`/apaas/serviceapp/v3/shopcart/apply`, params);
},
// Service Shop Page
getFeaturedList(params) {
return axios.get(`/apaas/service/v3/recommend/show/featured/list/${params.type}`);
},
getBenner() {
return axios.get(`/apaas/service/v3/recommend/show/banners/list`);
},
getGeneralOverview() {
return axios.get(`/apaas/service/v3/statistics/other/index`);
}
}
export default serviceShop;
......@@ -8,9 +8,9 @@ const store = new Vuex.Store({
userInfo: null, // 用户信息
serviceShopMenu: "/shop/data_service_list", // 服务超市侧边栏
fwglNav: [
["注册发布的服务", "申请的服务" /* , "云资源服务" */], // 普通用户
["组织服务管理", "服务审批管理" /* , "云资源管理" */], // 组织管理员
["平台服务管理", "服务审批管理" /* , "云资源管理" */], // 超级管理员
["注册发布的服务", "申请的服务", "云资源服务"], // 普通用户
["组织服务管理", "服务审批管理", "云资源管理"], // 组织管理员
["平台服务管理", "服务审批管理", "云资源管理"], // 超级管理员
], // 服务管理列表,onlyRead
yyglNav: [
["应用仓库", "我部署的应用", "申请的应用"], // 普通用户
......
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 to comment