Commit 3c3362ce authored by 张俊's avatar 张俊

工作台首页跳转

parent b8fa32d3
......@@ -3,7 +3,7 @@
<div class="total_info">
<span>{{ `共${total}个条目` }}</span>
</div>
<div class="page_size_action">
<div class="page_size_action" v-if="pageSizes.length">
<span>每页行数:</span>
<el-select :value="pageSize" @change="sizeChange">
<el-option
......
......@@ -30,7 +30,7 @@
<div>规格:日访问次数:{{ cellItem.spec_svc_count }}次,日访问量:{{ cellItem.spec_svc_pv }}</div>
<div
class="cell_specification_type"
>申请方式:{{ cellItem.duration_unit == 1 ? $t('lang.byYear') : $t('lang.byMonth') }}</div>
>申请方式:{{ cellItem.duration_unit == 1 ? $t('lang.byMonth') : $t('lang.byYear') }}</div>
</div>
</el-col>
<el-col :span="4" class="approval_status">
......
......@@ -50,6 +50,7 @@
<el-table
:data="selectedTabsPage"
:size="size"
:height="height"
:border="border"
@select="select"
@select-all="selectAll"
......@@ -139,6 +140,7 @@
v-else-if="item.type == 'href'"
:header="item"
:row="scope.row"
:ids="item.id"
:detailsUrl="detailsUrl"
></v-apaas-table-umhref>
<!-- could edit -->
......@@ -264,6 +266,7 @@ export default {
"v-apaas-table-filter": TableFilter
},
props: {
height:'',
//是否滚动加载
asyn_load1: { type: Boolean, default: false },
// 表格型号:mini,medium,small
......@@ -433,6 +436,7 @@ export default {
//本地删除
deleteLocal(val) {
this.selectedTabsPage.splice(val.$index, 1);
this.$emit('changeTable',this.selectedTabsPage)
},
// get data
getDataFromApiSync() {
......
<template>
<div>
<span v-if="this.row.id" class="href" @click="goHref(baseVal)">{{ text }}</span>
<span v-if="this.row.id||ids" class="href" @click="goHref(baseVal)">{{ text }}</span>
<span v-else>{{text}}</span>
</div>
</template>
......@@ -10,7 +10,7 @@ import helper from "@/services/helper";
import format from "string-format";
export default {
props: ["header", "row", "detailsUrl"],
props: ["header", "row", "detailsUrl","ids"],
computed: {
text: function() {
let text = helper.GetProperty(this.row, this.header.prop);
......@@ -21,11 +21,22 @@ export default {
let baseVal = helper.GetProperty(this.row, "id");
return baseVal;
},
},
created(){
},
methods: {
// Jump routing using id as parameter
goHref(val) {
this.$router.push(this.detailsUrl + val)
if(this.ids){
if(this.ids.indexOf('.')==-1){
this.$router.push(this.detailsUrl + this.row[this.ids])
}else{
this.$router.push(this.detailsUrl + this.row[this.ids.split('.')[0]][this.ids.split('.')[1]])
}
}else{
this.$router.push(this.detailsUrl + val)
}
}
}
};
......
<template>
<div class="detail_contain">
<p class="now_page_title">权限管理 / 组织用户 / <span>用户管理</span></p>
<p class="now_page_title" v-if="now_user==2">权限管理 / 组织用户 / <span>用户管理</span></p>
<div class="info_contain">
<service-header
v-if="service_header_arr.name"
......@@ -39,6 +39,7 @@ import serviceHeader from "@/components/service-header";
import apassTable from "@/components/apass-table";
import dialogAction from "@/components/dialog-action";
import ListPagination from "@/components/comments-pagination";
import { mapGetters,mapState } from 'vuex'
export default {
props: [],
components: {
......@@ -52,6 +53,7 @@ export default {
table_url: "",
listTotal: 0,
currentPage: 1,
now_user: 2, //0:普通用户,1:组织管理员,2:超级管理员
pageSize: 10,
pageSizes: [10, 50, 100],
service_header_arr: {
......@@ -98,13 +100,36 @@ export default {
}, 1000);
},
},
computed: {},
computed: {
...mapGetters([
'level',
]),
...mapState(['userInfo']),
},
created() {
this.get_user();
this.get_list();
if(this.userInfo){
this.now_user = this.level
}else{
this.getCurrentUser()
}
},
mounted() {},
methods: {
getCurrentUser() {
this.$api.user.getNowUser().then(({ data }) => {
if (data.success == 1) {
console.log("--- user info ---");
console.log(data.data);
console.log("--- user info ---");
this.$store.commit("userInfofun", data.data);
this.now_user = this.level
} else {
console.log(data.errMsg);
}
});
},
changePageSize(value) {
this.pageSize = value;
this.currentPage = 1;
......
......@@ -352,7 +352,8 @@ export default {
this.$set(this.list_arr[5], "info", data.service_apply_info.business_url);
this.$set(this.list_arr[6], "info", data.service_apply_info.apply_file.split('/')[data.service_apply_info.apply_file.split('/').length - 1]);
this.$set(this.list_arr[6], "url", data.service_apply_info.apply_file);
this.$set(this.list_arr[8], "info", data.service_apply_info.duration+data.service_apply_info.duration_unit);
debugger
this.$set(this.list_arr[8], "info", data.service_apply_info.duration+(data.service_apply_info.duration_unit==1?'':''));
this.$set(this.list_arr[9], "info", "访问次数:"+data.service_apply_info.request_spcs.pv+"/日 访问量:"+data.service_apply_info.request_spcs.count+"/日");
this.id = data.service_apply_info.id
if(data.service_apply_info.approval_status!==0){
......
......@@ -608,7 +608,7 @@ export default {
);
this.$set(this.servicead_arr[2], "info", data.req_fields);
this.$set(this.servicead_arr[3], "info", data.encode_method);
this.code_arr = data.res_fields;
this.code_arr = data.res_fields_example;
this.res_data = JSON.parse(data.res_fields);
this.service_size_data = data.request_spcs_info;
this.size_arr_down = data.request_spcs_info;
......
......@@ -27,7 +27,7 @@
<div class="menu">
<div
:class="
now_user == 0
now_user == 0||now_user == 4
? 'menu_box0'
: now_user == 1
? 'menu_box1'
......@@ -64,12 +64,12 @@
</div>
<!-- 普通用户--数据分析 -->
<div class="case_box" v-if="now_user == 0">
<div class="case_box" v-if="now_user == 0||now_user == 4">
<div class="data_asy">
<p
style="margin-top:20px;margin-bottom:10px;font-size:18px;color: #0d1847;font-weight:600;padding-left:20px;"
>
数据分析中心
云资源概况分析
<img
style="vertical-align:-9px;"
src="@/assets/imgs/home_btn_enter.png"
......@@ -77,13 +77,19 @@
/>
</p>
<div class="data_charts">
<div class="data_charts_left">
<p><span></span> 服务健康状态</p>
<div :id="health" class="health"></div>
</div>
<div class="data_charts_right">
<p><span></span> 服务运营分析</p>
<div :id="yy_asy" class="yy_asy"></div>
<div class="data_charts_left" style="width:100%;">
<p><span></span>
服务健康状态
<el-select style="float:right;" v-model="fw_value" placeholder="请选择">
<el-option
v-for="item in fw_options"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</p>
<div :id="health" class="health" style="width:calc(100% - 40px)"></div>
</div>
</div>
</div>
......@@ -179,11 +185,11 @@
<!-- 普通用户/组织管理员--服务 -->
<div class="case_box">
<div class="data_asy" :style="now_user == 0 ? {} : { width: '590px' }">
<div class="data_asy" :style="now_user == 0||now_user == 4 ? {} : { width: '590px' }">
<p
style="margin-top:20px;margin-bottom:10px;font-size:18px;color: #0d1847;font-weight:600;padding-left:20px;"
>
{{ now_user == 0 ? "我的服务" : "服务管理" }}
{{ now_user == 0||now_user == 4 ? "我的服务" : "服务管理" }}
<img
style="vertical-align:-9px;cursor: pointer;"
src="@/assets/imgs/home_btn_enter.png"
......@@ -202,27 +208,36 @@
? { borderBottom: '4px solid #f5ab4c', color: '#e56600' }
: {}
"
@click="now_type = index"
@click="change_now_type(index)"
>
{{ item }}
</div>
<div class="myservice_btn" v-if="now_user == 0" @click="gotozc()">
<div class="myservice_btn" v-if="now_user == 0||now_user == 4" @click="gotozc()">
<img src="@/assets/imgs/home_ic_release.png" alt />&nbsp; 服务注册
</div>
</div>
<table-um
:headers="service_head[now_user][now_type]"
:url="service_url_arr[now_user][now_type]"
:paginationShow="true"
:datas="service_data"
:stripe="true"
height="285"
:detailsUrl="detailsUrl[now_user][now_type]"
@distribut="distribut"
></table-um>
<list-pagination
:total="listTotal"
:page-size="pageSize"
:page-sizes="[]"
:current-page="currentPage"
@current-change="changeCurrentPage"
></list-pagination>
</div>
</div>
<div class="online_tool" :style="now_user == 0 ? {} : { width: '590px' }">
<div class="online_tool" :style="now_user == 0||now_user == 4 ? {} : { width: '590px' }">
<p
style="margin-top:20px;margin-bottom:10px;font-size:18px;color: #0d1847;font-weight:600;padding-left:20px;"
>
{{ now_user == 0 ? "我的应用" : "平台应用" }}
{{ now_user == 0||now_user == 4 ? "我的应用" : "平台应用" }}
<img
@click="gotoyy"
style="vertical-align:-9px;"
......@@ -241,28 +256,38 @@
? { borderBottom: '4px solid #f5ab4c', color: '#e56600' }
: {}
"
@click="now_app = index"
@click="change_now_app(index)"
>
{{ item }}
</div>
</div>
<el-scrollbar class="myapp_contain" v-if="now_user == 0">
<el-scrollbar class="myapp_contain" v-if="now_user == 0||now_user == 4">
<div
v-for="(item, index) in app_arr"
:key="index + 600"
class="myapp_box"
@click="gotopage(item.app_id,item.deploy_id)"
>
<img :src="item.pic" alt style="width:60px;height:60px;" />
<p>{{ item.name }}</p>
<p>{{ item.version }}</p>
<img :src="item.logo" alt style="width:60px;height:60px;" />
<p>{{ item.app_name||item.deploy_name }}</p>
<p>{{ item.version||item.app_version }}</p>
</div>
</el-scrollbar>
<table-um
:headers="app_head[now_user][now_app]"
:url="app_url_arr[now_user][now_app]"
:paginationShow="true"
:datas="app_data"
:stripe="true"
:detailsUrl="detailsUrl1[now_user][now_app]"
height="285"
></table-um>
<list-pagination
:total="listTotal1"
:page-size="pageSize"
:page-sizes="[]"
:current-page="currentPage1"
@current-change="changeCurrentPage1"
></list-pagination>
</div>
</div>
</div>
......@@ -272,14 +297,33 @@
<script>
import uuidv1 from "uuid/v1";
import tableUm from "@/components/table/table-um";
import ListPagination from "@/components/comments-pagination";
import helper from "@/services/helper.js";
import { getRole } from "@/utils/common";
import { mapGetters,mapState } from 'vuex'
var echarts = require("echarts");
export default {
data() {
return {
service_data:[],
app_data:[],
listTotal: 0,
currentPage: 1,
listTotal1: 0,
currentPage1: 1,
pageSize: 5,
person: "",
login_time: "",
detailsUrl:[
['/fwgl/0/0/servicedetail/','/fwgl/0/1/applyserviceedit/'],
['/fwgl/1/0/servicedetail/','/fwgl/1/1/approvalserviceedit/'],
['/fwgl/2/0/servicedetail/','/fwgl/2/1/approvalserviceedit/'],
],//服务跳转链接
detailsUrl1:[
['/yygl/0/0/detail/','/yygl/0/1/deploydetail/'],
['/yygl/1/0/detail/','/yygl/1/2/approvaldetail/'],
['/yygl/2/0/detail/','/yygl/2/2/approvaldetail/'],
],//应用跳转链接
now_user: 2, //0:普通用户,1:组织管理员,2:超级管理员
now_type: 0,
now_app: 0,
......@@ -299,37 +343,39 @@ export default {
label: "应用总数",
},
],
app_url_arr: [[], ["creat_app", "check_app"], ["creat_app", "check_app"]],
app_url_arr: [['/apaas/hubApi/market/list','/apaas/hubApi/market/deployList'], ["/apaas/hubApi/market/list", "/apaas/hubApi/market/applyList"], ["/apaas/hubApi/market/list", "/apaas/hubApi/market/applyList"]],
app_head: [
[],
[
[
{
prop: "yymc",
prop: "app_name",
label: "应用名称",
width: "90px",
align: "left",
type:'href',
id:'app_id'
},
{
prop: "yylx",
prop: "type_name",
label: "应用类型",
width: "120px",
align: "center",
},
{
prop: "yybb",
prop: "version",
label: "应用版本",
width: "80px",
align: "center",
},
{
prop: "yycjsj",
prop: "create_date",
label: "应用创建时间",
width: "160px",
align: "center",
},
{
prop: "yybscs",
prop: "deploy_times",
label: "被部署次数",
width: "100px",
align: "center",
......@@ -337,31 +383,33 @@ export default {
],
[
{
prop: "yymc",
prop: "app_name",
label: "应用名称",
width: "90px",
align: "left",
type:'href',
id:'id'
},
{
prop: "yylx",
prop: "type_name",
label: "应用类型",
width: "120px",
align: "center",
},
{
prop: "yybb",
prop: "version",
label: "应用版本",
width: "80px",
align: "center",
},
{
prop: "yyspsj",
prop: "time",
label: "应用审批时间",
width: "160px",
align: "center",
},
{
prop: "spzt",
prop: "apply_status",
label: "审批状态",
width: "100px",
align: "center",
......@@ -371,31 +419,33 @@ export default {
[
[
{
prop: "yymc",
prop: "app_name",
label: "应用名称",
width: "90px",
align: "left",
type:'href',
id:'app_id'
},
{
prop: "yylx",
prop: "type_name",
label: "应用类型",
width: "120px",
align: "center",
},
{
prop: "yybb",
prop: "version",
label: "应用版本",
width: "80px",
align: "center",
},
{
prop: "yycjsj",
prop: "create_date",
label: "应用创建时间",
width: "160px",
align: "center",
},
{
prop: "yybscs",
prop: "deploy_times",
label: "被部署次数",
width: "100px",
align: "center",
......@@ -403,31 +453,33 @@ export default {
],
[
{
prop: "yymc",
prop: "app_name",
label: "应用名称",
width: "90px",
align: "left",
type:'href',
id:'id'
},
{
prop: "yylx",
prop: "type_name",
label: "应用类型",
width: "120px",
align: "center",
},
{
prop: "yybb",
prop: "version",
label: "应用版本",
width: "80px",
align: "center",
},
{
prop: "yyspsj",
prop: "time",
label: "应用审批时间",
width: "160px",
align: "center",
},
{
prop: "spzt",
prop: "apply_status",
label: "审批状态",
width: "100px",
align: "center",
......@@ -437,37 +489,38 @@ export default {
],
service_url_arr: [
[
"nor_service_list",
"nor_apply_service",
"nor_service_sh",
"nor_cloud",
"/apaas/service/v3/service/manager/list",
"/apaas/service/v3/service/apply/service/list",
"/apaas/service/v3/service/manager/list",
],
["nor_service_list", "nor_service_sh", "nor_cloud"],
["nor_service_list", "nor_service_sh", "nor_cloud_manage"],
["/apaas/service/v3/service/manager/list", "/apaas/service/v3/service/approval/applied/list", "nor_cloud"],
["/apaas/service/v3/service/manager/list", "/apaas/service/v3/service/approval/applied/list", "nor_cloud_manage"],
],
service_head: [
[
[
{
prop: "fwmc",
prop: "name",
label: "服务名称",
width: "250px",
align: "left",
type:'href',
id:'id',
},
{
prop: "fwlx",
prop: "data_service_type1_name",
label: "服务类型",
width: "120px",
align: "center",
},
{
prop: "zcfbsj",
prop: "create_time",
label: "注册发布时间",
width: "200px",
align: "center",
},
{
prop: "bdycs",
prop: "request_count",
label: "被调用次数",
width: "110px",
align: "center",
......@@ -475,25 +528,27 @@ export default {
],
[
{
prop: "fwmc",
prop: "name",
label: "服务名称",
width: "250px",
align: "left",
type:'href',
id:'id',
},
{
prop: "fwlx",
prop: "data_service_type1_name",
label: "服务类型",
width: "120px",
align: "center",
},
{
prop: "sqsj",
prop: "apply_time",
label: "申请时间",
width: "200px",
align: "center",
},
{
prop: "sqspzt",
prop: "approval_status",
label: "申请审批状态",
width: "110px",
align: "center",
......@@ -567,25 +622,27 @@ export default {
[
[
{
prop: "fwmc",
prop: "name",
label: "服务名称",
width: "140px",
align: "left",
type:'href',
id:'id'
},
{
prop: "fwlx",
prop: "data_service_type1_name",
label: "服务类型",
width: "120px",
align: "center",
},
{
prop: "zcfbsj",
prop: "create_time",
label: "注册发布时间",
width: "180px",
align: "center",
},
{
prop: "bdycs",
prop: "request_count",
label: "被调用次数",
width: "110px",
align: "center",
......@@ -593,25 +650,27 @@ export default {
],
[
{
prop: "fwmc",
prop: "name",
label: "服务名称",
width: "140px",
align: "left",
type:'href',
id:'service_apply_info.id'
},
{
prop: "fwlx",
prop: "data_service_type1_name",
label: "服务类型",
width: "120px",
align: "center",
},
{
prop: "spsj",
prop: "approval_time",
label: "审批时间",
width: "180px",
align: "center",
},
{
prop: "spzt",
prop: "approval_status",
label: "审批状态",
width: "110px",
align: "center",
......@@ -669,25 +728,27 @@ export default {
[
[
{
prop: "fwmc",
prop: "name",
label: "服务名称",
width: "140px",
align: "left",
type:'href',
id:'id'
},
{
prop: "fwlx",
prop: "data_service_type1_name",
label: "服务类型",
width: "120px",
align: "center",
},
{
prop: "zcfbsj",
prop: "create_time",
label: "注册发布时间",
width: "180px",
align: "center",
},
{
prop: "bdycs",
prop: "request_count",
label: "被调用次数",
width: "110px",
align: "center",
......@@ -695,25 +756,27 @@ export default {
],
[
{
prop: "fwmc",
prop: "name",
label: "服务名称",
width: "140px",
type:'href',
id:'service_apply_info.id',
align: "left",
},
{
prop: "fwlx",
prop: "data_service_type1_name",
label: "服务类型",
width: "120px",
align: "center",
},
{
prop: "spsj",
prop: "approval_time",
label: "审批时间",
width: "180px",
align: "center",
},
{
prop: "spzt",
prop: "approval_status",
label: "审批状态",
width: "110px",
align: "center",
......@@ -889,14 +952,14 @@ export default {
},
],
service_arr: [
["服务列表", "申请服务", "服务审批", "云资源"],
["服务列表", "申请服务", "云资源"],
["服务列表", "服务审批", "云资源管理"],
["服务列表", "服务审批", "云资源管理"],
],
apptype_arr: [
["部署的应用", "创新的应用"],
["创新应用", "应用审批"],
["创新应用", "应用审批"],
["应用仓库", "部署的应用"],
["应用仓库", "应用审批"],
["应用仓库", "应用审批"],
],
app_arr: [],
manage_arr: [
......@@ -927,6 +990,7 @@ export default {
},
components: {
tableUm,
ListPagination,
},
computed: {
...mapGetters([
......@@ -936,7 +1000,6 @@ export default {
},
created() {
this.getUserData();
this.getAppData();
},
mounted() {
console.log(this.level);
......@@ -949,9 +1012,99 @@ export default {
}
},
methods: {
gotopage(id,deploy){
if(deploy){
this.$router.push(this.detailsUrl1[0][1]+deploy)
}else{
this.$router.push(this.detailsUrl1[0][0]+id)
}
},
change_now_app(val){
this.now_app = val
this.currentPage1 = 1
this.get_app_list()
},
change_now_type(val){
this.now_type = val
this.currentPage = 1
this.get_service_list()
},
changeCurrentPage(value) {
this.currentPage = value;
this.get_service_list();
},
changeCurrentPage1(value) {
this.currentPage1 = value;
this.get_app_list();
},
get_app_list(){
this.$http
.get(`${this.app_url_arr[this.now_user][this.now_app]}?page=${this.currentPage1}&limit=${this.now_user==0||this.now_user==4?10000:this.pageSize}`)
.then((response) => {
if(!response.data.success){
return
}
let data = response.data.data;
if(this.now_user==0||this.now_user==4){
this.app_arr = data;
}else{
this.app_data = data
this.app_data.forEach(e => {
if(e.create_date){
e.create_date = e.create_date.split('.')[0].replace('T'," ")
}
});
this.listTotal1 = response.data.total
}
})
},
get_service_list(){
this.$http
.get(`${this.service_url_arr[this.now_user][this.now_type]}?page=${this.currentPage}&size=${this.pageSize}`)
.then((response) => {
console.log(response);
if(!response.data.success){
return
}
let data = response.data.data;
this.service_data = data.data
this.service_data.forEach(e => {
if(e.create_time){
e.create_time = e.create_time.split('+')[0].replace('T'," ")
}
if(e.service_apply_info&&e.service_apply_info.approval_time){
e.approval_time = helper.dateStringTransform(e.service_apply_info.approval_time)
}else{
e.approval_time = ''
}
if(e.service_apply_info&&e.service_apply_info.apply_time){
e.apply_time = helper.dateStringTransform(e.service_apply_info.apply_time)
}else{
e.apply_time = ''
}
if(e.service_apply_info&&e.service_apply_info.approval_status){
if(this.now_user!==0&&this.now_user!==4){
e.approval_status = ["-", "已审批", "待审批"][e.service_apply_info.approval_status]
}else{
e.approval_status = ["-", "待审批", "审批中", "审批通过", "审批未通过"][e.service_apply_info.approval_status]
}
}else{
e.approval_status = ''
}
});
this.listTotal = data.total
})
.catch(function(response) {});
},
init_func(){
this.getInfoData();
if (this.now_user == 0) {
this.get_service_list()
this.get_app_list()
if (this.now_user == 0||this.now_user == 4) {
this.getHealth();
this.getoperatingdata();
} else if (this.now_user == 1) {
......@@ -1037,11 +1190,13 @@ export default {
},
getyylxdata() {
this.$http
.get("/static/workpalce.json")
.get("/apaas/hubApi/index/appTypesAnalysis")
.then((response) => {
console.log(response);
let data = response.data.data;
this.init_yylx_asy(data.yylxdata);
if(response.data.success){
let data = response.data.data;
this.init_yylx_asy(data.series[0].data);
}
})
.catch(function(response) {});
},
......@@ -1209,8 +1364,8 @@ export default {
);
window[this.yylx_asy].setOption(options, true);
},
init_circle(data) {
var scaleData = data;
init_circle(data_val) {
// var data_val = data_val;
var rich = {
white: {
color: "#ddd",
......@@ -1234,11 +1389,15 @@ export default {
var data = [];
var color = ["#515fe7", "#36a5ec", "#da9f2a", "#23b2a7", "#d46002"];
var legendarr = [];
for (var i = 0; i < scaleData.length; i++) {
var temp2_data = 0
data_val.forEach(e => {
temp2_data = temp2_data + e.value
});
for (var i = 0; i < data_val.length; i++) {
data.push(
{
value: scaleData[i].value,
name: scaleData[i].name,
value: data_val[i].value,
name: data_val[i].name,
itemStyle: {
normal: {
borderWidth: 5,
......@@ -1249,12 +1408,12 @@ export default {
},
},
{
value: 2,
value: temp2_data/10,
name: "",
itemStyle: placeHolderStyle,
}
);
legendarr.push(scaleData[i].name);
legendarr.push(data_val[i].name);
}
var seriesObj = [
{
......@@ -1273,8 +1432,8 @@ export default {
formatter: function(params) {
var percent = 0;
var total = 0;
for (var i = 0; i < scaleData.length; i++) {
total += scaleData[i].value;
for (var i = 0; i < data_val.length; i++) {
total += data_val[i].value;
}
percent = ((params.value / total) * 100).toFixed(0);
if (params.name !== "") {
......@@ -1722,6 +1881,7 @@ export default {
float: left;
margin: 10px 20px 40px 0px;
text-align: center;
cursor: pointer;
}
.myapp_contain .myapp_box:nth-of-type(3n) {
margin-right: 0;
......
......@@ -70,23 +70,23 @@
"fwlxdata":[
{
"name": "数据服务",
"value": 10
"value": 40
},
{
"name": "感知服务",
"value": 10
"value": 3
},
{
"name": "视频服务",
"value": 10
"value": 2
},
{
"name": "时空服务",
"value": 10
"value": 50
},
{
"name": "综合服务",
"value": 10
"value": 0
}
],
"yylxdata":[
......
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