|
|
@ -19,16 +19,37 @@ |
|
|
|
</div> |
|
|
|
<div class="salesStatistics common-area"> |
|
|
|
<h2 class="flex-between"> |
|
|
|
<b>销售统计 <span>2024–10-28数据</span></b> |
|
|
|
<b>销售统计 <span>{{ saleStats.date }}数据</span></b> |
|
|
|
<span class="hoverCommon" @click="lookMoreSystem">查看全部</span> |
|
|
|
|
|
|
|
</h2> |
|
|
|
<div class="salesStatistics-main flex"> |
|
|
|
<div class="sales-item flex" v-for="(item, index) in salesList" :key="item.name"> |
|
|
|
<img :src="require(`@/assets/home/sales${index + 1}.png`)" alt=""> |
|
|
|
<div class="sales-item flex"> |
|
|
|
<img :src="require(`@/assets/home/sales1.png`)" alt=""> |
|
|
|
<div class="column"> |
|
|
|
<p class="flex"><span class="number">{{ item.num }}</span> <span v-if="index < 2" class="unit">元</span></p> |
|
|
|
<span class="label">{{ item.label }}</span> |
|
|
|
<p class="flex"><span class="number">{{ saleStats.income }}</span> <span class="unit">元</span></p> |
|
|
|
<span class="label">销售金额</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="sales-item flex"> |
|
|
|
<img :src="require(`@/assets/home/sales2.png`)" alt=""> |
|
|
|
<div class="column"> |
|
|
|
<p class="flex"><span class="number">{{ saleStats.cost }}</span> <span class="unit">元</span></p> |
|
|
|
<span class="label">成本支出</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="sales-item flex"> |
|
|
|
<img :src="require(`@/assets/home/sales3.png`)" alt=""> |
|
|
|
<div class="column"> |
|
|
|
<p class="flex"><span class="number">{{ saleStats.check_num }}</span></p> |
|
|
|
<span class="label">查重订单量</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="sales-item flex"> |
|
|
|
<img :src="require(`@/assets/home/sales4.png`)" alt=""> |
|
|
|
<div class="column"> |
|
|
|
<p class="flex"><span class="number">{{ saleStats.ai_num }}</span></p> |
|
|
|
<span class="label">AIGC订单量</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -44,7 +65,7 @@ |
|
|
|
</div> |
|
|
|
<a href="/agent/supplyList" target="_blank"><span>详情</span></a> |
|
|
|
</div> |
|
|
|
<div class="list-wrap" style="overflow: auto;height:410px" v-infinite-scroll="load"> |
|
|
|
<div class="list-wrap" style="overflow: auto;height:410px"> |
|
|
|
<div v-for="(veritem, key) in serviceClassificationServices[classification_id]" :key="key" class="item-list"> |
|
|
|
<p class="item-list-name">{{ veritem.name }}</p> |
|
|
|
<p class="flex-between" v-for="(type, index3) in veritem.types" :key="index3"> |
|
|
@ -60,16 +81,27 @@ |
|
|
|
|
|
|
|
</div> |
|
|
|
<div class="home-main-right"> |
|
|
|
<div class="accountBalance flex-between common-area"> |
|
|
|
<span>账户余额 <b>4560</b> 元</span> |
|
|
|
<span class="hoverCommon">展开</span> |
|
|
|
<div class="accountBalance common-area"> |
|
|
|
<div class="mb-16 red" v-if="walletList?.pub?.forzen_money>0">含冻结金额 {{ walletList?.pub?.forzen_money }} 元</div> |
|
|
|
<div class="flex-between"> |
|
|
|
<span>账户余额 <b>{{ walletList?.pub?.remain }}</b> 元</span> |
|
|
|
<span class="hoverCommon" @click="isShowSpec = !isShowSpec">{{ isShowSpec ? '收起' : '展开' }}</span> |
|
|
|
</div> |
|
|
|
<div v-show="isShowSpec" class="mt-24" style="border-top: 1px solid #ebebeb;" v-if="walletList && walletList.spec && walletList.spec.length > 0"> |
|
|
|
<div class="mt-24"></div> |
|
|
|
<p class="specMoney" v-for="(item, index) in walletList.spec" :key="index">{{ item.verdesc }} : {{ item.remain }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div style=" background: #fff"> |
|
|
|
<div class="importantReminder common-area"> |
|
|
|
<h2>重要提醒</h2> |
|
|
|
<div class="reminder1 column"> |
|
|
|
<p>淘宝账号即将过期</p> |
|
|
|
<div @click="lookTaoBaoNum">查看</div> |
|
|
|
<div class="reminder1 column" v-if="expireServices.taobao_expire_list && expireServices.taobao_expire_list.length > 0"> |
|
|
|
<p>淘宝应用即将过期</p> |
|
|
|
<div @click="lookTaoBaoExpire">查看详情</div> |
|
|
|
</div> |
|
|
|
<div class="reminder3 column" v-if="expireServices.ssl_expire_list && expireServices.ssl_expire_list.length > 0"> |
|
|
|
<p>SSL证书(https)即将过期</p> |
|
|
|
<div @click="lookSslExpire">查看详情</div> |
|
|
|
</div> |
|
|
|
<div class="reminder2 column hide"> |
|
|
|
<p>请尽快建立站点,开始售卖</p> |
|
|
@ -105,7 +137,7 @@ |
|
|
|
</div> |
|
|
|
<div class="customWrap common-area"> |
|
|
|
<h2>联系客服</h2> |
|
|
|
<img src="@/assets/home/customer.png" alt=""> |
|
|
|
<img src="@/assets/home/kf.png" alt=""> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
@ -131,6 +163,14 @@ export default { |
|
|
|
supplyPriceList: [], |
|
|
|
serviceList: [], |
|
|
|
|
|
|
|
saleStats: [], |
|
|
|
|
|
|
|
expireServices: [], |
|
|
|
|
|
|
|
walletList: [], |
|
|
|
|
|
|
|
isShowSpec: false, |
|
|
|
|
|
|
|
|
|
|
|
preferredMarketList: [ |
|
|
|
{ |
|
|
@ -138,40 +178,22 @@ export default { |
|
|
|
label: '多端系统' |
|
|
|
}, |
|
|
|
{ |
|
|
|
desc: '电脑版、小程序、微信H5', |
|
|
|
desc: '基于成交量的推广支持', |
|
|
|
label: 'OCPC推广' |
|
|
|
}, |
|
|
|
{ |
|
|
|
desc: '电脑版、小程序、微信H5', |
|
|
|
desc: '二级、裂变分销,发展代理网络', |
|
|
|
label: '多级分销' |
|
|
|
}, |
|
|
|
{ |
|
|
|
desc: '电脑版、小程序、微信H5', |
|
|
|
desc: '在报告或网页中嵌入广告', |
|
|
|
label: '嵌入广告' |
|
|
|
}, |
|
|
|
{ |
|
|
|
desc: '电脑版、小程序、微信H5', |
|
|
|
desc: '自定义次数卡券或微信代金券', |
|
|
|
label: '发放卡券' |
|
|
|
}, |
|
|
|
], |
|
|
|
salesList: [ |
|
|
|
{ |
|
|
|
num: 4560, |
|
|
|
label: '销售金额' |
|
|
|
}, |
|
|
|
{ |
|
|
|
num: 1000, |
|
|
|
label: '成本支出' |
|
|
|
}, |
|
|
|
{ |
|
|
|
num: 20, |
|
|
|
label: '查重订单量' |
|
|
|
}, |
|
|
|
{ |
|
|
|
num: 60, |
|
|
|
label: 'AIGC订单量' |
|
|
|
}, |
|
|
|
], |
|
|
|
systemList: [ |
|
|
|
{ |
|
|
|
desc: 'AI中文范文2万字版、AI中文范文万字版已整合到AI中文范文内(可选3000/5000AI中文范文2万字版、AI中文范文万字版已整合到AI中文范文内(可选3000/5000/8000/10000/15000/000000/10000/…', |
|
|
@ -182,93 +204,6 @@ export default { |
|
|
|
label: 'AI范文整合的通知' |
|
|
|
}, |
|
|
|
], |
|
|
|
supplyList1: [ |
|
|
|
'查重服务', |
|
|
|
'AIGC服务', |
|
|
|
'写作辅助', |
|
|
|
], |
|
|
|
supplyList: [ |
|
|
|
{ |
|
|
|
name: '万方系统', |
|
|
|
list: [ |
|
|
|
{ |
|
|
|
name: '万方硕博版', |
|
|
|
word: '千字符', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '万方硕博版', |
|
|
|
word: '千字符', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '万方硕博版', |
|
|
|
word: '千字符', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '维普系统', |
|
|
|
list: [ |
|
|
|
{ |
|
|
|
name: '维普硕博版', |
|
|
|
word: '千字符', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '维普系统硕博版', |
|
|
|
word: '千字符', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '维普系统硕博版', |
|
|
|
word: '千字符', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
}, |
|
|
|
{ |
|
|
|
name: 'PaperPass旗舰版', |
|
|
|
list: [ |
|
|
|
{ |
|
|
|
name: '万方硕博版', |
|
|
|
word: '千字符', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '学术不端', |
|
|
|
list: [ |
|
|
|
{ |
|
|
|
name: '硕博预审版', |
|
|
|
word: '篇', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '期刊小论文小篇幅版', |
|
|
|
word: '篇', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '期刊小论文小篇幅版', |
|
|
|
word: '篇', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '期刊小论文小篇幅版', |
|
|
|
word: '篇', |
|
|
|
price: 2.4 |
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
} |
|
|
|
}, |
|
|
|
components: { |
|
|
@ -277,10 +212,12 @@ export default { |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
this.getSupplyServiceList() |
|
|
|
this.getSaleStats() |
|
|
|
this.getExpireServices() |
|
|
|
this.getWalletList() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
getSupplyServiceList() { |
|
|
|
|
|
|
|
this.tableLoading = true |
|
|
|
const that = this |
|
|
|
that.serviceList = [] |
|
|
@ -298,15 +235,63 @@ export default { |
|
|
|
this.serviceClassifications = response.data.service_classification; |
|
|
|
this.serviceClassificationServices = response.data.service_classification_services; |
|
|
|
this.supplyPriceList = response.data.supply_price; |
|
|
|
console.log(this.supplyPriceList[2].price) |
|
|
|
console.log(this.supplyPriceList[2].unit_format) |
|
|
|
}) |
|
|
|
}).catch(error => { |
|
|
|
console.error(error, 'error') |
|
|
|
}) |
|
|
|
}, |
|
|
|
lookTaoBaoNum() { |
|
|
|
getSaleStats() { |
|
|
|
this.$http('POST', '/agentnew/ajax_get_sale_stats', { |
|
|
|
|
|
|
|
},{ |
|
|
|
headers:{ |
|
|
|
'Auth': this.token |
|
|
|
} |
|
|
|
}).then(response => { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.saleStats = response.data |
|
|
|
}) |
|
|
|
}).catch(error => { |
|
|
|
console.error(error, 'error') |
|
|
|
}) |
|
|
|
}, |
|
|
|
getExpireServices() { |
|
|
|
this.$http('POST', '/agentnew/ajax_get_expire_services', { |
|
|
|
|
|
|
|
},{ |
|
|
|
headers:{ |
|
|
|
'Auth': this.token |
|
|
|
} |
|
|
|
}).then(response => { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.expireServices = response.data |
|
|
|
}) |
|
|
|
}).catch(error => { |
|
|
|
console.error(error, 'error') |
|
|
|
}) |
|
|
|
}, |
|
|
|
getWalletList() { |
|
|
|
this.$http('POST', '/agentnew/ajax_get_wallet', { |
|
|
|
|
|
|
|
},{ |
|
|
|
headers:{ |
|
|
|
'Auth': this.token |
|
|
|
} |
|
|
|
}).then(response => { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.walletList = response.data |
|
|
|
}) |
|
|
|
}).catch(error => { |
|
|
|
console.error(error, 'error') |
|
|
|
}) |
|
|
|
}, |
|
|
|
lookTaoBaoExpire() { |
|
|
|
// 查看淘宝账号 |
|
|
|
location.href = '/agent/payList' |
|
|
|
}, |
|
|
|
lookSslExpire() { |
|
|
|
// 查看淘宝账号 |
|
|
|
location.href = '/agent/' |
|
|
|
}, |
|
|
|
lookTaoBaoNum1() { |
|
|
|
// 查看淘宝账号 |
|
|
@ -326,6 +311,26 @@ a { |
|
|
|
color: #006AFF; |
|
|
|
} |
|
|
|
|
|
|
|
.mt-24 { |
|
|
|
margin-top: 24px; |
|
|
|
} |
|
|
|
.mb-16 { |
|
|
|
margin-bottom: 16px; |
|
|
|
} |
|
|
|
.red { |
|
|
|
color: #FF4D4F; |
|
|
|
} |
|
|
|
|
|
|
|
.specMoney { |
|
|
|
font-family: Microsoft YaHei UI; |
|
|
|
font-size: 14px; |
|
|
|
font-weight: normal; |
|
|
|
line-height: 22px; |
|
|
|
letter-spacing: 0.08em; |
|
|
|
color: #626573; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.home-wrap { |
|
|
|
padding: 12px; |
|
|
|
|
|
|
@ -654,6 +659,30 @@ a { |
|
|
|
width: 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
.reminder3 { |
|
|
|
border-radius: 4px; |
|
|
|
background: linear-gradient(256deg, #FBE7D7 1%, #FEF7EC 53%); |
|
|
|
padding: 14px 8px; |
|
|
|
border: 1px solid transparent; |
|
|
|
margin-top: 20px; |
|
|
|
transition: all .3s; |
|
|
|
|
|
|
|
&:hover { |
|
|
|
transition: all .3s; |
|
|
|
border-radius: 4px; |
|
|
|
background: linear-gradient(256deg, #FBE7D7 1%, #FEF7EC 53%); |
|
|
|
/* main/main_erro */ |
|
|
|
border: 1px solid #FB832D; |
|
|
|
} |
|
|
|
|
|
|
|
div { |
|
|
|
display: flex; |
|
|
|
justify-content: flex-end; |
|
|
|
color: #FB832D; |
|
|
|
margin-top: 10px; |
|
|
|
width: 100%; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.carouselImage { |
|
|
|