Commit be2ab7ec authored by 张俊's avatar 张俊

Merge branch 'dev' of cloud.wodcloud.com:apaas/apaas-v3-ui into dev

parents eb14d451 48477eb1
<template> <template>
<div id="app"> <div id="app">
<bd-menu class="outmenu"></bd-menu> <bd-menu v-if="this.$route.path != '/login'" class="outmenu"></bd-menu>
<router-view /> <router-view />
</div> </div>
</template> </template>
......
...@@ -132,7 +132,7 @@ export default { ...@@ -132,7 +132,7 @@ export default {
user_arr: [ user_arr: [
{ name: "个人档案", path: "/user/user_info" }, { name: "个人档案", path: "/user/user_info" },
{ name: "消息通知", path: "/user/message" }, { name: "消息通知", path: "/user/message" },
{ name: "收银中心", path: "" }, { name: "收银中心", path: "/authority" },
{ name: "关于BD-aPaaS", path: "" }, { name: "关于BD-aPaaS", path: "" },
{ name: "退出登录", path: "" } { name: "退出登录", path: "" }
], ],
...@@ -194,6 +194,9 @@ export default { ...@@ -194,6 +194,9 @@ export default {
if (v.path) { if (v.path) {
if (v.path == "/fwgl/" || v.path == "/yygl/") { if (v.path == "/fwgl/" || v.path == "/yygl/") {
this.$router.push(v.path + this.$store.state.role); this.$router.push(v.path + this.$store.state.role);
} else if (parent == 2) {
this.$router.push(v.path);
this.$store.commit("serviceShopMenuAct", v.path);
} else { } else {
this.$router.push(v.path); this.$router.push(v.path);
} }
......
<template> <template>
<div class="order_cell"> <div class="order_cell">
<div class="order_cell_head"> <div class="order_cell_head">
<div class="application_time">申请时间:{{ cellItem.applicationTime }}</div> <div class="application_time">申请时间:{{ helper.dateFormat(cellItem.applytime) }}</div>
<div class="order_number">订单编号:{{ cellItem.orderNumber }}</div> <div class="order_number">订单编号:{{ cellItem.orderid }}</div>
<div class="cell_del_btn">删除</div> <div class="cell_del_btn" @click="delOrder(cellItem.orderid)">删除</div>
</div> </div>
<el-row class="cell_row"> <el-row class="cell_row">
<el-col :span="10" class="cell_msg"> <el-col :span="10" class="cell_msg">
...@@ -15,20 +15,20 @@ ...@@ -15,20 +15,20 @@
<div class="cell_name"> <div class="cell_name">
<span>{{ cellItem.name }}</span> <span>{{ cellItem.name }}</span>
<span v-if="cellItem.mapService" class="tags map_service">mapService</span> <span v-if="cellItem.mapService" class="tags map_service">mapService</span>
<span v-if="cellItem.state == 1" class="tags shared">共享</span> <span v-if="cellItem.openness == 1" class="tags shared">共享</span>
<span v-else-if="cellItem.state == 2" class="tags restricted">受限</span> <span v-else-if="cellItem.openness == 2" class="tags restricted">受限</span>
<span v-else class="tags sensitive">敏感</span> <span v-else class="tags sensitive">敏感</span>
</div> </div>
<div class="cell_msg_other"> <div class="cell_msg_other">
<div class="cell_type">{{ cellItem.type }}</div> <div class="cell_type">{{ cellItem.sectors }}</div>
<div class="cell_creator">{{ cellItem.creator }}</div> <div class="cell_creator">{{ cellItem.organization }}</div>
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="6" class="cell_specification"> <el-col :span="6" class="cell_specification">
<div> <div>
<div>规格:访问次数:200/日,访问量:10000/日</div> <div>规格:访问次数:{{ cellItem.pv }},访问量:{{ cellItem.count }}</div>
<div class="cell_specification_type">申请方式:按月</div> <div class="cell_specification_type">申请方式:{{ cellItem.durationunit == 1 ? $t('lang.byYear') : $t('lang.byMonth') }}</div>
</div> </div>
</el-col> </el-col>
<el-col :span="4" class="approval_status"> <el-col :span="4" class="approval_status">
...@@ -107,6 +107,7 @@ ...@@ -107,6 +107,7 @@
</template> </template>
<script> <script>
import helper from "@/services/helper";
export default { export default {
props: { props: {
cellItem: { cellItem: {
...@@ -131,6 +132,9 @@ export default { ...@@ -131,6 +132,9 @@ export default {
}, },
viewDetail(val) { viewDetail(val) {
this.$router.push("/user/order_detail/" + val) this.$router.push("/user/order_detail/" + val)
},
delOrder() {
} }
} }
}; };
...@@ -163,6 +167,7 @@ export default { ...@@ -163,6 +167,7 @@ export default {
display: flex; display: flex;
float: right; float: right;
margin-right: 40px; margin-right: 40px;
cursor: pointer;
} }
.cell_row { .cell_row {
} }
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
<el-tab-pane <el-tab-pane
v-for="(item, index) in stateList" v-for="(item, index) in stateList"
:key="'state' + index" :key="'state' + index"
:label="item" :label="item.label"
:name="item" :name="item.value"
></el-tab-pane> ></el-tab-pane>
</el-tabs> </el-tabs>
<div class="list_options"> <div class="list_options">
...@@ -85,17 +85,24 @@ export default { ...@@ -85,17 +85,24 @@ export default {
OrderList OrderList
}, },
data: () => ({ data: () => ({
stateList: ["全部订单", "待审核", "审核中", "已获取", "未通过", "已取消"], stateList: [
activeName: "全部订单", { value: "0", label: "全部订单" },
{ value: "1", label: "待审核" },
{ value: "2", label: "审核中" },
{ value: "3", label: "已获取" },
{ value: "4", label: "未通过" },
{ value: "5", label: "已取消" }
],
activeName: "0",
buttonList: [ buttonList: [
{ label: "全部", state: false }, { value: 0, label: "全部", state: false },
{ label: "数据服务", state: false }, { value: 1, label: "数据服务", state: false },
{ label: "时空服务", state: false }, { value: 2, label: "时空服务", state: false },
{ label: "视频服务", state: false }, { value: 3, label: "视频服务", state: false },
{ label: "感知服务", state: false }, { value: 4, label: "感知服务", state: false },
{ label: "综合服务", state: false }, { value: 5, label: "综合服务", state: false },
{ label: "云资源", state: false }, { value: 6, label: "云资源", state: false },
{ label: "应用镜像", state: false } { value: 7, label: "应用镜像", state: false }
], ],
search: "", search: "",
pagination: { pagination: {
...@@ -117,64 +124,15 @@ export default { ...@@ -117,64 +124,15 @@ export default {
label: "50" label: "50"
} }
], ],
datas: [ datas: []
{
id: 0,
name: "水路货物周转量情况",
type: "基础数据服务",
creator: "贵州省交通运输厅0",
state: 1,
mapService: 1,
num: 2,
checkedSubscription: false,
specification: 1,
specificationApplication: 2,
evaluationText: "这条服条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用。这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用。",
evaluationRate: 4.7,
applicationTime: "2021-04-24 15:02:00",
orderNumber: "2020042422222222000001",
getStatus: 2
},
{
id: 1,
name: "水路货物周转量情况水路货物周水路货物周转量情况水路货物周",
type: "基础数据服务",
creator: "贵州省交通运输厅1",
state: 1,
num: 2,
checkedSubscription: false,
specification: 1,
specificationApplication: 2,
evaluationText: "这条服务非常好务非常好非常实用这非常实用这条服务非常好非常实用。",
evaluationRate: 3.7,
applicationTime: "2020-04-24 15:02:00",
orderNumber: "202004241502000001",
getStatus: 3
},
{
id: 2,
name: "水路货物周转量情况水路货物周转量情况路货物周转量情况",
type: "基础数据服务",
creator: "贵州省交通运输厅2",
state: 1,
mapService: 1,
num: 2,
checkedSubscription: true,
specification: 1,
specificationApplication: 2,
evaluationText: "这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用。这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用这条服务非常好非常实用。",
evaluationRate: 3.7,
applicationTime: "2020-04-24 15:02:00",
orderNumber: "202004241502000001",
getStatus: 1
}
]
}), }),
mounted() { mounted() {
this.getTotal(); this.getData();
}, },
methods: { methods: {
tabClick() {}, tabClick() {
this.getData();
},
btnClick(index) { btnClick(index) {
if (index != 0) { if (index != 0) {
this.buttonList[0].state = false; this.buttonList[0].state = false;
...@@ -185,24 +143,42 @@ export default { ...@@ -185,24 +143,42 @@ export default {
} }
this.buttonList[0].state = !this.buttonList[0].state; this.buttonList[0].state = !this.buttonList[0].state;
} }
this.getData();
}, },
// search debonce 500ms // search debonce 500ms
searchVal() { searchVal() {
if (this.times !== null) clearTimeout(this.times); if (this.times !== null) clearTimeout(this.times);
this.times = setTimeout(() => { this.times = setTimeout(() => {
this.getShopList(); this.getData();
}, 500); }, 500);
}, },
getTotal() { getData() {
this.pagination.total = this.datas.length; let arr = [];
this.buttonList.forEach(item => {
if (item.state == true) {
arr.push(item.value);
}
});
let params = {
select: this.search,
page: this.pagination.page,
limit: this.pagination.rowsPerPage,
status: this.activeName,
types: arr
};
this.$api.user.orderList(params).then(response => {
console.log(response);
this.datas = response.data.data;
this.pagination.total = response.data.total;
});
}, },
handleSizeChange(val) { handleSizeChange(val) {
this.pagination.rowsPerPage = val; this.pagination.rowsPerPage = val;
this.$emit("refresh", this.pagination); this.getData();
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
this.pagination.page += val; this.pagination.page += val;
this.$emit("refresh", this.pagination); this.getData();
} }
} }
}; };
......
...@@ -8,33 +8,33 @@ ...@@ -8,33 +8,33 @@
</div> </div>
<div class="com_cell_message"> <div class="com_cell_message">
<div class="com_cell_msg_title"> <div class="com_cell_msg_title">
{{ cellData.title }} {{ cellData.name }}
<span v-if="cellData.mapService" class="tags map_service">mapService</span> <span v-if="cellData.mapService" class="tags map_service">mapService</span>
<span v-if="cellData.state == 1" class="tags shared">共享</span> <span v-if="cellData.openness == 1" class="tags shared">共享</span>
<span v-else-if="cellData.state == 2" class="tags restricted">受限</span> <span v-else-if="cellData.openness == 2" class="tags restricted">受限</span>
<span v-else class="tags sensitive">敏感</span> <span v-else class="tags sensitive">敏感</span>
</div> </div>
<div class="com_cell_item"> <div class="com_cell_item">
<span class="com_cell_item_title">资源摘要:</span> <span class="com_cell_item_title">资源摘要:</span>
<span <span class="com_cell_data">{{ cellData.descript }}</span>
class="com_cell_data"
>{{ cellData.resourceSummary }}</span>
</div> </div>
<div class="com_cell_item"> <div class="com_cell_item">
<span class="com_cell_item_title">提供机构:</span> <span class="com_cell_item_title">提供机构:</span>
<span class="com_cell_data">{{ cellData.provider }}</span> <span class="com_cell_data">{{ cellData.organization_name }}</span>
</div> </div>
<div class="com_cell_item"> <div class="com_cell_item">
<span class="com_cell_item_title">数据领域:</span> <span class="com_cell_item_title">数据领域:</span>
<span class="com_cell_data">{{ cellData.dataField }}</span> <span class="com_cell_data">{{ cellData.sectors_name }}</span>
</div> </div>
<div class="com_cell_item"> <div class="com_cell_item">
<span class="com_cell_item_title">服务类型:</span> <span class="com_cell_item_title">服务类型:</span>
<span class="com_cell_data">{{ cellData.serviceType }}</span> <span
class="com_cell_data"
>{{ cellData.data_service_type1_str }}&nbsp;&nbsp;{{ cellData.data_service_type2_str }}&nbsp;&nbsp;{{ cellData.data_service_type3_str }}</span>
</div> </div>
<div class="com_cell_item"> <div class="com_cell_item">
<span class="com_cell_item_title">更新时间:</span> <span class="com_cell_item_title">更新时间:</span>
<span class="com_cell_data">{{ cellData.updateTime }}</span> <span class="com_cell_data">{{ cellData.update_date }}</span>
</div> </div>
</div> </div>
<div class="com_cell_right"> <div class="com_cell_right">
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
></el-rate> ></el-rate>
<div class="com_cell_right_text"> <div class="com_cell_right_text">
<span class="com_cell_right_time_tit">本月获取次数:</span> <span class="com_cell_right_time_tit">本月获取次数:</span>
<span class="com_cell_right_time">{{ cellData.numberOfMonth }}</span> <span class="com_cell_right_time">{{ cellData.apply_num }}</span>
</div> </div>
<el-button class="com_cell_right_btn" @click="goUrl(cellData.id)">查看详情</el-button> <el-button class="com_cell_right_btn" @click="goUrl(cellData.id)">查看详情</el-button>
</div> </div>
...@@ -155,8 +155,8 @@ export default { ...@@ -155,8 +155,8 @@ export default {
top: -2px; top: -2px;
} }
.map_service { .map_service {
background-color: #626DE9; background-color: #626de9;
border: solid 1px #626DE9; border: solid 1px #626de9;
color: #fff; color: #fff;
} }
.shared { .shared {
......
...@@ -60,8 +60,8 @@ ...@@ -60,8 +60,8 @@
</template> </template>
<script> <script>
import CommodityCell from "@/components/commodity-cell.vue"; import CommodityCell from "@/components/service-list/commodity-cell.vue";
import CommodityCard from "@/components/commodity-card.vue"; import CommodityCard from "@/components/service-list/commodity-card.vue";
export default { export default {
components: { components: {
"commodity-cell": CommodityCell, "commodity-cell": CommodityCell,
......
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
<el-input-number <el-input-number
v-model="formNew.containerGroup" v-model="formNew.containerGroup"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="取值范围[0,24]" placeholder="取值范围[0,24]"
></el-input-number> ></el-input-number>
...@@ -104,7 +104,7 @@ ...@@ -104,7 +104,7 @@
<el-input-number <el-input-number
v-model="formNew.dataDisk" v-model="formNew.dataDisk"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请选择数量" placeholder="请选择数量"
></el-input-number> ></el-input-number>
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
<el-input-number <el-input-number
v-model="formNew.perDataDisk" v-model="formNew.perDataDisk"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请选择容量" placeholder="请选择容量"
></el-input-number> ></el-input-number>
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
<el-input-number <el-input-number
v-model="formNew.perCPUs" v-model="formNew.perCPUs"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请选择CPU最高使用量" placeholder="请选择CPU最高使用量"
></el-input-number> ></el-input-number>
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
<el-input-number <el-input-number
v-model="formNew.perCPU" v-model="formNew.perCPU"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请选择CPU默认使用量" placeholder="请选择CPU默认使用量"
></el-input-number> ></el-input-number>
...@@ -165,7 +165,7 @@ ...@@ -165,7 +165,7 @@
<el-input-number <el-input-number
v-model="formNew.perRAMs" v-model="formNew.perRAMs"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请选择内存最高使用量" placeholder="请选择内存最高使用量"
></el-input-number> ></el-input-number>
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
<el-input-number <el-input-number
v-model="formNew.perRAM" v-model="formNew.perRAM"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请选择内存默认使用量" placeholder="请选择内存默认使用量"
></el-input-number> ></el-input-number>
...@@ -194,7 +194,7 @@ ...@@ -194,7 +194,7 @@
<el-input-number <el-input-number
v-model="formNew.appDuration" v-model="formNew.appDuration"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
></el-input-number> ></el-input-number>
<el-select <el-select
...@@ -302,7 +302,7 @@ ...@@ -302,7 +302,7 @@
<el-input-number <el-input-number
v-model="formOld.containerGroup" v-model="formOld.containerGroup"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="取值范围[0,24]" placeholder="取值范围[0,24]"
></el-input-number> ></el-input-number>
...@@ -315,7 +315,7 @@ ...@@ -315,7 +315,7 @@
<el-input-number <el-input-number
v-model="formOld.dataDisk" v-model="formOld.dataDisk"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
></el-input-number> ></el-input-number>
<div class="input_right"></div> <div class="input_right"></div>
...@@ -327,7 +327,7 @@ ...@@ -327,7 +327,7 @@
<el-input-number <el-input-number
v-model="formOld.perDataDisk" v-model="formOld.perDataDisk"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
></el-input-number> ></el-input-number>
<div class="input_right">GB</div> <div class="input_right">GB</div>
...@@ -366,7 +366,7 @@ ...@@ -366,7 +366,7 @@
<el-input-number <el-input-number
v-model="formOld.perCPUs" v-model="formOld.perCPUs"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请设置CPU最高使用量" placeholder="请设置CPU最高使用量"
></el-input-number> ></el-input-number>
...@@ -379,7 +379,7 @@ ...@@ -379,7 +379,7 @@
<el-input-number <el-input-number
v-model="formOld.perCPU" v-model="formOld.perCPU"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请设置CPU默认使用量" placeholder="请设置CPU默认使用量"
></el-input-number> ></el-input-number>
...@@ -395,7 +395,7 @@ ...@@ -395,7 +395,7 @@
<el-input-number <el-input-number
v-model="formOld.perRAMs" v-model="formOld.perRAMs"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请设置内存最高使用量" placeholder="请设置内存最高使用量"
></el-input-number> ></el-input-number>
...@@ -408,7 +408,7 @@ ...@@ -408,7 +408,7 @@
<el-input-number <el-input-number
v-model="formOld.perRAM" v-model="formOld.perRAM"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
placeholder="请设置内存默认使用量" placeholder="请设置内存默认使用量"
></el-input-number> ></el-input-number>
...@@ -437,7 +437,7 @@ ...@@ -437,7 +437,7 @@
<el-input-number <el-input-number
v-model="formOld.appDuration" v-model="formOld.appDuration"
controls-position="right" controls-position="right"
:min="1" :min="0"
:max="10" :max="10"
></el-input-number> ></el-input-number>
<el-select <el-select
...@@ -675,6 +675,9 @@ export default { ...@@ -675,6 +675,9 @@ export default {
getForm(val) { getForm(val) {
if (val != "") { if (val != "") {
this.formShow = true; this.formShow = true;
Object.keys(this.formOld).forEach(item => {
this.formOld[item] = "";
});
} else { } else {
this.formShow = false; this.formShow = false;
} }
...@@ -916,6 +919,7 @@ export default { ...@@ -916,6 +919,7 @@ export default {
<style> <style>
.form_block .el-input .el-input__inner { .form_block .el-input .el-input__inner {
background-color: #f7f8f9; background-color: #f7f8f9;
color: #242c43;
} }
.cloud_form .el-input { .cloud_form .el-input {
width: 100%; width: 100%;
...@@ -929,12 +933,14 @@ export default { ...@@ -929,12 +933,14 @@ export default {
} }
.cloud_form .input_has_left_right .el-input__inner { .cloud_form .input_has_left_right .el-input__inner {
border-radius: 0; border-radius: 0;
color: #242c43;
} }
.cloud_form .el-select { .cloud_form .el-select {
width: 100%; width: 100%;
} }
.cloud_form .el-input .el-input__inner { .cloud_form .el-input .el-input__inner {
background-color: #f7f8f9; background-color: #f7f8f9;
color: #242c43;
} }
.cloud_form .el-input-number { .cloud_form .el-input-number {
width: calc(100% - 60px); width: calc(100% - 60px);
...@@ -948,6 +954,7 @@ export default { ...@@ -948,6 +954,7 @@ export default {
} }
.cloud_form .el-input-number .el-input__inner { .cloud_form .el-input-number .el-input__inner {
text-align: left; text-align: left;
color: #242c43;
} }
.cloud_form .el-textarea { .cloud_form .el-textarea {
width: 100%; width: 100%;
...@@ -955,6 +962,7 @@ export default { ...@@ -955,6 +962,7 @@ export default {
.cloud_form .el-textarea .el-textarea__inner { .cloud_form .el-textarea .el-textarea__inner {
background-color: #f7f8f9; background-color: #f7f8f9;
border-radius: 8px; border-radius: 8px;
color: #242c43;
} }
.form_item .el-form-item__content { .form_item .el-form-item__content {
width: 100%; width: 100%;
...@@ -964,6 +972,7 @@ export default { ...@@ -964,6 +972,7 @@ export default {
} }
.input_has_right .el-input__inner { .input_has_right .el-input__inner {
border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px;
color: #242c43;
} }
.cloud_form .input_has_right_select .el-input-number { .cloud_form .input_has_right_select .el-input-number {
width: calc(100% - 100px); width: calc(100% - 100px);
...@@ -979,6 +988,7 @@ export default { ...@@ -979,6 +988,7 @@ export default {
} }
.input_has_right_select .el-input__inner { .input_has_right_select .el-input__inner {
border-radius: 8px 0 0 8px; border-radius: 8px 0 0 8px;
color: #242c43;
} }
.input_has_right_select .input_right_select.el-select .el-input { .input_has_right_select .input_right_select.el-select .el-input {
width: 100px; width: 100px;
...@@ -995,6 +1005,7 @@ export default { ...@@ -995,6 +1005,7 @@ export default {
} }
.input_right_select .el-input .el-input__inner { .input_right_select .el-input .el-input__inner {
background-color: #0f2683; background-color: #0f2683;
color: #242c43;
} }
.cloud_form .el-input-number .el-input-number__increase, .cloud_form .el-input-number .el-input-number__increase,
.cloud_form .el-input-number .el-input-number__decrease { .cloud_form .el-input-number .el-input-number__decrease {
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
>规格:{{ specificationBtns[cellItems.specification] }}</div> >规格:{{ specificationBtns[cellItems.specification] }}</div>
<div <div
class="shopping_cell_specification_val_type" class="shopping_cell_specification_val_type"
>申请方式:{{ specificationApplicationBtns[cellItems.specificationApplication] }}</div> >申请方式:{{ specificationApplicationBtns[cellItems.specificationApplication - 1] }}</div>
<div class="shopping_cell_specification_edit"> <div class="shopping_cell_specification_edit">
<el-popover <el-popover
placement="right-start" placement="right-start"
......
...@@ -52,7 +52,11 @@ ...@@ -52,7 +52,11 @@
:disabled="true" :disabled="true"
class="shopping_cart_options_cell_btn" class="shopping_cart_options_cell_btn"
>一键申请</el-button> >一键申请</el-button>
<el-button v-else @click="oneClickApplication" class="shopping_cart_options_cell_btn_act">一键申请</el-button> <el-button
v-else
@click="oneClickApplication"
class="shopping_cart_options_cell_btn_act"
>一键申请</el-button>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
...@@ -108,7 +112,9 @@ export default { ...@@ -108,7 +112,9 @@ export default {
} }
] ]
}), }),
mounted() {}, mounted() {
this.getList();
},
computed: { computed: {
getNum() { getNum() {
let num = this.checkList.reduce( let num = this.checkList.reduce(
...@@ -119,6 +125,16 @@ export default { ...@@ -119,6 +125,16 @@ export default {
} }
}, },
methods: { methods: {
getList() {
this.$api.serviceShop.getShoppingCart().then(response => {
if (response.data.success == "1") {
console.log(response.data.data)
this.list = response.data.data;
} else {
console.log(response.data.message);
}
});
},
checkAll(val) { checkAll(val) {
this.$refs.shoppingList.setAllState(val); this.$refs.shoppingList.setAllState(val);
}, },
......
...@@ -42,7 +42,6 @@ export default { ...@@ -42,7 +42,6 @@ export default {
checkList: { checkList: {
immediate: true, // 这句重要 immediate: true, // 这句重要
handler(val) { handler(val) {
console.log("ss")
this.checkLists = val; this.checkLists = val;
} }
} }
......
export const lang={
// bread crunbs
// .
// .
// .
// part personal center
personalCenter: "个人中心",
profile: "个人档案",
messageCenter: "消息中心",
// unit of purchase duration
byYear: "按年",
byMonth: "按月",
}
\ No newline at end of file
...@@ -19,9 +19,15 @@ import "@/icons" ...@@ -19,9 +19,15 @@ import "@/icons"
import "./assets/css/index.css"; import "./assets/css/index.css";
import VueI18n from 'vue-i18n' import VueI18n from 'vue-i18n'
Vue.use(VueI18n) Vue.use(VueI18n)
const i18n = new VueI18n({
locale: 'zh',
messages: {
'zh': require('@/i18n/language-zh')
}
})
import api from './request/api' import api from './request/api'
Vue.prototype.$api = api; Vue.prototype.$api = api;
...@@ -29,6 +35,7 @@ new Vue({ ...@@ -29,6 +35,7 @@ new Vue({
el: "#app", el: "#app",
router, router,
store, store,
i18n,
components: { App }, components: { App },
template: "<App/>" template: "<App/>"
}); });
This diff is collapsed.
...@@ -50,6 +50,12 @@ export default { ...@@ -50,6 +50,12 @@ export default {
showDialog() { showDialog() {
this.$refs.dialog.show(); this.$refs.dialog.show();
}, },
editItem(item) {
this.$router.push(`/authority/roles/edit/${item.id}`);
},
allotItem(item) {
this.$router.push(`/authority/roles/allot/${item.id}`);
},
deleteItem(item) { deleteItem(item) {
this.dialogInfo.title = ""; this.dialogInfo.title = "";
this.dialogInfo.msg = "确认删除当前角色"; this.dialogInfo.msg = "确认删除当前角色";
...@@ -67,9 +73,7 @@ export default { ...@@ -67,9 +73,7 @@ export default {
label: "角色类型", label: "角色类型",
prop: "name", prop: "name",
type: "button", type: "button",
callback(item) { callback: this.editItem,
console.log("查看详情 - " + item.name);
},
}, },
{ {
label: "创建人", label: "创建人",
...@@ -91,9 +95,7 @@ export default { ...@@ -91,9 +95,7 @@ export default {
actionList: [ actionList: [
{ {
label: "分配权限", label: "分配权限",
callback(item) { callback: this.allotItem,
console.log("分配权限 - " + item.name);
},
}, },
{ {
label: "删除", label: "删除",
......
<template> <template>
<div class="users_list"> <div class="users_list">
<apass-list <apass-list
@list-action="listAction"
search-placeholder="请输入关键字" search-placeholder="请输入关键字"
:list-total="listTotal" :list-total="listTotal"
@list-action="initDatas"
> >
<el-breadcrumb separator="/" slot="breadcrumb"> <el-breadcrumb separator="/" slot="breadcrumb">
<el-breadcrumb-item to="/authority">权限管理</el-breadcrumb-item> <el-breadcrumb-item to="/authority">权限管理</el-breadcrumb-item>
...@@ -185,8 +185,29 @@ export default { ...@@ -185,8 +185,29 @@ export default {
showDialog: false, showDialog: false,
}), }),
methods: { methods: {
listAction(value) { initDatas(filter) {
console.log(value); // console.log(filter);
this.$http
.get("/apaas/backmgt/user/list", {
params: {
keyword: filter.keyword,
limit: filter.page,
page: filter.size,
user_id: "ym",
user_name: "",
department_id: "",
state: 1,
},
})
.then(({ data }) => {
console.log(data);
// this.listTotal = data.data.total;
// this.listData = data.data.data;
})
.catch((error) => {
console.log(error);
});
}, },
setRole(item) { setRole(item) {
console.log("setRole " + item.name); console.log("setRole " + item.name);
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<script> <script>
// @ is an alias to /src // @ is an alias to /src
import CommodityList from "@/components/commodity-list.vue"; import CommodityList from "@/components/service-list/commodity-list.vue";
import BlockRadius from "@/components/block-radius"; import BlockRadius from "@/components/block-radius";
export default { export default {
components: { components: {
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<script> <script>
// @ is an alias to /src // @ is an alias to /src
import Commodity from "@/components/commodity.vue"; import Commodity from "@/components/service-list/commodity.vue";
import BlockRadius from "@/components/block-radius"; import BlockRadius from "@/components/block-radius";
export default { export default {
components: { components: {
......
This diff is collapsed.
<template>
<div>
<el-container>
<el-aside width="180px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main>
<service-list :name="name" :url="url" :urlList="urlList" :urlFilter="urlFilter"></service-list>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service_shop_menu";
import ServiceList from "@/components/service-list/service_list";
export default {
components: {
ServiceShopMenu,
ServiceList
},
data: () => ({
urlFilter: "",
url: "",
urlList: "2222",
name: ""
}),
mounted() {
this.getVal(this.$route.path);
},
methods: {
getVal(val) {
switch (val) {
case "/shop/data_service_list":
this.name = "数据服务";
this.urlFilter = "5";
break;
case "/shop/space_time_service_list":
this.name = "时空服务";
this.urlFilter = "6";
break;
case "/shop/video_service_list":
this.name = "视频服务";
this.urlFilter = "7";
break;
case "/shop/perception_service_list":
this.name = "感知服务";
this.urlFilter = "10";
break;
case "/shop/comprehensive_app_list":
this.name = "综合服务";
this.urlFilter = "";
break;
case "/shop/app_store_list":
this.name = "应用商店";
this.urlFilter = "";
break;
default:
this.name = "";
this.urlFilter = "";
break;
}
}
},
watch: {
"$route.path": {
handler(val) {
this.getVal(val);
}
}
}
};
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<el-container>
<el-aside width="180px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main>
<service-list name="应用商店" url="yysdDetail" urlList="url1sss" urlFilter="urldwad2222"></service-list>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service_shop_menu";
import ServiceList from "@/components/service_list";
export default {
components: {
ServiceShopMenu,
ServiceList
},
data: () => ({}),
mounted() {},
methods: {}
};
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<el-container>
<el-aside width="180px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main>
<service-list name="综合应用" url="zhfwDetail" urlList="url1sss" urlFilter="urldwad2222"></service-list>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service_shop_menu";
import ServiceList from "@/components/service_list";
export default {
components: {
ServiceShopMenu,
ServiceList
},
data: () => ({}),
mounted() {},
methods: {}
};
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<el-container>
<el-aside width="180px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main>
<service-list name="数据服务" url="sjfwDetail" urlList="url1sss" urlFilter="urldwad2222"></service-list>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service_shop_menu";
import ServiceList from "@/components/service_list";
export default {
components: {
ServiceShopMenu,
ServiceList
},
data: () => ({}),
mounted() {},
methods: {}
};
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<el-container>
<el-aside width="180px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main>
<service-list name="感知服务"></service-list>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service_shop_menu";
import ServiceList from "@/components/service_list";
export default {
components: {
ServiceShopMenu,
ServiceList
},
data: () => ({}),
mounted() {},
methods: {}
};
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<el-container>
<el-aside width="180px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main>
<service-list name="时空服务" url="skfwDetail" urlList="url1sss" urlFilter="urldwad2222"></service-list>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service_shop_menu";
import ServiceList from "@/components/service_list";
export default {
components: {
ServiceShopMenu,
ServiceList
},
data: () => ({}),
mounted() {},
methods: {}
};
</script>
<style scoped>
</style>
\ No newline at end of file
<template>
<div>
<el-container>
<el-aside width="180px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main>
<service-list name="视频服务"></service-list>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service_shop_menu";
import ServiceList from "@/components/service_list";
export default {
components: {
ServiceShopMenu,
ServiceList
},
data: () => ({}),
mounted() {},
methods: {}
};
</script>
<style scoped>
</style>
\ No newline at end of file
...@@ -25,7 +25,7 @@ export default { ...@@ -25,7 +25,7 @@ export default {
margin: 0 auto; margin: 0 auto;
} }
.shopping_title { .shopping_title {
height: 40px; height: 45px;
line-height: 40px; line-height: 45px;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div> <div>
<el-breadcrumb separator="/" class="bread_crumb1"> <el-breadcrumb separator="/" class="bread_crumb1 bread_left">
<el-breadcrumb-item>个人中心</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/user' }">{{ $t("lang.personalCenter") }}</el-breadcrumb-item>
<el-breadcrumb-item>消息管理</el-breadcrumb-item> <el-breadcrumb-item>{{ $t("lang.messageCenter") }}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
<block-radius class="message_block"> <block-radius class="message_block">
<ces-table <ces-table
......
<template> <template>
<div> <div>
info <el-breadcrumb separator="/" class="bread_crumb1 bread_left">
<el-breadcrumb-item :to="{ path: '/user' }">{{ $t("lang.personalCenter") }}</el-breadcrumb-item>
<el-breadcrumb-item>{{ $t("lang.profile") }}</el-breadcrumb-item>
</el-breadcrumb>
<block-radius class="info_block">
<el-tabs v-model="activeName" @tab-click="changeTab">
<el-tab-pane label="个人信息详情" name="0"></el-tab-pane>
<el-tab-pane label="业务系统详情" name="1"></el-tab-pane>
</el-tabs>
</block-radius>
</div> </div>
</template> </template>
<script> <script>
import BlockRadius from "@/components/block-radius";
export default { export default {
components: {
BlockRadius
},
data: () => ({ data: () => ({
activeName: "0"
}), }),
mounted() {}, mounted() {},
methods: {} methods: {
changeTab() {
}
}
}; };
</script> </script>
<style scoped> <style scoped>
.info_block {
margin: 0 20px;
}
</style> </style>
\ No newline at end of file
...@@ -944,4 +944,13 @@ export default { ...@@ -944,4 +944,13 @@ export default {
.fwcs_tabs .el-tabs__header { .fwcs_tabs .el-tabs__header {
margin: 20px 0; margin: 20px 0;
} }
.zhyy_select .el-input__prefix, .el-input__suffix {
position: absolute;
top: 0;
right: 10px;
-webkit-transition: all .3s;
height: 100%;
color: #C0C4CC;
text-align: right;
}
</style> </style>
import workbench from '@/request/api/workbench'; import workbench from '@/request/api/workbench';
import serviceShop from '@/request/api/service_shop'; import serviceShop from '@/request/api/service_shop';
import user from '@/request/api/user'; import user from '@/request/api/user';
import authority from '@/request/api/authority';
export default { export default {
workbench, workbench,
serviceShop, serviceShop,
user user,
authority
} }
\ No newline at end of file
import axios from '@/request/http'; // 导入http中创建的axios实例
import qs from 'qs'; // 根据需求是否导入qs模块
const authority = {
// Menu
getMenuList() {
return axios.get(`/apaas/backmgt/menu/list`);
},
addMenu(params) {
return axios.post(`/apaas/backmgt/menu`, params);
},
delMenu(params) {
return axios.delete(`/apaas/backmgt/menu/id/${params.id}`);
},
getMenu(params) {
return axios.get(`/apaas/backmgt/menu/id/${params.id}`);
},
positionMenu(params) {
return axios.post(`/apaas/backmgt/menu/menuOrder`, params);
},
editMenu(params) {
return axios.put(`/apaas/backmgt/menu`, params);
}
}
export default authority;
...@@ -3,6 +3,42 @@ import qs from 'qs'; // 根据需求是否导入qs模块 ...@@ -3,6 +3,42 @@ import qs from 'qs'; // 根据需求是否导入qs模块
const serviceShop = { const serviceShop = {
// service list
getServiceShopFilter(params) {
// 5:数据 6:时空 7:视频 10:感知
return axios.get(`/apaas/serviceapp/v3/servicemarket/profileInfo?serviceType=${params.type}`);
},
getServiceShopList(params) {
return axios.get(`/apaas/serviceapp/v3/servicemarket/list?
serviceName=${params.serviceName}&serviceType1=${params.serviceType1}&
serviceType2s=${params.serviceType2s}&dataDomains=${params.dataDomains}&
organizeIds=${params.organizeIds}&orderBy=${params.orderBy}&
Page=${params.Page}&Size=${params.Size}`);
},
getServiceShopDetail(params) {
return axios.get(`/apaas/serviceapp/v3/servicemarket/detail?serviceId=`)
},
// shopping cart
addShoppingCart(params) {
return axios.post(`/apaas/serviceapp/v3/shopcart/add`, params);
},
delShoppingCart(params) {
// note: if parans is empty, it will delete all data.
return axios.post(`/apaas/serviceapp/v3/shopcart/del`, params);
},
getShoppingCart() {
return axios.get(`/apaas/serviceapp/v3/shopcart/list`);
},
updateShoppingCart(params) {
return axios.post(`/apaas/serviceapp/v3/shopcart/update`, params);
},
getSystemList() {
return axios.get(`/apaas/serviceapp/v3/shopcart/systems`);
},
submitShoppingCart() {
return axios.post(`/apaas/serviceapp/v3/shopcart/apply`, params);
},
} }
export default serviceShop; export default serviceShop;
...@@ -2,7 +2,9 @@ import axios from '@/request/http'; // 导入http中创建的axios实例 ...@@ -2,7 +2,9 @@ import axios from '@/request/http'; // 导入http中创建的axios实例
import qs from 'qs'; // 根据需求是否导入qs模块 import qs from 'qs'; // 根据需求是否导入qs模块
const user = { const user = {
orderList(params) {
return axios.get(`/apaas/serviceapp/v3/order/list?serviceName=${params.select}&orderStatus=${params.status}&serviceTypes=${params.types.join(',')}&Page=${params.page}&Size=${params.limit}`);
},
} }
export default user; export default user;
...@@ -5,9 +5,11 @@ ...@@ -5,9 +5,11 @@
import axios from 'axios'; import axios from 'axios';
import router from '../router'; import router from '../router';
import store from '../store/index'; import store from '../store/index';
import ElementUI from 'element-ui';
const tip = msg => { const tip = msg => {
console.log(msg) console.log(msg);
ElementUI.Message.error(msg);
} }
/** /**
...@@ -46,13 +48,13 @@ const errorHandle = (status, other) => { ...@@ -46,13 +48,13 @@ const errorHandle = (status, other) => {
}, 1000); }, 1000);
break; break;
case 404: tip('请求的资源不存在'); break; case 404: tip('请求的资源不存在'); break;
case 408: tip('请求超时(408)'); case 408: tip('请求超时(408)'); break;
case 500: tip('服务器错误(500)'); case 500: tip('服务器错误(500)'); break;
case 501: tip('服务未实现(501)'); case 501: tip('服务未实现(501)'); break;
case 502: tip('网络错误(502)'); case 502: tip('网络错误(502)'); break;
case 503: tip('服务不可用(503)'); case 503: tip('服务不可用(503)'); break;
case 504: tip('网络超时(504)'); case 504: tip('网络超时(504)'); break;
case 505: tip('HTTP版本不受支持(505)'); case 505: tip('HTTP版本不受支持(505)'); break;
default: tip(`连接出错,${other}`); default: tip(`连接出错,${other}`);
} }
} }
...@@ -67,8 +69,8 @@ instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlenco ...@@ -67,8 +69,8 @@ instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlenco
*/ */
instance.interceptors.request.use( instance.interceptors.request.use(
config => { config => {
const token = store.state.token; // const token = store.state.token;
token && (config.headers.Authorization = token); // token && (config.headers.Authorization = token);
return config; return config;
}, },
error => Promise.error(error)) error => Promise.error(error))
......
...@@ -16,6 +16,11 @@ export default new Router({ ...@@ -16,6 +16,11 @@ export default new Router({
path: "/", path: "/",
redirect: "/index", redirect: "/index",
}, },
{
path: "/login", // 登录注册
name: "login",
component: () => import("@/pages/login"),
},
{ {
path: "/index", path: "/index",
name: "index", name: "index",
...@@ -120,30 +125,27 @@ export default new Router({ ...@@ -120,30 +125,27 @@ export default new Router({
{ {
path: "/shop/data_service_list", // 数据服务列表页 path: "/shop/data_service_list", // 数据服务列表页
name: "shopDataList", name: "shopDataList",
component: () => import("@/pages/service_shop/shop_list_data"), component: () => import("@/pages/service_shop/shop_list"),
}, },
{ {
path: "/shop/space_time_service_list", // 时空服务列表页 path: "/shop/space_time_service_list", // 时空服务列表页
name: "shopSpaceTimeList", name: "shopSpaceTimeList",
component: () => component: () => import("@/pages/service_shop/shop_list"),
import("@/pages/service_shop/shop_list_space_time"),
}, },
{ {
path: "/shop/video_service_list", // 视频服务列表页 path: "/shop/video_service_list", // 视频服务列表页
name: "shopVideoList", name: "shopVideoList",
component: () => import("@/pages/service_shop/shop_list_video"), component: () => import("@/pages/service_shop/shop_list"),
}, },
{ {
path: "/shop/perception_service_list", // 感知服务列表页 path: "/shop/perception_service_list", // 感知服务列表页
name: "shopPerceptionList", name: "shopPerceptionList",
component: () => component: () => import("@/pages/service_shop/shop_list"),
import("@/pages/service_shop/shop_list_perception"),
}, },
{ {
path: "/shop/comprehensive_app_list", // 综合应用列表页 path: "/shop/comprehensive_app_list", // 综合应用列表页
name: "shopComAppList", name: "shopComAppList",
component: () => component: () => import("@/pages/service_shop/shop_list"),
import("@/pages/service_shop/shop_list_comprehensive_app"),
}, },
{ {
path: "/shop/cloud", // 云资源服务 path: "/shop/cloud", // 云资源服务
...@@ -159,8 +161,7 @@ export default new Router({ ...@@ -159,8 +161,7 @@ export default new Router({
{ {
path: "/shop/app_store_list", // 应用商店列表页 path: "/shop/app_store_list", // 应用商店列表页
name: "shopAppStoreList", name: "shopAppStoreList",
component: () => component: () => import("@/pages/service_shop/shop_list"),
import("@/pages/service_shop/shop_list_app_store"),
}, },
{ {
path: "/shop/shopping_cart", // 购物车页 path: "/shop/shopping_cart", // 购物车页
......
// 取得cookie
function getCookie(name) {
var nameEQ = name + '='
var ca = document.cookie.split(';') // 把cookie分割成组
for (var i = 0; i < ca.length; i++) {
var c = ca[i] // 取得字符串
while (c.charAt(0) == ' ') { // 判断一下字符串有没有前导空格
c = c.substring(1, c.length) // 有的话,从第二位开始取
}
if (c.indexOf(nameEQ) == 0) { // 如果含有我们要的name
return unescape(c.substring(nameEQ.length, c.length)) // 解码并截取我们要值
}
}
return false
}
// 清除cookie
function clearCookie(name) {
setCookie(name, "", -1);
}
// 设置cookie
function setCookie(name, value, seconds) {
seconds = seconds || 0; //seconds有值就直接赋值,没有为0,这个根php不一样。
var expires = "";
if (seconds != 0 ) { //设置cookie生存时间
var date = new Date();
date.setTime(date.getTime()+(seconds*1000));
expires = "; expires="+date.toGMTString();
}
document.cookie = name+"="+escape(value)+expires+"; path=/"; //转码并赋值
}
export {
getCookie,
clearCookie,
setCookie,
}
...@@ -14,28 +14,6 @@ module.exports.GetProperty = function (obj, prop) { ...@@ -14,28 +14,6 @@ module.exports.GetProperty = function (obj, prop) {
return res; return res;
} }
module.exports.ymhdateFormat = function (timestamp) {
let date = new Date(timestamp);
let ret;
const opt = {
"Y+": date.getFullYear().toString(), // 年
"m+": (date.getMonth() + 1).toString(), // 月
"d+": date.getDate().toString(), // 日
"H+": date.getHours().toString(), // 时
"M+": date.getMinutes().toString(), // 分
"S+": date.getSeconds().toString() // 秒
// 有其他格式化字符需求可以继续添加,必须转化成字符串
};
var fmt="YYYY-mm-dd HH:MM:SS"
for (let k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt);
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
};
};
return fmt;
}
module.exports.dateFormat = function (fmt, timestamp) { module.exports.dateFormat = function (fmt, timestamp) {
let date = new Date(timestamp); let date = new Date(timestamp);
let ret; let ret;
......
...@@ -5,7 +5,7 @@ Vue.use(Vuex); ...@@ -5,7 +5,7 @@ Vue.use(Vuex);
const store = new Vuex.Store({ const store = new Vuex.Store({
state: { state: {
role: 2, // 0:普通用户,1:组织管理员,2:超级管理员 role: 2, // 0:普通用户,1:组织管理员,2:超级管理员
serviceShopMenu: "shopDataList", // 服务超市侧边栏 serviceShopMenu: "/shop/data_service_list", // 服务超市侧边栏
fwglNav: [ fwglNav: [
["注册发布的服务", "申请的服务", "云资源服务"], // 普通用户 ["注册发布的服务", "申请的服务", "云资源服务"], // 普通用户
["组织服务管理", "服务审批管理", "云资源管理"], // 组织管理员 ["组织服务管理", "服务审批管理", "云资源管理"], // 组织管理员
......
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