Commit 47983054 authored by 张宇迪's avatar 张宇迪

Merge branch 'dev'

parents 630e24b8 958d802a
...@@ -8,7 +8,7 @@ module.exports = { ...@@ -8,7 +8,7 @@ module.exports = {
dev: { dev: {
// Paths // Paths
assetsSubDirectory: "static", assetsSubDirectory: "static",
assetsPublicPath: "/", assetsPublicPath: "/apaas/ui/",
proxyTable: { proxyTable: {
"/apaas": { "/apaas": {
target: "https://apaas3.wodcloud.com/apaas/", target: "https://apaas3.wodcloud.com/apaas/",
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
} }
</style> </style>
</head> </head>
<script src="/apaas/ui/static/config/configmap.js"></script>
<body> <body>
<div id="app"></div> <div id="app"></div>
</body> </body>
......
...@@ -32,18 +32,19 @@ ...@@ -32,18 +32,19 @@
"vue-i18n": "^8.17.7", "vue-i18n": "^8.17.7",
"vue-resource": "^1.5.1", "vue-resource": "^1.5.1",
"vue-router": "^3.0.2", "vue-router": "^3.0.2",
"vue-super-flow": "^1.3.2",
"vuex": "^3.1.0", "vuex": "^3.1.0",
"xterm": "^4.7.0", "xterm": "^4.7.0",
"xterm-addon-fit": "^0.4.0", "xterm-addon-fit": "^0.4.0",
"yaml2json": "^1.0.2" "yaml2json": "^1.0.2"
}, },
"devDependencies": { "devDependencies": {
"@babel/compat-data": "7.9.0",
"@babel/core": "^7.4.0", "@babel/core": "^7.4.0",
"@babel/plugin-syntax-jsx": "^7.2.0", "@babel/plugin-syntax-jsx": "^7.2.0",
"@babel/plugin-transform-runtime": "^7.4.0", "@babel/plugin-transform-runtime": "^7.4.0",
"@babel/preset-env": "^7.4.2", "@babel/preset-env": "^7.4.2",
"@babel/runtime": "^7.4.2", "@babel/runtime": "^7.4.2",
"@babel/compat-data": "7.9.0",
"autoprefixer": "^9.5.0", "autoprefixer": "^9.5.0",
"babel-loader": "^8.0.5", "babel-loader": "^8.0.5",
"babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-syntax-jsx": "^6.18.0",
...@@ -54,6 +55,8 @@ ...@@ -54,6 +55,8 @@
"file-loader": "^3.0.1", "file-loader": "^3.0.1",
"friendly-errors-webpack-plugin": "^1.7.0", "friendly-errors-webpack-plugin": "^1.7.0",
"html-webpack-plugin": "^3.2.0", "html-webpack-plugin": "^3.2.0",
"less": "^3.12.2",
"less-loader": "^6.2.0",
"mini-css-extract-plugin": "^0.5.0", "mini-css-extract-plugin": "^0.5.0",
"node-notifier": "^5.4.0", "node-notifier": "^5.4.0",
"optimize-css-assets-webpack-plugin": "^5.0.1", "optimize-css-assets-webpack-plugin": "^5.0.1",
......
...@@ -10,25 +10,37 @@ import bdMenu from "./components/menu"; ...@@ -10,25 +10,37 @@ import bdMenu from "./components/menu";
export default { export default {
data: () => ({}), data: () => ({}),
components: { components: {
bdMenu bdMenu,
}, },
methods: { methods: {
getCurrentUser() { getCurrentUser() {
this.$api.user.getNowUser().then(({ data }) => { this.$api.user.getNowUser().then(({ data }) => {
if (data.success == 1) { if (data.success == 1) {
console.log("--- --- ---");
console.log(data.data);
console.log("--- --- ---");
this.$store.commit("userInfofun", data.data); this.$store.commit("userInfofun", data.data);
} else { } else {
console.log(data.errMsg); console.log(data.errMsg);
} }
}); });
},
getMessage() {
this.$http
.get("/apaas/service/v3/mymsg/unread", {
params: {
size: 10,
page: 1,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.$store.commit("setUnreadMessageCount", data.data.total || 0);
} }
});
},
}, },
created() { created() {
this.getCurrentUser(); this.getCurrentUser();
} this.getMessage();
},
}; };
</script> </script>
......
...@@ -609,6 +609,10 @@ width: 620px!important; ...@@ -609,6 +609,10 @@ width: 620px!important;
color: #999; color: #999;
cursor: not-allowed; cursor: not-allowed;
} }
.apass_table .row_action .disabled.hide {
opacity: 0;
cursor: auto;
}
.apass_table .row_action .interval_line { .apass_table .row_action .interval_line {
font-size: 14px; font-size: 14px;
color: #dde4ff; color: #dde4ff;
......
src/assets/imgs/shop_ic_huoqu.png

1.03 KB | W: | H:

src/assets/imgs/shop_ic_huoqu.png

14.7 KB | W: | H:

src/assets/imgs/shop_ic_huoqu.png
src/assets/imgs/shop_ic_huoqu.png
src/assets/imgs/shop_ic_huoqu.png
src/assets/imgs/shop_ic_huoqu.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/imgs/shop_icon_liulan.png

1.07 KB | W: | H:

src/assets/imgs/shop_icon_liulan.png

14.7 KB | W: | H:

src/assets/imgs/shop_icon_liulan.png
src/assets/imgs/shop_icon_liulan.png
src/assets/imgs/shop_icon_liulan.png
src/assets/imgs/shop_icon_liulan.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
class="apass_dialog" class="apass_dialog"
:visible.sync="showDialog" :visible.sync="showDialog"
:width="width" :width="width"
top="25vh"
> >
<h3 class="dialog_title" slot="title"> <h3 class="dialog_title" slot="title">
<span v-text="title || '提示'"></span> <span v-text="title || '提示'"></span>
......
...@@ -181,9 +181,11 @@ export default { ...@@ -181,9 +181,11 @@ export default {
} }
}, },
searchAction(value) { searchAction(value) {
this.currentPage = 1;
this.listAction(); this.listAction();
}, },
filterChange(filter) { filterChange(filter) {
this.currentPage = 1;
this.filter = filter; this.filter = filter;
this.listAction(); this.listAction();
}, },
...@@ -196,6 +198,10 @@ export default { ...@@ -196,6 +198,10 @@ export default {
this.currentPage = value; this.currentPage = value;
this.listAction(); this.listAction();
}, },
resetCurrentPage(value = 1) {
this.currentPage = value;
this.listAction();
},
listAction() { listAction() {
if (this.timer) { if (this.timer) {
clearTimeout(this.timer); clearTimeout(this.timer);
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<span <span
v-if="v.disabledRule && v.disabledRule(scope.row)" v-if="v.disabledRule && v.disabledRule(scope.row)"
class="btn disabled" class="btn disabled"
:class="{ hide: v.disableHide }"
:key="'btn_' + index + '_' + i" :key="'btn_' + index + '_' + i"
v-text="v.getLabel ? v.getLabel(scope.row) : v.label" v-text="v.getLabel ? v.getLabel(scope.row) : v.label"
> >
...@@ -42,8 +43,24 @@ ...@@ -42,8 +43,24 @@
v-if="i < item.actionList.length - 1" v-if="i < item.actionList.length - 1"
class="interval_line" class="interval_line"
:key="'line_' + index + '_' + i" :key="'line_' + index + '_' + i"
>|</span
> >
|
</span>
</template>
<template v-if="item.moreActionList">
<span
class="interval_line"
v-if="item.actionList && item.actionList.length > 0"
>
|
</span>
<a
class="btn"
@mouseenter="mouseenter($event, item.moreActionList, scope.row)"
@mouseleave="mouseleave"
>
更多
</a>
</template> </template>
</div> </div>
<div v-else-if="item.type === 'button'" class="row_action"> <div v-else-if="item.type === 'button'" class="row_action">
...@@ -94,7 +111,7 @@ ...@@ -94,7 +111,7 @@
tag_flag_arr[scope.$index] == 0 && tag_flag_arr[scope.$index] == 0 &&
scope.row[item.prop].length > 2 scope.row[item.prop].length > 2
" "
@click.stop="change_tag(scope.$index, 1)" @click.stop="changeTag(scope.$index, 1)"
></div> ></div>
<div <div
class="tagclo btn_up" class="tagclo btn_up"
...@@ -102,7 +119,7 @@ ...@@ -102,7 +119,7 @@
tag_flag_arr[scope.$index] == 1 && tag_flag_arr[scope.$index] == 1 &&
scope.row[item.prop].length > 2 scope.row[item.prop].length > 2
" "
@click.stop="change_tag(scope.$index, 0)" @click.stop="changeTag(scope.$index, 0)"
></div> ></div>
</div> </div>
<div v-else-if="item.type === 'chart'" class="charts"> <div v-else-if="item.type === 'chart'" class="charts">
...@@ -115,16 +132,32 @@ ...@@ -115,16 +132,32 @@
:styles="item.prop == 'cpu' ? spCurveStyles2 : spCurveStyles3" :styles="item.prop == 'cpu' ? spCurveStyles2 : spCurveStyles3"
/> />
</sparkline> </sparkline>
<span class="use" v-if="item.prop == 'cpu'&&scope.row.cpu_use" <span class="use" v-if="item.prop == 'cpu' && scope.row.cpu_use"
>{{ scope.row["cpu_use"] }}.00mm</span >{{ scope.row["cpu_use"] }}.00mm</span
> >
<span class="use" :style="scope.row[item.prop].length?{}:{right:'25px',bottom:'8px'}" v-if="item.prop == 'cpu'&&!scope.row.cpu_use" <span
class="use"
:style="
scope.row[item.prop].length
? {}
: { right: '25px', bottom: '8px' }
"
v-if="item.prop == 'cpu' && !scope.row.cpu_use"
>0mm</span >0mm</span
> >
<span class="use" v-if="item.prop == 'mermoy'&&scope.row.memory_use" <span
class="use"
v-if="item.prop == 'mermoy' && scope.row.memory_use"
>{{ scope.row["memory_use"] }}Mi</span >{{ scope.row["memory_use"] }}Mi</span
> >
<span class="use" :style="scope.row[item.prop].length?{}:{right:'25px',bottom:'8px'}" v-if="item.prop == 'mermoy'&&!scope.row.memory_use" <span
class="use"
:style="
scope.row[item.prop].length
? {}
: { right: '25px', bottom: '8px' }
"
v-if="item.prop == 'mermoy' && !scope.row.memory_use"
>0Mi</span >0Mi</span
> >
</div> </div>
...@@ -210,6 +243,22 @@ ...@@ -210,6 +243,22 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<ul
ref="moreActionList"
class="more_action_list"
:style="moreActionStyle"
@mouseenter="enterMoreActionList"
@mouseleave="leaveMoreActionList"
v-show="showMoreActionList"
>
<li
v-for="(item, index) in moreActionList"
:key="'more_' + index"
@click="item.callback"
v-text="item.label"
></li>
</ul>
</div> </div>
</template> </template>
...@@ -257,6 +306,12 @@ export default { ...@@ -257,6 +306,12 @@ export default {
strokeOpacity: 0, strokeOpacity: 0,
strokeDasharray: "2, 2", strokeDasharray: "2, 2",
}, },
moreActionList: [],
showMoreActionList: false,
moreActionStyle: {
top: 0,
left: 0,
},
}; };
}, },
mounted() { mounted() {
...@@ -266,7 +321,7 @@ export default { ...@@ -266,7 +321,7 @@ export default {
); );
}, },
methods: { methods: {
change_tag(index, val) { changeTag(index, val) {
this.$set(this.tag_flag_arr, index, val); this.$set(this.tag_flag_arr, index, val);
}, },
sortChange(value) { sortChange(value) {
...@@ -278,6 +333,42 @@ export default { ...@@ -278,6 +333,42 @@ export default {
getPercent(num) { getPercent(num) {
return Math.round(num * 100) + "%"; return Math.round(num * 100) + "%";
}, },
mouseenter($event, moreActionList, row) {
let _self = this;
_self.moreActionList = [];
_self.showMoreActionList = true;
_self.moreActionList = moreActionList.map((item) => ({
id: row.id,
label: item.label,
callback() {
_self.showMoreActionList = false;
_self.moreActionList = [];
item.callback && item.callback(row);
},
}));
_self.$nextTick(() => {
let targetInfo = $event.target.getBoundingClientRect();
let containerInfo = _self.$refs.moreActionList.getBoundingClientRect();
_self.moreActionStyle = {
top: targetInfo.y + targetInfo.height + 15 + "px",
left:
targetInfo.x - (containerInfo.width - targetInfo.width) / 2 + "px",
};
});
},
mouseleave() {
this.showMoreActionList = false;
},
enterMoreActionList() {
this.showMoreActionList = true;
},
leaveMoreActionList() {
this.showMoreActionList = false;
},
}, },
}; };
</script> </script>
...@@ -389,4 +480,48 @@ export default { ...@@ -389,4 +480,48 @@ export default {
.selected_icon.selected > span { .selected_icon.selected > span {
display: block; display: block;
} }
.more_action_list {
position: fixed;
}
.more_action_list > li {
padding: 5px 20px;
background-color: #0f2683;
font-size: 12px;
line-height: 20px;
color: #fff;
cursor: pointer;
position: relative;
}
.more_action_list > li:first-child {
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
.more_action_list > li:first-child::before {
content: "";
position: absolute;
top: -14px;
right: calc(50% - 14px);
width: 28px;
height: 14px;
}
.more_action_list > li:first-child::after {
content: "";
position: absolute;
top: -14px;
right: calc(50% - 7px);
border-top: 0 solid transparent;
border-right: 7px solid transparent;
border-bottom: 14px solid #0f2683;
border-left: 7px solid transparent;
}
.more_action_list > li:last-child {
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
}
.more_action_list > li:hover {
background-color: #3f4f9c;
}
.more_action_list > li:first-child:hover::after {
border-bottom: 14px solid #3f4f9c;
}
</style> </style>
...@@ -28,7 +28,11 @@ export default { ...@@ -28,7 +28,11 @@ export default {
targetValue: { targetValue: {
type: Number, type: Number,
default: () => 0 default: () => 0
} },
area_flag:{
type: Boolean,
default: true
},
}, },
components: {}, components: {},
data() { data() {
...@@ -87,7 +91,7 @@ export default { ...@@ -87,7 +91,7 @@ export default {
}, },
areaStyle: { areaStyle: {
normal: { normal: {
color: new echarts.graphic.LinearGradient( color:this.area_flag? new echarts.graphic.LinearGradient(
0, 0,
0, 0,
0, 0,
...@@ -103,7 +107,7 @@ export default { ...@@ -103,7 +107,7 @@ export default {
} }
], ],
false false
), ):'rgba(0,0,0,0)',
shadowColor: hexToRgba(color[idx], 0.1), shadowColor: hexToRgba(color[idx], 0.1),
shadowBlur: 10 shadowBlur: 10
} }
...@@ -118,10 +122,10 @@ export default { ...@@ -118,10 +122,10 @@ export default {
}); });
var option = { var option = {
backgroundColor: bgColor, // backgroundColor: bgColor,
color: color, color: color,
legend: { legend: {
// show:false,//是否显示图例 show:yarr.length>=2,//是否显示图例
right: "center", right: "center",
bottom: 0, bottom: 0,
itemWidth: 10, itemWidth: 10,
...@@ -144,7 +148,7 @@ export default { ...@@ -144,7 +148,7 @@ export default {
left: 15, left: 15,
right: 30, right: 30,
bottom: 30, bottom: 30,
containLabel: true containLabel: true,
}, },
xAxis: [ xAxis: [
{ {
...@@ -161,7 +165,7 @@ export default { ...@@ -161,7 +165,7 @@ export default {
} }
}, },
splitArea: { splitArea: {
show: true, show: this.area_flag,
areaStyle: { areaStyle: {
color: ["#fff", "#f8f9fd"], color: ["#fff", "#f8f9fd"],
opacity: 0.5 opacity: 0.5
......
...@@ -54,6 +54,7 @@ a { ...@@ -54,6 +54,7 @@ a {
.list p { .list p {
line-height: 32px; line-height: 32px;
color: #8890a7; color: #8890a7;
word-wrap:break-word;
} }
.list { .list {
margin-bottom: 20px; margin-bottom: 20px;
......
...@@ -13,11 +13,11 @@ ...@@ -13,11 +13,11 @@
>{{ userInfo.user_name }}</span> >{{ userInfo.user_name }}</span>
<span v-else @click="gotopage('login')" class="user">请登录</span> <span v-else @click="gotopage('login')" class="user">请登录</span>
<img <img
:class="userInfo.picture_path ? 'user_pic' : 'user_default'" :class="userInfo.picture_path && false ? 'user_pic' : 'user_default'"
:src=" src="../assets/imgs/home_ic_user.png"
userInfo.picture_path || require('../assets/imgs/home_ic_user.png')
"
/> />
<span class="has_msg" v-if="unreadMessageCount > 0"></span>
<!-- 菜单图片不需要动态渲染,只用ui给的图标 -->
<div v-if="userInfo.user_name && userInfo.user_name != ''" class="user_menu"> <div v-if="userInfo.user_name && userInfo.user_name != ''" class="user_menu">
<div <div
v-for="(item, index) in user_arr" v-for="(item, index) in user_arr"
...@@ -25,10 +25,21 @@ ...@@ -25,10 +25,21 @@
@mouseleave.stop="change_now_hover(-1)" @mouseleave.stop="change_now_hover(-1)"
@mouseenter.stop="change_now_hover(index)" @mouseenter.stop="change_now_hover(index)"
@click="gotopage(item.visit_url)" @click="gotopage(item.visit_url)"
>{{ item.menu_name }}</div> >
{{ item.menu_name }}
<span
v-if="unreadMessageCount > 0 && item.visit_url === '/user/notice'"
class="width_num"
v-text="unreadMessageCount"
></span>
</div>
<div @click="gotopage('logout')">退出登录</div> <div @click="gotopage('logout')">退出登录</div>
</div> </div>
<div v-if="userInfo.user_name && userInfo.user_name != ''" class="sj" :style="now_hover==0?{backgroundColor:'#e56600'}:{}"></div> <div
v-if="userInfo.user_name && userInfo.user_name != ''"
class="sj"
:style="now_hover==0?{backgroundColor:'#e56600'}:{}"
></div>
</div> </div>
<div <div
v-if="show_shop_menu" v-if="show_shop_menu"
...@@ -92,7 +103,11 @@ ...@@ -92,7 +103,11 @@
@click.stop="gotoChildPage(v, item.visit_url)" @click.stop="gotoChildPage(v, item.visit_url)"
>{{ v.menu_name }}</div> >{{ v.menu_name }}</div>
</div> </div>
<div class="sj" v-if="item.Child && item.Child.length" :style="now_hover==0?{backgroundColor:'#e56600',left: '60px'}:{left: '60px'}"></div> <div
class="sj"
v-if="item.Child && item.Child.length"
:style="now_hover==0?{backgroundColor:'#e56600',left: '60px'}:{left: '60px'}"
></div>
<div class="bottom_show" v-if="now_menu == item.visit_url"></div> <div class="bottom_show" v-if="now_menu == item.visit_url"></div>
</div> </div>
</div> </div>
...@@ -100,6 +115,7 @@ ...@@ -100,6 +115,7 @@
</template> </template>
<script> <script>
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default { export default {
data() { data() {
return { return {
...@@ -114,8 +130,8 @@ export default { ...@@ -114,8 +130,8 @@ export default {
], ],
shopping_list: [], shopping_list: [],
menuCartNum: 0, menuCartNum: 0,
now_hover:-1, now_hover: -1,
show_shop_menu: false show_shop_menu: false,
}; };
}, },
mounted() { mounted() {
...@@ -128,20 +144,25 @@ export default { ...@@ -128,20 +144,25 @@ export default {
}, },
userInfo() { userInfo() {
return this.$store.state.userInfo || {}; return this.$store.state.userInfo || {};
} },
unreadMessageCount() {
return this.$store.state.unreadMessageCount;
},
}, },
watch: { watch: {
getMenuCartState(newVal) { getMenuCartState(newVal) {
this.getList(); this.getList();
} },
}, },
methods: { methods: {
change_now_hover(n){ change_now_hover(n) {
this.now_hover = n this.now_hover = n;
}, },
gotopage(n) { gotopage(n) {
if (n == "logout") { if (n == "logout") {
window.location.href = "/iam/api/logout"; window.location.href =
gisServiceUrl +
`/portal/sharing/rest/oauth2/signout?client_id=arcgisonline&redirect_uri=${window.location.protocol}//${window.location.host}/iam/api/logout`;
} else if (n == "login") { } else if (n == "login") {
let path = this.$route.path; let path = this.$route.path;
window.location.href = "/iam/login/#/login?ReturnUrl=" + path; window.location.href = "/iam/login/#/login?ReturnUrl=" + path;
...@@ -154,7 +175,7 @@ export default { ...@@ -154,7 +175,7 @@ export default {
}, },
deleteItem(id) { deleteItem(id) {
let query = [id]; let query = [id];
this.$api.serviceShop.delShoppingCart(query).then(response => { this.$api.serviceShop.delShoppingCart(query).then((response) => {
this.getList(); this.getList();
}); });
}, },
...@@ -183,7 +204,7 @@ export default { ...@@ -183,7 +204,7 @@ export default {
} }
}, },
getList() { getList() {
this.$api.serviceShop.getShoppingCart().then(response => { this.$api.serviceShop.getShoppingCart().then((response) => {
if (response.data.success == "1") { if (response.data.success == "1") {
this.menuCartNum = response.data.data.valid this.menuCartNum = response.data.data.valid
? response.data.data.valid.length ? response.data.data.valid.length
...@@ -201,12 +222,12 @@ export default { ...@@ -201,12 +222,12 @@ export default {
this.now_menu = visit_url ? visit_url : ""; this.now_menu = visit_url ? visit_url : "";
}, },
getNowMenu() { getNowMenu() {
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then(response => { this.$api.general.getNowMenu({ teamName: "APAAS3" }).then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
let arr = let arr =
(response.data.data[0] && response.data.data[0].Child) || []; (response.data.data[0] && response.data.data[0].Child) || [];
let shop_index = arr.findIndex( let shop_index = arr.findIndex(
item => item.visit_url == "/shop/shopping_cart" (item) => item.visit_url == "/shop/shopping_cart"
); );
if (shop_index != -1) { if (shop_index != -1) {
arr.splice(shop_index, 1); arr.splice(shop_index, 1);
...@@ -214,7 +235,7 @@ export default { ...@@ -214,7 +235,7 @@ export default {
} else { } else {
this.show_shop_menu = false; this.show_shop_menu = false;
} }
let user_index = arr.findIndex(item => item.visit_url == "/user"); let user_index = arr.findIndex((item) => item.visit_url == "/user");
if (user_index != -1) { if (user_index != -1) {
this.user_arr = arr[user_index].Child; this.user_arr = arr[user_index].Child;
arr.splice(user_index, 1); arr.splice(user_index, 1);
...@@ -225,8 +246,8 @@ export default { ...@@ -225,8 +246,8 @@ export default {
this.getMenuIndex(); this.getMenuIndex();
} }
}); });
} },
} },
}; };
</script> </script>
...@@ -291,7 +312,7 @@ export default { ...@@ -291,7 +312,7 @@ export default {
float: right; float: right;
width: 185px; width: 185px;
font-size: 16px; font-size: 16px;
height:84px; height: 84px;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
...@@ -309,7 +330,7 @@ export default { ...@@ -309,7 +330,7 @@ export default {
left: calc(50% - 12px); left: calc(50% - 12px);
} }
.user_menu { .user_menu {
width: 135px; /* width: 135px; */
background-color: #ffffff; background-color: #ffffff;
box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05); box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05);
border-radius: 8px; border-radius: 8px;
...@@ -351,10 +372,11 @@ export default { ...@@ -351,10 +372,11 @@ export default {
display: block; display: block;
} }
.user_menu div { .user_menu div {
width: 135px; /* width: 135px; */
height: 44px; height: 44px;
line-height: 44px; line-height: 44px;
text-align: center; padding: 0 30px;
text-align: left;
color: #0d1847; color: #0d1847;
} }
.user_menu div:hover { .user_menu div:hover {
...@@ -436,6 +458,34 @@ export default { ...@@ -436,6 +458,34 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
.width_num {
display: inline-block;
vertical-align: middle;
min-width: 30px;
background-color: #e56600;
font-size: 10px;
line-height: 16px;
color: #fff;
padding: 0 8px;
margin-left: 5px;
box-sizing: border-box;
border-radius: 8px;
text-align: center;
overflow: hidden;
}
.user_menu div:hover .width_num {
background-color: #fcefd6;
color: #e56600;
}
.has_msg {
width: 8px;
height: 8px;
border-radius: 50%;
background-color: #e56600;
position: absolute;
top: 23px;
left: 15px;
}
</style> </style>
<style> <style>
.number .el-badge__content { .number .el-badge__content {
......
...@@ -9,6 +9,18 @@ ...@@ -9,6 +9,18 @@
placeholder="请输入消息模板名称/id" placeholder="请输入消息模板名称/id"
></el-input> ></el-input>
</div> </div>
<div class="filter_item" v-if="tpl_types.length > 1">
<span class="filter_title">模板类型:</span>
<el-select v-model="type" placeholder="请选择">
<el-option
v-for="item in tpl_types"
:label="item.name"
:value="item.value"
:key="item.value"
>
</el-option>
</el-select>
</div>
<div class="filter_item"> <div class="filter_item">
<span class="filter_title">最后更新时间:</span> <span class="filter_title">最后更新时间:</span>
<el-date-picker <el-date-picker
...@@ -127,6 +139,10 @@ export default { ...@@ -127,6 +139,10 @@ export default {
type: Boolean, type: Boolean,
defailt: false, defailt: false,
}, },
tmpTypes: {
type: Array,
defailt: [],
},
}, },
data() { data() {
return { return {
...@@ -138,6 +154,7 @@ export default { ...@@ -138,6 +154,7 @@ export default {
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
keyword: "", keyword: "",
type: "",
updateTime: "", updateTime: "",
types: [ types: [
{ {
...@@ -161,6 +178,7 @@ export default { ...@@ -161,6 +178,7 @@ export default {
value: 4, value: 4,
}, },
], ],
tpl_types: [],
detail: { detail: {
name: "", name: "",
tpl_type: "", tpl_type: "",
...@@ -234,12 +252,36 @@ export default { ...@@ -234,12 +252,36 @@ export default {
}, },
]; ];
if (this.tmpTypes.length > 0) {
let tpl_types = [];
this.types.forEach((item) => {
if (this.tmpTypes.indexOf(item.value) > -1) {
tpl_types.push(item);
}
});
if (this.tmpTypes.length > 1) {
tpl_types = [
{
name: "全部",
value: this.tmpTypes.join(","),
},
...tpl_types,
];
}
this.tpl_types = tpl_types;
this.type = tpl_types[0].value;
}
this.getTemplateList(); this.getTemplateList();
}, },
methods: { methods: {
getTemplateList() { getTemplateList() {
let params = { let params = {
page: this.currentPage, page: this.currentPage,
tpl_type: this.type,
size: this.pageSize, size: this.pageSize,
keyword: this.keyword, keyword: this.keyword,
update_time_s: (this.updateTime && this.updateTime[0]) || "", update_time_s: (this.updateTime && this.updateTime[0]) || "",
...@@ -287,6 +329,7 @@ export default { ...@@ -287,6 +329,7 @@ export default {
this.getTemplateList(); this.getTemplateList();
}, },
topFilterAction() { topFilterAction() {
this.currentPage = 1;
this.getTemplateList(); this.getTemplateList();
}, },
topFilterClear() { topFilterClear() {
......
...@@ -3,7 +3,11 @@ ...@@ -3,7 +3,11 @@
<div class="order_cell_head"> <div class="order_cell_head">
<div class="application_time">申请时间:{{ helper.dateStringTransform(cellItem.add_time) }}</div> <div class="application_time">申请时间:{{ helper.dateStringTransform(cellItem.add_time) }}</div>
<div class="order_number">订单编号:{{ cellItem.order_id }}</div> <div class="order_number">订单编号:{{ cellItem.order_id }}</div>
<div class="cell_del_btn" @click="delOrder(cellItem.order_id)">删除</div> <div
v-if="cellItem.approval_first_level == -1 || cellItem.approval_second_level != 0 || cellItem.pay_status == -1"
class="cell_del_btn"
@click="delOrder(cellItem.order_id)"
>删除</div>
</div> </div>
<el-row class="cell_row"> <el-row class="cell_row">
<el-col :span="10" class="cell_msg"> <el-col :span="10" class="cell_msg">
...@@ -23,7 +27,7 @@ ...@@ -23,7 +27,7 @@
<div class="cell_msg_other"> <div class="cell_msg_other">
<div <div
class="cell_type" class="cell_type"
>{{ cellItem.order_type != 3 ? cellItem.sector : cellItem.namespace }}</div> >{{ cellItem.order_type == 1 ? cellItem.sector : cellItem.order_type == 2 ? cellItem.app_type : cellItem.namespace }}</div>
<div <div
v-if="cellItem.order_type != 3" v-if="cellItem.order_type != 3"
class="cell_creator" class="cell_creator"
...@@ -122,6 +126,11 @@ ...@@ -122,6 +126,11 @@
class="cell_option_spec" class="cell_option_spec"
@click="nextApply" @click="nextApply"
>再次申请</div> >再次申请</div>
<div
v-if="(cellItem.approval_first_level == 0 && cellItem.pay_status != -1) || (cellItem.approval_first_level == 1 && cellItem.approval_second_level == 0 && cellItem.pay_status != -1)"
class="cell_option_spec"
@click="cancelDetail"
>取消申请</div>
</div> </div>
</el-col> </el-col>
<el-collapse-transition> <el-collapse-transition>
...@@ -153,8 +162,8 @@ export default { ...@@ -153,8 +162,8 @@ export default {
default: () => { default: () => {
{ {
} }
} },
} },
}, },
data: () => ({ data: () => ({
visible: false, visible: false,
...@@ -163,14 +172,14 @@ export default { ...@@ -163,14 +172,14 @@ export default {
textarea: "", textarea: "",
showMsgBox: false, showMsgBox: false,
helper: helper, helper: helper,
message: {} message: {},
}), }),
methods: { methods: {
addEvaluation() { addEvaluation() {
if (this.textarea == "" && this.serviceRate == null) { if (this.textarea == "" && this.serviceRate == null) {
this.$message({ this.$message({
message: "请先完善评价内容", message: "请先完善评价内容",
type: "error" type: "error",
}); });
} else { } else {
if (this.cellItem.order_type == 1) { if (this.cellItem.order_type == 1) {
...@@ -178,20 +187,20 @@ export default { ...@@ -178,20 +187,20 @@ export default {
service_id: this.cellItem.service_id, service_id: this.cellItem.service_id,
content: this.textarea, content: this.textarea,
score: this.serviceRate, score: this.serviceRate,
apply_id: this.cellItem.apply_id apply_id: this.cellItem.apply_id,
}; };
this.$api.user.addServiceEvaluation(query).then(response => { this.$api.user.addServiceEvaluation(query).then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.$message({ this.$message({
message: "评价订单成功", message: "评价订单成功",
type: "success" type: "success",
}); });
this.visible = false; this.visible = false;
this.$emit("updateList"); this.$emit("updateList");
} else { } else {
this.$message({ this.$message({
message: "评价订单失败", message: "评价订单失败",
type: "error" type: "error",
}); });
} }
}); });
...@@ -200,20 +209,20 @@ export default { ...@@ -200,20 +209,20 @@ export default {
app: this.cellItem.app_id, app: this.cellItem.app_id,
content: this.textarea, content: this.textarea,
score: this.serviceRate, score: this.serviceRate,
apply_id: this.cellItem.apply_id apply_id: this.cellItem.apply_id,
}; };
this.$api.user.addServiceEvaluation(query).then(response => { this.$api.user.addServiceEvaluation(query).then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.$message({ this.$message({
message: "评价订单成功", message: "评价订单成功",
type: "success" type: "success",
}); });
this.visible = false; this.visible = false;
this.$emit("updateList"); this.$emit("updateList");
} else { } else {
this.$message({ this.$message({
message: "评价订单失败", message: "评价订单失败",
type: "error" type: "error",
}); });
} }
}); });
...@@ -224,17 +233,19 @@ export default { ...@@ -224,17 +233,19 @@ export default {
this.$router.push("/user/order_detail/" + val); this.$router.push("/user/order_detail/" + val);
}, },
delOrder() { delOrder() {
this.$api.user.delOrder({ id: this.cellItem.order_id }).then(response => { this.$api.user
.delOrder({ id: this.cellItem.order_id })
.then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.$message({ this.$message({
message: "删除订单成功", message: "删除订单成功",
type: "success" type: "success",
}); });
this.$emit("updateList"); this.$emit("updateList");
} else { } else {
this.$message({ this.$message({
message: "删除订单失败", message: "删除订单失败",
type: "error" type: "error",
}); });
} }
}); });
...@@ -246,26 +257,26 @@ export default { ...@@ -246,26 +257,26 @@ export default {
service_id: parseFloat(this.cellItem.service_id), service_id: parseFloat(this.cellItem.service_id),
spec_id: this.cellItem.svc_spec_id, spec_id: this.cellItem.svc_spec_id,
duration: this.cellItem.duration, duration: this.cellItem.duration,
duration_unit: this.cellItem.duration_unit duration_unit: this.cellItem.duration_unit,
}; };
this.$router.push({ this.$router.push({
path: "/shop/shop_car_apply", path: "/shop/shop_car_apply",
query: query query: query,
}); });
} else if (this.cellItem.order_type == 2) { } else if (this.cellItem.order_type == 2) {
query = { query = {
app_id: parseFloat(this.cellItem.app_id), app_id: parseFloat(this.cellItem.app_id),
spec_id: this.cellItem.spec_app, spec_id: this.cellItem.spec_app,
duration: this.cellItem.duration, duration: this.cellItem.duration,
duration_unit: this.cellItem.duration_unit duration_unit: this.cellItem.duration_unit,
}; };
this.$router.push({ this.$router.push({
path: "/shop/shop_car_apply", path: "/shop/shop_car_apply",
query: query query: query,
}); });
} else if (this.cellItem.order_type == 2) { } else if (this.cellItem.order_type == 2) {
this.$router.push({ this.$router.push({
path: "/shop/shop_cloud" path: "/shop/shop_cloud",
}); });
} }
}, },
...@@ -273,34 +284,52 @@ export default { ...@@ -273,34 +284,52 @@ export default {
if (this.cellItem.order_type == 1) { if (this.cellItem.order_type == 1) {
this.$api.user this.$api.user
.getServiceEvaluation({ apply_id: this.cellItem.apply_id }) .getServiceEvaluation({ apply_id: this.cellItem.apply_id })
.then(response => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.message = response.data.data; this.message = response.data.data;
this.showMsgBox = true; this.showMsgBox = true;
} else { } else {
this.$message({ this.$message({
message: "获取评价失败", message: "获取评价失败",
type: "error" type: "error",
}); });
} }
}); });
} else if (this.cellItem.order_type == 2) { } else if (this.cellItem.order_type == 2) {
this.$api.user this.$api.user
.getAppEvaluation({ apply_id: this.cellItem.apply_id }) .getAppEvaluation({ apply_id: this.cellItem.apply_id })
.then(response => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.message = response.data.data; this.message = response.data.data;
this.showMsgBox = true; this.showMsgBox = true;
} else { } else {
this.$message({ this.$message({
message: "获取评价失败", message: "获取评价失败",
type: "error" type: "error",
}); });
} }
}); });
} }
},
cancelDetail() {
this.$api.user
.cancelOrder({ order_id: this.cellItem.order_id })
.then((response) => {
if (response.data.success == 1) {
this.$message({
message: "取消订单成功",
type: "success",
});
this.$emit("updateList");
} else {
this.$message({
message: "取消订单失败",
type: "error",
});
} }
} });
},
},
}; };
</script> </script>
......
...@@ -2,77 +2,117 @@ ...@@ -2,77 +2,117 @@
<div class="info_logo"> <div class="info_logo">
<div class="logo"> <div class="logo">
<img :src="data.url" alt="" /> <img :src="data.url" alt="" />
<map-view v-if="data.isMap" :id="data.portal_id"></map-view>
</div> </div>
<div class="info"> <div class="info">
<p class="info_title"> <p class="info_title">
<span>{{ data.name }}</span> <span>{{ data.name }}</span>
<span class="bs" v-if="data.aqdetail" @click="subevent(0)" <span
>一键部署</span class="info_fix"
> v-if="data.fixed_process"
<span class="info_fix" v-if="data.fxdetail" @click="subevent(1)" @click="goto_page(data.fixedurl)"
>我要编辑</span
>
<span class="info_fix" v-if="data.yydebugger" @click="subevent(5)"
>应用调试</span
> >
我要编辑
</span>
<span class="bs" v-if="data.aqdetail" @click="subevent(0)">
一键部署
</span>
<span class="info_fix" v-if="data.fxdetail" @click="subevent(1)">
我要编辑
</span>
<span class="info_fix" v-if="data.yydebugger" @click="subevent(5)">
应用调试
</span>
<span <span
class="right gap" class="right gap"
v-if="data.yydetail || data.xxdetail || data.yydev" v-if="data.yydetail || data.xxdetail || data.yydev||data.public||data.unpublic||data.undeploy||data.deploy"
>|</span
> >
|
</span>
<span <span
class="right underline" class="right underline"
v-if="data.xxdetail" v-if="data.xxdetail"
@click="subevent(2,get_strd(data.xxdetail)[0])" @click="subevent(2, get_strd(data.xxdetail)[0])"
:style="get_strd(data.xxdetail)[0]?{backgroundColor:'#ccc',color:'#e6ebfe'}:''" :style="
:title="get_strd(data.xxdetail)[1]=='申请下线'?'申请下线至开发者应用':'申请上线至平台应用'" get_strd(data.xxdetail)[0]
>{{ get_strd(data.xxdetail)[1] }}</span ? { backgroundColor: '#ccc', color: '#e6ebfe' }
: ''
"
:title="
get_strd(data.xxdetail)[1] == '申请下线'
? '申请下线至开发者应用'
: '申请上线至平台应用'
"
> >
{{ get_strd(data.xxdetail)[1] }}
</span>
<span <span
class="right undersell" class="right undersell"
v-if="data.yydetail" v-if="data.yydetail"
:style="get_strd(data.yydetail)[0]?{backgroundColor:'#ccc',color:'#e6ebfe'}:''" :style="
@click="subevent(3,get_strd(data.yydetail)[0])" get_strd(data.yydetail)[0]
>{{ get_strd(data.yydetail)[1] }}</span ? { backgroundColor: '#ccc', color: '#e6ebfe' }
: ''
"
@click="subevent(3, get_strd(data.yydetail)[0])"
> >
{{ get_strd(data.yydetail)[1] }}
</span>
<span <span
class="right undersell undermy" class="right undersell undermy"
v-if="data.bsdetail" v-if="data.bsdetail"
@click="subevent(4)" @click="subevent(4)"
>申请密钥</span
> >
申请密钥
</span>
<span <span
class="info_fix" class="info_fix"
v-if="data.fixed" v-if="data.fixed"
@click="goto_page(data.fixedurl)" @click="goto_page(data.fixedurl)"
>我要修改</span
>
<span class="info_fix" v-if="data.yydev" @click="subevent(6)"
>应用开发</span
> >
我要修改
</span>
<span class="right undersell" v-if="data.deploy" @click="subevent(10)">
部署
</span>
<span class="right undersell1" v-if="data.undeploy" @click="subevent(9)">
取消部署
</span>
<span class="right undersell" v-if="data.public" @click="subevent(8)">
发布
</span>
<span class="right undersell1" v-if="data.unpublic" @click="subevent(7)">
取消发布
</span>
<span class="info_fix" v-if="data.yydev" @click="subevent(6)">
应用开发
</span>
</p> </p>
<div class="info_detail"> <div class="info_detail">
<p> <p>
<label v-for="(item, index) in data.first" :key="index + 2000" <label v-for="(item, index) in data.first" :key="index + 2000">
>{{ item.name }}: {{ item.name }}:
<span :style="item.color ? { color: item.color } : {}">{{ <span :style="item.color ? { color: item.color } : {}">
item.text {{ item.text }}
}}</span> </span>
</label> </label>
</p> </p>
<p> <p>
<label v-for="(item, index) in data.second" :key="index + 2500" <label v-for="(item, index) in data.second" :key="index + 2500">
>{{ item.name }}: {{ item.name }}:
<a <a
v-if="item.name.indexOf('地址') !== -1" v-if="item.name.indexOf('地址') !== -1"
style="color:#515fe7;text-decoration: none;" style="color:#515fe7;text-decoration: none;"
target="_blank" target="_blank"
:href="item.text" :href="item.text"
>{{ item.text }}</a
> >
<span v-else :style="item.color ? { color: item.color } : {}">{{ {{ item.text }}
item.text </a>
}}</span> <span v-else :style="item.color ? { color: item.color } : {}">
{{ item.text }}
</span>
</label> </label>
</p> </p>
</div> </div>
...@@ -81,54 +121,58 @@ ...@@ -81,54 +121,58 @@
</template> </template>
<script> <script>
import MapView from "./service-info/map-view";
export default { export default {
props: ["data"], props: ["data"],
components: {}, components: { MapView },
data() { data() {
return {}; return {};
}, },
watch: {}, watch: {},
computed: {}, computed: {},
created() { created() {
console.log(this.data.url); console.log(this.data);
}, },
mounted() {}, mounted() {},
methods: { methods: {
get_strd(str){ get_strd(str) {
if(str){ if (str) {
if(str.indexOf('d')!==-1){ if (str.indexOf("d") !== -1) {
return [true,str.substr(0,str.length-1)] return [true, str.substr(0, str.length - 1)];
}else { } else {
return [false,str] return [false, str];
} }
} }
}, },
subevent(val,flag=false){ subevent(val, flag = false) {
if(flag){ if (flag) {
return return;
} }
if(val == 0){ if (val == 0) {
// this.$emit('deploy',this.data) // this.$emit('deploy',this.data)
this.$router.push(`/yygl/${this.$route.params.level}/${this.$route.params.type}/deployment/${this.$route.params.id}?source=${this.$route.query.source}`) this.$router.push(
`/yygl/${this.$route.params.level}/${this.$route.params.type}/deployment/${this.$route.params.id}?source=${this.$route.query.source}`
);
console.log(this.$route); console.log(this.$route);
}else if(val == 1){ } else if (val == 1) {
this.$emit('editapp') this.$emit("editapp");
}else if(val == 2){ } else if (val == 2) {
this.$emit('unline',this.data) this.$emit("unline", this.data);
}else if(val == 3){ } else if (val == 3) {
this.$emit('unsell',this.data) this.$emit("unsell", this.data);
}else if(val == 4){ } else if (val == 4) {
this.$emit('applymy') this.$emit("applymy");
}else if(val == 5){ } else if (val == 5) {
// /yygl/:level/:type/appdebugger/:deploy_id // /yygl/:level/:type/appdebugger/:deploy_id
this.$emit('debuggerfunc') this.$emit("debuggerfunc");
}else if(val == 6){ } else if (val == 6) {
this.$emit('applymy') this.$emit("applymy");
} }
}, },
goto_page(url){ goto_page(url) {
this.$router.push(url) this.$router.push(url);
} },
}, },
}; };
</script> </script>
...@@ -147,10 +191,16 @@ export default { ...@@ -147,10 +191,16 @@ export default {
margin-right: 13px; margin-right: 13px;
background-size: cover; background-size: cover;
text-align: center; text-align: center;
position: relative;
} }
.logo img { .logo img {
width: 100%; width: 100%;
} }
.logo > .map_view {
position: absolute;
right: 0;
bottom: 0;
}
.info { .info {
float: left; float: left;
width: calc(100% - 157px); width: calc(100% - 157px);
...@@ -209,7 +259,7 @@ export default { ...@@ -209,7 +259,7 @@ export default {
text-align: center; text-align: center;
margin-left: 10px; margin-left: 10px;
} }
.undersell { .undersell,.undersell1 {
width: 76px; width: 76px;
height: 32px; height: 32px;
background-color: #0f2683; background-color: #0f2683;
...@@ -221,6 +271,11 @@ export default { ...@@ -221,6 +271,11 @@ export default {
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;
} }
.undersell1{
color: #0f2683;
background-color: #e6ebfe;
margin-left: 10px;
}
.undermy { .undermy {
background-color: #515fe7; background-color: #515fe7;
color: #e6ebfe; color: #e6ebfe;
......
<template>
<div class="map_view">
<a class="map_view_action" href="#" @click.prevent.stop="viewAction">
<img :src="require('../../assets/imgs/ic_yulan.png')" />
</a>
<transition name="mask-bg-fade">
<el-dialog
class="map_view_dialog"
title="预览"
width="1200px"
:visible.sync="showDialog"
:before-close="beforeClose"
>
<div class="map_view_container">
<iframe v-if="src" :src="src" frameborder="0"></iframe>
</div>
</el-dialog>
</transition>
</div>
</template>
<script>
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default {
name: "map-view",
data: () => ({
showDialog: false,
src: "",
}),
props: {
id: {
type: [String, Number],
required: true,
},
},
methods: {
viewAction() {
this.src = gisServiceUrl + `/portal/apaasplat/viewer/previewMap.html?id=${this.id}`;
this.showDialog = true;
},
beforeClose(done) {
this.src = "";
done();
},
},
};
</script>
<style scoped>
.map_view_action {
display: flex;
justify-content: center;
align-items: center;
width: 40px;
height: 40px;
padding: 10px 0 0 10px;
box-sizing: border-box;
border-top-left-radius: 40px;
background-color: #8f93a1;
}
.map_view_container {
height: 666px;
}
.map_view_container > iframe {
display: block;
width: 100%;
height: 100%;
}
</style>
<style>
.map_view_dialog .el-dialog {
overflow: hidden;
}
.map_view_dialog .el-dialog__header {
padding: 18px 20px 17px;
border-bottom: 1px solid #edf0ff;
text-align: left;
}
.map_view_dialog .el-dialog__body {
padding: 0;
}
</style>
...@@ -19,6 +19,10 @@ ...@@ -19,6 +19,10 @@
<div class="main_container"> <div class="main_container">
<div class="main_container-left" v-if="data.cover"> <div class="main_container-left" v-if="data.cover">
<img :src="data.cover" width="100%" /> <img :src="data.cover" width="100%" />
<map-view
v-if="data.type === 'Map Service'"
:id="data.portal_id"
></map-view>
</div> </div>
<div class="main_container-right"> <div class="main_container-right">
<ul class="service_base_info"> <ul class="service_base_info">
...@@ -118,8 +122,12 @@ ...@@ -118,8 +122,12 @@
<script> <script>
import helper from "@/services/helper.js"; import helper from "@/services/helper.js";
import MapView from "./map-view";
export default { export default {
components: {
MapView,
},
props: { props: {
data: { data: {
type: Object, type: Object,
...@@ -272,10 +280,16 @@ export default { ...@@ -272,10 +280,16 @@ export default {
background-color: #f9fafc; background-color: #f9fafc;
margin-right: 30px; margin-right: 30px;
font-size: 0; font-size: 0;
position: relative;
} }
.main_container-left img { .main_container-left img {
width: 100%; width: 100%;
} }
.main_container-left > .map_view {
position: absolute;
right: 3px;
bottom: 3px;
}
.main_container-right { .main_container-right {
flex-grow: 1; flex-grow: 1;
} }
......
<template> <template>
<div class="com_card"> <div class="com_card">
<div class="com_card_top"> <div class="com_card_top">
<img <img :src="cellData.logo" class="com_card_img" />
:src="cellData.logo"
class="com_card_img"
/>
<div class="com_card_name_v"> <div class="com_card_name_v">
<div class="com_card_msg_name">{{ cellData.app_name }}</div> <div class="com_card_msg_name">{{ cellData.app_name }}</div>
<div class="com_card_msg_version">V{{ cellData.version }}</div> <div class="com_card_msg_version">V{{ cellData.version }}</div>
...@@ -35,10 +32,10 @@ export default { ...@@ -35,10 +32,10 @@ export default {
components: {}, components: {},
props: { props: {
url: { type: String, default: "" }, url: { type: String, default: "" },
cellData: { type: Object, default: {} } cellData: { type: Object, default: {} },
}, },
data: () => ({ data: () => ({
helper: helper helper: helper,
}), }),
computed: {}, computed: {},
watch: {}, watch: {},
...@@ -48,9 +45,40 @@ export default { ...@@ -48,9 +45,40 @@ export default {
this.$router.push(this.url + "/" + parame); this.$router.push(this.url + "/" + parame);
} }
}, },
addShop(id) {} addShop(id) {
let query = {
service_id: 0, // 0表示不是服务
app_id: parseFloat(id),
spec_id: 1,
duration: 1,
duration_method: 1,
is_subscribe: 0, // 是否订阅
};
this.$api.serviceShop
.addShoppingCart()
.then(({ data }) => {
if (data.success == 1) {
this.$message({
message: data.errMsg,
type: "success",
});
this.$store.commit("setMenuCartState");
} else {
this.$message({
message: data.errMsg,
type: "warning",
});
}
})
.catch((error) => {
this.$message({
message: `添加购物车失败`,
type: "warning",
});
});
},
}, },
mounted() {} mounted() {},
}; };
</script> </script>
......
...@@ -9,9 +9,11 @@ ...@@ -9,9 +9,11 @@
<div> <div>
<div class="head_flex"> <div class="head_flex">
<el-breadcrumb separator="/" class="bread_crumb1 bread_left"> <el-breadcrumb separator="/" class="bread_crumb1 bread_left">
<el-breadcrumb-item :to="{ path: '/shop' }">{{ <el-breadcrumb-item :to="{ path: '/shop' }">
{{
$t("lang.service_shop") $t("lang.service_shop")
}}</el-breadcrumb-item> }}
</el-breadcrumb-item>
<el-breadcrumb-item>{{ name }}</el-breadcrumb-item> <el-breadcrumb-item>{{ name }}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
<div class="input_right"> <div class="input_right">
...@@ -26,11 +28,7 @@ ...@@ -26,11 +28,7 @@
<block-radius> <block-radius>
<!-- filter --> <!-- filter -->
<div v-if="urlFilter" class="classification"> <div v-if="urlFilter" class="classification">
<div <div v-for="(item, index) in filterLists" :key="'cd' + index" class="classification_line">
v-for="(item, index) in filterLists"
:key="'cd' + index"
class="classification_line"
>
<div <div
class="classification_line_if" class="classification_line_if"
v-if="item.childDomains && item.childDomains.length != 0" v-if="item.childDomains && item.childDomains.length != 0"
...@@ -60,8 +58,7 @@ ...@@ -60,8 +58,7 @@
? 'classification_act' ? 'classification_act'
: '' : ''
" "
>全部</span >全部</span>
>
</div> </div>
</li> </li>
<li <li
...@@ -83,8 +80,7 @@ ...@@ -83,8 +80,7 @@
? 'classification_act' ? 'classification_act'
: '' : ''
" "
>{{ items.name }}</span >{{ items.name }}</span>
>
<!-- if item have children, we will use an arrow to prompt --> <!-- if item have children, we will use an arrow to prompt -->
<i <i
v-if=" v-if="
...@@ -120,14 +116,8 @@ ...@@ -120,14 +116,8 @@
> >
<span v-if="openList[index] == 'down'">收起</span> <span v-if="openList[index] == 'down'">收起</span>
<span v-if="openList[index] == 'up'">展开</span> <span v-if="openList[index] == 'up'">展开</span>
<i <i v-if="openList[index] == 'down'" class="el-icon-caret-top"></i>
v-if="openList[index] == 'down'" <i v-if="openList[index] == 'up'" class="el-icon-caret-bottom"></i>
class="el-icon-caret-top"
></i>
<i
v-if="openList[index] == 'up'"
class="el-icon-caret-bottom"
></i>
</div> </div>
</div> </div>
<!-- filter children --> <!-- filter children -->
...@@ -155,8 +145,7 @@ ...@@ -155,8 +145,7 @@
? 'classification_act' ? 'classification_act'
: '' : ''
" "
>{{ itemChildren.name }}</span >{{ itemChildren.name }}</span>
>
</div> </div>
</li> </li>
</ul> </ul>
...@@ -181,12 +170,9 @@ ...@@ -181,12 +170,9 @@
size="small" size="small"
:class="index == activeBtn ? 'button_filter_act' : 'button_filter'" :class="index == activeBtn ? 'button_filter_act' : 'button_filter'"
@click="clickButtonFilter(index)" @click="clickButtonFilter(index)"
>{{ item.name }}</el-button >{{ item.name }}</el-button>
>
<div v-if="urlFilter == 'app'" class="btn_right_check"> <div v-if="urlFilter == 'app'" class="btn_right_check">
<el-checkbox v-model="couldTwice" @change="changeTwice" <el-checkbox v-model="couldTwice" @change="changeTwice">支持二次开发</el-checkbox>
>支持二次开发</el-checkbox
>
</div> </div>
</div> </div>
<!-- the list --> <!-- the list -->
...@@ -441,7 +427,9 @@ export default { ...@@ -441,7 +427,9 @@ export default {
let list = this.filterLists; let list = this.filterLists;
for (let i = 0; i < list.length; i++) { for (let i = 0; i < list.length; i++) {
if (list[i].childDomains.length != 0) { if (list[i].childDomains.length != 0) {
let offHeight = Math.ceil(document.getElementById(list[i].id).offsetHeight); let offHeight = Math.ceil(
document.getElementById(list[i].id).offsetHeight
);
if (offHeight > 60) { if (offHeight > 60) {
list[i].showOpen = true; list[i].showOpen = true;
this.openList[i] = "up"; this.openList[i] = "up";
...@@ -669,11 +657,26 @@ export default { ...@@ -669,11 +657,26 @@ export default {
.button_filter { .button_filter {
background-color: #e6eefe; background-color: #e6eefe;
color: #626de9; color: #626de9;
font-size: 10px; border: 1px solid #e6eefe;
font-size: 12px;
}
.button_filter:hover {
border: 1px solid rgb(198, 226, 255);
}
.button_filter:focus {
border: 1px solid rgb(58, 142, 230);
} }
.button_filter_act { .button_filter_act {
background-color: #515fe7; background-color: #515fe7;
border: 1px solid #515fe7;
color: #f8f9fd; color: #f8f9fd;
font-size: 12px;
}
.button_filter_act:hover {
border: 1px solid #414fd7;
}
.button_filter_act:focus {
border: 1px solid #313fc7;
} }
.btn_group { .btn_group {
margin-bottom: 15px; margin-bottom: 15px;
......
...@@ -119,7 +119,7 @@ export default { ...@@ -119,7 +119,7 @@ export default {
.service_shop_menu_list > li { .service_shop_menu_list > li {
padding: 16px 10px 8px 22px; padding: 16px 10px 8px 22px;
border-left: 5px solid #0d1847; border-left: 5px solid #0d1847;
font-size: 16px; font-size: 15px;
line-height: 24px; line-height: 24px;
cursor: pointer; cursor: pointer;
} }
......
...@@ -91,6 +91,7 @@ export default { ...@@ -91,6 +91,7 @@ export default {
margin-bottom: 3px; margin-bottom: 3px;
} }
.detail-item .detail-text { .detail-item .detail-text {
word-break: break-all;
font-size: 14px; font-size: 14px;
line-height: 25px; line-height: 25px;
color: #242c43; color: #242c43;
......
...@@ -180,4 +180,7 @@ export default { ...@@ -180,4 +180,7 @@ export default {
.service_info_tab .detail-list .el-table__row:nth-child(odd) td { .service_info_tab .detail-list .el-table__row:nth-child(odd) td {
background-color: #fff; background-color: #fff;
} }
.service_info_tab.el-tabs--border-card > .el-tabs__header .el-tabs__item:hover {
color: #e56600;
}
</style> </style>
...@@ -48,7 +48,8 @@ export default { ...@@ -48,7 +48,8 @@ export default {
}, },
rules: { rules: {
preson: [ preson: [
{ required: true, message: "请输入部门联系人", trigger: "blur" } { required: true, message: "请输入部门联系人", trigger: "blur" },
{max:16, message: "不能超过16个字符", trigger: "blur" }
], ],
phone: [ phone: [
{ required: true, message: "请输入联系电话", trigger: "blur" }, { required: true, message: "请输入联系电话", trigger: "blur" },
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</div> </div>
<p class="inputtitle">应用场景:</p> <p class="inputtitle">应用场景:</p>
<div class="system"> <div class="system">
<el-input v-model="sceneinput" placeholder="请填写申请服务的应用场景"></el-input> <el-input maxlength="400" show-word-limit v-model="sceneinput" placeholder="请填写申请服务的应用场景"></el-input>
</div> </div>
<p <p
class="inputtitle degr" class="inputtitle degr"
......
...@@ -4,41 +4,58 @@ ...@@ -4,41 +4,58 @@
<img :src="data.cover" width="100%" /> <img :src="data.cover" width="100%" />
</div> </div>
<div class="shop_card-top"> <div class="shop_card-top">
<p class="shop_card-title text_clip_2" v-text="data.name" :title="data.name"></p> <p
class="shop_card-title text_clip_2"
v-text="data.name"
:title="data.name"
></p>
<p class="shop_card-text under_text"> <p class="shop_card-text under_text">
<span class="text_clip" v-text="data.department_name" :title="data.department_name"></span> <span
class="text_clip"
v-text="data.department_name"
:title="data.department_name"
></span>
<span> <span>
<el-rate <img :src="require('../assets/imgs/shop_ic_star.png')" />
v-model="data.score" <span v-text="data.score"></span>
disabled
show-score
text-color="#ea7d19"
score-template="{value}"
></el-rate>
</span> </span>
</p> </p>
</div> </div>
<div class="shop_card-bottom"> <div class="shop_card-bottom">
<p class="shop_card-text summary text_clip_2" v-if="data.resourceSummary"> <p class="shop_card-text summary text_clip_2" v-if="data.descript">
<span v-text="data.resourceSummary"></span> <span v-text="data.descript"></span>
</p> </p>
<p class="shop_card-text update_time"> <p class="shop_card-text update_time">
<img :src="require('@/assets/imgs/icon_shijian.png')" style="margin-right: 5px;" /> <img
<span class="text_clip" v-text="'更新时间:' + helper.dateStringTransform(data.update_date)"></span> :src="require('@/assets/imgs/shop_ic_updatetime.png')"
style="margin-right: 5px;"
/>
<span
class="text_clip"
v-text="'更新时间:' + helper.dateStringTransform(data.update_date)"
></span>
</p> </p>
<div class="shop_card-text access"> <div class="shop_card-text access">
<span> <span>
<img :src="require('@/assets/imgs/icon_liulan.png')" /> <img :src="require('@/assets/imgs/shop_icon_liulan.png')" />
<span <span
class="text_clip" class="text_clip"
v-text="helper.numberFormat(data.view_count, 2) + (data.view_count > 10000 ? '万' : '') + '次浏览'" v-text="
helper.numberFormat(data.view_count, 2) +
(data.view_count > 10000 ? '万' : '') +
'次浏览'
"
></span> ></span>
</span> </span>
<span> <span>
<img :src="require('@/assets/imgs/icon_huoqu1.png')" /> <img :src="require('@/assets/imgs/shop_ic_huoqu.png')" />
<span <span
class="text_clip" class="text_clip"
v-text="helper.numberFormat(data.apply_count, 2) + (data.apply_count > 10000 ? '万' : '') + '次获取'" v-text="
helper.numberFormat(data.apply_count, 2) +
(data.apply_count > 10000 ? '万' : '') +
'次获取'
"
></span> ></span>
</span> </span>
</div> </div>
...@@ -52,27 +69,27 @@ export default { ...@@ -52,27 +69,27 @@ export default {
props: { props: {
data: { data: {
type: Object, type: Object,
default: () => {} default: () => {},
}, },
detailPath: { detailPath: {
type: String, type: String,
required: true required: true,
}, },
showImg: { showImg: {
type: Boolean, type: Boolean,
default: false default: false,
} },
}, },
data() { data() {
return { return {
helper helper,
}; };
}, },
methods: { methods: {
intoDetail() { intoDetail() {
this.$router.push(this.detailPath + this.data.id); this.$router.push(this.detailPath + this.data.id);
} },
} },
}; };
</script> </script>
...@@ -101,7 +118,6 @@ export default { ...@@ -101,7 +118,6 @@ export default {
.shop_card-title { .shop_card-title {
height: 42px; height: 42px;
font-size: 16px; font-size: 16px;
font-weight: bold;
color: #0d1847; color: #0d1847;
line-height: 21px; line-height: 21px;
cursor: pointer; cursor: pointer;
...@@ -116,16 +132,11 @@ export default { ...@@ -116,16 +132,11 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
color: #58617a;
} }
.shop_card-text.under_text > span:nth-child(2) { .shop_card-text.under_text > span:nth-child(2) {
flex-shrink: 0; flex-shrink: 0;
margin-left: 10px; 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-family: Arial;
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
...@@ -152,9 +163,9 @@ export default { ...@@ -152,9 +163,9 @@ export default {
align-items: center; align-items: center;
padding-top: 11px; padding-top: 11px;
border-top: 1px solid #ededed; border-top: 1px solid #ededed;
color: #58617a;
} }
.shop_card-text.access > span > * { .shop_card-text.access > span > * {
width: 15px;
vertical-align: middle; vertical-align: middle;
} }
.shop_card-text.access > span > img { .shop_card-text.access > span > img {
......
...@@ -2,14 +2,16 @@ ...@@ -2,14 +2,16 @@
<div class="shop_list"> <div class="shop_list">
<h3 class="shop_list-title"> <h3 class="shop_list-title">
<span v-text="name"></span> <span v-text="name"></span>
<a @click.prevent="goto" :style="{ cursor: to ? 'pointer' : 'text' }"> <a @click.prevent="goto" :style="{ cursor: to ? 'pointer' : 'text' }"></a>
<i class="el-icon-arrow-right"></i>
</a>
</h3> </h3>
<ul class="shop_cards"> <ul class="shop_cards">
<li v-for="(item, index) in data" :key="'card_' + index"> <li v-for="(item, index) in data" :key="'card_' + index">
<shop-card :data="item" :showImg="showImg" :detail-path="detailPath"></shop-card> <shop-card
:data="item"
:showImg="showImg"
:detail-path="detailPath"
></shop-card>
</li> </li>
</ul> </ul>
</div> </div>
...@@ -20,37 +22,37 @@ import shopCard from "./shop-card"; ...@@ -20,37 +22,37 @@ import shopCard from "./shop-card";
export default { export default {
components: { components: {
shopCard shopCard,
}, },
props: { props: {
name: { name: {
type: String, type: String,
required: true required: true,
}, },
to: { to: {
type: String, type: String,
required: true required: true,
}, },
detailPath: { detailPath: {
type: String, type: String,
required: true required: true,
}, },
data: { data: {
type: Array, type: Array,
default: () => [] default: () => [],
}, },
showImg: { showImg: {
type: Boolean, type: Boolean,
default: false default: false,
} },
}, },
methods: { methods: {
goto() { goto() {
if (this.to) { if (this.to) {
this.$router.push(this.to); this.$router.push(this.to);
} }
} },
} },
}; };
</script> </script>
...@@ -59,26 +61,25 @@ export default { ...@@ -59,26 +61,25 @@ export default {
margin: 13px 20px; margin: 13px 20px;
} }
.shop_list-title > span { .shop_list-title > span {
display: inline-block;
vertical-align: middle;
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
color: #0d1847; color: #0d1847;
line-height: 27px; line-height: 27px;
} }
.shop_list-title > a { .shop_list-title > a {
display: inline-flex; display: inline-block;
justify-content: center; vertical-align: middle;
align-items: center; background-image: url("../assets/imgs/home_btn_enter.png");
width: 28px; width: 28px;
height: 28px; height: 28px;
background-color: #fff; background-size: 100%;
border: 1px solid #edeff6; vertical-align: -9px;
border-radius: 5px; margin-left: 5px;
overflow: hidden;
margin-left: 10px;
} }
.shop_list-title > a > i { .shop_list-title > a:hover {
font-weight: bolder; background-image: url("../assets/imgs/home_btn_enter_hov.png");
color: #1e3595;
} }
.shop_cards { .shop_cards {
display: flex; display: flex;
......
...@@ -200,6 +200,7 @@ ...@@ -200,6 +200,7 @@
{{ scope.row[item.prop] }} {{ scope.row[item.prop] }}
</span> </span>
<!-- others --> <!-- others -->
<span v-else-if="item.type === 'click'" style="cursor: pointer;" @click="gotopage(item.url,scope.row[item.prop][item.id])">{{ scope.row[item.prop] }}</span>
<span v-else>{{ scope.row[item.prop] }}</span> <span v-else>{{ scope.row[item.prop] }}</span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -458,6 +459,9 @@ export default { ...@@ -458,6 +459,9 @@ export default {
} }
}); });
}, },
gotopage(url,id){
this.$router.push(`/fwgl/0/0/servicedetail/${id}`)
},
//本地删除 //本地删除
deleteLocal(val) { deleteLocal(val) {
this.selectedTabsPage.splice(val.$index, 1); this.selectedTabsPage.splice(val.$index, 1);
......
This diff is collapsed.
<template>
<div class="topo_inner">
<div id="container" ref="conCav" class="canvas"></div>
</div>
</template>
<script>
import G6 from "@antv/g6";
export default {
props: {
datas: {
type: Object,
default: () => {
return {
nodes: [],
edges: [],
};
},
},
namespace: String,
},
data: () => {
return {
options: [
{
value: "default",
label: "default",
},
{
value: "addNode",
label: "addNode",
},
{
value: "addEdge",
label: "addEdge",
},
],
value: "",
graph: null,
};
},
mounted() {
this.getCav();
},
watch: {
datas(val) {},
},
methods: {
getCav() {
/**
* 该案例演示切换交互模式,在不同模式下实现拖动节点、增加节点、增加边的交互行为。
*/
let addedCount = 0;
// Register a custom behavior: add a node when user click the blank part of canvas
G6.registerBehavior("click-add-node", {
// Set the events and the corresponding responsing function for this behavior
getEvents() {
// The event is canvas:click, the responsing function is onClick
return {
"canvas:click": "onClick",
};
},
// Click event
onClick(ev) {
console.log(ev.canvasX, ev.canvasY);
const self = this;
const graph = self.graph;
// Add a new node
graph.addItem("node", {
x: ev.canvasX,
y: ev.canvasY,
id: `node-${addedCount}`, // Generate the unique id
});
addedCount++;
},
});
// Register a custom behavior: click two end nodes to add an edge
G6.registerBehavior("click-add-edge", {
// Set the events and the corresponding responsing function for this behavior
getEvents() {
return {
"node:click": "onClick", // The event is canvas:click, the responsing function is onClick
mousemove: "onMousemove", // The event is mousemove, the responsing function is onMousemove
"edge:click": "onEdgeClick", // The event is edge:click, the responsing function is onEdgeClick
};
},
// The responsing function for node:click defined in getEvents
onClick(ev) {
const self = this;
const node = ev.item;
const graph = self.graph;
// The position where the mouse clicks
const point = { x: ev.x, y: ev.y };
const model = node.getModel();
if (self.addingEdge && self.edge) {
graph.updateItem(self.edge, {
target: model.id,
});
self.edge = null;
self.addingEdge = false;
} else {
// Add anew edge, the end node is the current node user clicks
self.edge = graph.addItem("edge", {
source: model.id,
target: model.id,
});
self.addingEdge = true;
}
},
// The responsing function for mousemove defined in getEvents
onMousemove(ev) {
const self = this;
// The current position the mouse clicks
const point = { x: ev.x, y: ev.y };
if (self.addingEdge && self.edge) {
// Update the end node to the current node the mouse clicks
self.graph.updateItem(self.edge, {
target: point,
});
}
},
// The responsing function for edge:click defined in getEvents
onEdgeClick(ev) {
const self = this;
const currentEdge = ev.item;
if (self.addingEdge && self.edge === currentEdge) {
self.graph.removeItem(self.edge);
self.edge = null;
self.addingEdge = false;
}
},
});
// Initial data
const data = {
nodes: [
{
id: "node1",
label: "123",
x: 100,
y: 200,
},
{
id: "node2",
label: "123",
x: 300,
y: 200,
},
{
id: "node3",
label: "123",
x: 300,
y: 300,
},
],
edges: [
{
id: "edge1",
target: "node2",
source: "node1",
},
],
};
const graphContainer = document.getElementById("container");
const width = document.getElementById("container").scrollWidth;
const height = document.getElementById("container").scrollHeight || 500;
const graph = new G6.Graph({
container: "container",
width,
height,
// The sets of behavior modes
modes: {
// Defualt mode
default: [
"drag-node",
"click-select",
"click-add-node",
"click-add-edge",
"zoom-canvas"
],
},
defaultNode: {
type: "rect",
style: {
radius: 4,
},
anchorPoints: [
[0.5, 0],
[1, 0.5],
[0.5, 1],
[0, 0.5],
],
},
// The node styles in different states
nodeStateStyles: {
// The node styles in selected state
selected: {
stroke: "#666",
lineWidth: 2,
fill: "steelblue",
},
},
defaultEdge: {
type: "line",
style: {
stroke: "#F6BD16",
endArrow: {
path: "M 0,0 L 20,10 L 20,-10 Z",
fill: "#F6BD16",
},
},
},
});
graph.data(data);
graph.render();
},
},
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.canvas {
height: 800px;
width: 100%;
margin: 0 auto;
position: relative;
}
.topo_inner {
position: relative;
}
</style>
...@@ -56,6 +56,10 @@ const i18n = new VueI18n({ ...@@ -56,6 +56,10 @@ const i18n = new VueI18n({
} }
}) })
import SuperFlow from 'vue-super-flow'
import 'vue-super-flow/lib/index.css'
Vue.use(SuperFlow)
import api from './request/api' import api from './request/api'
Vue.prototype.$api = api; Vue.prototype.$api = api;
......
...@@ -124,15 +124,15 @@ export default { ...@@ -124,15 +124,15 @@ export default {
rules: { rules: {
name: [ name: [
{ required: true, message: "请输入组织机构名称", trigger: "blur" }, { required: true, message: "请输入组织机构名称", trigger: "blur" },
{ max: 10, message: "长度小于10个字符", trigger: "blur" }, { max: 20, message: "长度请小于20个字符", trigger: "blur" },
], ],
shortname: [ shortname: [
// { required: true, message: '请输入组织机构简称', trigger: 'blur' }, // { required: true, message: '请输入组织机构简称', trigger: 'blur' },
{ max: 10, message: "长度小于10个字符", trigger: "blur" }, { max: 20, message: "长度请小于20个字符", trigger: "blur" },
], ],
desc: [ desc: [
// { required: true, message: '请输入组织说明', trigger: 'blur' }, // { required: true, message: '请输入组织说明', trigger: 'blur' },
{ max: 500, message: "长度小于500个字符", trigger: "blur" }, { max: 500, message: "长度小于500个字符", trigger: "blur" },
], ],
fileList: [ fileList: [
// {required: true, message: '请上传图片', trigger: 'change'} // {required: true, message: '请上传图片', trigger: 'change'}
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
权限管理 / 角色管理 / 权限管理 / 角色管理 /
<span>{{ <span>{{
$route.path.indexOf("edit") !== -1 $route.path.indexOf("edit") !== -1
? "角色类型" ? "编辑角色"
: $route.path.indexOf("add") !== -1 : $route.path.indexOf("add") !== -1
? "新增角色" ? "新增角色"
: "分配权限" : "分配权限"
......
...@@ -349,10 +349,10 @@ export default { ...@@ -349,10 +349,10 @@ export default {
}); });
}, },
change_type() { change_type() {
this.form.systemname = ""; // this.form.systemname = "";
this.form.domain = ""; // this.form.domain = "";
this.form.ip = []; // this.form.ip = [];
this.form.origin = ""; // this.form.origin = "";
}, },
handleClose(tag) { handleClose(tag) {
this.form.ip.splice(this.form.ip.indexOf(tag), 1); this.form.ip.splice(this.form.ip.indexOf(tag), 1);
...@@ -473,18 +473,22 @@ export default { ...@@ -473,18 +473,22 @@ export default {
this.$router.back(-1); this.$router.back(-1);
}, },
add_user() { add_user() {
// this.form.systemname = "";
// this.form.domain = "";
// this.form.ip = [];
// this.form.origin = "";
var temp = { var temp = {
user_id: this.form.account, // 用户名 user_id: this.form.account, // 用户名
password: this.form.password, password: this.form.password,
user_name: this.form.nickname, // 昵称 user_name: this.form.nickname, // 昵称
system_name: this.form.systemname, //系统名称 system_name: this.form.type>=2?this.form.systemname:'', //系统名称
phone: this.form.phone + "", // 电话号 phone: this.form.phone + "", // 电话号
email: this.form.email, // 邮箱 email: this.form.email, // 邮箱
department_id: this.form.origin, // 组织id department_id: this.form.type>=2?this.form.origin:'', // 组织id
is_admin: this.form.type, is_admin: this.form.type,
state: this.form.able, // 用户状态,1——启用,0 禁用 state: this.form.able, // 用户状态,1——启用,0 禁用
domain_name: this.form.domain, // domain_name: this.form.type>=3?this.form.domain:'', //
ip_whitelist: this.form.ip, // ip_whitelist: this.form.type>=3?this.form.ip:[], //
description: this.form.desc, //描述 description: this.form.desc, //描述
link_man: this.form.contact, link_man: this.form.contact,
}; };
...@@ -507,14 +511,14 @@ export default { ...@@ -507,14 +511,14 @@ export default {
var temp = { var temp = {
user_id: this.form.account, // 用户名 user_id: this.form.account, // 用户名
user_name: this.form.nickname, // 昵称 user_name: this.form.nickname, // 昵称
system_name: this.form.systemname, //系统名称 system_name: this.form.type>=2?this.form.systemname:'', //系统名称
phone: this.form.phone + "", // 电话号 phone: this.form.phone + "", // 电话号
email: this.form.email, // 邮箱 email: this.form.email, // 邮箱
department_id: this.form.origin, // 组织id department_id: this.form.type>=2?this.form.origin:'', // 组织id
is_admin: this.form.type, is_admin: this.form.type,
state: this.form.able, // 用户状态,1——启用,0 禁用 state: this.form.able, // 用户状态,1——启用,0 禁用
domain_name: this.form.domain, // domain_name: this.form.type>=3?this.form.domain:'', //
ip_whitelist: this.form.ip && this.form.ip.length ? this.form.ip : [], // ip_whitelist: this.form.type>=3?this.form.ip && this.form.ip.length ? this.form.ip : []:[], //
description: this.form.desc, //描述 description: this.form.desc, //描述
link_man: this.form.contact, link_man: this.form.contact,
}; };
......
...@@ -28,6 +28,22 @@ export default { ...@@ -28,6 +28,22 @@ export default {
{ {
name: "我的应用数据分析", name: "我的应用数据分析",
path: `/data_analysis/my_application` path: `/data_analysis/my_application`
},
{
name: "组织服务数据分析",
path: `/data_analysis/org_service`
},
{
name: "组织应用数据分析",
path: `/data_analysis/org_application`
},
{
name: "运行概况-组织",
path: `/data_analysis/operation_overview`
},
{
name: "服务管控-组织",
path: `/data_analysis/service_control`
} }
], ],
navList: [] navList: []
......
<template>
<div>
组织-运行概况
</div>
</template>
<script>
export default {
methods: {
getData() {}
}
};
</script>
<template>
<div>
组织-应用
</div>
</template>
<script>
export default {
methods: {
getData() {}
}
};
</script>
<template>
<div>
组织-服务
</div>
</template>
<script>
export default {
methods: {
getData() {}
}
};
</script>
<template>
<div>
组织-服务管控
</div>
</template>
<script>
export default {
methods: {
getData() {}
}
};
</script>
<template>
<div class="com_ex">
<WorkFlow />
</div>
</template>
<script>
// @ is an alias to /src
import WorkFlow from "@/components/work-flow/super-flow";
export default {
components: {
WorkFlow,
},
data: () => ({}),
mounted() {},
methods: {},
};
</script>
<style scoped>
.com_ex {
margin-top: 100px;
padding: 20px;
}
</style>
\ No newline at end of file
...@@ -268,8 +268,11 @@ export default { ...@@ -268,8 +268,11 @@ export default {
}); });
}); });
}, },
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() { topFilterAction() {
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
topFilterClear() { topFilterClear() {
this.topFilter = { this.topFilter = {
...@@ -279,7 +282,7 @@ export default { ...@@ -279,7 +282,7 @@ export default {
down_time: "", down_time: "",
}; };
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
showDialog() { showDialog() {
this.$refs.dialog.show(); this.$refs.dialog.show();
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
> >
<select-template <select-template
class="apaas_step_content" class="apaas_step_content"
:tmp-types="[1]"
@change="selectTemplate" @change="selectTemplate"
></select-template> ></select-template>
......
...@@ -260,8 +260,11 @@ export default { ...@@ -260,8 +260,11 @@ export default {
}); });
}); });
}, },
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() { topFilterAction() {
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
topFilterClear() { topFilterClear() {
this.topFilter = { this.topFilter = {
...@@ -270,7 +273,7 @@ export default { ...@@ -270,7 +273,7 @@ export default {
push_time: "", push_time: "",
}; };
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
addNew() { addNew() {
this.$router.push("/message/directed_push/add"); this.$router.push("/message/directed_push/add");
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
<select-template <select-template
class="apaas_step_content" class="apaas_step_content"
:edit="true" :edit="true"
:tmp-types="[2, 3]"
@change="selectTemplate" @change="selectTemplate"
></select-template> ></select-template>
...@@ -98,7 +99,7 @@ export default { ...@@ -98,7 +99,7 @@ export default {
step: 0, step: 0,
done: false, done: false,
templateId: "", templateId: "",
templateContent:"", templateContent: "",
targetUserIds: "", targetUserIds: "",
}; };
}, },
......
...@@ -33,8 +33,9 @@ ...@@ -33,8 +33,9 @@
<span class="filter_title">状态:</span> <span class="filter_title">状态:</span>
<el-select v-model="topFilter.state" placeholder="请选择"> <el-select v-model="topFilter.state" placeholder="请选择">
<el-option label="全部" value=""> </el-option> <el-option label="全部" value=""> </el-option>
<el-option label="推送成功" value="1"> </el-option> <el-option label="推送成功" value="success"> </el-option>
<el-option label="推送失败" value="0"> </el-option> <el-option label="推送失败" value="fail"> </el-option>
<el-option label="推送中" value="pushing"> </el-option>
</el-select> </el-select>
</div> </div>
<div class="filter_item"> <div class="filter_item">
...@@ -259,8 +260,11 @@ export default { ...@@ -259,8 +260,11 @@ export default {
}); });
}); });
}, },
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() { topFilterAction() {
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
topFilterClear() { topFilterClear() {
this.topFilter = { this.topFilter = {
...@@ -269,7 +273,7 @@ export default { ...@@ -269,7 +273,7 @@ export default {
push_time: "", push_time: "",
}; };
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
addNew() { addNew() {
this.$router.push("/message/message_alert/add"); this.$router.push("/message/message_alert/add");
......
...@@ -235,8 +235,11 @@ export default { ...@@ -235,8 +235,11 @@ export default {
}); });
}); });
}, },
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() { topFilterAction() {
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
topFilterClear() { topFilterClear() {
this.topFilter = { this.topFilter = {
...@@ -245,7 +248,7 @@ export default { ...@@ -245,7 +248,7 @@ export default {
update_time: "", update_time: "",
}; };
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
showDialog() { showDialog() {
this.$refs.dialog.show(); this.$refs.dialog.show();
......
...@@ -181,7 +181,11 @@ export default { ...@@ -181,7 +181,11 @@ export default {
.get(`/apaas/service/v3/recommend/manage/featured/services/${this.$route.query.ad_type}`) .get(`/apaas/service/v3/recommend/manage/featured/services/${this.$route.query.ad_type}`)
.then((response) => { .then((response) => {
if (response.data.success) { if (response.data.success) {
if( response.data.data){
this.selected_arr = response.data.data; this.selected_arr = response.data.data;
}else{
this.selected_arr = [];
}
} }
}); });
}, },
......
...@@ -196,8 +196,11 @@ export default { ...@@ -196,8 +196,11 @@ export default {
}); });
}); });
}, },
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() { topFilterAction() {
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
topFilterClear() { topFilterClear() {
this.topFilter = { this.topFilter = {
...@@ -206,7 +209,7 @@ export default { ...@@ -206,7 +209,7 @@ export default {
time: "", time: "",
}; };
this.initList(this.tempFilter); this.resetCurrentPage();
}, },
detailAction(item) { detailAction(item) {
this.$router.push( this.$router.push(
......
...@@ -88,7 +88,7 @@ export default { ...@@ -88,7 +88,7 @@ export default {
{ {
name: "服务请求次数", name: "服务请求次数",
value: 0, value: 0,
icon: require("@/assets/imgs/shop_ic_fuwuzs.png") icon: require("@/assets/imgs/shop_ic_fuwuqqcs.png")
} }
], ],
hot_datas: [], hot_datas: [],
......
...@@ -74,6 +74,7 @@ export default { ...@@ -74,6 +74,7 @@ export default {
[]; [];
this.baseInfo = { this.baseInfo = {
portal_id: datas.portal_id || "", // 时空服务id
service_id: this.id, service_id: this.id,
app_id: 0, app_id: 0,
name: datas.name, name: datas.name,
......
This diff is collapsed.
<template>
<div class="set_notice">
<div class="type_item">
<p class="item_title">服务推送</p>
<p class="item_description">关闭后用户将接收不到服务推送的消息通知</p>
<div class="item_action">
<a
:class="{ on: data.service_message === 1 }"
@click="toggleAction('service_message', 1)"
>
<img
class="icon_off"
:src="require('../../../assets/imgs/btn_off_hov.png')"
/>
<img
class="icon_on"
:src="require('../../../assets/imgs/btn_on_hov.png')"
/>
</a>
</div>
</div>
<div class="type_item">
<p class="item_title">平台维护</p>
<p class="item_description">关闭后用户将接收不到平台维护的消息通知</p>
<div class="item_action">
<a
:class="{ on: data.platform_message === 1 }"
@click="toggleAction('platform_message', 2)"
>
<img
class="icon_off"
:src="require('../../../assets/imgs/btn_off_hov.png')"
/>
<img
class="icon_on"
:src="require('../../../assets/imgs/btn_on_hov.png')"
/>
</a>
</div>
</div>
<div class="type_item">
<p class="item_title">版本更新</p>
<p class="item_description">关闭后用户将接收不到版本更新的消息通知</p>
<div class="item_action">
<a
:class="{ on: data.version_message === 1 }"
@click="toggleAction('version_message', 3)"
>
<img
class="icon_off"
:src="require('../../../assets/imgs/btn_off_hov.png')"
/>
<img
class="icon_on"
:src="require('../../../assets/imgs/btn_on_hov.png')"
/>
</a>
</div>
</div>
<div class="type_item">
<p class="item_title">系统通知</p>
<p class="item_description">关闭后用户将接收不到系统通知的消息通知</p>
<div class="item_action">
<a
:class="{ on: data.system_message === 1 }"
@click="toggleAction('system_message', 4)"
>
<img
class="icon_off"
:src="require('../../../assets/imgs/btn_off_hov.png')"
/>
<img
class="icon_on"
:src="require('../../../assets/imgs/btn_on_hov.png')"
/>
</a>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
data: {
service_message: 0,
platform_message: 0,
version_message: 0,
system_message: 0,
},
disabledstate: {},
};
},
methods: {
getOptions() {
this.$http.get("/apaas/backmgt/center/messageSets").then(({ data }) => {
if (data.success === 1) {
let options = data.data;
this.data.service_message = options.service_message;
this.data.platform_message = options.platform_message;
this.data.version_message = options.version_message;
this.data.system_message = options.system_message;
}
});
},
setOption(typeStr, type, state) {
this.$set(this.disabledstate, typeStr, true);
let finallycallback = () => {
this.$set(this.disabledstate, typeStr, false);
this.getOptions();
};
this.$http
.put("/apaas/backmgt/center/messageSets", null, {
params: {
type,
state,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("设置成功");
} else {
this.$message.error(data.errMsg || "设置失败");
}
finallycallback();
})
.catch((error) => {
console.log(error);
this.$message.error("设置失败");
finallycallback();
});
},
toggleAction(typeStr, type) {
if (this.disabledstate[typeStr]) {
this.$message.warning("你操作的频率过快,请稍等");
return;
}
let state = this.data[typeStr] === 1 ? 0 : 1;
this.$set(this.data, typeStr, state);
this.setOption(typeStr, type, state);
},
},
created() {
this.getOptions();
},
};
</script>
<style>
.set_notice {
width: 410px;
background-color: #fff;
border: 1px solid #e3e5ef;
box-sizing: border-box;
border-radius: 10px;
}
.set_notice::before {
content: "";
position: absolute;
top: -16px;
right: 20px;
border-top: 0 solid transparent;
border-right: 8px solid transparent;
border-bottom: 16px solid #e3e5ef;
border-left: 8px solid transparent;
}
.set_notice::after {
content: "";
position: absolute;
top: -14px;
right: 21px;
border-top: 0 solid transparent;
border-right: 7px solid transparent;
border-bottom: 14px solid #fff;
border-left: 7px solid transparent;
}
.type_item {
position: relative;
padding: 12px 100px 12px 35px;
}
.type_item + .type_item {
border-top: 1px solid #e3e5ef;
}
.type_item p {
font-size: 14px;
line-height: 24px;
color: #242c43;
}
.type_item p.item_title {
position: relative;
}
.type_item p.item_title::before {
content: "";
position: absolute;
top: 8px;
left: -18px;
width: 8px;
height: 8px;
border-radius: 50%;
}
.type_item:nth-child(1) p.item_title::before {
background-color: #e8740f;
}
.type_item:nth-child(2) p.item_title::before {
background-color: #3c61ff;
}
.type_item:nth-child(3) p.item_title::before {
background-color: #ffa80b;
}
.type_item:nth-child(4) p.item_title::before {
background-color: #7785ec;
}
.type_item p.item_description {
color: #a9aec0;
}
.item_action {
position: absolute;
top: 0;
right: 0;
width: 100px;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.item_action a {
font-size: 0;
cursor: pointer;
}
.item_action a .icon_on {
display: none;
}
.item_action a.on .icon_on {
display: inline-block;
}
.item_action a.on .icon_off {
display: none;
}
</style>
...@@ -25,7 +25,10 @@ ...@@ -25,7 +25,10 @@
class="detail_head_cell_val text_red" class="detail_head_cell_val text_red"
v-else-if="(orderDetail.approval_first_level == -1 || orderDetail.approval_second_level == -1) && orderDetail.pay_status != -1" v-else-if="(orderDetail.approval_first_level == -1 || orderDetail.approval_second_level == -1) && orderDetail.pay_status != -1"
>审核未通过</p> >审核未通过</p>
<p class="detail_head_cell_val text_blackblue" v-else-if="orderDetail.pay_status == -1">订单已取消</p> <p
class="detail_head_cell_val text_blackblue"
v-else-if="orderDetail.pay_status == -1"
>订单已取消</p>
</div> </div>
<div class="detail_head_cell detail_head_no border_right"> <div class="detail_head_cell detail_head_no border_right">
<p class="detail_head_cell_title">订单编号</p> <p class="detail_head_cell_title">订单编号</p>
...@@ -181,11 +184,11 @@ ...@@ -181,11 +184,11 @@
</div> </div>
<div v-if="orderDetail.order_type == 2"> <div v-if="orderDetail.order_type == 2">
<div class="detail_s_title">应用简介:</div> <div class="detail_s_title">应用简介:</div>
<div class="detail_app_scence">{{ orderDetail.scene }}</div> <div class="detail_app_scence">{{ orderDetail.app_desc }}</div>
</div> </div>
<div v-if="orderDetail.order_type == 2"> <div v-if="orderDetail.order_type == 2">
<div class="detail_s_title">功能简介:</div> <div class="detail_s_title">功能简介:</div>
<div class="detail_app_scence">{{ orderDetail.scene }}</div> <div class="detail_app_scence">{{ orderDetail.app_func }}</div>
</div> </div>
<div v-if="orderDetail.order_type == 1 || orderDetail.order_type == 2"> <div v-if="orderDetail.order_type == 1 || orderDetail.order_type == 2">
<div class="detail_s_title">应用场景:</div> <div class="detail_s_title">应用场景:</div>
...@@ -256,7 +259,7 @@ export default { ...@@ -256,7 +259,7 @@ export default {
BlockRadius, BlockRadius,
ProcessCard, ProcessCard,
TableUm, TableUm,
InfoList InfoList,
}, },
data: () => ({ data: () => ({
helper: helper, helper: helper,
...@@ -275,21 +278,21 @@ export default { ...@@ -275,21 +278,21 @@ export default {
{ {
title: "审批时间:", title: "审批时间:",
type: "time", type: "time",
info: "" info: "",
}, },
{ {
title: "审批单位:", title: "审批单位:",
info: "" info: "",
}, },
{ {
title: "审批人:", title: "审批人:",
info: "" info: "",
}, },
{ {
title: "审批意见:", title: "审批意见:",
info: "" info: "",
} },
] ],
}, },
{ {
title: "二级审批", title: "二级审批",
...@@ -298,21 +301,21 @@ export default { ...@@ -298,21 +301,21 @@ export default {
{ {
title: "审批时间:", title: "审批时间:",
type: "time", type: "time",
info: "" info: "",
}, },
{ {
title: "审批单位:", title: "审批单位:",
info: "" info: "",
}, },
{ {
title: "审批人:", title: "审批人:",
info: "" info: "",
}, },
{ {
title: "审批意见:", title: "审批意见:",
info: "" info: "",
} },
] ],
}, },
{ {
title: "三级审批", title: "三级审批",
...@@ -321,76 +324,76 @@ export default { ...@@ -321,76 +324,76 @@ export default {
{ {
title: "审批时间:", title: "审批时间:",
type: "time", type: "time",
info: "" info: "",
}, },
{ {
title: "审批单位:", title: "审批单位:",
info: "" info: "",
}, },
{ {
title: "审批人:", title: "审批人:",
info: "" info: "",
}, },
{ {
title: "审批意见:", title: "审批意见:",
info: "" info: "",
} },
] ],
} },
], ],
header_arr: [ header_arr: [
{ {
prop: "name", prop: "name",
label: "字段编码", label: "字段编码",
minWidth: "10%", minWidth: "10%",
align: "center" align: "center",
}, },
{ {
prop: "show_type", prop: "show_type",
label: "字段类型", label: "字段类型",
width: "120px", width: "120px",
align: "center" align: "center",
}, },
{ {
prop: "label", prop: "label",
label: "字段名称", label: "字段名称",
minWidth: "20%", minWidth: "20%",
align: "center" align: "center",
}, },
{ {
prop: "descript", prop: "descript",
label: "字段说明", label: "字段说明",
minWidth: "40%", minWidth: "40%",
align: "center" align: "center",
}, },
{ {
prop: "example", prop: "example",
label: "字段示例", label: "字段示例",
minWidth: "20%", minWidth: "20%",
align: "center" align: "center",
} },
], ],
list_arr: [ list_arr: [
{ {
title: "申请人:", title: "申请人:",
info: "" info: "",
}, },
{ {
title: "联系方式:", title: "联系方式:",
info: "" info: "",
}, },
{ {
title: "申请单位:", title: "申请单位:",
info: "" info: "",
}, },
{ {
title: "申请文件:", title: "申请文件:",
info: "", info: "",
url: "", url: "",
type: "down" type: "down",
} },
], ],
data: [] data: [],
}), }),
mounted() { mounted() {
this.getOrderDetail(); this.getOrderDetail();
...@@ -404,7 +407,7 @@ export default { ...@@ -404,7 +407,7 @@ export default {
getOrderDetail() { getOrderDetail() {
this.$api.user this.$api.user
.getOrderDetail({ order_id: this.$route.params.id }) .getOrderDetail({ order_id: this.$route.params.id })
.then(response => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.orderDetail = response.data.data; this.orderDetail = response.data.data;
if (this.orderDetail.res_fields != "") { if (this.orderDetail.res_fields != "") {
...@@ -421,12 +424,14 @@ export default { ...@@ -421,12 +424,14 @@ export default {
getOrderUser() { getOrderUser() {
this.$api.user this.$api.user
.getOrderUser({ order_id: this.$route.params.id }) .getOrderUser({ order_id: this.$route.params.id })
.then(response => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.list_arr[0].info = response.data.data.name; this.list_arr[0].info = response.data.data.name;
this.list_arr[1].info = response.data.data.phone_number; this.list_arr[1].info = response.data.data.phone_number;
this.list_arr[2].info = response.data.data.organization; this.list_arr[2].info = response.data.data.organization;
this.list_arr[3].info = response.data.data.apply_file; this.list_arr[3].info = helper.downloadFileFormat(
response.data.data.apply_file
);
this.list_arr[3].url = response.data.data.apply_file; this.list_arr[3].url = response.data.data.apply_file;
} else { } else {
console.log(response.data.errMsg); console.log(response.data.errMsg);
...@@ -437,9 +442,9 @@ export default { ...@@ -437,9 +442,9 @@ export default {
this.$api.user this.$api.user
.getOrderApproval({ .getOrderApproval({
apply_id: this.orderDetail.apply_id, apply_id: this.orderDetail.apply_id,
kind: this.orderDetail.order_type kind: this.orderDetail.order_type,
}) })
.then(response => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
let data = response.data.data || []; let data = response.data.data || [];
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
...@@ -462,36 +467,36 @@ export default { ...@@ -462,36 +467,36 @@ export default {
service_id: parseFloat(this.orderDetail.service_id), service_id: parseFloat(this.orderDetail.service_id),
spec_id: this.orderDetail.svc_spec_id, spec_id: this.orderDetail.svc_spec_id,
duration: this.orderDetail.duration, duration: this.orderDetail.duration,
duration_unit: this.orderDetail.duration_unit duration_unit: this.orderDetail.duration_unit,
}; };
} else if (this.orderDetail.order_type == 2) { } else if (this.orderDetail.order_type == 2) {
query = { query = {
app_id: parseFloat(this.orderDetail.app_id), app_id: parseFloat(this.orderDetail.app_id),
spec_id: this.orderDetail.spec_app, spec_id: this.orderDetail.spec_app,
duration: this.orderDetail.duration, duration: this.orderDetail.duration,
duration_unit: this.orderDetail.duration_unit duration_unit: this.orderDetail.duration_unit,
}; };
} }
window.sessionStorage.setItem("shoppingCart", JSON.stringify(query)); window.sessionStorage.setItem("shoppingCart", JSON.stringify(query));
this.$router.push({ this.$router.push({
path: "/shop/shop_car_apply", path: "/shop/shop_car_apply",
query: query query: query,
}); });
}, },
cancelDetail() { cancelDetail() {
this.$api.user this.$api.user
.cancelOrder({ order_id: this.orderDetail.order_id }) .cancelOrder({ order_id: this.orderDetail.order_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.$router.push({ name: "orderList" }); this.$router.push({ name: "orderList" });
} else { } else {
this.$message({ this.$message({
message: "取消订单失败", message: "取消订单失败",
type: "error" type: "error",
}); });
} }
}); });
...@@ -500,34 +505,34 @@ export default { ...@@ -500,34 +505,34 @@ export default {
if (this.orderDetail.order_type == 1) { if (this.orderDetail.order_type == 1) {
this.$api.user this.$api.user
.getServiceEvaluation({ apply_id: this.orderDetail.apply_id }) .getServiceEvaluation({ apply_id: this.orderDetail.apply_id })
.then(response => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.message = response.data.data; this.message = response.data.data;
this.showMsgBox = true; this.showMsgBox = true;
} else { } else {
this.$message({ this.$message({
message: "获取评价失败", message: "获取评价失败",
type: "error" type: "error",
}); });
} }
}); });
} else if (this.orderDetail.order_type == 2) { } else if (this.orderDetail.order_type == 2) {
this.$api.user this.$api.user
.getAppEvaluation({ apply_id: this.orderDetail.apply_id }) .getAppEvaluation({ apply_id: this.orderDetail.apply_id })
.then(response => { .then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.message = response.data.data; this.message = response.data.data;
this.showMsgBox = true; this.showMsgBox = true;
} else { } else {
this.$message({ this.$message({
message: "获取评价失败", message: "获取评价失败",
type: "error" type: "error",
}); });
} }
}); });
} }
} },
} },
}; };
</script> </script>
<style scoped> <style scoped>
......
...@@ -90,21 +90,21 @@ ...@@ -90,21 +90,21 @@
<el-form-item label="应用简介:" prop="yyjj"> <el-form-item label="应用简介:" prop="yyjj">
<el-input <el-input
v-model="app_info.yyjj" v-model="app_info.yyjj"
type="textywly" type="textarea"
placeholder="请输入应用简介" placeholder="请输入应用简介"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="功能简介:" prop="gnjj"> <el-form-item label="功能简介:" prop="gnjj">
<el-input <el-input
v-model="app_info.gnjj" v-model="app_info.gnjj"
type="textywly" type="textarea"
placeholder="请输入功能简介" placeholder="请输入功能简介"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="应用场景示例:" prop="cjsl"> <el-form-item label="应用场景示例:" prop="cjsl">
<el-input <el-input
v-model="app_info.cjsl" v-model="app_info.cjsl"
type="textywly" type="textarea"
placeholder="请输入应用场景示例" placeholder="请输入应用场景示例"
></el-input> ></el-input>
</el-form-item> </el-form-item>
...@@ -352,10 +352,11 @@ export default { ...@@ -352,10 +352,11 @@ export default {
app_rules: { app_rules: {
name: [ name: [
{ required: true, message: "请输入应用名称", trigger: "blur" }, { required: true, message: "请输入应用名称", trigger: "blur" },
{ max: 16, message: "长度小于16个字符", trigger: "blur" }, { max: 400, message: "长度小于16个字符", trigger: "blur" },
], ],
version: [ version: [
{ required: true, message: "请输入应用版本", trigger: "blur" }, { required: true, message: "请输入应用版本", trigger: "blur" },
{ max: 16, message: "长度小于16个字符", trigger: "blur" },
], ],
ywly: [ ywly: [
{ required: true, message: "请选择业务领域", trigger: "change" }, { required: true, message: "请选择业务领域", trigger: "change" },
...@@ -371,12 +372,15 @@ export default { ...@@ -371,12 +372,15 @@ export default {
], ],
yyjj: [ yyjj: [
{ required: true, message: "请选择应用简介", trigger: "change" }, { required: true, message: "请选择应用简介", trigger: "change" },
{ max: 400, message: "长度小于400个字符", trigger: "blur" },
], ],
gnjj: [ gnjj: [
{ required: true, message: "请选择功能简介", trigger: "change" }, { required: true, message: "请选择功能简介", trigger: "change" },
{ max: 400, message: "长度小于400个字符", trigger: "blur" },
], ],
cjsl: [ cjsl: [
{ required: true, message: "请选择应用场景示例", trigger: "change" }, { required: true, message: "请选择应用场景示例", trigger: "change" },
{ max: 400, message: "长度小于400个字符", trigger: "blur" },
], ],
}, },
deploy_info: { deploy_info: {
...@@ -395,8 +399,14 @@ export default { ...@@ -395,8 +399,14 @@ export default {
file: "", file: "",
}, },
image_rules: { image_rules: {
image_name: [{ validator: image_name_pass, trigger: "blur" }], image_name: [
tag: [{ required: true, message: "请输入版本数", trigger: "blur" }], { validator: image_name_pass, trigger: "blur" },
{ max: 16, message: "长度小于16个字符", trigger: "blur" },
],
tag: [
{ required: true, message: "请输入版本数", trigger: "blur" },
{ max: 16, message: "长度小于16个字符", trigger: "blur" },
],
file: [ file: [
{ required: true, message: "请选择镜像文件", trigger: "change" }, { required: true, message: "请选择镜像文件", trigger: "change" },
], ],
......
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
</template> </template>
<script> <script>
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default { export default {
data() { data() {
return { return {
originUrl:'https://apaasgis.wodcloud.com/portal/apps/webappbuilder/index.html' originUrl: gisServiceUrl + '/portal/apps/webappbuilder/index.html'
}; };
}, },
computed:{ computed:{
...@@ -44,7 +45,7 @@ export default { ...@@ -44,7 +45,7 @@ export default {
if (data.cmd == 'appbuildermsg'){ if (data.cmd == 'appbuildermsg'){
console.log(data); console.log(data);
this.$store.commit("setAppBuilderParams", data.params); this.$store.commit("setAppBuilderParams", data.params);
this.$router.push(`/fwzc/fwcs`); this.$router.push(`/fwzc/fwcs?map=4`);
} }
}) })
}, },
......
...@@ -15,29 +15,37 @@ ...@@ -15,29 +15,37 @@
</template> </template>
<script> <script>
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default { export default {
data() { data() {
return { return {
originUrl:'https://apaasgis.wodcloud.com/portal/apaasplat/viewer/item.html' originUrl: gisServiceUrl + '/portal/apaasplat/viewer/item.html',
}; };
}, },
computed:{ computed:{
itemUrl:function(){ itemUrl(){
let _self = this; let _self = this;
if(_self.$route.name == 'intelligent_details'){ if(_self.$route.name == 'intelligent_details'){
return `${_self.originUrl}?id=${_self.$route.query.id}&activeMenu=${_self.$route.query.type}` return `${_self.originUrl}?id=${_self.$route.query.id}&activeMenu=${_self.$route.query.activeMenu}`
} }
} }
}, },
mounted() { mounted() {
this.$nextTick(() => {
window.addEventListener('message',event =>{ window.addEventListener('message',event =>{
let data = event.data; let data = event.data;
if (data.cmd == 'mapmsg'){ if (data.cmd == 'mapdetailtoview'){
console.log(data); console.log(data);
this.$store.commit("setZnztDetailsParams", data.params);
this.$router.push('/intelligent_drawing')
} }
}) })
})
}, },
methods: {}, methods: {},
destroyed () {
// window.removeEventListener('message')
}
}; };
</script> </script>
......
...@@ -14,42 +14,51 @@ ...@@ -14,42 +14,51 @@
</template> </template>
<script> <script>
import { mapState } from "vuex";
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default { export default {
data() { data() {
return { return {
url:'https://apaasgis.wodcloud.com/portal/apaasplat/viewer/mapViewer.html', url: gisServiceUrl + '/portal/apaasplat/viewer/mapViewer.html',
queryType: '',
id: '',
}; };
}, },
computed:{ computed:{
...mapState(['znztDetailsParams']),
getZnztParams() { getZnztParams() {
return this.$store.state.znztParams; return this.$store.state.znztParams;
}, },
znztUrl(){ znztUrl(){
return this.url+this.urlParams if(this.queryType == 'webmap'){
}, return this.url + `?webmap=${this.id}`;
urlParams(){ }else if (this.queryType == 'layers'){
if(this.$store.state.znztParams){ return this.url + `?layers=${this.id}`;
return `?webmap=${this.$store.state.znztParams.id}`; }else {
}else{ return this.url
return ''
} }
}, },
}, },
watch: { watch: {
getZnztParams(newVal) { getZnztParams(newVal) {
this.urlParams = `?webmap=${newVal.id}`
console.log('智能制图参数'+newVal) console.log('智能制图参数'+newVal)
}, },
}, },
mounted() { mounted() {
this.id = this.znztDetailsParams.id;
this.queryType = this.znztDetailsParams.queryType;
this.$nextTick(() => { this.$nextTick(() => {
window.addEventListener('message',event =>{ window.addEventListener('message',this.postmassageevt);
})
},
methods: {
postmassageevt(event){
let data = event.data; let data = event.data;
// 智能制图发布服务 // 智能制图发布服务
if (data.cmd == 'mapviewmsg'){ if (data.cmd == 'mapviewmsg'){
console.log(data); console.log(data);
this.$store.commit("setZnztParams", data.params); this.$store.commit("setZnztParams", data.params);
this.$router.push(`/fwzc/fwcs`); this.$router.push(`/fwzc/fwcs?map=1`);
} }
// App Builder页面 -- 新窗口打开 // App Builder页面 -- 新窗口打开
if (data.cmd == 'mapviewtoapp'){ if (data.cmd == 'mapviewtoapp'){
...@@ -77,12 +86,31 @@ export default { ...@@ -77,12 +86,31 @@ export default {
}); });
window.open(routeData.href, '_blank'); window.open(routeData.href, '_blank');
} }
}) // 智能制图页面跳转
}) if (data.cmd == 'mapviewurl'){
console.log(data);
switch (data.params.queryType) {
case 'webmap':
this.queryType = 'webmap';
this.$store.commit("setZnztIdParams", data.params.id);
this.id = data.params.id;
break;
case 'layers':
this.queryType = 'layers';
this.$store.commit("setZnztIdParams", data.params.id);
this.id = data.params.id;
break;
default:
this.queryType = '';
this.$store.commit("setZnztIdParams", '');
this.id = '';
break;
}
}
}
}, },
methods: {},
destroyed () { destroyed () {
window.removeEventListener('message') window.removeEventListener('message',this.postmassageevt);
} }
}; };
</script> </script>
......
<template>
<div class="process-designer-container">
<apass-list
ref="list"
search-placeholder="请输入关键字"
:list-filter="filterList"
:list-header="listHeader"
:list-data="listData"
:list-total="listTotal"
@list-action="init"
:list-padding-left="40"
>
<el-button type="primary" slot="header-left" @click="addNewProcess">
新建流程
</el-button>
<el-breadcrumb separator="/" slot="breadcrumb">
<el-breadcrumb-item>
在线组件工具
</el-breadcrumb-item>
<el-breadcrumb-item>
流程设计
</el-breadcrumb-item>
<el-breadcrumb-item>
流程管理
</el-breadcrumb-item>
</el-breadcrumb>
</apass-list>
<apass-dialog
ref="dialog"
:title="dialogInfo.title"
:msg="dialogInfo.msg"
:submit="dialogInfo.submit"
></apass-dialog>
</div>
</template>
<script>
import helper from "@/services/helper.js";
import apassList from "@/components/apass-list";
import apassDialog from "@/components/apass-dialog";
export default {
components: {
apassList,
apassDialog,
},
data: () => ({
filterList: [
{
name: "服务领域",
},
{
name: "工作区域",
},
{
name: "流程状态",
},
],
listHeader: [],
listData: [],
listTotal: 0,
dialogInfo: {
msg: "",
submit: null,
},
tempFilter: null,
}),
methods: {
init(filter) {
console.log(filter);
this.tempFilter = filter;
this.listTotal = 3;
this.listData = [
{
id: "WF00000001",
name: "保安资格申请流程",
sectors_name: "经济建设",
create_time: "2021-01-01T00:00:00Z",
state: "0",
},
{
id: "WF00000002",
name: "保安考试流程",
sectors_name: "经济建设",
create_time: "2021-01-01T00:00:00Z",
state: "1",
},
{
id: "WF00000003",
name: "申请材料审核流程",
sectors_name: "经济建设",
create_time: "2021-01-01T00:00:00Z",
state: "2",
},
];
},
initFilter() {
Promise.all([
this.$http.get("/apaas/service/v3/service/manager/servtype"),
this.$http.get("/apaas/service/v3/service/manager/servarea"),
])
.then((response) => {
let filterList = response.map((item) => {
return {
name: item.body.data[0].type_name,
prop: item.body.data[0].type_code,
data: item.body.data.map((v) => ({
name: v.name,
value: v.id,
})),
};
});
this.filterList = [
...filterList,
{
name: "流程状态",
prop: "state",
data: [
{
name: "已发布",
value: 2,
},
{
name: "已部署",
value: 1,
},
{
name: "未部署",
value: 0,
},
],
},
];
})
.catch((error) => {
console.log(error);
});
},
iniHeader() {
this.listHeader = [
{
label: "流程编号",
prop: "id",
width: 180,
},
{
label: "流程名称",
prop: "name",
type: "button",
callback: this.detailItem,
},
{
label: "服务领域",
prop: "sectors_name",
align: "center",
width: 240,
},
{
label: "创建时间",
prop: "create_time",
getText(item) {
return helper.dateStringTransform(item.create_time || "");
},
align: "center",
width: 180,
},
{
label: "状态",
prop: "state",
getText(item) {
return ["未部署", "已部署", "已发布"][item.state || 0];
},
align: "center",
width: 180,
},
{
label: "操作",
type: "buttons",
align: "center",
width: 300,
actionList: [
{
label: "发布",
callback: this.publishItem,
disableHide: true,
disabledRule(item) {
return item.state == 2;
},
},
{
label: "编辑",
callback: this.editItem,
},
],
moreActionList: [
{
label: "取消部署",
callback: this.canceldeployItem,
},
{
label: "复制",
callback: this.copyItem,
},
{
label: "删除",
callback: this.deleteItem,
},
],
},
];
},
refresh() {
this.init(this.tempFilter);
},
addNewProcess() {
console.log("addNewProcess");
},
detailItem(item) {
this.$router.push(`/progress/designer/detail/${item.id}`);
},
publishItem(item) {
console.log(`publish ${item.name}`);
},
editItem(item) {
console.log(`edit ${item.name}`);
},
canceldeployItem(item) {
console.log(`cancel deploy ${item.name}`);
},
copyItem(item) {
console.log(`copy ${item.name}`);
},
deleteItem(item) {
console.log(`delete ${item.name}`);
},
},
created() {
this.initFilter();
this.iniHeader();
},
};
</script>
<style scoped>
.process-designer-container {
height: 100%;
}
</style>
<template>
<div class="process_container">
<side-nav-bar
title="流程设计"
imgSrc="tool_ic_tuisong"
:nav-list="navList"
:title-path="navList[0] && navList[0].path"
></side-nav-bar>
<div class="main_container">
<router-view></router-view>
</div>
</div>
</template>
<script>
import sideNavBar from "@/components/side-nav-bar";
export default {
components: {
sideNavBar,
},
data: () => ({
userNav: [
{
name: "流程管理",
path: `/progress/designer`,
},
{
name: "流程监控",
path: `/progress/monitoring`,
},
{
name: "流程设计",
path: `/progress/designs`,
}
],
navList: [],
}),
watch: {
"$route.fullPath"(path) {
this.initNavList();
},
},
methods: {
initNavList() {
this.navList = this.userNav;
},
},
mounted() {
this.initNavList();
},
};
</script>
<style scoped>
.process_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="design_contain">
<el-button @click="getData">获取参数</el-button>
<WorkFlow ref="workFlow" />
</div>
</template>
<script>
import WorkFlow from "@/components/work-flow/super-flow";
export default {
components: {
WorkFlow
},
methods: {
getData() {
let self = this;
let data = self.$refs.workFlow.getData();
console.log(data);
let start_num = 0;
let end_num = 0;
let start_id = "";
let end_id = "";
let start_before = 0;
let end_after = 0;
data.nodeList.forEach(item => {
if (item.meta.type == 0) {
start_num++;
start_id = item.id;
}
if (item.meta.type == 1) {
end_num++;
end_id = item.id;
}
});
data.linkList.forEach(item => {
if (start_id == item.endId) {
start_before++;
}
if (end_id == item.startId) {
end_after++;
}
});
if (start_num != 1 || end_num != 1) {
this.$message({
message: "开始节点与结束节点均应有且只有一个",
type: "warning"
});
} else if (start_before != 0) {
this.$message({
message: "开始节点前面不应连接其它节点",
type: "warning"
});
} else if (end_after != 0) {
this.$message({
message: "结束节点后面不应连接其它节点",
type: "warning"
});
}
}
}
};
</script>
<style scoped>
.design_contain {
width: 100%;
padding: 0 20px;
margin-bottom: 20px;
}
</style>
...@@ -126,7 +126,7 @@ export default { ...@@ -126,7 +126,7 @@ export default {
// ) // )
temp.push({...e._source,_source:temp_str,index:idx+1+(this.currentPage-1)*10}) temp.push({...e._source,_source:temp_str,index:idx+1+(this.currentPage-1)*this.pageSize})
}); });
this.tableData = temp this.tableData = temp
} }
......
...@@ -183,6 +183,8 @@ export default { ...@@ -183,6 +183,8 @@ export default {
], ],
service_arr:['服务基本信息','接口详细信息','申请审批信息'], service_arr:['服务基本信息','接口详细信息','申请审批信息'],
service_header_arr:{ service_header_arr:{
id: "",
isMap: false,
name:'', name:'',
first:[ first:[
{ {
...@@ -339,8 +341,9 @@ export default { ...@@ -339,8 +341,9 @@ export default {
this.$message.error(response.data.errMsg) this.$message.error(response.data.errMsg)
return return
} }
console.log(response.data.data);
let data = response.data.data; let data = response.data.data;
this.$set(this.service_header_arr, "portal_id", data.portal_id); // 时空服务id
this.$set(this.service_header_arr, "isMap", data.data_service_type1 === 6);
this.$set(this.service_header_arr, "name", data.name); this.$set(this.service_header_arr, "name", data.name);
this.$set(this.service_header_arr['first'][0], 'text', data.data_service_type1_name); this.$set(this.service_header_arr['first'][0], 'text', data.data_service_type1_name);
this.$set(this.service_header_arr['first'][1], 'text', data.service_apply_info.approval_status==1?'待审批':data.service_apply_info.approval_status==2?'审批中':data.service_apply_info.approval_status==3?'审批通过':'审批未通过'); this.$set(this.service_header_arr['first'][1], 'text', data.service_apply_info.approval_status==1?'待审批':data.service_apply_info.approval_status==2?'审批中':data.service_apply_info.approval_status==3?'审批通过':'审批未通过');
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
</el-form-item> </el-form-item>
<el-form-item class="btnsty"> <el-form-item class="btnsty">
<el-button @click="onSubmit('form')" class="right">提交</el-button> <el-button @click="onSubmit('form')" class="right">提交</el-button>
<el-button class="right">取消</el-button> <el-button class="right" @click="backpage">取消</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -81,7 +81,7 @@ export default { ...@@ -81,7 +81,7 @@ export default {
option:[ option:[
{ required: true, message: '请输入意见', trigger: 'blur' }, { required: true, message: '请输入意见', trigger: 'blur' },
{ {
min: 10, message: '长度应大于10个字符', trigger: 'blur' min: 10,max:200, message: '长度应大于10个小于200个字符', trigger: 'blur'
} }
] ]
}, },
...@@ -158,6 +158,8 @@ export default { ...@@ -158,6 +158,8 @@ export default {
], ],
color_arr:['#e15260','"#ef9433','#515fe7'], color_arr:['#e15260','"#ef9433','#515fe7'],
service_header_arr: { service_header_arr: {
id: "",
isMap: false,
name: "", name: "",
first: [ first: [
{ {
...@@ -307,6 +309,9 @@ export default { ...@@ -307,6 +309,9 @@ export default {
} }
}); });
}, },
backpage(){
this.$router.back(-1)
},
set_approval(){ set_approval(){
this.$http.post('/apaas/service/v3/service/approval/applied/approval',{ this.$http.post('/apaas/service/v3/service/approval/applied/approval',{
apply_id:this.id, apply_id:this.id,
...@@ -337,6 +342,8 @@ export default { ...@@ -337,6 +342,8 @@ export default {
return return
} }
let data = response.data.data; let data = response.data.data;
this.$set(this.service_header_arr, "portal_id", data.portal_id); // 时空服务id
this.$set(this.service_header_arr, "isMap", data.data_service_type1 === 6);
this.$set(this.service_header_arr, "name", data.name); this.$set(this.service_header_arr, "name", data.name);
this.$set(this.service_header_arr['first'][0], 'text', data.data_service_type1_name); this.$set(this.service_header_arr['first'][0], 'text', data.data_service_type1_name);
this.$set(this.service_header_arr['first'][1], 'text', data.sectors_name); this.$set(this.service_header_arr['first'][1], 'text', data.sectors_name);
......
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
<div class="params_block_item_in"> <div class="params_block_item_in">
<span class="params_block_item_title">数据盘:</span> <span class="params_block_item_title">数据盘:</span>
<div class="params_block_item_val"> <div class="params_block_item_val">
<div>{{ cloudDteail.disk }}</div> <div>{{ cloudDteail.disk != "" ? cloudDteail.disk : "" }}</div>
</div> </div>
</div> </div>
<!-- <div class="params_block_item_in"> <!-- <div class="params_block_item_in">
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
<div class="params_block_item_in"> <div class="params_block_item_in">
<span class="params_block_item_title">数据盘:</span> <span class="params_block_item_title">数据盘:</span>
<div class="params_block_item_val"> <div class="params_block_item_val">
<div>{{ cloudDetailNew.adjust_disk}}</div> <div>{{ cloudDetailNew.adjust_disk != "" ? cloudDetailNew.adjust_disk : ""}}</div>
</div> </div>
</div> </div>
<!-- <div class="params_block_item_in"> <!-- <div class="params_block_item_in">
...@@ -238,9 +238,7 @@ ...@@ -238,9 +238,7 @@
</div> </div>
</InfoList> </InfoList>
</div> </div>
<div <div class="btn_footer">
class="btn_footer"
>
<el-button <el-button
v-if="now_user == 1 && apploy_msg.first_level == 0" v-if="now_user == 1 && apploy_msg.first_level == 0"
class="submit" class="submit"
...@@ -454,7 +452,7 @@ export default { ...@@ -454,7 +452,7 @@ export default {
apploy_msg: { apploy_msg: {
first_level: null, first_level: null,
second_level: null, second_level: null,
state: null state: null,
}, },
use_uid: "", use_uid: "",
could_delete: false, could_delete: false,
......
This diff is collapsed.
...@@ -185,6 +185,8 @@ export default { ...@@ -185,6 +185,8 @@ export default {
], ],
service_size_data: [], //服务规格数组 service_size_data: [], //服务规格数组
service_header_arr: { service_header_arr: {
id: "",
isMap: false,
url: "", url: "",
name: "", name: "",
first: [ first: [
...@@ -472,7 +474,7 @@ export default { ...@@ -472,7 +474,7 @@ export default {
dyyw: e.business_name, dyyw: e.business_name,
ywxt: e.business_url, ywxt: e.business_url,
cjms: e.scene, cjms: e.scene,
sqsj: e.apply_time sqsj: e.apply_time.split('+')[0].replace('T',' ')
}); });
}); });
} }
...@@ -514,7 +516,8 @@ export default { ...@@ -514,7 +516,8 @@ export default {
.then(response => { .then(response => {
if (response.data.success === 1) { if (response.data.success === 1) {
let data = response.data.data; let data = response.data.data;
console.log(data); this.$set(this.service_header_arr, "portal_id", data.portal_id); // 时空服务id
this.$set(this.service_header_arr, "isMap", data.data_service_type1 === 6);
this.$set(this.service_header_arr, "name", data.name); this.$set(this.service_header_arr, "name", data.name);
this.$set( this.$set(
this.service_header_arr["first"][0], this.service_header_arr["first"][0],
...@@ -747,6 +750,9 @@ export default { ...@@ -747,6 +750,9 @@ export default {
padding: 30px 10px 10px 10px; padding: 30px 10px 10px 10px;
width: 100%; width: 100%;
} }
.type_box_select >>> .outlist .list p{
word-wrap:break-word;
}
.service_title { .service_title {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -3,6 +3,7 @@ import qs from 'qs'; // 根据需求是否导入qs模块 ...@@ -3,6 +3,7 @@ import qs from 'qs'; // 根据需求是否导入qs模块
const general = { const general = {
// general api // general api
// logout is not used
logout(params) { logout(params) {
return axios.get(`/iam/api/logout?ReturnUrl=${encodeURIComponent(params.returnUrl)}`); return axios.get(`/iam/api/logout?ReturnUrl=${encodeURIComponent(params.returnUrl)}`);
}, },
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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