Commit 569c655d authored by 徐一鸣's avatar 徐一鸣

Merge branch 'xym' into dev

parents 69f2de44 c36cbf93
......@@ -4,15 +4,18 @@
<i class="el-icon-close"></i>
</a>
<div class="app_card-icon">
<el-avatar shape="square" :size="56" fit="cover" :src="data.logo" />
<el-avatar shape="square" :size="56" fit="cover" src="data.logo" />
</div>
<div class="app_card-info">
<p
class="app_card-name text_clip"
v-text="data.app_name"
v-text="cardType == 0 ? data.app_name : data.deploy_name"
@click="intoDetail"
></p>
<p class="app_card-version text_clip" v-text="data.version"></p>
<p
class="app_card-version text_clip"
v-text="cardType == 0 ? data.version : data.app_version"
></p>
</div>
<div class="app_card-action" v-if="cardType == 0">
<el-button type="primary" plain @click="deploymentAction">
......@@ -24,7 +27,10 @@
<i class="el-icon-time"></i>
<span>上线时间:</span>
</span>
<span class="text_clip" v-text="data.created"></span>
<span
class="text_clip"
v-text="data.created && data.created.substring(0, 10)"
></span>
</p>
</div>
</template>
......
......@@ -62,7 +62,10 @@
</div>
<div class="commodity_information">
<span>规格说明:</span>
<span class="commodity_text" v-text="specification.descript"></span>
<span
class="commodity_text"
v-text="specification && specification.descript"
></span>
</div>
<div class="commodity_information">
<span>购买方式:</span>
......@@ -125,10 +128,6 @@ export default {
(item) => item.type == this.type
);
if (this.specification.id === undefined) {
this.specification = specifications[0];
}
return specifications;
},
},
......@@ -146,6 +145,9 @@ export default {
},
changeType({ value }) {
this.type = value;
if (this.specifications.length > 0) {
this.specification = this.specifications[0];
}
},
addToCart() {
// console.log("addToCart");
......@@ -183,6 +185,11 @@ export default {
console.log("applyImmediately");
},
},
mounted() {
if (this.specifications.length > 0) {
this.specification = this.specifications[0];
}
},
};
</script>
......
......@@ -56,12 +56,15 @@ export default {
})
.then(({ data }) => {
let datas = data.data;
let specificationData = datas.serviceRequestSpcs.map((item) => ({
id: item.id,
type: item.type,
name: `访问次数:${item.pv}/日 访问量:${item.count}/日`,
descript: item.des,
}));
let specificationData =
(datas.serviceRequestSpcs &&
datas.serviceRequestSpcs.map((item) => ({
id: item.id,
type: item.type,
name: `访问次数:${item.pv}/日 访问量:${item.count}/日`,
descript: item.des,
}))) ||
[];
this.baseInfo = {
service_id: this.id,
......@@ -180,9 +183,9 @@ export default {
this.specificationData = specificationData;
this.providerData = {
organization_name: datas.organization_name,
picture_path: datas.userInfo.picture_path,
user_name: datas.userInfo.user_name,
phone: datas.userInfo.phone,
picture_path: datas.organization_picture,
user_name: datas.register_user_info.user_name,
phone: datas.register_user_info.phone,
};
this.commentsData = datas.scoreDetail;
})
......
......@@ -61,12 +61,14 @@ export default {
})
.then(({ data }) => {
let datas = data.data;
let specificationData = datas.serviceRequestSpcs.map((item) => ({
id: item.id,
type: item.type,
name: `访问次数:${item.pv}/日 访问量:${item.count}/日`,
descript: item.des,
}));
(datas.serviceRequestSpcs &&
datas.serviceRequestSpcs.map((item) => ({
id: item.id,
type: item.type,
name: `访问次数:${item.pv}/日 访问量:${item.count}/日`,
descript: item.des,
}))) ||
[];
this.baseInfo = {
service_id: this.id,
......@@ -97,7 +99,7 @@ export default {
type: "text",
value: datas.descript,
},
{
/* {
name: "服务属性", // TODO: replace
type: "list",
value: [
......@@ -131,14 +133,14 @@ export default {
value: "禁用",
},
],
},
}, */
];
this.specificationData = specificationData;
this.providerData = {
organization_name: datas.organization_name,
picture_path: datas.userInfo.picture_path,
user_name: datas.userInfo.user_name,
phone: datas.userInfo.phone,
picture_path: datas.organization_picture,
user_name: datas.register_user_info.user_name,
phone: datas.register_user_info.phone,
};
this.commentsData = datas.scoreDetail;
})
......
......@@ -61,12 +61,14 @@ export default {
})
.then(({ data }) => {
let datas = data.data;
let specificationData = datas.serviceRequestSpcs.map((item) => ({
id: item.id,
type: item.type,
name: `访问次数:${item.pv}/日 访问量:${item.count}/日`,
descript: item.des,
}));
(datas.serviceRequestSpcs &&
datas.serviceRequestSpcs.map((item) => ({
id: item.id,
type: item.type,
name: `访问次数:${item.pv}/日 访问量:${item.count}/日`,
descript: item.des,
}))) ||
[];
this.baseInfo = {
service_id: this.id,
......@@ -96,7 +98,7 @@ export default {
type: "text",
value: datas.descript,
},
{
/* {
name: "微服务响应列表", // TODO: replace
type: "table",
value: {
......@@ -125,14 +127,14 @@ export default {
},
],
},
},
}, */
];
this.specificationData = specificationData;
this.providerData = {
organization_name: datas.organization_name,
picture_path: datas.userInfo.picture_path,
user_name: datas.userInfo.user_name,
phone: datas.userInfo.phone,
picture_path: datas.organization_picture,
user_name: datas.register_user_info.user_name,
phone: datas.register_user_info.phone,
};
this.commentsData = datas.scoreDetail;
})
......
......@@ -48,7 +48,7 @@
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
镜像文件拖到此处,或<em>点击上传</em>
</div>
</el-upload>
</el-form-item>
......@@ -120,7 +120,7 @@
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
将文件拖到此处,或<em>点击上传</em>
部署文件拖到此处,或<em>点击上传</em>
</div>
</el-upload>
</el-form-item>
......@@ -412,16 +412,16 @@ export default {
this.app_info.logo = response.data;
},
beforeLogoUpload(file) {
/* const isJPG = file.type === "image/jpeg";
const isLt2M = file.size / 1024 / 1024 < 2;
const isPic = file.type === "image/jpeg" || file.type === "image/png";
const isLt10M = file.size / 1024 / 1024 < 10;
if (!isJPG) {
this.$message.error("上传头像图片只能是 JPG 格式!");
if (!isPic) {
this.$message.error("上传头像图片只能是 JPG 或 PNG 格式!");
}
if (!isLt2M) {
this.$message.error("上传头像图片大小不能超过 2MB!");
if (!isLt10M) {
this.$message.error("上传头像图片大小不能超过 10MB!");
}
return isJPG && isLt2M; */
return isPic && isLt10M;
},
getYwlys() {
this.$http
......
......@@ -111,13 +111,11 @@ export default {
{
label: "服务领域",
prop: "sectors_name",
type: "",
align: "center",
},
{
label: "开放程度",
prop: "openness_name",
type: "",
align: "center",
},
{
......@@ -127,13 +125,15 @@ export default {
{
label: "注册发布时间",
prop: "create_time",
type: "",
getText(item) {
let create_time = item.create_time || "";
return create_time.substring(0, 10);
},
align: "center",
},
{
label: "服务类型",
prop: "data_service_type1_name",
type: "",
align: "center",
},
{
......@@ -414,6 +414,10 @@ export default {
{
label: "注册发布时间",
prop: "create_time",
getText(item) {
let create_time = item.create_time || "";
return create_time.substring(0, 10);
},
align: "center",
},
{
......@@ -675,6 +679,10 @@ export default {
{
label: "注册发布时间",
prop: "create_time",
getText(item) {
let create_time = item.create_time || "";
return create_time.substring(0, 10);
},
align: "center",
},
{
......
......@@ -16,7 +16,7 @@
</el-breadcrumb>
<app-list
v-if="listType"
v-if="listType === 'card'"
slot="list"
:data="listData"
:card-type="cardType"
......@@ -58,10 +58,11 @@ export default {
listData: [],
dialogInfo: {
title: "",
message: "",
btnCancelText: "",
btnSubmitText: "",
item: null,
msg: "",
submit: null,
cancelText: "",
sunbmitText: "",
submit: null,
},
otherFilter1: [],
otherFilter2: [],
......@@ -92,6 +93,7 @@ export default {
initHeader() {
let level = this.level;
let type = this.type;
let _self = this;
// 普通用户 --- 应用仓库 card列表形式
if (level === 0 && type === 0) {
......@@ -203,14 +205,51 @@ export default {
else if (level === 0 && type === 2) {
this.listType = "table";
this.listHeader = [
{ label: "应用名称", prop: "name", type: "href", align: "left" },
{ label: "应用版本", prop: "date", type: "", align: "center" },
{ label: "应用类型", prop: "address", type: "", align: "center" },
{ label: "业务领域", prop: "address", type: "", align: "center" },
{ label: "在线区域", prop: "address", type: "", align: "center" },
{ label: "申请类型", prop: "address", type: "", align: "center" },
{ label: "申请时间", prop: "address", type: "", align: "center" },
{ label: "申请状态", prop: "address", type: "", align: "center" },
{
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
},
{
label: "应用版本",
prop: "version",
align: "center",
},
{
label: "应用类型",
prop: "type_name",
align: "center",
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
},
{
label: "在线区域",
prop: "online_state_name",
align: "center",
},
{
label: "申请类型",
prop: "apply_type_name",
align: "center",
},
{
label: "申请时间",
prop: "time",
getText(item) {
let time = item.time || "";
return time.substring(0, 10);
},
align: "center",
},
{
label: "申请状态",
prop: "apply_status",
align: "center",
},
];
this.otherFilter1 = [
{
......@@ -281,14 +320,22 @@ export default {
else if (level === 0 && type === 3) {
this.listType = "table";
this.listHeader = [
{ label: "应用名称", prop: "name", type: "href", align: "left" },
{ label: "应用版本", prop: "date", type: "", align: "center" },
{ label: "应用类型", prop: "address", type: "", align: "center" },
{ label: "业务领域", prop: "address", type: "", align: "center" },
{ label: "在线区域", prop: "address", type: "", align: "center" },
{ label: "申请类型", prop: "address", type: "", align: "center" },
{ label: "审批时间", prop: "address", type: "", align: "center" },
{ label: "审批状态", prop: "address", type: "", align: "center" },
{
label: "应用名称", prop: "name", type: "href", align: "left" },
{
label: "应用版本", prop: "date", align: "center" },
{
label: "应用类型", prop: "address", align: "center" },
{
label: "业务领域", prop: "address", align: "center" },
{
label: "在线区域", prop: "address", align: "center" },
{
label: "申请类型", prop: "address", align: "center" },
{
label: "审批时间", prop: "address", align: "center" },
{
label: "审批状态", prop: "address", align: "center" },
{
label: "操作",
type: "Button",
......@@ -313,20 +360,59 @@ export default {
else if (level === 1 && type === 0) {
this.listType = "table";
this.listHeader = [
{ label: "应用名称", prop: "name", type: "href", align: "left" },
{ label: "应用版本", prop: "date", type: "", align: "center" },
{ label: "应用类型", prop: "address", type: "", align: "center" },
{ label: "业务领域", prop: "address", type: "", align: "center" },
{ label: "在线状态", prop: "address", type: "", align: "center" },
{ label: "创建时间", prop: "address", type: "", align: "center" },
{
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
},
{
label: "应用版本",
prop: "version",
align: "center",
},
{
label: "应用类型",
prop: "type_name",
align: "center",
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
},
{
label: "在线状态",
prop: "online_state",
align: "center",
},
{
label: "创建时间",
prop: "create_date",
getText(item) {
let time = item.create_date || "";
return time.substring(0, 10);
},
align: "center",
},
{
label: "操作",
type: "Button",
type: "buttons",
align: "center",
width: 160,
btnList: [
{
type: "goods-shelf",
actionList: [
{
getLabel(item) {
return item.online_state == 0 ? "上架" : "下架";
},
callback(item) {
item.online_state == 0
? _self.soldUpItem(item)
: _self.soldOutItem(item);
},
disabledRule(item) {
return item.online_state == 2;
},
},
],
},
......@@ -336,41 +422,103 @@ export default {
else if (level === 1 && type === 1) {
this.listType = "table";
this.listHeader = [
{ label: "应用名称", prop: "name", type: "href", align: "left" },
{ label: "应用版本", prop: "date", type: "", align: "center" },
{ label: "应用类型", prop: "address", type: "", align: "center" },
{ label: "业务领域", prop: "address", type: "", align: "center" },
{ label: "上架区域", prop: "address", type: "", align: "center" },
{ label: "部署时间", prop: "address", type: "", align: "center" },
{ label: "部署区域", prop: "address", type: "", align: "center" },
{
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
},
{
label: "应用版本",
prop: "version",
align: "center",
},
{
label: "应用类型",
prop: "type_name",
align: "center",
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
},
{
label: "上架区域",
prop: "address",
align: "center",
},
{
label: "部署时间",
prop: "address",
align: "center",
},
{
label: "部署区域",
prop: "address",
align: "center",
},
];
}
// 组织管理员 --- 应用审批管理
else if (level === 1 && type === 2) {
this.listType = "table";
this.listHeader = [
{ label: "应用名称", prop: "name", type: "", align: "left" },
{ label: "应用版本", prop: "date", type: "", align: "center" },
{ label: "应用类型", prop: "address", type: "", align: "center" },
{ label: "业务领域", prop: "address", type: "", align: "center" },
{ label: "在线区域", prop: "address", type: "", align: "center" },
{ label: "申请类型", prop: "address", type: "", align: "center" },
{ label: "审批时间", prop: "address", type: "", align: "center" },
{ label: "申请状态", prop: "address", type: "", align: "center" },
{
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
},
{
label: "应用版本",
prop: "version",
align: "center",
},
{
label: "应用类型",
prop: "type_name",
align: "center",
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
},
{
label: "在线区域",
prop: "online_state_name",
align: "center",
},
{
label: "申请类型",
prop: "apply_type_name",
align: "center",
},
{
label: "审批时间",
prop: "apply_date",
align: "center",
},
{
label: "申请状态",
prop: "apply_status",
align: "center",
},
{
label: "操作",
type: "Button",
type: "buttons",
align: "center",
width: 160,
btnList: [
actionList: [
{
type: "action-approval",
label: "审批",
line: "|",
callback: this.approvalItem,
},
{
type: "action-delete",
label: "删除",
class: "warn",
callback: this.deleteItem,
},
],
},
......@@ -381,31 +529,54 @@ export default {
else if (level === 2 && type === 0) {
this.listType = "table";
this.listHeader = [
{ label: "应用名称", prop: "name", type: "href", align: "left" },
{ label: "应用版本", prop: "date", type: "", align: "center" },
{ label: "应用类型", prop: "address", type: "", align: "center" },
{ label: "业务领域", prop: "address", type: "", align: "center" },
{ label: "在线状态", prop: "address", type: "", align: "center" },
{ label: "所属组织", prop: "address", type: "", align: "center" },
{
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
},
{
label: "应用版本",
prop: "version",
align: "center",
},
{
label: "应用类型",
prop: "type_name",
align: "center",
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
},
{
label: "在线状态",
prop: "online_state",
align: "center",
},
{
label: "所属组织",
prop: "address",
align: "center",
},
{
label: "操作",
type: "Button",
type: "buttons",
align: "center",
width: 240,
btnList: [
actionList: [
{
type: "action-edit",
label: "编辑",
line: "|",
callback: _self.editItem
},
{
type: "off-line",
label: "下线",
line: "|",
callback: _self.offLine
},
{
type: "action-delete",
label: "删除",
callback: _self.deleteItem
},
],
},
......@@ -415,42 +586,108 @@ export default {
else if (level === 2 && type === 1) {
this.listType = "table";
this.listHeader = [
{ label: "应用名称", prop: "name", type: "href", align: "left" },
{ label: "应用版本", prop: "date", type: "", align: "center" },
{ label: "应用类型", prop: "address", type: "", align: "center" },
{ label: "业务领域", prop: "address", type: "", align: "center" },
{ label: "上架区域", prop: "address", type: "", align: "center" },
{ label: "所属组织", prop: "address", type: "", align: "center" },
{ label: "部署时间", prop: "address", type: "", align: "center" },
{ label: "部署区域", prop: "address", type: "", align: "center" },
{
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
},
{
label: "应用版本",
prop: "version",
align: "center",
},
{
label: "应用类型",
prop: "type_name",
align: "center",
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
},
{
label: "上架区域",
prop: "address",
align: "center",
},
{
label: "所属组织",
prop: "address",
align: "center",
},
{
label: "部署时间",
prop: "address",
align: "center",
},
{
label: "部署区域",
prop: "address",
align: "center",
},
];
}
// 超级管理员 --- 应用审批管理
else if (level === 2 && type === 2) {
this.listType = "table";
this.listHeader = [
{ label: "应用名称", prop: "name", type: "", align: "left" },
{ label: "应用版本", prop: "date", type: "", align: "center" },
{ label: "应用类型", prop: "address", type: "", align: "center" },
{ label: "业务领域", prop: "address", type: "", align: "center" },
{ label: "在线区域", prop: "address", type: "", align: "center" },
{ label: "申请类型", prop: "address", type: "", align: "center" },
{ label: "审批时间", prop: "address", type: "", align: "center" },
{ label: "申请状态", prop: "address", type: "", align: "center" },
{
label: "应用名称",
prop: "app_name",
type: "button",
callback: this.detailItem,
},
{
label: "应用版本",
prop: "version",
align: "center",
},
{
label: "应用类型",
prop: "type_name",
align: "center",
},
{
label: "业务领域",
prop: "ywly_name",
align: "center",
},
{
label: "在线区域",
prop: "online_state_name",
align: "center",
},
{
label: "申请类型",
prop: "apply_type_name",
align: "center",
},
{
label: "审批时间",
prop: "apply_date",
align: "center",
},
{
label: "申请状态",
prop: "apply_status",
align: "center",
},
{
label: "操作",
type: "Button",
type: "buttons",
align: "center",
width: 160,
btnList: [
actionList: [
{
type: "action-approval",
label: "审批",
line: "|",
callback: this.approvalItem,
},
{
type: "action-delete",
label: "删除",
class: "warn",
callback: this.deleteItem,
},
],
},
......@@ -522,7 +759,7 @@ export default {
let listUrl = [
"/apaas/hubApi/market/list",
"/apaas/hubApi/market/deployList",
"/apaas/hubApi/market/deployList",
"/apaas/hubApi/market/applyList",
];
let params = {};
......@@ -581,34 +818,117 @@ export default {
console.log(error);
});
},
deploymentAction(item) {
console.log("deployment " + item.name);
},
deleteAction(item) {
/* if (this.cardType === 0) {
this.dialogInfo.title = "删除提示";
this.dialogInfo.msg =
"您需要先进行应用商店下架申请,应用处于下架状态时才能进行删除操作。";
this.dialogInfo.btnCancelText = "";
this.dialogInfo.btnSubmitText = "";
this.dialogInfo.confirmSubmit = () => {
console.log("deleteItem - " + item.name);
this.$refs.myConfirm.hideModel();
};
if (this.cardType === 0) {
if (item.online_state == 0) {
this.dialogInfo.title = "";
this.dialogInfo.msg = "是否删除该条应用?";
this.dialogInfo.cancelText = "";
this.dialogInfo.sunbmitText = "";
this.dialogInfo.submit = () => {
this.$http
.delete(`/apaas/hubApi/market/del/${item.app_id}`)
.then(({ data }) => {
if (data.success) {
this.$message({
message: `删除${item.app_name}成功.`,
type: "success",
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `删除${item.app_name}失败.`,
type: "warning",
});
}
})
.catch((error) => {
this.$message({
message: `删除${item.app_name}失败.`,
type: "warning",
});
});
};
} else {
this.dialogInfo.title = "删除提示";
this.dialogInfo.msg =
"您需要先进行应用商店下架申请,应用处于下架状态时才能进行删除操作。";
this.dialogInfo.cancelText = "";
this.dialogInfo.sunbmitText = "";
this.dialogInfo.submit = () => {
if (item.up_deploy_status === 3) {
this.$message({
message: `${item.app_name}正在申请下架中.`,
type: "warning",
});
} else {
this.$http
.put(`/apaas/hubApi/market/deployStatus/${item.app_id}/3`)
.then(({ data }) => {
if (data.success) {
this.$message({
message: `申请下架${item.app_name}成功.`,
type: "success",
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `申请下架${item.app_name}失败.`,
type: "warning",
});
}
})
.catch((error) => {
this.$message({
message: `申请下架${item.app_name}失败.`,
type: "warning",
});
});
}
};
}
} else if (this.cardType === 1) {
this.dialogInfo.title = "是否删除部署的应用";
this.dialogInfo.msg =
"该操作会导致正在调用该应用的用户被迫终止对应用的调用,删除前需向正在调用该应用的用户发送通知,自通知发送之日起,2日后应用将被删除。";
this.dialogInfo.btnCancelText = "";
this.dialogInfo.btnSubmitText = "发送通知";
this.dialogInfo.confirmSubmit = () => {
console.log("deleteItem - " + item.name);
this.$refs.myConfirm.hideModel();
this.dialogInfo.cancelText = "";
this.dialogInfo.sunbmitText = "发送通知";
this.dialogInfo.submit = () => {
this.$http
.delete(`/apaas/hubApi/market/deploy/${item.deploy_name}`, {
params: {
deployId: item.deploy_id,
},
})
.then(({ data }) => {
if (data.success) {
this.$message({
message: `删除${item.deploy_name}成功.`,
type: "success",
});
this.initDatas(this.tempFliter);
} else {
this.$message({
message: `删除${item.deploy_name}失败.`,
type: "warning",
});
}
})
.catch((error) => {
this.$message({
message: `删除${item.deploy_name}失败.`,
type: "warning",
});
});
};
}
this.$refs.myConfirm.showModel(); */
this.$refs.dialog.show();
},
deploymentAction(item) {
console.log("deployment " + item.app_name);
console.log("一键部署功能设计中···");
}, // TODO: 一键部署功能设计中
changePageSize(value) {
this.pageSize = value;
this.currentPage = 1;
......@@ -622,6 +942,15 @@ export default {
deleteItem(item) {
console.log("delete --- " + item.id);
},
detailItem(item) {
this.$router.push(`${this.detailsUrl + item.app_id}`);
},
soldUpItem(item) {
console.log(`上架${item.app_name}`);
},
soldOutItem(item) {
console.log(`下架${item.app_name}`);
},
editItem(item) {
this.$router.push(`/yygl/${this.level}/${this.type}/edit/${item.id}`);
},
......
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