style: ✨ 修改部分页面中展示细节,分销订单中新增状态展示,统计模块优化代码,热词模块 历史热词默认展示昨天热词,以及优化热词统计
parent
3498de4529
commit
170244cc9c
|
@ -139,7 +139,7 @@ export default {
|
||||||
"Button",
|
"Button",
|
||||||
{
|
{
|
||||||
props: {
|
props: {
|
||||||
type: "success",
|
type: "primary",
|
||||||
size: "small",
|
size: "small",
|
||||||
},
|
},
|
||||||
style: {
|
style: {
|
||||||
|
|
|
@ -212,6 +212,7 @@
|
||||||
filterStatus (status) { // 过滤订单状态
|
filterStatus (status) { // 过滤订单状态
|
||||||
const arr = [
|
const arr = [
|
||||||
{status: 'WAIT_BILL', title: '待结算'},
|
{status: 'WAIT_BILL', title: '待结算'},
|
||||||
|
{status: 'NO_COMPLETED', title: '未完成'},
|
||||||
{status: 'WAIT_CASH', title: '待提现'},
|
{status: 'WAIT_CASH', title: '待提现'},
|
||||||
{status: 'COMPLETE_CASH', title: '提现完成'},
|
{status: 'COMPLETE_CASH', title: '提现完成'},
|
||||||
{status: 'CANCEL', title: '订单取消'},
|
{status: 'CANCEL', title: '订单取消'},
|
||||||
|
@ -229,6 +230,7 @@
|
||||||
{status: 'WAIT_CASH', color: 'orange'},
|
{status: 'WAIT_CASH', color: 'orange'},
|
||||||
{status: 'COMPLETE_CASH', color: 'green'},
|
{status: 'COMPLETE_CASH', color: 'green'},
|
||||||
{status: 'CANCEL', color: 'red'},
|
{status: 'CANCEL', color: 'red'},
|
||||||
|
{status: 'NO_COMPLETED', color: 'red'},
|
||||||
{status: 'REFUND', color: 'magenta'},
|
{status: 'REFUND', color: 'magenta'},
|
||||||
]
|
]
|
||||||
for (let i=0;i<arr.length;i++) {
|
for (let i=0;i<arr.length;i++) {
|
||||||
|
|
|
@ -337,6 +337,7 @@ export default {
|
||||||
|
|
||||||
// 实例化订单图表
|
// 实例化订单图表
|
||||||
async initOrderChartList(name) {
|
async initOrderChartList(name) {
|
||||||
|
this.orderChart ? this.orderChart.clear() : ''
|
||||||
const res = await API_Goods.getOrderChart(this.orderParams);
|
const res = await API_Goods.getOrderChart(this.orderParams);
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.chartList = res.result;
|
this.chartList = res.result;
|
||||||
|
@ -446,6 +447,7 @@ export default {
|
||||||
|
|
||||||
// 浏览量
|
// 浏览量
|
||||||
async getPvChart() {
|
async getPvChart() {
|
||||||
|
this.pvChart ? this.pvChart.clear() : ''
|
||||||
API_Member.getStatisticsList(this.params).then((res) => {
|
API_Member.getStatisticsList(this.params).then((res) => {
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
this.data = res.result;
|
this.data = res.result;
|
||||||
|
@ -464,6 +466,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 实例化会员流量图表
|
// 实例化会员流量图表
|
||||||
async initHistoryMemberChartList() {
|
async initHistoryMemberChartList() {
|
||||||
|
this.historyMemberChart ? this.historyMemberChart.clear() : ''
|
||||||
const res = await API_Member.historyMemberChartList();
|
const res = await API_Member.historyMemberChartList();
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.chartList = res.result;
|
this.chartList = res.result;
|
||||||
|
|
|
@ -28,18 +28,16 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div slot="footer" style="text-align: right">
|
<div slot="footer" style="text-align: right">
|
||||||
<Button v-if="tab === 'WECHAT'" type="success" size="large" @click="wechatFormDataEdit">保存</Button>
|
<Button v-if="tab === 'WECHAT'" type="primary" @click="wechatFormDataEdit">保存</Button>
|
||||||
|
|
||||||
<Button v-else type="success" size="large" @click="wechatMPFormDataEdit">保存</Button>
|
<Button v-else type="primary" @click="wechatMPFormDataEdit">保存</Button>
|
||||||
</div>
|
</div>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
|
<Card>
|
||||||
<Tabs @on-click="tabPaneChange" v-model="tab">
|
<Tabs @on-click="tabPaneChange" v-model="tab">
|
||||||
<TabPane label="微信消息" name="WECHAT">
|
<TabPane label="微信消息" name="WECHAT">
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<Card>
|
|
||||||
|
|
||||||
<Row class="operation mt_10">
|
<Row class="operation mt_10">
|
||||||
<Button @click="weChatSync" type="primary">同步微信消息</Button>
|
<Button @click="weChatSync" type="primary">同步微信消息</Button>
|
||||||
</Row>
|
</Row>
|
||||||
|
@ -61,14 +59,11 @@
|
||||||
size="small"
|
size="small"
|
||||||
></Page>
|
></Page>
|
||||||
</Row>
|
</Row>
|
||||||
</Card>
|
|
||||||
</div>
|
</div>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
|
|
||||||
<TabPane label="微信小程序订阅消息" name="WECHATMP">
|
<TabPane label="微信小程序订阅消息" name="WECHATMP">
|
||||||
<div class="search">
|
<div class="search">
|
||||||
<Card>
|
|
||||||
|
|
||||||
<Row class="operation mt_10">
|
<Row class="operation mt_10">
|
||||||
<Button @click="weChatSync('mp')" type="primary">同步微信小程序订阅消息</Button>
|
<Button @click="weChatSync('mp')" type="primary">同步微信小程序订阅消息</Button>
|
||||||
</Row>
|
</Row>
|
||||||
|
@ -91,10 +86,10 @@
|
||||||
size="small"
|
size="small"
|
||||||
></Page>
|
></Page>
|
||||||
</Row>
|
</Row>
|
||||||
</Card>
|
|
||||||
</div>
|
</div>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,15 @@
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<Row class="operation">
|
<Row class="operation">
|
||||||
<Col span="12">
|
<Col span="12">
|
||||||
|
<DatePicker
|
||||||
<DatePicker @on-change="search" show-week-numbers type="date" placement="bottom-end" placeholder="选择查看日期"
|
:options="options"
|
||||||
style="width: 200px"></DatePicker>
|
@on-change="search"
|
||||||
|
type="date"
|
||||||
|
placement="bottom-end"
|
||||||
|
placeholder="选择查看日期"
|
||||||
|
style="width: 200px"
|
||||||
|
v-model="yestDate"
|
||||||
|
></DatePicker>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
<Row>
|
<Row>
|
||||||
|
@ -16,7 +21,6 @@
|
||||||
</p>
|
</p>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
||||||
|
|
||||||
<div id="container"></div>
|
<div id="container"></div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -33,37 +37,54 @@ export default {
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
yestDate:new Date(new Date().getTime() - 24 * 60 * 60 * 1000).toString(),
|
||||||
|
yestDate:this.$options.filters.unixToDate(
|
||||||
|
(new Date().getTime() / 1000) - (24 * 60 * 60),
|
||||||
|
"yyyy年MM月dd日"
|
||||||
|
),
|
||||||
params: {
|
params: {
|
||||||
date:this.$options.filters.unixToDate(new Date().getTime() / 1000,'yyyy-MM-dd')
|
date: this.$options.filters.unixToDate(
|
||||||
|
(new Date().getTime() / 1000) - (24 * 60 * 60),
|
||||||
|
"yyyy-MM-dd"
|
||||||
|
),
|
||||||
},
|
},
|
||||||
hotWordsChart: "", //图表
|
hotWordsChart: "", //图表
|
||||||
hotWordsData: [] //数据
|
hotWordsData: [], //数据
|
||||||
|
options: {
|
||||||
|
disabledDate: (date) => {
|
||||||
|
if (this.endMonth) {
|
||||||
|
let endDate = this.getDate(this.endMonth);
|
||||||
|
return (date && date > endDate) || date > new Date();
|
||||||
|
} else {
|
||||||
|
return date && date > new Date();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
clickBreadcrumb(val) {
|
clickBreadcrumb(val) {
|
||||||
this.params = {...this.params, ...val}
|
this.params = { ...this.params, ...val };
|
||||||
},
|
},
|
||||||
// 初始化图表
|
// 初始化图表
|
||||||
async search(val) {
|
async search(val) {
|
||||||
|
console.log(val)
|
||||||
val ? this.params.date = val : ''
|
val ? (this.params.date = val) : "";
|
||||||
const res = await getHotWordsHistory(this.params);
|
const res = await getHotWordsHistory(this.params);
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.hotWordsData = res.result;
|
this.hotWordsData = res.result;
|
||||||
this.hotWordsChart.data(this.hotWordsData)
|
this.hotWordsChart.data(this.hotWordsData);
|
||||||
this.hotWordsChart.render();
|
this.hotWordsChart.render();
|
||||||
if (!this.hotWordsData) {
|
if (!this.hotWordsData) {
|
||||||
Message.error("暂无数据");
|
Message.error("暂无数据");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleClickSearch() {
|
handleClickSearch() {},
|
||||||
|
|
||||||
},
|
|
||||||
init() {
|
init() {
|
||||||
let chart = this.hotWordsChart
|
let chart = this.hotWordsChart;
|
||||||
chart = new Chart({
|
chart = new Chart({
|
||||||
container: "container",
|
container: "container",
|
||||||
autoFit: true,
|
autoFit: true,
|
||||||
|
@ -84,11 +105,11 @@ export default {
|
||||||
chart.tooltip({
|
chart.tooltip({
|
||||||
showMarkers: false,
|
showMarkers: false,
|
||||||
});
|
});
|
||||||
chart.interval().position("keywords*score");
|
chart.interval().position("keywords*score").color("#f59b99");
|
||||||
chart.interaction("element-active");
|
chart.interaction("element-active");
|
||||||
this.hotWordsChart = chart;
|
this.hotWordsChart = chart;
|
||||||
this.search();
|
this.search();
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.init();
|
this.init();
|
||||||
|
@ -99,10 +120,12 @@ export default {
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.affix-time {
|
.affix-time {
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.box {
|
.box {
|
||||||
min-height: 400px;
|
min-height: 400px;
|
||||||
|
margin-left: 50px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ export default {
|
||||||
searchType: "LAST_SEVEN",
|
searchType: "LAST_SEVEN",
|
||||||
year: "",
|
year: "",
|
||||||
month: "",
|
month: "",
|
||||||
top: 50
|
top: 50,
|
||||||
},
|
},
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
|
@ -50,53 +50,86 @@ export default {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
hotWordsChart: "", //图表
|
hotWordsChart: "", //图表
|
||||||
hotWordsData:[] //数据
|
hotWordsData: [], //数据
|
||||||
|
orderChart: "",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
|
watch: {
|
||||||
|
params: {
|
||||||
|
handler(val) {
|
||||||
|
this.search();
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
year(val) {
|
||||||
|
this.params.year = new Date(val).getFullYear();
|
||||||
|
},
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clickBreadcrumb(val) {
|
clickBreadcrumb(val) {
|
||||||
this.params = {...this.params, ...val}
|
this.params = { ...this.params, ...val };
|
||||||
},
|
},
|
||||||
// 初始化图表
|
// 初始化图表
|
||||||
async search() {
|
async search() {
|
||||||
const res = await getHotWordsStatistics(this.params);
|
const res = await getHotWordsStatistics(this.params);
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.hotWordsData = res.result;
|
this.hotWordsData = res.result;
|
||||||
this.hotWordsChart.data(this.hotWordsData)
|
if (!this.hotWordsChart) {
|
||||||
this.hotWordsChart.render();
|
this.hotWordsChart = new Chart({
|
||||||
}
|
|
||||||
},
|
|
||||||
handleClickSearch() {
|
|
||||||
},
|
|
||||||
init(){
|
|
||||||
let chart = this.hotWordsChart
|
|
||||||
chart = new Chart({
|
|
||||||
container: "container",
|
container: "container",
|
||||||
autoFit: true,
|
autoFit: true,
|
||||||
height: 500,
|
height: 500,
|
||||||
padding: [50, 20, 50, 20],
|
padding: [50, 20, 50, 20],
|
||||||
});
|
});
|
||||||
chart.scale("score", {
|
}
|
||||||
|
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleClickSearch() {},
|
||||||
|
init() {
|
||||||
|
if (this.hotWordsChart) {
|
||||||
|
this.hotWordsChart.data(this.hotWordsData);
|
||||||
|
this.hotWordsChart.scale("score", {
|
||||||
alias: "搜索次数",
|
alias: "搜索次数",
|
||||||
});
|
});
|
||||||
|
|
||||||
chart.axis("keywords", {
|
this.hotWordsChart.axis("keywords", {
|
||||||
tickLine: {
|
tickLine: {
|
||||||
alignTick: false,
|
alignTick: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
chart.axis("score", false);
|
this.hotWordsChart.axis("score", false);
|
||||||
|
|
||||||
chart.tooltip({
|
this.hotWordsChart.tooltip({
|
||||||
showMarkers: false,
|
showMarkers: false,
|
||||||
});
|
});
|
||||||
chart.interval().position("keywords*score");
|
this.hotWordsChart
|
||||||
chart.interaction("element-active");
|
.interval()
|
||||||
this.hotWordsChart=chart;
|
.position("keywords*score")
|
||||||
this.search();
|
.color("#f59b99");
|
||||||
|
this.hotWordsChart.interaction("element-active");
|
||||||
|
|
||||||
|
// 添加文本标注
|
||||||
|
// this.hotWordsData.forEach((item) => {
|
||||||
|
// this.hotWordsChart
|
||||||
|
// .annotation()
|
||||||
|
// .text({
|
||||||
|
// position: [item.keywords, item.score],
|
||||||
|
// content: item.score,
|
||||||
|
// style: {
|
||||||
|
// textAlign: "center",
|
||||||
|
// },
|
||||||
|
// offsetY: -30,
|
||||||
|
// })
|
||||||
|
// });
|
||||||
|
|
||||||
|
this.hotWordsChart.render();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
|
@ -107,5 +140,4 @@ export default {
|
||||||
.affix-time {
|
.affix-time {
|
||||||
padding-left: 15px;
|
padding-left: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
<Row>
|
<Row>
|
||||||
<Col span="24">
|
<Col span="24">
|
||||||
<Card class="article-detail">
|
<Card class="article-detail">
|
||||||
|
<Alert>隐私协议在移动端中 设置->关于我们->对应的文章展示</Alert>
|
||||||
<Table :loading="loading" border :columns="columns" :data="data" ref="table">
|
<Table :loading="loading" border :columns="columns" :data="data" ref="table">
|
||||||
</Table>
|
</Table>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
|
@ -180,6 +180,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
init() {
|
init() {
|
||||||
|
this.orderChart ? this.orderChart.clear() : ''
|
||||||
API_Member.getMemberStatistics(this.params).then((res) => {
|
API_Member.getMemberStatistics(this.params).then((res) => {
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
res.result.forEach((item) => {
|
res.result.forEach((item) => {
|
||||||
|
|
|
@ -586,6 +586,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 实例化订单图表
|
// 实例化订单图表
|
||||||
async initOrderChartList(name) {
|
async initOrderChartList(name) {
|
||||||
|
this.orderChart ? this.orderChart.clear() : ''
|
||||||
const res = await API_Goods.getOrderChart(this.orderParams);
|
const res = await API_Goods.getOrderChart(this.orderParams);
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.chartList = res.result;
|
this.chartList = res.result;
|
||||||
|
|
|
@ -185,6 +185,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
init() {
|
init() {
|
||||||
|
this.orderChart ? this.orderChart.clear() : ''
|
||||||
API_Member.getStatisticsList(this.params).then((res) => {
|
API_Member.getStatisticsList(this.params).then((res) => {
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
this.data = res.result;
|
this.data = res.result;
|
||||||
|
|
|
@ -47,16 +47,16 @@
|
||||||
openTip ? "关闭提示" : "开启提示"
|
openTip ? "关闭提示" : "开启提示"
|
||||||
}}</Button>
|
}}</Button>
|
||||||
</Row>
|
</Row>
|
||||||
<Row v-show="openTip">
|
<div v-show="openTip">
|
||||||
<Alert show-icon>
|
<Alert show-icon>
|
||||||
<span>展示详细内容</span>
|
<span>展示详细内容</span>
|
||||||
<Icon type="ios-bulb-outline" slot="icon"></Icon>
|
<Icon type="ios-bulb-outline" slot="icon"></Icon>
|
||||||
<i-switch size="large" v-model="showDev">
|
<i-switch class="switch" size="large" v-model="showDev">
|
||||||
<span slot="open">开发</span>
|
<span slot="open">开发</span>
|
||||||
<span slot="close">普通</span>
|
<span slot="close">普通</span>
|
||||||
</i-switch>
|
</i-switch>
|
||||||
</Alert>
|
</Alert>
|
||||||
</Row>
|
</div>
|
||||||
|
|
||||||
<Table
|
<Table
|
||||||
v-if="showDev"
|
v-if="showDev"
|
||||||
|
@ -323,3 +323,8 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.switch{
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
<script>
|
<script>
|
||||||
import { setSetting } from "@/api/index";
|
import { setSetting } from "@/api/index";
|
||||||
import { handleSubmit } from "../setting/validate";
|
import { handleSubmit } from "../setting/validate";
|
||||||
import { getPaymentSupportForm } from "@/api/setting";
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label="最低提现金额" prop="minPrice">
|
<FormItem label="最低提现金额" prop="minPrice">
|
||||||
<Input class="label-appkey" v-model="formValidate.minPrice" />
|
¥<Input class="label-appkey" v-model="formValidate.minPrice" />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|
||||||
<FormItem label="提现方式" prop="type">
|
<FormItem label="提现方式" prop="type">
|
||||||
|
|
|
@ -523,6 +523,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 实例化订单图表
|
// 实例化订单图表
|
||||||
async initOrderChartList(name) {
|
async initOrderChartList(name) {
|
||||||
|
this.orderChart ? this.orderChart.clear() : ''
|
||||||
const res = await API_Goods.getOrderChart(this.orderParams);
|
const res = await API_Goods.getOrderChart(this.orderParams);
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
this.chartList = res.result;
|
this.chartList = res.result;
|
||||||
|
|
|
@ -190,6 +190,7 @@ export default {
|
||||||
},
|
},
|
||||||
// 初始化
|
// 初始化
|
||||||
init() {
|
init() {
|
||||||
|
this.orderChart ? this.orderChart.clear() : ''
|
||||||
API_Member.getStatisticsList(this.params).then((res) => {
|
API_Member.getStatisticsList(this.params).then((res) => {
|
||||||
if (res.result) {
|
if (res.result) {
|
||||||
this.data = res.result;
|
this.data = res.result;
|
||||||
|
|
Loading…
Reference in New Issue