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

Merge branch 'dev'

parents 6c19c684 191d031d
...@@ -87,4 +87,3 @@ pipeline: ...@@ -87,4 +87,3 @@ pipeline:
- source: REGISTRY_PASSWORD_ALIYUN - source: REGISTRY_PASSWORD_ALIYUN
target: REGISTRY_PASSWORD target: REGISTRY_PASSWORD
branches: [master,dev] branches: [master,dev]
...@@ -9,6 +9,7 @@ package-lock.json ...@@ -9,6 +9,7 @@ package-lock.json
# Editor directories and files # Editor directories and files
.idea .idea
.vscode .vscode
.VSCodeCounter
*.suo *.suo
*.ntvs* *.ntvs*
*.njsproj *.njsproj
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" /> <meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>Beagle aPaaS Platform v3.0</title> <title>Beagle aPaaS Platform v3.0</title>
<link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico" /> <!-- <link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico" /> -->
<style> <style>
body{ body{
background-color: #f6f7fb; background-color: #f6f7fb;
......
...@@ -261,15 +261,15 @@ div { ...@@ -261,15 +261,15 @@ div {
} }
.el-tabs__item { .el-tabs__item {
font-size: 16px; font-size: 14px;
color: #8890a7; color: #8890a7;
line-height: 24px !important; line-height: 14px !important;
font-weight: bold; font-weight: bold;
} }
.el-tabs__nav-scroll .el-tabs__item { .el-tabs__nav-scroll .el-tabs__item {
line-height: 38px !important; line-height: 14px !important;
height: 44px !important; height: 38px !important;
} }
.el-tabs__item:hover { .el-tabs__item:hover {
...@@ -499,7 +499,7 @@ border-radius:8px; ...@@ -499,7 +499,7 @@ border-radius:8px;
margin-left: 35px; margin-left: 35px;
} */ } */
.el-input__inner { .el-input__inner {
border-radius: 8px; border-radius: 6px;
} }
.el-input-group__append, .el-input-group__append,
......
...@@ -8,6 +8,7 @@ export const lang = { ...@@ -8,6 +8,7 @@ export const lang = {
profile: "个人档案", profile: "个人档案",
message_center: "消息中心", message_center: "消息中心",
my_questions_and_answers: "我的问答", my_questions_and_answers: "我的问答",
my_coin: "我的金币",
// unit of purchase duration // unit of purchase duration
by_year: "按年", by_year: "按年",
......
src/assets/imgs/icon_huoqu.png

1.17 KB | W: | H:

src/assets/imgs/icon_huoqu.png

1.03 KB | W: | H:

src/assets/imgs/icon_huoqu.png
src/assets/imgs/icon_huoqu.png
src/assets/imgs/icon_huoqu.png
src/assets/imgs/icon_huoqu.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/imgs/icon_liulan.png

1.24 KB | W: | H:

src/assets/imgs/icon_liulan.png

1.08 KB | W: | H:

src/assets/imgs/icon_liulan.png
src/assets/imgs/icon_liulan.png
src/assets/imgs/icon_liulan.png
src/assets/imgs/icon_liulan.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -84,7 +84,6 @@ ...@@ -84,7 +84,6 @@
:header="listHeader" :header="listHeader"
:data="listData" :data="listData"
:padding-left="listPaddingLeft" :padding-left="listPaddingLeft"
:select="listSelect"
@select="selectAction" @select="selectAction"
></list-table> ></list-table>
</div> </div>
...@@ -149,19 +148,21 @@ export default { ...@@ -149,19 +148,21 @@ export default {
type: String, type: String,
default: () => "请输入关键字", default: () => "请输入关键字",
}, },
listSelect: { pageSize: {
type: Boolean, type: Number,
default: false, default: () => 10,
},
pageSizes: {
type: Array,
default: () => [10, 20, 50],
}, },
}, },
data: () => ({ data: () => ({
showListFilter: false, showListFilter: false,
filter: {}, filter: {},
searchValue: "", searchValue: "",
pageSize: 10,
currentPage: 1, currentPage: 1,
timer: null, timer: null,
pageSizes: [10, 20, 50],
selectFilter: [], selectFilter: [],
}), }),
watch: { watch: {
...@@ -241,6 +242,7 @@ export default { ...@@ -241,6 +242,7 @@ export default {
}, },
}, },
mounted() { mounted() {
console.log(this.pageSize);
this.initOtherFilter(); this.initOtherFilter();
this.listAction(); this.listAction();
}, },
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
:file-list="fileList" :file-list="fileList"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:on-success="uploadSuccess" :on-success="uploadSuccess"
:on-remove="uploadRemove"
> >
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text"> <div class="el-upload__text">
...@@ -83,8 +84,14 @@ export default { ...@@ -83,8 +84,14 @@ export default {
}, },
uploadSuccess({ data }) { uploadSuccess({ data }) {
this.$emit("change", data); this.$emit("change", data);
this.removePreFile();
// 替换文件后要把旧文件删除掉 },
uploadRemove() {
this.preUrl = this.url;
this.$emit("change", "");
this.removePreFile();
},
removePreFile() {
if (this.preUrl) { if (this.preUrl) {
this.$http this.$http
.delete("/apaas/static/file/delete", { .delete("/apaas/static/file/delete", {
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<p class="app_card-text" v-if="cardType == 1"> <p class="app_card-text" v-if="cardType == 1">
<span> <span>
<i class="el-icon-time"></i> <i class="el-icon-time"></i>
<span>上线时间:</span> <span>部署时间:</span>
</span> </span>
<span class="text_clip" v-text="getTimeText(data.created || '')"></span> <span class="text_clip" v-text="getTimeText(data.created || '')"></span>
</p> </p>
...@@ -92,7 +92,7 @@ export default { ...@@ -92,7 +92,7 @@ export default {
.app_card > .remove_btn { .app_card > .remove_btn {
position: absolute; position: absolute;
top: 10px; top: 10px;
right: 10px; right: 20px;
font-size: 20px; font-size: 20px;
color: #8890a7; color: #8890a7;
cursor: pointer; cursor: pointer;
......
<template> <template>
<div class="card" :style="flag?{borderRadius: '0px 12px 0px 0px'}:{}"> <div class="card" :style="flag?{borderRadius: '0px 12px 0px 0px'}:{}">
<div class="card_title"><div class="circle"></div>{{title}}</div> <div class="card_title" :style="{backgroundColor:bgc}"><div class="circle"></div>{{title}}</div>
<div class="card_contain"> <div class="card_contain">
<slot></slot> <slot></slot>
</div> </div>
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<script> <script>
export default { export default {
props: ['title','flag'], props: ['title','flag','bgc'],
components: { components: {
}, },
......
...@@ -89,23 +89,23 @@ export default { ...@@ -89,23 +89,23 @@ export default {
level = 1; level = 1;
id = `nav_${pre_h1_index}_${time}`; id = `nav_${pre_h1_index}_${time}`;
newTitle = title.replace(/<h1/g, `<h1 id="${id}"`); newTitle = title.replace("<h1", `<h1 id="${id}"`);
} else if (title.match(/<h2(([\s\S])*?)<\/h2>/g)) { } else if (title.match(/<h2(([\s\S])*?)<\/h2>/g)) {
pre_h2_index++; pre_h2_index++;
pre_h3_index = 0; pre_h3_index = 0;
level = 2; level = 2;
id = `nav_${pre_h1_index}_${pre_h2_index}_${time}`; id = `nav_${pre_h1_index}_${pre_h2_index}_${time}`;
newTitle = title.replace(/<h2/g, `<h2 id="${id}"`); newTitle = title.replace("<h2", `<h2 id="${id}"`);
} else if (title.match(/<h3(([\s\S])*?)<\/h3>/g)) { } else if (title.match(/<h3(([\s\S])*?)<\/h3>/g)) {
pre_h3_index++; pre_h3_index++;
level = 3; level = 3;
id = `nav_${pre_h1_index}_${pre_h2_index}_${pre_h3_index}_${time}`; id = `nav_${pre_h1_index}_${pre_h2_index}_${pre_h3_index}_${time}`;
newTitle = title.replace(/<h3/g, `<h3 id="${id}"`); newTitle = title.replace("<h3", `<h3 id="${id}"`);
} }
content = content.replace(new RegExp(title), newTitle); content = content.replace(title, newTitle);
return { return {
level, level,
...@@ -127,6 +127,10 @@ export default { ...@@ -127,6 +127,10 @@ export default {
this.curNav = item.id; this.curNav = item.id;
}, },
setScroll(el, parentEl) { setScroll(el, parentEl) {
if (!el || !parentEl) {
return;
}
let actualTop = el.offsetTop; let actualTop = el.offsetTop;
let current = el.offsetParent; let current = el.offsetParent;
...@@ -201,8 +205,8 @@ export default { ...@@ -201,8 +205,8 @@ export default {
font-size: 14px; font-size: 14px;
line-height: 24px; line-height: 24px;
color: #8890a7; color: #8890a7;
padding-left: 20px; padding-left: 18px;
background-image: url("/../assets/imgs/shop_ic_updatetime.png"); background-image: url("../assets/imgs/shop_ic_updatetime.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: left center; background-position: left center;
} }
......
<template> <template>
<div class="block_radius"> <div class="block_radius" :style="'border-radius:' + borRadius + 'px;padding:' + paddingNum + 'px;'">
<div v-if="show_header" class="block_header"> <div v-if="show_header" class="block_header">
<div class="block_header_title">{{ title }}</div> <div class="block_header_title">{{ title }}</div>
<div class="block_header_button_group"> <div class="block_header_button_group">
...@@ -32,6 +32,14 @@ export default { ...@@ -32,6 +32,14 @@ export default {
title: { title: {
type: String, type: String,
default: "" default: ""
},
borRadius: {
type: Number,
default: 10,
},
paddingNum: {
type: Number,
default: 20,
} }
}, },
components: {}, components: {},
...@@ -56,7 +64,6 @@ export default { ...@@ -56,7 +64,6 @@ export default {
.block_radius { .block_radius {
background-color: #fff; background-color: #fff;
box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05); box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05);
border-radius: 10px;
padding: 20px; padding: 20px;
margin-bottom: 20px; margin-bottom: 20px;
} }
......
...@@ -93,10 +93,10 @@ a { ...@@ -93,10 +93,10 @@ a {
text-align: center; text-align: center;
color: #e6ebfe; color: #e6ebfe;
background-color: #515fe7; background-color: #515fe7;
border-radius: 8px; border-radius: 6px;
display: inline-block; display: inline-block;
font-size: 14px; font-size: 14px;
margin-left: 20px; margin-left: 8px;
cursor: pointer; cursor: pointer;
} }
</style> </style>
<template> <template>
<div class="menu"> <div class="menu">
<img src="../assets/imgs/img_logo.png" alt class="logo" /> <img src="../assets/imgs/nav-logo.png" alt class="logo" />
<div <div
style="float: right; cursor: pointer; position: relative" style="float: right; cursor: pointer; position: relative"
class="user_hover" class="user_hover"
...@@ -320,7 +320,7 @@ export default { ...@@ -320,7 +320,7 @@ export default {
} }
.logo { .logo {
float: left; float: left;
margin: 15px 0 0 40px; margin: 22px 0 0 40px;
cursor: pointer; cursor: pointer;
} }
.user { .user {
......
...@@ -72,9 +72,9 @@ ...@@ -72,9 +72,9 @@
<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> <div>
{{ cellItem.spec_type == 1 ? "计次收费" : "时长收费" }} {{ cellItem.spcs_type == 1 ? "计次收费" : "时长收费" }}
{{ cellItem.single_money }}金币/ {{ cellItem.single_money }}金币/
{{ cellItem.spec_type == 1 ? cellItem.spec_count + "" : "" }} {{ cellItem.spcs_type == 1 ? cellItem.spcs_count + "" : "" }}
</div> </div>
</div> </div>
<div v-else-if="cellItem.order_type == 2"> <div v-else-if="cellItem.order_type == 2">
...@@ -192,6 +192,7 @@ ...@@ -192,6 +192,7 @@
<div v-else-if="cellItem.pay_status == -1">订单已取消</div> <div v-else-if="cellItem.pay_status == -1">订单已取消</div>
<el-popover <el-popover
v-if=" v-if="
cellItem.order_type != 3 &&
cellItem.approval_second_level == 1 && cellItem.approval_second_level == 1 &&
cellItem.pay_status != -1 && cellItem.pay_status != -1 &&
cellItem.is_estimated == 0 cellItem.is_estimated == 0
...@@ -360,7 +361,7 @@ export default { ...@@ -360,7 +361,7 @@ export default {
}, },
methods: { methods: {
addEvaluation() { addEvaluation() {
if (this.textarea == "" && this.serviceRate == null) { if (this.textarea == "" || this.serviceRate == null) {
this.$message({ this.$message({
message: "请先完善评价内容", message: "请先完善评价内容",
type: "error", type: "error",
...@@ -439,7 +440,7 @@ export default { ...@@ -439,7 +440,7 @@ export default {
if (this.cellItem.order_type == 1) { if (this.cellItem.order_type == 1) {
query = { query = {
service_id: parseFloat(this.cellItem.service_id), service_id: parseFloat(this.cellItem.service_id),
spec_id: this.cellItem.svc_spec_id, spcs_id: this.cellItem.spcs_id,
duration: this.cellItem.duration, duration: this.cellItem.duration,
duration_unit: this.cellItem.duration_unit, duration_unit: this.cellItem.duration_unit,
}; };
......
...@@ -41,16 +41,16 @@ export default { ...@@ -41,16 +41,16 @@ export default {
this.$emit("delete-action", item); this.$emit("delete-action", item);
}, },
pageResize() { pageResize() {
let listWidth = this.$refs.container.clientWidth; // let listWidth = this.$refs.container.clientWidth;
this.rowNum = Math.floor(listWidth / 310); // this.rowNum = Math.floor(listWidth / 310);
}, },
}, },
mounted() { mounted() {
this.pageResize(); // this.pageResize();
window.addEventListener("resize", this.pageResize); // window.addEventListener("resize", this.pageResize);
}, },
destroyed() { destroyed() {
window.removeEventListener("resize", this.pageResize); // window.removeEventListener("resize", this.pageResize);
}, },
}; };
</script> </script>
......
...@@ -69,8 +69,9 @@ export default { ...@@ -69,8 +69,9 @@ export default {
}, },
watch: { watch: {
"data.checked"(val) { "data.checked"(val) {
// debugger
this.checked = val===1; this.checked = val===1;
} },
}, },
computed: {}, computed: {},
created() { created() {
......
...@@ -306,7 +306,8 @@ export default { ...@@ -306,7 +306,8 @@ export default {
.info_detail p { .info_detail p {
color: #8890a7; color: #8890a7;
} }
.info_detail span { .info_detail span,
.info_detail a {
color: #242c43; color: #242c43;
font-weight: 600; font-weight: 600;
margin-right: 48px; margin-right: 48px;
......
<template> <template>
<div class="service_info apaas_button" v-if="data"> <BlockRadius
:borRadius="8"
:paddingNum="32"
class="service_info apaas_button"
v-if="data"
>
<div class="main_container">
<div class="main_container-left">
<img :src="data.logo" width="100%" />
</div>
<div class="main_container-right">
<div class="service_title"> <div class="service_title">
<span class="service_name" v-text="data.app_name"></span> <span class="service_name" v-text="data.app_name"></span>
<span class="service_access_info"> <span class="service_access_info">
<img :src="require('@/assets/imgs/icon_liulan.png')" /> <img :src="require('@/assets/imgs/icon_liulan.png')" />
<span v-text="'浏览次数:' + data.view_count"></span> <span v-text="data.view_count + '次浏览'"></span>
</span> </span>
<span class="service_access_info"> <span class="service_access_info">
<img :src="require('@/assets/imgs/icon_huoqu.png')" /> <img :src="require('@/assets/imgs/icon_huoqu.png')" />
<span v-text="'部署次数:' + data.deploy_times"></span> <span v-text="'本月' + data.apply_times + '次获取'"></span>
</span> </span>
</div> </div>
<div class="main_container"> <p class="des_p">{{ data.yyjj }}</p>
<div class="main_container-left"> <div class="jiage_d">
<img :src="data.logo" width="100%" />
</div>
<div class="main_container-right">
<ul class="service_base_info">
<li>
<span>应用开发者:</span>
<span v-text="data.username"> </span>
</li>
<li>
<span>应用类型:</span>
<span v-html="data.type_name"></span>
</li>
<li>
<span>业务领域:</span>
<span v-text="data.ywly_name"></span>
</li>
<li>
<span>上线时间:</span>
<span v-text="data.create_date"></span>
</li>
</ul>
<div class="and_wid">
<div class="dbn_wkdn"> <div class="dbn_wkdn">
&nbsp;&nbsp;格: &nbsp;&nbsp;格:
<span class="ndwa_indowa"> {{ data.price * duration }} </span> <span class="ndwa_indowa"> {{ data.price * duration }} </span>
...@@ -48,38 +36,44 @@ ...@@ -48,38 +36,44 @@
</div> </div>
</div> </div>
<div class="commodity_information"> <div class="commodity_information">
<span>&emsp;&emsp;格:</span> <span class="guige_title">&emsp;&emsp;格:</span>
<div class="btn_container_ddaw"> <div class="spec_btn_act">申请获取应用镜像部署权限</div>
{{ data.price }} 金币/月
</div> </div>
<div class="spec_des">
{{ `申请获取应用镜像部署权限,每月${data.price}金币。` }}
</div> </div>
<div class="commodity_information"> <div class="commodity_information">
<span>购买时长:</span> <span class="guige_title">购买时长:</span>
<div class="btn_container"> <div 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>
</div> </div>
<div class="commodity_action"> <div class="commodity_action">
<el-button type="warning" plain @click="addToCart"> <el-button class="service_now_buy" @click="applyImmediately">
加入购物车
</el-button>
<el-button type="warning" @click="applyImmediately">
立即申请 立即申请
</el-button> </el-button>
<el-button class="service_add_cart" @click="addToCart">
加入购物车
</el-button>
</div> </div>
</div> </div>
</div> </div>
</div> </BlockRadius>
</template> </template>
<script> <script>
import BlockRadius from "@/components/general/block-radius";
export default { export default {
components: {
BlockRadius,
},
props: { props: {
data: { datas: {
type: Object, type: Object,
default: () => null, default: () => null,
}, },
...@@ -97,7 +91,18 @@ export default { ...@@ -97,7 +91,18 @@ export default {
], ],
specificationID: 1, specificationID: 1,
duration: 1, duration: 1,
data: {},
}), }),
watch: {
datas: {
handler(val) {
this.data = val;
console.log(this.data);
},
deep: true,
immediate: true,
},
},
computed: { computed: {
actionDisabled() { actionDisabled() {
return this.specifications.length == 0; return this.specifications.length == 0;
...@@ -159,27 +164,24 @@ export default { ...@@ -159,27 +164,24 @@ export default {
</script> </script>
<style scoped> <style scoped>
.service_info {
padding: 35px 20px 40px;
background-color: #fff;
margin-bottom: 20px;
}
.main_container { .main_container {
display: flex; display: flex;
justify-content: flex-start; justify-content: space-between;
align-items: flex-start; align-items: flex-start;
margin-top: 25px; margin: 8px 8px 0;
} }
.main_container-left { .main_container-left {
width: 270px; width: 200px;
padding: 3px; height: 200px;
background-color: #f9fafc; padding: 2px;
margin-right: 30px; background-color: #f6f7fb;
font-size: 0; font-size: 0;
position: relative; position: relative;
} }
.main_container-left img { .main_container-left img {
width: 100%; width: 100%;
height: 100%;
border-radius: 6px;
} }
.main_container-left > .map_view { .main_container-left > .map_view {
position: absolute; position: absolute;
...@@ -187,7 +189,7 @@ export default { ...@@ -187,7 +189,7 @@ export default {
bottom: 3px; bottom: 3px;
} }
.main_container-right { .main_container-right {
flex-grow: 1; width: 896px;
} }
.service_title { .service_title {
display: flex; display: flex;
...@@ -199,8 +201,21 @@ export default { ...@@ -199,8 +201,21 @@ export default {
font-weight: bold; font-weight: bold;
color: #0d1847; color: #0d1847;
line-height: 36px; line-height: 36px;
flex-grow: 1; margin-right: auto;
} }
.service_title > .service_type {
flex-shrink: 0;
height: 24px;
padding: 0 12px;
border: 1px solid #5362ee;
background-color: #5362ee;
border-radius: 4px;
font-size: 12px;
color: #fff;
line-height: 22px;
margin-left: 10px;
}
.service_title > .service_access_info { .service_title > .service_access_info {
flex-shrink: 0; flex-shrink: 0;
font-size: 14px; font-size: 14px;
...@@ -212,11 +227,11 @@ export default { ...@@ -212,11 +227,11 @@ export default {
vertical-align: middle; vertical-align: middle;
} }
.service_title > .service_access_info > img { .service_title > .service_access_info > img {
width: 19px; width: 12px;
margin-right: 5px; margin-right: 5px;
} }
.service_base_info { .service_base_info {
padding: 25px 20px; padding: 18px;
background-color: #f9fafc; background-color: #f9fafc;
border-radius: 8px; border-radius: 8px;
} }
...@@ -233,26 +248,27 @@ export default { ...@@ -233,26 +248,27 @@ export default {
margin-top: 18px; margin-top: 18px;
} }
.service_base_info > li > span:first-child, .service_base_info > li > span:first-child,
.commodity_information > span:first-child { .guige_title {
flex-shrink: 0;
white-space: nowrap;
color: #8890a7; color: #8890a7;
width: 100px;
margin-right: 20px;
text-align: right;
} }
.service_base_info > li > span:nth-child(2) { .service_base_info > li > span:nth-child(2) {
color: #242c43; color: #242c43;
} }
.commodity_information { .commodity_information {
margin-top: 30px; margin-top: 16px;
} }
.commodity_information > span:nth-child(2) { .commodity_information > span:nth-child(2) {
color: #58617a; color: #58617a;
} }
.commodity_information > span:first-child { .commodity_information > span:first-child {
line-height: 40px; line-height: 36px;
} }
.commodity_information > .commodity_text { .commodity_information > .commodity_text {
flex-grow: 1; flex-grow: 1;
padding: 13px 18px; padding: 8px 18px;
background-color: #f9fafc; background-color: #f9fafc;
border-radius: 5px; border-radius: 5px;
} }
...@@ -266,27 +282,40 @@ export default { ...@@ -266,27 +282,40 @@ 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 { .spec_btn {
line-height: 40px; height: 36px;
margin-left: 5px; padding: 7px 18px 6px;
} background-color: #ffffff;
.commodity_action { border-radius: 6px;
margin-top: 60px; border: solid 1px #dcdfe6;
text-align: right; font-size: 14px;
line-height: 20px;
color: #58617a;
margin-right: 8px;
margin-bottom: 8px;
cursor: pointer;
} }
.commodity_action > .el-button { .spec_btn_act {
width: 220px; height: 36px;
margin-left: 20px; padding: 7px 18px 6px;
font-size: 16px; background-color: #515fe7;
border-radius: 6px;
border: solid 1px #515fe7;
font-size: 14px;
line-height: 20px;
color: #f4f7fc;
margin-right: 8px;
margin-bottom: 8px;
cursor: pointer;
}
.spec_btn:hover {
background-color: #f2f5fe;
border: solid 1px #c3caf8;
color: #58617a;
} }
.and_wid { .commodity_action {
background-color: #f9fafc; margin-top: 16px;
border-radius: 8px; margin-left: 120px;
padding: 20px;
display: flex;
justify-content: space-between;
margin-top: 20px;
align-items: center;
} }
.dbn_wkdn { .dbn_wkdn {
color: #8890a7; color: #8890a7;
...@@ -311,6 +340,7 @@ export default { ...@@ -311,6 +340,7 @@ export default {
color: #ea7d19; color: #ea7d19;
font-size: 18px; font-size: 18px;
position: relative; position: relative;
font-weight: bold;
} }
.dwin_diwa { .dwin_diwa {
width: 14px; width: 14px;
...@@ -328,6 +358,82 @@ export default { ...@@ -328,6 +358,82 @@ export default {
top: 5px; top: 5px;
left: -35px; left: -35px;
} }
.service_add_cart {
width: 192px;
height: 40px;
background-color: #fcefd6;
border-radius: 6px;
border: solid 1px #fac266;
color: #e56600;
font-size: 16px;
}
.service_now_buy {
width: 192px;
height: 40px;
background-color: #e56600;
border: solid 1px #e56600;
border-radius: 6px;
color: #fcefd6;
font-size: 16px;
margin-right: 24px;
}
.tags {
display: inline-block;
margin-left: 8px;
height: 24px;
padding: 0 12px;
font-size: 12px;
font-weight: 500;
line-height: 24px;
border-radius: 4px;
position: relative;
top: 1px;
flex-shrink: 0;
margin-right: auto;
}
.map_service {
background-color: #626de9;
border: solid 1px #626de9;
color: #fff;
}
.shared {
background-color: #e7fdfc;
border: solid 1px #8bd6d0;
color: #25bdb1;
}
.restricted {
background-color: #fffee8;
border: solid 1px #e4c884;
color: #ef9433;
}
.sensitive {
background-color: #ffefef;
border: solid 1px #d7a4a9;
color: #e15260;
}
.des_p {
color: #8890a7;
font-size: 14px;
margin-top: 8px;
margin-bottom: 12px;
}
.jiage_d {
background: url("~@/assets/imgs/img_bg_jiage.png");
width: 896px;
height: 72px;
margin-bottom: 16px;
padding: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.spec_des {
margin-left: 128px;
color: rgba(88, 97, 122, 0.5);
font-size: 14px;
line-height: 14px;
margin-top: 8px;
}
</style> </style>
<style> <style>
...@@ -355,4 +461,7 @@ export default { ...@@ -355,4 +461,7 @@ export default {
.service_info .el-input-number .el-input__inner { .service_info .el-input-number .el-input__inner {
border-width: 2px; border-width: 2px;
} }
.service_info .el-input-number {
width: 128px;
}
</style> </style>
<template>
<div class="com_cell">
<div class="com_cell_up" @click="goUrl(cellData.app_id)">
<div class="com_cell_up_img_init">
<img :src="cellData.logo" class="com_cell_up_img" />
</div>
<div class="com_cell_up_right">
<div class="up_title">
<div class="up_tit_name_in">
<span class="up_tit_name" :title="cellData.app_name + ' ( V' + cellData.version + ' )'">
{{ cellData.app_name }} ( V{{ cellData.version }} )
</span>
</div>
</div>
<div class="up_rate">
<el-rate
v-model="cellData.score"
disabled
show-score
text-color="#ea7d19"
score-template="{value}"
></el-rate>
<p class="get_num">
获取次数:
<span class="com_cell_right_time">
{{ cellData.get_times }}
</span>
<span class="ci"></span>
</p>
</div>
</div>
<div class="get_detail">
<img src="@/assets/imgs/shop_ic_enter.png" />
</div>
</div>
<div class="com_cell_down">
<p class="com_detail">
{{ cellData.yyjj }}
</p>
<el-row :gutter="16">
<el-col :span="14" class="com_other">
<span class="name_title">应用类型:</span>
{{ cellData.type_name }}
&nbsp;&nbsp;{{ cellData.data_service_type2_name }} &nbsp;&nbsp;{{
cellData.data_service_type3_name
}}
</el-col>
<el-col :span="10" class="com_other">
<span class="name_title">业务领域:</span>
{{ cellData.area_name }}
</el-col>
<el-col :span="14" class="com_other">
<span class="name_title">上线时间:</span>
{{ helper.dateStringTransform(cellData.create_date) }}
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import helper from "@/services/helper.js";
// if you meet date which like 2020-06-05T00:00:00+08:00, use helper.dateStringTransform()
export default {
components: {},
props: {
url: { type: String, default: "" },
cellData: { type: Object, default: {} },
},
data: () => ({ helper: helper }),
computed: {},
watch: {},
methods: {
goUrl(parame) {
if (this.url != "") {
this.$router.push(this.url + "/" + parame);
}
},
},
mounted() {},
};
</script>
<style scoped>
.com_cell {
width: 496px;
height: 208px;
background-color: #ffffff;
box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.04);
border-radius: 8px;
border: solid 1px #e3e4ef;
margin-bottom: 24px;
}
.com_cell_up {
height: 88px;
background-color: #f9fafc;
border-radius: 8px 8px 0px 0px;
padding: 16px;
display: flex;
position: relative;
cursor: pointer;
}
.com_cell_up_img_init {
width: 56px;
height: 56px;
margin-right: 16px;
flex: 0 0 auto;
}
.com_cell_up_img {
width: 100%;
height: 100%;
border-radius: 4px;
}
.com_cell_up_right {
flex: 1 1 auto;
}
.up_title {
font-size: 16px;
margin-top: 4px;
display: flex;
align-items: center;
}
.up_tit_name_in {
max-width: calc(100% - 150px);
display: inline-block;
}
.up_tit_name {
width: 100%;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
overflow: hidden;
}
.up_tit_name:hover {
/* text-decoration: underline; */
color: #515fe7;
}
.up_rate {
margin-top: 12px;
display: flex;
}
.get_num {
margin-left: 40px;
font-size: 14px;
color: #58617a;
}
.com_cell_right_time {
color: #ea7d19;
}
.ci {
color: #242c43;
}
.get_detail {
position: absolute;
top: 26px;
right: 16px;
}
.tags {
display: inline-block;
margin-left: 8px;
padding: 2px 8px 3px;
font-size: 12px;
font-weight: 500;
line-height: 12px;
border-radius: 4px;
position: relative;
top: 1px;
}
.map_service {
background-color: #626de9;
border: solid 1px #626de9;
color: #fff;
}
.shared {
background-color: #e7fdfc;
border: solid 1px #8bd6d0;
color: #25bdb1;
}
.restricted {
background-color: #fffee8;
border: solid 1px #e4c884;
color: #ef9433;
}
.sensitive {
background-color: #ffefef;
border: solid 1px #d7a4a9;
color: #e15260;
}
.com_cell_down {
padding: 12px 16px 0 16px;
}
.com_detail {
color: #8890a7;
font-size: 14px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
height: 42px;
margin-bottom: 8px;
}
.com_other {
color: #58617a;
margin-bottom: 6px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
overflow: hidden;
}
.name_title {
color: #8890a7;
}
</style>
<style>
.com_cell .el-rate__item .el-rate__icon {
font-size: 20px;
margin-right: 0;
}
.com_cell .el-rate__text {
margin-left: 4px;
position: relative;
top: 1px;
}
</style>
\ No newline at end of file
<template>
<div class="com_cell">
<div class="com_cell_up" @click="goUrl(cellData.id)">
<div class="com_cell_up_img_init">
<img :src="cellData.cover" class="com_cell_up_img" />
</div>
<div class="com_cell_up_right">
<div class="up_title">
<div class="up_tit_name_in">
<span class="up_tit_name" :title="cellData.name">
{{ cellData.name }}
</span>
</div>
<span
v-if="cellData.data_service_type1 == 6"
class="tags map_service"
>
mapService
</span>
<span v-if="cellData.openness == 1" class="tags shared">共享</span>
<span v-else-if="cellData.openness == 2" class="tags restricted">
受限
</span>
<span v-else class="tags sensitive">敏感</span>
</div>
<div class="up_rate">
<el-rate
v-model="cellData.score"
disabled
show-score
text-color="#ea7d19"
score-template="{value}"
></el-rate>
<p class="get_num">
获取次数:
<span class="com_cell_right_time">
{{ cellData.apply_num }}
</span>
<span class="ci"></span>
</p>
</div>
</div>
<div class="get_detail">
<img src="@/assets/imgs/shop_ic_enter.png" />
</div>
</div>
<div class="com_cell_down">
<p class="com_detail">
{{ cellData.descript }}
</p>
<el-row :gutter="16">
<el-col :span="14" class="com_other">
<span class="name_title">服务类型:</span>
{{ cellData.data_service_type1_name }}
&nbsp;&nbsp;{{ cellData.data_service_type2_name }} &nbsp;&nbsp;{{
cellData.data_service_type3_name
}}
</el-col>
<el-col :span="10" class="com_other">
<span class="name_title">服务领域:</span>
{{ cellData.sectors_name }}
</el-col>
<el-col :span="14" class="com_other">
<span class="name_title">更新时间:</span>
{{ helper.dateStringTransform(cellData.update_date) }}
</el-col>
</el-row>
</div>
</div>
</template>
<script>
import helper from "@/services/helper.js";
// if you meet date which like 2020-06-05T00:00:00+08:00, use helper.dateStringTransform()
export default {
components: {},
props: {
url: { type: String, default: "" },
cellData: { type: Object, default: {} },
},
data: () => ({ helper: helper }),
computed: {},
watch: {},
methods: {
goUrl(parame) {
if (this.url != "") {
this.$router.push(this.url + "/" + parame);
}
},
},
mounted() {},
};
</script>
<style scoped>
.com_cell {
width: 496px;
height: 208px;
background-color: #ffffff;
box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.04);
border-radius: 12px 12px 8px 8px;
border: solid 1px #e3e4ef;
margin-bottom: 24px;
}
.com_cell_up {
height: 88px;
background-color: #f9fafc;
border-radius: 12px 12px 0px 0px;
padding: 16px;
display: flex;
position: relative;
cursor: pointer;
}
.com_cell_up_img_init {
width: 56px;
height: 56px;
margin-right: 16px;
flex: 0 0 auto;
}
.com_cell_up_img {
width: 100%;
height: 100%;
border-radius: 4px;
}
.com_cell_up_right {
flex: 1 1 auto;
}
.up_title {
font-size: 16px;
margin-top: 4px;
display: flex;
align-items: center;
}
.up_tit_name_in {
max-width: calc(100% - 150px);
display: inline-block;
}
.up_tit_name {
width: 100%;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
overflow: hidden;
}
.up_tit_name:hover {
/* text-decoration: underline; */
color: #515fe7;
}
.up_rate {
margin-top: 12px;
display: flex;
}
.get_num {
margin-left: 40px;
font-size: 14px;
color: #58617a;
}
.com_cell_right_time {
color: #ea7d19;
}
.ci {
color: #242c43;
}
.get_detail {
position: absolute;
top: 26px;
right: 16px;
}
.tags {
display: inline-block;
margin-left: 8px;
padding: 2px 8px 3px;
font-size: 12px;
font-weight: 500;
line-height: 12px;
border-radius: 4px;
position: relative;
top: 1px;
}
.map_service {
background-color: #626de9;
border: solid 1px #626de9;
color: #fff;
}
.shared {
background-color: #e7fdfc;
border: solid 1px #8bd6d0;
color: #25bdb1;
}
.restricted {
background-color: #fffee8;
border: solid 1px #e4c884;
color: #ef9433;
}
.sensitive {
background-color: #ffefef;
border: solid 1px #d7a4a9;
color: #e15260;
}
.com_cell_down {
padding: 12px 16px 0 16px;
}
.com_detail {
color: #8890a7;
font-size: 14px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
height: 42px;
margin-bottom: 8px;
}
.com_other {
color: #58617a;
margin-bottom: 6px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
overflow: hidden;
}
.name_title {
color: #8890a7;
}
</style>
<style>
.com_cell .el-rate__item .el-rate__icon {
font-size: 20px;
margin-right: 0;
}
.com_cell .el-rate__text {
margin-left: 4px;
position: relative;
top: 1px;
}
</style>
\ No newline at end of file
<template>
<div>
<div v-if="urlFilter == 'app'" ref="commodityList" class="commodity_card">
<commodity-card
v-for="item in datas"
:key="item.id"
:cellData="item"
:url="url"
></commodity-card>
</div>
<div v-else class="commodity_cell">
<commodity-cell
v-for="item in datas"
:cellData="item"
:url="url"
:key="item.id"
></commodity-cell>
</div>
<!-- 分页 -->
<section class="com-pagination" v-if="paginationShow">
<div class="com_page_total">{{ total }} 个条目</div>
<div class="com_page_item">
<div class="com_page_num" v-if="pageSizeShow">
<div>每页条数:</div>
<div class="com_page_num_sel">
<el-select
v-model="pagination.rowsPerPage"
placeholder="请选择"
size="small"
@change="handleSizeChange"
>
<el-option
v-for="item in pageOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</div>
</div>
<div class="com_page_control">
<el-button
icon="el-icon-arrow-left"
circle
size="mini"
@click="handleCurrentChange(-1)"
:disabled="pagination.page == 1"
></el-button>
&nbsp;&nbsp;{{ pagination.page }}页 / 共
{{ Math.ceil((total == 0 ? 1 : total) / pagination.rowsPerPage) }}
<el-button
icon="el-icon-arrow-right"
circle
size="mini"
@click="handleCurrentChange(1)"
:disabled="
pagination.page >=
Math.ceil((total == 0 ? 1 : total) / pagination.rowsPerPage)
"
></el-button>
</div>
</div>
</section>
</div>
</template>
<script>
import CommodityCell from "@/components/service-list/commodity-cell-new.vue";
import CommodityCard from "@/components/service-list/commodity-card-new.vue";
export default {
components: {
"commodity-cell": CommodityCell,
"commodity-card": CommodityCard,
},
props: {
datas: {
type: Array,
default: () => {
[];
},
},
total: {
type: Number,
default: 0,
},
url: { type: String, default: "" },
paginationShow: {
type: Boolean,
default: false,
},
pageSizeShow: {
type: Boolean,
default: false,
},
urlFilter: { type: String, default: "" },
},
data: () => ({
pagination: {
rowsPerPage: 10,
page: 1,
},
pageOptions: [
{
value: "10",
label: "10",
},
{
value: "20",
label: "20",
},
{
value: "50",
label: "50",
},
],
}),
computed: {},
methods: {
handleSizeChange(val) {
this.pagination.rowsPerPage = val;
this.refreshData();
},
handleCurrentChange(val) {
this.pagination.page += val;
this.refreshData();
},
refreshData() {
this.$emit("refresh", this.pagination);
},
},
mounted() {},
watch: {
datas: {
handler(val) {},
},
url: {
handler() {
this.pagination = {
rowsPerPage: 10,
page: 1,
};
this.refreshData();
},
},
},
};
</script>
<style scoped>
.com-pagination {
margin-top: 20px;
font-size: 14px;
padding: 0 5%;
display: flex;
justify-content: space-between;
align-items: center;
}
.com_page_num {
width: 140px;
margin-right: 20px;
display: flex;
justify-content: space-around;
align-items: center;
}
.com_page_num_sel {
width: 50px;
font-size: 14px;
position: relative;
top: 1px;
}
.com_page_item {
display: flex;
justify-content: flex-end;
align-items: center;
}
.commodity_card {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.commodity_card_list {
width: 100%;
display: flex;
flex-wrap: wrap;
}
.commodity_card_item {
margin: 10px 0;
}
.commodity_card_item_in {
margin: 0 auto;
}
.commodity_cell {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
</style>
<style>
.com_page_control .el-button {
border: 0;
}
.com_page_num .el-input__inner {
border: 0;
padding: 0;
}
</style>
\ No newline at end of file
This diff is collapsed.
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
</template> </template>
<script> <script>
import CommodityList from "@/components/service-list/commodity-list.vue"; import CommodityList from "@/components/service-list/commodity-list-new.vue";
import BlockRadius from "@/components/general/block-radius"; import BlockRadius from "@/components/general/block-radius";
export default { export default {
components: { components: {
...@@ -410,6 +410,9 @@ export default { ...@@ -410,6 +410,9 @@ export default {
this.filterLists[3].childDomains = data.organizations this.filterLists[3].childDomains = data.organizations
? data.organizations ? data.organizations
: []; : [];
if (this.urlFilter == "7") {
this.filterLists[1].childDomains = [];
}
setTimeout(() => { setTimeout(() => {
this.judgeHeight(); this.judgeHeight();
}, 0); }, 0);
......
<template>
<div class="service_shop_menu">
<ul class="service_shop_menu_list">
<li v-for="(item, index) in menuList" :key="index" @click="active(item.visit_url)">
<img
v-if="item.visit_url == actives"
:src="item.active != '' ? require('@/assets/imgs/' + item.active + '.png') : ''"
class="menu_img"
/>
<img v-else :src="require('@/assets/imgs/' + item.default + '.png')" class="menu_img" />
<span
:class="item.visit_url == actives ? 'menu_item_active':'menu_item'"
>{{ item.menu_name }}</span>
</li>
</ul>
</div>
</template>
<script>
export default {
props: {},
data() {
return {
actives: "",
menuList: [],
};
},
computed: {
getActive() {
return this.$store.state.serviceShopMenu;
},
},
watch: {
getActive(newVal) {
this.getActiveMenu(newVal);
},
},
mounted() {
this.getShopMenu();
this.$store.commit("serviceShopMenuAct", this.$route.path);
this.actives = this.$store.state.serviceShopMenu;
},
methods: {
active(val) {
this.$store.commit("serviceShopMenuAct", val);
this.$router.push(val);
},
getActiveMenu(val) {
this.actives = val;
},
getShopMenu() {
this.$api.general.getNowMenu({ teamName: "APAAS3" }).then((response) => {
if (response.data.success == 1) {
let arr = response.data.data[0].Child;
let shopArr = [];
let asd = arr.find(item => {
return item.visit_url == "/services_shop"
})
shopArr = asd.Child;
if (shopArr && shopArr.length != 0) {
Array.from(shopArr).forEach((item) => {
let uri = item.visit_url.substring(6);
if (uri.indexOf("/") != -1) {
uri = uri.substring(0, uri.indexOf("/"));
}
switch (uri) {
case "data_service_list":
item.active = "shop_tool_ic_sjfw_sel";
item.default = "shop_tool_ic_sjfw";
break;
case "space_time_service_list":
item.active = "shop_tool_ic_skfw_sel";
item.default = "shop_tool_ic_skfw";
break;
case "video_service_list":
item.active = "shop_tool_ic_spfw_sel";
item.default = "shop_tool_ic_spfw";
break;
case "perception_service_list":
item.active = "shop_tool_ic_ganzhifw_sel";
item.default = "shop_tool_ic_ganzhifw";
break;
case "comprehensive_app_list":
item.active = "shop_tool_ic_zhyyfw_sel";
item.default = "shop_tool_ic_zhyyfw";
break;
case "cloud":
item.active = "shop_tool_ic_yzyfw_sel";
item.default = "shop_tool_ic_yzyfw";
break;
case "app_store_list":
item.active = "shop_ic_yysd_sel";
item.default = "shop_ic_yysd";
break;
default:
item.active = "1";
item.default = "1";
break;
}
});
}
this.menuList = shopArr;
}
});
},
},
};
</script>
<style scoped>
.service_shop_menu {
background-color: #0d1847;
position: fixed;
top: 76px;
left: calc(50% - 600px);
width: 176px;
padding: 8px;
background-color: #ffffff;
box-shadow: 0px 3px 6px 0px
rgba(15, 19, 65, 0.04);
border-radius: 8px;
}
.service_shop_menu_list > li {
box-sizing: border-box;
height: 40px;
padding: 8px 0 0 22px;
margin-bottom: 16px;
font-size: 15px;
line-height: 24px;
cursor: pointer;
}
.service_shop_menu_list > li:nth-last-child(1) {
margin-bottom: 0;
}
.service_shop_menu_list > li:hover,
.service_shop_menu_list > li.current {
background-color: rgba(242, 246, 253, 0.4);
color: #515fe7;
}
.menu_img {
width: 24px;
margin-right: 6px;
}
.menu_item {
position: relative;
font-weight: bold;
font-size: 15px;
color: #96a0c5;
top: -6px;
}
.menu_item_active {
position: relative;
font-weight: bold;
font-size: 15px;
color: #515fe7;
top: -6px;
}
</style>
...@@ -7,10 +7,18 @@ ...@@ -7,10 +7,18 @@
> >
<h3 class="detail-title" v-text="item.name + ':'"></h3> <h3 class="detail-title" v-text="item.name + ':'"></h3>
<service-steps <div class="step_div" v-if="item.type == 'step'">
v-if="item.type == 'step'" <img
:data="item.value" class="step_img"
></service-steps> :src="require('@/assets/imgs/shop_img_hqlc.png')"
/>
</div>
<div class="step_div" v-else-if="item.type == 'step_app'">
<img
class="step_img"
:src="require('@/assets/imgs/shop_img_hqlc_yingyong.png')"
/>
</div>
<p <p
v-else-if="item.type == 'text'" v-else-if="item.type == 'text'"
class="detail-text" class="detail-text"
...@@ -21,6 +29,34 @@ ...@@ -21,6 +29,34 @@
class="detail-code" class="detail-code"
v-html="item.value" v-html="item.value"
></div> ></div>
<div v-else-if="item.type == 'table-list'">
<table class="xq_table">
<tr>
<td>数据领域:{{ item.value.sectors_name }}</td>
<td>服务类型:{{ item.value.data_service_type1_name }}&nbsp;&nbsp;&nbsp;&nbsp;{{ item.value.data_service_type2_name }}</td>
</tr>
<tr>
<td>发布时间:{{ helper.dateStringTransform(item.value.create_time) }}</td>
<td>更新时间:{{ helper.dateStringTransform(item.value.update_date) }}</td>
</tr>
<tr>
<td>请求方式:{{ item.value.req_type }}</td>
<td>编码格式:{{ item.value.encode_method }}</td>
</tr>
</table>
</div>
<div v-else-if="item.type == 'app-list'">
<table class="xq_table">
<tr>
<td>部署来源:{{ item.value.online_state_name }}</td>
<td>上线时间:{{ item.value.create_date }}</td>
</tr>
<tr>
<td>业务领域:{{ item.value.ywly_name }}</td>
<td>应用类型:{{ item.value.type_name }}</td>
</tr>
</table>
</div>
<workflows-view <workflows-view
v-else-if="item.type == 'workflows'" v-else-if="item.type == 'workflows'"
:id="item.value" :id="item.value"
...@@ -68,6 +104,7 @@ ...@@ -68,6 +104,7 @@
<script> <script>
import serviceSteps from "@/components/service-tabs/service-steps"; import serviceSteps from "@/components/service-tabs/service-steps";
import workflowsView from "@/components/work-flow/workflows-view"; import workflowsView from "@/components/work-flow/workflows-view";
import helper from "@/services/helper.js";
export default { export default {
components: { components: {
...@@ -80,18 +117,31 @@ export default { ...@@ -80,18 +117,31 @@ export default {
required: true, required: true,
}, },
}, },
data() {
return {
helper
}
}
}; };
</script> </script>
<style scoped> <style scoped>
.step_div {
margin-top: 16px;
}
.step_img {
width: 1140px;
height: 152px;
}
.detail-item:not(:last-child) { .detail-item:not(:last-child) {
margin-bottom: 20px; margin-bottom: 20px;
} }
.detail-item .detail-title { .detail-item .detail-title {
font-size: 14px; font-size: 14px;
line-height: 25px; line-height: 14px;
color: #8890a7; color: #8890a7;
margin-bottom: 3px; margin-bottom: 8px;
margin-left: 8px;
} }
.detail-item .detail-text { .detail-item .detail-text {
word-break: break-all; word-break: break-all;
...@@ -111,4 +161,44 @@ export default { ...@@ -111,4 +161,44 @@ export default {
line-height: 25px; line-height: 25px;
margin-top: 8px; margin-top: 8px;
} }
.xq_table {
border: solid 1px #dde0e9;
width: 100%;
border-collapse: collapse;
border-spacing: 0;
empty-cells: show;
margin-top: 16px;
}
.xq_table caption {
color: #000;
padding: 1em 0;
text-align: center;
}
.xq_table td,
.xq_table th {
border-left: 1px solid #cbcbcb;
border-width: 0 0 0 1px;
font-size: inherit;
margin: 0;
overflow: visible;
padding: 0.5em 1em;
}
.xq_table thead {
background-color: #e0e0e0;
color: #000;
text-align: left;
vertical-align: bottom;
}
.xq_table td {
background-color: transparent;
}
.xq_table td {
color: #242c43;
font-size: 14px;
line-height: 30px;
border-bottom: 1px solid #cbcbcb;
}
.xq_table tbody > tr:last-child > td {
border-bottom-width: 0;
}
</style> </style>
<template> <template>
<div class="service_tab-provider" v-if="data"> <div>
<div class="provider-left"> <div class="pro_title">机构信息:</div>
<el-avatar <div class="pro_div">
shape="square" <div class="pro_img_d">
:size="156" <img :src="data.picture_path" class="pro_img" />
fit="cover"
:src="data.picture_path"
/>
</div>
<div class="provider-right">
<p class="provider_name" v-text="data.organization_name"></p>
<div class="provider_info">
<p>
<span>联系人:</span>
<span v-text="data.user_name"></span>
</p>
<p>
<span>联系电话:</span>
<span v-text="data.phone"></span>
</p>
</div> </div>
<div class="pro_1">机构名称:{{ data.organization_name }}</div>
<div class="pro_2">联系人:{{ data.user_name }}</div>
<div class="pro_3">联系电话:{{ data.phone }}</div>
</div> </div>
<div class="pro_title">{{ isApp ? '应用规格:' : '服务规格:'}}</div>
<table-um
ref="apply_service_state_table"
:headers="isApp ? dataHeadersApp : dataHeaders"
:stripe="false"
:datas="data.serviceRequestSpcsTable"
></table-um>
</div> </div>
</template> </template>
<script> <script>
import TableUm from "@/components/table/table-um";
export default { export default {
props: { props: {
data: { data: {
type: Object, type: Object,
required: true, required: true,
}, },
isApp: {
type: Boolean,
default: false
}
},
data() {
return {
dataHeaders: [
{
label: "规格类型",
prop: "type",
align: "left",
width: "200"
},
{
label: "规格",
prop: "spce",
align: "left",
width: "300"
},
{
label: "购买时长",
prop: "times",
align: "center",
width: "200"
},
{
label: "规格说明",
prop: "descript",
align: "left",
},
],
dataHeadersApp: [
{
label: "规格类别",
prop: "type",
align: "left",
width: "200"
},
{
label: "时长",
prop: "times",
align: "center",
width: "200"
},
{
label: "价格",
prop: "spcs",
align: "center",
width: "200"
},
{
label: "规格说明",
prop: "specifications",
align: "left",
},
],
};
},
components: {
TableUm,
}, },
}; };
</script> </script>
<style scoped> <style scoped>
.service_tab-provider { .pro_title {
display: flex; font-size: 14px;
justify-content: flex-start; line-height: 14px;
align-items: flex-start; color: #8890a7;
} margin-bottom: 8px;
.provider-left { margin-left: 8px;
flex-shrink: 0;
padding: 3px;
background-color: #f6f7fb;
border-radius: 9px;
font-size: 0;
}
.provider-left > .el-avatar--square {
border-radius: 7px;
} }
.provider-right { .pro_div {
flex-grow: 1; display: grid;
margin-left: 20px; grid-template-columns: 88px 1fr 1fr;
grid-template-rows: 44px 44px;
grid-row-gap: 1px;
grid-column-gap: 1px;
background-color: #dde0e9;
padding: 1px;
margin-bottom: 24px;
} }
.provider-right > .provider_name { .pro_img_d {
font-size: 20px; width: 88px;
font-weight: bold; height: 89px;
color: #0d1847; padding: 8px;
line-height: 36px; grid-row-start: 1;
grid-row-end: 3;
background-color: #fff;
} }
.provider-right > .provider_info { .pro_img {
padding: 20px; width: 100%;
background-color: #f6f7fb; height: 100%;
border-radius: 6px;
margin-top: 20px;
} }
.provider-right > .provider_info > p { .pro_1 {
font-size: 14px; grid-column-start: 2;
color: #242c43; grid-column-end: 4;
line-height: 25px; line-height: 44px;
padding-left: 24px;
background-color: #fff;
} }
.provider-right > .provider_info > p:not(:first-child) { .pro_2 {
margin-top: 16px; line-height: 44px;
padding-left: 24px;
background-color: #fff;
} }
.provider-right > .provider_info > p > span:first-child { .pro_3 {
color: #8890a7; line-height: 44px;
padding-left: 24px;
background-color: #fff;
} }
</style> </style>
<template> <template>
<div class="service_tab-specification" v-if="data"> <div class="service_tab-specification" v-if="data">
<div class="specification_header">
<p>申请方式:</p>
<type-group v-model="type" :types="types"></type-group>
</div>
<el-table class="specification_table" :data="tableData" :border="false"> <el-table class="specification_table" :data="tableData" :border="false">
<el-table-column width="30"></el-table-column> <el-table-column width="30"></el-table-column>
<el-table-column prop="name" label="规格" width="360"></el-table-column> <el-table-column prop="name" label="规格" width="360"></el-table-column>
...@@ -21,22 +17,12 @@ export default { ...@@ -21,22 +17,12 @@ export default {
}, },
props: { props: {
data: { data: {
type: Array, type: Object,
required: true, required: true,
}, },
}, },
data: () => ({ data: () => ({
type: 1, type: 1,
types: [
{
name: "按月",
value: 1,
},
{
name: "按年",
value: 2,
},
],
}), }),
computed: { computed: {
tableData() { tableData() {
......
...@@ -13,23 +13,12 @@ ...@@ -13,23 +13,12 @@
></service-tab-detail> ></service-tab-detail>
</el-tab-pane> </el-tab-pane>
<!-- 规格说明 -->
<el-tab-pane
:label="specificationTitle"
name="specification"
v-if="specificationData"
>
<service-tab-specification
class="service_info"
:data="specificationData"
></service-tab-specification>
</el-tab-pane>
<!-- 提供组织 --> <!-- 提供组织 -->
<el-tab-pane :label="providerTitle" name="provider" v-if="providerData"> <el-tab-pane :label="providerTitle" name="provider" v-if="providerData">
<service-tab-provider <service-tab-provider
class="service_info" class="service_info"
:data="providerData" :data="providerData"
:isApp="detailTitle == '应用详情信息'"
></service-tab-provider> ></service-tab-provider>
</el-tab-pane> </el-tab-pane>
...@@ -78,8 +67,8 @@ export default { ...@@ -78,8 +67,8 @@ export default {
detailData: { detailData: {
type: Array, type: Array,
}, },
specificationData: { serviceRequestSpcs: {
type: Array, type: Object,
}, },
providerData: { providerData: {
type: Object, type: Object,
...@@ -105,8 +94,11 @@ export default { ...@@ -105,8 +94,11 @@ export default {
<style scoped> <style scoped>
.service_info_tab { .service_info_tab {
border: none; border: none;
box-shadow: none; box-shadow: 0px 4px 8px 0px
rgba(0, 7, 101, 0.04);
border-radius: 8px;
margin-bottom: 30px; margin-bottom: 30px;
overflow: hidden;
} }
.service_info { .service_info {
padding: 35px 40px 40px; padding: 35px 40px 40px;
...@@ -127,15 +119,33 @@ export default { ...@@ -127,15 +119,33 @@ export default {
background-color: #fff; background-color: #fff;
border-top: 4px solid #fff; border-top: 4px solid #fff;
border-bottom: 2px solid #f4f7fc; border-bottom: 2px solid #f4f7fc;
font-size: 15px;
font-weight: normal;
} }
.service_info_tab.el-tabs--border-card .service_info_tab.el-tabs--border-card
> .el-tabs__header > .el-tabs__header
.el-tabs__item.is-active { .el-tabs__item.is-active {
border-top: 4px solid #f5ab4c; border-top: 4px solid #fff;
border-right: 2px solid #fcefd6; border-right: 2px solid #f4f7fc;
border-bottom: 2px solid #fff; border-bottom: 2px solid #fff;
border-left: 2px solid #fcefd6; border-left: 2px solid #f4f7fc;
border-radius: 6px 6px 0 0;
color: #e56600 !important; color: #e56600 !important;
font-size: 15px;
font-weight: normal;
position: relative;
}
.service_info_tab.el-tabs--border-card
> .el-tabs__header
.el-tabs__item.is-active::before {
content: "";
position: absolute;
width: calc(100% + 3px);
height: 4px;
background-color: #f5ab4c;
border-radius: 4px 4px 0 0;
left: -2px;
top: -3px;
} }
.service_info_tab.el-tabs--border-card .service_info_tab.el-tabs--border-card
> .el-tabs__header > .el-tabs__header
......
This diff is collapsed.
...@@ -128,6 +128,7 @@ ...@@ -128,6 +128,7 @@
{{ item.money }}金币/{{ item.spcs_count }} {{ item.money }}金币/{{ item.spcs_count }}
</el-button> </el-button>
<el-button <el-button
v-if="cellItems.service.request_spcs_info.spcs_type_2 && cellItems.service.request_spcs_info.spcs_type_2.length != 0"
:class=" :class="
specificationPop.spcs_type == 2 specificationPop.spcs_type == 2
? 'shopping_cell_specification_btn active' ? 'shopping_cell_specification_btn active'
...@@ -315,13 +316,8 @@ export default { ...@@ -315,13 +316,8 @@ export default {
this.specificationApplicationPop = val; this.specificationApplicationPop = val;
}, },
submitPop() { submitPop() {
this.cellItems.service.spcs_info = this.cellItems.service.spcs_info = this.specificationPop;
this.specificationPop.spcs_type == 1 this.visible = false;
? this.cellItems.service.request_spcs_info.spcs_type_1[val]
: this.specificationPop.spcs_type == 2
? this.cellItems.service.request_spcs_info.spcs_type_2[val]
: "";
this.updateShoppingCart();
this.updateShoppingCart(); this.updateShoppingCart();
}, },
setSpecificationPop() { setSpecificationPop() {
...@@ -364,7 +360,7 @@ export default { ...@@ -364,7 +360,7 @@ export default {
let query = { let query = {
id: this.cellItems.id, id: this.cellItems.id,
duration: this.cellItems.duration, duration: this.cellItems.duration,
spec_id: this.cellItems.spec_id, spec_id: this.specificationPop.id,
duration_method: this.cellItems.duration_method, duration_method: this.cellItems.duration_method,
is_subscribe: Number(this.cellItems.is_subscribe), is_subscribe: Number(this.cellItems.is_subscribe),
}; };
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
<el-col :span="15" class="shopping_cart_options_num"> <el-col :span="15" class="shopping_cart_options_num">
<div class="fyzj"> <div class="fyzj">
<p class="fyzj_p"> <p class="fyzj_p">
<span v-if="getSumCoin > userInfo.account_balance" class="yebz"> <span v-if="getSumCoin > user_info.account_balance" class="yebz">
余额不足,请联系超级管理员进行充值 余额不足,请联系超级管理员进行充值
</span> </span>
费用总计:<span class="fyzj_span"> 费用总计:<span class="fyzj_span">
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
{{ list.length }} 项服务,已选择 {{ list.length }} 项服务,已选择
<span class="dwa_djf">{{ getNum }}</span> <span class="dwa_djf">{{ getNum }}</span>
<span class="ckfymx_qian" <span class="ckfymx_qian"
>账户余额:{{ userInfo.account_balance }} 金币</span >账户余额:{{ user_info.account_balance }} 金币</span
> >
</p> </p>
</div> </div>
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
</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 && getSumCoin <= userInfo.account_balance" v-if="getNum != 0 && getSumCoin <= user_info.account_balance"
@click="oneClickApplication" @click="oneClickApplication"
class="shopping_cart_options_cell_btn_act" class="shopping_cart_options_cell_btn_act"
>一键申请</el-button >一键申请</el-button
...@@ -101,7 +101,6 @@ ...@@ -101,7 +101,6 @@
<script> <script>
import ShoppingCartList from "@/components/shopping-cart/shopping-cart-list"; import ShoppingCartList from "@/components/shopping-cart/shopping-cart-list";
import { mapState } from "vuex";
export default { export default {
components: { components: {
...@@ -114,9 +113,11 @@ export default { ...@@ -114,9 +113,11 @@ export default {
checkListIn: [], checkListIn: [],
list: [], list: [],
listIn: [], listIn: [],
user_info: {},
}), }),
mounted() { mounted() {
this.getList(); this.getList();
this.getUserCoins();
}, },
computed: { computed: {
getNum() { getNum() {
...@@ -132,9 +133,9 @@ export default { ...@@ -132,9 +133,9 @@ export default {
this.checkList.forEach((item, index) => { this.checkList.forEach((item, index) => {
if (item) { if (item) {
if (this.list[index].service_id != 0) { if (this.list[index].service_id != 0) {
sum += (this.list[index].service.spcs_info.money * this.list[index].duration).toFixed(2); sum += Number((this.list[index].service.spcs_info.money * this.list[index].duration).toFixed(2));
} else { } else {
sum += (this.list[index].application.price * this.list[index].duration).toFixed(2); sum += Number((this.list[index].application.price * this.list[index].duration).toFixed(2));
} }
} }
}); });
...@@ -143,7 +144,6 @@ export default { ...@@ -143,7 +144,6 @@ export default {
getCartState() { getCartState() {
return this.$store.state.cartState; return this.$store.state.cartState;
}, },
...mapState(["userInfo"]),
}, },
watch: { watch: {
getCartState(newVal) { getCartState(newVal) {
...@@ -151,6 +151,13 @@ export default { ...@@ -151,6 +151,13 @@ export default {
}, },
}, },
methods: { methods: {
getUserCoins() {
this.$api.user.getUserCoins().then((response) => {
if (response.data.success == 1) {
this.user_info = response.data.data;
}
});
},
getList() { getList() {
this.$api.serviceShop.getShoppingCart().then((response) => { this.$api.serviceShop.getShoppingCart().then((response) => {
if (response.data.success == "1") { if (response.data.success == "1") {
...@@ -158,6 +165,7 @@ export default { ...@@ -158,6 +165,7 @@ export default {
this.listIn = response.data.data.invalid || []; this.listIn = response.data.data.invalid || [];
this.checkList = []; this.checkList = [];
this.checkListIn = []; this.checkListIn = [];
this.checkShopAll = false;
for (let index in this.list) { for (let index in this.list) {
this.checkList.push(false); this.checkList.push(false);
} }
......
...@@ -66,10 +66,6 @@ export default { ...@@ -66,10 +66,6 @@ export default {
type: Array, type: Array,
default: () => [], default: () => [],
}, },
imgSrc: {
type: String,
default: "tool_fuwu",
},
}, },
methods: { methods: {
titleAction() { titleAction() {
...@@ -103,6 +99,7 @@ export default { ...@@ -103,6 +99,7 @@ export default {
} }
.side_nav_bar_title > span { .side_nav_bar_title > span {
font-size: 16px; font-size: 16px;
line-height: 20px;
color: #c3caf8; color: #c3caf8;
} }
.side_nav_bar_list > li > a { .side_nav_bar_list > li > a {
......
...@@ -452,6 +452,7 @@ export default { ...@@ -452,6 +452,7 @@ export default {
}, },
datas: { datas: {
handler(val) { handler(val) {
console.log(val)
this.getDataFromApiSync(); this.getDataFromApiSync();
}, },
deep: true deep: true
......
<template> <template>
<div class="workflows-view" ref="flowContainer" :style="{zoom:zoom,}"> <div class="workflows-view" ref="flowContainer" :style="{ zoom: zoom }">
<super-flow <super-flow
ref="superFlow" ref="superFlow"
:node-list="nodeList" :node-list="nodeList"
...@@ -23,6 +23,14 @@ ...@@ -23,6 +23,14 @@
class="flow-node" class="flow-node"
:class="`flow-node-${meta.type}`" :class="`flow-node-${meta.type}`"
> >
<div>
<svg-icon
id="judge_svg"
v-if="meta.type == 4"
icon-class="bg_tiaojian_nor"
class="judge_svg"
></svg-icon>
</div>
<span v-text="meta.name"></span> <span v-text="meta.name"></span>
</div> </div>
<el-tooltip v-else effect="dark" placement="right-start"> <el-tooltip v-else effect="dark" placement="right-start">
...@@ -40,6 +48,14 @@ ...@@ -40,6 +48,14 @@
</div> </div>
</div> </div>
<div class="flow-node" :class="`flow-node-${meta.type}`"> <div class="flow-node" :class="`flow-node-${meta.type}`">
<div>
<svg-icon
id="judge_svg"
v-if="meta.type == 4"
icon-class="bg_tiaojian_nor"
class="judge_svg"
></svg-icon>
</div>
<span v-text="meta.name"></span> <span v-text="meta.name"></span>
<span class="example-count" v-text="meta.running_nodes || 0"></span> <span class="example-count" v-text="meta.running_nodes || 0"></span>
</div> </div>
...@@ -60,10 +76,10 @@ export default { ...@@ -60,10 +76,10 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
zoom:{ zoom: {
type:Number, type: Number,
default:1, default: 1,
} },
}, },
data() { data() {
return { return {
...@@ -91,8 +107,8 @@ export default { ...@@ -91,8 +107,8 @@ export default {
]) ])
.then((response) => { .then((response) => {
let data = response[0].data.data; let data = response[0].data.data;
let nodeList = data.nodeList||[]; let nodeList = data.nodeList || [];
let linkList = data.linkList||[]; let linkList = data.linkList || [];
let nodes = response[1].data.data; let nodes = response[1].data.data;
nodes.forEach((node) => { nodes.forEach((node) => {
...@@ -109,7 +125,7 @@ export default { ...@@ -109,7 +125,7 @@ export default {
this.nodeList = nodeList; this.nodeList = nodeList;
this.linkList = linkList; this.linkList = linkList;
}) })
.catch(function(error) { .catch(function (error) {
console.log(error); console.log(error);
}); });
}, },
...@@ -170,6 +186,20 @@ export default { ...@@ -170,6 +186,20 @@ export default {
background-color: #f78181; background-color: #f78181;
color: #fff; color: #fff;
} }
.flow-node-4 {
border: none;
box-shadow: none;
position: relative;
background: transparent;
line-height: 48px;
}
.judge_svg {
font-size: 116px;
position: absolute;
z-index: -1;
top: -34px;
left: 0px;
}
.example-count { .example-count {
position: absolute; position: absolute;
right: -14px; right: -14px;
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
<div class="organization_list"> <div class="organization_list">
<apass-list <apass-list
@list-action="initDatas" @list-action="initDatas"
:page-size="20"
:page-sizes="[20, 50]"
search-placeholder="请输入关键字" search-placeholder="请输入关键字"
:list-total="listTotal" :list-total="listTotal"
> >
......
...@@ -110,7 +110,6 @@ export default { ...@@ -110,7 +110,6 @@ export default {
watch: {}, watch: {},
computed: {}, computed: {},
created() { created() {
this.refreshData()
this.user_info() this.user_info()
}, },
mounted() { mounted() {
...@@ -179,7 +178,7 @@ export default { ...@@ -179,7 +178,7 @@ export default {
.post( .post(
`/apaas/backmgt/user/recharge`,{ `/apaas/backmgt/user/recharge`,{
"user_id":this.user_info1.user_id, "user_id":this.user_info1.user_id,
     "num":parseInt(this.money_num)      "num":this.money_num+''
} }
).then((res)=>{ ).then((res)=>{
if(res.data.success){ if(res.data.success){
...@@ -194,11 +193,12 @@ export default { ...@@ -194,11 +193,12 @@ export default {
refreshData(){ refreshData(){
this.$http this.$http
.get( .get(
`/apaas/backmgt/user/rechargeRecords?start=${this.search_date[0]||''}&end=${this.search_date[1]||''}&limit=${this.currentlimit}&page=${this.currentPage}` `/apaas/backmgt/user/rechargeRecords?user_id=${this.user_info1.user_id}&start=${this.search_date[0]||''}&end=${this.search_date[1]||''}&limit=${this.currentlimit}&page=${this.currentPage}`
).then((res)=>{ ).then((res)=>{
if(res.data.success){ if(res.data.success){
console.log(res.data.data); console.log(res.data.data);
this.tableData = res.data.data this.tableData = res.data.data
this.total_list = res.data.total
} }
}) })
}, },
...@@ -209,7 +209,8 @@ export default { ...@@ -209,7 +209,8 @@ export default {
).then((res)=>{ ).then((res)=>{
if(res.data.success){ if(res.data.success){
console.log(res.data.data); console.log(res.data.data);
this.user_info1 = res.data.data this.user_info1 = res.data.data;
this.refreshData()
} }
}) })
}, },
......
This diff is collapsed.
...@@ -315,10 +315,10 @@ export default { ...@@ -315,10 +315,10 @@ export default {
right_3_state: 0, right_3_state: 0,
last_id: 0, last_id: 0,
mult_data_state: [ mult_data_state: [
{ name: "正常", value: 0 }, { name: "健康", value: 0 },
{ name: "警告", value: 0 },
{ name: "错误", value: 0 },
{ name: "未使用", value: 0 }, { name: "未使用", value: 0 },
{ name: "故障", value: 0 },
{ name: "警告", value: 0 },
], ],
mult_data: [ mult_data: [
{ name: "数据服务", value: 0 }, { name: "数据服务", value: 0 },
...@@ -535,7 +535,25 @@ export default { ...@@ -535,7 +535,25 @@ export default {
getServiceHealth() { getServiceHealth() {
this.$api.dataAnalysis.getServiceHealth().then((response) => { this.$api.dataAnalysis.getServiceHealth().then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.mult_data_state = response.data.data.seriesData; let data = response.data.data.seriesData;
let jk = data.find((item) => {
return item.name == "健康";
});
let wsy = data.find((item) => {
return item.name == "未使用";
});
let gz = data.find((item) => {
return item.name == "故障";
});
let jg = data.find((item) => {
return item.name == "警告";
});
this.mult_data_state = [
{ name: "健康", value: jk.value },
{ name: "未使用", value: wsy.value },
{ name: "故障", value: gz.value },
{ name: "警告", value: jg.value },
];
} }
}); });
}, },
......
...@@ -348,7 +348,8 @@ export default { ...@@ -348,7 +348,8 @@ export default {
}) })
.then(({ data }) => { .then(({ data }) => {
if (data.success === 1) { if (data.success === 1) {
this.hotSeviceData = data.data.map((item, index) => ({ let arr = data.data || [];
this.hotSeviceData = arr.map((item, index) => ({
...item, ...item,
hotIndex: index + 1, hotIndex: index + 1,
})); }));
......
...@@ -309,10 +309,10 @@ export default { ...@@ -309,10 +309,10 @@ export default {
right_3_state: 0, right_3_state: 0,
last_id: 0, last_id: 0,
mult_data_state: [ mult_data_state: [
{ name: "正常", value: 0 }, { name: "健康", value: 0 },
{ name: "警告", value: 0 },
{ name: "错误", value: 0 },
{ name: "未使用", value: 0 }, { name: "未使用", value: 0 },
{ name: "故障", value: 0 },
{ name: "警告", value: 0 },
], ],
mult_data: [ mult_data: [
{ name: "数据服务", value: 0 }, { name: "数据服务", value: 0 },
...@@ -529,7 +529,25 @@ export default { ...@@ -529,7 +529,25 @@ export default {
getServiceHealth() { getServiceHealth() {
this.$api.dataAnalysis.getServiceHealth().then((response) => { this.$api.dataAnalysis.getServiceHealth().then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
this.mult_data_state = response.data.data.seriesData; let data = response.data.data.seriesData;
let jk = data.find((item) => {
return item.name == "健康";
});
let wsy = data.find((item) => {
return item.name == "未使用";
});
let gz = data.find((item) => {
return item.name == "故障";
});
let jg = data.find((item) => {
return item.name == "警告";
});
this.mult_data_state = [
{ name: "健康", value: jk.value },
{ name: "未使用", value: wsy.value },
{ name: "故障", value: gz.value },
{ name: "警告", value: jg.value },
];
} }
}); });
}, },
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<script> <script>
// @ is an alias to /src // @ is an alias to /src
import CommodityList from "@/components/service-list/commodity-list.vue"; import CommodityList from "@/components/service-list/commodity-list-new.vue";
import BlockRadius from "@/components/general/block-radius"; import BlockRadius from "@/components/general/block-radius";
export default { export default {
components: { components: {
......
...@@ -118,8 +118,19 @@ export default { ...@@ -118,8 +118,19 @@ export default {
} }
}) })
}, },
//改变select_able数据
change_select_able(val,flag){
for (let i = 0; i < this.select_able_arr.length; i++) {
let item = this.select_able_arr[i];
if (item.id===val.id) {
this.$set(item, "checked", flag);
break;
}
}
},
change_value(val) { change_value(val) {
// console.log(val); // console.log(val);
// debugger
if(val.check){ if(val.check){
this.selected_arr.push(val.data) this.selected_arr.push(val.data)
}else{ }else{
...@@ -131,18 +142,14 @@ export default { ...@@ -131,18 +142,14 @@ export default {
}); });
this.selected_arr.splice(temp,1) this.selected_arr.splice(temp,1)
} }
this.change_select_able(val,val.check?1:0)
}, },
rank_value(val) { rank_value(val) {
// console.log(val); // console.log(val);
// debugger
var index = val.position=='start'?0:val.position=='end'?this.selected_arr.length-1:val.position var index = val.position=='start'?0:val.position=='end'?this.selected_arr.length-1:val.position
if(val.act==2){ if(val.act==2){
for (let i = 0; i < this.select_able_arr.length; i++) { this.change_select_able(val,0)
let item = this.select_able_arr[i];
if (item.id===val.id) {
this.$set(item, "checked", 0);
break;
}
}
this.selected_arr.splice(index,1) this.selected_arr.splice(index,1)
}else if(val.act==1){ }else if(val.act==1){
var temp = this.selected_arr.splice(index,1) var temp = this.selected_arr.splice(index,1)
...@@ -151,6 +158,7 @@ export default { ...@@ -151,6 +158,7 @@ export default {
var temp = this.selected_arr.splice(index,1) var temp = this.selected_arr.splice(index,1)
this.selected_arr.splice(index-1, 0, temp[0]) this.selected_arr.splice(index-1, 0, temp[0])
} }
}, },
get_select_data() { get_select_data() {
console.log(this.$route.query); console.log(this.$route.query);
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-breadcrumb separator="/"> <el-breadcrumb separator="/">
<el-breadcrumb-item to="/shop">服务超市</el-breadcrumb-item> <el-breadcrumb-item to="/shop">服务超市</el-breadcrumb-item>
<el-breadcrumb-item to="/shop/data_service_list/5"> <el-breadcrumb-item to="/shop/data_service_list/5">
数据服务 感知服务
</el-breadcrumb-item> </el-breadcrumb-item>
<el-breadcrumb-item>服务详情信息</el-breadcrumb-item> <el-breadcrumb-item>服务详情信息</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
...@@ -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,9 +73,9 @@ export default { ...@@ -87,9 +73,9 @@ 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, scoreDetail: datas.scoreDetail,
month_sale: data.month_sale, month_sale: datas.month_sale,
}; };
this.detailData = [ this.detailData = [
...@@ -99,20 +85,30 @@ export default { ...@@ -99,20 +85,30 @@ export default {
value: ["服务申请", "信息填写", "审核确认", "服务获取"], value: ["服务申请", "信息填写", "审核确认", "服务获取"],
}, },
{ {
name: "服务描述", name: "服务信息",
type: "text", type: "table-list",
value: datas.descript, value: {
}, data_service_type1_name: datas.data_service_type1_name,
{ data_service_type2_name: datas.data_service_type2_name,
name: "请求方式", sectors_name: datas.sectors_name,
type: "text", create_time: datas.create_time,
value: ["-", "GET", "POST", "PUT", "DELETE"][datas.req_type || 0], update_date: datas.update_date,
req_type: ["-", "GET", "POST", "PUT", "DELETE"][
datas.req_type || 0
],
encode_method: datas.encode_method,
}, },
{
name: "编码格式",
type: "text",
value: datas.encode_method,
}, },
// {
// name: "请求方式",
// type: "text",
// value: ["-", "GET", "POST", "PUT", "DELETE"][datas.req_type || 0],
// },
// {
// name: "编码格式",
// type: "text",
// value: datas.encode_method,
// },
{ {
name: "请求参数", name: "请求参数",
type: "table", type: "table",
...@@ -186,12 +182,25 @@ export default { ...@@ -186,12 +182,25 @@ export default {
}, },
}, },
]; ];
this.specificationData = specificationData; let arr1 = datas.serviceRequestSpcs.spcs_type_1 || [];
let arr2 = datas.serviceRequestSpcs.spcs_type_2 || [];
let arr = arr1.concat(arr2);
arr.map((item) => {
item.type = item.spcs_type == 1 ? "计次收费规格" : "时长收费规格";
item.spce =
item.spcs_type == 1
? `${item.money}金币/${item.spcs_count}次(${(
item.money / item.spcs_count
).toFixed(2)}金币/1次)`
: `${item.money}金币/月(次数不限)`;
item.times = item.spcs_type == 1 ? "不限时长" : "按月";
});
this.providerData = { this.providerData = {
organization_name: datas.organization_name, organization_name: datas.organization_name,
picture_path: datas.organization_picture, picture_path: datas.organization_picture,
user_name: datas.register_user_info.user_name, user_name: datas.register_user_info.user_name,
phone: datas.register_user_info.phone, phone: datas.register_user_info.phone,
serviceRequestSpcsTable: arr,
}; };
this.commentsData = datas.scoreDetail; this.commentsData = datas.scoreDetail;
}) })
......
...@@ -163,7 +163,7 @@ export default { ...@@ -163,7 +163,7 @@ export default {
this.service_arr[0]["size"] ="应用镜像部署权限:"+data.price+"金币/月"; this.service_arr[0]["size"] ="应用镜像部署权限:"+data.price+"金币/月";
this.service_arr[0]["applytype"] = this.service_arr[0]["applytype"] =
"申请方式:" + (app_data.duration_unit == 1 ? "" : ""); "申请方式:" + (app_data.duration_unit == 1 ? "" : "");
this.service_arr[0]["num"] = app_data.duration; this.service_arr[0]["num"] = `${app_data.duration}个月`;
this.service_arr[0]["count"] = app_data.duration*parseFloat(data.price)+'金币'; this.service_arr[0]["count"] = app_data.duration*parseFloat(data.price)+'金币';
this.service_arr[0]["isMg"] = false; this.service_arr[0]["isMg"] = false;
this.service_arr[0]["isapp"] = true; this.service_arr[0]["isapp"] = true;
...@@ -205,18 +205,20 @@ export default { ...@@ -205,18 +205,20 @@ export default {
data.request_spcs_info.forEach((el) => { data.request_spcs_info.forEach((el) => {
if (service_data.spec_id == el.id) { if (service_data.spec_id == el.id) {
let size = ""; let size = "";
let count = "";
if (el.spcs_type==1) { if (el.spcs_type==1) {
size = `${el.money}金币/${el.spcs_count}次` size = `计次收费:${el.money}金币/${el.spcs_count}次`;
this.service_arr[0]["num"] = "不限时长" this.service_arr[0]["num"] = "不限时长"
count = el.money;
} else { } else {
size = `${el.money}金币/${el.duration_unit == 1 ? "" : ""}` size = `${el.money}金币/${el.duration_unit == 1 ? "" : ""}`;
this.service_arr[0]["num"] = service_data.duration; this.service_arr[0]["num"] = service_data.duration + (el.duration_unit == 1 ? "个月" : "");
count = service_data.duration*el.money;
} }
this.service_arr[0]["size"] = size; this.service_arr[0]["size"] = size;
this.service_arr[0]["count"] = service_data.duration*el.money+'金币'; this.service_arr[0]["count"] = count+'金币';
this.all_cost = service_data.duration*el.money this.all_cost = count;
} }
}); });
this.service_arr[0]["applytype"] = this.service_arr[0]["applytype"] =
...@@ -378,7 +380,7 @@ export default { ...@@ -378,7 +380,7 @@ export default {
this.service_arr[l]["size"] ="应用镜像部署权限:"+e.application.price+"金币/月"; this.service_arr[l]["size"] ="应用镜像部署权限:"+e.application.price+"金币/月";
this.service_arr[l]["applytype"] = this.service_arr[l]["applytype"] =
"申请方式:" + (e.duration_method == 1 ? "" : ""); "申请方式:" + (e.duration_method == 1 ? "" : "");
this.service_arr[l]["num"] = e.duration; this.service_arr[l]["num"] = `${e.duration}${e.duration_unit == 1 ? "个月" : ""}`;
this.service_arr[l]["count"] = e.duration*parseFloat(e.application.price)+'金币'; this.service_arr[l]["count"] = e.duration*parseFloat(e.application.price)+'金币';
this.service_arr[l]["isMg"] = false; this.service_arr[l]["isMg"] = false;
this.service_arr[l]["isapp"] = true; this.service_arr[l]["isapp"] = true;
...@@ -402,7 +404,7 @@ export default { ...@@ -402,7 +404,7 @@ export default {
let spcs_type_2 = e.service.request_spcs_info.spcs_type_2 || []; let spcs_type_2 = e.service.request_spcs_info.spcs_type_2 || [];
spcs_type_1.forEach((el,ind) => { spcs_type_1.forEach((el,ind) => {
if (e.spec_id == el.id) { if (e.spec_id == el.id) {
this.service_arr[l]["size"] = `时长收费:${el.money}金币/${el.spcs_count}次 * ${e.duration}`; this.service_arr[l]["size"] = `计次收费:${el.money}金币/${el.spcs_count}`;
this.service_arr[l]["num"] = "不限时长"; this.service_arr[l]["num"] = "不限时长";
this.service_arr[l]["count"] = e.duration*el.money+'金币'; this.service_arr[l]["count"] = e.duration*el.money+'金币';
temp_cost = this.floatAdd(temp_cost, e.duration*el.money); temp_cost = this.floatAdd(temp_cost, e.duration*el.money);
...@@ -410,8 +412,8 @@ export default { ...@@ -410,8 +412,8 @@ export default {
}); });
spcs_type_2.forEach((el,ind) => { spcs_type_2.forEach((el,ind) => {
if (e.spec_id == el.id) { if (e.spec_id == el.id) {
this.service_arr[l]["size"] = `应用镜像部署权限${el.money}金币/${el.duration_unit == 1 ? "" : ""}`; this.service_arr[l]["size"] = `时长收费${el.money}金币/${el.duration_unit == 1 ? "" : ""}`;
this.service_arr[l]["num"] = e.duration; this.service_arr[l]["num"] = `${e.duration}${el.duration_unit == 1 ? "个月" : ""}`;
this.service_arr[l]["count"] = e.duration*el.money+'金币'; this.service_arr[l]["count"] = e.duration*el.money+'金币';
temp_cost = this.floatAdd(temp_cost, e.duration*el.money); temp_cost = this.floatAdd(temp_cost, e.duration*el.money);
} }
......
<template>
<div class="shop_list_cont">
<el-container>
<el-aside width="176px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main class="main_init">
<shop-cloud name="云资源服务"></shop-cloud>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service-list/service_shop_menu-new";
import ShopCloud from "@/components/shop-cloud/shop-cloud-new";
export default {
components: {
ServiceShopMenu,
ShopCloud
},
data: () => ({}),
mounted() {},
methods: {}
};
</script>
<style scoped>
.shop_list_cont {
width: 1200px;
margin: 0 auto;
position: relative;
}
.main_init {
padding: 2px 0 16px 16px;
}
</style>
\ No newline at end of file
<template>
<div class="shop_list_cont">
<el-container>
<el-aside width="176px">
<service-shop-menu></service-shop-menu>
</el-aside>
<el-main class="main_init">
<service-list
:filterNames="filterNames"
:name="name"
:url="url"
:urlFilter="urlFilter"
></service-list>
</el-main>
</el-container>
</div>
</template>
<script>
import ServiceShopMenu from "@/components/service-list/service_shop_menu-new";
import ServiceList from "@/components/service-list/service_list-new";
import BlockRadius from "@/components/general/block-radius";
export default {
components: {
ServiceShopMenu,
ServiceList,
BlockRadius,
},
data: () => ({
urlFilter: "",
url: "",
name: "",
filterNames: [],
}),
mounted() {
this.getVal(this.$route.path);
},
methods: {
getVal(val) {
let uri = val.substring(6);
uri = uri.substring(0, uri.indexOf("/"));
switch (uri) {
case "data_service_list":
this.name = "数据服务";
this.urlFilter = "5";
this.url = "/shop/sjfwDetail";
this.filterNames = ["数据服务类型", "服务领域", "数据来源机构"];
break;
case "space_time_service_list":
this.name = "时空服务";
this.urlFilter = "6";
this.url = "/shop/skfwDetail";
this.filterNames = ["时空服务类型", "服务领域", "服务来源组织"];
break;
case "video_service_list":
this.name = "视频服务";
this.urlFilter = "7";
this.url = "/shop/spfwDetail";
this.filterNames = ["", "服务领域", "服务来源组织"];
break;
case "perception_service_list":
this.name = "感知服务";
this.urlFilter = "10";
this.url = "/shop/gzfwDetail";
this.filterNames = ["", "服务领域", "服务来源组织"];
break;
case "comprehensive_app_list":
this.name = "融合服务";
this.urlFilter = "21";
this.url = "/shop/zhfwDetail";
this.filterNames = ["服务类型", "服务领域", "服务来源组织"];
break;
case "app_store_list":
this.name = "应用商店";
this.urlFilter = "app";
this.url = "/shop/yysdDetail";
this.filterNames = ["应用类型", "应用领域", "应用来源机构"];
break;
default:
this.name = "";
this.urlFilter = "";
this.url = "";
this.filterNames = [];
break;
}
},
},
watch: {
"$route.path": {
handler(val) {
this.getVal(val);
},
},
},
};
</script>
<style lang="less" scoped>
.default {
height: calc(100vh - 180px);
display: flex;
align-items: center;
justify-content: center;
margin: 0;
.default_img {
width: 1282px;
height: 629px;
.default_title {
color: #264dd9;
font-size: 44px;
font-weight: bold;
margin-bottom: 30px;
}
.default_msg {
color: #58617a;
font-size: 24px;
line-height: 44px;
}
}
}
</style>
<style scoped>
.default_img {
background: url("~@/assets/imgs/img_default_quesheng.png") no-repeat center
center;
}
.shop_list_cont {
width: 1200px;
margin: 0 auto;
position: relative;
}
.main_init {
padding: 16px 0 16px 16px;
}
</style>
\ No newline at end of file
<template> <template>
<!-- <div class="shop_list_cont"> -->
<div> <div>
<el-container> <el-container>
<el-aside width="180px"> <el-aside width="180px">
...@@ -55,14 +56,14 @@ export default { ...@@ -55,14 +56,14 @@ export default {
case "video_service_list": case "video_service_list":
this.name = "视频服务"; this.name = "视频服务";
this.urlFilter = "7"; this.urlFilter = "7";
this.url = ""; this.url = "/shop/spfwDetail";
this.filterNames = []; this.filterNames = ["", "服务领域", "服务来源组织"];
break; break;
case "perception_service_list": case "perception_service_list":
this.name = "感知服务"; this.name = "感知服务";
this.urlFilter = "10"; this.urlFilter = "10";
this.url = ""; this.url = "/shop/gzfwDetail";
this.filterNames = []; this.filterNames = ["", "服务领域", "服务来源组织"];
break; break;
case "comprehensive_app_list": case "comprehensive_app_list":
this.name = "融合服务"; this.name = "融合服务";
...@@ -123,4 +124,9 @@ export default { ...@@ -123,4 +124,9 @@ export default {
background: url("~@/assets/imgs/img_default_quesheng.png") no-repeat center background: url("~@/assets/imgs/img_default_quesheng.png") no-repeat center
center; center;
} }
.shop_list_cont {
width: 1200px;
margin: 0 auto;
position: relative;
}
</style> </style>
...@@ -75,7 +75,7 @@ export default { ...@@ -75,7 +75,7 @@ export default {
descript: datas.descript, descript: datas.descript,
serviceRequestSpcs: datas.serviceRequestSpcs, serviceRequestSpcs: datas.serviceRequestSpcs,
scoreDetail: datas.scoreDetail, scoreDetail: datas.scoreDetail,
month_sale: data.month_sale, month_sale: datas.month_sale,
}; };
this.detailData = [ this.detailData = [
...@@ -85,25 +85,35 @@ export default { ...@@ -85,25 +85,35 @@ export default {
value: ["服务申请", "信息填写", "审核确认", "服务获取"], value: ["服务申请", "信息填写", "审核确认", "服务获取"],
}, },
{ {
name: "服务描述", name: "服务信息",
type: "text", type: "table-list",
value: datas.descript, value: {
}, data_service_type1_name: datas.data_service_type1_name,
{ data_service_type2_name: datas.data_service_type2_name,
name: "请求方式", sectors_name: datas.sectors_name,
type: "text", create_time: datas.create_time,
value: ["-", "GET", "POST", "PUT", "DELETE"][datas.req_type || 0], update_date: datas.update_date,
req_type: ["-", "GET", "POST", "PUT", "DELETE"][
datas.req_type || 0
],
encode_method: datas.encode_method,
}, },
{
name: "编码格式",
type: "text",
value: datas.encode_method,
}, },
// {
// name: "请求方式",
// type: "text",
// value: ["-", "GET", "POST", "PUT", "DELETE"][datas.req_type || 0],
// },
// {
// name: "编码格式",
// type: "text",
// value: datas.encode_method,
// },
{ {
name: "请求参数", name: "请求参数",
type: "table", type: "table",
value: { value: {
datas: this.getTableData(datas.req_fields), datas: this.getTableData(datas.req_query),
columns: [ columns: [
{ {
prop: "name", prop: "name",
...@@ -172,15 +182,29 @@ export default { ...@@ -172,15 +182,29 @@ export default {
}, },
}, },
]; ];
let arr1 = datas.serviceRequestSpcs.spcs_type_1 || [];
let arr2 = datas.serviceRequestSpcs.spcs_type_2 || [];
let arr = arr1.concat(arr2);
arr.map((item) => {
item.type = item.spcs_type == 1 ? "计次收费规格" : "时长收费规格";
item.spce =
item.spcs_type == 1
? `${item.money}金币/${item.spcs_count}次(${(
item.money / item.spcs_count
).toFixed(2)}金币/1次)`
: `${item.money}金币/月(次数不限)`;
item.times = item.spcs_type == 1 ? "不限时长" : "按月";
});
this.providerData = { this.providerData = {
organization_name: datas.organization_name, organization_name: datas.organization_name,
picture_path: datas.organization_picture, picture_path: datas.organization_picture,
user_name: datas.register_user_info.user_name, user_name: datas.register_user_info.user_name,
phone: datas.register_user_info.phone, phone: datas.register_user_info.phone,
serviceRequestSpcsTable: arr,
}; };
this.commentsData = datas.scoreDetail; this.commentsData = datas.scoreDetail;
}) })
.catch(function(error) { .catch(function (error) {
console.log(error); console.log(error);
}); });
}, },
......
...@@ -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,
}), }),
...@@ -61,17 +59,6 @@ export default { ...@@ -61,17 +59,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 = {
portal_id: datas.portal_id || "", // 时空服务id portal_id: datas.portal_id || "", // 时空服务id
...@@ -93,9 +80,9 @@ export default { ...@@ -93,9 +80,9 @@ export default {
datas.data_service_type3_name, datas.data_service_type3_name,
], ],
descript: datas.descript, descript: datas.descript,
serviceRequestSpcs: specificationData,
scoreDetail: datas.scoreDetail, scoreDetail: datas.scoreDetail,
month_sale: data.month_sale, month_sale: datas.month_sale,
serviceRequestSpcs: datas.serviceRequestSpcs,
}; };
this.detailData = [ this.detailData = [
...@@ -105,9 +92,19 @@ export default { ...@@ -105,9 +92,19 @@ export default {
value: ["服务申请", "信息填写", "审核确认", "服务获取"], value: ["服务申请", "信息填写", "审核确认", "服务获取"],
}, },
{ {
name: "服务描述", name: "服务信息",
type: "text", type: "table-list",
value: datas.descript, value: {
data_service_type1_name: datas.data_service_type1_name,
data_service_type2_name: datas.data_service_type2_name,
sectors_name: datas.sectors_name,
create_time: datas.create_time,
update_date: datas.update_date,
req_type: ["-", "GET", "POST", "PUT", "DELETE"][
datas.req_type || 0
],
encode_method: datas.encode_method,
},
}, },
/* { /* {
name: "服务属性", // TODO: replace name: "服务属性", // TODO: replace
...@@ -145,16 +142,29 @@ export default { ...@@ -145,16 +142,29 @@ export default {
], ],
}, */ }, */
]; ];
this.specificationData = specificationData; let arr1 = datas.serviceRequestSpcs.spcs_type_1 || [];
let arr2 = datas.serviceRequestSpcs.spcs_type_2 || [];
let arr = arr1.concat(arr2);
arr.map((item) => {
item.type = item.spcs_type == 1 ? "计次收费规格" : "时长收费规格";
item.spce =
item.spcs_type == 1
? `${item.money}金币/${item.spcs_count}次(${(
item.money / item.spcs_count
).toFixed(2)}金币/1次)`
: `${item.money}金币/月(次数不限)`;
item.times = item.spcs_type == 1 ? "不限时长" : "按月";
});
this.providerData = { this.providerData = {
organization_name: datas.organization_name, organization_name: datas.organization_name,
picture_path: datas.organization_picture, picture_path: datas.organization_picture,
user_name: datas.register_user_info.user_name, user_name: datas.register_user_info.user_name,
phone: datas.register_user_info.phone, phone: datas.register_user_info.phone,
serviceRequestSpcsTable: arr,
}; };
this.commentsData = datas.scoreDetail; this.commentsData = datas.scoreDetail;
}) })
.catch(function(error) { .catch(function (error) {
console.log(error); console.log(error);
}); });
}, },
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment