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

Merge branch 'dev'

parents 6c19c684 191d031d
......@@ -87,4 +87,3 @@ pipeline:
- source: REGISTRY_PASSWORD_ALIYUN
target: REGISTRY_PASSWORD
branches: [master,dev]
......@@ -9,6 +9,7 @@ package-lock.json
# Editor directories and files
.idea
.vscode
.VSCodeCounter
*.suo
*.ntvs*
*.njsproj
......
......@@ -4,7 +4,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<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>
body{
background-color: #f6f7fb;
......@@ -15,4 +15,4 @@
<body>
<div id="app"></div>
</body>
</html>
</html>
\ No newline at end of file
......@@ -261,15 +261,15 @@ div {
}
.el-tabs__item {
font-size: 16px;
font-size: 14px;
color: #8890a7;
line-height: 24px !important;
line-height: 14px !important;
font-weight: bold;
}
.el-tabs__nav-scroll .el-tabs__item {
line-height: 38px !important;
height: 44px !important;
line-height: 14px !important;
height: 38px !important;
}
.el-tabs__item:hover {
......@@ -499,7 +499,7 @@ border-radius:8px;
margin-left: 35px;
} */
.el-input__inner {
border-radius: 8px;
border-radius: 6px;
}
.el-input-group__append,
......
......@@ -8,6 +8,7 @@ export const lang = {
profile: "个人档案",
message_center: "消息中心",
my_questions_and_answers: "我的问答",
my_coin: "我的金币",
// unit of purchase duration
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 @@
:header="listHeader"
:data="listData"
:padding-left="listPaddingLeft"
:select="listSelect"
@select="selectAction"
></list-table>
</div>
......@@ -149,19 +148,21 @@ export default {
type: String,
default: () => "请输入关键字",
},
listSelect: {
type: Boolean,
default: false,
pageSize: {
type: Number,
default: () => 10,
},
pageSizes: {
type: Array,
default: () => [10, 20, 50],
},
},
data: () => ({
showListFilter: false,
filter: {},
searchValue: "",
pageSize: 10,
currentPage: 1,
timer: null,
pageSizes: [10, 20, 50],
selectFilter: [],
}),
watch: {
......@@ -241,6 +242,7 @@ export default {
},
},
mounted() {
console.log(this.pageSize);
this.initOtherFilter();
this.listAction();
},
......
......@@ -10,6 +10,7 @@
:file-list="fileList"
:before-upload="beforeUpload"
:on-success="uploadSuccess"
:on-remove="uploadRemove"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">
......@@ -83,8 +84,14 @@ export default {
},
uploadSuccess({ data }) {
this.$emit("change", data);
// 替换文件后要把旧文件删除掉
this.removePreFile();
},
uploadRemove() {
this.preUrl = this.url;
this.$emit("change", "");
this.removePreFile();
},
removePreFile() {
if (this.preUrl) {
this.$http
.delete("/apaas/static/file/delete", {
......
......@@ -25,7 +25,7 @@
<p class="app_card-text" v-if="cardType == 1">
<span>
<i class="el-icon-time"></i>
<span>上线时间:</span>
<span>部署时间:</span>
</span>
<span class="text_clip" v-text="getTimeText(data.created || '')"></span>
</p>
......@@ -92,7 +92,7 @@ export default {
.app_card > .remove_btn {
position: absolute;
top: 10px;
right: 10px;
right: 20px;
font-size: 20px;
color: #8890a7;
cursor: pointer;
......
<template>
<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">
<slot></slot>
</div>
......@@ -9,7 +9,7 @@
<script>
export default {
props: ['title','flag'],
props: ['title','flag','bgc'],
components: {
},
......
......@@ -89,23 +89,23 @@ export default {
level = 1;
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)) {
pre_h2_index++;
pre_h3_index = 0;
level = 2;
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)) {
pre_h3_index++;
level = 3;
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 {
level,
......@@ -127,6 +127,10 @@ export default {
this.curNav = item.id;
},
setScroll(el, parentEl) {
if (!el || !parentEl) {
return;
}
let actualTop = el.offsetTop;
let current = el.offsetParent;
......@@ -201,8 +205,8 @@ export default {
font-size: 14px;
line-height: 24px;
color: #8890a7;
padding-left: 20px;
background-image: url("/../assets/imgs/shop_ic_updatetime.png");
padding-left: 18px;
background-image: url("../assets/imgs/shop_ic_updatetime.png");
background-repeat: no-repeat;
background-position: left center;
}
......
<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 class="block_header_title">{{ title }}</div>
<div class="block_header_button_group">
......@@ -32,6 +32,14 @@ export default {
title: {
type: String,
default: ""
},
borRadius: {
type: Number,
default: 10,
},
paddingNum: {
type: Number,
default: 20,
}
},
components: {},
......@@ -56,7 +64,6 @@ export default {
.block_radius {
background-color: #fff;
box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05);
border-radius: 10px;
padding: 20px;
margin-bottom: 20px;
}
......
......@@ -93,10 +93,10 @@ a {
text-align: center;
color: #e6ebfe;
background-color: #515fe7;
border-radius: 8px;
border-radius: 6px;
display: inline-block;
font-size: 14px;
margin-left: 20px;
margin-left: 8px;
cursor: pointer;
}
</style>
<template>
<div class="menu">
<img src="../assets/imgs/img_logo.png" alt class="logo" />
<img src="../assets/imgs/nav-logo.png" alt class="logo" />
<div
style="float: right; cursor: pointer; position: relative"
class="user_hover"
......@@ -320,7 +320,7 @@ export default {
}
.logo {
float: left;
margin: 15px 0 0 40px;
margin: 22px 0 0 40px;
cursor: pointer;
}
.user {
......
......@@ -72,9 +72,9 @@
<el-col :span="5" class="cell_specification">
<div v-if="cellItem.order_type == 1">
<div>
{{ cellItem.spec_type == 1 ? "计次收费" : "时长收费" }}
{{ cellItem.spcs_type == 1 ? "计次收费" : "时长收费" }}
{{ cellItem.single_money }}金币/
{{ cellItem.spec_type == 1 ? cellItem.spec_count + "" : "" }}
{{ cellItem.spcs_type == 1 ? cellItem.spcs_count + "" : "" }}
</div>
</div>
<div v-else-if="cellItem.order_type == 2">
......@@ -192,6 +192,7 @@
<div v-else-if="cellItem.pay_status == -1">订单已取消</div>
<el-popover
v-if="
cellItem.order_type != 3 &&
cellItem.approval_second_level == 1 &&
cellItem.pay_status != -1 &&
cellItem.is_estimated == 0
......@@ -360,7 +361,7 @@ export default {
},
methods: {
addEvaluation() {
if (this.textarea == "" && this.serviceRate == null) {
if (this.textarea == "" || this.serviceRate == null) {
this.$message({
message: "请先完善评价内容",
type: "error",
......@@ -439,7 +440,7 @@ export default {
if (this.cellItem.order_type == 1) {
query = {
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_unit: this.cellItem.duration_unit,
};
......
......@@ -41,16 +41,16 @@ export default {
this.$emit("delete-action", item);
},
pageResize() {
let listWidth = this.$refs.container.clientWidth;
this.rowNum = Math.floor(listWidth / 310);
// let listWidth = this.$refs.container.clientWidth;
// this.rowNum = Math.floor(listWidth / 310);
},
},
mounted() {
this.pageResize();
window.addEventListener("resize", this.pageResize);
// this.pageResize();
// window.addEventListener("resize", this.pageResize);
},
destroyed() {
window.removeEventListener("resize", this.pageResize);
// window.removeEventListener("resize", this.pageResize);
},
};
</script>
......
......@@ -69,8 +69,9 @@ export default {
},
watch: {
"data.checked"(val) {
// debugger
this.checked = val===1;
}
},
},
computed: {},
created() {
......
......@@ -306,7 +306,8 @@ export default {
.info_detail p {
color: #8890a7;
}
.info_detail span {
.info_detail span,
.info_detail a {
color: #242c43;
font-weight: 600;
margin-right: 48px;
......
<template>
<div class="service_info apaas_button" v-if="data">
<div class="service_title">
<span class="service_name" v-text="data.app_name"></span>
<span class="service_access_info">
<img :src="require('@/assets/imgs/icon_liulan.png')" />
<span v-text="'浏览次数:' + data.view_count"></span>
</span>
<span class="service_access_info">
<img :src="require('@/assets/imgs/icon_huoqu.png')" />
<span v-text="'部署次数:' + data.deploy_times"></span>
</span>
</div>
<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">
<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="service_title">
<span class="service_name" v-text="data.app_name"></span>
<span class="service_access_info">
<img :src="require('@/assets/imgs/icon_liulan.png')" />
<span v-text="data.view_count + '次浏览'"></span>
</span>
<span class="service_access_info">
<img :src="require('@/assets/imgs/icon_huoqu.png')" />
<span v-text="'本月' + data.apply_times + '次获取'"></span>
</span>
</div>
<p class="des_p">{{ data.yyjj }}</p>
<div class="jiage_d">
<div class="dbn_wkdn">
&nbsp;&nbsp;格:
<span class="ndwa_indowa"> {{ data.price * duration }} </span>
......@@ -48,38 +36,44 @@
</div>
</div>
<div class="commodity_information">
<span>&emsp;&emsp;格:</span>
<div class="btn_container_ddaw">
{{ data.price }} 金币/月
</div>
<span class="guige_title">&emsp;&emsp;格:</span>
<div class="spec_btn_act">申请获取应用镜像部署权限</div>
</div>
<div class="spec_des">
{{ `申请获取应用镜像部署权限,每月${data.price}金币。` }}
</div>
<div class="commodity_information">
<span>购买时长:</span>
<span class="guige_title">购买时长:</span>
<div class="btn_container">
<el-input-number
v-model="duration"
:min="1"
:disabled="actionDisabled"
></el-input-number>
></el-input-number
>
</div>
</div>
<div class="commodity_action">
<el-button type="warning" plain @click="addToCart">
加入购物车
</el-button>
<el-button type="warning" @click="applyImmediately">
<el-button class="service_now_buy" @click="applyImmediately">
立即申请
</el-button>
<el-button class="service_add_cart" @click="addToCart">
加入购物车
</el-button>
</div>
</div>
</div>
</div>
</BlockRadius>
</template>
<script>
import BlockRadius from "@/components/general/block-radius";
export default {
components: {
BlockRadius,
},
props: {
data: {
datas: {
type: Object,
default: () => null,
},
......@@ -97,7 +91,18 @@ export default {
],
specificationID: 1,
duration: 1,
data: {},
}),
watch: {
datas: {
handler(val) {
this.data = val;
console.log(this.data);
},
deep: true,
immediate: true,
},
},
computed: {
actionDisabled() {
return this.specifications.length == 0;
......@@ -159,27 +164,24 @@ export default {
</script>
<style scoped>
.service_info {
padding: 35px 20px 40px;
background-color: #fff;
margin-bottom: 20px;
}
.main_container {
display: flex;
justify-content: flex-start;
justify-content: space-between;
align-items: flex-start;
margin-top: 25px;
margin: 8px 8px 0;
}
.main_container-left {
width: 270px;
padding: 3px;
background-color: #f9fafc;
margin-right: 30px;
width: 200px;
height: 200px;
padding: 2px;
background-color: #f6f7fb;
font-size: 0;
position: relative;
}
.main_container-left img {
width: 100%;
height: 100%;
border-radius: 6px;
}
.main_container-left > .map_view {
position: absolute;
......@@ -187,7 +189,7 @@ export default {
bottom: 3px;
}
.main_container-right {
flex-grow: 1;
width: 896px;
}
.service_title {
display: flex;
......@@ -199,8 +201,21 @@ export default {
font-weight: bold;
color: #0d1847;
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 {
flex-shrink: 0;
font-size: 14px;
......@@ -212,11 +227,11 @@ export default {
vertical-align: middle;
}
.service_title > .service_access_info > img {
width: 19px;
width: 12px;
margin-right: 5px;
}
.service_base_info {
padding: 25px 20px;
padding: 18px;
background-color: #f9fafc;
border-radius: 8px;
}
......@@ -233,26 +248,27 @@ export default {
margin-top: 18px;
}
.service_base_info > li > span:first-child,
.commodity_information > span:first-child {
flex-shrink: 0;
white-space: nowrap;
.guige_title {
color: #8890a7;
width: 100px;
margin-right: 20px;
text-align: right;
}
.service_base_info > li > span:nth-child(2) {
color: #242c43;
}
.commodity_information {
margin-top: 30px;
margin-top: 16px;
}
.commodity_information > span:nth-child(2) {
color: #58617a;
}
.commodity_information > span:first-child {
line-height: 40px;
line-height: 36px;
}
.commodity_information > .commodity_text {
flex-grow: 1;
padding: 13px 18px;
padding: 8px 18px;
background-color: #f9fafc;
border-radius: 5px;
}
......@@ -266,27 +282,40 @@ export default {
.commodity_information > .btn_container > .el-input-number {
margin: 0 20px 15px 0;
}
.btn_container_ddaw {
line-height: 40px;
margin-left: 5px;
}
.commodity_action {
margin-top: 60px;
text-align: right;
.spec_btn {
height: 36px;
padding: 7px 18px 6px;
background-color: #ffffff;
border-radius: 6px;
border: solid 1px #dcdfe6;
font-size: 14px;
line-height: 20px;
color: #58617a;
margin-right: 8px;
margin-bottom: 8px;
cursor: pointer;
}
.commodity_action > .el-button {
width: 220px;
margin-left: 20px;
font-size: 16px;
.spec_btn_act {
height: 36px;
padding: 7px 18px 6px;
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 {
background-color: #f9fafc;
border-radius: 8px;
padding: 20px;
display: flex;
justify-content: space-between;
margin-top: 20px;
align-items: center;
.commodity_action {
margin-top: 16px;
margin-left: 120px;
}
.dbn_wkdn {
color: #8890a7;
......@@ -311,6 +340,7 @@ export default {
color: #ea7d19;
font-size: 18px;
position: relative;
font-weight: bold;
}
.dwin_diwa {
width: 14px;
......@@ -328,6 +358,82 @@ export default {
top: 5px;
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>
......@@ -355,4 +461,7 @@ export default {
.service_info .el-input-number .el-input__inner {
border-width: 2px;
}
.service_info .el-input-number {
width: 128px;
}
</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
......@@ -170,4 +170,4 @@ export default {
background-color: #1d3694;
color: #f8f9fd;
}
</style>
\ No newline at end of file
</style>
<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
......@@ -205,4 +205,4 @@ export default {
.com_cell_right .el-rate__icon {
font-size: 28px;
}
</style>
\ No newline at end of file
</style>
<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
......@@ -215,4 +215,4 @@ export default {
border: 0;
padding: 0;
}
</style>
\ No newline at end of file
</style>
This diff is collapsed.
......@@ -190,7 +190,7 @@
</template>
<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";
export default {
components: {
......@@ -410,6 +410,9 @@ export default {
this.filterLists[3].childDomains = data.organizations
? data.organizations
: [];
if (this.urlFilter == "7") {
this.filterLists[1].childDomains = [];
}
setTimeout(() => {
this.judgeHeight();
}, 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 @@
>
<h3 class="detail-title" v-text="item.name + ':'"></h3>
<service-steps
v-if="item.type == 'step'"
:data="item.value"
></service-steps>
<div class="step_div" v-if="item.type == 'step'">
<img
class="step_img"
: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
v-else-if="item.type == 'text'"
class="detail-text"
......@@ -21,6 +29,34 @@
class="detail-code"
v-html="item.value"
></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
v-else-if="item.type == 'workflows'"
:id="item.value"
......@@ -68,6 +104,7 @@
<script>
import serviceSteps from "@/components/service-tabs/service-steps";
import workflowsView from "@/components/work-flow/workflows-view";
import helper from "@/services/helper.js";
export default {
components: {
......@@ -80,18 +117,31 @@ export default {
required: true,
},
},
data() {
return {
helper
}
}
};
</script>
<style scoped>
.step_div {
margin-top: 16px;
}
.step_img {
width: 1140px;
height: 152px;
}
.detail-item:not(:last-child) {
margin-bottom: 20px;
}
.detail-item .detail-title {
font-size: 14px;
line-height: 25px;
line-height: 14px;
color: #8890a7;
margin-bottom: 3px;
margin-bottom: 8px;
margin-left: 8px;
}
.detail-item .detail-text {
word-break: break-all;
......@@ -111,4 +161,44 @@ export default {
line-height: 25px;
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>
<template>
<div class="service_tab-provider" v-if="data">
<div class="provider-left">
<el-avatar
shape="square"
:size="156"
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 class="pro_title">机构信息:</div>
<div class="pro_div">
<div class="pro_img_d">
<img :src="data.picture_path" class="pro_img" />
</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 class="pro_title">{{ isApp ? '应用规格:' : '服务规格:'}}</div>
<table-um
ref="apply_service_state_table"
:headers="isApp ? dataHeadersApp : dataHeaders"
:stripe="false"
:datas="data.serviceRequestSpcsTable"
></table-um>
</div>
</template>
<script>
import TableUm from "@/components/table/table-um";
export default {
props: {
data: {
type: Object,
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>
<style scoped>
.service_tab-provider {
display: flex;
justify-content: flex-start;
align-items: flex-start;
}
.provider-left {
flex-shrink: 0;
padding: 3px;
background-color: #f6f7fb;
border-radius: 9px;
font-size: 0;
}
.provider-left > .el-avatar--square {
border-radius: 7px;
.pro_title {
font-size: 14px;
line-height: 14px;
color: #8890a7;
margin-bottom: 8px;
margin-left: 8px;
}
.provider-right {
flex-grow: 1;
margin-left: 20px;
.pro_div {
display: grid;
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 {
font-size: 20px;
font-weight: bold;
color: #0d1847;
line-height: 36px;
.pro_img_d {
width: 88px;
height: 89px;
padding: 8px;
grid-row-start: 1;
grid-row-end: 3;
background-color: #fff;
}
.provider-right > .provider_info {
padding: 20px;
background-color: #f6f7fb;
border-radius: 6px;
margin-top: 20px;
.pro_img {
width: 100%;
height: 100%;
}
.provider-right > .provider_info > p {
font-size: 14px;
color: #242c43;
line-height: 25px;
.pro_1 {
grid-column-start: 2;
grid-column-end: 4;
line-height: 44px;
padding-left: 24px;
background-color: #fff;
}
.provider-right > .provider_info > p:not(:first-child) {
margin-top: 16px;
.pro_2 {
line-height: 44px;
padding-left: 24px;
background-color: #fff;
}
.provider-right > .provider_info > p > span:first-child {
color: #8890a7;
.pro_3 {
line-height: 44px;
padding-left: 24px;
background-color: #fff;
}
</style>
<template>
<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-column width="30"></el-table-column>
<el-table-column prop="name" label="规格" width="360"></el-table-column>
......@@ -21,22 +17,12 @@ export default {
},
props: {
data: {
type: Array,
type: Object,
required: true,
},
},
data: () => ({
type: 1,
types: [
{
name: "按月",
value: 1,
},
{
name: "按年",
value: 2,
},
],
}),
computed: {
tableData() {
......
......@@ -13,23 +13,12 @@
></service-tab-detail>
</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">
<service-tab-provider
class="service_info"
:data="providerData"
:isApp="detailTitle == '应用详情信息'"
></service-tab-provider>
</el-tab-pane>
......@@ -78,8 +67,8 @@ export default {
detailData: {
type: Array,
},
specificationData: {
type: Array,
serviceRequestSpcs: {
type: Object,
},
providerData: {
type: Object,
......@@ -105,8 +94,11 @@ export default {
<style scoped>
.service_info_tab {
border: none;
box-shadow: none;
box-shadow: 0px 4px 8px 0px
rgba(0, 7, 101, 0.04);
border-radius: 8px;
margin-bottom: 30px;
overflow: hidden;
}
.service_info {
padding: 35px 40px 40px;
......@@ -127,15 +119,33 @@ export default {
background-color: #fff;
border-top: 4px solid #fff;
border-bottom: 2px solid #f4f7fc;
font-size: 15px;
font-weight: normal;
}
.service_info_tab.el-tabs--border-card
> .el-tabs__header
.el-tabs__item.is-active {
border-top: 4px solid #f5ab4c;
border-right: 2px solid #fcefd6;
border-top: 4px solid #fff;
border-right: 2px solid #f4f7fc;
border-bottom: 2px solid #fff;
border-left: 2px solid #fcefd6;
border-left: 2px solid #f4f7fc;
border-radius: 6px 6px 0 0;
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
> .el-tabs__header
......
This diff is collapsed.
......@@ -128,6 +128,7 @@
{{ item.money }}金币/{{ item.spcs_count }}
</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="
specificationPop.spcs_type == 2
? 'shopping_cell_specification_btn active'
......@@ -315,13 +316,8 @@ export default {
this.specificationApplicationPop = val;
},
submitPop() {
this.cellItems.service.spcs_info =
this.specificationPop.spcs_type == 1
? 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.cellItems.service.spcs_info = this.specificationPop;
this.visible = false;
this.updateShoppingCart();
},
setSpecificationPop() {
......@@ -364,7 +360,7 @@ export default {
let query = {
id: this.cellItems.id,
duration: this.cellItems.duration,
spec_id: this.cellItems.spec_id,
spec_id: this.specificationPop.id,
duration_method: this.cellItems.duration_method,
is_subscribe: Number(this.cellItems.is_subscribe),
};
......
......@@ -60,7 +60,7 @@
<el-col :span="15" class="shopping_cart_options_num">
<div class="fyzj">
<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 class="fyzj_span">
......@@ -73,7 +73,7 @@
{{ list.length }} 项服务,已选择
<span class="dwa_djf">{{ getNum }}</span>
<span class="ckfymx_qian"
>账户余额:{{ userInfo.account_balance }} 金币</span
>账户余额:{{ user_info.account_balance }} 金币</span
>
</p>
</div>
......@@ -81,7 +81,7 @@
</el-col>
<el-col :span="4" class="shopping_cart_options_cell">
<el-button
v-if="getNum != 0 && getSumCoin <= userInfo.account_balance"
v-if="getNum != 0 && getSumCoin <= user_info.account_balance"
@click="oneClickApplication"
class="shopping_cart_options_cell_btn_act"
>一键申请</el-button
......@@ -101,7 +101,6 @@
<script>
import ShoppingCartList from "@/components/shopping-cart/shopping-cart-list";
import { mapState } from "vuex";
export default {
components: {
......@@ -114,9 +113,11 @@ export default {
checkListIn: [],
list: [],
listIn: [],
user_info: {},
}),
mounted() {
this.getList();
this.getUserCoins();
},
computed: {
getNum() {
......@@ -132,9 +133,9 @@ export default {
this.checkList.forEach((item, index) => {
if (item) {
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 {
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 {
getCartState() {
return this.$store.state.cartState;
},
...mapState(["userInfo"]),
},
watch: {
getCartState(newVal) {
......@@ -151,6 +151,13 @@ export default {
},
},
methods: {
getUserCoins() {
this.$api.user.getUserCoins().then((response) => {
if (response.data.success == 1) {
this.user_info = response.data.data;
}
});
},
getList() {
this.$api.serviceShop.getShoppingCart().then((response) => {
if (response.data.success == "1") {
......@@ -158,6 +165,7 @@ export default {
this.listIn = response.data.data.invalid || [];
this.checkList = [];
this.checkListIn = [];
this.checkShopAll = false;
for (let index in this.list) {
this.checkList.push(false);
}
......
......@@ -66,10 +66,6 @@ export default {
type: Array,
default: () => [],
},
imgSrc: {
type: String,
default: "tool_fuwu",
},
},
methods: {
titleAction() {
......@@ -103,6 +99,7 @@ export default {
}
.side_nav_bar_title > span {
font-size: 16px;
line-height: 20px;
color: #c3caf8;
}
.side_nav_bar_list > li > a {
......
......@@ -452,6 +452,7 @@ export default {
},
datas: {
handler(val) {
console.log(val)
this.getDataFromApiSync();
},
deep: true
......
<template>
<div class="workflows-view" ref="flowContainer" :style="{zoom:zoom,}">
<div class="workflows-view" ref="flowContainer" :style="{ zoom: zoom }">
<super-flow
ref="superFlow"
:node-list="nodeList"
......@@ -23,6 +23,14 @@
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>
</div>
<el-tooltip v-else effect="dark" placement="right-start">
......@@ -40,6 +48,14 @@
</div>
</div>
<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 class="example-count" v-text="meta.running_nodes || 0"></span>
</div>
......@@ -60,10 +76,10 @@ export default {
type: Boolean,
default: false,
},
zoom:{
type:Number,
default:1,
}
zoom: {
type: Number,
default: 1,
},
},
data() {
return {
......@@ -91,8 +107,8 @@ export default {
])
.then((response) => {
let data = response[0].data.data;
let nodeList = data.nodeList||[];
let linkList = data.linkList||[];
let nodeList = data.nodeList || [];
let linkList = data.linkList || [];
let nodes = response[1].data.data;
nodes.forEach((node) => {
......@@ -109,7 +125,7 @@ export default {
this.nodeList = nodeList;
this.linkList = linkList;
})
.catch(function(error) {
.catch(function (error) {
console.log(error);
});
},
......@@ -170,6 +186,20 @@ export default {
background-color: #f78181;
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 {
position: absolute;
right: -14px;
......
......@@ -2,6 +2,8 @@
<div class="organization_list">
<apass-list
@list-action="initDatas"
:page-size="20"
:page-sizes="[20, 50]"
search-placeholder="请输入关键字"
:list-total="listTotal"
>
......
......@@ -110,7 +110,6 @@ export default {
watch: {},
computed: {},
created() {
this.refreshData()
this.user_info()
},
mounted() {
......@@ -179,7 +178,7 @@ export default {
.post(
`/apaas/backmgt/user/recharge`,{
"user_id":this.user_info1.user_id,
     "num":parseInt(this.money_num)
     "num":this.money_num+''
}
).then((res)=>{
if(res.data.success){
......@@ -194,11 +193,12 @@ export default {
refreshData(){
this.$http
.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)=>{
if(res.data.success){
console.log(res.data.data);
this.tableData = res.data.data
this.total_list = res.data.total
}
})
},
......@@ -209,7 +209,8 @@ export default {
).then((res)=>{
if(res.data.success){
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 {
right_3_state: 0,
last_id: 0,
mult_data_state: [
{ name: "正常", value: 0 },
{ name: "警告", value: 0 },
{ name: "错误", value: 0 },
{ name: "健康", value: 0 },
{ name: "未使用", value: 0 },
{ name: "故障", value: 0 },
{ name: "警告", value: 0 },
],
mult_data: [
{ name: "数据服务", value: 0 },
......@@ -535,7 +535,25 @@ export default {
getServiceHealth() {
this.$api.dataAnalysis.getServiceHealth().then((response) => {
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 {
})
.then(({ data }) => {
if (data.success === 1) {
this.hotSeviceData = data.data.map((item, index) => ({
let arr = data.data || [];
this.hotSeviceData = arr.map((item, index) => ({
...item,
hotIndex: index + 1,
}));
......
......@@ -309,10 +309,10 @@ export default {
right_3_state: 0,
last_id: 0,
mult_data_state: [
{ name: "正常", value: 0 },
{ name: "警告", value: 0 },
{ name: "错误", value: 0 },
{ name: "健康", value: 0 },
{ name: "未使用", value: 0 },
{ name: "故障", value: 0 },
{ name: "警告", value: 0 },
],
mult_data: [
{ name: "数据服务", value: 0 },
......@@ -529,7 +529,25 @@ export default {
getServiceHealth() {
this.$api.dataAnalysis.getServiceHealth().then((response) => {
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 @@
<script>
// @ 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";
export default {
components: {
......
......@@ -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) {
// console.log(val);
// debugger
if(val.check){
this.selected_arr.push(val.data)
}else{
......@@ -131,18 +142,14 @@ export default {
});
this.selected_arr.splice(temp,1)
}
this.change_select_able(val,val.check?1:0)
},
rank_value(val) {
// console.log(val);
// debugger
var index = val.position=='start'?0:val.position=='end'?this.selected_arr.length-1:val.position
if(val.act==2){
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", 0);
break;
}
}
this.change_select_able(val,0)
this.selected_arr.splice(index,1)
}else if(val.act==1){
var temp = this.selected_arr.splice(index,1)
......@@ -151,6 +158,7 @@ export default {
var temp = this.selected_arr.splice(index,1)
this.selected_arr.splice(index-1, 0, temp[0])
}
},
get_select_data() {
console.log(this.$route.query);
......
......@@ -4,7 +4,7 @@
<el-breadcrumb separator="/">
<el-breadcrumb-item to="/shop">服务超市</el-breadcrumb-item>
<el-breadcrumb-item to="/shop/data_service_list/5">
数据服务
感知服务
</el-breadcrumb-item>
<el-breadcrumb-item>服务详情信息</el-breadcrumb-item>
</el-breadcrumb>
......@@ -14,7 +14,6 @@
<service-tabs
:detail-data="detailData"
:specification-data="specificationData"
:provider-data="providerData"
:comments-data="commentsData"
:comments-url="commentsUrl"
......@@ -34,7 +33,6 @@ export default {
data: () => ({
baseInfo: null,
detailData: null,
specificationData: null,
providerData: null,
commentsData: null,
}),
......@@ -56,18 +54,6 @@ export default {
})
.then(({ 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 = {
service_id: this.id,
app_id: 0,
......@@ -87,9 +73,9 @@ export default {
datas.data_service_type3_name,
],
descript: datas.descript,
serviceRequestSpcs: specificationData,
serviceRequestSpcs: datas.serviceRequestSpcs,
scoreDetail: datas.scoreDetail,
month_sale: data.month_sale,
month_sale: datas.month_sale,
};
this.detailData = [
......@@ -99,20 +85,30 @@ export default {
value: ["服务申请", "信息填写", "审核确认", "服务获取"],
},
{
name: "服务描述",
type: "text",
value: datas.descript,
},
{
name: "请求方式",
type: "text",
value: ["-", "GET", "POST", "PUT", "DELETE"][datas.req_type || 0],
},
{
name: "编码格式",
type: "text",
value: datas.encode_method,
name: "服务信息",
type: "table-list",
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: "请求方式",
// type: "text",
// value: ["-", "GET", "POST", "PUT", "DELETE"][datas.req_type || 0],
// },
// {
// name: "编码格式",
// type: "text",
// value: datas.encode_method,
// },
{
name: "请求参数",
type: "table",
......@@ -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 = {
organization_name: datas.organization_name,
picture_path: datas.organization_picture,
user_name: datas.register_user_info.user_name,
phone: datas.register_user_info.phone,
serviceRequestSpcsTable: arr,
};
this.commentsData = datas.scoreDetail;
})
......
......@@ -163,7 +163,7 @@ export default {
this.service_arr[0]["size"] ="应用镜像部署权限:"+data.price+"金币/月";
this.service_arr[0]["applytype"] =
"申请方式:" + (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]["isMg"] = false;
this.service_arr[0]["isapp"] = true;
......@@ -205,18 +205,20 @@ export default {
data.request_spcs_info.forEach((el) => {
if (service_data.spec_id == el.id) {
let size = "";
let count = "";
if (el.spcs_type==1) {
size = `${el.money}金币/${el.spcs_count}次`
size = `计次收费:${el.money}金币/${el.spcs_count}次`;
this.service_arr[0]["num"] = "不限时长"
count = el.money;
} else {
size = `${el.money}金币/${el.duration_unit == 1 ? "" : ""}`
this.service_arr[0]["num"] = service_data.duration;
size = `${el.money}金币/${el.duration_unit == 1 ? "" : ""}`;
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]["count"] = service_data.duration*el.money+'金币';
this.all_cost = service_data.duration*el.money
this.service_arr[0]["count"] = count+'金币';
this.all_cost = count;
}
});
this.service_arr[0]["applytype"] =
......@@ -378,7 +380,7 @@ export default {
this.service_arr[l]["size"] ="应用镜像部署权限:"+e.application.price+"金币/月";
this.service_arr[l]["applytype"] =
"申请方式:" + (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]["isMg"] = false;
this.service_arr[l]["isapp"] = true;
......@@ -402,7 +404,7 @@ export default {
let spcs_type_2 = e.service.request_spcs_info.spcs_type_2 || [];
spcs_type_1.forEach((el,ind) => {
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]["count"] = e.duration*el.money+'金币';
temp_cost = this.floatAdd(temp_cost, e.duration*el.money);
......@@ -410,8 +412,8 @@ export default {
});
spcs_type_2.forEach((el,ind) => {
if (e.spec_id == el.id) {
this.service_arr[l]["size"] = `应用镜像部署权限${el.money}金币/${el.duration_unit == 1 ? "" : ""}`;
this.service_arr[l]["num"] = e.duration;
this.service_arr[l]["size"] = `时长收费${el.money}金币/${el.duration_unit == 1 ? "" : ""}`;
this.service_arr[l]["num"] = `${e.duration}${el.duration_unit == 1 ? "个月" : ""}`;
this.service_arr[l]["count"] = 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
......@@ -25,4 +25,4 @@ export default {
};
</script>
<style scoped>
</style>
\ No newline at end of file
</style>
<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>
<!-- <div class="shop_list_cont"> -->
<div>
<el-container>
<el-aside width="180px">
......@@ -55,14 +56,14 @@ export default {
case "video_service_list":
this.name = "视频服务";
this.urlFilter = "7";
this.url = "";
this.filterNames = [];
this.url = "/shop/spfwDetail";
this.filterNames = ["", "服务领域", "服务来源组织"];
break;
case "perception_service_list":
this.name = "感知服务";
this.urlFilter = "10";
this.url = "";
this.filterNames = [];
this.url = "/shop/gzfwDetail";
this.filterNames = ["", "服务领域", "服务来源组织"];
break;
case "comprehensive_app_list":
this.name = "融合服务";
......@@ -123,4 +124,9 @@ export default {
background: url("~@/assets/imgs/img_default_quesheng.png") no-repeat center
center;
}
</style>
\ No newline at end of file
.shop_list_cont {
width: 1200px;
margin: 0 auto;
position: relative;
}
</style>
......@@ -75,7 +75,7 @@ export default {
descript: datas.descript,
serviceRequestSpcs: datas.serviceRequestSpcs,
scoreDetail: datas.scoreDetail,
month_sale: data.month_sale,
month_sale: datas.month_sale,
};
this.detailData = [
......@@ -85,25 +85,35 @@ export default {
value: ["服务申请", "信息填写", "审核确认", "服务获取"],
},
{
name: "服务描述",
type: "text",
value: datas.descript,
},
{
name: "请求方式",
type: "text",
value: ["-", "GET", "POST", "PUT", "DELETE"][datas.req_type || 0],
},
{
name: "编码格式",
type: "text",
value: datas.encode_method,
name: "服务信息",
type: "table-list",
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: "请求方式",
// type: "text",
// value: ["-", "GET", "POST", "PUT", "DELETE"][datas.req_type || 0],
// },
// {
// name: "编码格式",
// type: "text",
// value: datas.encode_method,
// },
{
name: "请求参数",
type: "table",
value: {
datas: this.getTableData(datas.req_fields),
datas: this.getTableData(datas.req_query),
columns: [
{
prop: "name",
......@@ -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 = {
organization_name: datas.organization_name,
picture_path: datas.organization_picture,
user_name: datas.register_user_info.user_name,
phone: datas.register_user_info.phone,
serviceRequestSpcsTable: arr,
};
this.commentsData = datas.scoreDetail;
})
.catch(function(error) {
.catch(function (error) {
console.log(error);
});
},
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -88,7 +88,7 @@ export default {
this.editstr = ''
if(res.data.success){
this.$message.success('添加成功')
this.$router.push('/technical_support/answer_center/list')
this.$router.push({name: 'answerCenterList'})
}else{
this.$message.error('添加失败')
}
......
......@@ -6,7 +6,7 @@
技术支持
</el-breadcrumb-item>
<el-breadcrumb-item to="/technical_support/doc_manage">
开发文档
开发文档管理
</el-breadcrumb-item>
<el-breadcrumb-item> 文档编辑 </el-breadcrumb-item>
<el-breadcrumb-item> {{ title }} </el-breadcrumb-item>
......
......@@ -2,9 +2,9 @@
<div class="page_container">
<side-nav-bar
title="开发文档"
imgSrc="tool_ic_kaifawendang"
:nav-list="navList"
:title-path="activePath"
:title-icon="require('@/assets/imgs/tool_ic_kaifawendang.png')"
style="width: 250px;"
></side-nav-bar>
<div class="main_container">
......
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