Commit cea488bd authored by leiqingsong's avatar leiqingsong

Merge branch 'dev_xll' into 'master'

Dev xll

See merge request !20
parents 5e90db84 4d236a97
...@@ -1747,6 +1747,16 @@ ...@@ -1747,6 +1747,16 @@
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true "dev": true
}, },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"autoprefixer": { "autoprefixer": {
"version": "9.8.6", "version": "9.8.6",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz",
...@@ -1788,6 +1798,41 @@ ...@@ -1788,6 +1798,41 @@
"unique-filename": "^1.1.1" "unique-filename": "^1.1.1"
} }
}, },
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"postcss-loader": { "postcss-loader": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
...@@ -1829,6 +1874,16 @@ ...@@ -1829,6 +1874,16 @@
"minipass": "^3.1.1" "minipass": "^3.1.1"
} }
}, },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"terser-webpack-plugin": { "terser-webpack-plugin": {
"version": "2.3.8", "version": "2.3.8",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz",
...@@ -1845,6 +1900,32 @@ ...@@ -1845,6 +1900,32 @@
"terser": "^4.6.12", "terser": "^4.6.12",
"webpack-sources": "^1.4.3" "webpack-sources": "^1.4.3"
} }
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.1.2",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz",
"integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
}
}
} }
} }
}, },
...@@ -2712,6 +2793,16 @@ ...@@ -2712,6 +2793,16 @@
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true "dev": true
}, },
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"dev": true,
"optional": true,
"requires": {
"file-uri-to-path": "1.0.0"
}
},
"bluebird": { "bluebird": {
"version": "3.7.2", "version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
...@@ -5498,6 +5589,13 @@ ...@@ -5498,6 +5589,13 @@
"schema-utils": "^2.5.0" "schema-utils": "^2.5.0"
} }
}, },
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
"dev": true,
"optional": true
},
"filesize": { "filesize": {
"version": "3.6.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
...@@ -7638,6 +7736,13 @@ ...@@ -7638,6 +7736,13 @@
"thenify-all": "^1.0.0" "thenify-all": "^1.0.0"
} }
}, },
"nan": {
"version": "2.14.2",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
"integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==",
"dev": true,
"optional": true
},
"nanomatch": { "nanomatch": {
"version": "1.2.13", "version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
...@@ -11236,6 +11341,11 @@ ...@@ -11236,6 +11341,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",
...@@ -11309,87 +11419,6 @@ ...@@ -11309,87 +11419,6 @@
} }
} }
}, },
"vue-loader-v16": {
"version": "npm:vue-loader@16.1.2",
"resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz",
"integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
"integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-router": { "vue-router": {
"version": "3.5.1", "version": "3.5.1",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.1.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.1.tgz",
...@@ -11512,7 +11541,11 @@ ...@@ -11512,7 +11541,11 @@
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
"dev": true, "dev": true,
"optional": true "optional": true,
"requires": {
"bindings": "^1.5.0",
"nan": "^2.12.1"
}
}, },
"glob-parent": { "glob-parent": {
"version": "3.1.0", "version": "3.1.0",
...@@ -11823,7 +11856,11 @@ ...@@ -11823,7 +11856,11 @@
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
"dev": true, "dev": true,
"optional": true "optional": true,
"requires": {
"bindings": "^1.5.0",
"nan": "^2.12.1"
}
}, },
"glob-parent": { "glob-parent": {
"version": "3.1.0", "version": "3.1.0",
......
...@@ -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 }
} }
]; ];
......
...@@ -81,6 +81,7 @@ export default { ...@@ -81,6 +81,7 @@ export default {
num: 12, num: 12,
label: "我的直推", label: "我的直推",
hasArrow: true, hasArrow: true,
urlName: "MyStatus",
field: "recommendUserCount" field: "recommendUserCount"
}, },
{ {
...@@ -272,7 +273,7 @@ $white: #ffffff; ...@@ -272,7 +273,7 @@ $white: #ffffff;
</style> </style>
<style lang="scss"> <style lang="scss">
.van-progress { .van-progress {
width: 250px; width: calc(100% - 72px);
height: 4px; height: 4px;
background-color: rgba(0, 0, 0, 0.2); background-color: rgba(0, 0, 0, 0.2);
.van-progress__portion { .van-progress__portion {
......
...@@ -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;
}
})
} }
} }
}; };
......
...@@ -95,6 +95,13 @@ export default { ...@@ -95,6 +95,13 @@ export default {
}; };
}, },
mounted() { mounted() {
let params = window.location.search
if(params){
let beInvitedCode = params.split('=')[1]
if(beInvitedCode){
this.form.beInvitedCode = beInvitedCode
}
}
if (this.timer) { if (this.timer) {
clearInterval(this.timer); clearInterval(this.timer);
} }
......
...@@ -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