Commit 1be6ec77 authored by 张俊's avatar 张俊

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

parents 1ea5694e 0d725c05
{
"data": {
"list": [
{
"id": 0,
"name": "水路货物周转量情况",
"type": "基础数据服务",
"creator": "贵州省交通运输厅0",
"state": 1,
"mapService": 1,
"num": 2,
"checkedSubscription": false,
"specification": 1,
"specificationApplication": 2
},
{
"id": 1,
"name": "水路货物周转量情况水路货物周水路货物周转量情况水路货物周",
"type": "基础数据服务",
"creator": "贵州省交通运输厅1",
"state": 1,
"num": 2,
"checkedSubscription": false,
"specification": 1,
"specificationApplication": 2
},
{
"id": 2,
"name": "水路货物周转量情况水路货物周转量情况",
"type": "基础数据服务",
"creator": "贵州省交通运输厅2",
"state": 1,
"mapService": 1,
"num": 2,
"checkedSubscription": true,
"specification": 1,
"specificationApplication": 2
}
]
}
}
\ No newline at end of file
......@@ -102,6 +102,15 @@ div{
word-break: break-all;
white-space: nowrap;
}
.text_clip_2 {
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
line-clamp: 2;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.map_container {
background-color: #eee;
}
......@@ -404,8 +413,11 @@ width: 620px!important;
.el-button {
border-radius: 8px;
}
/* 下拉选样式 */
/* .el-select-dropdown {
/*
下拉选样式
此处勿删,apaasV3下拉选择样式统一用这个
*/
.el-select-dropdown {
border-radius: 8px;
}
.el-select-dropdown__list {
......@@ -437,7 +449,7 @@ width: 620px!important;
}
.el-popper[x-placement^=top] .popper__arrow::after {
border-top-color: transparent;
} */
}
/* 单选激活样式 */
.el-radio__input.is-checked .el-radio__inner {
border-color: #838383;
......@@ -474,4 +486,20 @@ width: 620px!important;
}
.bread_crumb1 .is-link {
color: #898d9e !important;
}
/* 应用超市详情页公共样式 */
.sevice_detail {
max-width: 1200px;
margin: 0 auto;
}
.sevice_breadcrumb > .el-breadcrumb .el-breadcrumb__inner {
font-size: 14px;
font-weight: bold;
color: #898d9e;
line-height: 42px;
}
.sevice_breadcrumb > .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
color: #242c43;
font-weight: normal;
}
\ No newline at end of file
<template>
<div class="application_info" v-if="data">
<div class="application_title">
<span class="application_name" v-text="data.name"></span>
</div>
<div class="main_container">
<div class="main_container-left" v-if="data.img">
<img :src="data.img" width="460" />
<el-avatar shape="square" :size="144" fit="cover" :src="data.img" />
</div>
<div class="main_container-right">
<ul class="application_base_info">
<li>
<span>应用开发者:</span>
<span v-text="data.providedBy"> </span>
</li>
<li>
<span>上线时间:</span>
<span v-text="data.publishTime"></span>
</li>
<li>
<span>部署次数:</span>
<span v-text="data.acquireCount"></span>
</li>
<li>
<span>应用类型:</span>
<span v-html="data.serviceType"></span>
</li>
<li>
<span>业务领域:</span>
<span v-text="data.dataField"></span>
</li>
</ul>
<div class="commodity_information">
<span>&emsp;&emsp;格:</span>
<div class="btn_container">
<el-button
v-for="(item, index) in data.specifications"
:key="'specifications_' + index"
:type="
item.value === commodityData.specification
? 'primary'
: 'default'
"
@click="changeSpecification(item)"
>
{{ item.name }}
</el-button>
</div>
<div class="application_title">
<span class="application_name" v-text="data.name"></span>
</div>
<div class="commodity_action">
<el-button type="warning" plain @click="addToCart">
加入购物车
</el-button>
<el-button type="warning" @click="applyImmediately">
立即申请
</el-button>
<div class="application_base_container">
<ul class="application_base_info">
<li>
<span>应用开发者:</span>
<span v-text="data.providedBy"> </span>
</li>
<li>
<span>应用类型:</span>
<span v-html="data.serviceType"></span>
</li>
</ul>
<ul class="application_base_info">
<li>
<span>部署次数:</span>
<span v-text="data.acquireCount"></span>
</li>
<li>
<span>业务领域:</span>
<span v-text="data.dataField"></span>
</li>
</ul>
<ul class="application_base_info">
<li>
<span>上线时间:</span>
<span v-text="data.publishTime"></span>
</li>
</ul>
</div>
</div>
</div>
<div class="commodity_information">
<span>&emsp;&emsp;格:</span>
<div class="btn_container">
<el-button
v-for="(item, index) in data.specifications"
:key="'specifications_' + index"
:type="
item.value === commodityData.specification ? 'primary' : 'default'
"
@click="changeSpecification(item)"
>
{{ item.name }}
</el-button>
</div>
</div>
<div class="commodity_action">
<el-button type="warning" plain @click="addToCart">
加入购物车
</el-button>
<el-button type="warning" @click="applyImmediately">
立即申请
</el-button>
</div>
</div>
</template>
......@@ -73,13 +77,6 @@ export default {
specification: 0,
},
}),
computed: {
specificationDescription() {
let obj =
this.data.specifications[this.commodityData.specification] || {};
return obj.description || "";
},
},
methods: {
changeSpecification({ value }) {
this.commodityData.specification = value;
......@@ -111,28 +108,29 @@ export default {
.main_container-left {
padding: 3px;
background-color: #f9fafc;
margin-right: 30px;
margin-right: 10px;
}
.main_container-right {
flex-grow: 1;
}
.application_title {
display: flex;
justify-content: flex-start;
align-items: center;
}
.application_title > .application_name {
font-size: 22px;
font-weight: bold;
color: #0d1847;
line-height: 36px;
}
.application_base_info {
padding: 18px;
.application_base_container {
display: flex;
justify-content: flex-start;
align-items: flex-end;
background-color: #f9fafc;
padding: 18px;
margin-top: 15px;
}
.application_base_info > li,
.commodity_information {
.application_base_info:not(:last-child) {
margin-right: 50px;
}
.application_base_info > li {
display: flex;
justify-content: flex-start;
align-items: flex-start;
......@@ -140,39 +138,37 @@ export default {
color: #242c43;
line-height: 20px;
}
.application_base_info > li:not(:first-child) {
margin-top: 18px;
}
.application_base_info > li > span:first-child,
.commodity_information > span:first-child {
.application_base_info > li > span:first-child {
width: 6em;
flex-shrink: 0;
white-space: nowrap;
color: #8890a7;
text-align: right;
}
.application_base_info > li:not(:first-child) {
margin-top: 20px;
}
.application_base_info > li > span:nth-child(2) {
color: #242c43;
}
.commodity_information {
display: flex;
justify-content: flex-start;
align-items: flex-start;
margin-top: 30px;
}
.commodity_information > span:nth-child(2) {
color: #58617a;
}
.commodity_information > span:first-child {
flex-shrink: 0;
width: 6em;
font-size: 14px;
color: #8890a7;
line-height: 40px;
}
.commodity_information > .commodity_text {
flex-grow: 1;
padding: 13px 18px;
background-color: #f9fafc;
border-radius: 5px;
}
.commodity_information > .btn_container {
margin-bottom: -15px;
}
.commodity_information > .btn_container > .el-button,
.commodity_information > .btn_container > .el-input-number {
margin: 0 20px 15px 0;
.commodity_information > .btn_container > .el-button {
margin: 0 30px 15px 0;
}
.commodity_action {
margin-top: 50px;
......
......@@ -30,7 +30,9 @@ export default {
tabSize: 4,
highlightActiveLine: false
});
this.getValue();
if (this.url) {
this.getValue();
}
},
watch: {},
methods: {
......@@ -38,7 +40,7 @@ export default {
this.$http
.get(this.url)
.then(response => {
this.aceEditor.setValue(JSON.stringify(response.data, null, "\t"));
this.aceEditor.setValue(response.data);
})
.catch(function(response) {
console.log(response);
......@@ -46,6 +48,9 @@ export default {
},
parentHandleclick() {
this.$emit("getEditValue", this.aceEditor.getValue());
},
getCodesVal() {
return this.aceEditor.getValue();
}
}
};
......
......@@ -150,7 +150,7 @@ export default {
font-size: 12px;
font-weight: 500;
line-height: 12px;
border-radius: 15px;
border-radius: 4px;
position: relative;
top: -2px;
}
......
This diff is collapsed.
......@@ -14,8 +14,13 @@
<p
v-else-if="item.type == 'text'"
class="detail-text"
v-text="item.value"
v-html="item.value"
></p>
<div
v-else-if="item.type == 'code'"
class="detail-code"
v-html="item.value"
></div>
<el-table
v-else-if="item.type == 'table'"
class="detail-table"
......@@ -95,4 +100,16 @@ export default {
line-height: 25px;
color: #242c43;
}
.detail-item .detail-code {
padding: 20px 25px;
box-sizing: border-box;
border-radius: 7px;
white-space: pre-wrap;
word-wrap: break-word !important;
background-color: #f8f9fd;
font-size: 14px;
color: #58617a;
line-height: 25px;
margin-top: 8px;
}
</style>
<template>
<div class="shop_card">
<div class="shop_car-img" v-if="data.img" @click="intoDetail">
<img :src="data.img" width="100%" />
</div>
<div class="shop_card-top">
<p
class="shop_card-title text_clip_2"
v-text="data.title"
:title="data.title"
@click="intoDetail"
></p>
<p class="shop_card-text under_text">
<span
class="text_clip"
v-text="data.provider"
:title="data.provider"
></span>
<span>
<i class="el-icon-star-on"></i>
<span v-text="data.rate"></span>
</span>
</p>
</div>
<div class="shop_card-bottom">
<p class="shop_card-text summary text_clip_2" v-if="data.resourceSummary">
<span v-text="data.resourceSummary"></span>
</p>
<p class="shop_card-text update_time">
<i class="el-icon-time"></i>
<span class="text_clip" v-text="'更新时间:' + data.updateTime"></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>
<span>
<img :src="require('@/assets/imgs/icon_huoqu.png')" />
<span class="text_clip" v-text="data.numberOfMonth + '次获取'"></span>
</span>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
data: {
type: Object,
required: true,
},
detailPath: {
type: String,
required: true,
},
},
methods: {
intoDetail() {
this.$router.push(this.detailPath + this.data.id);
},
},
};
</script>
<style scoped>
.shop_card {
overflow: hidden;
border: 1px solid #ededed;
border-radius: 10px;
box-sizing: border-box;
}
.shop_car-img {
cursor: pointer;
}
.shop_car-img > img {
display: block;
}
.shop_card-top {
background-color: #f9fafc;
padding: 19px 19px 6px;
}
.shop_card-bottom {
background-color: #fff;
padding: 12px 19px 15px;
}
.shop_card-title {
height: 42px;
font-size: 16px;
font-weight: bold;
color: #0d1847;
line-height: 21px;
cursor: pointer;
margin-bottom: 8px;
}
.shop_card-text {
font-size: 14px;
color: #8890a7;
line-height: 21px;
}
.shop_card-text.under_text {
display: flex;
justify-content: space-between;
align-items: center;
}
.shop_card-text.under_text > span:nth-child(2) {
flex-shrink: 0;
margin-left: 10px;
}
.shop_card-text.under_text > span:nth-child(2) > i {
font-size: 20px;
color: #fac266;
}
.shop_card-text.under_text > span:nth-child(2) > span {
font-family: Arial;
font-size: 18px;
font-weight: bold;
color: #ea7d19;
}
.shop_card-text.summary {
height: 42px;
margin-bottom: 12px;
}
.shop_card-text.update_time {
display: flex;
justify-content: flex-start;
align-items: center;
margin-bottom: 15px;
}
.shop_card-text.update_time > i {
flex-shrink: 0;
margin-right: 5px;
}
.shop_card-text.access {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 11px;
border-top: 1px solid #ededed;
}
.shop_card-text.access > span > img {
width: 15px;
margin-right: 5px;
}
</style>
<template>
<div class="shop_list">
<h3 class="shop_list-title">
<span v-text="name"></span>
<a @click.prevent="goto" :style="{ cursor: to ? 'pointer' : 'text' }">
<i class="el-icon-arrow-right"></i>
</a>
</h3>
<ul class="shop_cards">
<li v-for="(item, index) in data" :key="'card_' + index">
<shop-card :data="item" :detail-path="detailPath"></shop-card>
</li>
</ul>
</div>
</template>
<script>
import shopCard from "./shop-card";
export default {
components: {
shopCard,
},
props: {
name: {
type: String,
required: true,
},
to: {
type: String,
required: true,
},
detailPath: {
type: String,
required: true,
},
data: {
type: Array,
required: true,
},
},
methods: {
goto() {
if (this.to) {
this.$router.push(this.to);
}
},
},
};
</script>
<style scoped>
.shop_list-title {
margin: 13px 20px;
}
.shop_list-title > span {
font-size: 18px;
font-weight: bold;
color: #0d1847;
line-height: 27px;
}
.shop_list-title > a {
display: inline-flex;
justify-content: center;
align-items: center;
width: 28px;
height: 28px;
background-color: #fff;
border: 1px solid #edeff6;
border-radius: 5px;
overflow: hidden;
margin-left: 10px;
}
.shop_list-title > a > i {
font-weight: bolder;
color: #1e3595;
}
.shop_cards {
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.shop_cards > li {
width: calc((100% - 60px) / 4);
}
</style>
......@@ -15,18 +15,18 @@
/>
<div class="shopping_cell_msg">
<div class="shopping_cell_name">
{{ cellItem.name }}
{{ cellItems.name }}
<span
v-if="cellItem.mapService"
v-if="cellItems.mapService"
class="tags map_service"
>mapService</span>
<span v-if="cellItem.state == 1" class="tags shared">共享</span>
<span v-else-if="cellItem.state == 2" class="tags restricted">受限</span>
<span v-if="cellItems.state == 1" class="tags shared">共享</span>
<span v-else-if="cellItems.state == 2" class="tags restricted">受限</span>
<span v-else class="tags sensitive">敏感</span>
</div>
<div class="shopping_cell_msg_other">
<div class="shopping_cell_type">{{ cellItem.type }}</div>
<div class="shopping_cell_creator">{{ cellItem.creator }}</div>
<div class="shopping_cell_type">{{ cellItems.type }}</div>
<div class="shopping_cell_creator">{{ cellItems.creator }}</div>
</div>
</div>
</div>
......@@ -34,10 +34,19 @@
<el-col :span="5">
<div class="shopping_cell_specification">
<div class="shopping_cell_specification_val">
<div class="shopping_cell_specification_val_specification">规格:{{ specificationBtns[specification] }}</div>
<div class="shopping_cell_specification_val_type">申请方式:{{ specificationApplicationBtns[specificationApplication] }}</div>
<div
class="shopping_cell_specification_val_specification"
>规格:{{ specificationBtns[cellItems.specification] }}</div>
<div
class="shopping_cell_specification_val_type"
>申请方式:{{ specificationApplicationBtns[cellItems.specificationApplication] }}</div>
<div class="shopping_cell_specification_edit">
<el-popover placement="right" width="280" v-model="visible" @after-leave="setSpecificationPop">
<el-popover
placement="right"
width="280"
v-model="visible"
@after-leave="setSpecificationPop"
>
<div>
<div class="shopping_cell_specification_title">规格:</div>
<div>
......@@ -56,7 +65,7 @@
:key="'specification' + index"
:class="specificationApplicationPop == index ? 'shopping_cell_specification_btn active' : 'shopping_cell_specification_btn'"
size="mini"
@click="changeSpecificationApplication(index)"
@click="changeSpecificationApplication(index)"
>{{ item }}购买</el-button>
</div>
</div>
......@@ -82,12 +91,22 @@
</div>
</el-col>
<el-col :span="4" class="shopping_cell_num">
<el-input-number :disabled="readOnly" v-model="numItem" size="mini" :min="1"></el-input-number>
<el-input-number
:disabled="readOnly"
v-model="cellItems.num"
@change="changeNum"
size="mini"
:min="1"
></el-input-number>
</el-col>
<el-col :span="4" class="shopping_cell_options">
<el-checkbox v-if="!readOnly" v-model="checkedSubscription">订阅该服务</el-checkbox>
<el-checkbox
v-if="!readOnly"
v-model="cellItems.checkedSubscription"
@change="changeSubscription"
>订阅该服务</el-checkbox>
<div class="shopping_cell_options_del">
<el-button size="mini">删除</el-button>
<el-button @click="delCellItem" size="mini">删除</el-button>
</div>
</el-col>
</el-row>
......@@ -112,16 +131,20 @@ export default {
watch: {
cellCheck: function(val) {
this.checkedItem = val;
},
cellItem: {
immediate: true, // 这句重要
handler(val) {
this.cellItems = val;
}
}
},
data: () => ({
cellItems: {},
checkedItem: false,
numItem: 1,
specificationEdit: require("../../assets/imgs/ic_edit.png"),
checkedSubscription: false,
visible: false,
specification: 1,
specificationApplication: 0,
specificationPop: 1,
specificationApplicationPop: 0,
specificationBtns: [
......@@ -143,13 +166,32 @@ export default {
this.specificationApplicationPop = val;
},
submitPop() {
this.specification = this.specificationPop;
this.specificationApplication = this.specificationApplicationPop;
this.cellItems.specification = this.specificationPop;
this.cellItems.specificationApplication = this.specificationApplicationPop;
this.visible = false;
this.changeCellItem();
},
setSpecificationPop() {
this.specificationPop = this.specification;
this.specificationApplicationPop = this.specificationApplication;
this.specificationPop = this.cellItems.specification;
this.specificationApplicationPop = this.cellItems.specificationApplication;
},
changeSubscription(val) {
this.changeCellItem();
},
changeNum(val) {
this.changeCellItem();
},
changeCellItem() {
this.$emit("changeCellMsg", {
index: this.cellIndex,
data: this.cellItems
});
},
delCellItem() {
this.$emit("deleteItem", {
index: this.cellIndex,
data: this.cellItems
});
}
},
mounted() {}
......@@ -229,7 +271,7 @@ export default {
font-size: 12px;
font-weight: 500;
line-height: 12px;
border-radius: 15px;
border-radius: 4px;
position: relative;
top: -2px;
}
......
......@@ -8,7 +8,7 @@
</el-col>
<el-col :span="9" class="shopping_all_head_item">服务信息</el-col>
<el-col :span="5" class="shopping_all_head_item">规格</el-col>
<el-col :span="4" class="shopping_all_head_item">数量</el-col>
<el-col :span="4" class="shopping_all_head_item">购买时长</el-col>
<el-col :span="4" class="shopping_all_head_item">操作</el-col>
</el-row>
</div>
......@@ -19,6 +19,8 @@
:checkList="checkList"
:readOnly="false"
@changeState="changeState"
@changeCellMsg="changeCellMsg"
@deleteItem="deleteItem"
class="shopping_all_list"
/>
</div>
......@@ -45,8 +47,12 @@
<span>{{ getNum }}</span>
</el-col>
<el-col :span="4" class="shopping_cart_options_cell">
<el-button v-if="getNum == 0" :disabled="true" class="shopping_cart_options_cell_btn">一键申请</el-button>
<el-button v-else class="shopping_cart_options_cell_btn_act">一键申请</el-button>
<el-button
v-if="getNum == 0"
:disabled="true"
class="shopping_cart_options_cell_btn"
>一键申请</el-button>
<el-button v-else @click="oneClickApplication" class="shopping_cart_options_cell_btn_act">一键申请</el-button>
</el-col>
</el-row>
</div>
......@@ -71,14 +77,22 @@ export default {
type: "基础数据服务",
creator: "贵州省交通运输厅0",
state: 1,
mapService: 1
mapService: 1,
num: 2,
checkedSubscription: false,
specification: 1,
specificationApplication: 2
},
{
id: 1,
name: "水路货物周转量情况水路货物周水路货物周转量情况水路货物周",
type: "基础数据服务",
creator: "贵州省交通运输厅1",
state: 1
state: 1,
num: 2,
checkedSubscription: false,
specification: 1,
specificationApplication: 2
},
{
id: 2,
......@@ -86,7 +100,11 @@ export default {
type: "基础数据服务",
creator: "贵州省交通运输厅2",
state: 1,
mapService: 1
mapService: 1,
num: 2,
checkedSubscription: true,
specification: 1,
specificationApplication: 2
}
]
}),
......@@ -119,6 +137,19 @@ export default {
console.log(this.list[index]);
}
});
},
changeCellMsg(val) {
console.log(val);
},
deleteItem(val) {
console.log(val);
},
oneClickApplication() {
this.checkList.forEach((item, index) => {
if (item === true) {
console.log(this.list[index]);
}
});
}
}
};
......@@ -194,7 +225,7 @@ export default {
.shopping_all_head {
background-color: #e5f0ff;
height: 48px;
padding: 0 20px;
padding: 0;
font-weight: 700;
line-height: 48px;
}
......
......@@ -9,6 +9,8 @@
:key="item.id"
:readOnly="readOnly"
@changeState="changeState"
@changeCellMsg="changeCellMsg"
@deleteItem="deleteItem"
/>
</div>
</div>
......@@ -58,6 +60,12 @@ export default {
for (let i = 0; i < this.checkLists.length; i++) {
this.$set(this.checkLists, i, val)
}
},
changeCellMsg(val) {
this.$emit("changeCellMsg", val)
},
deleteItem(val) {
this.$emit("deleteItem", val)
}
}
};
......
......@@ -9,9 +9,9 @@
<span v-text="title"></span>
</h3>
<ul class="side_nav_bar_list">
<!-- active-class="current" -->
<router-link
tag="li"
active-class="current"
v-for="(nav, index) in navList"
:class="{ current: $route.path.indexOf(nav.path) > -1 }"
:key="'nav' + index"
......
......@@ -2,19 +2,25 @@
<div class="table_in_s">
<el-select
ref="inp"
v-model="selectValue" :disabled="couldNotEdit"
v-model="selectValue"
:disabled="couldNotEdit"
size="small"
@input="changeValue"
class="table_in_select"
placeholder="请选择"
>
<template v-if="selectArr&&selectArr.length>0">
<el-option v-for="(item,index) in selectArr" :key="index+3500" :label="item.label" :value="item.value"></el-option>
</template>
<template v-else>
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</template>
<template v-if="selectArr && selectArr.length > 0">
<el-option
v-for="(item,index) in selectArr"
:key="index+3500"
:label="item.label"
:value="item.value"
></el-option>
</template>
<template v-else>
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</template>
</el-select>
</div>
</template>
......@@ -23,9 +29,11 @@
import helper from "@/services/helper";
export default {
props: {
selectArr:{
selectArr: {
type: Array,
default: []
default: () => {
[];
}
},
item: {
type: String,
......@@ -42,7 +50,7 @@ export default {
couldNotEdit: {
type: Boolean,
default: false
},
}
},
data: () => ({
selectValue: ""
......@@ -78,6 +86,6 @@ export default {
border-radius: 4px;
}
.table_in_s .el-input.is-disabled .el-input__inner {
color: #70747C;
color: #70747c;
}
</style>
\ No newline at end of file
......@@ -367,6 +367,10 @@ export default {
type: Boolean,
default: true,
},
datas: {
type: Array,
default: null,
},
},
data() {
return {
......@@ -444,6 +448,9 @@ export default {
// console.log(this.emptyText);
// the if statement is to choose which data could be show, only used for test and template
this.selectedTabsPage = [];
if (this.datas) {
this.selectedTabsPage = this.datas;
}
this.pagination.total = 0;
if (this.autoAdd) {
this.addRow();
......
......@@ -6,7 +6,7 @@
></side-nav-bar>
<div class="main_container">
<router-view
:key="'type_' + $route.params && $route.params.type"
:key="'type_' + $route.params.level + '_' + $route.params.type"
></router-view>
</div>
</div>
......@@ -39,7 +39,7 @@ export default {
this.navList = this.fwglNav[level].map((item, index) => ({
name: item,
path: `/fwgl/list/${level}/${index}`,
path: `/fwgl/${level}/${index}`,
}));
},
},
......
<template>
<div class="list_container">
<el-breadcrumb separator="/" class="bread_crumb">
<el-breadcrumb-item>我的服务</el-breadcrumb-item>
<el-breadcrumb-item>{{ pathName }}</el-breadcrumb-item>
</el-breadcrumb>
<div class="sevice_breadcrumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item>我的服务</el-breadcrumb-item>
<el-breadcrumb-item>{{ pathName }}</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="table_container">
<ces-table
class="r_yhgl_table"
size="mini"
url="tableData"
:detailsUrl="`/fwgl/servicedetail/${level}/`"
:detailsUrl="detailsUrl"
:border="false"
:headers="headers"
:searchShow="true"
......@@ -24,7 +26,7 @@
@action-sold-out="soldOutItem"
@action-sold-out-2="soldOutItem2"
@action-cancel="cancelItem"
@action-examine="examineItem"
@action-approval="approvalItem"
@action-detail="detailItem"
@action-allot="allotItem"
></ces-table>
......@@ -47,7 +49,6 @@ export default {
type: 0, // 访问的页面
headers: [],
url: "",
detailsUrl: "ss/",
confirmOptions: {
title: "",
message: "",
......@@ -99,6 +100,17 @@ export default {
pathName() {
return this.fwglNav[this.level][this.type];
},
detailsUrl() {
let url = "";
if (this.level == 0 && this.type == 1) {
url = `/fwgl/${this.level}/${this.type}/applyserviceedit/`;
} else {
url = `/fwgl/${this.level}/${this.type}/servicedetail/`;
}
return url;
},
},
components: {
cesTable,
......@@ -173,7 +185,7 @@ export default {
// 普通用户 --- 审批的服务
else if (level == 0 && type == 2) {
this.headers = [
{ label: "服务名称", prop: "name", type: "href", align: "left" },
{ label: "服务名称", prop: "name", type: "", align: "left" },
{ label: "服务领域", prop: "address", type: "", align: "center" },
{ label: "开放程度", prop: "address", type: "", align: "center" },
{ label: "请求方式", prop: "address", type: "", align: "center" },
......@@ -188,7 +200,7 @@ export default {
width: 160,
btnList: [
{
type: "action-examine",
type: "action-approval",
label: "审批",
line: "|",
},
......@@ -203,7 +215,7 @@ export default {
// 普通用户 --- 云资源服务
else if (level == 0 && type == 3) {
this.headers = [
{ label: "工作区域", prop: "name", type: "href", align: "center" },
{ label: "工作区域", prop: "name", type: "", align: "center" },
{ label: "网络环境", prop: "name", type: "", align: "center" },
{ label: "CPU(核)", prop: "name", type: "", align: "center" },
{ label: "内存(GB)", prop: "name", type: "", align: "center" },
......@@ -242,7 +254,7 @@ export default {
// 组织管理员 --- 服务审批管理
else if (level == 1 && type == 1) {
this.headers = [
{ label: "服务名称", prop: "name", type: "href", align: "left" },
{ label: "服务名称", prop: "name", type: "", align: "left" },
{ label: "服务领域", prop: "date", type: "", align: "center" },
{ label: "开放程度", prop: "date", type: "", align: "center" },
{ label: "请求方式", prop: "date", type: "", align: "center" },
......@@ -257,7 +269,7 @@ export default {
width: 160,
btnList: [
{
type: "action-examine",
type: "action-approval",
label: "审批",
line: "|",
},
......@@ -272,7 +284,7 @@ export default {
// 组织管理员 --- 云资源管理
else if (level == 1 && type == 2) {
this.headers = [
{ label: "工作区域", prop: "name", type: "href", align: "center" },
{ label: "工作区域", prop: "name", type: "", align: "center" },
{ label: "网络环境", prop: "name", type: "", align: "center" },
{ label: "CPU(核)", prop: "name", type: "", align: "center" },
{ label: "内存(GB)", prop: "name", type: "", align: "center" },
......@@ -332,7 +344,7 @@ export default {
// 超级管理员 --- 服务审批管理
else if (level == 2 && type == 1) {
this.headers = [
{ label: "服务名称", prop: "name", type: "href", align: "left" },
{ label: "服务名称", prop: "name", type: "", align: "left" },
{ label: "服务领域", prop: "date", type: "", align: "center" },
{ label: "开放程度", prop: "date", type: "", align: "center" },
{ label: "请求方式", prop: "date", type: "", align: "center" },
......@@ -347,7 +359,7 @@ export default {
width: 160,
btnList: [
{
type: "action-examine",
type: "action-approval",
label: "审批",
line: "|",
},
......@@ -362,7 +374,7 @@ export default {
// 超级管理员 --- 云资源管理
else if (level == 2 && type == 2) {
this.headers = [
{ label: "所属组织", prop: "name", type: "href", align: "center" },
{ label: "所属组织", prop: "name", type: "", align: "center" },
{ label: "CPU使用量", prop: "name", type: "", align: "center" },
{ label: "内存使用量", prop: "name", type: "", align: "center" },
{ label: "工作区域数量", prop: "name", type: "", align: "center" },
......@@ -400,7 +412,7 @@ export default {
},
editItem(item) {
this.$router.push(
`/fwgl/serviceedit/${this.$route.params.level}/${item.id}`
`/fwgl/${this.level}/${this.type}/serviceedit/${item.id}`
);
},
soldOutItem(item) {
......@@ -429,8 +441,10 @@ export default {
cancelItem(item) {
console.log("cancelItem - " + item.name);
},
examineItem(item) {
console.log("examineItem - " + item.name);
approvalItem(item) {
this.$router.push(
`/fwgl/${this.level}/${this.type}/approvalserviceedit/${item.id}`
);
},
detailItem(item) {
console.log("detailItem - " + item.name);
......@@ -451,14 +465,12 @@ export default {
</script>
<style scoped>
.bread_crumb {
margin: 20px;
font-size: 14px;
.list_container {
padding: 0 20px;
}
.table_container {
height: calc(100% - 75px);
padding: 15px 20px;
margin: 0 20px;
border-radius: 10px;
overflow: hidden;
background-color: #fff;
......
......@@ -73,7 +73,7 @@
<div class="sjfw_qqt">
<el-radio v-model="sjfwQqt" label="JSON">JSON</el-radio>
</div>
<v-apaas-code></v-apaas-code>
<v-apaas-code ref="jsonCodes"></v-apaas-code>
</el-tab-pane>
<el-tab-pane label="授权信息" name="2">
<el-row class="sqxx_row">
......@@ -120,7 +120,8 @@
size="mini"
:border="true"
:headers="sjfw_qqcstx"
url="qqcstx"
url
:datas="datas"
:searchShow="false"
:addRowBtn="false"
:autoAdd="false"
......@@ -140,7 +141,8 @@
size="mini"
:border="true"
:headers="sjfw_fhcstx"
url="fhcstx"
url
:datas="datas"
:searchShow="false"
:addRowBtn="false"
:autoAdd="false"
......@@ -285,10 +287,10 @@ export default {
{ label: "请求值", prop: "requestValue", type: "input", align: "left" }
],
sjfw_qqcstx: [
{ label: "字段编码", prop: "unicode", type: "", align: "left" },
{ label: "示例值", prop: "examples", type: "input", align: "left" },
{ label: "字段类型", prop: "type", type: "", align: "left" },
{ label: "字段名称", prop: "name", type: "input", align: "left" },
{ label: "字段编码", prop: "name", type: "", align: "left" },
{ label: "示例值", prop: "example", type: "input", align: "left" },
{ label: "字段类型", prop: "field_type", type: "", align: "left" },
{ label: "字段名称", prop: "label", type: "input", align: "left" },
{
label: "是否必须",
prop: "needable",
......@@ -296,18 +298,18 @@ export default {
align: "left",
width: 100
},
{ label: "字段说明", prop: "explanation", type: "input", align: "left" }
{ label: "字段说明", prop: "descript", type: "input", align: "left" }
],
sjfw_fhcstx: [
{ label: "字段编码", prop: "unicode", type: "", align: "left" },
{ label: "字段类型", prop: "type", type: "popover", align: "left" },
{ label: "字段名称", prop: "name", type: "input", align: "left" },
{ label: "字段说明", prop: "explanation", type: "input", align: "left" }
{ label: "字段编码", prop: "name", type: "", align: "left" },
{ label: "字段类型", prop: "field_type", type: "popover", align: "left" },
{ label: "字段名称", prop: "label", type: "input", align: "left" },
{ label: "字段说明", prop: "descript", type: "input", align: "left" }
],
url: "",
emptyText: "暂时没数据",
resultShow: false,
optionsSq: [{ label: "Bearer Token", value: "Bearer Token" }],
optionsSq: [{ label: "Bearer Token", value: "Bearer" }],
sqfsVal: "",
tokenVal: "",
sjfwQqt: "JSON",
......@@ -351,7 +353,65 @@ export default {
{ label: "教育机构", value: 9 },
{ label: "其他", value: 10 }
],
optionsOrganization: []
optionsOrganization: [],
datas: [
{
id: 123134445,
name: "name",
field_type: "string",
label: "",
descript: "",
example: "lisi",
children: null
},
{
id: 1213445,
name: "age",
field_type: "float",
label: "",
descript: "",
example: "22.00",
children: null
},
{
id: 12313444,
name: "childs",
field_type: "array",
label: "",
descript: "",
example: "",
children: [
{
id: 1231345,
name: "",
field_type: "object",
label: "",
descript: "",
example: "",
children: [
{
id: 123344445,
name: "name",
field_type: "string",
label: "",
descript: "",
example: "lili",
children: null
},
{
id: 11344445,
name: "age",
field_type: "float",
label: "",
descript: "",
example: "2.00",
children: null
}
]
}
]
}
]
}),
computed: {},
watch: {},
......@@ -362,6 +422,54 @@ export default {
},
clickFwcs() {
this.resultShow = true;
let aothorization = {};
if (this.sqfsVal != "") {
aothorization[this.sqfsVal] = this.tokenVal;
}
let request = this.$refs.fwcs_sjfw_qq.getTableData();
console.log(request);
let requestData = {};
for (let i = 0; i < request.length; i++) {
if (
request[i] &&
request[i].requestEncoding &&
request[i].requestValue &&
request[i].requestEncoding != "" &&
request[i].requestValue != ""
) {
if (
Object.keys(requestData).indexOf(request[i].requestEncoding) == -1
) {
requestData[request[i].requestEncoding] = [];
requestData[request[i].requestEncoding][0] =
request[i].requestValue;
} else {
requestData[request[i].requestEncoding].push(
request[i].requestValue
);
}
}
}
let url = `/apaas/service/v3/service/manager/test`;
let query = {
method: this.select,
url: this.input3,
Authorization: aothorization,
params: requestData,
body: this.$refs.jsonCodes.getCodesVal()
};
this.$http
.post(url, query)
.then(response => {
if (response.data.success == 1) {
this.l4 = response.data.data;
} else {
console.log(response.data.console.error);
}
})
.catch(function(response) {
console.log("unkonw error");
});
},
clickTab() {},
clickNext() {
......
<template>
<div class="index_container">
<div class="decor" v-if="$route.fullPath == '/workplace' || $route.fullPath == '/fwzc/fwcs'"></div>
<div class="decor" v-if="$route.fullPath == '/workplace' || $route.fullPath == '/services_shop' || $route.fullPath == '/fwzc/fwcs'"></div>
<router-view/>
</div>
</template>
......
<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-item>
</el-carousel>
<ul class="services_shop-info">
<template v-for="(item, index) in servicesShopInfo">
<li class="info_item" :key="'info_' + index">
<div class="left-contianer">
<img :src="item.icon" width="100%" />
</div>
<div class="right-container">
<p v-text="item.name"></p>
<p>
<span v-text="item.value"></span>
<span v-text="item.unit"></span>
</p>
</div>
</li>
<li
class="info_line"
:key="'line_' + index"
v-if="index + 1 < servicesShopInfo.length"
></li>
</template>
</ul>
</div>
<!-- 热门数据 -->
<shop-list
name="热门数据"
to="/shop/data_service_list"
detail-path="/shop/sjfwDetail/"
:data="hot_datas"
></shop-list>
<!-- 精品地图 -->
<shop-list
name="精品地图"
to="/shop/space_time_service_list"
detail-path="/shop/skfwDetail/"
:data="map_datas"
></shop-list>
<!-- 综合应用 -->
<shop-list
name="综合应用"
to="/shop/comprehensive_app_list"
detail-path="/shop/zhyyfwDetail/"
:data="comprehensive_datas"
></shop-list>
</div>
</template>
<script>
import shopList from "../components/shop-list";
export default {
components: {
shopList,
},
data: () => ({
banners: null,
servicesShopInfo: null,
hot_datas: [],
map_datas: [],
comprehensive_datas: [],
}),
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);
});
},
},
mounted() {
this.init();
},
};
</script>
<style scoped>
.services_shop-container {
max-width: 1200px;
margin: -157px auto 20px;
}
.services_shop-carousel {
border-radius: 10px;
overflow: hidden;
}
.services_shop-info {
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 5px;
background-color: #fff;
}
.services_shop-info > .info_item {
flex-grow: 1;
display: inline-flex;
justify-content: space-between;
align-items: center;
height: 125px;
padding: 10px 10px;
margin: 0 15px;
box-sizing: border-box;
}
.services_shop-info .left-container {
width: 45px;
flex-shrink: 0;
}
.services_shop-info .right-container {
flex-grow: 1;
padding: 0 1.5em;
}
.services_shop-info .right-container > p {
font-size: 16px;
color: #58617a;
line-height: 32px;
text-align: right;
position: relative;
box-sizing: border-box;
}
.services_shop-info .right-container > p:nth-child(2) > span:nth-child(1) {
font-family: Arial;
font-size: 24px;
font-weight: bold;
color: #242c43;
}
.services_shop-info .right-container > p:nth-child(2) > span:nth-child(2) {
position: absolute;
top: 0;
right: -1.2em;
}
.services_shop-info > .info_line {
height: 64px;
border: 1px solid #f2f3f4;
}
</style>
<style>
.services_shop-carousel .el-carousel__button {
width: 30px;
height: 5px;
opacity: 1;
border-radius: 2px;
}
.services_shop-carousel .is-active .el-carousel__button {
background-color: #e56600;
}
</style>
......@@ -2,8 +2,10 @@
<div class="sevice_detail">
<div class="sevice_breadcrumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item>服务超市</el-breadcrumb-item>
<el-breadcrumb-item>数据服务</el-breadcrumb-item>
<el-breadcrumb-item to="/shop">服务超市</el-breadcrumb-item>
<el-breadcrumb-item to="/shop/data_service_list"
>数据服务</el-breadcrumb-item
>
<el-breadcrumb-item>服务详情信息</el-breadcrumb-item>
</el-breadcrumb>
</div>
......@@ -34,6 +36,11 @@ export default {
specification: null,
provider: null,
}),
computed: {
id() {
return this.$route.params.id;
},
},
methods: {
getDataFromApi(_url) {
return new Promise((resolve, reject) => {
......@@ -63,13 +70,3 @@ export default {
},
};
</script>
<style scoped>
.sevice_detail {
max-width: 1200px;
margin: 0 auto;
}
.sevice_breadcrumb > .el-breadcrumb {
line-height: 42px;
}
</style>
......@@ -2,8 +2,10 @@
<div class="sevice_detail">
<div class="sevice_breadcrumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item>服务超市</el-breadcrumb-item>
<el-breadcrumb-item>数据服务</el-breadcrumb-item>
<el-breadcrumb-item to="/shop">服务超市</el-breadcrumb-item>
<el-breadcrumb-item to="/shop/space_time_service_list"
>时空服务</el-breadcrumb-item
>
<el-breadcrumb-item>服务详情信息</el-breadcrumb-item>
</el-breadcrumb>
</div>
......@@ -31,6 +33,11 @@ export default {
data: () => ({
baseInfo: null,
}),
computed: {
id() {
return this.$route.params.id;
},
},
methods: {
getDataFromApi(_url) {
return new Promise((resolve, reject) => {
......@@ -60,13 +67,3 @@ export default {
},
};
</script>
<style scoped>
.sevice_detail {
max-width: 1200px;
margin: 0 auto;
}
.sevice_breadcrumb > .el-breadcrumb {
line-height: 42px;
}
</style>
<template>
<div class="yygl_container">
<side-nav-bar
:nav-list="navList"
:title-path="navList[0] && navList[0].path"
></side-nav-bar>
<div class="main_container">
<router-view
:key="'type_' + $route.params.level + '_' + $route.params.type"
></router-view>
</div>
</div>
</template>
<script>
import sideNavBar from "@/components/side-nav-bar";
import { mapState } from "vuex";
export default {
components: {
sideNavBar,
},
data: () => ({
navList: [],
}),
computed: {
...mapState({
yyglNav: "yyglNav",
}),
},
watch: {
"$route.fullPath"(path) {
this.initNavList();
},
},
methods: {
initNavList() {
let level = parseInt(this.$route.params.level);
this.navList = this.yyglNav[level].map((item, index) => ({
name: item,
path: `/yygl/${level}/${index}`,
}));
},
},
mounted() {
this.initNavList();
},
};
</script>
<style scoped>
.yygl_container {
height: calc(100vh - 84px);
display: flex;
justify-content: flex-start;
align-items: stretch;
}
.side_nav_bar {
width: 180px;
flex-shrink: 0;
}
.main_container {
width: calc(100% - 180px);
flex-grow: 1;
flex-shrink: 1;
background-color: #f6f7fb;
overflow: auto;
}
</style>
<template>
<div class="list_container">
<div class="sevice_breadcrumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item>我的服务</el-breadcrumb-item>
<el-breadcrumb-item>{{ pathName }}</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="table_container"></div>
</div>
</template>
<script>
import cesTable from "@/components/table-um";
import dialogAction from "@/components/dialog-action";
import { mapState } from "vuex";
export default {
data: () => ({
level: 0, // 用户等级
type: 0, // 访问的页面
}),
computed: {
...mapState({
yyglNav: "yyglNav",
}),
pathName() {
return this.yyglNav[this.level][this.type];
},
},
components: {
cesTable,
dialogAction,
},
methods: {},
created() {
this.level = parseInt(this.$route.params.level);
this.type = parseInt(this.$route.params.type);
},
};
</script>
<style scoped>
.list_container {
padding: 0 20px;
}
.table_container {
height: calc(100% - 75px);
padding: 15px 20px;
border-radius: 10px;
overflow: hidden;
background-color: #fff;
}
.table_container .ces-table-page {
margin-top: 42px;
}
</style>
......@@ -2,8 +2,10 @@
<div class="sevice_detail">
<div class="sevice_breadcrumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item>服务超市</el-breadcrumb-item>
<el-breadcrumb-item>应用商店</el-breadcrumb-item>
<el-breadcrumb-item to="/shop">服务超市</el-breadcrumb-item>
<el-breadcrumb-item to="/shop/app_store_list"
>应用商店</el-breadcrumb-item
>
<el-breadcrumb-item>应用详情信息</el-breadcrumb-item>
</el-breadcrumb>
</div>
......@@ -35,6 +37,11 @@ export default {
specification: null,
provider: null,
}),
computed: {
id() {
return this.$route.params.id;
},
},
methods: {
getDataFromApi(_url) {
return new Promise((resolve, reject) => {
......@@ -64,13 +71,3 @@ export default {
},
};
</script>
<style scoped>
.sevice_detail {
max-width: 1200px;
margin: 0 auto;
}
.sevice_breadcrumb > .el-breadcrumb {
line-height: 42px;
}
</style>
......@@ -2,8 +2,10 @@
<div class="sevice_detail">
<div class="sevice_breadcrumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item>服务超市</el-breadcrumb-item>
<el-breadcrumb-item>数据服务</el-breadcrumb-item>
<el-breadcrumb-item to="/shop">服务超市</el-breadcrumb-item>
<el-breadcrumb-item to="/shop/comprehensive_app_list"
>综合应用服务</el-breadcrumb-item
>
<el-breadcrumb-item>服务详情信息</el-breadcrumb-item>
</el-breadcrumb>
</div>
......@@ -31,6 +33,11 @@ export default {
data: () => ({
baseInfo: null,
}),
computed: {
id() {
return this.$route.params.id;
},
},
methods: {
getDataFromApi(_url) {
return new Promise((resolve, reject) => {
......@@ -60,13 +67,3 @@ export default {
},
};
</script>
<style scoped>
.sevice_detail {
max-width: 1200px;
margin: 0 auto;
}
.sevice_breadcrumb > .el-breadcrumb {
line-height: 42px;
}
</style>
......@@ -22,7 +22,7 @@ export default new Router({
path: "/index",
name: "index",
component: () => import("@/pages/index"),
redirect: "/workplace",
redirect: "/services_shop",
children: [
{
path: "/fwzc", // 服务注册
......@@ -36,40 +36,53 @@ export default new Router({
component: () => import("@/pages/fwzc_fwcs"),
},
],
},
}, // 工作台 - 服务注册模块
{
path: "/fwgl/:level", // 服务管理 level:用户等级
name: "fwgl",
redirect: "/fwgl/list/:level/0",
redirect: "/fwgl/:level/0",
component: () => import("@/pages/fwgl"),
children: [
{
path: "/fwgl/list/:level/:type", // 服务管理/我的服务
path: "/fwgl/:level/:type", // 服务管理列表页
name: "fwglList",
component: () => import("@/pages/fwglList"),
},
{
path: "/fwgl/servicedetail/:level/:id",
path: "/fwgl/:level/:type/servicedetail/:id",
name: "servicedetail",
component: () => import("@/pages/serviceDetail"),
},
}, // 注册发布的服务 - 详情
{
path: "/fwgl/serviceedit/:level/:id",
path: "/fwgl/:level/:type/serviceedit/:id",
name: "serviceedit",
component: () => import("@/pages/serviceEdit"),
},
}, // 注册发布的服务 - 编辑
{
path: "/fwgl/applyserviceedit/:id",
path: "/fwgl/:level/:type/applyserviceedit/:id",
name: "applyserviceedit",
component: () => import("@/pages/apply_service_detail"),
},
}, // 申请的服务 - 详情
{
path: "/fwgl/approvalserviceedit/:id",
path: "/fwgl/:level/:type/approvalserviceedit/:id",
name: "approvalserviceedit",
component: () => import("@/pages/approval_service_detail"),
}, // 审批的服务 - 详情
],
}, // 工作台 - 服务管理模块
{
path: "/yygl/:level", // 应用管理 level:用户等级
name: "yygl",
redirect: "/yygl/:level/0",
component: () => import("@/pages/yygl"),
children: [
{
path: "/yygl/:level/:type", // 应用管理列表页
name: "yyglList",
component: () => import("@/pages/yyglList"),
},
],
},
}, // 工作台 - 应用管理模块
{
path: "/shop", // 服务超市
name: "shop",
......@@ -122,32 +135,37 @@ export default new Router({
component: () => import("@/pages/shop_car_apply"),
},
],
},
}, // 服务超市 - 列表页
{
path: "/sjfwDetail/:id",
path: "/shop/sjfwDetail/:id",
name: "sjfwDetail",
component: () => import("@/pages/sjfwDetail"),
}, // 数据服务详情
}, // 服务超市 - 数据服务详情
{
path: "/skfwDetail/:id",
path: "/shop/skfwDetail/:id",
name: "skfwDetail",
component: () => import("@/pages/skfwDetail"),
}, // 时空服务详情
}, // 服务超市 - 时空服务详情
{
path: "/zhyyfwDetail/:id",
path: "/shop/zhyyfwDetail/:id",
name: "zhyyfwDetail",
component: () => import("@/pages/zhyyfwDetail"),
}, // 综合应用服务详情
}, // 服务超市 - 综合应用服务详情
{
path: "/yysdDetail/:id",
path: "/shop/yysdDetail/:id",
name: "yysdDetail",
component: () => import("@/pages/yysdDetail"),
}, // 应用详情
}, // 服务超市 - 应用详情
{
path: "/workplace",
name: "workPlace",
component: () => import("@/pages/workPlace"),
},
}, // 主页 - 工作台
{
path: "/services_shop",
name: "services_shop",
component: () => import("@/pages/services_shop"),
}, // 主页 - 服务超市
],
},
{
......
......@@ -7,10 +7,15 @@ const store = new Vuex.Store({
role: 1, // 0:普通用户,1:组织管理员,2:超级管理员
serviceShopMenu: "shopDataList", // 服务超市侧边栏
fwglNav: [
["注册发布的服务", "申请的服务", "审批的服务", "云资源服务"], //普通用户
["组织服务管理", "服务审批管理", "云资源管理"], //组织管理员
["平台服务管理", "服务审批管理", "云资源管理"], //超级管理员
["注册发布的服务", "申请的服务", "审批的服务", "云资源服务"], // 普通用户
["组织服务管理", "服务审批管理", "云资源管理"], // 组织管理员
["平台服务管理", "服务审批管理", "云资源管理"], // 超级管理员
], // 服务管理列表,onlyRead
yyglNav: [
["应用仓库", "我部署的应用", "申请的应用", "审批的应用"], // 普通用户
["应用仓库管理", "部署的应用", "应用审批管理"], // 组织管理员
["平台应用管理", "应用部署管理", "应用审批管理"], // 超级管理员
], // 应用管理列表,onlyRead
},
modules: {},
mutations: {
......
......@@ -580,6 +580,58 @@
"name": "王小虎",
"explanation": "上海市普陀区金沙江路 1516 弄"
}
],
"body_fields": [
{
"name": "name",
"field_type": "string",
"label": "",
"descript": "",
"example": "lisi",
"children": null
},
{
"name": "age",
"field_type": "float",
"label": "",
"descript": "",
"example": "22.00",
"children": null
},
{
"name": "childs",
"field_type": "array",
"label": "",
"descript": "",
"example": "",
"children": [
{
"name": "",
"field_type": "object",
"label": "",
"descript": "",
"example": "",
"children": [
{
"name": "name",
"field_type": "string",
"label": "",
"descript": "",
"example": "lili",
"children": null
},
{
"name": "age",
"field_type": "float",
"label": "",
"descript": "",
"example": "2.00",
"children": null
}
]
}
]
}
]
}
}
}
\ No newline at end of file
......@@ -736,25 +736,8 @@
},
{
"name": "功能简介",
"type": "list",
"value": [
{
"name": "1",
"value": "在地图上查找视频设备;"
},
{
"name": "2",
"value": "在地图上定位视频设备位置;"
},
{
"name": "3",
"value": "调用多路视频的实时视频数据;"
},
{
"name": "4",
"value": "操作球机视频设备。"
}
]
"type": "text",
"value": "1、在地图上查找视频设备;<br />2、在地图上定位视频设备位置;<br />3、调用多路视频的实时视频数据;<br />4、操作球机视频设备。"
},
{
"name": "应用场景",
......@@ -763,21 +746,8 @@
},
{
"name": "应用参数",
"type": "list",
"value": [
{
"name": "repository",
"value": "\"hub.wodcloud.com/apaas/apaas-mapvideos\""
},
{
"name": "tag",
"value": "\"1.0.0\""
},
{
"name": "repository",
"value": "\"mapvideo.wodcloud.local\""
}
]
"type": "code",
"value": "repository: \"hub.wodcloud.com/apaas/apaas-mapvideos\"\ntag: \"1.0.0\"\n\nhost: \"mapvideo.wodcloud.local\""
}
],
"provider": {
......
{
"banners": [
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
],
"servicesShopInfo": [
{
"name": "服务总数",
"value": "80.5"
},
{
"name": "用户总数",
"value": "12,980.5"
},
{
"name": "接入机构",
"value": "2,980"
},
{
"name": "接入系统",
"value": "980"
},
{
"name": "服务请求次数",
"value": "1.2"
}
],
"hot_datas": [
{
"id": 0,
"title": "水路货物周转量情况",
"state": 0,
"resourceSummary": "提供水路货物周转量排名和同比增长的专题数据服务提供水路货物周转量排名和同比增长的专题数据服务提供水路货物周转量排名和同比增长的专题数据服务",
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698755",
"viewCount": 999,
"rate": 3
},
{
"id": 1,
"title": "水路货物周转量情况水路货物周转量情况",
"state": 2,
"resourceSummary": "提供水路货物周转量排名和同比增长的专题数据服务提供水路货物周转量排名和同比增长的专题数据服务提供水路货物周转量排名和同比增长的专题数据服务",
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698745",
"viewCount": 999,
"rate": 3.4
},
{
"id": 2,
"title": "水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况",
"state": 1,
"resourceSummary": "提供水路货物周转量排名和同比增长的专题数据服务提供水路货物周转量排名和同比增长的专题数据服务提供水路货物周转量排名和同比增长的专题数据服务",
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698455",
"viewCount": 999,
"rate": 2.5
},
{
"id": 3,
"title": "水路货物周转量情况",
"state": 0,
"resourceSummary": "提供水路货物周转量排名和同比增长的专题数据服务提供水路货物周转量排名和同比增长的专题数据服务提供水路货物周转量排名和同比增长的专题数据服务",
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "267455",
"viewCount": 999,
"rate": 3.7
}
],
"map_datas": [
{
"id": 0,
"img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"title": "水路货物周转量情况",
"state": 0,
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698755",
"viewCount": 999,
"rate": 3
},
{
"id": 1,
"img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"title": "水路货物周转量情况水路货物周转量情况",
"state": 2,
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698745",
"viewCount": 999,
"rate": 3.4
},
{
"id": 2,
"img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"title": "水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况",
"state": 1,
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698455",
"viewCount": 999,
"rate": 2.5
},
{
"id": 3,
"img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"title": "水路货物周转量情况",
"state": 0,
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "267455",
"viewCount": 999,
"rate": 3.7
}
],
"comprehensive_datas": [
{
"id": 0,
"img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"title": "水路货物周转量情况",
"state": 0,
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698755",
"viewCount": 999,
"rate": 3
},
{
"id": 1,
"img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"title": "水路货物周转量情况水路货物周转量情况",
"state": 2,
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698745",
"viewCount": 999,
"rate": 3.4
},
{
"id": 2,
"img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"title": "水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况水路货物周转量情况",
"state": 1,
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "2698455",
"viewCount": 999,
"rate": 2.5
},
{
"id": 3,
"img": "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
"title": "水路货物周转量情况",
"state": 0,
"provider": "提供机构提供机构提供机构",
"dataField": "经济建设",
"serviceType": "数据服务 专题数据服务 企业专题数据服务",
"updateTime": "2020-03-12 18:31:12",
"numberOfMonth": "267455",
"viewCount": 999,
"rate": 3.7
}
]
}
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