Commit e54212db authored by 张俊's avatar 张俊

应ç”合并

parents 06a84822 9b53e9f0
<template> <template>
<el-upload <el-upload
ref="upload"
drag drag
action="/apaas/static/file/upload" action="/apaas/static/file/upload"
:data="{ :data="{
...@@ -34,6 +35,11 @@ export default { ...@@ -34,6 +35,11 @@ export default {
default: "", default: "",
}, },
}, },
data() {
return {
preUrl: "",
};
},
computed: { computed: {
fileList() { fileList() {
let list = []; let list = [];
...@@ -68,6 +74,7 @@ export default { ...@@ -68,6 +74,7 @@ export default {
const filtType = this.getFileType(file.name); const filtType = this.getFileType(file.name);
if (filtType === "rar" || filtType === "zip") { if (filtType === "rar" || filtType === "zip") {
this.preUrl = this.url;
return true; return true;
} else { } else {
this.$message.error("仅支持rar和zip格式!"); this.$message.error("仅支持rar和zip格式!");
...@@ -76,6 +83,21 @@ export default { ...@@ -76,6 +83,21 @@ export default {
}, },
uploadSuccess({ data }) { uploadSuccess({ data }) {
this.$emit("change", data); this.$emit("change", data);
// 替换文件后要把旧文件删除掉
if (this.preUrl) {
this.$http
.delete("/apaas/static/file/delete", {
params: {
url: this.preUrl,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.preUrl = "";
}
});
}
}, },
}, },
}; };
......
...@@ -65,57 +65,60 @@ export default { ...@@ -65,57 +65,60 @@ export default {
}, },
methods: { methods: {
translate() { translate() {
let content = this.richText; let content = this.richText || "";
let titles =
content.match(
/<h1(([\s\S])*?)<\/h1>|<h2(([\s\S])*?)<\/h2>|<h3(([\s\S])*?)<\/h3>/g
) || [];
let time = new Date().getTime();
let pre_h1_index = 0;
let pre_h2_index = 0;
let pre_h3_index = 0;
let newTitles = titles
.map((title, index) => {
let newTitle = title;
let level = 0;
let id = "";
if (title.match(/<h1(([\s\S])*?)<\/h1>/g)) { if (content) {
pre_h1_index++; let titles =
pre_h2_index = 0; content.match(
pre_h3_index = 0; /<h1(([\s\S])*?)<\/h1>|<h2(([\s\S])*?)<\/h2>|<h3(([\s\S])*?)<\/h3>/g
level = 1; ) || [];
id = `nav_${pre_h1_index}` + "_" + time; let time = new Date().getTime();
let pre_h1_index = 0;
let pre_h2_index = 0;
let pre_h3_index = 0;
let newTitles = titles
.map((title, index) => {
let newTitle = title;
let level = 0;
let id = "";
newTitle = title.replace(/<h1/g, `<h1 id="${id}"`); if (title.match(/<h1(([\s\S])*?)<\/h1>/g)) {
} else if (title.match(/<h2(([\s\S])*?)<\/h2>/g)) { pre_h1_index++;
pre_h2_index++; pre_h2_index = 0;
pre_h3_index = 0; pre_h3_index = 0;
level = 2; level = 1;
id = `nav_${pre_h1_index}_${pre_h2_index}` + "_" + time; id = `nav_${pre_h1_index}` + "_" + time;
newTitle = title.replace(/<h2/g, `<h2 id="${id}"`); newTitle = title.replace(/<h1/g, `<h1 id="${id}"`);
} else if (title.match(/<h3(([\s\S])*?)<\/h3>/g)) { } else if (title.match(/<h2(([\s\S])*?)<\/h2>/g)) {
pre_h3_index++; pre_h2_index++;
level = 3; pre_h3_index = 0;
id = `nav_${pre_h1_index}_${pre_h2_index}_${pre_h3_index}`; level = 2;
id = `nav_${pre_h1_index}_${pre_h2_index}` + "_" + time;
newTitle = title.replace(/<h3/g, `<h3 id="${id}"`) + "_" + time; newTitle = title.replace(/<h2/g, `<h2 id="${id}"`);
} } else if (title.match(/<h3(([\s\S])*?)<\/h3>/g)) {
pre_h3_index++;
level = 3;
id = `nav_${pre_h1_index}_${pre_h2_index}_${pre_h3_index}`;
content = content.replace(new RegExp(title), newTitle); newTitle = title.replace(/<h3/g, `<h3 id="${id}"`) + "_" + time;
}
return { content = content.replace(new RegExp(title), newTitle);
level,
id,
title: title.replace(/<\/?.+?>/g, ""),
};
})
.filter((item) => item.title);
this.content = content; return {
this.navTree = newTitles; level,
this.curNav = (newTitles[0] && newTitles[0].id) || ""; id,
title: title.replace(/<\/?.+?>/g, ""),
};
})
.filter((item) => item.title);
this.content = content;
this.navTree = newTitles;
this.curNav = (newTitles[0] && newTitles[0].id) || "";
}
}, },
clickNav(item) { clickNav(item) {
let target = document.querySelector(`#${item.id}`); let target = document.querySelector(`#${item.id}`);
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
cellItem.approval_second_level != 0 || cellItem.approval_second_level != 0 ||
cellItem.pay_status == -1 cellItem.pay_status == -1
" "
class="cell_del_btn" class="cell_del_btn"
@click="delOrder(cellItem.order_id)" @click="delOrder(cellItem.order_id)"
> >
删除 删除
...@@ -71,16 +71,24 @@ ...@@ -71,16 +71,24 @@
</el-col> </el-col>
<el-col :span="5" class="cell_specification"> <el-col :span="5" class="cell_specification">
<div v-if="cellItem.order_type == 1"> <div v-if="cellItem.order_type == 1">
<div>计次收费:200金币/1000次.时长收费:2000金币/月</div> <div>
{{ cellItem.spec_type == 1 ? "计次收费" : "时长收费" }}
{{ cellItem.single_money }}金币/
{{ cellItem.spec_type == 1 ? cellItem.spec_count + "" : "" }}
</div>
</div> </div>
<div v-else-if="cellItem.order_type == 2"> <div v-else-if="cellItem.order_type == 2">
<div> <div>
{{ {{
cellItem.spec_app == 0 cellItem.spec_app == 0
? "申请获取应用镜像部署权限:2000金币/月" ? "申请获取应用镜像部署权限:" +
: "申请获取应用镜像开发权限:2000金币/月" cellItem.single_money +
}} "金币/月"
</div> : "申请获取应用镜像开发权限:" +
cellItem.single_money +
"金币/月"
}}
</div>
</div> </div>
<div v-else-if="cellItem.order_type == 3"> <div v-else-if="cellItem.order_type == 3">
<el-tooltip <el-tooltip
...@@ -133,13 +141,17 @@ ...@@ -133,13 +141,17 @@
</el-col> </el-col>
<el-col :span="3" class="cell_specification"> <el-col :span="3" class="cell_specification">
<div> <div>
不限时长 {{
cellItem.duration != 0 && cellItem.duration_unit == 1
? cellItem.duration + "个月"
: cellItem.duration != 0 && cellItem.duration_unit == 2
? cellItem.duration + ""
: "不限时长"
}}
</div> </div>
</el-col> </el-col>
<el-col :span="3" class="cell_specification"> <el-col :span="3" class="cell_specification">
<div> <div>{{ cellItem.total_money }}金币</div>
200金币
</div>
</el-col> </el-col>
<el-col :span="3" class="approval_status"> <el-col :span="3" class="approval_status">
<div> <div>
......
...@@ -34,17 +34,33 @@ ...@@ -34,17 +34,33 @@
<span v-text="data.create_date"></span> <span v-text="data.create_date"></span>
</li> </li>
</ul> </ul>
<div class="and_wid">
<div class="dbn_wkdn">
&nbsp;&nbsp;格:
<span class="ndwa_indowa"> {{ data.price * duration }} </span>
<span class="kfdf_jffa">金币</span>
</div>
<div class="nmd_kwd">
月售:
<span class="ndwa_dn"> {{ data.sale }}</span>
<img src="@/assets/imgs/shop_ic_star.png" class="dwin_diwa" />
<span class="dn_wjd"> {{ data.star }} </span>
</div>
</div>
<div class="commodity_information"> <div class="commodity_information">
<span>&emsp;&emsp;格:</span> <span>&emsp;&emsp;格:</span>
<div class="btn_container_ddaw">
{{ data.price }} 金币/月
</div>
</div>
<div class="commodity_information">
<span>购买时长:</span>
<div class="btn_container"> <div class="btn_container">
<el-button <el-input-number
v-for="(item, index) in specifications" v-model="duration"
:key="'specifications_' + index" :min="1"
:type="item.value === specificationID ? 'primary' : 'default'" :disabled="actionDisabled"
@click="changeSpecification(item)" ></el-input-number>
>
{{ item.name }}
</el-button>
</div> </div>
</div> </div>
<div class="commodity_action"> <div class="commodity_action">
...@@ -80,7 +96,13 @@ export default { ...@@ -80,7 +96,13 @@ export default {
}, },
], ],
specificationID: 1, specificationID: 1,
duration: 1,
}), }),
computed: {
actionDisabled() {
return this.specifications.length == 0;
},
},
methods: { methods: {
changeSpecification({ value }) { changeSpecification({ value }) {
this.specificationID = value; this.specificationID = value;
...@@ -244,6 +266,10 @@ export default { ...@@ -244,6 +266,10 @@ export default {
.commodity_information > .btn_container > .el-input-number { .commodity_information > .btn_container > .el-input-number {
margin: 0 20px 15px 0; margin: 0 20px 15px 0;
} }
.btn_container_ddaw {
line-height: 40px;
margin-left: 5px;
}
.commodity_action { .commodity_action {
margin-top: 60px; margin-top: 60px;
text-align: right; text-align: right;
...@@ -253,6 +279,55 @@ export default { ...@@ -253,6 +279,55 @@ export default {
margin-left: 20px; margin-left: 20px;
font-size: 16px; font-size: 16px;
} }
.and_wid {
background-color: #f9fafc;
border-radius: 8px;
padding: 20px;
display: flex;
justify-content: space-between;
margin-top: 20px;
align-items: center;
}
.dbn_wkdn {
color: #8890a7;
font-size: 14px;
}
.ndwa_indowa {
color: #e56600;
font-size: 26px;
font-weight: bold;
}
.kfdf_jffa {
color: #e56600;
font-size: 14px;
}
.nmd_kwd {
color: #8890a7;
}
.ndwa_dn {
color: #242c43;
}
.dn_wjd {
color: #ea7d19;
font-size: 18px;
position: relative;
}
.dwin_diwa {
width: 14px;
height: 14px;
margin-left: 20px;
margin-right: 4px;
position: relative;
}
.dn_wjd::after {
content: "";
position: absolute;
width: 2px;
height: 16px;
background-color: #e3e5ef;
top: 5px;
left: -35px;
}
</style> </style>
<style> <style>
......
...@@ -18,13 +18,21 @@ ...@@ -18,13 +18,21 @@
</div> </div>
<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%" v-if="data.type!=='workflow'" /> <img :src="data.cover" width="100%" v-if="data.type !== 'workflow'" />
<workflows-view :zoom="0.6" :id="parseInt(data.workflows_id)" :hideDetail="true" v-if="data.type=='workflow'"></workflows-view> <workflows-view
:zoom="0.6"
:id="parseInt(data.workflows_id)"
:hideDetail="true"
v-if="data.type == 'workflow'"
></workflows-view>
<map-view <map-view
v-if="data.type === 'Map Service'" v-if="data.type === 'Map Service'"
:id="data.portal_id" :id="data.portal_id"
></map-view> ></map-view>
<process-view :id="parseInt(data.workflows_id)" v-if="data.type=='workflow'"></process-view> <process-view
:id="parseInt(data.workflows_id)"
v-if="data.type == 'workflow'"
></process-view>
</div> </div>
<div class="main_container-right"> <div class="main_container-right">
<ul class="service_base_info"> <ul class="service_base_info">
...@@ -53,54 +61,89 @@ ...@@ -53,54 +61,89 @@
<span v-text="data.descript"></span> <span v-text="data.descript"></span>
</li> </li>
</ul> </ul>
<div class="and_wid">
<div class="dbn_wkdn">
&nbsp;&nbsp;格:<span class="ndwa_indowa">
{{
specification && specification.money
? specification.money * (showTime ? duration : 1)
: 0
}}
</span>
<span class="kfdf_jffa">金币</span>
</div>
<div class="nmd_kwd">
月售:<span class="ndwa_dn">{{ data.month_sale }}</span
><img src="@/assets/imgs/shop_ic_star.png" class="dwin_diwa" />
<span class="dn_wjd">{{ data.scoreDetail.avgScore }}</span>
</div>
</div>
<div class="commodity_information"> <div class="commodity_information">
<span>&emsp;&emsp;格:</span> <span>计次收费规格:</span>
<span v-if="actionDisabled" class="commodity_text">暂无</span> <span
v-if="
data.serviceRequestSpcs.spcs_type_1 &&
data.serviceRequestSpcs.spcs_type_1.length == 0
"
class="commodity_text"
>暂无</span
>
<div v-else class="btn_container"> <div v-else class="btn_container">
<el-button <el-button
v-for="(item, index) in specifications" v-for="(item, index) in data.serviceRequestSpcs.spcs_type_1"
:key="'spcs_' + index" :key="'spcs_' + index"
:type="item.id === specification.id ? 'primary' : 'default'" :type="item.id === specification.id ? 'primary' : 'default'"
@click="changeSpecification(item)" @click="changeSpecification(item, 0)"
> >
{{ item.name }} {{ item.money }}金币/{{ item.spcs_count }}
</el-button> </el-button>
</div> </div>
</div> </div>
<div class="commodity_information"> <div class="commodity_information">
<span>规格说明:</span> <span>时长收费规格:</span>
<span v-if="actionDisabled" class="commodity_text">暂无</span>
<span <span
v-else v-if="
data.serviceRequestSpcs.spcs_type_2 &&
data.serviceRequestSpcs.spcs_type_2.length == 0
"
class="commodity_text" class="commodity_text"
v-text="(specification && specification.descript) || '-'" >暂无</span
></span> >
</div>
<div class="commodity_information">
<span>购买方式:</span>
<span v-if="actionDisabled" class="commodity_text">暂无</span>
<div v-else class="btn_container"> <div v-else class="btn_container">
<el-button <el-button
v-for="(item, index) in types" v-for="(item, index) in data.serviceRequestSpcs.spcs_type_2"
v-text="item.name" :key="'spcs_' + index"
:key="'type_' + index" :type="item.id === specification.id ? 'primary' : 'default'"
:type="item.value === type ? 'primary' : 'default'" @click="changeSpecification(item, 1)"
@click="changeType(item)"
> >
{{ item.money }}金币/月
</el-button> </el-button>
</div> </div>
</div> </div>
<div class="commodity_information">
<span>规格说明:</span>
<span v-if="actionDisabled" class="commodity_text">暂无</span>
<span
v-else
class="commodity_text"
v-text="(specification && specification.descript) || '-'"
></span>
</div>
<div class="commodity_information"> <div class="commodity_information">
<span>购买时长:</span> <span>购买时长:</span>
<div class="btn_container"> <div v-if="showTime" class="btn_container">
<el-input-number <el-input-number
v-model="duration" v-model="duration"
:min="1" :min="1"
:disabled="actionDisabled" :disabled="actionDisabled"
></el-input-number> ></el-input-number>
</div>
<div v-else class="btn_container">
<el-button type="primary"> 不限时长 </el-button>
</div> </div>
</div> </div>
<div class=" commodity_action"> <div class="commodity_action">
<el-button <el-button
type="warning" type="warning"
plain plain
...@@ -125,14 +168,14 @@ ...@@ -125,14 +168,14 @@
<script> <script>
import helper from "@/services/helper.js"; import helper from "@/services/helper.js";
import MapView from "./map-view"; import MapView from "./map-view";
import workflowsView from '@/components/work-flow/workflows-view' import workflowsView from "@/components/work-flow/workflows-view";
import processView from '@/components/service-info/process-view' import processView from "@/components/service-info/process-view";
export default { export default {
components: { components: {
MapView, MapView,
workflowsView, workflowsView,
processView processView,
}, },
props: { props: {
data: { data: {
...@@ -145,39 +188,29 @@ export default { ...@@ -145,39 +188,29 @@ export default {
type: 0, // 购买方式 1:按月,2:按年 type: 0, // 购买方式 1:按月,2:按年
specification: {}, // 规格 specification: {}, // 规格
duration: 1, // 时长 duration: 1, // 时长
showTime: false,
}), }),
computed: { computed: {
specifications() {
let specifications = (this.data.serviceRequestSpcs || []).filter(
(item) => item.type == this.type || item.type == 3
);
return specifications;
},
actionDisabled() { actionDisabled() {
return this.specifications.length == 0; let a = this.data.serviceRequestSpcs;
}, return a.spcs_type_1.length == 0 && a.spcs_type_2.length == 0;
},
watch: {
specifications: {
handler() {
this.specification = this.specifications[0];
},
deep: true,
}, },
}, },
watch: {},
methods: { methods: {
dateTransform(datestr = "") { dateTransform(datestr = "") {
return helper.dateStringTransform(datestr); return helper.dateStringTransform(datestr);
}, },
changeSpecification(specification) { changeSpecification(specification, type) {
this.specification = specification; this.specification = specification;
if (type == 0) {
this.showTime = false;
} else if (type == 1) {
this.showTime = true;
}
}, },
changeType({ value }) { changeType({ value }) {
this.type = value; this.type = value;
if (this.specifications.length > 0) {
this.specification = this.specifications[0];
}
}, },
addToCart() { addToCart() {
// console.log("addToCart"); // console.log("addToCart");
...@@ -261,8 +294,10 @@ export default { ...@@ -261,8 +294,10 @@ export default {
} }
// 初始化规格 // 初始化规格
if (this.specifications.length > 0) { if (this.data.serviceRequestSpcs.spcs_type_1.length > 0) {
this.specification = this.specifications[0]; this.specification = this.data.serviceRequestSpcs.spcs_type_1[0];
} else if (this.data.serviceRequestSpcs.spcs_type_2.length > 0) {
this.specification = this.data.serviceRequestSpcs.spcs_type_2[0];
} }
}, },
}; };
...@@ -408,6 +443,55 @@ export default { ...@@ -408,6 +443,55 @@ export default {
margin-left: 20px; margin-left: 20px;
font-size: 16px; font-size: 16px;
} }
.and_wid {
background-color: #f9fafc;
border-radius: 8px;
padding: 20px;
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20px;
}
.dbn_wkdn {
color: #8890a7;
font-size: 14px;
}
.ndwa_indowa {
color: #e56600;
font-size: 26px;
font-weight: bold;
}
.kfdf_jffa {
color: #e56600;
font-size: 14px;
}
.nmd_kwd {
color: #8890a7;
}
.ndwa_dn {
color: #242c43;
}
.dn_wjd {
color: #ea7d19;
font-size: 18px;
position: relative;
}
.dwin_diwa {
width: 14px;
height: 14px;
margin-left: 20px;
margin-right: 4px;
position: relative;
}
.dn_wjd::after {
content: "";
position: absolute;
width: 2px;
height: 16px;
background-color: #e3e5ef;
top: 5px;
left: -35px;
}
</style> </style>
<style> <style>
......
...@@ -53,12 +53,12 @@ export default { ...@@ -53,12 +53,12 @@ export default {
if (response.data.success == 1) { if (response.data.success == 1) {
let arr = response.data.data[0].Child; let arr = response.data.data[0].Child;
let shopArr = []; let shopArr = [];
arr.forEach((item) => { let asd = arr.find(item => {
if (item.visit_url == "/services_shop") { return item.visit_url == "/services_shop"
shopArr = item.Child; })
} shopArr = asd.Child;
}); if (shopArr && shopArr.length != 0) {
shopArr.forEach((item) => { Array.from(shopArr).forEach((item) => {
let uri = item.visit_url.substring(6); let uri = item.visit_url.substring(6);
if (uri.indexOf("/") != -1) { if (uri.indexOf("/") != -1) {
uri = uri.substring(0, uri.indexOf("/")); uri = uri.substring(0, uri.indexOf("/"));
...@@ -98,6 +98,7 @@ export default { ...@@ -98,6 +98,7 @@ export default {
break; break;
} }
}); });
}
this.menuList = shopArr; this.menuList = shopArr;
} }
}); });
......
...@@ -163,11 +163,11 @@ export default { ...@@ -163,11 +163,11 @@ export default {
height: 116px; height: 116px;
float: left; float: left;
background-size: contain; background-size: contain;
margin-right: 20px; margin-right: 15px;
} }
.info { .info {
float: left; float: left;
width: 270px; width: 230px;
} }
.info p { .info p {
color: rgba(136, 144, 167, 1); color: rgba(136, 144, 167, 1);
......
...@@ -79,5 +79,4 @@ export default { ...@@ -79,5 +79,4 @@ export default {
.list_title span:nth-of-type(4){ .list_title span:nth-of-type(4){
margin-right: 124px; margin-right: 124px;
} }
</style> </style>
...@@ -5,24 +5,40 @@ ...@@ -5,24 +5,40 @@
<el-breadcrumb-item>{{ name }}</el-breadcrumb-item> <el-breadcrumb-item>{{ name }}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
<block-radius> <block-radius>
<el-form ref="form" :inline="true" :rules="ruleBasis" :model="form" class="form_block"> <el-form
ref="form"
:inline="true"
:rules="ruleBasis"
:model="form"
class="form_block"
>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item class="form_item"> <el-form-item class="form_item">
<div class="form_item_title">申请组织:</div> <div class="form_item_title">申请组织:</div>
<el-input v-model="form.department_name" :disabled="true" placeholder="请输入申请组织"></el-input> <el-input
v-model="form.department_name"
:disabled="true"
placeholder="请输入申请组织"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item class="form_item" prop="link_man"> <el-form-item class="form_item" prop="link_man">
<div class="form_item_title">部门联系人:</div> <div class="form_item_title">部门联系人:</div>
<el-input v-model="form.link_man" placeholder="请输入联系人姓名"></el-input> <el-input
v-model="form.link_man"
placeholder="请输入联系人姓名"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item class="form_item" prop="phone"> <el-form-item class="form_item" prop="phone">
<div class="form_item_title">联系电话:</div> <div class="form_item_title">联系电话:</div>
<el-input v-model="form.phone" placeholder="请输入联系人电话"></el-input> <el-input
v-model="form.phone"
placeholder="请输入联系人电话"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -41,13 +57,19 @@ ...@@ -41,13 +57,19 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item prop="namespace" class="form_item"> <el-form-item prop="namespace" class="form_item">
<div class="form_item_title">工作区域名称:</div> <div class="form_item_title">工作区域名称:</div>
<el-input v-model="formNew.namespace" placeholder="请输入工作区域英文名称"></el-input> <el-input
v-model="formNew.namespace"
placeholder="请输入工作区域英文名称"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item prop="workplace" class="form_item"> <el-form-item prop="workplace" class="form_item">
<div class="form_item_title">中文名称:</div> <div class="form_item_title">中文名称:</div>
<el-input v-model="formNew.workplace" placeholder="请输入工作区域中文名称"></el-input> <el-input
v-model="formNew.workplace"
placeholder="请输入工作区域中文名称"
></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -66,7 +88,11 @@ ...@@ -66,7 +88,11 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="cpu" class="form_item input_has_right"> <el-form-item prop="cpu" class="form_item input_has_right">
<div class="form_item_title">CPU:</div> <div class="form_item_title">CPU:</div>
<el-select v-model="formNew.cpu" @change="changeCPU" placeholder="请选择CPU使用量"> <el-select
v-model="formNew.cpu"
@change="changeCPU"
placeholder="请选择CPU使用量"
>
<el-option <el-option
v-for="item in optionsCPU" v-for="item in optionsCPU"
:key="item.value" :key="item.value"
...@@ -78,7 +104,10 @@ ...@@ -78,7 +104,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="memory" class="form_item input_has_right"> <el-form-item
prop="memory"
class="form_item input_has_right"
>
<div class="form_item_title">内存:</div> <div class="form_item_title">内存:</div>
<el-select <el-select
v-model="formNew.memory" v-model="formNew.memory"
...@@ -96,7 +125,10 @@ ...@@ -96,7 +125,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="containerGroup" class="form_item input_has_right"> <el-form-item
prop="containerGroup"
class="form_item input_has_right"
>
<div class="form_item_title">容器组:</div> <div class="form_item_title">容器组:</div>
<el-input-number <el-input-number
v-model="formNew.containerGroup" v-model="formNew.containerGroup"
...@@ -145,7 +177,10 @@ ...@@ -145,7 +177,10 @@
<div class="form_item_title">内存:</div> <div class="form_item_title">内存:</div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="perCPUs" class="form_item input_has_left_right"> <el-form-item
prop="perCPUs"
class="form_item input_has_left_right"
>
<div class="input_left">最高</div> <div class="input_left">最高</div>
<el-input-number <el-input-number
v-model="formNew.perCPUs" v-model="formNew.perCPUs"
...@@ -158,7 +193,10 @@ ...@@ -158,7 +193,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="perCPU" class="form_item input_has_left_right"> <el-form-item
prop="perCPU"
class="form_item input_has_left_right"
>
<div class="input_left">默认</div> <div class="input_left">默认</div>
<el-input-number <el-input-number
v-model="formNew.perCPU" v-model="formNew.perCPU"
...@@ -171,7 +209,10 @@ ...@@ -171,7 +209,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="perRAMs" class="form_item input_has_left_right"> <el-form-item
prop="perRAMs"
class="form_item input_has_left_right"
>
<div class="input_left">最高</div> <div class="input_left">最高</div>
<el-input-number <el-input-number
v-model="formNew.perRAMs" v-model="formNew.perRAMs"
...@@ -184,7 +225,10 @@ ...@@ -184,7 +225,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="perRAM" class="form_item input_has_left_right"> <el-form-item
prop="perRAM"
class="form_item input_has_left_right"
>
<div class="input_left">默认</div> <div class="input_left">默认</div>
<el-input-number <el-input-number
v-model="formNew.perRAM" v-model="formNew.perRAM"
...@@ -200,15 +244,18 @@ ...@@ -200,15 +244,18 @@
<div class="form_title">其他信息</div> <div class="form_title">其他信息</div>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item prop="appDuration" class="form_item input_has_right_select"> <el-form-item
prop="appDuration"
class="form_item input_has_right"
>
<div class="form_item_title">申请时长:</div> <div class="form_item_title">申请时长:</div>
<el-input-number <el-input-number
v-model="formNew.appDuration" v-model="formNew.appDuration"
controls-position="right" controls-position="right"
:min="0" :min="1"
:max="1000" :max="1000"
></el-input-number> ></el-input-number>
<el-select <!-- <el-select
v-model="formNew.durType" v-model="formNew.durType"
class="input_right_select" class="input_right_select"
placeholder="请选择申请时长" placeholder="请选择申请时长"
...@@ -219,13 +266,17 @@ ...@@ -219,13 +266,17 @@
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select> -->
<div class="input_right"></div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item class="form_item"> <el-form-item class="form_item">
<div class="form_item_title">申请文件:</div> <div class="form_item_title">申请文件:</div>
<info-list :list_arr="docTemplate" class="doc_template"></info-list> <info-list
:list_arr="docTemplate"
class="doc_template"
></info-list>
<upload-file <upload-file
:multiple="false" :multiple="false"
:unique="false" :unique="false"
...@@ -248,7 +299,11 @@ ...@@ -248,7 +299,11 @@
<el-col :span="12"> <el-col :span="12">
<div class="select_title">选择要进行调整的工作区域:</div> <div class="select_title">选择要进行调整的工作区域:</div>
<div class="form_item"> <div class="form_item">
<el-select v-model="workSpace" @change="getForm" placeholder="请选择"> <el-select
v-model="workSpace"
@change="getForm"
placeholder="请选择"
>
<el-option <el-option
v-for="(item, index) in workSpaceOptions" v-for="(item, index) in workSpaceOptions"
:key="index" :key="index"
...@@ -280,28 +335,32 @@ ...@@ -280,28 +335,32 @@
:src="require('@/assets/imgs/' + item.src + '.png')" :src="require('@/assets/imgs/' + item.src + '.png')"
/> />
<span class="now_spec_card_title"> <span class="now_spec_card_title">
{{ {{ item.title }}
item.title
}}
</span> </span>
<span class="now_spec_card_val"> <span class="now_spec_card_val">
{{ {{
item.val + item.val +
" " + " " +
(item.title == "CPU" (item.title == "CPU"
? "" ? ""
: item.title == "内存" : item.title == "内存"
? "GB" ? "GB"
: "") : "")
}} }}
</span> </span>
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="cpu" class="form_item input_has_right"> <el-form-item
prop="cpu"
class="form_item input_has_right"
>
<div class="form_item_title">申请CPU调整为:</div> <div class="form_item_title">申请CPU调整为:</div>
<el-select v-model="formOld.cpu" placeholder="请选择CPU使用量"> <el-select
v-model="formOld.cpu"
placeholder="请选择CPU使用量"
>
<el-option <el-option
v-for="item in optionsCPU" v-for="item in optionsCPU"
:key="item.value" :key="item.value"
...@@ -313,7 +372,10 @@ ...@@ -313,7 +372,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="memory" class="form_item input_has_right"> <el-form-item
prop="memory"
class="form_item input_has_right"
>
<div class="form_item_title">申请内存调整为:</div> <div class="form_item_title">申请内存调整为:</div>
<el-select <el-select
v-model="formOld.memory" v-model="formOld.memory"
...@@ -331,7 +393,10 @@ ...@@ -331,7 +393,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="containerGroup" class="form_item input_has_right"> <el-form-item
prop="containerGroup"
class="form_item input_has_right"
>
<div class="form_item_title">申请容器组调整为:</div> <div class="form_item_title">申请容器组调整为:</div>
<el-input-number <el-input-number
v-model="formOld.containerGroup" v-model="formOld.containerGroup"
...@@ -352,7 +417,7 @@ ...@@ -352,7 +417,7 @@
:stripe="true" :stripe="true"
:datas="dataDiskList" :datas="dataDiskList"
@primary-del="delItem" @primary-del="delItem"
max-height="260" :maxheight="260"
></table-um> ></table-um>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -409,20 +474,18 @@ ...@@ -409,20 +474,18 @@
:src="require('@/assets/imgs/' + item.src + '.png')" :src="require('@/assets/imgs/' + item.src + '.png')"
/> />
<span class="now_rqz_card_title"> <span class="now_rqz_card_title">
{{ {{ item.title }}
item.title
}}
</span> </span>
<div class="now_rqz_card_val_div"> <div class="now_rqz_card_val_div">
<span class="now_rqz_card_val"> <span class="now_rqz_card_val">
最高&nbsp;{{ item.max }}&nbsp;{{ 最高&nbsp;{{ item.max }}&nbsp;{{
item.title == "CPU" ? "" : "GB" item.title == "CPU" ? "" : "GB"
}} }}
</span> </span>
<br /> <br />
<span class="now_rqz_card_val"> <span class="now_rqz_card_val">
默认&nbsp;{{ item.default }}&nbsp;{{ 默认&nbsp;{{ item.default }}&nbsp;{{
item.title == "CPU" ? "" : "GB" item.title == "CPU" ? "" : "GB"
}} }}
</span> </span>
</div> </div>
...@@ -436,7 +499,10 @@ ...@@ -436,7 +499,10 @@
<div class="form_item_title">内存:</div> <div class="form_item_title">内存:</div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="perCPUs" class="form_item input_has_left_right"> <el-form-item
prop="perCPUs"
class="form_item input_has_left_right"
>
<div class="input_left">最高</div> <div class="input_left">最高</div>
<el-input-number <el-input-number
v-model="formOld.perCPUs" v-model="formOld.perCPUs"
...@@ -449,7 +515,10 @@ ...@@ -449,7 +515,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="perCPU" class="form_item input_has_left_right"> <el-form-item
prop="perCPU"
class="form_item input_has_left_right"
>
<div class="input_left">默认</div> <div class="input_left">默认</div>
<el-input-number <el-input-number
v-model="formOld.perCPU" v-model="formOld.perCPU"
...@@ -462,7 +531,10 @@ ...@@ -462,7 +531,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="perRAMs" class="form_item input_has_left_right"> <el-form-item
prop="perRAMs"
class="form_item input_has_left_right"
>
<div class="input_left">最高</div> <div class="input_left">最高</div>
<el-input-number <el-input-number
v-model="formOld.perRAMs" v-model="formOld.perRAMs"
...@@ -475,7 +547,10 @@ ...@@ -475,7 +547,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item prop="perRAM" class="form_item input_has_left_right"> <el-form-item
prop="perRAM"
class="form_item input_has_left_right"
>
<div class="input_left">默认</div> <div class="input_left">默认</div>
<el-input-number <el-input-number
v-model="formOld.perRAM" v-model="formOld.perRAM"
...@@ -497,12 +572,14 @@ ...@@ -497,12 +572,14 @@
class="now_spec_card_time_img" class="now_spec_card_time_img"
:src="require('@/assets/imgs/ic_shijian.png')" :src="require('@/assets/imgs/ic_shijian.png')"
/> />
<span class="now_spec_card_time_title">当前工作区域到期时间</span> <span class="now_spec_card_time_title"
>当前工作区域到期时间</span
>
<span class="now_spec_card_time_val"> <span class="now_spec_card_time_val">
{{ {{
helper.dateStringTransform( helper.dateStringTransform(
paramsOld.cloud_end_time paramsOld.cloud_end_time
) )
}} }}
</span> </span>
</div> </div>
...@@ -515,7 +592,7 @@ ...@@ -515,7 +592,7 @@
<el-input-number <el-input-number
v-model="formOld.appDuration" v-model="formOld.appDuration"
controls-position="right" controls-position="right"
:min="0" :min="1"
:max="1000" :max="1000"
></el-input-number> ></el-input-number>
<el-select <el-select
...@@ -535,7 +612,10 @@ ...@@ -535,7 +612,10 @@
<el-col :span="22"> <el-col :span="22">
<el-form-item class="form_item"> <el-form-item class="form_item">
<div class="form_item_title">申请文件:</div> <div class="form_item_title">申请文件:</div>
<info-list :list_arr="docTemplate" class="doc_template"></info-list> <info-list
:list_arr="docTemplate"
class="doc_template"
></info-list>
<upload-file <upload-file
:multiple="false" :multiple="false"
:unique="false" :unique="false"
...@@ -554,11 +634,41 @@ ...@@ -554,11 +634,41 @@
</div> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<div class="btn_footer" v-if="!(activeName == 1 && !formShow)"> </block-radius>
<el-button class="submit" @click="submitApp">提交申请</el-button> <block-radius v-if="!(activeName == 1 && !formShow)">
<div class="btn_footer fyzj_item">
<div class="fyzj">
<p class="fyzj_p">
<span v-if="getSumCoin > 20000" class="yebz">
余额不足,请联系超级管理员进行充值
</span>
费用总计:<span class="fyzj_span">
{{ getSumCoin }}
</span>
<span class="fyzj_qian">金币</span>
</p>
<p class="ckfymx">
<span @click="dialogFymx = true" class="ckfymx_a">
查看费用明细
</span>
<span class="ckfymx_qian">账户余额:20,000 金币</span>
</p>
</div>
<el-button
:class="getSumCoin <= 20000 ? 'submit' : 'nosubmit'"
:disabled="getSumCoin > 20000"
@click="submitApp"
>
提交申请
</el-button>
</div> </div>
</block-radius> </block-radius>
<el-dialog title="申请信息确认" :visible.sync="dialogVisible" width="580px" class="cloud_dia"> <el-dialog
title="申请信息确认"
:visible.sync="dialogVisible"
width="580px"
class="cloud_dia"
>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<span class="dia_item_title">申请组织:</span> <span class="dia_item_title">申请组织:</span>
...@@ -575,9 +685,7 @@ ...@@ -575,9 +685,7 @@
<el-col :span="10"> <el-col :span="10">
<span class="dia_item_title">申请类型:</span> <span class="dia_item_title">申请类型:</span>
<span class="dia_item_val"> <span class="dia_item_val">
{{ {{ activeName == 0 ? "新资源申请" : "已有资源升级" }}
activeName == 0 ? "新资源申请" : "已有资源升级"
}}
</span> </span>
</el-col> </el-col>
<el-col :span="10" v-if="activeName == '1'"> <el-col :span="10" v-if="activeName == '1'">
...@@ -588,7 +696,10 @@ ...@@ -588,7 +696,10 @@
<span class="dia_item_title">上传申请文件:</span> <span class="dia_item_title">上传申请文件:</span>
<span class="dia_item_val">{{ diaForm.apply_file_name }}</span> <span class="dia_item_val">{{ diaForm.apply_file_name }}</span>
</el-col> </el-col>
<el-col :span="24" v-else-if="activeName == '1' && diaForm.apply_file_name"> <el-col
:span="24"
v-else-if="activeName == '1' && diaForm.apply_file_name"
>
<span class="dia_item_title">上传申请文件:</span> <span class="dia_item_title">上传申请文件:</span>
<span class="dia_item_val">{{ diaForm.apply_file_name }}</span> <span class="dia_item_val">{{ diaForm.apply_file_name }}</span>
</el-col> </el-col>
...@@ -607,9 +718,7 @@ ...@@ -607,9 +718,7 @@
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">描述信息:</span> <span class="dia_block_item_title">描述信息:</span>
<span class="dia_block_item_val"> <span class="dia_block_item_val">
{{ {{ diaForm.workplacedesc }}
diaForm.workplacedesc
}}
</span> </span>
</div> </div>
</div> </div>
...@@ -625,17 +734,22 @@ ...@@ -625,17 +734,22 @@
</div> </div>
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">容器组:</span> <span class="dia_block_item_title">容器组:</span>
<span class="dia_block_item_val">{{ diaForm.containerGroup }}</span> <span class="dia_block_item_val"
>{{ diaForm.containerGroup }}</span
>
</div> </div>
<div <div
class="dia_block_item_in" class="dia_block_item_in"
v-if="diaForm.dataDisk && diaForm.perDataDisk && Number(diaForm.dataDisk) != 0 && Number(diaForm.perDataDisk) != 0" v-if="
diaForm.dataDisk &&
diaForm.perDataDisk &&
Number(diaForm.dataDisk) != 0 &&
Number(diaForm.perDataDisk) != 0
"
> >
<span class="dia_block_item_title">数据盘:</span> <span class="dia_block_item_title">数据盘:</span>
<span class="dia_block_item_val"> <span class="dia_block_item_val">
{{ diaForm.dataDisk }}块,每块{{ {{ diaForm.dataDisk }}块,每块{{ diaForm.perDataDisk }}GB
diaForm.perDataDisk
}}GB
</span> </span>
</div> </div>
<!-- <div class="dia_block_item_in" v-if="diaForm.dataDisk != 0"> <!-- <div class="dia_block_item_in" v-if="diaForm.dataDisk != 0">
...@@ -648,15 +762,23 @@ ...@@ -648,15 +762,23 @@
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">CPU:</span> <span class="dia_block_item_title">CPU:</span>
<p class="dia_block_item_val"> <p class="dia_block_item_val">
<span class="val_has_2">最高&nbsp;{{ diaForm.perCPUs }}</span> <span class="val_has_2"
<span class="val_has_2">默认&nbsp;{{ diaForm.perCPU }}</span> >最高&nbsp;{{ diaForm.perCPUs }}</span
>
<span class="val_has_2"
>默认&nbsp;{{ diaForm.perCPU }}</span
>
</p> </p>
</div> </div>
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">内存:</span> <span class="dia_block_item_title">内存:</span>
<p class="dia_block_item_val"> <p class="dia_block_item_val">
<span class="val_has_2">最高&nbsp;{{ diaForm.perRAMs }}GB</span> <span class="val_has_2"
<span class="val_has_2">默认&nbsp;{{ diaForm.perRAM }}GB</span> >最高&nbsp;{{ diaForm.perRAMs }}GB</span
>
<span class="val_has_2"
>默认&nbsp;{{ diaForm.perRAM }}GB</span
>
</p> </p>
</div> </div>
</div> </div>
...@@ -682,11 +804,15 @@ ...@@ -682,11 +804,15 @@
</div> </div>
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">内存:</span> <span class="dia_block_item_title">内存:</span>
<span class="dia_block_item_val">{{ paramsOld.memory }}GB</span> <span class="dia_block_item_val"
>{{ paramsOld.memory }}GB</span
>
</div> </div>
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">容器组:</span> <span class="dia_block_item_title">容器组:</span>
<span class="dia_block_item_val">{{ paramsOld.containers }}</span> <span class="dia_block_item_val"
>{{ paramsOld.containers }}</span
>
</div> </div>
</div> </div>
<span class="dia_item_all_title">单个容器组规格:</span> <span class="dia_item_all_title">单个容器组规格:</span>
...@@ -694,15 +820,23 @@ ...@@ -694,15 +820,23 @@
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">CPU:</span> <span class="dia_block_item_title">CPU:</span>
<p class="dia_block_item_val"> <p class="dia_block_item_val">
<span class="val_has_2">最高&nbsp;{{ paramsOld.one_cpu_max }}</span> <span class="val_has_2"
<span class="val_has_2">默认&nbsp;{{ paramsOld.one_cpu_min }}</span> >最高&nbsp;{{ paramsOld.one_cpu_max }}</span
>
<span class="val_has_2"
>默认&nbsp;{{ paramsOld.one_cpu_min }}</span
>
</p> </p>
</div> </div>
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">内存:</span> <span class="dia_block_item_title">内存:</span>
<p class="dia_block_item_val"> <p class="dia_block_item_val">
<span class="val_has_2">最高&nbsp;{{ paramsOld.one_memory_max }}GB</span> <span class="val_has_2"
<span class="val_has_2">默认&nbsp;{{ paramsOld.one_memory_min }}GB</span> >最高&nbsp;{{ paramsOld.one_memory_max }}GB</span
>
<span class="val_has_2"
>默认&nbsp;{{ paramsOld.one_memory_min }}GB</span
>
</p> </p>
</div> </div>
</div> </div>
...@@ -711,9 +845,7 @@ ...@@ -711,9 +845,7 @@
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">到期时间:</span> <span class="dia_block_item_title">到期时间:</span>
<span class="dia_block_item_val"> <span class="dia_block_item_val">
{{ {{ helper.dateStringTransform(paramsOld.cloud_end_time) }}
helper.dateStringTransform(paramsOld.cloud_end_time)
}}
</span> </span>
</div> </div>
</div> </div>
...@@ -732,28 +864,36 @@ ...@@ -732,28 +864,36 @@
</div> </div>
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">容器组:</span> <span class="dia_block_item_title">容器组:</span>
<span class="dia_block_item_val">{{ diaForm.containerGroup }}</span> <span class="dia_block_item_val"
>{{ diaForm.containerGroup }}</span
>
</div> </div>
<div <div
class="dia_block_item_in" class="dia_block_item_in"
v-if="diaForm.dataDisk && diaForm.perDataDisk && Number(diaForm.dataDisk) != 0 && Number(diaForm.perDataDisk) != 0" v-if="
diaForm.dataDisk &&
diaForm.perDataDisk &&
Number(diaForm.dataDisk) != 0 &&
Number(diaForm.perDataDisk) != 0
"
> >
<span class="dia_block_item_title">新增数据盘:</span> <span class="dia_block_item_title">新增数据盘:</span>
<span class="dia_block_item_val"> <span class="dia_block_item_val">
{{ diaForm.dataDisk }}块,每块{{ {{ diaForm.dataDisk }}块,每块{{ diaForm.perDataDisk }}GB
diaForm.perDataDisk
}}GB
</span> </span>
</div> </div>
<div class="dia_block_item_in" v-if="delDataDiskList.length != 0"> <div
class="dia_block_item_in"
v-if="delDataDiskList.length != 0"
>
<span class="dia_block_item_title">删除数据盘:</span> <span class="dia_block_item_title">删除数据盘:</span>
<span class="dia_block_item_val"> <span class="dia_block_item_val">
{{ {{
delDataDiskList delDataDiskList
.map((item) => { .map((item) => {
return item.name; return item.name;
}) })
.join("") .join("")
}} }}
</span> </span>
</div> </div>
...@@ -763,15 +903,21 @@ ...@@ -763,15 +903,21 @@
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">CPU</span> <span class="dia_block_item_title">CPU</span>
<p class="dia_block_item_val"> <p class="dia_block_item_val">
<span class="val_has_2">最高&nbsp;{{ diaForm.perCPUs }}</span> <span class="val_has_2">
<span class="val_has_2">默认&nbsp;{{ diaForm.perCPU }}</span> 最高&nbsp;{{ diaForm.perCPUs }}
</span>
<span class="val_has_2">
默认&nbsp;{{ diaForm.perCPU }}
</span>
</p> </p>
</div> </div>
<div class="dia_block_item_in"> <div class="dia_block_item_in">
<span class="dia_block_item_title">内存:</span> <span class="dia_block_item_title">内存:</span>
<p class="dia_block_item_val"> <p class="dia_block_item_val">
<span class="val_has_2">最高&nbsp;{{ diaForm.perRAMs }}GB</span> <span class="val_has_2">om=[] </span>
<span class="val_has_2">默认&nbsp;{{ diaForm.perRAM }}GB</span> <span class="val_has_2">
默认&nbsp;{{ diaForm.perRAM }}GB
</span>
</p> </p>
</div> </div>
</div> </div>
...@@ -781,9 +927,9 @@ ...@@ -781,9 +927,9 @@
<span class="dia_block_item_title">是否续期:</span> <span class="dia_block_item_title">是否续期:</span>
<span class="dia_block_item_val"> <span class="dia_block_item_val">
{{ {{
diaForm.appDuration && diaForm.appDuration != 0 diaForm.appDuration && diaForm.appDuration != 0
? "" ? ""
: "" : ""
}} }}
</span> </span>
</div> </div>
...@@ -793,8 +939,8 @@ ...@@ -793,8 +939,8 @@
> >
<span class="dia_block_item_title">续期时长:</span> <span class="dia_block_item_title">续期时长:</span>
<span class="dia_block_item_val"> <span class="dia_block_item_val">
{{ diaForm.appDuration {{ diaForm.appDuration }}
}}{{ diaForm.durType == 1 ? "个月" : "" }} {{ diaForm.durType == 1 ? "个月" : "" }}
</span> </span>
</div> </div>
</div> </div>
...@@ -802,12 +948,79 @@ ...@@ -802,12 +948,79 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<div class="fyzj_dia">
<div class="fyzj_dia_init">
<p v-if="activeName == '1'" class="fyzj_2">
升级费用:<span class="fyzj_2_num">2000000000 金币</span>
</p>
<p v-if="activeName == '1'" class="fyzj_2">
原规格抵扣费用:<span class="fyzj_2_num">2000 金币</span>
</p>
<div class="fyzj_1">
费用总计:
<p>
<span class="fyzj_1_num"> 2 </span
><span class="fyzj_1_jb">金币</span>
</p>
</div>
<p class="fyzj_2">
账户余额:<span class="fyzj_2_num">2000 金币</span>
</p>
</div>
<div class="clear_xxx"></div>
</div>
<div class="btn_footer"> <div class="btn_footer">
<el-button class="cancel" @click="cancel">取消</el-button> <el-button class="cancel" @click="cancel">取消</el-button>
<el-button class="submit" @click="determineSubmit">确定提交</el-button> <el-button class="submit1" @click="determineSubmit">确定提交</el-button>
</div> </div>
</el-dialog> </el-dialog>
<ApassDialog ref="dialog" msg="确认删除该数据盘吗?" :submit="dialogSubmit"></ApassDialog> <el-dialog
title="费用明细"
:visible.sync="dialogFymx"
width="580px"
class="cloud_dia"
>
<div class="fymx_ts">
<i class="el-icon-warning-outline"></i>
<p>
计费说明:云资源服务依据用户选取的CPU、内存、数据盘个数及大小进行分级计费,具体计费规
则请线下联系技术支持人员咨询。
</p>
</div>
<div v-if="activeName == '1'" class="sjfy_title">升级费用</div>
<table-um
ref="apply_service_state_table"
:headers="jifeiHeader"
:stripe="true"
:datas="jifeiList1"
:maxheight="260"
></table-um>
<div v-if="activeName == '1'" class="sjfy_title">
原规格抵扣费用
<el-tooltip
class="tool_item"
effect="dark"
content="未用完的按剩余时间及原购买规格价格核算后优先抵扣本订单金额,超出部分退还至用户账户"
placement="top"
offset="5"
>
<img class="tool_img" src="@/assets/imgs/tool_ic_tips.png" />
</el-tooltip>
</div>
<table-um
v-if="activeName == '1'"
ref="apply_service_state_table"
:headers="jifeiHeader2"
:stripe="true"
:datas="jifeiList2"
:maxheight="260"
></table-um>
</el-dialog>
<ApassDialog
ref="dialog"
msg="确认删除该数据盘吗?"
:submit="dialogSubmit"
></ApassDialog>
</div> </div>
</template> </template>
...@@ -830,6 +1043,111 @@ export default { ...@@ -830,6 +1043,111 @@ export default {
props: { props: {
name: { type: String, default: "" }, name: { type: String, default: "" },
}, },
computed: {
getSumCoin() {
let sumCM = 0;
let sumDisk = 0;
let a_deductions = 0;
if (this.activeName == "0") {
a_deductions = this.deductions;
if (this.formNew.cpu == "8") {
if (this.formNew.memory == "16") {
sumCM += 10880;
} else if (this.formNew.memory == "32") {
sumCM += 16310;
}
} else if (this.formNew.cpu == "16") {
if (this.formNew.memory == "32") {
sumCM += 21750;
} else if (this.formNew.memory == "64") {
sumCM += 32610;
}
}
if (
this.formNew.dataDisk >= 1 &&
this.formNew.perDataDisk >= 1 &&
this.formNew.appDuration >= 1
) {
sumDisk +=
this.formNew.dataDisk *
this.formNew.perDataDisk *
this.formNew.appDuration *
4.2;
this.jifeiList1[2] = {
name: "数据盘",
num: `${this.formNew.dataDisk}个数据盘,每个数据盘${this.formNew.perDataDisk}GB`,
time: `${this.formNew.appDuration}个月`,
sum: `${sumDisk}金币`,
};
} else {
this.jifeiList1.splice(2);
}
this.jifeiList1[0].num = `${
this.formNew.cpu >= 1 ? this.formNew.cpu : 0
}核+${this.formNew.memory >= 1 ? this.formNew.memory : 0}G`;
this.jifeiList1[0].time = `${
this.formNew.appDuration >= 1 ? this.formNew.appDuration : 0
}个月`;
this.jifeiList1[0].sum = `${sumCM}金币`;
this.jifeiList1[1].num = `${
this.formNew.containerGroup >= 1 ? this.formNew.containerGroup : 0
}个`;
this.jifeiList1[1].time = `${
this.formNew.appDuration >= 1 ? this.formNew.appDuration : 0
}个月`;
} else if (this.activeName == "1") {
a_deductions = this.deductions;
if (this.formOld.cpu == "8") {
if (this.formOld.memory == "16") {
sumCM += 10880;
} else if (this.formOld.memory == "32") {
sumCM += 16310;
}
} else if (this.formOld.cpu == "16") {
if (this.formOld.memory == "32") {
sumCM += 21750;
} else if (this.formOld.memory == "64") {
sumCM += 32610;
}
}
if (
this.formOld.dataDisk >= 1 &&
this.formOld.perDataDisk >= 1 &&
this.formOld.appDuration >= 1
) {
sumDisk +=
this.formOld.dataDisk *
this.formOld.perDataDisk *
this.formOld.appDuration *
4.2;
this.jifeiList1[2] = {
name: "数据盘",
num: `${this.formOld.dataDisk}个数据盘,每个数据盘${this.formOld.perDataDisk}GB`,
time: `${this.formOld.appDuration}个月`,
sum: `${sumDisk}金币`,
};
} else {
this.jifeiList1.splice(2);
}
this.jifeiList1[0].num = `${
this.formOld.cpu >= 1 ? this.formOld.cpu : 0
}核+${this.formOld.memory >= 1 ? this.formOld.memory : 0}G`;
this.jifeiList1[0].time = `${
this.formOld.appDuration >= 1 ? this.formOld.appDuration : 0
}个月`;
this.jifeiList1[0].sum = `${sumCM}金币`;
this.jifeiList1[1].num = `${
this.formOld.containerGroup >= 1 ? this.formOld.containerGroup : 0
}个`;
this.jifeiList1[1].time = `${
this.formOld.appDuration >= 1 ? this.formOld.appDuration : 0
}个月`;
}
this.amounts_payable = sumCM + sumDisk;
this.total_money = sumCM + sumDisk - a_deductions;
return this.total_money;
},
},
data() { data() {
var checkName = (rule, value, callback) => { var checkName = (rule, value, callback) => {
let self = this; let self = this;
...@@ -857,6 +1175,11 @@ export default { ...@@ -857,6 +1175,11 @@ export default {
} }
}; };
return { return {
total_money: 0,
disk_single_money: 0,
eci_single_money: 0,
amounts_payable: 0,
deductions: 0,
helper, helper,
form: { form: {
department_name: "", department_name: "",
...@@ -910,9 +1233,11 @@ export default { ...@@ -910,9 +1233,11 @@ export default {
{ required: true, message: "请输入描述信息", trigger: "blur" }, { required: true, message: "请输入描述信息", trigger: "blur" },
{ max: 100, message: "长度应小于100个字符", trigger: "blur" }, { max: 100, message: "长度应小于100个字符", trigger: "blur" },
], ],
cpu: [{ required: true, message: "请选择CPU使用量", trigger: "blur" }], cpu: [
{ required: true, message: "请选择CPU使用量", trigger: "change" },
],
memory: [ memory: [
{ required: true, message: "请选择内存使用量", trigger: "blur" }, { required: true, message: "请选择内存使用量", trigger: "change" },
], ],
containerGroup: [ containerGroup: [
{ required: true, message: "请输入容器组规格", trigger: "blur" }, { required: true, message: "请输入容器组规格", trigger: "blur" },
...@@ -998,9 +1323,11 @@ export default { ...@@ -998,9 +1323,11 @@ export default {
workplacedesc: [ workplacedesc: [
{ required: true, message: "请输入描述信息", trigger: "blur" }, { required: true, message: "请输入描述信息", trigger: "blur" },
], ],
cpu: [{ required: true, message: "请选择CPU使用量", trigger: "blur" }], cpu: [
{ required: true, message: "请选择CPU使用量", trigger: "change" },
],
memory: [ memory: [
{ required: true, message: "请选择内存使用量", trigger: "blur" }, { required: true, message: "请选择内存使用量", trigger: "change" },
], ],
containerGroup: [ containerGroup: [
{ required: true, message: "请输入容器组规格", trigger: "blur" }, { required: true, message: "请输入容器组规格", trigger: "blur" },
...@@ -1051,6 +1378,70 @@ export default { ...@@ -1051,6 +1378,70 @@ export default {
dataDiskList: [], dataDiskList: [],
delDataDiskList: [], delDataDiskList: [],
del_item: {}, del_item: {},
dialogFymx: false,
jifeiHeader: [
{
label: "名称",
prop: "name",
align: "center",
},
{
label: "数量规格",
prop: "num",
align: "center",
},
{
label: "购买时长",
prop: "time",
align: "center",
},
{
label: "小计",
prop: "sum",
align: "center",
},
],
jifeiHeader2: [
{
label: "名称",
prop: "name",
align: "center",
},
{
label: "数量规格",
prop: "num",
align: "center",
},
{
label: "购买时长",
prop: "time",
align: "center",
},
{
label: "小计",
prop: "sum",
align: "center",
type: "html",
getHtml: (str) => {
return `<span style="color: #e15260">-${str.sum}</span>`;
},
},
],
jifeiList1: [
{ name: "CPU+内存", num: "0核+0G", time: "0个月", sum: "0金币" },
{ name: "容器组", num: "0个", time: "0个月", sum: "-" },
// { name: "数据盘", num: "0个数据盘,每个数据盘0GB", time: "0个月", sum: "2000金币" },
],
jifeiList2: [
{ name: "CPU+内存", num: "0核+0G", time: "0个月", sum: "0金币" },
{ name: "容器组", num: "0个", time: "0个月", sum: "-" },
{
name: "数据盘",
num: "0个数据盘,每个数据盘0GB",
time: "0个月",
sum: "2000金币",
},
],
}; };
}, },
mounted() { mounted() {
...@@ -1109,6 +1500,19 @@ export default { ...@@ -1109,6 +1500,19 @@ export default {
this.formOld.apply_file = val[0].url; this.formOld.apply_file = val[0].url;
}, },
handleChange() {}, handleChange() {},
getSpecifications() {
this.$api.serviceShop.getSpecifications().then((response) => {
if (response.data.success == 1) {
this.amounts_payable = 1000;
this.amounts_payable = 1000;
} else {
this.$message({
message: "获取资源规格失败,请刷新网页",
type: "error",
});
}
});
},
getForm(val) { getForm(val) {
if (val !== "") { if (val !== "") {
let paramsOld = this.workSpaceOptions[val]; let paramsOld = this.workSpaceOptions[val];
...@@ -1141,6 +1545,27 @@ export default { ...@@ -1141,6 +1545,27 @@ export default {
this.form.link_man = paramsOld.apply_connect_username; this.form.link_man = paramsOld.apply_connect_username;
this.form.phone = paramsOld.apply_connect_mobile; this.form.phone = paramsOld.apply_connect_mobile;
this.formShow = true; this.formShow = true;
this.jifeiList2 = [
{
name: "CPU+内存",
num: `${this.formOld.cpu}核+${this.formOld.memory}G"`,
time: "0个月",
sum: "0金币",
},
{
name: "容器组",
num: `${this.formOld.containerGroup}个`,
time: "0个月",
sum: "",
},
{
name: "数据盘",
num: `${this.dataDiskList.length}个数据盘,共计${this.dataDiskList.length}GB"`,
time: "0个月",
sum: "2000金币",
},
];
this.deductions = 20000;
} else { } else {
this.formShow = false; this.formShow = false;
} }
...@@ -1226,6 +1651,12 @@ export default { ...@@ -1226,6 +1651,12 @@ export default {
store_type: this.formNew.store_type, store_type: this.formNew.store_type,
}, },
], ],
payment: {
total_money: this.total_money,
disk_single_money: this.disk_single_money,
eci_single_money: this.eci_single_money,
amounts_payable: this.amounts_payable,
},
}; };
this.$api.serviceShop.applicationCloud(query).then((response) => { this.$api.serviceShop.applicationCloud(query).then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
...@@ -1327,21 +1758,20 @@ export default { ...@@ -1327,21 +1758,20 @@ export default {
} }
}, },
changeCPU(val) { changeCPU(val) {
console.log(val);
this.formOld.memory = ""; this.formOld.memory = "";
this.formNew.memory = ""; this.formNew.memory = "";
if (val == "8") { if (val == "8") {
this.optionsRAM = [ this.optionsRAM = [
{ value: "16", label: "16" }, { value: "16", label: "16" },
{ value: "32", label: "32" }, { value: "32", label: "32" },
] ];
} else if (val == "16") { } else if (val == "16") {
this.optionsRAM = [ this.optionsRAM = [
{ value: "32", label: "32" }, { value: "32", label: "32" },
{ value: "64", label: "64" }, { value: "64", label: "64" },
] ];
} }
} },
}, },
}; };
</script> </script>
...@@ -1501,9 +1931,19 @@ export default { ...@@ -1501,9 +1931,19 @@ export default {
.btn_footer { .btn_footer {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin: 40px 20px 10px; margin: 0 20px;
} }
.btn_footer .submit { .btn_footer .submit {
width: 220px;
background-color: #e56600;
color: #f8f9fd;
}
.btn_footer .nosubmit {
width: 220px;
background-color: #a9aec0;
color: #ffffff;
}
.btn_footer .submit1 {
width: 100px; width: 100px;
background-color: #0f2683; background-color: #0f2683;
color: #f8f9fd; color: #f8f9fd;
...@@ -1567,6 +2007,135 @@ export default { ...@@ -1567,6 +2007,135 @@ export default {
.up_f { .up_f {
width: calc(50% - 10px); width: calc(50% - 10px);
} }
.fyzj_item {
position: relative;
}
.fyzj {
color: #242c43;
font-size: 18px;
margin-right: 10px;
text-align: right;
position: absolute;
top: -10px;
right: 230px;
}
.fyzj_p {
margin-bottom: 6px;
}
.fyzj_span {
color: #e56600;
font-size: 24px;
font-weight: bold;
}
.fyzj_qian {
color: #e56600;
font-size: 14px;
}
.ckfymx {
color: #a9aec0;
font-size: 14px;
}
.ckfymx_a {
color: #515fe7;
cursor: pointer;
}
.ckfymx_qian {
display: inline-block;
margin-left: 20px;
position: relative;
}
.ckfymx_qian::after {
content: "";
position: absolute;
width: 1px;
height: 16px;
background: #bcc1d0;
left: -10px;
top: 2px;
}
.yebz {
color: #e15260;
font-size: 18px;
margin-right: 20px;
}
.fymx_ts {
background-color: #f4f7fc;
border-radius: 8px;
padding: 12px;
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.fymx_ts i {
position: relative;
top: 4px;
color: #8890a7;
}
.fymx_ts p {
width: calc(100% - 22px);
color: #58617a;
}
.sjfy_title {
margin: 10px 20px;
position: relative;
color: #242c43;
font-size: 16px;
}
.sjfy_title::after {
content: "";
position: absolute;
width: 8px;
height: 8px;
background-color: #515fe7;
border-radius: 50%;
left: -15px;
top: 8px;
}
.tool_img {
width: 16px;
height: 16px;
position: relative;
top: 2px;
left: 2px;
}
.fyzj_dia {
height: 100%;
}
.fyzj_dia_init {
float: right;
text-align: right;
padding: 10px;
}
.fyzj_1 {
color: #242c43;
font-size: 18px;
display: flex;
justify-content: space-between;
align-items: flex-end;
}
.fyzj_1_num {
color: #e56600;
font-size: 24px;
font-weight: bold;
}
.fyzj_1_jb {
color: #e56600;
font-size: 14px;
}
.fyzj_2 {
min-width: 140px;
color: #8890a7;
font-size: 14px;
margin: 10px 0;
display: flex;
justify-content: space-between;
}
.fyzj_2_num {
color: #58617a;
}
.clear_xxx {
clear: both;
}
</style> </style>
<style> <style>
.form_block .el-input .el-input__inner { .form_block .el-input .el-input__inner {
......
...@@ -2,43 +2,74 @@ ...@@ -2,43 +2,74 @@
<div class="shopping_cell"> <div class="shopping_cell">
<el-row class="shopping_cell_row"> <el-row class="shopping_cell_row">
<el-col :span="2" class="shopping_cell_check"> <el-col :span="2" class="shopping_cell_check">
<el-checkbox v-if="!readOnly" v-model="checkedItem" @change="getState"></el-checkbox> <el-checkbox
v-if="!readOnly"
v-model="checkedItem"
@change="getState"
></el-checkbox>
<div v-else class="shopping_cell_expired"> <div v-else class="shopping_cell_expired">
<span>已下架</span> <span>已下架</span>
</div> </div>
</el-col> </el-col>
<el-col :span="9"> <el-col :span="8">
<div class="shopping_cell_item"> <div class="shopping_cell_item">
<img <img
:src="cellIsService ? cellItems.service.cover:cellItems.application.logo" :src="
cellIsService
? cellItems.service.cover
: cellItems.application.logo
"
class="shopping_cell_img" class="shopping_cell_img"
/> />
<div class="shopping_cell_msg"> <div class="shopping_cell_msg">
<div class="shopping_cell_name"> <div class="shopping_cell_name">
{{ cellIsService ? cellItems.service.name:cellItems.application.app_name }} {{
cellIsService
? cellItems.service.name
: cellItems.application.app_name
}}
<span <span
v-if="cellIsService && cellItems.service.data_service_type1_name == '时空服务'" v-if="
cellIsService &&
cellItems.service.data_service_type1_name == '时空服务'
"
class="tags map_service" class="tags map_service"
>mapService</span> >
<span v-if="cellIsService && cellItems.service.openness == 1" class="tags shared">共享</span> mapService
</span>
<span <span
v-else-if="cellIsService && cellItems.service.openness == 2" v-if="cellIsService && cellItems.service.openness == 1"
class="tags shared"
>
共享
</span>
<span
v-else-if="cellIsService && cellItems.service.openness == 2"
class="tags restricted" class="tags restricted"
>受限</span> >
受限
</span>
<span <span
v-else-if="cellIsService && cellItems.service.openness == 3" v-else-if="cellIsService && cellItems.service.openness == 3"
class="tags sensitive" class="tags sensitive"
>敏感</span> >
敏感
</span>
</div> </div>
<div class="shopping_cell_msg_other"> <div class="shopping_cell_msg_other">
<div <div v-if="cellIsService" class="shopping_cell_type">
v-if="cellIsService" {{ cellItems.service.sectors_name }}
class="shopping_cell_type" </div>
>{{ cellItems.service.sectors_name }}</div> <div v-else class="shopping_cell_type">
<div v-else class="shopping_cell_type">{{ cellItems.application.ywly_name }}</div> {{ cellItems.application.ywly_name }}
<div </div>
class="shopping_cell_creator" <div class="shopping_cell_creator">
>{{ cellIsService ? cellItems.service.organization_name:cellItems.application.org_name }}</div> {{
cellIsService
? cellItems.service.organization_name
: cellItems.application.org_name
}}
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -46,11 +77,9 @@ ...@@ -46,11 +77,9 @@
<el-col :span="5"> <el-col :span="5">
<div class="shopping_cell_specification"> <div class="shopping_cell_specification">
<div class="shopping_cell_specification_val"> <div class="shopping_cell_specification_val">
<div class="shopping_cell_specification_val_specification">规格:{{ getSpecification }}</div> <div class="shopping_cell_specification_val_specification">
<div 计次收费:{{ getSpecification }}
class="shopping_cell_specification_val_type" </div>
v-if="cellIsService"
>申请方式:{{ cellItems.duration_method == 1 ? "按月":"按年" }}</div>
<div class="shopping_cell_specification_edit"> <div class="shopping_cell_specification_edit">
<el-popover <el-popover
placement="right-start" placement="right-start"
...@@ -62,21 +91,34 @@ ...@@ -62,21 +91,34 @@
<div v-if="cellIsService"> <div v-if="cellIsService">
<div class="shopping_cell_specification_title">规格:</div> <div class="shopping_cell_specification_title">规格:</div>
<div <div
v-if="cellItems.service.request_spcs_info && cellItems.service.request_spcs_info.length != 0" v-if="
cellItems.service.request_spcs_info &&
cellItems.service.request_spcs_info.length != 0
"
> >
<el-button <el-button
v-for="(item, index) in cellItems.service.request_spcs_info" v-for="(item, index) in cellItems.service
.request_spcs_info"
:key="'specification' + index" :key="'specification' + index"
:class="specificationPop == item.id ? 'shopping_cell_specification_btn active' : 'shopping_cell_specification_btn'" :class="
specificationPop == item.id
? 'shopping_cell_specification_btn active'
: 'shopping_cell_specification_btn'
"
size="mini" size="mini"
@click="changeSpecification(item.id)" @click="changeSpecification(item.id)"
> >
{{ index + 1 + ". " + "访问次数:" + {{
item.pv + index +
"/日," + 1 +
"访问量:" + ". " +
item.count + "访问次数:" +
"/日" }} item.pv +
"/日," +
"访问量:" +
item.count +
"/日"
}}
</el-button> </el-button>
</div> </div>
<div class="no_option" v-else>暂无规格</div> <div class="no_option" v-else>暂无规格</div>
...@@ -87,22 +129,18 @@ ...@@ -87,22 +129,18 @@
<el-button <el-button
v-for="(item, index) in appSpecificationBtns" v-for="(item, index) in appSpecificationBtns"
:key="'specification' + index" :key="'specification' + index"
:class="specificationPop == item.id ? 'shopping_cell_specification_btn active' : 'shopping_cell_specification_btn'" :class="
specificationPop == item.id
? 'shopping_cell_specification_btn active'
: 'shopping_cell_specification_btn'
"
size="mini" size="mini"
@click="changeSpecification(item.id)" @click="changeSpecification(item)"
>{{ index + 1 + ". " + item.value }}</el-button> >
{{ index + 1 + ". " + item.value }}
</el-button>
</div> </div>
</div> </div>
<div v-if="cellIsService" class="shopping_cell_specification_title">申请方式:</div>
<div v-if="cellIsService">
<el-button
v-for="(item, index) in specificationApplicationBtns"
:key="'specification' + index"
:class="specificationApplicationPop == item.id ? 'shopping_cell_specification_btn active' : 'shopping_cell_specification_btn'"
size="mini"
@click="changeSpecificationApplication(item.id)"
>{{ item.value }}购买</el-button>
</div>
</div> </div>
<div class="pop_footer"> <div class="pop_footer">
<el-button <el-button
...@@ -110,12 +148,16 @@ ...@@ -110,12 +148,16 @@
size="mini" size="mini"
type="text" type="text"
@click="visible = false" @click="visible = false"
>取消</el-button> >
取消
</el-button>
<el-button <el-button
class="shopping_cell_specification_submit" class="shopping_cell_specification_submit"
size="mini" size="mini"
@click="submitPop" @click="submitPop"
>确定</el-button> >
确定
</el-button>
</div> </div>
<el-button v-if="!readOnly" circle size="mini" slot="reference"> <el-button v-if="!readOnly" circle size="mini" slot="reference">
<img :src="specificationEdit" /> <img :src="specificationEdit" />
...@@ -126,18 +168,8 @@ ...@@ -126,18 +168,8 @@
</div> </div>
</el-col> </el-col>
<el-col :span="3" class="shopping_cell_num"> <el-col :span="3" class="shopping_cell_num">
<div v-if="cellIsService"> <div v-if="cellIsService && specificationPop.spec_type == 1">不限时长</div>
<el-input-number <div v-else>
:disabled="readOnly"
v-model="cellItems.duration"
@change="changeNum"
size="mini"
:min="1"
></el-input-number>
</div>
</el-col>
<el-col :span="2" class="shopping_cell_num">
<div v-if="cellIsService">
<el-input-number <el-input-number
:disabled="readOnly" :disabled="readOnly"
v-model="cellItems.duration" v-model="cellItems.duration"
...@@ -146,13 +178,17 @@ ...@@ -146,13 +178,17 @@
:min="1" :min="1"
></el-input-number> ></el-input-number>
</div> </div>
</el-col> </el-col>
<el-col :span="3" class="shopping_cell_num"> 200000000金币 </el-col>
<el-col :span="3" class="shopping_cell_options"> <el-col :span="3" class="shopping_cell_options">
<el-checkbox <el-checkbox
v-if="!readOnly" v-if="!readOnly"
v-model="cellItems.is_subscribe" v-model="cellItems.is_subscribe"
@change="changeSubscription" @change="changeSubscription"
>订阅该服务</el-checkbox> >
订阅该服务
</el-checkbox>
<div class="shopping_cell_options_del"> <div class="shopping_cell_options_del">
<el-button @click="delCellItem" size="mini">删除</el-button> <el-button @click="delCellItem" size="mini">删除</el-button>
</div> </div>
......
...@@ -4,12 +4,14 @@ ...@@ -4,12 +4,14 @@
<div class="shopping_all_head"> <div class="shopping_all_head">
<el-row> <el-row>
<el-col :span="2" class="shopping_all_head_item"> <el-col :span="2" class="shopping_all_head_item">
<el-checkbox v-model="checkShopAll" @change="checkAll">全选</el-checkbox> <el-checkbox v-model="checkShopAll" @change="checkAll"
>全选</el-checkbox
>
</el-col> </el-col>
<el-col :span="9" class="shopping_all_head_item">服务信息</el-col> <el-col :span="8" class="shopping_all_head_item">服务信息</el-col>
<el-col :span="5" class="shopping_all_head_item">规格</el-col> <el-col :span="5" class="shopping_all_head_item">规格</el-col>
<el-col :span="3" class="shopping_all_head_item">购买时长</el-col> <el-col :span="3" class="shopping_all_head_item">购买时长</el-col>
<el-col :span="2" class="shopping_all_head_item">小计</el-col> <el-col :span="3" class="shopping_all_head_item">小计</el-col>
<el-col :span="3" class="shopping_all_head_item">操作</el-col> <el-col :span="3" class="shopping_all_head_item">操作</el-col>
</el-row> </el-row>
</div> </div>
...@@ -40,31 +42,54 @@ ...@@ -40,31 +42,54 @@
<div class="shopping_cart_options"> <div class="shopping_cart_options">
<el-row> <el-row>
<el-col :span="2" class="shopping_cart_options_cell"> <el-col :span="2" class="shopping_cart_options_cell">
<el-checkbox v-model="checkShopAll" @change="checkAll">全选</el-checkbox> <el-checkbox v-model="checkShopAll" @change="checkAll"
>全选</el-checkbox
>
</el-col> </el-col>
<el-col :span="3" class="shopping_cart_options_del"> <el-col :span="3" class="shopping_cart_options_del">
<span v-if="getNum == 0" class="shopping_cart_options_del_service">删除选中服务</span> <span v-if="getNum == 0" class="shopping_cart_options_del_service"
>删除选中服务</span
>
<span <span
v-else v-else
@click="delSelectService" @click="delSelectService"
class="shopping_cart_options_del_service_act" class="shopping_cart_options_del_service_act"
>删除选中服务</span> >删除选中服务</span
>
</el-col> </el-col>
<el-col :span="15" class="shopping_cart_options_num"> <el-col :span="15" class="shopping_cart_options_num">
{{ list.length }} 项服务,已选择 <div class="fyzj">
<span>{{ getNum }}</span> <p class="fyzj_p">
<span v-if="getSumCoin > 20000" class="yebz">
余额不足,请联系超级管理员进行充值
</span>
费用总计:<span class="fyzj_span">
{{ getSumCoin }}
</span>
<span class="fyzj_qian">金币</span>
</p>
<div class="ckfymx">
<p class="ckfymx_a">
{{ list.length }} 项服务,已选择
<span class="dwa_djf">{{ getNum }}</span>
<span class="ckfymx_qian">账户余额:20,000 金币</span>
</p>
</div>
</div>
</el-col> </el-col>
<el-col :span="4" class="shopping_cart_options_cell"> <el-col :span="4" class="shopping_cart_options_cell">
<el-button <el-button
v-if="getNum == 0" v-if="getNum == 0"
:disabled="true" :disabled="true"
class="shopping_cart_options_cell_btn" class="shopping_cart_options_cell_btn"
>一键申请</el-button> >一键申请</el-button
>
<el-button <el-button
v-else v-else
@click="oneClickApplication" @click="oneClickApplication"
class="shopping_cart_options_cell_btn_act" class="shopping_cart_options_cell_btn_act"
>一键申请</el-button> >一键申请</el-button
>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
...@@ -97,6 +122,15 @@ export default { ...@@ -97,6 +122,15 @@ export default {
); );
return num; return num;
}, },
getSumCoin() {
let sum = 0;
this.checkList.forEach((item, index) => {
if (item) {
sum += item.total_money;
}
});
return sum;
},
getCartState() { getCartState() {
return this.$store.state.cartState; return this.$store.state.cartState;
}, },
...@@ -129,7 +163,6 @@ export default { ...@@ -129,7 +163,6 @@ export default {
this.$refs.shoppingList.setAllState(val); this.$refs.shoppingList.setAllState(val);
}, },
changeState(val) { changeState(val) {
console.log(val);
this.$set(this.checkList, val.index, val.state); this.$set(this.checkList, val.index, val.state);
if (this.checkList.indexOf(false) == -1) { if (this.checkList.indexOf(false) == -1) {
this.checkShopAll = true; this.checkShopAll = true;
...@@ -236,7 +269,7 @@ export default { ...@@ -236,7 +269,7 @@ export default {
font-weight: 500; font-weight: 500;
color: #58617a; color: #58617a;
} }
.shopping_cart_options_num span { .dwa_djf {
color: #e56600; color: #e56600;
} }
.shopping_cart_options_cell_btn { .shopping_cart_options_cell_btn {
...@@ -262,6 +295,52 @@ export default { ...@@ -262,6 +295,52 @@ export default {
.shopping_list_page { .shopping_list_page {
padding: 10px 20px 0; padding: 10px 20px 0;
} }
.fyzj_item {
position: relative;
}
.fyzj {
color: #242c43;
font-size: 18px;
margin-right: 10px;
text-align: right;
position: relative;
top: 8px;
line-height: 26px;
}
.fyzj_p {
margin-bottom: 6px;
}
.fyzj_span {
color: #e56600;
font-size: 24px;
font-weight: bold;
}
.fyzj_qian {
color: #e56600;
font-size: 14px;
}
.ckfymx {
color: #58617a;
font-size: 14px;
}
.ckfymx_a {
color: #58617a;
}
.ckfymx_qian {
display: inline-block;
margin-left: 20px;
position: relative;
color: #a9aec0;
}
.ckfymx_qian::after {
content: "";
position: absolute;
width: 1px;
height: 16px;
background: #bcc1d0;
left: -10px;
top: 2px;
}
</style> </style>
<style> <style>
.shopping_cart_options_cell .el-checkbox { .shopping_cart_options_cell .el-checkbox {
......
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
:data="selectedTabsPage" :data="selectedTabsPage"
:size="size" :size="size"
:height="height" :height="height"
:max-height="maxheight"
:border="border" :border="border"
@select="select" @select="select"
@select-all="selectAll" @select-all="selectAll"
...@@ -204,6 +205,13 @@ ...@@ -204,6 +205,13 @@
<img src="@/assets/imgs/list_ic_hot.png" alt v-if="scope.row['hot']" /> <img src="@/assets/imgs/list_ic_hot.png" alt v-if="scope.row['hot']" />
{{ scope.row[item.prop] }} {{ scope.row[item.prop] }}
</span> </span>
<span
v-else-if="item.type === 'html'"
class="table_html"
v-html="
item.getHtml ? item.getHtml(scope.row) : scope.row[item.prop]
"
></span>
<!-- others --> <!-- others -->
<span v-else-if="item.type === 'click'" style="cursor: pointer;color: #274fee;" @click="gotopage(item.url,scope.row[item.id])">{{ scope.row[item.prop] }}</span> <span v-else-if="item.type === 'click'" style="cursor: pointer;color: #274fee;" @click="gotopage(item.url,scope.row[item.id])">{{ scope.row[item.prop] }}</span>
<span v-else>{{ scope.row[item.prop] }}</span> <span v-else>{{ scope.row[item.prop] }}</span>
...@@ -388,6 +396,10 @@ export default { ...@@ -388,6 +396,10 @@ export default {
params: { params: {
type: Object, type: Object,
default: () => {} default: () => {}
},
maxheight: {
type: [String, Number],
default: ""
} }
}, },
data() { data() {
......
...@@ -88,6 +88,7 @@ export default { ...@@ -88,6 +88,7 @@ export default {
], ],
descript: datas.descript, descript: datas.descript,
serviceRequestSpcs: specificationData, serviceRequestSpcs: specificationData,
scoreDetail: datas.scoreDetail,
}; };
this.detailData = [ this.detailData = [
......
<template> <template>
<div class="apply_container"> <div class="apply_container">
<info-list :list_arr="module_arr"> <info-list :list_arr="module_arr">
<apply-form :formInline="formInline" ref="apply_info" slot="apply_info"></apply-form> <apply-form
<service-list ref="apply_service" slot="apply_service" :service_arr="service_arr"></service-list> :formInline="formInline"
ref="apply_info"
slot="apply_info"
></apply-form>
<service-list
ref="apply_service"
slot="apply_service"
:service_arr="service_arr"
></service-list>
</info-list> </info-list>
<div class="footout"> <div class="footout">
...@@ -30,6 +38,17 @@ export default { ...@@ -30,6 +38,17 @@ export default {
applyForm, applyForm,
serviceList, serviceList,
}, },
computed: {
getSumCoin() {
let sum = 0;
this.service_arr.forEach((item, index) => {
if (item) {
sum += item.total_money;
}
});
return sum;
},
},
data() { data() {
return { return {
formInline: { formInline: {
...@@ -115,7 +134,6 @@ export default { ...@@ -115,7 +134,6 @@ export default {
}; };
}, },
watch: {}, watch: {},
computed: {},
created() { created() {
if (this.$route.query.service_id) { if (this.$route.query.service_id) {
this.get_one_service(this.$route.query); this.get_one_service(this.$route.query);
...@@ -437,6 +455,7 @@ export default { ...@@ -437,6 +455,7 @@ export default {
padding: 20px; padding: 20px;
text-align: right; text-align: right;
margin: 20px 0; margin: 20px 0;
position: relative;
} }
.applybtn { .applybtn {
color: rgba(252, 239, 214, 1); color: rgba(252, 239, 214, 1);
...@@ -449,6 +468,56 @@ export default { ...@@ -449,6 +468,56 @@ export default {
border-radius: 8px; border-radius: 8px;
margin-left: 20px; margin-left: 20px;
cursor: pointer; cursor: pointer;
position: absolute;
top: 20px;
right: 20px;
}
.fyzj_item {
position: relative;
}
.fyzj {
color: #242c43;
font-size: 18px;
margin-right: 10px;
text-align: right;
position: relative;
top: -8px;
right: 210px;
line-height: 26px;
}
.fyzj_p {
margin-bottom: 6px;
}
.fyzj_span {
color: #e56600;
font-size: 24px;
font-weight: bold;
}
.fyzj_qian {
color: #e56600;
font-size: 14px;
}
.ckfymx {
color: #58617a;
font-size: 14px;
}
.ckfymx_a {
color: #58617a;
}
.ckfymx_qian {
display: inline-block;
margin-left: 20px;
position: relative;
color: #a9aec0;
}
.ckfymx_qian::after {
content: "";
position: absolute;
width: 1px;
height: 16px;
background: #bcc1d0;
left: -10px;
top: 2px;
} }
.count_money{ .count_money{
float: right; float: right;
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
<service-tabs <service-tabs
:detail-data="detailData" :detail-data="detailData"
:specification-data="specificationData"
:provider-data="providerData" :provider-data="providerData"
:comments-data="commentsData" :comments-data="commentsData"
:comments-url="commentsUrl" :comments-url="commentsUrl"
...@@ -34,7 +33,6 @@ export default { ...@@ -34,7 +33,6 @@ export default {
data: () => ({ data: () => ({
baseInfo: null, baseInfo: null,
detailData: null, detailData: null,
specificationData: null,
providerData: null, providerData: null,
commentsData: null, commentsData: null,
}), }),
...@@ -56,18 +54,6 @@ export default { ...@@ -56,18 +54,6 @@ export default {
}) })
.then(({ data }) => { .then(({ data }) => {
let datas = data.data; let datas = data.data;
let specificationData =
(datas.serviceRequestSpcs &&
datas.serviceRequestSpcs.map((item) => ({
id: item.id,
type: item.type,
pv: item.pv,
count: item.count,
name: `访问次数:${item.pv}次/日 访问量:${item.count}次/日`,
descript: item.des,
}))) ||
[];
this.baseInfo = { this.baseInfo = {
service_id: this.id, service_id: this.id,
app_id: 0, app_id: 0,
...@@ -87,7 +73,8 @@ export default { ...@@ -87,7 +73,8 @@ export default {
datas.data_service_type3_name, datas.data_service_type3_name,
], ],
descript: datas.descript, descript: datas.descript,
serviceRequestSpcs: specificationData, serviceRequestSpcs: datas.serviceRequestSpcs,
scoreDetail: datas.scoreDetail,
}; };
this.detailData = [ this.detailData = [
...@@ -184,7 +171,6 @@ export default { ...@@ -184,7 +171,6 @@ export default {
}, },
}, },
]; ];
this.specificationData = specificationData;
this.providerData = { this.providerData = {
organization_name: datas.organization_name, organization_name: datas.organization_name,
picture_path: datas.organization_picture, picture_path: datas.organization_picture,
......
...@@ -94,6 +94,7 @@ export default { ...@@ -94,6 +94,7 @@ export default {
], ],
descript: datas.descript, descript: datas.descript,
serviceRequestSpcs: specificationData, serviceRequestSpcs: specificationData,
scoreDetail: datas.scoreDetail,
}; };
this.detailData = [ this.detailData = [
......
...@@ -55,9 +55,12 @@ export default { ...@@ -55,9 +55,12 @@ export default {
}, },
}) })
.then(({ data }) => { .then(({ data }) => {
this.baseInfo = data.data; this.$api.serviceShop.getExtendedInfo({ id: this.id }).then((response) => {
this.baseInfo = data.data;
this.baseInfo = Object.assign(this.baseInfo, response.data.data);
});
}) })
.catch(function(error) { .catch(function (error) {
console.log(error); console.log(error);
}); });
...@@ -100,7 +103,7 @@ export default { ...@@ -100,7 +103,7 @@ export default {
); );
this.detailData = detailData; this.detailData = detailData;
}) })
.catch(function(error) { .catch(function (error) {
console.log(error); console.log(error);
}); });
...@@ -114,7 +117,7 @@ export default { ...@@ -114,7 +117,7 @@ export default {
phone: data.data.phone, phone: data.data.phone,
}; };
}) })
.catch(function(error) { .catch(function (error) {
console.log(error); console.log(error);
}); });
}, },
......
...@@ -89,6 +89,7 @@ export default { ...@@ -89,6 +89,7 @@ export default {
], ],
descript: datas.descript, descript: datas.descript,
serviceRequestSpcs: specificationData, serviceRequestSpcs: specificationData,
scoreDetail: datas.scoreDetail,
}; };
this.detailData = [ this.detailData = [
{ {
......
...@@ -8,9 +8,7 @@ ...@@ -8,9 +8,7 @@
<el-breadcrumb-item to="/technical_support/doc_manage"> <el-breadcrumb-item to="/technical_support/doc_manage">
开发文档 开发文档
</el-breadcrumb-item> </el-breadcrumb-item>
<el-breadcrumb-item> <el-breadcrumb-item> 文档编辑 - {{ title }} </el-breadcrumb-item>
文档编辑 - {{ title }}
</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
...@@ -31,21 +29,26 @@ ...@@ -31,21 +29,26 @@
<script> <script>
import wangE from "@/components/wangE"; import wangE from "@/components/wangE";
export default { export default {
components: {
wangE,
},
data() { data() {
return { return {
title: "", title: "",
content: "", content: "",
}; };
}, },
components: { computed: {
wangE, id() {
return parseFloat(this.$route.params.id);
},
}, },
created() { created() {
if (this.$route.params.id) { if (this.id) {
this.$http this.$http
.get("/apaas/support/document/get", { .get("/apaas/support/document/get", {
params: { params: {
id: this.$route.params.id, id: this.id,
}, },
}) })
.then(({ data }) => { .then(({ data }) => {
...@@ -63,13 +66,13 @@ export default { ...@@ -63,13 +66,13 @@ export default {
submitAction() { submitAction() {
this.$http this.$http
.put("/apaas/support/document/put", { .put("/apaas/support/document/put", {
id: parseFloat(this.$route.params.id), id: this.id,
content: this.content, content: this.content,
}) })
.then(({ data }) => { .then(({ data }) => {
if (data.success === 1) { if (data.success === 1) {
this.$message.success("保存成功"); this.$message.success("保存成功");
this.$router.push("/technical_support/doc_manage") this.$router.push("/technical_support/doc_manage");
} else { } else {
this.$message.error(data.errMsg || "保存失败"); this.$message.error(data.errMsg || "保存失败");
} }
......
...@@ -250,7 +250,10 @@ export default { ...@@ -250,7 +250,10 @@ export default {
{ max: 20, message: "长度应小于20个字符", trigger: "change" }, { max: 20, message: "长度应小于20个字符", trigger: "change" },
], ],
}, },
detail: "", detail: {
title: "",
content: "",
},
deleteDialogInfo: { deleteDialogInfo: {
msg: "", msg: "",
submit: null, submit: null,
...@@ -269,6 +272,7 @@ export default { ...@@ -269,6 +272,7 @@ export default {
this.$http this.$http
.get("/apaas/support/document/list", { .get("/apaas/support/document/list", {
params: { params: {
search: fullFilter.name,
style: fullFilter.type, style: fullFilter.type,
start: fullFilter.time && fullFilter.time[0], start: fullFilter.time && fullFilter.time[0],
end: fullFilter.time && fullFilter.time[1], end: fullFilter.time && fullFilter.time[1],
...@@ -347,6 +351,7 @@ export default { ...@@ -347,6 +351,7 @@ export default {
style: 0, style: 0,
title: "", title: "",
}; };
this.$refs.addForm && this.$refs.addForm.clearValidate();
this.$refs.addDialog.show(); this.$refs.addDialog.show();
}, },
AddCancelAction() { AddCancelAction() {
...@@ -424,7 +429,7 @@ export default { ...@@ -424,7 +429,7 @@ export default {
<style> <style>
.doc_manage_detail_dialog .el-dialog__body { .doc_manage_detail_dialog .el-dialog__body {
padding: 10px; padding: 15px;
} }
.doc_manage_detail_dialog .el-dialog__footer { .doc_manage_detail_dialog .el-dialog__footer {
display: none; display: none;
......
...@@ -21,20 +21,15 @@ export default { ...@@ -21,20 +21,15 @@ export default {
sideNavBar, sideNavBar,
}, },
data: () => ({ data: () => ({
activePath: "",
navList: [], navList: [],
}), }),
/* watch: {
"$route.fullPath"(path) {
this.initNavList();
},
}, */
methods: { methods: {
initNavList() { initNavList() {
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then(({ data }) => { this.$api.general.getNowMenu({ teamName: "APAAS3" }).then(({ data }) => {
if (data.success == 1) { if (data.success == 1) {
let menu = data.data[0].Child; let menu = data.data[0].Child;
let nav = []; let nav = [];
let activePath = "";
for (let i = 0; i < menu.length; i++) { for (let i = 0; i < menu.length; i++) {
let first = menu[i]; let first = menu[i];
...@@ -83,8 +78,8 @@ export default { ...@@ -83,8 +78,8 @@ export default {
if (children.length === 0) { if (children.length === 0) {
this.$set(nav[index], "disabled", true); this.$set(nav[index], "disabled", true);
} else { } else {
if (activePath === "") { if (this.activePath === "") {
activePath = children[0].path; this.activePath = children[0].path;
} }
this.$set(nav[index], "path", children[0].path); this.$set(nav[index], "path", children[0].path);
...@@ -97,9 +92,9 @@ export default { ...@@ -97,9 +92,9 @@ export default {
}); });
this.navList = nav; this.navList = nav;
if (activePath && this.$route.params.id === undefined) { if (this.activePath && this.$route.params.id === undefined) {
this.$router.push(activePath); this.$router.push(this.activePath);
} else if (activePath === "") { } else if (this.activePath === "") {
this.$message.error("您尚未创建任何文档"); this.$message.error("您尚未创建任何文档");
} }
}); });
......
<template>
<div class="doc_manage_container">
<div class="apass_breadcrumb">
<el-breadcrumb separator="/">
<el-breadcrumb-item to="/technical_support">
技术支持
</el-breadcrumb-item>
<el-breadcrumb-item to="/technical_support/sdk_manage/example">
SDK管理
</el-breadcrumb-item>
<el-breadcrumb-item>
SDK示例编辑 - {{ detail.example_name }}
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<div class="editpage">
<wang-e v-model="detail.content"></wang-e>
<div class="apaas_button">
<el-button type="defalut" size="mini" @click="cancelAction">
取消
</el-button>
<el-button type="primary" size="mini" @click="submitAction">
保存
</el-button>
</div>
</div>
</div>
</template>
<script>
import wangE from "@/components/wangE";
export default {
components: {
wangE,
},
data() {
return {
detail: {},
};
},
computed: {
id() {
return parseFloat(this.$route.params.id);
},
},
created() {
if (this.id) {
this.$http
.get("/apaas/support/sdk/example/detail", {
params: {
id: this.id,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.detail = data.data;
}
});
}
},
methods: {
cancelAction() {
this.$router.push("/technical_support/sdk_manage");
},
submitAction() {
this.$http
.put("/apaas/support/sdk/example/put", {
id: this.id,
style_id: this.detail.style_id,
example_name: this.detail.example_name,
content: this.detail.content,
})
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("保存成功");
this.$router.push("/technical_support/sdk_manage/example");
} else {
this.$message.error(data.errMsg || "保存失败");
}
})
.catch((error) => {
console.log(error);
this.$message.error("保存失败");
});
},
},
};
</script>
<style scoped>
.doc_manage_container {
height: 100%;
padding: 0 20px 30px;
box-sizing: border-box;
}
.main_container {
height: calc(100% - 53px);
background-color: #fff;
border-radius: 10px;
}
.editpage {
background-color: #fff;
height: calc(100% - 45px);
margin-bottom: 20px;
box-shadow: 0px 3px 6px 0px #f4f7fc;
border-radius: 12px;
}
.editpage .wangeditor_class {
height: calc(100% - 100px);
padding: 0 20px;
box-sizing: border-box;
}
.apaas_button {
border-top: 1px solid #e3e5ef;
box-sizing: border-box;
text-align: right;
padding-top: 30px;
}
.apaas_button .el-button + .el-button {
margin-right: 30px;
}
</style>
<template> <template>
<div class="doc_manage_container"> <div class="list_container">
<apass-list <apass-list
ref="list" ref="list"
search-placeholder="请输入关键字" search-placeholder="请输入关键字"
...@@ -8,7 +8,9 @@ ...@@ -8,7 +8,9 @@
:list-total="listTotal" :list-total="listTotal"
:list-header="listHeader" :list-header="listHeader"
:list-data="listData" :list-data="listData"
:list-select="true"
@list-action="init" @list-action="init"
@list-select="selectAction"
> >
<el-breadcrumb separator="/" slot="breadcrumb"> <el-breadcrumb separator="/" slot="breadcrumb">
<el-breadcrumb-item to="/technical_support"> <el-breadcrumb-item to="/technical_support">
...@@ -32,12 +34,19 @@ ...@@ -32,12 +34,19 @@
<el-option <el-option
v-for="(item, index) in types" v-for="(item, index) in types"
:key="'top_type_' + index" :key="'top_type_' + index"
:label="item.label" :label="item.style_name"
:value="item.value" :value="item.id"
> >
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div class="filter_item">
<span class="filter_title">示例名称:</span>
<el-input
v-model="topFilter.name"
placeholder="请输入示例名称"
></el-input>
</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
...@@ -62,10 +71,92 @@ ...@@ -62,10 +71,92 @@
</div> </div>
</template> </template>
<div class="main_top" slot="main-top"> <div class="main_top_action apaas_button" slot="main-top">
xxx <el-button class="delete_btn" type="danger" @click="deleteSlection">
批量删除
</el-button>
<span class="selected_text">
已选择
<span>{{ selection.length }}</span>
</span>
<a class="clean_btn" @click.prevent="clearSelection">清空</a>
<el-button class="add_btn" type="primary" @click="addNewSdk">
新增SDK类型
</el-button>
</div> </div>
</apass-list> </apass-list>
<apass-dialog
ref="viewDialog"
:title="detailForm.example_name"
class="sdk_manage_detail_dialog"
width="1340px"
>
<div
class="view_content apaas_scroll"
slot="content"
v-html="detailForm.content"
></div>
</apass-dialog>
<apass-dialog
ref="detailDialog"
:title="detailForm.type === 0 ? '新增' : '修改'"
>
<div class="detail_content" slot="content">
<div class="detail_notice">
<p>注:同一文档类型下可维护多个文档名称</p>
</div>
<el-form ref="detailForm" :model="detailForm" :rules="detailFormRules">
<el-form-item label="SDK类型" prop="style_id">
<el-select
v-model="detailForm.style_id"
placeholder="请选择SDK类型"
style="width: 100%;"
>
<el-option
v-for="(item, index) in types"
:key="'detail_type_' + index"
:label="item.style_name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="示例名称" prop="example_name">
<el-input
v-model="detailForm.example_name"
placeholder="请输入示例名称"
></el-input>
</el-form-item>
</el-form>
</div>
<template slot="action">
<el-button
type="primary"
size="mini"
@click="detailEditContent"
style="float: left;"
v-if="detailForm.type === 1"
>
修改文档
</el-button>
<el-button type="defalut" size="mini" @click="detailCancelAction">
取消
</el-button>
<el-button type="primary" size="mini" @click="detailSubmitAction">
确定
</el-button>
</template>
</apass-dialog>
<apass-dialog
ref="deleteDialog"
:msg="deleteDialogInfo.msg"
:submit="deleteDialogInfo.submit"
></apass-dialog>
</div> </div>
</template> </template>
...@@ -73,28 +164,106 @@ ...@@ -73,28 +164,106 @@
import helper from "@/services/helper.js"; import helper from "@/services/helper.js";
import apassList from "@/components/apass-list"; import apassList from "@/components/apass-list";
import apassDialog from "@/components/apass-dialog"; import apassDialog from "@/components/apass-dialog";
import apassUpload from "@/components/apass-upload";
import showMoreFilter from "@/components/show-more-filter"; import showMoreFilter from "@/components/show-more-filter";
export default { export default {
components: { components: {
apassList, apassList,
apassDialog, apassDialog,
apassUpload,
showMoreFilter, showMoreFilter,
}, },
data() { data() {
return { return {
paddingLeft: 25, paddingLeft: 0,
listTotal: 0, listTotal: 0,
listHeader: [{}], listHeader: [
{
label: "示例名称",
prop: "example_name",
type: "button",
callback: this.viewItem,
width: 320,
},
{
label: "SDK类型",
prop: "style_name",
align: "center",
},
{
label: "版本号",
prop: "version",
align: "center",
},
{
label: "是否提供SDK包下载",
prop: "is_sdk",
align: "center",
},
{
label: "操作人",
prop: "user_name",
align: "center",
},
{
label: "最后更新时间",
prop: "updated",
getText: ({ updated }) => this.getTimeText(updated || ""),
align: "center",
},
{
label: "操作",
type: "buttons",
align: "center",
width: 240,
actionList: [
{
label: "修改",
callback: this.editItem,
},
{
label: "删除",
callback: this.deleteItem,
class: "warn",
},
],
},
],
listData: [], listData: [],
topFilter: { topFilter: {
type: "", type: "",
name: "",
time: "", time: "",
}, },
types: [], types: [],
tempFilter: {}, tempFilter: {},
detailForm: {
type: 0, // 0:新增 1:修改
style_id: "",
example_name: "",
content: "",
},
detailFormRules: {
style_id: [
{ required: true, message: "请选择SDK类型", trigger: "change" },
],
example_name: [
{ required: true, message: "请输入示例名称", trigger: "blur" },
{ max: 20, message: "长度应小于20个字符", trigger: "change" },
],
},
deleteDialogInfo: {
msg: "",
submit: null,
},
saveSection: false,
selection: [],
}; };
}, },
created() {
this.getTypes();
},
methods: { methods: {
init(filter) { init(filter) {
let fullFilter = { let fullFilter = {
...@@ -103,13 +272,48 @@ export default { ...@@ -103,13 +272,48 @@ export default {
}; };
this.tempFilter = filter; this.tempFilter = filter;
this.saveSection = true;
this.$http
.get("/apaas/support/sdk/example/list", {
params: {
style: fullFilter.type,
name: fullFilter.name,
start: fullFilter.time && fullFilter.time[0],
end: fullFilter.time && fullFilter.time[1],
limit: fullFilter.size,
page: fullFilter.page,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.listTotal = data.total;
this.listData = data.data || [];
console.log(fullFilter); this.$nextTick(() => {
this.selection.forEach((item) => {
let target = this.listData.find((v) => v.id === item.id);
if (target) {
this.setCurrentRow(target, true);
}
});
this.saveSection = false;
});
}
});
},
getTypes() {
this.$http.get("/apaas/support/sdk/styleNames/list").then(({ data }) => {
if (data.success === 1) {
this.types = data.data || [];
}
});
}, },
topFilterClear() { topFilterClear() {
this.topFilter = { this.topFilter = {
name: "",
type: "", type: "",
name: "",
time: "", time: "",
}; };
this.refreshPage(); this.refreshPage();
...@@ -120,6 +324,262 @@ export default { ...@@ -120,6 +324,262 @@ export default {
refreshPage() { refreshPage() {
this.$refs.list.resetCurrentPage(); this.$refs.list.resetCurrentPage();
}, },
deleteSlection() {
if (this.selection.length) {
let names = [];
let ids = [];
this.selection.forEach((item) => {
names.push(item.example_name);
ids.push(item.id);
});
this.deleteDialogInfo.msg = `您确认要删除${names.join("")}吗?`;
this.deleteDialogInfo.submit = () => {
this.deleteRequest(ids);
};
this.$refs.deleteDialog.show();
} else {
this.$message.warning("您尚未选中任何SDK示例");
}
},
clearSelection() {
this.$refs.list.clearSelection();
},
setCurrentRow(row, flag) {
this.$refs.list.setSelectedRow(row, flag);
},
addNewSdk() {
this.detailForm = {
type: 0,
style_id: (this.types[0] && this.types[0].id) || "",
example_name: "",
content: "",
};
this.$refs.detailDialog.show();
},
viewItem(item) {
this.detailForm = {
type: 1,
};
this.detailRequest(item.id);
this.$refs.viewDialog.show();
},
editItem(item) {
this.detailRequest(item.id);
this.$refs.detailDialog.show();
},
deleteItem(item) {
this.deleteDialogInfo.msg = `确认删除${item.example_name}吗?`;
this.deleteDialogInfo.submit = () => {
this.deleteRequest([item.id]);
};
this.$refs.deleteDialog.show();
},
getTimeText(time) {
return helper.dateStringTransform(time);
},
selectAction(values) {
if (this.saveSection) {
return;
}
let cleanPage = values.length === 0; // 是否清空当前页所有选中
let selection = [...this.selection];
if (cleanPage) {
selection = selection.filter((item) => {
return !this.listData.find((v) => {
return v.id === item.id;
});
});
} else {
selection.push(...values);
}
this.selection = selection;
},
detailEditContent() {
this.$router.push({
name: "technicalSupportSdkExampleDetail",
params: {
id: this.detailForm.id,
},
});
},
detailCancelAction() {
this.$refs.detailDialog.hide();
},
detailSubmitAction() {
this.$refs.detailForm.validate((valid) => {
if (valid) {
if (this.detailForm.type === 0) {
this.addRequest(
{
style_id: this.detailForm.style_id,
example_name: this.detailForm.example_name,
content: this.detailForm.content,
},
(data) => {
this.$router.push({
name: "technicalSupportSdkExampleDetail",
params: {
id: data.id,
},
});
}
);
} else {
this.editRequest(
{
id: this.detailForm.id,
style_id: this.detailForm.style_id,
example_name: this.detailForm.example_name,
content: this.detailForm.content,
},
() => {
this.refreshPage();
this.$refs.detailDialog.hide();
}
);
}
} else {
return false;
}
});
},
detailRequest(id) {
this.$http
.get("/apaas/support/sdk/example/detail", {
params: {
id: id,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.detailForm = {
...data.data,
type: 1,
};
}
});
},
deleteRequest(ids) {
this.$http
.delete("/apaas/support/sdk/example/delete", {
body: {
ids: ids,
},
})
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("删除成功");
this.selection = [];
this.refreshPage();
} else {
this.$message.error("删除失败");
}
})
.catch((error) => {
console.log(error);
this.$message.error("删除失败");
});
},
addRequest(data, callback) {
this.$http
.post("/apaas/support/sdk/example/create", data)
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("新增成功");
typeof callback === "function" && callback(data.data);
} else {
this.$message.error(data.errMsg || "新增失败");
}
})
.catch((error) => {
console.log(error);
this.$message.error("新增失败");
});
},
editRequest(data, callback) {
this.$http
.put("/apaas/support/sdk/example/put", data)
.then(({ data }) => {
if (data.success === 1) {
this.$message.success("修改成功");
typeof callback === "function" && callback();
} else {
this.$message.error(data.errMsg || "修改失败");
}
})
.catch((error) => {
console.log(error);
this.$message.error("修改失败");
});
},
}, },
}; };
</script> </script>
<style>
.list_container {
height: 100%;
}
.main_top_action {
display: flex;
justify-content: flex-start;
align-items: center;
}
.main_top_action .selected_text {
font-size: 14px;
color: #8890a7;
margin-left: 30px;
}
.main_top_action .selected_text > span {
font-weight: bold;
color: #242c43;
margin: 0 3px;
}
.main_top_action .clean_btn {
font-size: 14px;
line-height: 24px;
color: #2b4695;
text-decoration: underline;
cursor: pointer;
user-select: none;
margin-left: 30px;
}
.main_top_action .add_btn {
margin-left: auto;
}
.view_content {
height: 650px;
overflow: auto;
text-align: left;
}
.detail_notice {
display: inline-block;
margin: 10px auto;
background-color: #f4f7fc;
border-radius: 8px;
padding: 10px;
}
.detail_notice > p {
font-size: 12px;
line-height: 16px;
color: #58617a;
padding-left: 20px;
background-image: url("../../../../assets/imgs/ic_tishi.png");
background-repeat: no-repeat;
background-position: left center;
}
</style>
<style>
.sdk_manage_detail_dialog .el-dialog__body {
padding: 15px;
}
.sdk_manage_detail_dialog .el-dialog__footer {
display: none;
}
</style>
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
:title="detailForm.type === 0 ? '新增' : '修改'" :title="detailForm.type === 0 ? '新增' : '修改'"
> >
<div class="add_content" slot="content"> <div class="add_content" slot="content">
<el-form ref="addForm" :model="detailForm" :rules="detailFormRules"> <el-form ref="detailForm" :model="detailForm" :rules="detailFormRules">
<el-form-item <el-form-item
label="SDK类型" label="SDK类型"
prop="style_name" prop="style_name"
...@@ -103,10 +103,6 @@ ...@@ -103,10 +103,6 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="SDK包上传" prop="file_url"> <el-form-item label="SDK包上传" prop="file_url">
<!-- <el-input
v-model="detailForm.file_url"
placeholder="支持扩展名:.rar .zip"
></el-input> -->
<apass-upload <apass-upload
v-model="detailForm.file_url" v-model="detailForm.file_url"
tip="支持扩展名:.rar .zip" tip="支持扩展名:.rar .zip"
...@@ -282,11 +278,23 @@ export default { ...@@ -282,11 +278,23 @@ export default {
this.$refs.list.resetCurrentPage(); this.$refs.list.resetCurrentPage();
}, },
deleteSlection() { deleteSlection() {
this.deleteDialogInfo.msg = `确认删除要删除所选项吗?`; if (this.selection.length) {
this.deleteDialogInfo.submit = () => { let names = [];
this.deleteRequest(this.selection.map((row) => row.id)); let ids = [];
};
this.$refs.deleteDialog.show(); this.selection.forEach((item) => {
names.push(item.style_name);
ids.push(item.id);
});
this.deleteDialogInfo.msg = `您确认要删除${names.join("")}吗?`;
this.deleteDialogInfo.submit = () => {
this.deleteRequest(ids);
};
this.$refs.deleteDialog.show();
} else {
this.$message.warning("您尚未选中任何SDK类型");
}
}, },
clearSelection() { clearSelection() {
this.$refs.list.clearSelection(); this.$refs.list.clearSelection();
...@@ -307,58 +315,60 @@ export default { ...@@ -307,58 +315,60 @@ export default {
this.$refs.detailDialog.hide(); this.$refs.detailDialog.hide();
}, },
detailSubmitAction() { detailSubmitAction() {
if (this.detailForm.type === 0) { this.$refs.detailForm.validate((valid) => {
this.$http if (valid) {
.post("/apaas/support/sdk/styles/create", { if (this.detailForm.type === 0) {
style_name: this.detailForm.style_name, this.$http
version: this.detailForm.version, .post("/apaas/support/sdk/styles/create", {
file_url: this.detailForm.file_url, style_name: this.detailForm.style_name,
}) version: this.detailForm.version,
.then(({ data }) => { file_url: this.detailForm.file_url,
if (data.success === 1) { })
this.$message.success("新增成功"); .then(({ data }) => {
this.refreshPage(); if (data.success === 1) {
this.$refs.detailDialog.hide(); this.$message.success("新增成功");
} else { this.refreshPage();
this.$message.error("新增失败"); this.$refs.detailDialog.hide();
} } else {
}) this.$message.error("新增失败");
.catch((error) => { }
console.log(error); })
this.$message.error("新增失败"); .catch((error) => {
}); console.log(error);
} else { this.$message.error("新增失败");
this.$http });
.put("/apaas/support/sdk/styles/put", { } else {
id: this.detailForm.id, this.$http
style_name: this.detailForm.style_name, .put("/apaas/support/sdk/styles/put", {
version: this.detailForm.version, id: this.detailForm.id,
file_url: this.detailForm.file_url, style_name: this.detailForm.style_name,
}) version: this.detailForm.version,
.then(({ data }) => { file_url: this.detailForm.file_url,
if (data.success === 1) { })
this.$message.success("修改成功"); .then(({ data }) => {
this.refreshPage(); if (data.success === 1) {
this.$refs.detailDialog.hide(); this.$message.success("修改成功");
} else { this.refreshPage();
this.$message.error("修改失败"); this.$refs.detailDialog.hide();
} } else {
}) this.$message.error("修改失败");
.catch((error) => { }
console.log(error); })
this.$message.error("修改失败"); .catch((error) => {
}); console.log(error);
} this.$message.error("修改失败");
});
}
} else {
return false;
}
});
}, },
editItem(item) { editItem(item) {
this.detailForm = { this.detailForm = {
type: 1, type: 1,
id: item.id,
style_name: item.style_name,
version: item.version,
file_url: item.file_url,
}; };
/* this.$http this.$http
.get("/apaas/support/sdk/styles/detail", { .get("/apaas/support/sdk/styles/detail", {
params: { params: {
id: item.id, id: item.id,
...@@ -366,9 +376,12 @@ export default { ...@@ -366,9 +376,12 @@ export default {
}) })
.then(({ data }) => { .then(({ data }) => {
if (data.success === 1) { if (data.success === 1) {
this.detailForm = data.data; this.detailForm = {
...data.data,
type: 1,
};
} }
}); */ });
this.$refs.detailDialog.show(); this.$refs.detailDialog.show();
}, },
deleteItem(item) { deleteItem(item) {
......
...@@ -99,6 +99,7 @@ export default { ...@@ -99,6 +99,7 @@ export default {
.main_container { .main_container {
flex-grow: 1; flex-grow: 1;
height: calc(100% - 53px); height: calc(100% - 53px);
overflow: hidden;
} }
.download_action { .download_action {
background-color: #fff; background-color: #fff;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
title="SDK中心" title="SDK中心"
imgSrc="tool_ic_kaifawendang" imgSrc="tool_ic_kaifawendang"
:nav-list="navList" :nav-list="navList"
:title-path="navList[0] && navList[0].path" :title-path="activePath"
style="width: 250px;" style="width: 250px;"
></side-nav-bar> ></side-nav-bar>
<div class="main_container"> <div class="main_container">
...@@ -21,76 +21,52 @@ export default { ...@@ -21,76 +21,52 @@ export default {
sideNavBar, sideNavBar,
}, },
data: () => ({ data: () => ({
activePath: "",
navList: [], navList: [],
}), }),
methods: { methods: {
initNavList() { initNavList() {
let activePath = ""; this.$http.get("/apaas/support/sdk/menus").then(({ data }) => {
let baseUrl = "/technical_support/sdk"; if (data.success === 1) {
let data = [ let baseUrl = "/technical_support/sdk";
{ let menu = data.data || [];
name: "JavaScript SDK",
id: 1,
children: [
{
name: "在地图上添加图层",
id: 101,
},
{
name: "测测测自己创建测",
id: 102,
},
],
},
{
name: "Android SDK",
id: 2,
children: [
{
name: "Android",
id: 201,
},
{
name: "测测测自己创建测",
id: 202,
},
],
},
];
this.navList = data.map((item) => { this.navList = menu.map((item) => {
let children = item.children; let children = item.children || [];
let nav = {
name: item.name,
path: `${baseUrl}/${item.name}`,
};
if (children.length > 0) { let nav = {
nav.children = children.map((v) => { name: item.name,
let path = `${baseUrl}/${item.name}/${v.id}`; path: `${baseUrl}/${item.name}`,
};
if (children.length > 0) {
nav.children = children.map((v) => {
let path = `${baseUrl}/${item.name}/${v.id}`;
if (activePath === "") { if (this.activePath === "") {
activePath = path; this.activePath = path;
}
return {
name: v.name,
path: path,
};
});
nav.open = true;
} else {
nav.disabled = true;
} }
return { return nav;
name: v.name,
path: path,
};
}); });
nav.open = true;
} else {
nav.disabled = true;
}
return nav; if (this.activePath && this.$route.params.id === undefined) {
this.$router.push(this.activePath);
} else if (this.activePath === "") {
this.$message.error("您尚未创建任何SDK文档");
}
}
}); });
if (activePath && this.$route.params.id === undefined) {
this.$router.push(activePath);
} else if (activePath === "") {
this.$message.error("您尚未创建任何SDK文档");
}
}, },
}, },
mounted() { mounted() {
......
...@@ -269,23 +269,30 @@ ...@@ -269,23 +269,30 @@
<div v-if="orderDetail.order_type == 1"> <div v-if="orderDetail.order_type == 1">
<div> <div>
<span class="detail_service_specification_gg"> <span class="detail_service_specification_gg">
{{ orderDetail.spec_app == 0 ? "计次收费:" : "时长收费:" }} {{ orderDetail.spec_type == 0 ? "计次收费:" : "时长收费:" }}
</span>
<span class="detail_service_specification_val">
{{ orderDetail.single_money }}金币/
{{
orderDetail.spec_type == 1
? orderDetail.spec_count + ""
: ""
}}
</span> </span>
<span class="detail_service_specification_val"
>2000金币/月</span
>
</div> </div>
</div> </div>
<div v-else-if="orderDetail.order_type == 2"> <div v-else-if="orderDetail.order_type == 2">
<div> <div>
<span class="detail_service_specification_gg">{{ <span class="detail_service_specification_gg">
orderDetail.spec_app == 0 {{
? "申请获取应用镜像部署权限:" orderDetail.spec_app == 0
: "申请获取应用镜像开发权限:" ? "申请获取应用镜像部署权限:"
}}</span> : "申请获取应用镜像开发权限:"
<span class="detail_service_specification_val" }}
>2000金币/月</span </span>
> <span class="detail_service_specification_val">
{{ orderDetail.single_money }}金币/月
</span>
</div> </div>
</div> </div>
<div v-else-if="orderDetail.order_type == 3"> <div v-else-if="orderDetail.order_type == 3">
...@@ -314,20 +321,31 @@ ...@@ -314,20 +321,31 @@
<div> <div>
<span class="detail_service_money_title">总价:</span> <span class="detail_service_money_title">总价:</span>
<span class="detail_service_specification_val" <span class="detail_service_specification_val"
>12793017230金币</span >{{ orderDetail.total_money }}金币</span
>
<span
v-if="
orderDetail.apply_type == 1 &&
orderDetail.amounts_payable - orderDetail.total_money > 0
"
class="adhekadwn"
> >
<span v-if="1" class="adhekadwn">(升级费用:3000金币,原规格抵扣:1000金币)</span> (升级费用:
{{ orderDetail.amounts_payable }}金币,原规格抵扣:
{{ orderDetail.amounts_payable - orderDetail.total_money }}
金币)
</span>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
</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.app_desc }}</div> <div class="detail_app_scence">{{ orderDetail.business_area }}</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.app_func }}</div> <div class="detail_app_scence">{{ helper.dateStringTransform(orderDetail.app_create_date) }}</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>
......
...@@ -1146,8 +1146,12 @@ export default { ...@@ -1146,8 +1146,12 @@ export default {
let request = this.$refs.fwcs_zhfw_www.getTableData().concat(); let request = this.$refs.fwcs_zhfw_www.getTableData().concat();
let arr = []; let arr = [];
request.pop(); request.pop();
request.forEach(item => { request.forEach((item) => {
arr.push({key: item.requestEncoding, val: item.requestValue, field_type: "text"}) arr.push({
key: item.requestEncoding,
val: item.requestValue,
field_type: "text",
});
}); });
bodys = JSON.stringify(arr); bodys = JSON.stringify(arr);
} }
...@@ -1393,127 +1397,135 @@ export default { ...@@ -1393,127 +1397,135 @@ export default {
} }
}, },
registePt() { registePt() {
console.log(this.jkwds); this.$refs.form.validate((valid) => {
// this.$refs.form.validate((valid) => { if (valid) {
// if (valid) { if (this.activeBtn == 3 && this.jkwds.length == 0) {
// if (this.cover.length != 0) { this.$message.error("请上传接口文档");
// let contentType = ""; } else {
// if (this.activeBtn == 1 && !this.is_portal) { if (this.cover.length != 0) {
// this.addPortalItem(); let contentType = "";
// } else { if (this.activeBtn == 1 && !this.is_portal) {
// if (this.activeBtn == 0 || this.activeBtn == 3) { this.addPortalItem();
// contentType = this.sjfwQqt; } else {
// } else if (this.activeBtn == 4) { if (this.activeBtn == 0 || this.activeBtn == 3) {
// if (this.activeZh == 1) { contentType = this.sjfwQqt;
// contentType = this.zhfwQqt; } else if (this.activeBtn == 4) {
// } if (this.activeZh == 1) {
// } contentType = this.zhfwQqt;
// let query = { }
// name: this.form.name, }
// sectors: this.form.area, let query = {
// organization: this.form.origin, name: this.form.name,
// cover: this.cover[0], sectors: this.form.area,
// openness: this.form.resource, organization: this.form.origin,
// descript: this.form.desc, cover: this.cover[0],
// data_service_type1: this.btnList[this.activeBtn].id, openness: this.form.resource,
// data_service_type2: descript: this.form.desc,
// this.activeBtn == 0 data_service_type1: this.btnList[this.activeBtn].id,
// ? 12 data_service_type2:
// : this.activeBtn == 1 this.activeBtn == 0
// ? this.skfwQqt ? 12
// : this.activeBtn == 4 : this.activeBtn == 1
// ? this.zhyyVal ? this.skfwQqt
// : 0, : this.activeBtn == 4
// portal_id: this.portal_id, ? this.zhyyVal
// encode_method: this.form.code, : 0,
// doc_file: this.jkwds.length != 0 ? this.jkwds[0] : "", portal_id: this.portal_id,
// urls: [ encode_method: this.form.code,
// { doc_file: this.jkwds.length != 0 ? this.jkwds[0] : "",
// name: "", urls: [
// response_type: {
// this.activeBtn == 3 ? this.gz_fhsjgs : "JSON", name: "",
// req_auth_mthod: 0, response_type:
// req_auth_token: this.tokenVal, this.activeBtn == 3 ? this.gz_fhsjgs : "JSON",
// method: this.select, req_auth_mthod: 0,
// url: this.serviceUrl, req_auth_token: this.tokenVal,
// request_fields: method: this.select,
// this.dataType == "body" url: this.serviceUrl,
// ? this.request_fields request_fields:
// : this.body_fields, this.dataType == "body"
// request_query_fields: ? this.request_fields
// this.dataType == "param" : this.body_fields,
// ? this.request_fields request_query_fields:
// : this.param_fields, this.dataType == "param"
// response_fields: this.response_fields, ? this.request_fields
// content_type: contentType, : this.param_fields,
// }, response_fields: this.response_fields,
// ], content_type: contentType,
// }; },
// this.$api.workbench.serviceAdd(query).then((response) => { ],
// if (response.data.success == 1) { };
// this.$message.success("服务注册成功"); this.$api.workbench.serviceAdd(query).then((response) => {
// this.$router.push("/fwgl/" + this.$store.getters.level); if (response.data.success == 1) {
// } else { this.$message.success("服务注册成功");
// console.log(response.data.errMsg); this.$router.push("/fwgl/" + this.$store.getters.level);
// this.$message.error(response.data.errMsg); } else {
// } console.log(response.data.errMsg);
// }); this.$message.error(response.data.errMsg);
// } }
// } else { });
// this.$message.error("请上传服务封面"); }
// } } else {
// } else { this.$message.error("请上传服务封面");
// this.$message.error("请完善服务基本信息"); }
// } }
// }); } else {
this.$message.error("请完善服务基本信息");
}
});
}, },
registeOne() { registeOne() {
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
if (valid) { if (valid) {
if (this.cover.length != 0) { if (this.cover.length != 0) {
let urls = []; if (this.jkwds.length == 0) {
this.liucheng_list.forEach((item) => { this.$message.error("请上传接口文档");
urls.push({ } else {
name: item.one_input, let urls = [];
response_type: "JSON", this.liucheng_list.forEach((item) => {
req_auth_mthod: 0, urls.push({
req_auth_token: item.tokenVal, name: item.one_input,
method: item.select, response_type: "JSON",
url: item.serviceUrl, req_auth_mthod: 0,
request_fields: req_auth_token: item.tokenVal,
item.dataType == "body" method: item.select,
? item.request_fields url: item.serviceUrl,
: item.body_fields, request_fields:
request_query_fields: item.dataType == "body"
item.dataType == "param" ? item.request_fields
? item.request_fields : item.body_fields,
: item.param_fields, request_query_fields:
response_fields: item.response_fields, item.dataType == "param"
content_type: "JSON", ? item.request_fields
: item.param_fields,
response_fields: item.response_fields,
content_type: "JSON",
});
}); });
}); let query = {
let query = { name: this.form.name,
name: this.form.name, sectors: this.form.area,
sectors: this.form.area, organization: this.form.origin,
organization: this.form.origin, cover: this.cover[0],
cover: this.cover[0], openness: this.form.resource,
openness: this.form.resource, descript: this.form.desc,
descript: this.form.desc, data_service_type1: this.btnList[this.activeBtn].id,
data_service_type1: this.btnList[this.activeBtn].id, data_service_type2: 24,
data_service_type2: 24, portal_id: this.portal_id,
portal_id: this.portal_id, encode_method: this.form.code,
encode_method: this.form.code, urls: urls,
urls: urls, doc_file: this.jkwds.length != 0 ? this.jkwds[0] : "",
}; };
this.$api.workbench.serviceAdd(query).then((response) => { this.$api.workbench.serviceAdd(query).then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.$message.success("服务注册成功"); this.$message.success("服务注册成功");
this.$router.push("/fwgl/" + this.$store.getters.level); this.$router.push("/fwgl/" + this.$store.getters.level);
} else { } else {
console.log(response.data.errMsg); console.log(response.data.errMsg);
this.$message.error(response.data.errMsg); this.$message.error(response.data.errMsg);
} }
}); });
}
} else { } else {
this.$message.error("请上传服务封面"); this.$message.error("请上传服务封面");
} }
......
...@@ -46,6 +46,9 @@ businessArea=${params.businessArea}&developable=${params.developable}&orgSource= ...@@ -46,6 +46,9 @@ businessArea=${params.businessArea}&developable=${params.developable}&orgSource=
checkNameSpaceCouldUse(params) { checkNameSpaceCouldUse(params) {
return axios.get(`/apaas/service/v3/resource/apply/checkNs?namespace=${params.id}`) return axios.get(`/apaas/service/v3/resource/apply/checkNs?namespace=${params.id}`)
}, },
getSpecifications() {
return axios.get(``)
},
// shopping cart // shopping cart
addShoppingCart(params) { addShoppingCart(params) {
...@@ -77,7 +80,12 @@ businessArea=${params.businessArea}&developable=${params.developable}&orgSource= ...@@ -77,7 +80,12 @@ businessArea=${params.businessArea}&developable=${params.developable}&orgSource=
}, },
getGeneralOverview() { getGeneralOverview() {
return axios.get(`/apaas/service/v3/statistics/other/index`); return axios.get(`/apaas/service/v3/statistics/other/index`);
} },
// app
getExtendedInfo(params) {
return axios.get(`/apaas/hubApi/market/extendedInfo?id=${params.id}`);
},
} }
export default serviceShop; export default serviceShop;
...@@ -257,6 +257,14 @@ export default new Router({ ...@@ -257,6 +257,14 @@ export default new Router({
"@/pages/technical-support/sdk-manage/example/index" "@/pages/technical-support/sdk-manage/example/index"
), ),
}, // SDK示例管理 }, // SDK示例管理
{
path: "/technical_support/sdk_manage/example/:id",
name: "technicalSupportSdkExampleDetail",
component: () =>
import(
"@/pages/technical-support/sdk-manage/example/detail"
),
}, // SDK示例详情
], ],
}, // SDK管理 }, // SDK管理
], ],
......
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