Commit e515b59c authored by 张俊's avatar 张俊

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

parents f4edde82 f3fbbb84
......@@ -575,7 +575,7 @@ width: 620px!important;
color: #830f53;
}
.apass_table .row_action .btn.disabled {
color: #dde4ff;
color: #999;
cursor: not-allowed;
}
.apass_table .row_action .interval_line {
......
......@@ -12,12 +12,20 @@
<template slot-scope="scope">
<div v-if="item.type === 'buttons'" class="row_action">
<template v-for="(v, i) in item.actionList">
<span
v-if="v.disabledRule && v.disabledRule(scope.row)"
class="btn disabled"
:key="'btn_' + index + '_' + i"
v-text="v.label"
>
</span>
<a
v-else
class="btn"
:class="{ warn: v.label === '删除' }"
:class="v.class || ''"
:key="'btn_' + index + '_' + i"
@click="v.callback && v.callback(scope.row)"
v-text="v.label"
v-text="v.getLabel ? v.getLabel(scope.row) : v.label"
>
</a>
<span
......@@ -35,7 +43,12 @@
@click="item.callback && item.callback(scope.row)"
></a>
</div>
<span v-else v-text="scope.row[item.prop]"></span>
<span
v-else
v-text="
item.getText ? item.getText(scope.row) : scope.row[item.prop]
"
></span>
</template>
</el-table-column>
</el-table>
......
......@@ -21,7 +21,7 @@
<a
:class="{ current: isCurrentFilter(item.prop, v) }"
@click.prevent="selectFilter(item.prop, v)"
v-text="v"
v-text="v.name"
></a>
</li>
......
<template>
<div class="service_management_list">
<apass-list
ref="list"
search-placeholder="请输入关键字"
:list-total="listTotal"
:list-filter="filterList"
......@@ -37,46 +38,16 @@ export default {
listTotal: 0,
listHeader: [],
listData: [],
filterList: [
{
name: "服务类型",
prop: "data_service_type",
data: ["数据服务", "时空服务", "视频服务", "感知服务", "综合服务"],
},
{
name: "服务领域",
prop: "sectors",
data: [
"数据服务",
"时空服务",
"视频服务",
"感知服务",
"综合服务",
"数据服务2",
"时空服务2",
"视频服务2",
"感知服务2",
"综合服务2",
"感知服务3",
"综合服务3",
],
},
{
name: "开放程度",
prop: "openness",
data: ["数据服务", "时空服务", "视频服务", "感知服务", "综合服务"],
},
{
name: "服务状态",
prop: "state",
data: ["数据服务", "时空服务", "视频服务", "感知服务", "综合服务"],
},
],
filterList: [],
roleFilter: [],
dialogInfo: {
title: "",
msg: "",
submit: null,
},
listUrl: "",
deleteUrl: "",
tempFliter: null,
}),
computed: {
...mapState({
......@@ -99,23 +70,33 @@ export default {
},
methods: {
initFilter() {
/* this.$http
.get("/apaas/serviceapp/v3/servicemarket/list", {
params: {},
})
.then(({ data }) => {
console.log(data);
})
.catch((error) => {
console.log(error);
}); */
Promise.all([
this.$http.get("/apaas/service/v3/service/manager/servtype"),
this.$http.get("/apaas/service/v3/service/manager/servarea"),
]).then((response) => {
let data = 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 = [...data, ...this.roleFilter];
});
},
initHeader() {
let _self = this;
let level = this.level;
let type = this.type;
// 普通用户 --- 注册发布的服务
if (level == 0 && type == 0) {
this.listUrl = "/apaas/service/v3/service/manager/list";
this.deleteUrl = "/apaas/service/v3/service/manager";
this.listHeader = [
{
label: "服务名称",
......@@ -162,12 +143,56 @@ export default {
callback: this.editItem,
},
{
label: "申请下架",
callback: this.applyForSoldOutItem,
getLabel(item) {
return item.state == 1 ? "申请下架" : "申请上架";
},
callback(item) {
item.state == 1
? _self.applyForSoldOutItem(item)
: _self.applyForSoldUpItem(item);
},
},
{
label: "删除",
callback: this.deleteItem,
class: "warn",
disabledRule(item) {
return item.state === 1;
},
},
],
},
];
this.roleFilter = [
{
name: "开放程度",
prop: "openness",
data: [
{
name: "共享",
value: 1,
},
{
name: "受限",
value: 2,
},
{
name: "敏感",
value: 3,
},
],
},
{
name: "服务状态",
prop: "state",
data: [
{
name: "上架中",
value: 1,
},
{
name: "已下架",
value: 2,
},
],
},
......@@ -175,6 +200,8 @@ export default {
}
// 普通用户 --- 申请的服务
else if (level == 0 && type == 1) {
this.listUrl = "/apaas/service/v3/service/apply/service/list";
this.deleteUrl = "/apaas/service/v3/service/apply/service";
this.listHeader = [
{
label: "服务名称",
......@@ -184,31 +211,45 @@ export default {
},
{
label: "服务领域",
prop: "date",
prop: "sectors_name",
align: "center",
},
{
label: "开放程度",
prop: "address",
prop: "openness_name",
align: "center",
},
{
label: "服务描述",
prop: "address",
prop: "descript",
},
{
label: "申请时间",
prop: "address",
prop: "service_apply_info",
getText(item) {
return (
(item.service_apply_info &&
item.service_apply_info.apply_time) ||
""
);
},
align: "center",
},
{
label: "服务类型",
prop: "address",
prop: "data_service_type1_name",
align: "center",
},
{
label: "申请状态",
prop: "address",
prop: "service_apply_info",
getText(item) {
return ["-", "待审批", "审批中", "审批通过", "审批未通过"][
(item.service_apply_info &&
item.service_apply_info.approval_status) ||
0
];
},
align: "center",
},
{
......@@ -219,13 +260,59 @@ export default {
{
label: "删除",
callback: this.deleteItem,
disabledRule(item) {
return item.approval_status === 1;
},
},
],
},
];
this.roleFilter = [
{
name: "开放程度",
prop: "openness",
data: [
{
name: "共享",
value: 1,
},
{
name: "受限",
value: 2,
},
{
name: "敏感",
value: 3,
},
],
},
{
name: "申请状态",
prop: "state",
data: [
{
name: "待审批",
value: 1,
},
{
name: "审批中",
value: 2,
},
{
name: "审批通过",
value: 3,
},
{
name: "审批未通过",
value: 4,
},
],
},
];
}
// 普通用户 --- 云资源服务
// TODO: 普通用户 --- 云资源服务
else if (level == 0 && type == 2) {
this.listUrl = "/apaas/service/v3/service/manager/list";
this.listHeader = [
{
label: "工作区域",
......@@ -283,6 +370,7 @@ export default {
// 组织管理员 --- 组织服务管理
else if (level == 1 && type == 0) {
this.listUrl = "/apaas/service/v3/service/manager/list";
this.listHeader = [
{
label: "服务名称",
......@@ -292,42 +380,84 @@ export default {
},
{
label: "服务领域",
prop: "date",
prop: "sectors_name",
align: "center",
},
{
label: "开放程度",
prop: "date",
prop: "openness_name",
align: "center",
},
{
label: "请求方式",
prop: "date",
prop: "req_type",
getText(item) {
return ["-", "GET", "POST", "PUT", "DELETE"][item.req_type || 0];
},
align: "center",
},
{
label: "服务描述",
prop: "date",
prop: "descript",
},
{
label: "注册发布时间",
prop: "date",
prop: "create_time",
align: "center",
},
{
label: "服务类型",
prop: "date",
prop: "data_service_type1_name",
align: "center",
},
{
label: "服务状态",
prop: "date",
prop: "state",
getText(item) {
return ["已下架", "上架中"][item.state];
},
align: "center",
},
];
this.roleFilter = [
{
name: "开放程度",
prop: "openness",
data: [
{
name: "共享",
value: 1,
},
{
name: "受限",
value: 2,
},
{
name: "敏感",
value: 3,
},
],
},
{
name: "服务状态",
prop: "state",
data: [
{
name: "上架中",
value: 1,
},
{
name: "已下架",
value: 2,
},
],
},
];
}
// 组织管理员 --- 服务审批管理
else if (level == 1 && type == 1) {
this.listUrl = "/apaas/service/v3/service/approval/applied/list";
this.deleteUrl = "/apaas/service/v3/service/approval/applied";
this.listHeader = [
{
label: "服务名称",
......@@ -335,36 +465,53 @@ export default {
},
{
label: "服务领域",
prop: "date",
prop: "sectors_name",
align: "center",
},
{
label: "开放程度",
prop: "date",
prop: "openness_name",
align: "center",
},
{
label: "请求方式",
prop: "date",
prop: "req_type",
getText(item) {
return ["-", "GET", "POST", "PUT", "DELETE"][item.req_type || 0];
},
align: "center",
},
{
label: "服务描述",
prop: "date",
prop: "descript",
},
{
label: "审批时间",
prop: "date",
prop: "service_apply_info",
getText(item) {
return (
(item.service_apply_info &&
item.service_apply_info.approval_time) ||
""
);
},
align: "center",
},
{
label: "服务类型",
prop: "date",
prop: "data_service_type1_name",
align: "center",
},
{
label: "审批状态",
prop: "date",
prop: "service_apply_info",
getText(item) {
return ["-", "已审批", "待审批"][
(item.service_apply_info &&
item.service_apply_info.approval_status) ||
0
];
},
align: "center",
},
{
......@@ -379,14 +526,50 @@ export default {
},
{
label: "删除",
class: "warn",
callback: this.deleteItem,
},
],
},
];
this.roleFilter = [
{
name: "开放程度",
prop: "openness",
data: [
{
name: "共享",
value: 1,
},
{
name: "受限",
value: 2,
},
{
name: "敏感",
value: 3,
},
],
},
{
name: "审批状态",
prop: "state",
data: [
{
name: "已审批",
value: 1,
},
{
name: "待审批",
value: 2,
},
],
},
];
}
// 组织管理员 --- 云资源管理
// TODO:组织管理员 --- 云资源管理
else if (level == 1 && type == 2) {
this.listUrl = "/apaas/service/v3/service/manager/list";
this.listHeader = [
{
label: "工作区域",
......@@ -442,8 +625,10 @@ export default {
];
}
// 超级管理员 --- 组织服务管理
// 超级管理员 --- 平台服务管理
else if (level == 2 && type == 0) {
this.listUrl = "/apaas/service/v3/service/manager/list";
this.deleteUrl = "/apaas/service/v3/service/manager";
this.listHeader = [
{
label: "服务名称",
......@@ -453,31 +638,34 @@ export default {
},
{
label: "服务领域",
prop: "date",
prop: "sectors_name",
align: "center",
},
{
label: "开放程度",
prop: "date",
prop: "openness_name",
align: "center",
},
{
label: "请求方式",
prop: "date",
prop: "req_type",
getText(item) {
return ["-", "GET", "POST", "PUT", "DELETE"][item.req_type || 0];
},
align: "center",
},
{
label: "服务描述",
prop: "date",
prop: "descript",
},
{
label: "注册发布时间",
prop: "date",
prop: "create_time",
align: "center",
},
{
label: "服务类型",
prop: "date",
prop: "data_service_type1_name",
align: "center",
},
{
......@@ -491,19 +679,48 @@ export default {
callback: this.editItem,
},
{
label: "下架",
callback: this.soldOutItem,
getLabel(item) {
return item.state == 1 ? "下架" : "上架";
},
callback(item) {
item.state == 1
? _self.soldOutItem(item)
: _self.soldUpItem(item);
},
},
{
label: "删除",
class: "warn",
callback: this.deleteItem,
},
],
},
];
this.roleFilter = [
{
name: "开放程度",
prop: "openness",
data: [
{
name: "共享",
value: 1,
},
{
name: "受限",
value: 2,
},
{
name: "敏感",
value: 3,
},
],
},
];
}
// 超级管理员 --- 服务审批管理
else if (level == 2 && type == 1) {
this.listUrl = "/apaas/service/v3/service/approval/applied/list";
this.deleteUrl = "/apaas/service/v3/service/approval/applied";
this.listHeader = [
{
label: "服务名称",
......@@ -511,36 +728,53 @@ export default {
},
{
label: "服务领域",
prop: "date",
prop: "sectors_name",
align: "center",
},
{
label: "开放程度",
prop: "date",
prop: "openness_name",
align: "center",
},
{
label: "请求方式",
prop: "date",
prop: "req_type",
getText(item) {
return ["-", "GET", "POST", "PUT", "DELETE"][item.req_type || 0];
},
align: "center",
},
{
label: "服务描述",
prop: "date",
prop: "descript",
},
{
label: "审批时间",
prop: "date",
prop: "service_apply_info",
getText(item) {
return (
(item.service_apply_info &&
item.service_apply_info.approval_time) ||
""
);
},
align: "center",
},
{
label: "服务类型",
prop: "date",
prop: "data_service_type1_name",
align: "center",
},
{
label: "审批状态",
prop: "date",
prop: "service_apply_info",
getText(item) {
return ["-", "已审批", "待审批"][
(item.service_apply_info &&
item.service_apply_info.approval_status) ||
0
];
},
align: "center",
},
{
......@@ -555,14 +789,50 @@ export default {
},
{
label: "删除",
class: "warn",
callback: this.deleteItem,
},
],
},
];
this.roleFilter = [
{
name: "开放程度",
prop: "openness",
data: [
{
name: "共享",
value: 1,
},
{
name: "受限",
value: 2,
},
{
name: "敏感",
value: 3,
},
],
},
{
name: "审批状态",
prop: "state",
data: [
{
name: "已审批",
value: 1,
},
{
name: "待审批",
value: 2,
},
],
},
];
}
// 超级管理员 --- 云资源管理
// TODO:超级管理员 --- 云资源管理
else if (level == 2 && type == 2) {
this.listUrl = "/apaas/service/v3/service/manager/list";
this.listHeader = [
{
label: "所属组织",
......@@ -608,22 +878,29 @@ export default {
}
},
initDatas(filter) {
// console.log(filter);
this.tempFliter = filter;
this.$http
.get("/apaas/service/v3/service/manager/list", {
.get(this.listUrl, {
params: {
data_service_type: 0,
sectors: 0,
openness: 0,
state: "",
data_service_type:
filter.service_type_1 &&
filter.service_type_1.map((item) => item.value).join(","), // 服务类型
sectors:
filter.service_area &&
filter.service_area.map((item) => item.value).join(","), // 服务领域
openness:
filter.openness &&
filter.openness.map((item) => item.value).join(","), // 开放程度
state:
filter.state && filter.state.map((item) => item.value).join(","), // 服务状态
keyword: filter.keyword,
page: filter.page,
size: filter.size,
},
})
.then(({ data }) => {
// console.log(data);
// console.log(data.data);
this.listTotal = data.data.total;
this.listData = data.data.data;
})
......@@ -646,7 +923,35 @@ export default {
this.dialogInfo.cancelText = "取消";
this.dialogInfo.sunbmitText = "发送通知";
this.dialogInfo.submit = () => {
console.log("applyForSoldOutItem - " + item.name);
this.$http
.post(`/apaas/service/v3/service/manager/send/downnotice`, {
id: item.id,
})
.then((response) => {
console.log("已申请下架" + item.name);
})
.catch((error) => {
console.log(error);
});
};
this.showDialog();
},
applyForSoldUpItem(item) {
this.dialogInfo.title = "提示";
this.dialogInfo.msg = "确认申请上架此服务吗?";
this.dialogInfo.cancelText = "取消";
this.dialogInfo.sunbmitText = "发送通知";
this.dialogInfo.submit = () => {
this.$http
.post(`/apaas/service/v3/service/manager/send/upnotice`, {
id: item.id,
})
.then((response) => {
console.log("已申请上架" + item.name);
})
.catch((error) => {
console.log(error);
});
};
this.showDialog();
},
......@@ -656,7 +961,19 @@ export default {
this.dialogInfo.cancelText = "";
this.dialogInfo.sunbmitText = "";
this.dialogInfo.submit = () => {
console.log("deleteItem - " + item.name);
this.$http
.delete(this.deleteUrl, {
params: {
id: item.id,
},
})
.then((response) => {
this.initDatas(this.tempFliter);
console.log("已删除" + item.name);
})
.catch((error) => {
console.log(error);
});
};
this.showDialog();
},
......@@ -677,8 +994,38 @@ export default {
"下架此服务会导致调用该服务的<br />用户被迫暂停对服务的调用";
this.dialogInfo.cancelText = "";
this.dialogInfo.sunbmitText = "确定";
this.dialogInfo.confirmSubmit = () => {
console.log("submit - " + item.name);
this.dialogInfo.submit = () => {
this.$http
.post(`/apaas/service/v3/service/manager/down`, {
id: item.id,
})
.then((response) => {
this.initDatas(this.tempFliter);
console.log("已下架" + item.name);
})
.catch((error) => {
console.log(error);
});
};
this.showDialog();
},
soldUpItem(item) {
this.dialogInfo.title = "提示";
this.dialogInfo.msg = "确认上架此服务吗?";
this.dialogInfo.cancelText = "";
this.dialogInfo.sunbmitText = "确定";
this.dialogInfo.submit = () => {
this.$http
.post(`/apaas/service/v3/service/manager/up`, {
id: item.id,
})
.then((response) => {
this.initDatas(this.tempFliter);
console.log("已下架" + item.name);
})
.catch((error) => {
console.log(error);
});
};
this.showDialog();
},
......@@ -689,8 +1036,8 @@ export default {
created() {
this.level = parseInt(this.$route.params.level);
this.type = parseInt(this.$route.params.type);
this.initFilter();
this.initHeader();
this.initFilter();
},
};
</script>
......
......@@ -7,9 +7,9 @@ const store = new Vuex.Store({
role: 2, // 0:普通用户,1:组织管理员,2:超级管理员
serviceShopMenu: "/shop/data_service_list", // 服务超市侧边栏
fwglNav: [
["注册发布的服务", "申请的服务", "云资源服务"], // 普通用户
["组织服务管理", "服务审批管理", "云资源管理"], // 组织管理员
["平台服务管理", "服务审批管理", "云资源管理"], // 超级管理员
["注册发布的服务", "申请的服务" /* , "云资源服务" */], // 普通用户
["组织服务管理", "服务审批管理" /* , "云资源管理" */], // 组织管理员
["平台服务管理", "服务审批管理" /* , "云资源管理" */], // 超级管理员
], // 服务管理列表,onlyRead
yyglNav: [
["应用仓库", "我部署的应用", "申请的应用", "审批的应用"], // 普通用户
......
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