Commit fafc8c6d authored by 刘殿昕's avatar 刘殿昕

Merge branch 'dev'

parents 68c994a2 77d8c749
......@@ -8,7 +8,7 @@ module.exports = {
dev: {
// Paths
assetsSubDirectory: "static",
assetsPublicPath: "/",
assetsPublicPath: "/apaas/ui/",
proxyTable: {
"/apaas": {
target: "https://apaas3.wodcloud.com/apaas/",
......
......@@ -11,6 +11,7 @@
}
</style>
</head>
<script src="/apaas/ui/static/config/configmap.js"></script>
<body>
<div id="app"></div>
</body>
......
......@@ -10,25 +10,37 @@ import bdMenu from "./components/menu";
export default {
data: () => ({}),
components: {
bdMenu
bdMenu,
},
methods: {
getCurrentUser() {
this.$api.user.getNowUser().then(({ data }) => {
if (data.success == 1) {
console.log("--- --- ---");
console.log(data.data);
console.log("--- --- ---");
this.$store.commit("userInfofun", data.data);
} else {
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() {
this.getCurrentUser();
}
this.getMessage();
},
};
</script>
......
......@@ -181,9 +181,11 @@ export default {
}
},
searchAction(value) {
this.currentPage = 1;
this.listAction();
},
filterChange(filter) {
this.currentPage = 1;
this.filter = filter;
this.listAction();
},
......@@ -196,6 +198,10 @@ export default {
this.currentPage = value;
this.listAction();
},
resetCurrentPage(value = 1) {
this.currentPage = value;
this.listAction();
},
listAction() {
if (this.timer) {
clearTimeout(this.timer);
......
......@@ -54,6 +54,7 @@ a {
.list p {
line-height: 32px;
color: #8890a7;
word-wrap:break-word;
}
.list {
margin-bottom: 20px;
......
......@@ -13,11 +13,11 @@
>{{ userInfo.user_name }}</span>
<span v-else @click="gotopage('login')" class="user">请登录</span>
<img
:class="userInfo.picture_path ? 'user_pic' : 'user_default'"
:src="
userInfo.picture_path || require('../assets/imgs/home_ic_user.png')
"
:class="userInfo.picture_path && false ? 'user_pic' : 'user_default'"
src="../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-for="(item, index) in user_arr"
......@@ -25,10 +25,21 @@
@mouseleave.stop="change_now_hover(-1)"
@mouseenter.stop="change_now_hover(index)"
@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>
<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
v-if="show_shop_menu"
......@@ -92,7 +103,11 @@
@click.stop="gotoChildPage(v, item.visit_url)"
>{{ v.menu_name }}</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>
</div>
......@@ -100,6 +115,7 @@
</template>
<script>
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default {
data() {
return {
......@@ -114,8 +130,8 @@ export default {
],
shopping_list: [],
menuCartNum: 0,
now_hover:-1,
show_shop_menu: false
now_hover: -1,
show_shop_menu: false,
};
},
mounted() {
......@@ -128,20 +144,25 @@ export default {
},
userInfo() {
return this.$store.state.userInfo || {};
}
},
unreadMessageCount() {
return this.$store.state.unreadMessageCount;
},
},
watch: {
getMenuCartState(newVal) {
this.getList();
}
},
},
methods: {
change_now_hover(n){
this.now_hover = n
change_now_hover(n) {
this.now_hover = n;
},
gotopage(n) {
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") {
let path = this.$route.path;
window.location.href = "/iam/login/#/login?ReturnUrl=" + path;
......@@ -154,7 +175,7 @@ export default {
},
deleteItem(id) {
let query = [id];
this.$api.serviceShop.delShoppingCart(query).then(response => {
this.$api.serviceShop.delShoppingCart(query).then((response) => {
this.getList();
});
},
......@@ -183,7 +204,7 @@ export default {
}
},
getList() {
this.$api.serviceShop.getShoppingCart().then(response => {
this.$api.serviceShop.getShoppingCart().then((response) => {
if (response.data.success == "1") {
this.menuCartNum = response.data.data.valid
? response.data.data.valid.length
......@@ -201,12 +222,12 @@ export default {
this.now_menu = visit_url ? visit_url : "";
},
getNowMenu() {
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then(response => {
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then((response) => {
if (response.data.success == 1) {
let arr =
(response.data.data[0] && response.data.data[0].Child) || [];
let shop_index = arr.findIndex(
item => item.visit_url == "/shop/shopping_cart"
(item) => item.visit_url == "/shop/shopping_cart"
);
if (shop_index != -1) {
arr.splice(shop_index, 1);
......@@ -214,7 +235,7 @@ export default {
} else {
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) {
this.user_arr = arr[user_index].Child;
arr.splice(user_index, 1);
......@@ -225,8 +246,8 @@ export default {
this.getMenuIndex();
}
});
}
}
},
},
};
</script>
......@@ -291,7 +312,7 @@ export default {
float: right;
width: 185px;
font-size: 16px;
height:84px;
height: 84px;
text-align: center;
cursor: pointer;
position: relative;
......@@ -309,7 +330,7 @@ export default {
left: calc(50% - 12px);
}
.user_menu {
width: 135px;
/* width: 135px; */
background-color: #ffffff;
box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05);
border-radius: 8px;
......@@ -351,10 +372,11 @@ export default {
display: block;
}
.user_menu div {
width: 135px;
/* width: 135px; */
height: 44px;
line-height: 44px;
text-align: center;
padding: 0 30px;
text-align: left;
color: #0d1847;
}
.user_menu div:hover {
......@@ -436,6 +458,34 @@ export default {
text-overflow: ellipsis;
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>
.number .el-badge__content {
......
......@@ -9,6 +9,18 @@
placeholder="请输入消息模板名称/id"
></el-input>
</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">
<span class="filter_title">最后更新时间:</span>
<el-date-picker
......@@ -127,6 +139,10 @@ export default {
type: Boolean,
defailt: false,
},
tmpTypes: {
type: Array,
defailt: [],
},
},
data() {
return {
......@@ -138,6 +154,7 @@ export default {
pageSize: 10,
currentPage: 1,
keyword: "",
type: "",
updateTime: "",
types: [
{
......@@ -161,6 +178,7 @@ export default {
value: 4,
},
],
tpl_types: [],
detail: {
name: "",
tpl_type: "",
......@@ -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();
},
methods: {
getTemplateList() {
let params = {
page: this.currentPage,
tpl_type: this.type,
size: this.pageSize,
keyword: this.keyword,
update_time_s: (this.updateTime && this.updateTime[0]) || "",
......@@ -287,6 +329,7 @@ export default {
this.getTemplateList();
},
topFilterAction() {
this.currentPage = 1;
this.getTemplateList();
},
topFilterClear() {
......@@ -358,7 +401,7 @@ export default {
...this.selected,
content: this.detail.content,
});
this.$refs.dialog.hide();
},
},
......
......@@ -2,12 +2,18 @@
<div class="info_logo">
<div class="logo">
<img :src="data.url" alt="" />
<!-- TODO: 时空服务预览 -->
<map-view v-if="data.isMap" :id="data.id"></map-view>
<map-view v-if="data.isMap" :id="data.portal_id"></map-view>
</div>
<div class="info">
<p class="info_title">
<span>{{ data.name }}</span>
<span
class="info_fix"
v-if="data.fixed_process"
@click="goto_page(data.fixedurl)"
>
我要编辑
</span>
<span class="bs" v-if="data.aqdetail" @click="subevent(0)">
一键部署
</span>
......@@ -19,7 +25,7 @@
</span>
<span
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>
......@@ -66,6 +72,20 @@
>
我要修改
</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>
......@@ -239,7 +259,7 @@ export default {
text-align: center;
margin-left: 10px;
}
.undersell {
.undersell,.undersell1 {
width: 76px;
height: 32px;
background-color: #0f2683;
......@@ -251,6 +271,11 @@ export default {
cursor: pointer;
text-align: center;
}
.undersell1{
color: #0f2683;
background-color: #e6ebfe;
margin-left: 10px;
}
.undermy {
background-color: #515fe7;
color: #e6ebfe;
......
......@@ -21,6 +21,7 @@
</template>
<script>
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default {
name: "map-view",
data: () => ({
......@@ -35,7 +36,7 @@ export default {
},
methods: {
viewAction() {
this.src = `https://apaasgis.wodcloud.com/portal/apaasplat/viewer/previewMap.html?id=`; // ${this.id}
this.src = gisServiceUrl + `/portal/apaasplat/viewer/previewMap.html?id=${this.id}`;
this.showDialog = true;
},
beforeClose(done) {
......
......@@ -19,10 +19,9 @@
<div class="main_container">
<div class="main_container-left" v-if="data.cover">
<img :src="data.cover" width="100%" />
<!-- TODO: 时空服务预览 -->
<map-view
v-if="data.type === 'Map Service'"
:id="data.service_id"
:id="data.portal_id"
></map-view>
</div>
<div class="main_container-right">
......
......@@ -91,6 +91,7 @@ export default {
margin-bottom: 3px;
}
.detail-item .detail-text {
word-break: break-all;
font-size: 14px;
line-height: 25px;
color: #242c43;
......
......@@ -48,7 +48,8 @@ export default {
},
rules: {
preson: [
{ required: true, message: "请输入部门联系人", trigger: "blur" }
{ required: true, message: "请输入部门联系人", trigger: "blur" },
{max:16, message: "不能超过16个字符", trigger: "blur" }
],
phone: [
{ required: true, message: "请输入联系电话", trigger: "blur" },
......
......@@ -53,7 +53,7 @@
</div>
<p class="inputtitle">应用场景:</p>
<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>
<p
class="inputtitle degr"
......
......@@ -166,7 +166,6 @@ export default {
color: #58617a;
}
.shop_card-text.access > span > * {
width: 15px;
vertical-align: middle;
}
.shop_card-text.access > span > img {
......
......@@ -200,6 +200,7 @@
{{ scope.row[item.prop] }}
</span>
<!-- 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>
</template>
</el-table-column>
......@@ -458,6 +459,9 @@ export default {
}
});
},
gotopage(url,id){
this.$router.push(`/fwgl/0/0/servicedetail/${id}`)
},
//本地删除
deleteLocal(val) {
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({
}
})
import SuperFlow from 'vue-super-flow'
import 'vue-super-flow/lib/index.css'
Vue.use(SuperFlow)
import api from './request/api'
Vue.prototype.$api = api;
......
......@@ -124,15 +124,15 @@ export default {
rules: {
name: [
{ required: true, message: "请输入组织机构名称", trigger: "blur" },
{ max: 10, message: "长度小于10个字符", trigger: "blur" },
{ max: 20, message: "长度请小于20个字符", trigger: "blur" },
],
shortname: [
// { required: true, message: '请输入组织机构简称', trigger: 'blur' },
{ max: 10, message: "长度小于10个字符", trigger: "blur" },
{ max: 20, message: "长度请小于20个字符", trigger: "blur" },
],
desc: [
// { required: true, message: '请输入组织说明', trigger: 'blur' },
{ max: 500, message: "长度小于500个字符", trigger: "blur" },
{ max: 500, message: "长度小于500个字符", trigger: "blur" },
],
fileList: [
// {required: true, message: '请上传图片', trigger: 'change'}
......
......@@ -4,7 +4,7 @@
权限管理 / 角色管理 /
<span>{{
$route.path.indexOf("edit") !== -1
? "角色类型"
? "编辑角色"
: $route.path.indexOf("add") !== -1
? "新增角色"
: "分配权限"
......
......@@ -349,10 +349,10 @@ export default {
});
},
change_type() {
this.form.systemname = "";
this.form.domain = "";
this.form.ip = [];
this.form.origin = "";
// this.form.systemname = "";
// this.form.domain = "";
// this.form.ip = [];
// this.form.origin = "";
},
handleClose(tag) {
this.form.ip.splice(this.form.ip.indexOf(tag), 1);
......@@ -473,18 +473,22 @@ export default {
this.$router.back(-1);
},
add_user() {
// this.form.systemname = "";
// this.form.domain = "";
// this.form.ip = [];
// this.form.origin = "";
var temp = {
user_id: this.form.account, // 用户名
password: this.form.password,
user_name: this.form.nickname, // 昵称
system_name: this.form.systemname, //系统名称
system_name: this.form.type>=2?this.form.systemname:'', //系统名称
phone: this.form.phone + "", // 电话号
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,
state: this.form.able, // 用户状态,1——启用,0 禁用
domain_name: this.form.domain, //
ip_whitelist: this.form.ip, //
domain_name: this.form.type>=3?this.form.domain:'', //
ip_whitelist: this.form.type>=3?this.form.ip:[], //
description: this.form.desc, //描述
link_man: this.form.contact,
};
......@@ -507,14 +511,14 @@ export default {
var temp = {
user_id: this.form.account, // 用户名
user_name: this.form.nickname, // 昵称
system_name: this.form.systemname, //系统名称
system_name: this.form.type>=2?this.form.systemname:'', //系统名称
phone: this.form.phone + "", // 电话号
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,
state: this.form.able, // 用户状态,1——启用,0 禁用
domain_name: this.form.domain, //
ip_whitelist: this.form.ip && this.form.ip.length ? this.form.ip : [], //
domain_name: this.form.type>=3?this.form.domain:'', //
ip_whitelist: this.form.type>=3?this.form.ip && this.form.ip.length ? this.form.ip : []:[], //
description: this.form.desc, //描述
link_man: this.form.contact,
};
......
<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 {
});
});
},
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() {
this.initList(this.tempFilter);
this.resetCurrentPage();
},
topFilterClear() {
this.topFilter = {
......@@ -279,7 +282,7 @@ export default {
down_time: "",
};
this.initList(this.tempFilter);
this.resetCurrentPage();
},
showDialog() {
this.$refs.dialog.show();
......
......@@ -51,6 +51,7 @@
>
<select-template
class="apaas_step_content"
:tmp-types="[1]"
@change="selectTemplate"
></select-template>
......
......@@ -260,8 +260,11 @@ export default {
});
});
},
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() {
this.initList(this.tempFilter);
this.resetCurrentPage();
},
topFilterClear() {
this.topFilter = {
......@@ -270,7 +273,7 @@ export default {
push_time: "",
};
this.initList(this.tempFilter);
this.resetCurrentPage();
},
addNew() {
this.$router.push("/message/directed_push/add");
......
......@@ -32,6 +32,7 @@
<select-template
class="apaas_step_content"
:edit="true"
:tmp-types="[2, 3]"
@change="selectTemplate"
></select-template>
......@@ -98,7 +99,7 @@ export default {
step: 0,
done: false,
templateId: "",
templateContent:"",
templateContent: "",
targetUserIds: "",
};
},
......
......@@ -33,8 +33,9 @@
<span class="filter_title">状态:</span>
<el-select v-model="topFilter.state" placeholder="请选择">
<el-option label="全部" value=""> </el-option>
<el-option label="推送成功" value="1"> </el-option>
<el-option label="推送失败" value="0"> </el-option>
<el-option label="推送成功" value="success"> </el-option>
<el-option label="推送失败" value="fail"> </el-option>
<el-option label="推送中" value="pushing"> </el-option>
</el-select>
</div>
<div class="filter_item">
......@@ -259,8 +260,11 @@ export default {
});
});
},
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() {
this.initList(this.tempFilter);
this.resetCurrentPage();
},
topFilterClear() {
this.topFilter = {
......@@ -269,7 +273,7 @@ export default {
push_time: "",
};
this.initList(this.tempFilter);
this.resetCurrentPage();
},
addNew() {
this.$router.push("/message/message_alert/add");
......
......@@ -235,8 +235,11 @@ export default {
});
});
},
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() {
this.initList(this.tempFilter);
this.resetCurrentPage();
},
topFilterClear() {
this.topFilter = {
......@@ -245,7 +248,7 @@ export default {
update_time: "",
};
this.initList(this.tempFilter);
this.resetCurrentPage();
},
showDialog() {
this.$refs.dialog.show();
......
......@@ -196,8 +196,11 @@ export default {
});
});
},
resetCurrentPage() {
this.$refs.list.resetCurrentPage();
},
topFilterAction() {
this.initList(this.tempFilter);
this.resetCurrentPage();
},
topFilterClear() {
this.topFilter = {
......@@ -206,7 +209,7 @@ export default {
time: "",
};
this.initList(this.tempFilter);
this.resetCurrentPage();
},
detailAction(item) {
this.$router.push(
......
......@@ -74,6 +74,7 @@ export default {
[];
this.baseInfo = {
portal_id: datas.portal_id || "", // 时空服务id
service_id: this.id,
app_id: 0,
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>
......@@ -90,21 +90,21 @@
<el-form-item label="应用简介:" prop="yyjj">
<el-input
v-model="app_info.yyjj"
type="textywly"
type="textarea"
placeholder="请输入应用简介"
></el-input>
</el-form-item>
<el-form-item label="功能简介:" prop="gnjj">
<el-input
v-model="app_info.gnjj"
type="textywly"
type="textarea"
placeholder="请输入功能简介"
></el-input>
</el-form-item>
<el-form-item label="应用场景示例:" prop="cjsl">
<el-input
v-model="app_info.cjsl"
type="textywly"
type="textarea"
placeholder="请输入应用场景示例"
></el-input>
</el-form-item>
......@@ -352,10 +352,11 @@ export default {
app_rules: {
name: [
{ required: true, message: "请输入应用名称", trigger: "blur" },
{ max: 16, message: "长度小于16个字符", trigger: "blur" },
{ max: 400, message: "长度小于16个字符", trigger: "blur" },
],
version: [
{ required: true, message: "请输入应用版本", trigger: "blur" },
{ max: 16, message: "长度小于16个字符", trigger: "blur" },
],
ywly: [
{ required: true, message: "请选择业务领域", trigger: "change" },
......@@ -371,12 +372,15 @@ export default {
],
yyjj: [
{ required: true, message: "请选择应用简介", trigger: "change" },
{ max: 400, message: "长度小于400个字符", trigger: "blur" },
],
gnjj: [
{ required: true, message: "请选择功能简介", trigger: "change" },
{ max: 400, message: "长度小于400个字符", trigger: "blur" },
],
cjsl: [
{ required: true, message: "请选择应用场景示例", trigger: "change" },
{ max: 400, message: "长度小于400个字符", trigger: "blur" },
],
},
deploy_info: {
......@@ -395,8 +399,14 @@ export default {
file: "",
},
image_rules: {
image_name: [{ validator: image_name_pass, trigger: "blur" }],
tag: [{ required: true, message: "请输入版本数", trigger: "blur" }],
image_name: [
{ 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: [
{ required: true, message: "请选择镜像文件", trigger: "change" },
],
......
......@@ -15,10 +15,11 @@
</template>
<script>
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default {
data() {
return {
originUrl:'https://apaasgis.wodcloud.com/portal/apps/webappbuilder/index.html'
originUrl: gisServiceUrl + '/portal/apps/webappbuilder/index.html'
};
},
computed:{
......@@ -44,7 +45,7 @@ export default {
if (data.cmd == 'appbuildermsg'){
console.log(data);
this.$store.commit("setAppBuilderParams", data.params);
this.$router.push(`/fwzc/fwcs`);
this.$router.push(`/fwzc/fwcs?map=4`);
}
})
},
......
......@@ -15,10 +15,11 @@
</template>
<script>
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default {
data() {
return {
originUrl:'https://apaasgis.wodcloud.com/portal/apaasplat/viewer/item.html',
originUrl: gisServiceUrl + '/portal/apaasplat/viewer/item.html',
};
},
computed:{
......
......@@ -15,10 +15,11 @@
<script>
import { mapState } from "vuex";
const gisServiceUrl = window.serviceConfig.gisServiceRoot;
export default {
data() {
return {
url:'https://apaasgis.wodcloud.com/portal/apaasplat/viewer/mapViewer.html',
url: gisServiceUrl + '/portal/apaasplat/viewer/mapViewer.html',
queryType: '',
id: '',
};
......@@ -47,67 +48,69 @@ export default {
this.id = this.znztDetailsParams.id;
this.queryType = this.znztDetailsParams.queryType;
this.$nextTick(() => {
window.addEventListener('message',event =>{
let data = event.data;
// 智能制图发布服务
if (data.cmd == 'mapviewmsg'){
console.log(data);
this.$store.commit("setZnztParams", data.params);
this.$router.push(`/fwzc/fwcs`);
}
// App Builder页面 -- 新窗口打开
if (data.cmd == 'mapviewtoapp'){
console.log(data);
let params = {
title: data.params.title,
tags: data.params.tags,
sharewithwebmap:data.params.shareWithWebMap,
webmap:data.params.id,
summary: data.params.summary,
};
let routeData = this.$router.resolve({
name: "intelligent_appbuilder",
query: params,
});
window.open(routeData.href, '_blank');
// this.$store.commit("setAppBuilderParams", data.params);
}
// 智能制图服务详情--新窗口打开
if (data.cmd == 'mapdetailmsg'){
console.log(data);
let routeData = this.$router.resolve({
name: "intelligent_details",
query: data.params,
});
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;
}
}
})
window.addEventListener('message',this.postmassageevt);
})
},
methods: {},
methods: {
postmassageevt(event){
let data = event.data;
// 智能制图发布服务
if (data.cmd == 'mapviewmsg'){
console.log(data);
this.$store.commit("setZnztParams", data.params);
this.$router.push(`/fwzc/fwcs?map=1`);
}
// App Builder页面 -- 新窗口打开
if (data.cmd == 'mapviewtoapp'){
console.log(data);
let params = {
title: data.params.title,
tags: data.params.tags,
sharewithwebmap:data.params.shareWithWebMap,
webmap:data.params.id,
summary: data.params.summary,
};
let routeData = this.$router.resolve({
name: "intelligent_appbuilder",
query: params,
});
window.open(routeData.href, '_blank');
// this.$store.commit("setAppBuilderParams", data.params);
}
// 智能制图服务详情--新窗口打开
if (data.cmd == 'mapdetailmsg'){
console.log(data);
let routeData = this.$router.resolve({
name: "intelligent_details",
query: data.params,
});
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;
}
}
}
},
destroyed () {
window.removeEventListener('message')
window.removeEventListener('message',this.postmassageevt);
}
};
</script>
......
<template>
<div class="detail_contain">
<p class="now_page_title">在线组件工具 / 流程设计 / 流程管理 / <span>详情</span></p>
<div class="info_contain">
<service-header :data="service_header_arr"></service-header>
<div class="type_box">
<div class="type_title">
<div v-for="(item,index) in service_arr" :key="index+1000" class="type_select" @click="now_service=index" :style="now_service==index?{borderBottom: '4px solid #f5ab4c',color: '#e56600'}:{}">{{item}}</div>
</div>
<div class="type_box_select">
<info-list :list_arr="now_service==0?list_arr:servicead_arr">
<table-um style="width:700px;" v-if="zd_table_arr.length" height='250px' :stripe="true" :headers="header_arr" :datas="zd_table_arr" slot="fw_table"></table-um>
<div slot="process">流程</div>
<div slot="count">流程</div>
<div slot="suvice">流程</div>
</info-list>
</div>
</div>
</div>
</div>
</template>
<script>
import serviceHeader from '@/components/service-header'
import infoList from '@/components/infoList'
import tableUm from '@/components/table/table-um'
export default {
components: {
serviceHeader,
infoList,
tableUm
},
data(){
return{
service_header_arr:{
id: "",
isMap: false,
name:'',
first:[],
second:[],
fixed_process:false,
public:false,
unpublic:false,
undeploy:false,
deploy:false,
fixed_url:'/',
url:''
},
state:1,
now_service:0,
service_arr:[],
list_arr:[
{
title:'流程描述:',
info:''
},
{
title:'所属组织:',
info:''
},
{
title:'创建时间:',
info:''
},
{
title:'流程挂载服务:',
info:'',
type:'solt',
solt_name:'fw_table'
},
{
title:'流程概览:',
info:'',
type:'solt',
solt_name:'process'
},
],
servicead_arr:[
{
title: "流程统计",
prop:"title",
type: "solt",
solt_name: "count",
},
{
title: "流程概览",
prop:"title",
type: "solt",
solt_name: "suvice",
},
],
header_arr:[
{
prop:'fwmc',
label:'服务名称',
align:'left',
type:'click',
url:'/',
id:'id',
},
{
prop:'time',
label:'到期时间',
width:'200px',
align:'center',
},
],
zd_table_arr:[]
}
},
created(){
this.get_header()
this.getbaseinfo()
},
methods:{
get_header(){
this.$set(this.service_header_arr,'name','长兴综治事故申报处理流程')
let state = this.state
//未部署
if(state==0){
this.$set(this.service_header_arr,'first',[])
this.$set(this.service_header_arr,'second',[])
this.service_header_arr.first.push({
name:'工作区域',
text:'1111'
})
this.service_header_arr.first.push({
name:'流程状态',
text:'未部署'
})
this.service_header_arr.second.push({
name:'修改时间',
text:'2020-04-11'
})
this.service_arr = ['流程基本信息']
this.service_header_arr.fixed_process=true
this.service_header_arr.public=false
this.service_header_arr.unpublic=false
this.service_header_arr.undeploy=false
this.service_header_arr.deploy=true
//已部署
}else if(state == 1){
this.$set(this.service_header_arr,'first',[])
this.$set(this.service_header_arr,'second',[])
this.service_header_arr.first.push({
name:'工作区域',
text:'1111'
})
this.service_header_arr.first.push({
name:'流程状态',
text:'已部署'
})
this.service_header_arr.first.push({
name:'部署时间',
text:'2020-04-11'
})
this.service_header_arr.second.push({
name:'服务接口地址',
text:'http://localhost:1z/zdrylx?code=430100000000'
})
this.service_arr = ['流程基本信息','流程运行状态']
this.service_header_arr.fixed_process=true
this.service_header_arr.public=true
this.service_header_arr.unpublic=false
this.service_header_arr.undeploy=true
this.service_header_arr.deploy=false
//已发布
}else{
this.$set(this.service_header_arr,'first',[])
this.$set(this.service_header_arr,'second',[])
this.service_header_arr.first.push({
name:'工作区域',
text:'1111'
})
this.service_header_arr.first.push({
name:'流程状态',
text:'已发布'
})
this.service_header_arr.first.push({
name:'发布时间',
text:'2020-04-11'
})
this.service_header_arr.second.push({
name:'服务接口地址',
text:'http://localhost:1z/zdrylx?code=430100000000'
})
this.service_arr = ['流程基本信息','流程运行状态']
this.service_header_arr.fixed_process=true
this.service_header_arr.public=false
this.service_header_arr.unpublic=true
this.service_header_arr.undeploy=false
this.service_header_arr.deploy=false
}
},
getbaseinfo(){
this.$set(this.list_arr[0],'info','浙江省长兴县综合治理平台事故申报处理流程服务,仅供长兴县使用')
this.$set(this.list_arr[1],'info','北京比格大数据有限公司')
this.$set(this.list_arr[2],'info','2019-02-17 21:09:23')
this.zd_table_arr=[
{
fwmc:'身份验证服务',
time:'2020-11-15 15:20:30'
},
{
fwmc:'身份验证服务',
time:'2020-11-15 15:20:30'
},
{
fwmc:'身份验证服务',
time:'2020-11-15 15:20:30'
},
{
fwmc:'身份验证服务',
time:'2020-11-15 15:20:30'
},
{
fwmc:'身份验证服务',
time:'2020-11-15 15:20:30'
},
{
fwmc:'身份验证服务',
time:'2020-11-15 15:20:30'
},
{
fwmc:'身份验证服务',
time:'2020-11-15 15:20:30'
},
]
}
}
}
</script>
<style scoped>
.detail_contain{
width: 100%;
padding: 0 20px;
margin-bottom: 20px;
}
.info_contain{
padding: 25px 20px;
background-color: #fff;
width: 100%;
box-shadow: 0px 3px 6px 0px
#f4f7fc;
border-radius: 12px;
}
.now_page_title{
margin: 15px 0;
color: #898d9e;
}
.now_page_title span{
color: #242c43;
font-weight: 600;
}
.type_box{
width: 100%;
}
.type_title{
width: 100%;
height: 65px;
line-height: 65px;
color: #8890a7;
border-bottom: 2px solid #f4f7fc;
}
.type_select{
float: left;
width: auto;
margin-right: 40px;
height: 65px;
cursor: pointer;
}
.type_box_select{
padding: 30px 10px 10px 10px;
width: 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`,
},
],
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>
......@@ -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
}
......
......@@ -342,7 +342,7 @@ export default {
return
}
let data = response.data.data;
this.$set(this.service_header_arr, "id", data.id); // TODO: 时空服务预览
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['first'][0], 'text', data.data_service_type1_name);
......
......@@ -39,7 +39,7 @@
</el-form-item>
<el-form-item class="btnsty">
<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>
</div>
......@@ -81,7 +81,7 @@ export default {
option:[
{ required: true, message: '请输入意见', trigger: 'blur' },
{
min: 10, message: '长度应大于10个字符', trigger: 'blur'
min: 10,max:200, message: '长度应大于10个小于200个字符', trigger: 'blur'
}
]
},
......@@ -309,6 +309,9 @@ export default {
}
});
},
backpage(){
this.$router.back(-1)
},
set_approval(){
this.$http.post('/apaas/service/v3/service/approval/applied/approval',{
apply_id:this.id,
......@@ -339,7 +342,7 @@ export default {
return
}
let data = response.data.data;
this.$set(this.service_header_arr, "id", data.id); // TODO: 时空服务预览
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['first'][0], 'text', data.data_service_type1_name);
......
......@@ -106,6 +106,7 @@
:title="dialogInfo.title"
:msg="dialogInfo.msg"
:submit="dialogInfo.submit"
:sunbmitText="dialogInfo.sunbmitText"
></apass-dialog>
<allot-info-confirm
......@@ -282,7 +283,8 @@ export default {
callback: this.deleteItem,
class: "warn",
disabledRule(item) {
return item.state != 2;
// 只有下架状态可以删除
return item.state !== 0;
},
},
],
......@@ -981,7 +983,11 @@ export default {
},
callback: this.cloudAllot,
disabledRule(item) {
return !(item.approve_state === 1 && item.use_uid === "");
return !(
item.state == 1 &&
item.approve_state === 1 &&
item.use_uid === ""
);
},
},
],
......@@ -1074,6 +1080,10 @@ export default {
label: "删除",
class: "warn",
callback: this.deleteItem,
disabledRule(item) {
// 只有非下架状态可以删除(已上架,下架审核中)
return item.state == 1 || item.state == 3;
},
},
],
},
......
......@@ -474,7 +474,7 @@ export default {
dyyw: e.business_name,
ywxt: e.business_url,
cjms: e.scene,
sqsj: e.apply_time
sqsj: e.apply_time.split('+')[0].replace('T',' ')
});
});
}
......@@ -516,7 +516,7 @@ export default {
.then(response => {
if (response.data.success === 1) {
let data = response.data.data;
this.$set(this.service_header_arr, "id", data.id); // TODO: 时空服务预览
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(
......@@ -750,6 +750,9 @@ export default {
padding: 30px 10px 10px 10px;
width: 100%;
}
.type_box_select >>> .outlist .list p{
word-wrap:break-word;
}
.service_title {
font-size: 16px;
font-weight: bold;
......
......@@ -305,9 +305,15 @@ export default {
.catch(function(response) {});
},
setService(){
var reg = /^[1-9][0-9]{0,5}$/
if(this.open){
if(this.maxline){
if(reg.test(this.maxline)){
}else{
this.$message.error('请输入长度小于6的正整数')
return
}
}else{
this.$message.error('请输入最大连接数')
return
......@@ -317,10 +323,24 @@ export default {
if(!this.maxline1){
this.$message.error('请输入最大连接数')
return
}else{
if(reg.test(this.maxline1)){
}else{
this.$message.error('请输入长度小于6的正整数')
return
}
}
if(!this.usetime1){
this.$message.error('请输入有效时间')
return
}else{
if(reg.test(this.maxline1)){
}else{
this.$message.error('请输入长度小于6的正整数')
return
}
}
if(this.timevalue==''){
this.$message.error('请选择时间')
......@@ -355,7 +375,8 @@ export default {
return
}
this.$message.success('保存成功')
this.getServiceInfo()
// this.getServiceInfo()
this.$router.back(-1)
})
.catch(function(response) {
......@@ -424,6 +445,9 @@ export default {
background-color: #f7f8f9;
width: 1022px;
}
.info_contain .comments_pagination .el-input__inner{
width: auto;
}
.info_contain .el-textarea__inner{
background-color: #f7f8f9;
width: 1022px;
......
This diff is collapsed.
......@@ -3,7 +3,7 @@
<div class="person_info">
<div class="preson">
<div class="person_text">
<img src="@/assets/imgs/img_head.png" alt />
<img style="width:40px;" :src="picture_path" alt />
<span>你好,{{ person }}{{login_time?'最近登录 ':''}}{{ login_time }}</span>
</div>
<div class="person_menu">
......@@ -357,6 +357,7 @@ export default {
helper: helper,
service_data: [],
app_data: [],
picture_path:'',
listTotal: 0,
currentPage: 1,
listTotal1: 0,
......@@ -990,8 +991,7 @@ export default {
pic: require("@/assets/imgs/home_tool_ic_lcsj.png"),
bg: "#e6ebfe",
color: "#515fe7",
url: "https://apaas-nologo.wodcloud.com/lcgl/index.html#/",
target: 1
url: "/progress",
},
{
text: "可视化图表",
......@@ -1346,6 +1346,7 @@ export default {
this.$router.push("/fwzc/fwcs");
},
getUserData() {
this.picture_path = this.userInfo.picture_path;
this.person = this.userInfo.user_name;
this.login_time = decodeURIComponent(getCookie("lastLogin")).replace(
"+",
......
......@@ -3,6 +3,7 @@ import qs from 'qs'; // 根据需求是否导入qs模块
const general = {
// general api
// logout is not used
logout(params) {
return axios.get(`/iam/api/logout?ReturnUrl=${encodeURIComponent(params.returnUrl)}`);
},
......
......@@ -235,27 +235,55 @@ export default new Router({
{
path: "/app_build",
name: "app_build",
component: () => import("@/pages/workbench/app_build"),
component: () => import("@/pages/workbench/component-center/app-build/index"),
}, // 应用构建(镜像形式)
{
path: "/intelligent_drawing",
name: "intelligent_drawing",
component: () => import("@/pages/workbench/intelligent_drawing"),
component: () => import("@/pages/workbench/component-center/intelligent-drawing/intelligent_drawing"),
}, // 智能制图
{
path: "/intelligent_details",
name: "intelligent_details",
component: () => import("@/pages/workbench/intelligent_details"),
component: () => import("@/pages/workbench/component-center/intelligent-drawing/intelligent_details"),
}, // 智能制图--详情页面
{
path: "/intelligent_appbuilder",
name: "intelligent_appbuilder",
component: () => import("@/pages/workbench/intelligent_appbuilder"),
component: () => import("@/pages/workbench/component-center/intelligent-drawing/intelligent_appbuilder"),
}, // 智能制图--应用程序页面
{
path: "/progress", // 流程设计
name: "progress",
redirect: "/progress/designer",
component: () => import("@/pages/workbench/component-center/process-management/index"),
children: [
{
path: "/progress/designer",
name: "process_designer",
component: () => import("@/pages/workbench/component-center/process-management/designer/index"),
}, // 流程设计--列表
{
path: "/progress/designer/detail/:id",
name: "process_designer_detail/:id",
component: () => import("@/pages/workbench/component-center/process-management/designer/detail"),
}, // 流程设计--详情
{
path: "/progress/monitoring",
name: "process_monitoring",
component: () => import("@/pages/workbench/component-center/process-management/monitoring/index"),
}, // 流程监控
{
path: "/progress/design",
name: "process_design",
component: () => import("@/pages/workbench/component-center/process-management/process-design/index"),
}, // 流程监控
],
}, // 流程设计
{
path: "/search_engine",
name: "search_act",
component: () => import("@/pages/workbench/search_act"),
name: "search_engine",
component: () => import("@/pages/workbench/component-center/search-engine/index"),
}, // 搜索引擎
{
path: "/user", // 个人中心
......@@ -268,6 +296,11 @@ export default new Router({
name: "userInfo",
component: () => import("@/pages/user/user_info"),
},
{
path: "/user/notice", // 消息通知
name: "notice",
component: () => import("@/pages/user/notice/notice"),
},
{
path: "/user/order_list", // 订单管理页
name: "orderList",
......@@ -503,5 +536,10 @@ export default new Router({
name: "example_com_list",
component: () => import("@/pages/example/example_com_list"),
},
{
path: "/example_com_flow", // 流程图实例
name: "example_com_flow",
component: () => import("@/pages/example/example_com_flow"),
},
],
});
......@@ -84,4 +84,17 @@ module.exports.CreationDateDesc = function (timestamp) {
return date.toLocaleDateString("zh-CN", {
timeZone: "Asia/Shanghai"
});
}
module.exports.getQueryString = function (name, url) {
let search = url.substr(url.indexOf("?"));
let theRequest = new Object();
if (search.indexOf("?") != -1) {
let str = search.substr(1);
strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest[name];
}
\ No newline at end of file
......@@ -27,6 +27,7 @@ const store = new Vuex.Store({
queryType: '',
id: '',
}, //智能制图服务详情id
unreadMessageCount: 0
},
getters: {
// 1:超管 2:组织管理员 3:普通用户 4:开发者
......@@ -72,6 +73,9 @@ const store = new Vuex.Store({
setZnztDetailsParams(state, newValue) {
state.znztDetailsParams = newValue;
},
setUnreadMessageCount(state, newValue) {
state.unreadMessageCount = newValue;
},
},
});
......
window.serviceConfig = {
gisServiceRoot: 'https://apaasgis.wodcloud.com'
};
\ No newline at end of file
......@@ -2022,7 +2022,7 @@ clone@^1.0.2:
resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
clone@^2.1.1:
clone@^2.1.1, clone@^2.1.2:
version "2.1.2"
resolved "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
......@@ -2937,7 +2937,7 @@ entities@^2.0.0:
resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
integrity sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38=
errno@^0.1.3, errno@~0.1.7:
errno@^0.1.1, errno@^0.1.3, errno@~0.1.7:
version "0.1.7"
resolved "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
integrity sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=
......@@ -3879,7 +3879,7 @@ ignore@^3.3.5:
resolved "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
integrity sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=
image-size@^0.5.1:
image-size@^0.5.1, image-size@~0.5.0:
version "0.5.5"
resolved "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c"
integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=
......@@ -4405,6 +4405,31 @@ last-call-webpack-plugin@^3.0.0:
lodash "^4.17.5"
webpack-sources "^1.1.0"
less-loader@^6.2.0:
version "6.2.0"
resolved "https://registry.npm.taobao.org/less-loader/download/less-loader-6.2.0.tgz?cache=0&sync_timestamp=1593788012269&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless-loader%2Fdownload%2Fless-loader-6.2.0.tgz#8b26f621c155b342eefc24f5bd6e9dc40c42a719"
integrity sha1-iyb2IcFVs0Lu/CT1vW6dxAxCpxk=
dependencies:
clone "^2.1.2"
less "^3.11.3"
loader-utils "^2.0.0"
schema-utils "^2.7.0"
less@^3.11.3, less@^3.12.2:
version "3.12.2"
resolved "https://registry.npm.taobao.org/less/download/less-3.12.2.tgz#157e6dd32a68869df8859314ad38e70211af3ab4"
integrity sha1-FX5t0ypohp34hZMUrTjnAhGvOrQ=
dependencies:
tslib "^1.10.0"
optionalDependencies:
errno "^0.1.1"
graceful-fs "^4.1.2"
image-size "~0.5.0"
make-dir "^2.1.0"
mime "^1.4.1"
native-request "^1.0.5"
source-map "~0.6.0"
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
......@@ -4441,6 +4466,15 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4
emojis-list "^3.0.0"
json5 "^1.0.1"
loader-utils@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
integrity sha1-5MrOW4FtQloWa18JfhDNErNgZLA=
dependencies:
big.js "^5.2.2"
emojis-list "^3.0.0"
json5 "^2.1.2"
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
......@@ -4538,7 +4572,7 @@ make-dir@^1.0.0:
dependencies:
pify "^3.0.0"
make-dir@^2.0.0:
make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
integrity sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=
......@@ -4694,7 +4728,7 @@ mime-types@~2.1.17, mime-types@~2.1.24:
dependencies:
mime-db "1.44.0"
mime@1.6.0:
mime@1.6.0, mime@^1.4.1:
version "1.6.0"
resolved "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=
......@@ -4889,6 +4923,11 @@ nanomatch@^1.2.1, nanomatch@^1.2.9:
snapdragon "^0.8.1"
to-regex "^3.0.1"
native-request@^1.0.5:
version "1.0.7"
resolved "https://registry.npm.taobao.org/native-request/download/native-request-1.0.7.tgz#ff742dc555b4c8f2f1c14b548639ba174e573856"
integrity sha1-/3QtxVW0yPLxwUtUhjm6F05XOFY=
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
......@@ -6323,7 +6362,7 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
schema-utils@^2.6.5:
schema-utils@^2.6.5, schema-utils@^2.7.0:
version "2.7.0"
resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz?cache=0&sync_timestamp=1590761195120&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
integrity sha1-FxUfdtjq5n+793lgwzxnatn078c=
......@@ -7342,6 +7381,11 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
hash-sum "^1.0.2"
loader-utils "^1.0.2"
vue-super-flow@^1.3.2:
version "1.3.2"
resolved "https://registry.npm.taobao.org/vue-super-flow/download/vue-super-flow-1.3.2.tgz#1de9b8c907b0cbcda9dfca6a36ed95ec9b45f35e"
integrity sha1-Hem4yQewy82p38pqNu2V7JtF814=
vue-template-compiler@^2.6.10:
version "2.6.11"
resolved "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080"
......
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