Commit b6d9024e authored by 张俊's avatar 张俊

合并

parents aee76340 803d7b95
...@@ -10,7 +10,7 @@ import bdMenu from "./components/menu"; ...@@ -10,7 +10,7 @@ import bdMenu from "./components/menu";
export default { export default {
data: () => ({}), data: () => ({}),
components: { components: {
bdMenu, bdMenu
}, },
methods: { methods: {
getCurrentUser() { getCurrentUser() {
...@@ -20,15 +20,18 @@ export default { ...@@ -20,15 +20,18 @@ export default {
console.log(data.data); console.log(data.data);
console.log("--- --- ---"); console.log("--- --- ---");
this.$store.commit("userInfofun", data.data); this.$store.commit("userInfofun", data.data);
if (data.data.is_admin == 1 || data.data.is_admin == 2) {
this.$router.push({ name: "workPlace" });
}
} else { } else {
console.log(data.errMsg); console.log(data.errMsg);
} }
}); });
}, }
}, },
created() { created() {
this.getCurrentUser(); this.getCurrentUser();
}, }
}; };
</script> </script>
......
...@@ -110,7 +110,7 @@ export default { ...@@ -110,7 +110,7 @@ export default {
this.$http this.$http
.get("/apaas/service/v3/resource/apply/distributionDisplay", { .get("/apaas/service/v3/resource/apply/distributionDisplay", {
params: { params: {
apply_id: apply_id, apply_id: apply_id
}, },
}) })
.then(({ data }) => { .then(({ data }) => {
...@@ -146,7 +146,7 @@ export default { ...@@ -146,7 +146,7 @@ export default {
params: { params: {
id: this.detail.id, id: this.detail.id,
user_id: this.detail.user_id, user_id: this.detail.user_id,
namespace:this.detail.namespace namespace: this.detail.namespace
}, },
}) })
.then(({ data }) => { .then(({ data }) => {
......
...@@ -16,8 +16,8 @@ export default { ...@@ -16,8 +16,8 @@ export default {
} }
}, },
bar_width: { bar_width: {
type: String, type: Number,
default: "12px" default: 12
}, },
colors: { colors: {
type: Array, type: Array,
...@@ -32,8 +32,12 @@ export default { ...@@ -32,8 +32,12 @@ export default {
} }
}, },
show_split: { show_split: {
typr: Boolean, type: Boolean,
default: false default: false
},
x_router: {
type: Number,
default: 0
} }
}, },
data: () => ({}), data: () => ({}),
...@@ -60,7 +64,7 @@ export default { ...@@ -60,7 +64,7 @@ export default {
fontSize: 12 fontSize: 12
}, },
interval: 0, interval: 0,
rotate: 30, rotate: self.x_router,
formatter: function(value) { formatter: function(value) {
let valueTxt = ""; let valueTxt = "";
if (value.length > 6) { if (value.length > 6) {
......
...@@ -100,9 +100,9 @@ export default { ...@@ -100,9 +100,9 @@ export default {
self.data.data > 75 self.data.data > 75
? "#00beb2" //green ? "#00beb2" //green
: self.data.data > 50 : self.data.data > 50
? "#ff7200" //yellow ? "#38aef9" //blue
: self.data.data > 25 : self.data.data > 25
? "#da4251" //red ? "#ff7200" //yellow
: "#da4251" //red : "#da4251" //red
} }
} }
...@@ -167,9 +167,9 @@ export default { ...@@ -167,9 +167,9 @@ export default {
: self.data.data > 75 : self.data.data > 75
? "#d5f7e8" ? "#d5f7e8"
: self.data.data > 50 : self.data.data > 50
? "#ffd98f" ? "#e5f4fe"
: self.data.data > 25 : self.data.data > 25
? "#f7f1d5" ? "#ffd98f"
: "#f7f1d5" : "#f7f1d5"
}, },
{ {
...@@ -186,9 +186,9 @@ export default { ...@@ -186,9 +186,9 @@ export default {
: self.data.data > 75 : self.data.data > 75
? "#00beb2" //green ? "#00beb2" //green
: self.data.data > 50 : self.data.data > 50
? "#ff7200" //yellow ? "#38aef9" //blue
: self.data.data > 25 : self.data.data > 25
? "#da4251" //red ? "#ff7200" //yellow
: "#da4251" //red : "#da4251" //red
} }
]) ])
......
...@@ -17,9 +17,7 @@ export default { ...@@ -17,9 +17,7 @@ export default {
} }
} }
}, },
data: () => ({ data: () => ({}),
navList: []
}),
mounted() {}, mounted() {},
methods: { methods: {
graph() { graph() {
...@@ -95,7 +93,7 @@ export default { ...@@ -95,7 +93,7 @@ export default {
lineStyle: { lineStyle: {
width: 2, width: 2,
color: "#274fee", color: "#274fee",
shadowColor: "rgb(39, 79, 238, 0.3)", shadowColor: "rgb(39, 79, 238, 0.4)",
shadowBlur: 5, shadowBlur: 5,
shadowOffsetY: 8 shadowOffsetY: 8
} }
...@@ -112,7 +110,7 @@ export default { ...@@ -112,7 +110,7 @@ export default {
lineStyle: { lineStyle: {
width: 2, width: 2,
color: "#ef9433", color: "#ef9433",
shadowColor: "rgb(239, 148, 51, 0.3)", shadowColor: "rgb(239, 148, 51, 0.4)",
shadowBlur: 5, shadowBlur: 5,
shadowOffsetY: 8 shadowOffsetY: 8
} }
......
<template>
<chart :options="water()" class="water" />
</template>
<script>
import { graphic } from "echarts/lib/export";
export default {
props: {
data: {
type: Object,
default: () => {
return {
xaxis: [],
data: [],
legend: []
};
}
}
},
data: () => ({}),
mounted() {},
methods: {
water() {
let self = this;
return {
title: [
{
text: "支持开发",
x: "center",
y: "40%",
textStyle: {
fontSize: 14,
fontWeight: "normal",
color: "#58617a"
}
},
{
text: "不支持开发",
x: "center",
y: "90%",
textStyle: {
fontSize: 14,
fontWeight: "normal",
color: "#58617a"
}
}
],
series: [
{
type: "liquidFill",
data: [
{
name: "A",
value: 0.67,
key: 77
}
],
radius: "50%",
center: ["50%", "20%"],
outline: {
borderDistance: 2,
itemStyle: {
borderWidth: 3,
borderColor: "#274fee",
shadowBlur: 0
}
},
backgroundStyle: {
color: "#fff",
opacity: 1
},
itemStyle: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 1,
color: ["#c9d3fc"]
},
{
offset: 0,
color: ["#515fe7"]
}
],
global: false
},
opacity: 1,
shadowBlur: 0
},
label: {
normal: {
formatter: function(param) {
return "63%";
},
textStyle: {
color: "#000",
insideColor: "#000",
fontSize: 14
}
}
}
},
{
type: "liquidFill",
data: [
{
name: "A",
value: 0.67,
key: 77
}
],
radius: "50%",
center: ["50%", "70%"],
outline: {
borderDistance: 2,
itemStyle: {
borderWidth: 3,
borderColor: "#e56600",
shadowBlur: 0
}
},
backgroundStyle: {
color: "#fff",
opacity: 1
},
itemStyle: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 1,
color: ["#f9ddba"]
},
{
offset: 0,
color: ["#ef9433"]
}
],
global: false
},
opacity: 1,
shadowBlur: 0
},
label: {
normal: {
formatter: function(param) {
return "63%";
},
textStyle: {
color: "#000",
insideColor: "#000",
fontSize: 14
}
}
}
}
]
};
}
}
};
</script>
<style scoped>
.water {
width: 100%;
height: calc(100% - 20px);
}
</style>
\ No newline at end of file
...@@ -127,6 +127,7 @@ export default { ...@@ -127,6 +127,7 @@ export default {
type: "success", type: "success",
}); });
this.getImageDetail(); this.getImageDetail();
this.$emit("refresh");
} else { } else {
this.$message({ this.$message({
message: `删除失败`, message: `删除失败`,
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
:disabled="pagination.page == 1" :disabled="pagination.page == 1"
></el-button> ></el-button>
&nbsp;&nbsp;{{ pagination.page }}页 / 共{{ &nbsp;&nbsp;{{ pagination.page }}页 / 共{{
Math.floor(pagination.total / pagination.rowsPerPage) + 1 Math.ceil((pagination.total == 0 ? 1 : pagination.total) / pagination.rowsPerPage)
}} }}
<el-button <el-button
icon="el-icon-arrow-right" icon="el-icon-arrow-right"
...@@ -69,7 +69,7 @@ ...@@ -69,7 +69,7 @@
@click="handleCurrentChange(1)" @click="handleCurrentChange(1)"
:disabled=" :disabled="
pagination.page >= pagination.page >=
Math.floor(pagination.total / pagination.rowsPerPage) + 1 Math.ceil((pagination.total == 0 ? 1 : pagination.total) / pagination.rowsPerPage)
" "
></el-button> ></el-button>
</div> </div>
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
:disabled="pagination.page == 1" :disabled="pagination.page == 1"
></el-button> ></el-button>
&nbsp;&nbsp;{{ pagination.page }}页 / 共{{ &nbsp;&nbsp;{{ pagination.page }}页 / 共{{
Math.floor(pagination.total / pagination.rowsPerPage) + 1 Math.ceil((pagination.total == 0 ? 1 : pagination.total) / pagination.rowsPerPage)
}} }}
<el-button <el-button
icon="el-icon-arrow-right" icon="el-icon-arrow-right"
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
@click="handleCurrentChange(1)" @click="handleCurrentChange(1)"
:disabled=" :disabled="
pagination.page >= pagination.page >=
Math.floor(pagination.total / pagination.rowsPerPage) + 1 Math.ceil((pagination.total == 0 ? 1 : pagination.total) / pagination.rowsPerPage)
" "
></el-button> ></el-button>
</div> </div>
......
...@@ -236,7 +236,7 @@ ...@@ -236,7 +236,7 @@
:disabled="pagination.page == 1" :disabled="pagination.page == 1"
></el-button> ></el-button>
&nbsp;&nbsp;第{{ pagination.page }}页 / 共{{ &nbsp;&nbsp;第{{ pagination.page }}页 / 共{{
Math.floor(pagination.total / pagination.rowsPerPage) + 1 Math.ceil((pagination.total == 0 ? 1 : pagination.total) / pagination.rowsPerPage)
}}页 }}页
<el-button <el-button
icon="el-icon-arrow-right" icon="el-icon-arrow-right"
...@@ -245,7 +245,7 @@ ...@@ -245,7 +245,7 @@
@click="handleCurrentChange(1)" @click="handleCurrentChange(1)"
:disabled=" :disabled="
pagination.page >= pagination.page >=
Math.floor(pagination.total / pagination.rowsPerPage) + 1 Math.ceil((pagination.total == 0 ? 1 : pagination.total) / pagination.rowsPerPage)
" "
></el-button> ></el-button>
</div> </div>
......
...@@ -416,7 +416,7 @@ export default { ...@@ -416,7 +416,7 @@ export default {
<!-- Add "scoped" attribute to limit CSS to this component only --> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped> <style scoped>
.canvas { .canvas {
height: 600px; height: 100%;
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
position: relative; position: relative;
......
...@@ -39,6 +39,9 @@ import 'echarts/lib/component/polar'; // 极坐标系 ...@@ -39,6 +39,9 @@ import 'echarts/lib/component/polar'; // 极坐标系
import 'echarts/lib/chart/scatter'; // 散点图 import 'echarts/lib/chart/scatter'; // 散点图
import 'echarts/lib/component/dataZoom' import 'echarts/lib/component/dataZoom'
import liquidfill from 'echarts-liquidfill'
Vue.use(liquidfill)
import Sparkline from 'vue-sparklines' import Sparkline from 'vue-sparklines'
Vue.use(Sparkline) Vue.use(Sparkline)
......
This diff is collapsed.
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<div ref="left_1_l" class="left_1_l"> <div ref="left_1_l" class="left_1_l">
<img :src="require('@/assets/imgs/data_img_service.gif')" class="left_1_img" /> <img :src="require('@/assets/imgs/data_img_service.gif')" class="left_1_img" />
<div class="left_1_title">服务总数</div> <div class="left_1_title">服务总数</div>
<div class="left_1_num">2222</div> <div class="left_1_num">4</div>
</div> </div>
<dashboard ref="left_1_r" :data="das_data" :is_word="true" class="left_1_r"></dashboard> <dashboard ref="left_1_r" :data="das_data" :is_word="true" class="left_1_r"></dashboard>
</div> </div>
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
@changeButton="changeServiceTypeBtn" @changeButton="changeServiceTypeBtn"
class="block" class="block"
> >
<multiple-circle class="block-radius-content" :data="mult_data" :text="text"></multiple-circle> <multiple-circle class="block-radius-content" :data="mult_data" :text="text"></multiple-circle>
</block-radius> </block-radius>
</el-col> </el-col>
<el-col :span="24" class="in_block"> <el-col :span="24" class="in_block">
...@@ -58,14 +58,12 @@ ...@@ -58,14 +58,12 @@
<el-col :span="12" class="in_center"> <el-col :span="12" class="in_center">
<el-row> <el-row>
<el-col :span="24" class="in_block height_2x"> <el-col :span="24" class="in_block height_2x">
<block-radius class="block"></block-radius> <block-radius :show_header="true" title="运行拓扑图" class="block">
<Topology class="topology" :datas="topology_datas" />
</block-radius>
</el-col> </el-col>
<el-col :span="24" class="in_block"> <el-col :span="24" class="in_block">
<block-radius <block-radius :show_header="true" title="服务热门搜索" class="block">
:show_header="true"
title="服务热门搜索"
class="block"
>
<div class="block-radius-content service-hot-search"> <div class="block-radius-content service-hot-search">
<div class="left-content"> <div class="left-content">
<div class="hot-line"> <div class="hot-line">
...@@ -82,11 +80,11 @@ ...@@ -82,11 +80,11 @@
</div> </div>
</div> </div>
<div class="right-content"> <div class="right-content">
<apass-table <apass-table
class="hot-search-table" class="hot-search-table"
:header="hotSearchHeader" :header="hotSearchHeader"
:data="hotSearchData" :data="hotSearchData"
:padding-left="0" :padding-left="0"
@sort-change="hotSearchSortChange" @sort-change="hotSearchSortChange"
></apass-table> ></apass-table>
</div> </div>
...@@ -94,8 +92,8 @@ ...@@ -94,8 +92,8 @@
</block-radius> </block-radius>
</el-col> </el-col>
<el-col :span="24" class="in_block"> <el-col :span="24" class="in_block">
<block-radius <block-radius
class="block" class="block"
:show_header="true" :show_header="true"
title="服务总数变化趋势" title="服务总数变化趋势"
:buttons_arr="['近14天', '近30天']" :buttons_arr="['近14天', '近30天']"
...@@ -135,7 +133,7 @@ ...@@ -135,7 +133,7 @@
</block-radius> </block-radius>
</el-col> </el-col>
<el-col :span="24" class="in_block"> <el-col :span="24" class="in_block">
<block-radius <block-radius
:show_header="true" :show_header="true"
title="服务开放程度统计" title="服务开放程度统计"
:buttons_arr="['发布的服务', '调用的服务']" :buttons_arr="['发布的服务', '调用的服务']"
...@@ -158,10 +156,10 @@ ...@@ -158,10 +156,10 @@
class="block-radius-content" class="block-radius-content"
:data="commentlistData" :data="commentlistData"
></commentlist> ></commentlist>
<starlist <starlist
v-else v-else
class="block-radius-content" class="block-radius-content"
:options="starlistData" :options="starlistData"
style="margin-top: 30px;height: calc(100% - 51px);" style="margin-top: 30px;height: calc(100% - 51px);"
></starlist> ></starlist>
</block-radius> </block-radius>
...@@ -171,7 +169,7 @@ ...@@ -171,7 +169,7 @@
<!-- 不可横向铺满,一般为最后一行 --> <!-- 不可横向铺满,一般为最后一行 -->
<el-col :span="6" class="in_block"> <el-col :span="6" class="in_block">
<block-radius :show_header="true" title="服务来源机构分析" class="block"> <block-radius :show_header="true" title="服务来源机构分析" class="block">
<BarChart :data="bar_data_org" :colors="['#e56600', '#e56600']" /> <BarChart :data="bar_data_org" :x_router="30" :colors="['#e56600', '#e56600']" />
</block-radius> </block-radius>
</el-col> </el-col>
<el-col :span="18" class="in_block default"> <el-col :span="18" class="in_block default">
...@@ -195,6 +193,7 @@ import Commentlist from "@/components/e-charts/commentlist"; ...@@ -195,6 +193,7 @@ import Commentlist from "@/components/e-charts/commentlist";
import BarChart from "@/components/e-charts/bar-chart"; import BarChart from "@/components/e-charts/bar-chart";
import ApassTable from "@/components/apass-table"; import ApassTable from "@/components/apass-table";
import Graph from "@/components/e-charts/graph"; import Graph from "@/components/e-charts/graph";
import Topology from "@/components/topology.vue";
export default { export default {
components: { components: {
BlockRadius, BlockRadius,
...@@ -207,10 +206,10 @@ export default { ...@@ -207,10 +206,10 @@ export default {
lineChart, lineChart,
BarChart, BarChart,
ApassTable, ApassTable,
Graph Graph,
Topology
}, },
data: () => ({ data: () => ({
navList: [],
mult_data: [ mult_data: [
{ name: "基础工具", value: 40 }, { name: "基础工具", value: 40 },
{ name: "通用应用", value: 0 }, { name: "通用应用", value: 0 },
...@@ -249,8 +248,8 @@ export default { ...@@ -249,8 +248,8 @@ export default {
] ]
}, },
das_data: { das_data: {
data: 40, data: 90,
text: "健康占比", text: "健康占比"
}, },
bar_data: { bar_data: {
xaxis: [ xaxis: [
...@@ -263,7 +262,7 @@ export default { ...@@ -263,7 +262,7 @@ export default {
"01-07", "01-07",
"01-08" "01-08"
], ],
data: [100, 120, 130, 150, 160, 120, 110, 100], data: [100, 120, 130, 150, 160, 120, 110, 100]
}, },
bar_data_org: { bar_data_org: {
xaxis: [ xaxis: [
...@@ -274,9 +273,9 @@ export default { ...@@ -274,9 +273,9 @@ export default {
"01-05", "01-05",
"01-06", "01-06",
"01-07", "01-07",
"01-08", "01-08"
], ],
data: [100, 120, 130, 150, 160, 120, 110, 100], data: [100, 120, 130, 150, 160, 120, 110, 100]
}, },
toplistData: [ toplistData: [
{ {
...@@ -392,32 +391,32 @@ export default { ...@@ -392,32 +391,32 @@ export default {
hotIndex: 1, hotIndex: 1,
name: "地图视频融合服务1", name: "地图视频融合服务1",
count: 666, count: 666,
increases: 1.28, increases: 1.28
}, },
{ {
hotIndex: 2, hotIndex: 2,
name: "地图视频融合服务2", name: "地图视频融合服务2",
count: 666, count: 666,
increases: 0.03, increases: 0.03
}, },
{ {
hotIndex: 3, hotIndex: 3,
name: "地图视频融合服务3", name: "地图视频融合服务3",
count: 666, count: 666,
increases: 0.58, increases: 0.58
}, },
{ {
hotIndex: 4, hotIndex: 4,
name: "地图视频融合服务4", name: "地图视频融合服务4",
count: 666, count: 666,
increases: -0.28, increases: -0.28
}, },
{ {
hotIndex: 5, hotIndex: 5,
name: "地图视频融合服务5", name: "地图视频融合服务5",
count: 666, count: 666,
increases: -0.58, increases: -0.58
}, }
], // 热门搜索 数据 ], // 热门搜索 数据
graph_arr: { graph_arr: {
xaxis: [ xaxis: [
...@@ -435,7 +434,8 @@ export default { ...@@ -435,7 +434,8 @@ export default {
[100, 1210, 130, 1530, 160, 120, 110, 1200] [100, 1210, 130, 1530, 160, 120, 110, 1200]
], ],
legend: ["aaa1", "bbb1"] legend: ["aaa1", "bbb1"]
} },
topology_datas: {}
}), }),
mounted() { mounted() {
this.hotSearchHeader = [ this.hotSearchHeader = [
...@@ -443,19 +443,19 @@ export default { ...@@ -443,19 +443,19 @@ export default {
label: "服务排名", label: "服务排名",
type: "hot-index", type: "hot-index",
width: 100, width: 100,
align: "center", align: "center"
}, },
{ {
label: "服务名称", label: "服务名称",
prop: "name", prop: "name",
type: "button", type: "button",
callback: this.detailHotSearch, callback: this.detailHotSearch
}, },
{ {
label: "搜索次数", label: "搜索次数",
prop: "count", prop: "count",
width: 100, width: 100,
align: "center", align: "center"
}, },
{ {
label: "日涨幅", label: "日涨幅",
...@@ -463,9 +463,10 @@ export default { ...@@ -463,9 +463,10 @@ export default {
width: 100, width: 100,
sortType: "0", // 0:升序 1:降序 sortType: "0", // 0:升序 1:降序
sortable: true, sortable: true,
align: "center", align: "center"
}, }
] ];
this.getTopologyData();
}, },
methods: { methods: {
detailHotSearch(item) { detailHotSearch(item) {
...@@ -496,6 +497,12 @@ export default { ...@@ -496,6 +497,12 @@ export default {
}, },
changeServeiceTotalChangeBtn(index) { changeServeiceTotalChangeBtn(index) {
console.log("服务总数变化趋势: " + index); console.log("服务总数变化趋势: " + index);
console.log(index);
},
getTopologyData() {
this.$api.workbench.getServiceTopology().then(response => {
this.topology_datas = response.data.elements;
});
} }
} }
}; };
...@@ -533,7 +540,7 @@ export default { ...@@ -533,7 +540,7 @@ export default {
width: 40%; width: 40%;
height: 100%; height: 100%;
display: inline-block; display: inline-block;
padding: 20px 0 0 0; padding: 10px 0 0 0;
} }
.left_1_title { .left_1_title {
width: 100%; width: 100%;
...@@ -597,10 +604,14 @@ export default { ...@@ -597,10 +604,14 @@ export default {
height: calc(100% - 36px); height: calc(100% - 36px);
background-color: pink; background-color: pink;
} }
.topology {
width: 100%;
height: calc(100% - 20px);
}
</style> </style>
<style> <style>
.hot-search-table .el-table td, .hot-search-table .el-table td,
.hot-search-table .el-table th { .hot-search-table .el-table th {
padding: 6px 0; padding: 6px 0;
} }
......
...@@ -322,25 +322,25 @@ export default { ...@@ -322,25 +322,25 @@ export default {
header_arr: [ header_arr: [
{ {
prop: "name", prop: "name",
label: "微服务名称", label: "字段编码",
minWidth: "20%", minWidth: "20%",
align: "left" align: "left"
}, },
{ {
prop: "is_sensituve", prop: "show_type",
label: "健康状态", label: "字段类型",
width: "120px", width: "120px",
align: "center" align: "center"
}, },
{ {
prop: "is_must", prop: "label",
label: "接口链接", label: "字段名称",
minWidth: "40%", minWidth: "40%",
align: "center" align: "center"
}, },
{ {
prop: "descript", prop: "descript",
label: "微服务描述", label: "字段说明",
minWidth: "40%", minWidth: "40%",
align: "left" align: "left"
} }
......
...@@ -15,7 +15,6 @@ export default { ...@@ -15,7 +15,6 @@ export default {
OrderList OrderList
}, },
data: () => ({ data: () => ({
navList: []
}), }),
mounted() {}, mounted() {},
methods: {} methods: {}
......
...@@ -268,7 +268,10 @@ ...@@ -268,7 +268,10 @@
完成 完成
</el-button> </el-button>
</div> </div>
<image-detail ref="imageDetail"></image-detail> <image-detail
ref="imageDetail"
@refresh="refreshImageList"
></image-detail>
</app-build-step> </app-build-step>
<template slot="action"> <template slot="action">
...@@ -451,7 +454,6 @@ export default { ...@@ -451,7 +454,6 @@ export default {
message: `提交成功`, message: `提交成功`,
type: "success", type: "success",
}); });
this.step2Loading = false;
this.step = 2; this.step = 2;
this.app_id = response.data; this.app_id = response.data;
...@@ -463,8 +465,9 @@ export default { ...@@ -463,8 +465,9 @@ export default {
message: response.errMsg || `提交失败`, message: response.errMsg || `提交失败`,
type: "warning", type: "warning",
}); });
this.step2Loading = false;
} }
this.step2Loading = false;
}, },
deployUploadError() { deployUploadError() {
this.$message({ this.$message({
...@@ -530,19 +533,17 @@ export default { ...@@ -530,19 +533,17 @@ export default {
}); });
this.image_info.image_name = ""; this.image_info.image_name = "";
this.image_info.tag = ""; this.image_info.tag = "";
this.image_info.file = ""; this.refreshImageList();
this.$refs.step1_upload.clearFiles();
this.addImageLoading = false;
this.image_datas = [];
this.image_page = 1;
this.initImageList();
} else { } else {
this.$message({ this.$message({
message: response.errMsg || `上传镜像失败`, message: response.errMsg || `上传镜像失败`,
type: "warning", type: "warning",
}); });
this.addImageLoading = false;
} }
this.image_info.file = "";
this.$refs.step1_upload.clearFiles();
this.addImageLoading = false;
}, },
imageUploadError() { imageUploadError() {
this.$message({ this.$message({
...@@ -569,16 +570,14 @@ export default { ...@@ -569,16 +570,14 @@ export default {
this.dialogInfo.msg = "是否删除该镜像?"; this.dialogInfo.msg = "是否删除该镜像?";
this.dialogInfo.submit = () => { this.dialogInfo.submit = () => {
this.$http this.$http
.delete(`/apaas/hubApi/image/del/${item.name}`) .delete(`/apaas/hubApi/image/del/${item.name}?app_id=${this.app_id}`)
.then((response) => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.$message({ this.$message({
message: `删除成功`, message: `删除成功`,
type: "success", type: "success",
}); });
this.image_datas = []; this.refreshImageList();
this.image_page = 1;
this.initImageList();
} else { } else {
this.$message({ this.$message({
message: `删除失败`, message: `删除失败`,
...@@ -599,7 +598,7 @@ export default { ...@@ -599,7 +598,7 @@ export default {
showImageDetail(item) { showImageDetail(item) {
this.$refs.imageDetail.showDialog({ this.$refs.imageDetail.showDialog({
...item, ...item,
app_id: this.app_id app_id: this.app_id,
}); });
}, },
stepsDone() { stepsDone() {
...@@ -607,19 +606,30 @@ export default { ...@@ -607,19 +606,30 @@ export default {
}, },
deployAction() { deployAction() {
// 跳转至应用详情进行部署操作 // 跳转至应用详情进行部署操作
this.$router.push( this.$router.push(`/yygl/0/0/detail/${this.app_id}`);
`/yygl/0/0/detail/${this.app_id}`
);
}, },
backToList() { backToList() {
this.$router.push(`/yygl/0/0`); this.$router.push(`/yygl/0/0`);
}, },
refreshImageList() {
this.image_datas = [];
this.image_page = 1;
this.initImageList();
},
}, },
mounted() { mounted() {
this.getYwlys(); this.getYwlys();
this.getTypes(); this.getTypes();
this.getOrgs(); this.getOrgs();
this.$api.user.getNowUser().then(({ data }) => {
if (data.success == 1) {
this.app_info.org = data.data.department_id;
} else {
console.log(data.errMsg);
}
});
this.image_headers = [ this.image_headers = [
{ {
label: "镜像名称", label: "镜像名称",
......
...@@ -912,6 +912,7 @@ export default { ...@@ -912,6 +912,7 @@ export default {
label: "用户申请时间", label: "用户申请时间",
prop: "apply_time", prop: "apply_time",
align: "center", align: "center",
width: 180,
}, },
{ {
label: "操作", label: "操作",
...@@ -921,11 +922,15 @@ export default { ...@@ -921,11 +922,15 @@ export default {
actionList: [ actionList: [
{ {
getLabel(item) { getLabel(item) {
return item.use_uid !== "" ? "已分配" : "分配"; if (item.approve_state !== 1) {
return "";
}
return (item.approve_state === 1 && item.use_uid === "") ? "分配" : "已分配";
}, },
callback: this.cloudAllot, callback: this.cloudAllot,
disabledRule(item) { disabledRule(item) {
return item.use_uid !== ""; return !(item.approve_state === 1 && item.use_uid === "");
}, },
}, },
], ],
......
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
<el-button v-if="activeBtn == 1" @click="clickFwcs()" class="fwcs_btn_fwcs">服务测试</el-button> <el-button v-if="activeBtn == 1" @click="clickFwcs()" class="fwcs_btn_fwcs">服务测试</el-button>
</div> </div>
</div> </div>
<div v-if="activeBtn == 4"> <div v-if="activeBtn == 4 && zhyyVal != 34">
<el-tabs v-model="activeZh" class="fwcs_tabs" @tab-click="clickTab"> <el-tabs v-model="activeZh" class="fwcs_tabs" @tab-click="clickTab">
<el-tab-pane label="请求参数" name="0"> <el-tab-pane label="请求参数" name="0">
<ces-table <ces-table
......
...@@ -57,8 +57,10 @@ ...@@ -57,8 +57,10 @@
<p <p
style="margin-top:20px;margin-bottom:10px;font-size:18px;color: #0d1847;font-weight:600;padding-left:20px;" style="margin-top:20px;margin-bottom:10px;font-size:18px;color: #0d1847;font-weight:600;padding-left:20px;"
> >
云资源概况分析 <span style="cursor:pointer;" @click="$router.push('/data_analysis')">
<img style="vertical-align:-9px;" src="@/assets/imgs/home_btn_enter.png" alt /> <span style="display: inline-block;vertical-align:middle;">数据分析中心</span>
<img style="vertical-align:middle;" src="@/assets/imgs/home_btn_enter.png" />
</span>
</p> </p>
<div class="data_charts"> <div class="data_charts">
<div class="charts_box" :style="now_chart==0?'':{marginLeft:'-720px'}"> <div class="charts_box" :style="now_chart==0?'':{marginLeft:'-720px'}">
...@@ -124,7 +126,7 @@ ...@@ -124,7 +126,7 @@
v-for="(item, index) in online_tool_arr" v-for="(item, index) in online_tool_arr"
:key="index + 300" :key="index + 300"
class="online_box" class="online_box"
@click="goto_online_page(item.url,index)" @click="goto_online_page(item.url,index,undefined,item.target)"
@mouseenter="enter_online_tool(index)" @mouseenter="enter_online_tool(index)"
@mouseleave="leave_online_tool()" @mouseleave="leave_online_tool()"
:style="now_online==index&&item.move_bg?{backgroundColor:item.move_bg}:{ backgroundColor: item.bg }" :style="now_online==index&&item.move_bg?{backgroundColor:item.move_bg}:{ backgroundColor: item.bg }"
...@@ -960,10 +962,12 @@ export default { ...@@ -960,10 +962,12 @@ export default {
], ],
online_tool_arr: [ online_tool_arr: [
{ {
text: "智能", text: "智能",
pic: require("@/assets/imgs/home_tool_ic_znht.png"), pic: require("@/assets/imgs/home_tool_ic_znht.png"),
bg: "#e5f4fe", bg: "#e5f4fe",
color: "#38aef9" color: "#38aef9",
url: "https://apaasgis.wodcloud.com/portal/geoplat/viewer/mapViewer.html",
target: 1
}, },
{ {
text: "数据开发", text: "数据开发",
...@@ -981,13 +985,17 @@ export default { ...@@ -981,13 +985,17 @@ export default {
text: "流程设计", text: "流程设计",
pic: require("@/assets/imgs/home_tool_ic_lcsj.png"), pic: require("@/assets/imgs/home_tool_ic_lcsj.png"),
bg: "#e6ebfe", bg: "#e6ebfe",
color: "#515fe7" color: "#515fe7",
url: "https://apaas.wodcloud.com/lcgl/index.html#/",
target: 1
}, },
{ {
text: "可视化", text: "可视化",
pic: require("@/assets/imgs/home_tool_ic_kshbb.png"), pic: require("@/assets/imgs/home_tool_ic_kshbb.png"),
bg: "#fff2e2", bg: "#fff2e2",
color: "#ea7d19" color: "#ea7d19",
url: "https://apaas.wodcloud.com/bi/",
target: 1
}, },
{ {
text: "模板应用", text: "模板应用",
...@@ -1143,9 +1151,13 @@ export default { ...@@ -1143,9 +1151,13 @@ export default {
} }
}); });
}, },
goto_online_page(url,index,idx){ goto_online_page(url,index,idx,target){
if(url){ if(url){
this.$router.push(url); if (target==1) {
window.open(url);
} else {
this.$router.push(url);
}
} }
}, },
get_service_list() { get_service_list() {
......
...@@ -57,11 +57,10 @@ ...@@ -57,11 +57,10 @@
:data="image_arr" :data="image_arr"
:padding-left="60" :padding-left="60"
></apass-table> ></apass-table>
<p style="text-align: center" v-if="image_loading">加载中...</p> <p style="text-align: center;line-height: 36px;" v-if="image_loading">
<p 加载中...
style="text-align: center" </p>
v-if="image_noMore && image_arr.length > 0" <p style="text-align: center;line-height: 36px;" v-if="image_noMore">
>
没有更多了 没有更多了
</p> </p>
</div> </div>
...@@ -198,7 +197,7 @@ ...@@ -198,7 +197,7 @@
ref="myConfirm" ref="myConfirm"
:confirmOptions="tipsOptions" :confirmOptions="tipsOptions"
></dialog-action> ></dialog-action>
<image-detail ref="imageDetail"></image-detail> <image-detail ref="imageDetail" @refresh="refreshImageList"></image-detail>
</div> </div>
</template> </template>
...@@ -488,12 +487,11 @@ export default { ...@@ -488,12 +487,11 @@ export default {
this.$message.error("上传失败"); this.$message.error("上传失败");
}, },
load_data() { load_data() {
console.log(2222);
this.asynLoad = false; this.asynLoad = false;
if (5 * this.now_page < this.total) { if (5 * this.now_page < this.total) {
this.now_page = this.now_page + 1; this.now_page = this.now_page + 1;
this.get_image_list(); this.get_image_list();
} else { } else if (this.total > 0) {
this.image_noMore = true; this.image_noMore = true;
} }
}, },
...@@ -534,9 +532,7 @@ export default { ...@@ -534,9 +532,7 @@ export default {
.then((response) => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.$message.success("删除成功"); this.$message.success("删除成功");
this.now_page = 1; this.refreshImageList();
this.image_arr = [];
this.get_image_list();
} else { } else {
this.$message.error("删除失败"); this.$message.error("删除失败");
} }
...@@ -786,6 +782,11 @@ export default { ...@@ -786,6 +782,11 @@ export default {
}) })
.catch(function(response) {}); .catch(function(response) {});
}, },
refreshImageList() {
this.now_page = 1;
this.image_arr = [];
this.get_image_list();
}
}, },
}; };
</script> </script>
......
...@@ -185,7 +185,7 @@ export default { ...@@ -185,7 +185,7 @@ export default {
"text": "应急领域" "text": "应急领域"
}, },
{ {
"name": "在线区域", "name": "在线状态",
"text": "平台应用" "text": "平台应用"
} }
], ],
......
...@@ -172,7 +172,7 @@ export default { ...@@ -172,7 +172,7 @@ export default {
], ],
second: [ second: [
{ {
"name": "在线区域", "name": "在线状态",
"text": "" "text": ""
}, },
{ {
......
...@@ -106,7 +106,7 @@ export default { ...@@ -106,7 +106,7 @@ export default {
this.cardType = 0; this.cardType = 0;
this.otherFilter1 = [ this.otherFilter1 = [
{ {
name: "在线区域", name: "在线状态",
prop: "online_state", prop: "online_state",
data: [ data: [
{ {
...@@ -222,7 +222,7 @@ export default { ...@@ -222,7 +222,7 @@ export default {
align: "center", align: "center",
}, },
{ {
label: "在线区域", label: "在线状态",
prop: "online_state_name", prop: "online_state_name",
align: "center", align: "center",
}, },
...@@ -248,7 +248,7 @@ export default { ...@@ -248,7 +248,7 @@ export default {
]; ];
this.otherFilter1 = [ this.otherFilter1 = [
{ {
name: "在线区域", name: "在线状态",
prop: "online_state", prop: "online_state",
data: [ data: [
{ {
...@@ -324,7 +324,7 @@ export default { ...@@ -324,7 +324,7 @@ export default {
align: "center", align: "center",
}, },
{ {
label: "在线区域", label: "在线状态",
prop: "online_state_name", prop: "online_state_name",
align: "center", align: "center",
}, },
...@@ -391,7 +391,7 @@ export default { ...@@ -391,7 +391,7 @@ export default {
]; ];
this.otherFilter1 = [ this.otherFilter1 = [
{ {
name: "在线区域", name: "在线状态",
prop: "online_state", prop: "online_state",
data: [ data: [
{ {
...@@ -487,7 +487,7 @@ export default { ...@@ -487,7 +487,7 @@ export default {
]; ];
this.otherFilter1 = [ this.otherFilter1 = [
{ {
name: "在线区域", name: "在线状态",
prop: "online_state", prop: "online_state",
data: [ data: [
{ {
...@@ -546,7 +546,7 @@ export default { ...@@ -546,7 +546,7 @@ export default {
align: "center", align: "center",
}, },
{ {
label: "在线区域", label: "在线状态",
prop: "online_state_name", prop: "online_state_name",
align: "center", align: "center",
}, },
...@@ -586,7 +586,7 @@ export default { ...@@ -586,7 +586,7 @@ export default {
]; ];
this.otherFilter1 = [ this.otherFilter1 = [
{ {
name: "在线区域", name: "在线状态",
prop: "online_state", prop: "online_state",
data: [ data: [
{ {
...@@ -658,7 +658,7 @@ export default { ...@@ -658,7 +658,7 @@ export default {
align: "center", align: "center",
}, },
{ {
label: "在线区域", label: "在线状态",
prop: "online_state_name", prop: "online_state_name",
align: "center", align: "center",
}, },
...@@ -733,7 +733,7 @@ export default { ...@@ -733,7 +733,7 @@ export default {
]; ];
this.otherFilter1 = [ this.otherFilter1 = [
{ {
name: "在线区域", name: "在线状态",
prop: "online_state", prop: "online_state",
data: [ data: [
{ {
...@@ -820,7 +820,7 @@ export default { ...@@ -820,7 +820,7 @@ export default {
]; ];
this.otherFilter1 = [ this.otherFilter1 = [
{ {
name: "在线区域", name: "在线状态",
prop: "online_state", prop: "online_state",
data: [ data: [
{ {
...@@ -879,7 +879,7 @@ export default { ...@@ -879,7 +879,7 @@ export default {
align: "center", align: "center",
}, },
{ {
label: "在线区域", label: "在线状态",
prop: "online_state_name", prop: "online_state_name",
align: "center", align: "center",
}, },
...@@ -919,7 +919,7 @@ export default { ...@@ -919,7 +919,7 @@ export default {
]; ];
this.otherFilter1 = [ this.otherFilter1 = [
{ {
name: "在线区域", name: "在线状态",
prop: "online_state", prop: "online_state",
data: [ data: [
{ {
...@@ -1067,7 +1067,7 @@ export default { ...@@ -1067,7 +1067,7 @@ export default {
return item.value; return item.value;
}) })
.join(","); .join(",");
} // 在线区域 / 部署来源 } // 在线状态 / 部署来源
if (filter.appTypes) { if (filter.appTypes) {
params.appTypes = filter.appTypes params.appTypes = filter.appTypes
.map((item) => { .map((item) => {
...@@ -1142,7 +1142,7 @@ export default { ...@@ -1142,7 +1142,7 @@ export default {
}, // 唤醒弹窗 }, // 唤醒弹窗
deleteAction(item) { deleteAction(item) {
if (this.cardType === 0) { if (this.cardType === 0) {
if (item.online_state != 2) { if (item.online_state == 0 || (item.online_state == 2 && item.source=="apply")) {
this.dialogInfo.title = ""; this.dialogInfo.title = "";
this.dialogInfo.msg = "是否删除该条应用?"; this.dialogInfo.msg = "是否删除该条应用?";
this.dialogInfo.cancelText = ""; this.dialogInfo.cancelText = "";
...@@ -1182,7 +1182,9 @@ export default { ...@@ -1182,7 +1182,9 @@ export default {
this.dialogInfo.cancelText = ""; this.dialogInfo.cancelText = "";
this.dialogInfo.sunbmitText = ""; this.dialogInfo.sunbmitText = "";
this.dialogInfo.submit = () => { this.dialogInfo.submit = () => {
if (item.up_deploy_status === 3) { console.log(`${item.app_name}不能被删除...`);
/* if (item.up_deploy_status === 3) {
this.$message({ this.$message({
message: `${item.app_name}正在申请下架中.`, message: `${item.app_name}正在申请下架中.`,
type: "warning", type: "warning",
...@@ -1210,7 +1212,7 @@ export default { ...@@ -1210,7 +1212,7 @@ export default {
type: "warning", type: "warning",
}); });
}); });
} } */
}; };
} }
} else if (this.cardType === 1) { } else if (this.cardType === 1) {
......
...@@ -13,7 +13,7 @@ const serviceShop = { ...@@ -13,7 +13,7 @@ const serviceShop = {
serviceName=${params.serviceName}&serviceType1=${params.serviceType1}& serviceName=${params.serviceName}&serviceType1=${params.serviceType1}&
serviceType2s=${params.serviceType2s}&dataDomains=${params.dataDomains}& serviceType2s=${params.serviceType2s}&dataDomains=${params.dataDomains}&
organizeIds=${params.organizeIds}&orderBy=${params.orderBy}& organizeIds=${params.organizeIds}&orderBy=${params.orderBy}&
Page=${params.Page}&Size=${params.Size}`); page=${params.Page}&size=${params.Size}`);
}, },
getServiceShopDetail(params) { getServiceShopDetail(params) {
return axios.get(`/apaas/serviceapp/v3/servicemarket/detail?serviceId=`) return axios.get(`/apaas/serviceapp/v3/servicemarket/detail?serviceId=`)
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
"text": "应急领域" "text": "应急领域"
}, },
{ {
"name": "在线区域", "name": "在线状态",
"text": "平台应用" "text": "平台应用"
} }
], ],
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
], ],
"second": [ "second": [
{ {
"name": "在线区域", "name": "在线状态",
"text": "平台应用" "text": "平台应用"
}, },
{ {
......
...@@ -2706,6 +2706,11 @@ duplexify@^3.4.2, duplexify@^3.6.0: ...@@ -2706,6 +2706,11 @@ duplexify@^3.4.2, duplexify@^3.6.0:
readable-stream "^2.0.0" readable-stream "^2.0.0"
stream-shift "^1.0.0" stream-shift "^1.0.0"
echarts-liquidfill@^2.0.6:
version "2.0.6"
resolved "https://registry.npm.taobao.org/echarts-liquidfill/download/echarts-liquidfill-2.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fecharts-liquidfill%2Fdownload%2Fecharts-liquidfill-2.0.6.tgz#0668dc61d87a6262003090bd32c55aa8108c252e"
integrity sha1-BmjcYdh6YmIAMJC9MsVaqBCMJS4=
echarts@^4.8.0: echarts@^4.8.0:
version "4.8.0" version "4.8.0"
resolved "https://registry.yarnpkg.com/echarts/-/echarts-4.8.0.tgz#b2c1cfb9229b13d368ee104fc8eea600b574d4c4" resolved "https://registry.yarnpkg.com/echarts/-/echarts-4.8.0.tgz#b2c1cfb9229b13d368ee104fc8eea600b574d4c4"
...@@ -7528,6 +7533,16 @@ xtend@^4.0.0, xtend@~4.0.1: ...@@ -7528,6 +7533,16 @@ xtend@^4.0.0, xtend@~4.0.1:
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
xterm-addon-fit@^0.4.0:
version "0.4.0"
resolved "https://registry.npm.taobao.org/xterm-addon-fit/download/xterm-addon-fit-0.4.0.tgz#06e0c5d0a6aaacfb009ef565efa1c81e93d90193"
integrity sha1-BuDF0KaqrPsAnvVl76HIHpPZAZM=
xterm@^4.7.0:
version "4.8.1"
resolved "https://registry.npm.taobao.org/xterm/download/xterm-4.8.1.tgz#155a1729a43e1a89b406524e22c5634339e39ca1"
integrity sha1-FVoXKaQ+Gom0BlJOIsVjQznjnKE=
xxhashjs@^0.2.1: xxhashjs@^0.2.1:
version "0.2.2" version "0.2.2"
resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8"
...@@ -7550,6 +7565,18 @@ yallist@^3.0.2: ...@@ -7550,6 +7565,18 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
yaml2json@^1.0.2:
version "1.0.2"
resolved "https://registry.npm.taobao.org/yaml2json/download/yaml2json-1.0.2.tgz#3ab846deb87c062d9904e143c6947128d488c119"
integrity sha1-OrhG3rh8Bi2ZBOFDxpRxKNSIwRk=
dependencies:
yaml "0.2.x"
yaml@0.2.x:
version "0.2.3"
resolved "https://registry.npm.taobao.org/yaml/download/yaml-0.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyaml%2Fdownload%2Fyaml-0.2.3.tgz#b5450e92e76ef36b5dd24e3660091ebaeef3e5c7"
integrity sha1-tUUOkudu82td0k42YAkeuu7z5cc=
yargs-parser@^11.1.1: yargs-parser@^11.1.1:
version "11.1.1" version "11.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
......
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