Commit 540a5f3c authored by leiqingsong's avatar leiqingsong

页面接口

parent 2a317c8a
...@@ -11236,6 +11236,11 @@ ...@@ -11236,6 +11236,11 @@
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz",
"integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==" "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg=="
}, },
"vue-count-to": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
"integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ=="
},
"vue-demi": { "vue-demi": {
"version": "0.6.1", "version": "0.6.1",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.6.1.tgz", "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.6.1.tgz",
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
"qs": "^6.9.6", "qs": "^6.9.6",
"vant": "^2.12.6", "vant": "^2.12.6",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue-count-to": "^1.0.13",
"vue-echarts": "^6.0.0-alpha.5", "vue-echarts": "^6.0.0-alpha.5",
"vue-router": "^3.2.0", "vue-router": "^3.2.0",
"vuex": "^3.4.0" "vuex": "^3.4.0"
......
...@@ -15,3 +15,17 @@ export function smsCode(params) { ...@@ -15,3 +15,17 @@ export function smsCode(params) {
data: final_params data: final_params
}); });
} }
/**
* 上传图片 后端还在修改 TODO
* @param {*} params files 文件
* @param {*} params userId 用户id
*/
export function uploadImage(userId, file) {
return request({
url: "/ZX/uploadImage",
method: "post",
data: file
})
}
import request from "@/utils/request";
/**
* 我的直推
* @param {*} params userId
* @returns
*/
export function recomendInfo(params) {
return request({
url: "/user/myRecommend",
method: "get",
params
})
}
/**
* 获取我的直推详情
* @param {*} param userId * string
* @param {*} param userlevel * int 等级
* @returns
*/
export function recommendDetail(params) {
return request({
url: "/user/myRecommendInfo",
method: "get",
params
})
}
import request from "@/utils/request";
/**
* 本月累计奖金
* @param {*} params userId
* @returns
*/
export function monthRewards(params) {
return request({
url: "award/queryMonthAward",
method: "get",
params
})
}
\ No newline at end of file
...@@ -23,3 +23,32 @@ export function register(params) { ...@@ -23,3 +23,32 @@ export function register(params) {
data: final_params data: final_params
}); });
} }
/**
* 填写邀请码
* @param {*} params inviteCode
* @param {*} params userId
* @returns
*/
export function fillInviteCode(params) {
return request({
url: "/user/fillInInviteCode",
method: "post",
params
})
}
/**
* 设置头像
* @param {*} param headImage 头像url
* @param {*} param userId
* @returns
*/
export function setAvatar(params) {
return request({
url: "/user/setHeadImage",
method: "post",
params
})
}
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
class="close-icon" class="close-icon"
name="close" name="close"
size="30" size="30"
@click="BaseDialogShow = false" @click="onClose"
/> />
<p v-if="BaseDialogTitle" class="title">{{ BaseDialogTitle }}</p> <p v-if="BaseDialogTitle" class="title">{{ BaseDialogTitle }}</p>
<slot name="content" /> <slot name="content" />
...@@ -45,6 +45,9 @@ export default { ...@@ -45,6 +45,9 @@ export default {
methods: { methods: {
onBtn() { onBtn() {
this.$emit("onClick"); this.$emit("onClick");
},
onClose() {
this.$emit("onClose");
} }
} }
}; };
......
...@@ -134,13 +134,13 @@ const routes = [ ...@@ -134,13 +134,13 @@ const routes = [
path: "/register", path: "/register",
name: "Register", name: "Register",
component: () => import("@/views/register"), component: () => import("@/views/register"),
meta: { title: "", noNav: true } meta: { title: "注册", noNav: true }
}, },
{ {
path: "/customer", path: "/customer",
name: "customerService", name: "customerService",
component: () => import("@/views/customer-service"), component: () => import("@/views/customer-service"),
meta: { title: "", noNav: true } meta: { title: "专属客服", noNav: true }
} }
]; ];
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="modefy-avatar"> <div class="modefy-avatar">
<img class="avatar" :src="avatar" alt /> <img class="avatar" :src="avatar" alt />
<div class="btn"> <div class="btn">
<van-button type="primary" plain>确定</van-button> <van-button type="primary" plain style="height:44px">确定</van-button>
<van-uploader <van-uploader
:max-count="1" :max-count="1"
:before-delete="onDeleteAvatar" :before-delete="onDeleteAvatar"
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
</template> </template>
<script> <script>
import { setAvatar } from "@/api/user";
export default { export default {
name: "ModefyAvatar", name: "ModefyAvatar",
data() { data() {
...@@ -31,6 +32,11 @@ export default { ...@@ -31,6 +32,11 @@ export default {
onRead(file) { onRead(file) {
this.avatar = file.content; this.avatar = file.content;
console.log("file", file); console.log("file", file);
const params = {
headImage: '',
userId: "18757121665"
}
setAvatar(params).then()
}, },
onDeleteAvatar(file, detail) { onDeleteAvatar(file, detail) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="invitee"> <div class="invitee">
<div class="baseInfo"> <div class="baseInfo">
<img class="avatar" src="@/assets/images/avatar.png" alt="用户头像" /> <img class="avatar" src="@/assets/images/avatar.png" alt="用户头像" />
<span class="userName">丁晓霞</span> <span class="userName">{{ inviteeItem.userId }}</span>
<span style="font-size: 12px;color:#666666">西天森合伙人</span> <span style="font-size: 12px;color:#666666">西天森合伙人</span>
</div> </div>
<div class="detail"> <div class="detail">
...@@ -12,16 +12,29 @@ ...@@ -12,16 +12,29 @@
</p> </p>
<p> <p>
<span>累计消费金额</span> <span>累计消费金额</span>
<span>1020</span> <span>{{ inviteeItem.historyCount }}</span>
</p> </p>
<p> <p>
<span>当月消费金额</span> <span>当月消费金额</span>
<span>360</span> <span>{{ inviteeItem.monthyCount }}</span>
</p> </p>
</div> </div>
</div> </div>
</template> </template>
<script>
export default {
name: "Invitee",
props: {
inviteeItem: {
type: Object,
default: () => {}
}
},
data() {},
}
</script>
<style lang="scss" scoped> <style lang="scss" scoped>
.invitee { .invitee {
height: 130px; height: 130px;
......
...@@ -3,26 +3,26 @@ ...@@ -3,26 +3,26 @@
<div class="userInfo"> <div class="userInfo">
<img src="@/assets/images/白银树.png" alt="等级背景图" /> <img src="@/assets/images/白银树.png" alt="等级背景图" />
<span class="level-label">我的等级</span> <span class="level-label">我的等级</span>
<span class="level">Lv.3白银树</span> <span class="level">Lv.{{ userRecommendInfo.userlevel }}{{ userRecommendInfo.userlevel | userLevel }}</span>
<div class="userAvatar"> <div class="userAvatar">
<div class="avatar-box"> <div class="avatar-box">
<img class="avatar" src="@/assets/images/avatar.png" alt="头像" /> <img class="avatar" src="@/assets/images/avatar.png" alt="头像" />
<img class="level-img" src="@/assets/images/等级展示框.png" alt /> <img class="level-img" src="@/assets/images/等级展示框.png" alt />
<span class="avatar-level">Lv.3</span> <span class="avatar-level">Lv.{{ userRecommendInfo.userlevel }}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="status"> <div class="status">
<van-tabs v-model="activeTab" swipeable sticky color="#28b537"> <van-tabs v-model="activeTab" swipeable sticky color="#28b537" @click="changeTab">
<van-tab <van-tab
v-for="item in Tabs" v-for="item in Tabs"
:key="`tba-${item.id}`" :key="`tba-${item.id}`"
:title="item.name" :title="`${ item.name }(${ item.num})`"
> >
<base-refresh-scroll @downLoad="onDownLoad" @upRefresh="onUpRefresh"> <base-refresh-scroll @downLoad="onDownLoad" @upRefresh="onUpRefresh">
<div slot="content"> <div slot="content">
<div v-for="item in 10" :key="item.id"> <div v-for="item in inviteeArr" :key="item.id">
<invitee-item /> <invitee-item :invitee-item="item" />
</div> </div>
</div> </div>
</base-refresh-scroll> </base-refresh-scroll>
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
</template> </template>
<script> <script>
import { recomendInfo, recommendDetail } from "@/api/myStatus";
import BaseRefreshScroll from "../../components/BaseRefreshScroll.vue"; import BaseRefreshScroll from "../../components/BaseRefreshScroll.vue";
import InviteeItem from "./components/invitee"; import InviteeItem from "./components/invitee";
export default { export default {
...@@ -41,51 +42,140 @@ export default { ...@@ -41,51 +42,140 @@ export default {
InviteeItem, InviteeItem,
BaseRefreshScroll BaseRefreshScroll
}, },
filters: {
userLevel(key) {
let levelName = "";
switch (key) {
case 0:
levelName = "普通用户"
break;
case 1:
levelName = "幼苗"
break;
case 2:
levelName = "青铜树"
break;
case 3:
levelName = "白银树"
break;
case 4:
levelName = "黄金树"
break;
case 5:
levelName = "农场主"
break;
case 6:
levelName = "森林之星"
break;
case 7:
levelName = "西田森合伙人"
break;
default:
levelName = ""
break;
}
return levelName;
}
},
data() { data() {
return { return {
inviteeArr: [],
userRecommendInfo: {},
activeTab: "", activeTab: "",
Tabs: [ Tabs: [
{ {
id: 0, id: 0,
name: "普通用户" name: "普通用户",
num: 0,
keyName: "normalUserNum"
}, },
{ {
id: 1, id: 1,
name: "幼苗" name: "幼苗",
num: 0,
keyName: "seedlingNum"
}, },
{ {
id: 2, id: 2,
name: "青铜树" name: "青铜树",
num: 0,
keyName: "bronzeTreeNum"
}, },
{ {
id: 3, id: 3,
name: "白银树" name: "白银树",
num: 0,
keyName: "silverTreeNum"
}, },
{ {
id: 4, id: 4,
name: "黄金树" name: "黄金树",
num: 0,
keyName: "goldTreeNum"
}, },
{ {
id: 5, id: 5,
name: "农场主" name: "农场主",
num: 0,
keyName: "farmerNum"
}, },
{ {
id: 6, id: 6,
name: "森林之星" name: "森林之星",
num: 0,
keyName: "forestStartNum"
}, },
{ {
id: 7, id: 7,
name: "西田森合伙人" name: "西田森合伙人",
num: 0,
keyName: "partnerNum"
} }
] ]
}; };
}, },
created() {
this.getRecommendInfo()
this.getRecommendDetail(0)
},
methods: { methods: {
changeTab(name) {
this.getRecommendDetail(name);
},
onDownLoad(val) { onDownLoad(val) {
console.log("下拉加载", val); console.log("下拉加载", val);
}, },
onUpRefresh(val) { onUpRefresh(val) {
console.log("上拉刷新", val); console.log("上拉刷新", val);
},
getRecommendInfo() {
const params = {
userId: "13933770749"
}
recomendInfo(params).then(res => {
if (res.code === 0) {
this.userRecommendInfo = res.data
for(const key in res.data.myRecommed) {
this.Tabs.forEach(el => {
if (el.keyName === key) {
console.log(key);
el.num = res.data.myRecommed[key]
}
});
}
}
})
},
getRecommendDetail(level) {
const params = {
userid: "13933770749",
userlevel: level
}
recommendDetail(params).then(res => {
if (res.code === 0) {
this.inviteeArr = res.data;
}
})
} }
} }
}; };
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
:show-indicators="false" :show-indicators="false"
> >
<van-swipe-item> <van-swipe-item>
95.30元进入本月累计奖金池 1-13 14:52:01</van-swipe-item {{ awardInfo.awardTime }}</van-swipe-item
> >
<van-swipe-item>内容 2</van-swipe-item> <van-swipe-item>内容 2</van-swipe-item>
<van-swipe-item>内容 3</van-swipe-item> <van-swipe-item>内容 3</van-swipe-item>
...@@ -34,19 +34,19 @@ ...@@ -34,19 +34,19 @@
</div> </div>
<div class="content"> <div class="content">
<p style="font-size: 16px; font-weight: bold">本月累计奖金</p> <p style="font-size: 16px; font-weight: bold">本月累计奖金</p>
<p style="font-weight: bold">19,349.00</p> <countTo :startVal='awardInfo.lastToatal' :endVal='awardInfo.monthAwardTotal' :duration='3000' style="font-weight: bold"></countTo>
<p style="font-size: 14px;color:#333333">历史累计奖金:¥110000.00</p> <p style="font-size: 14px;color:#333333">历史累计奖金:¥{{ awardInfo.awardTotal.toFixed(2) || 0 }}</p>
</div> </div>
<div class="newAdd-my"> <div class="newAdd-my">
<div class="newAdd"> <div class="newAdd">
<p>9100.00</p> <p>{{ awardInfo.monthIncreased || 0 }}</p>
<div class="bottom"> <div class="bottom">
<img src="@/assets/images/本月新增.png" alt /> <img src="@/assets/images/本月新增.png" alt />
<span>本月新增</span> <span>本月新增</span>
</div> </div>
</div> </div>
<div class="my"> <div class="my">
<p>999.00</p> <p>{{ awardInfo.userMonthAward }}</p>
<div class="bottom"> <div class="bottom">
<img src="@/assets/images/我的份额.png" alt /> <img src="@/assets/images/我的份额.png" alt />
<span>我的份额</span> <span>我的份额</span>
...@@ -57,24 +57,60 @@ ...@@ -57,24 +57,60 @@
<p class="level-pool-title">各等级本月累计奖励池</p> <p class="level-pool-title">各等级本月累计奖励池</p>
<p class="level-pool-item"> <p class="level-pool-item">
<span>黄金树等级</span> <span>黄金树等级</span>
<span>1000.00</span> <span>{{ awardInfo.goldAward || 0 }}</span>
</p> </p>
<p class="level-pool-item"> <p class="level-pool-item">
<span>农场主等级</span> <span>农场主等级</span>
<span>1000.00</span> <span>{{ awardInfo.farmerAward || 0 }}</span>
</p> </p>
<p class="level-pool-item"> <p class="level-pool-item">
<span>森林之星等级</span> <span>森林之星等级</span>
<span>1000.00</span> <span>{{ awardInfo.forestStartAward || 0 }}</span>
</p> </p>
<p class="level-pool-item"> <p class="level-pool-item">
<span>西田森合伙人等级</span> <span>西田森合伙人等级</span>
<span>1000.00</span> <span>{{ awardInfo.partnerAward || 0 }}</span>
</p> </p>
</div> </div>
</div> </div>
</template> </template>
<script>
import countTo from 'vue-count-to';
import { monthRewards } from "@/api/reward";
export default {
name: "MonthAward",
components: { countTo },
data() {
return {
awardInfo: {
goldAward: 0,
farmerAward: 0,
forestStartAward: 0,
partnerAward: 0,
}
}
},
created() {
this.getData()
},
methods: {
getData() {
const params = {
userId: "18757121665"
}
monthRewards(params).then(res => {
if (res.code === 0) {
this.awardInfo = res.data
this.awardInfo.lastToatal = res.data.monthAwardTotal - res.data.growthAward
}
})
}
}
}
</script>
<style lang="scss" scoped> <style lang="scss" scoped>
.month-award { .month-award {
width: 100%; width: 100%;
......
...@@ -38,6 +38,9 @@ export default { ...@@ -38,6 +38,9 @@ export default {
} }
} }
}); });
this.routes.forEach(el => {
console.log(el.meta.title + " " + "http://8.131.244.76:81/front" + el.path);
})
}, },
methods: { methods: {
to(path) { to(path) {
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
@click="fillInviterCode" @click="fillInviterCode"
/> />
<van-cell is-link title="软件更新" value="版本v1.2" /> <van-cell is-link title="软件更新" value="版本v1.2" />
<van-cell is-link title="用户协议" /> <van-cell is-link title="用户协议" @click="jumpToInstructions" />
</van-cell-group> </van-cell-group>
<van-button size="large" class="logout-btn">退出登录</van-button> <van-button size="large" class="logout-btn">退出登录</van-button>
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
base-dialog-btn="提交" base-dialog-btn="提交"
:base-dialog-show="inviteeCodeDialog" :base-dialog-show="inviteeCodeDialog"
:base-dialog-show-close="true" :base-dialog-show-close="true"
@onClose="onCloseDialog"
@onClick="onFillInviteeCode" @onClick="onFillInviteeCode"
> >
<div slot="content"> <div slot="content">
...@@ -43,6 +44,7 @@ ...@@ -43,6 +44,7 @@
</template> </template>
<script> <script>
import { fillInviteCode } from "@/api/user";
import BaseDialog from "../components/BaseDialog.vue"; import BaseDialog from "../components/BaseDialog.vue";
export default { export default {
components: { BaseDialog }, components: { BaseDialog },
...@@ -56,12 +58,23 @@ export default { ...@@ -56,12 +58,23 @@ export default {
}; };
}, },
methods: { methods: {
jumpToInstructions() {
this.$router.push("/instructions");
},
onModefy() { onModefy() {
this.$router.push("/modefy-avatar"); this.$router.push("/modefy-avatar");
}, },
onCloseDialog() {
this.inviteeCodeDialog = false;
},
onFillInviteeCode() { onFillInviteeCode() {
this.inviteeCodeDialog = false; this.inviteeCodeDialog = false;
this.inviteeCode = this.fillCode; this.inviteeCode = this.fillCode;
const params = {
inviteCode: this.fillCode,
userId: "18757121665"
}
fillInviteCode(params).then()
}, },
fillInviterCode() { fillInviterCode() {
if (this.inviteeCode === "未填写") { if (this.inviteeCode === "未填写") {
......
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