新增账户
This commit is contained in:
@@ -1,71 +0,0 @@
|
||||
/*
|
||||
* @Description:饮水记录模块
|
||||
* @Author: Aimee·Zhang
|
||||
* @Date: 2022-01-12 11:07:06
|
||||
* @LastEditors: Aimee·Zhang
|
||||
* @LastEditTime: 2022-01-12 15:57:48
|
||||
*/
|
||||
import { request } from '../index'
|
||||
/**
|
||||
* @description:饮水记录首页
|
||||
*/
|
||||
const waters = (data) => {
|
||||
return request({
|
||||
url: 'health/waters',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:设定喝水目标
|
||||
* @Date: 2022-01-12 15:33:39
|
||||
*/
|
||||
const setWaters = (data) => {
|
||||
return request({
|
||||
url: 'health/waters',
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:喝水
|
||||
* @Date: 2022-01-12 12:56:00
|
||||
*/
|
||||
const drinkWater = (data) => {
|
||||
return request({
|
||||
url: 'health/waters/drink',
|
||||
method: 'POST',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:删除喝水记录
|
||||
* @Date: 2022-01-20 15点08分
|
||||
*/
|
||||
const delDrinkWater = (id) => {
|
||||
return request({
|
||||
url: `health/waters/${id}`,
|
||||
method: 'DELETE',
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:饮食运动日历
|
||||
* @params {日期}
|
||||
* @method {get}
|
||||
* @Date: 2022-02-08 11点18分
|
||||
*/
|
||||
const dateList = (data) => {
|
||||
return request({
|
||||
url: 'health/calendar/water',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export {
|
||||
waters,
|
||||
setWaters,
|
||||
drinkWater,
|
||||
delDrinkWater,
|
||||
dateList
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
|
||||
/*
|
||||
* @Description:创建档案模块
|
||||
* @Author: Aimee·Zhang
|
||||
* @Date: 2022-01-12 13:27:31
|
||||
* @LastEditors: Aimee·Zhang
|
||||
* @LastEditTime: 2022-01-12 14:32:11
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
/**
|
||||
* @description:新建健康档案
|
||||
* @params {age,sex,height,weight,exercise,goal_weight,days}
|
||||
* @return {*}
|
||||
* @method {post}
|
||||
* @Date: 2022-01-12 11:08:11
|
||||
*/
|
||||
const recordsHealth = (data) => {
|
||||
return request({
|
||||
url: 'health/records',
|
||||
method: "POST",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:编辑健康档案前置
|
||||
* @params {id}档案id
|
||||
* @return {}
|
||||
* @method {get}
|
||||
* @Date: 2022-01-12 13:39:56
|
||||
*/
|
||||
const editHealthBefore = (id) => {
|
||||
return request({
|
||||
url: `health/records/${id}/edit`
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:修改健康档案
|
||||
* @params {record_id:档案id,data:参数}
|
||||
* @return {*}
|
||||
* @Date: 2022-01-12 13:49:29
|
||||
*/
|
||||
const editHealth = (record_id, data) => {
|
||||
console.log(data,'data............')
|
||||
return request({
|
||||
url: `health/records/${record_id}`,
|
||||
method: "PUT",
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
recordsHealth,
|
||||
editHealthBefore,
|
||||
editHealth
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
* @Description:
|
||||
* @Author: Aimee·Zhang
|
||||
* @Date: 2022-01-13 13:17:14
|
||||
* @LastEditors: Aimee·Zhang
|
||||
* @LastEditTime: 2022-01-14 08:38:02
|
||||
*/
|
||||
/**
|
||||
* @description:健康测评模块接口
|
||||
* @params {*}
|
||||
* @return {*}
|
||||
* @Date: 2022-01-13 13:17:33
|
||||
*/
|
||||
import { request } from '../index'
|
||||
/**
|
||||
* @description:健康测评接口
|
||||
*/
|
||||
const evaluations = () => {
|
||||
return request({
|
||||
url: 'evaluations'
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:测试介绍页面
|
||||
* @Date: 2022-01-13 15:04:47
|
||||
*/
|
||||
const evaluationsInfo = (evaluation_id) => {
|
||||
return request({
|
||||
url: `evaluations/${evaluation_id}`
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:试题列表
|
||||
* @Date: 2022-01-13 15:12:31
|
||||
*/
|
||||
|
||||
const evaluationsQuestion = (evaluation_id, page) => {
|
||||
return request({
|
||||
url: `evaluations/${evaluation_id}/questions`,
|
||||
data: {
|
||||
page: page
|
||||
}
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:提交答案
|
||||
* @Date: 2022-01-13 16:06:26
|
||||
*/
|
||||
const evaluationsAnswers = (data) => {
|
||||
return request({
|
||||
url: `evaluations/${data.id}/answers`,
|
||||
data: data,
|
||||
method: 'POST'
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:获取测评结果
|
||||
* @Date: 2022-01-13 16:28:02
|
||||
*/
|
||||
const evaluationsAnswersInfo = (id) => {
|
||||
return request({
|
||||
url: `evaluations/${id}/result`,
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
evaluations,
|
||||
evaluationsInfo,
|
||||
evaluationsQuestion,
|
||||
evaluationsAnswers,
|
||||
evaluationsAnswersInfo
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
/*
|
||||
* @Description:vip健康食谱
|
||||
* @Author: Aimee·Zhang
|
||||
* @Date: 2022-01-12 17:48:28
|
||||
* @LastEditors: Aimee·Zhang
|
||||
* @LastEditTime: 2022-01-14 09:16:28
|
||||
*/
|
||||
import { request } from '../index'
|
||||
/**
|
||||
* @description:称量体重模块首页
|
||||
*/
|
||||
const positions = (page) => {
|
||||
return request({
|
||||
url: 'health/recipe/positions',
|
||||
data: { page: page }
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:饮食和运动首页信息
|
||||
* @params {日期}
|
||||
* @method {get}
|
||||
* @Date: 2022-01-13 08:55:04
|
||||
*/
|
||||
const plans = (date) => {
|
||||
return request({
|
||||
url: 'health/plans',
|
||||
data: {
|
||||
date: date
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:食品列表可翻页
|
||||
* @params {食品名称}
|
||||
* @return {}
|
||||
* @Date: 2022-01-13 09:37:26
|
||||
*/
|
||||
|
||||
const healthFoods = (data) => {
|
||||
return request({
|
||||
url: 'health/foods',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:添加食物
|
||||
* @Date: 2022-01-13 10:57:52
|
||||
*/
|
||||
const addHealthFoods = (data) => {
|
||||
return request({
|
||||
url: 'health/intakes',
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:编辑食品
|
||||
* @Date: 2022-01-13 11:37:37
|
||||
*/
|
||||
const editHealthFoods = (data) => {
|
||||
return request({
|
||||
url: `health/intakes/${data.intake_id}`,
|
||||
method: 'PUT',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:删除添加食品
|
||||
* @Date: 2022-01-14 09:15:38
|
||||
*/
|
||||
const delHealthFoods = (intake_id) => {
|
||||
return request({
|
||||
url: `health/intakes/${intake_id}`,
|
||||
method: 'DELETE'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:饮食运动日历
|
||||
* @params {日期}
|
||||
* @method {get}
|
||||
* @Date: 2022-02-07 15点18分
|
||||
*/
|
||||
const dateList = (data) => {
|
||||
return request({
|
||||
url: 'health/calendar/intake',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
export {
|
||||
positions,
|
||||
plans,
|
||||
healthFoods,
|
||||
addHealthFoods,
|
||||
editHealthFoods,
|
||||
delHealthFoods,
|
||||
dateList
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
|
||||
/*
|
||||
* @Description:健康记录模块
|
||||
* @Author: Aimee·Zhang
|
||||
* @Date: 2022-01-12 10:11:43
|
||||
* @LastEditors: Aimee·Zhang
|
||||
* @LastEditTime: 2022-01-13 08:56:03
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
/**
|
||||
* @description:记录首页
|
||||
* @params {null}
|
||||
* @return {}
|
||||
* @Date: 2022-01-12 10:17:21
|
||||
*/
|
||||
const logs = () => {
|
||||
return request({
|
||||
url: 'health/logs',
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
logs
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 话题
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 分类
|
||||
const categories = () =>{
|
||||
return request({
|
||||
url: 'notifications'
|
||||
})
|
||||
}
|
||||
|
||||
// 列表
|
||||
const lists = (type, data) =>{
|
||||
return request({
|
||||
url: 'notifications/' + type + '/list',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
// 详情
|
||||
const noticeDet = (notification_id) =>{
|
||||
return request({
|
||||
url: 'notifications/' + notification_id
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
categories,
|
||||
lists,
|
||||
noticeDet
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 食物排行
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 食物分类
|
||||
const categories = (data) =>{
|
||||
return request({
|
||||
url: 'health/foods/categories',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 食物排行
|
||||
const foods = (data) =>{
|
||||
return request({
|
||||
url: 'health/foods',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 食物详情
|
||||
const foodDet = (food) =>{
|
||||
return request({
|
||||
url: 'health/foods/' + food
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
categories,
|
||||
foods,
|
||||
foodDet
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 服务
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 首页
|
||||
const index = (data) =>{
|
||||
return request({
|
||||
url: 'health/halls',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
// 详情
|
||||
const hallsDet = (hall) =>{
|
||||
return request({
|
||||
url: 'health/halls/' + hall
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
index,
|
||||
hallsDet
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 签到
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 日历
|
||||
const date = () =>{
|
||||
return request({
|
||||
url: 'user/sign'
|
||||
})
|
||||
}
|
||||
|
||||
// 签到
|
||||
const sign = () =>{
|
||||
return request({
|
||||
url: 'user/sign',
|
||||
method: 'POST'
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
date,
|
||||
sign
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
/*
|
||||
* @Description:运动模块
|
||||
* @Author: Aimee·Zhang
|
||||
* @Date: 2022-01-19 13:20:39
|
||||
* @LastEditors: Aimee·Zhang
|
||||
* @LastEditTime: 2022-01-20 09:12:34
|
||||
*/
|
||||
import { request } from '../index'
|
||||
/**
|
||||
* @description:动列表
|
||||
* @params {*} 可翻页 按名称筛选
|
||||
* @Date: 2022-01-19 13:21:35
|
||||
*/
|
||||
|
||||
const healthSports = (data) => {
|
||||
return request({
|
||||
url: 'health/sports',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:添加运动
|
||||
* @Date: 2022-01-19 13点27分
|
||||
*/
|
||||
const addHealthSports = (data) => {
|
||||
return request({
|
||||
url: 'health/exercises',
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @description:编辑运动
|
||||
* @Date: 2022-01-19 17:15:31
|
||||
*/
|
||||
const editHealthSports = (data) => {
|
||||
return request({
|
||||
url: `health/exercises/${data.exercise_id}`,
|
||||
method: 'PUT',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 删除运动
|
||||
* @Date: 2022-01-20 09:12:35
|
||||
*/
|
||||
const delHealthSports = (data) => {
|
||||
return request({
|
||||
url: `health/exercises/${data.exercise_id}`,
|
||||
method: 'DELETE'
|
||||
})
|
||||
}
|
||||
export {
|
||||
healthSports,
|
||||
addHealthSports,
|
||||
editHealthSports,
|
||||
delHealthSports
|
||||
}
|
||||
@@ -1,53 +0,0 @@
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 话题
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 首页
|
||||
const index = () =>{
|
||||
return request({
|
||||
url: 'health/discover'
|
||||
})
|
||||
}
|
||||
|
||||
// 列表
|
||||
const lists = (data) =>{
|
||||
return request({
|
||||
url: 'health/topics',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 分类
|
||||
const categories = () =>{
|
||||
return request({
|
||||
url: 'health/topics/categories'
|
||||
})
|
||||
}
|
||||
|
||||
// 详情
|
||||
const topicDet = (topic) =>{
|
||||
return request({
|
||||
url: 'health/topics/' + topic
|
||||
})
|
||||
}
|
||||
|
||||
// 点赞
|
||||
const topicThumb = (topic) =>{
|
||||
return request({
|
||||
url: 'health/topics/' + topic + '/favorite',
|
||||
method: 'POST'
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
index,
|
||||
lists,
|
||||
categories,
|
||||
topicDet,
|
||||
topicThumb
|
||||
}
|
||||
@@ -14,14 +14,7 @@ const info = () =>{
|
||||
})
|
||||
}
|
||||
|
||||
// 我的档案
|
||||
const records = () =>{
|
||||
return request({
|
||||
url: 'health/records'
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
info,
|
||||
records
|
||||
info
|
||||
}
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 钱包
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 设置密码
|
||||
const security = data => {
|
||||
return request({
|
||||
url: 'chain/safe/security',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取助记词
|
||||
const seed = data => {
|
||||
return request({
|
||||
url: 'chain/safe/seed',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 余额
|
||||
const sum = () => {
|
||||
return request({
|
||||
url: 'chain/account/balance'
|
||||
})
|
||||
}
|
||||
|
||||
// 账户记录
|
||||
const logs = data => {
|
||||
return request({
|
||||
url: 'chain/account/logs',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 验证密码
|
||||
const securityCheck = (password) => {
|
||||
return request({
|
||||
url : "chain/safe/security/check",
|
||||
method: 'POST',
|
||||
data:{
|
||||
code : password,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 钱包私钥
|
||||
const privatekey = (code) => {
|
||||
return request({
|
||||
url : "chain/safe/private_key",
|
||||
data: {
|
||||
code
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 私钥规则
|
||||
const keyrules = () => {
|
||||
return request({
|
||||
url: 'cms/keyrules'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改密码
|
||||
const securityReset = (data) => {
|
||||
return request({
|
||||
url : "chain/safe/security",
|
||||
method: 'PUT',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
security,
|
||||
seed,
|
||||
sum,
|
||||
logs,
|
||||
securityCheck,
|
||||
privatekey,
|
||||
keyrules,
|
||||
securityReset
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
/*
|
||||
* @Description:称体重模块
|
||||
* @Author: Aimee·Zhang
|
||||
* @Date: 2022-01-12 16:24:28
|
||||
* @LastEditors: Aimee·Zhang
|
||||
* @LastEditTime: 2022-01-12 17:13:45
|
||||
*/
|
||||
import { request } from '../index'
|
||||
|
||||
/**
|
||||
* @description:称量体重模块首页
|
||||
*/
|
||||
const weights = (page) => {
|
||||
return request({
|
||||
url: 'health/weights',
|
||||
data: { page: page }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:获取曲线进度
|
||||
*/
|
||||
const curves = () => {
|
||||
return request({
|
||||
url: 'health/weights/bight'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* @description:记录体重
|
||||
* @Date: 2022-01-12 16:46:19
|
||||
*/
|
||||
const addWeight = (data) => {
|
||||
return request({
|
||||
url: 'health/weights',
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
weights,
|
||||
addWeight,
|
||||
curves
|
||||
}
|
||||
146
pages.json
146
pages.json
@@ -158,109 +158,6 @@
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/notice/index",
|
||||
"name": "noticeIndex",
|
||||
"style": {
|
||||
"navigationBarTitleText": "消息",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/notice/list",
|
||||
"name": "noticeList",
|
||||
"style": {
|
||||
"navigationBarTitleText": "消息",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/notice/details",
|
||||
"name": "noticeDetails",
|
||||
"style": {
|
||||
"navigationBarTitleText": "消息",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/wallet/add",
|
||||
"name": "WalletAdd",
|
||||
"style": {
|
||||
"navigationBarTitleText": "创建钱包",
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/wallet/create",
|
||||
"name": "WalletCreate",
|
||||
"style": {
|
||||
"navigationBarTitleText": "设置密码",
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/wallet/mnemonic",
|
||||
"name": "WalletMnemonic",
|
||||
"style": {
|
||||
"navigationBarTitleText": "导出助记词",
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/wallet/validation",
|
||||
"name": "WalletValidation",
|
||||
"style": {
|
||||
"navigationBarTitleText": "验证助记词",
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/wallet/property",
|
||||
"name": "WalletProperty",
|
||||
"style": {
|
||||
"navigationBarTitleText": "ZH钱包",
|
||||
"navigationBarTextStyle": "white",
|
||||
"app-plus": {
|
||||
"titleNView": {
|
||||
"backgroundImage": "linear-gradient(to right, #34ce98, #22aa98)",
|
||||
"type": "transparent",
|
||||
"buttons": [{
|
||||
"float": "right",
|
||||
"text": "\ue607",
|
||||
"fontSrc": "/static/iconfont.ttf",
|
||||
"color": "#FFF",
|
||||
"fontSize": "20px",
|
||||
"background": "rgba(0,0,0,0)"
|
||||
}],
|
||||
"backButton": {
|
||||
"background": "rgba(0,0,0,0)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/wallet/privatekey",
|
||||
"name": "WalletPrivatekey",
|
||||
"style": {
|
||||
"navigationBarTitleText": "钱包私钥",
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/wallet/resetPassword",
|
||||
"name": "ResetPassword",
|
||||
"style": {
|
||||
"navigationBarTitleText": "修改钱包密码",
|
||||
"navigationBarBackgroundColor": "#FFFFFF",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/store/search",
|
||||
"name": "StoreSearch",
|
||||
@@ -281,14 +178,27 @@
|
||||
"name": "AccountIntegral",
|
||||
"style": {
|
||||
"navigationBarTitleText": "共力值",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
"navigationBarBackgroundColor": "#34CE98",
|
||||
"navigationBarTextStyle": "white"
|
||||
}
|
||||
}, {
|
||||
"path": "pages/account/dt",
|
||||
"name": "AccountDt",
|
||||
"style": {
|
||||
"navigationBarTitleText": "DT积分",
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
"navigationBarBackgroundColor": "#34CE98",
|
||||
"backgroundColorTop": "#34CE98",
|
||||
"navigationBarTextStyle": "white",
|
||||
"app-plus": {
|
||||
"titleNView": {
|
||||
"buttons": [{
|
||||
"text": "充值",
|
||||
"width": "60",
|
||||
"fontSize": "14",
|
||||
"fontWeight": "bold"
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"path": "pages/account/recharge",
|
||||
@@ -298,25 +208,23 @@
|
||||
"navigationBarBackgroundColor": "#FFFFFF"
|
||||
}
|
||||
}, {
|
||||
"path": "pages/vip/vip",
|
||||
"path": "pages/vip/vip",
|
||||
"name": "Vip",
|
||||
"style": {
|
||||
"navigationBarTitleText": "共力会员",
|
||||
"navigationBarBackgroundColor": "#242430",
|
||||
"navigationBarTextStyle": "white",
|
||||
"navigationBarTitleText": "共力会员",
|
||||
"navigationBarBackgroundColor": "#242430",
|
||||
"navigationBarTextStyle": "white",
|
||||
"backgroundColorTop": "#242430"
|
||||
}
|
||||
}, {
|
||||
"path": "pages/vip/agreement",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
,{
|
||||
"path" : "pages/vip/agreement",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText": "",
|
||||
"enablePullDownRefresh": false
|
||||
}
|
||||
|
||||
}
|
||||
],
|
||||
],
|
||||
"tabBar": {
|
||||
"borderStyle": "white",
|
||||
"selectedColor": "#34CE98",
|
||||
|
||||
@@ -1,7 +1,35 @@
|
||||
<template>
|
||||
<view>
|
||||
账户
|
||||
<button @click="onNav">充值</button>
|
||||
<view class="content">
|
||||
<view class="dt-header">
|
||||
<view class="title">DT积分余额</view>
|
||||
<view class="num">0.00</view>
|
||||
</view>
|
||||
<view class="logs-title">账户记录</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price add">+1000.0</view>
|
||||
</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price remove">-1000.0</view>
|
||||
</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price remove">-1000.0</view>
|
||||
</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price remove">-1000.0</view>
|
||||
</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price remove">-1000.0</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -13,13 +41,74 @@
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
onNav(){
|
||||
this.$Router.push({name: 'AccountRecharge'})
|
||||
}
|
||||
|
||||
},
|
||||
onNavigationBarButtonTap() {
|
||||
this.$Router.push({name: 'AccountRecharge'})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
.content{
|
||||
background: $window-color;
|
||||
min-height: 100vh;
|
||||
.dt-header{
|
||||
background: $main-color;
|
||||
padding: $padding*3 $padding $padding*2;
|
||||
.title{
|
||||
color: rgba(255, 255, 255, .9);
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.num{
|
||||
font-weight: bold;
|
||||
font-size: 60rpx;
|
||||
padding-top: 10rpx;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
// 账户记录
|
||||
.logs-title{
|
||||
padding: 0 $padding;
|
||||
font-weight: bold;
|
||||
line-height: 90rpx;
|
||||
color: #333;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.logs-item{
|
||||
position: relative;
|
||||
background: white;
|
||||
border-radius: $radius;
|
||||
padding: $padding - 10 $padding;
|
||||
padding-right: 240rpx;
|
||||
box-sizing: border-box;
|
||||
margin: 0 $margin ($margin - 10);
|
||||
.logs-item-title{
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
.logs-item-time{
|
||||
font-size: 28rpx;
|
||||
line-height: 40rpx;
|
||||
color: gray;
|
||||
}
|
||||
.logs-item-price{
|
||||
position: absolute;
|
||||
right: $padding;
|
||||
top: $padding - 10;
|
||||
line-height: 90rpx;
|
||||
width: 180rpx;
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
@extend .nowrap;
|
||||
&.add{
|
||||
color: $main-color;
|
||||
}
|
||||
&.remove{
|
||||
color: $text-price;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,6 +1,35 @@
|
||||
<template>
|
||||
<view>
|
||||
共力值
|
||||
<view class="content">
|
||||
<view class="dt-header">
|
||||
<view class="title">共力值余额</view>
|
||||
<view class="num">0.00</view>
|
||||
</view>
|
||||
<view class="logs-title">账户记录</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price add">+1000.0</view>
|
||||
</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price remove">-1000.0</view>
|
||||
</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price remove">-1000.0</view>
|
||||
</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price remove">-1000.0</view>
|
||||
</view>
|
||||
<view class="logs-item">
|
||||
<view class="logs-item-title">账户充值</view>
|
||||
<view class="logs-item-time">2022-06-07 10:10:51</view>
|
||||
<view class="logs-item-price remove">-1000.0</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -10,10 +39,76 @@
|
||||
return {
|
||||
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
||||
},
|
||||
onNavigationBarButtonTap() {
|
||||
this.$Router.push({name: 'AccountRecharge'})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
.content{
|
||||
background: $window-color;
|
||||
min-height: 100vh;
|
||||
.dt-header{
|
||||
background: $main-color;
|
||||
padding: $padding*3 $padding $padding*2;
|
||||
.title{
|
||||
color: rgba(255, 255, 255, .9);
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.num{
|
||||
font-weight: bold;
|
||||
font-size: 60rpx;
|
||||
padding-top: 10rpx;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
// 账户记录
|
||||
.logs-title{
|
||||
padding: 0 $padding;
|
||||
font-weight: bold;
|
||||
line-height: 90rpx;
|
||||
color: #333;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
.logs-item{
|
||||
position: relative;
|
||||
background: white;
|
||||
border-radius: $radius;
|
||||
padding: $padding - 10 $padding;
|
||||
padding-right: 240rpx;
|
||||
box-sizing: border-box;
|
||||
margin: 0 $margin ($margin - 10);
|
||||
.logs-item-title{
|
||||
font-weight: bold;
|
||||
font-size: 30rpx;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
.logs-item-time{
|
||||
font-size: 28rpx;
|
||||
line-height: 40rpx;
|
||||
color: gray;
|
||||
}
|
||||
.logs-item-price{
|
||||
position: absolute;
|
||||
right: $padding;
|
||||
top: $padding - 10;
|
||||
line-height: 90rpx;
|
||||
width: 180rpx;
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
@extend .nowrap;
|
||||
&.add{
|
||||
color: $main-color;
|
||||
}
|
||||
&.remove{
|
||||
color: $text-price;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,101 +0,0 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="tips">
|
||||
<view class="noticeImg" :class="{active : noticeData.type == 'SystemNotification'}">
|
||||
<block v-if="noticeData.type == 'SystemNotification'">
|
||||
<u-icon name="bell-fill" color="#77e79f" size="20" bold style="padding: 14rpx"></u-icon>
|
||||
</block>
|
||||
<block v-else>
|
||||
<u-icon name="calendar-fill" color="#f1a166" size="20" bold style="padding: 14rpx"></u-icon>
|
||||
</block>
|
||||
</view>
|
||||
<view class="noticeBox">
|
||||
<view class="noticeTitle">
|
||||
{{ noticeData.type == 'SystemNotification' ? '系统通知' : '订单通知'}}
|
||||
</view>
|
||||
<view class="contant">
|
||||
<view class="title">
|
||||
{{ noticeData.title }}
|
||||
</view>
|
||||
<view class="text">
|
||||
时间:{{ noticeData.created_at }}
|
||||
</view>
|
||||
<view class="text">
|
||||
{{ noticeData.content }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { noticeDet } from '@/apis/interfaces/notice'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
noticeData : ''
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
// 获取列表
|
||||
this.getDet()
|
||||
},
|
||||
methods: {
|
||||
// 列表
|
||||
getDet(){
|
||||
noticeDet(this.$Route.query.id).then(res => {
|
||||
this.noticeData = res
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
background-color: $window-color;
|
||||
min-height: 100vh;
|
||||
}
|
||||
.tips {
|
||||
padding: $padding;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
.noticeImg {
|
||||
width: 64rpx;
|
||||
height: 64rpx;
|
||||
text-align: center;
|
||||
border-radius: 50%;
|
||||
background-color: #ffefe2;
|
||||
&.active {
|
||||
background-color: #e7f8f0;
|
||||
}
|
||||
}
|
||||
.noticeBox {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
padding: $padding + 10 $padding $padding $padding + 90rpx;
|
||||
box-sizing: border-box;
|
||||
.noticeTitle {
|
||||
margin-bottom: $margin;
|
||||
}
|
||||
.contant {
|
||||
background-color: white;
|
||||
padding: $padding $padding - 10;
|
||||
box-sizing: border-box;
|
||||
border-radius: $radius;
|
||||
.title {
|
||||
font-weight: bold;
|
||||
margin-bottom: $margin;
|
||||
}
|
||||
.text {
|
||||
line-height: 48rpx;
|
||||
font-size: $title-size-m;
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,103 +0,0 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="noticeList" v-for="(item, index) in tabArr" :key="index" @click="$Router.push({ name: 'noticeList', params: {type: item.type }})" >
|
||||
<view class="noticeImg" :class="{active : item.count != 0}">
|
||||
<block v-if="item.type == 'SystemNotification'">
|
||||
<u-icon name="bell-fill" color="#77e79f" size="22" bold style="padding: 14rpx"></u-icon>
|
||||
</block>
|
||||
<block v-else>
|
||||
<u-icon name="calendar-fill" color="#f1a166" size="22" bold style="padding: 14rpx"></u-icon>
|
||||
</block>
|
||||
</view>
|
||||
<view class="noticeCont">
|
||||
<view class="name">
|
||||
{{ item.name }}
|
||||
</view>
|
||||
<view class="nowrap text">
|
||||
{{ item.type == 'SystemNotification' ? 'APP特色功能介绍、官方推进、活动通知' : '商品订单购买成功、发货成功、退货' }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { categories } from '@/apis/interfaces/notice'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tabArr : []
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
// 获取分类
|
||||
this.getNotice()
|
||||
},
|
||||
methods: {
|
||||
// 分类
|
||||
getNotice(){
|
||||
categories().then(res => {
|
||||
this.tabArr = res
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
padding: $padding;
|
||||
box-sizing: border-box;
|
||||
background-color: $window-color;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.noticeList {
|
||||
padding: $padding;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
background-color: white;
|
||||
margin-bottom: $margin;
|
||||
border-radius: $radius;
|
||||
height: 146rpx;
|
||||
&:first-child {
|
||||
.noticeImg {
|
||||
background-color: #e7f8f0;
|
||||
}
|
||||
}
|
||||
.noticeImg {
|
||||
width: 68rpx;
|
||||
height: 68rpx;
|
||||
text-align: center;
|
||||
border-radius: 50%;
|
||||
margin-top: $margin - 20;
|
||||
background-color: #ffefe2;
|
||||
position: relative;
|
||||
&.active::after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
top: $margin - 25;
|
||||
right: 0;
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
border-radius: 50%;
|
||||
background-color: $text-price;
|
||||
}
|
||||
}
|
||||
.noticeCont {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
padding: $padding $padding 0 $padding + 100rpx;
|
||||
.name {
|
||||
font-weight: bold;
|
||||
font-size: $title-size-lg;
|
||||
}
|
||||
.text {
|
||||
margin-top: $margin - 20;
|
||||
font-size: $title-size-sm;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,109 +0,0 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="box" v-if="listArr.length > 0">
|
||||
<view class="list" v-for="(item, index) in listArr" @click="$Router.push({ name: 'noticeDetails', params: {id: item.notification_id }})">
|
||||
<view class="title">
|
||||
{{ item.title }}
|
||||
</view>
|
||||
<view class="text">
|
||||
{{ item.content }}<view class="more">点我查看<u-icon name="arrow-right-double" color="#34CE98" bold size="14" style="display: inline-block;"></u-icon></view>
|
||||
</view>
|
||||
</view>
|
||||
<block v-if="page.total_page > 1">
|
||||
<u-loadmore :status="status" />
|
||||
</block>
|
||||
</view>
|
||||
<view class="noMessage" v-else>
|
||||
<u-empty
|
||||
mode="message"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { lists } from '@/apis/interfaces/notice'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
listArr : [],
|
||||
status : 'loadmore',
|
||||
page : ''
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
// 获取列表
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 列表
|
||||
getList(pages){
|
||||
lists(this.$Route.query.type, {
|
||||
page: pages
|
||||
}).then(res => {
|
||||
if(res.page.current == 1){
|
||||
this.listArr = []
|
||||
}
|
||||
this.listArr = this.listArr.concat(res.data)
|
||||
this.status = this.page.has_more ? 'loadmore': 'nomore'
|
||||
this.page = res.page
|
||||
})
|
||||
}
|
||||
},
|
||||
// 下拉加载
|
||||
onReachBottom() {
|
||||
if(this.page.has_more){
|
||||
this.status = 'loading'
|
||||
let pages = this.page.current + 1
|
||||
// 获取列表
|
||||
this.getList(pages)
|
||||
return
|
||||
}
|
||||
this.status = 'nomore'
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
background-color: $window-color;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.box {
|
||||
padding: $padding;
|
||||
box-sizing: border-box;
|
||||
.list {
|
||||
padding: $padding;
|
||||
box-sizing: border-box;
|
||||
border-radius: $radius;
|
||||
background-color: white;
|
||||
margin-bottom: $margin;
|
||||
.title {
|
||||
font-size: $title-size-lg;
|
||||
margin-bottom: $margin - 10;
|
||||
font-weight: bold;
|
||||
}
|
||||
.text {
|
||||
font-size: $title-size-m;
|
||||
color: $text-gray-m;
|
||||
.more {
|
||||
color: $main-color;
|
||||
padding-left: $padding - 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.noMessage {
|
||||
background-color: white;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-pack: center;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
</style>
|
||||
@@ -1,257 +0,0 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<image class="setting" src="/static/find/sign_img.png" mode="widthFix"></image>
|
||||
<view class="sign">
|
||||
<view class="signAdd">
|
||||
<view class="label">
|
||||
<image class="picture" src="/static/find/sign.png" mode="aspectFill"></image>
|
||||
<view class="label-day">
|
||||
<view class="number">
|
||||
<text>{{ dateData.total }}</text>天
|
||||
</view>
|
||||
本月打卡
|
||||
</view>
|
||||
</view>
|
||||
<view class="label">
|
||||
<image class="picture" src="/static/find/sign_active.png" mode="aspectFill"></image>
|
||||
<view class="label-day">
|
||||
<view class="number">
|
||||
<text>{{ dateData.continue }}</text>天
|
||||
</view>
|
||||
累计打卡
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="signDate">
|
||||
<view class="date">
|
||||
{{ dateData.month }}
|
||||
</view>
|
||||
<view class="list">
|
||||
<view class="week">
|
||||
<view class="week-label">
|
||||
日
|
||||
</view>
|
||||
<view class="week-label">
|
||||
一
|
||||
</view>
|
||||
<view class="week-label">
|
||||
二
|
||||
</view>
|
||||
<view class="week-label">
|
||||
三
|
||||
</view>
|
||||
<view class="week-label">
|
||||
四
|
||||
</view>
|
||||
<view class="week-label">
|
||||
五
|
||||
</view>
|
||||
<view class="week-label">
|
||||
六
|
||||
</view>
|
||||
</view>
|
||||
<view class="day" v-for="(item, index) in dateArr" :key="index">
|
||||
<view class="day-label" v-for="(items, index) in item" :key="index">
|
||||
<view class="label-block" :class="{active : items.isSign}" v-if="!items.isHidden">
|
||||
<uni-icons v-if="items.isSign" class="search-icon" custom-prefix="iconfont" type="icon-dui" color="#ffffff" size="18"></uni-icons>
|
||||
<block v-else>{{ items.date }}</block>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="signBtn">
|
||||
<view class="btn" @click="signClick" :class="{active : dateData.isSign}">
|
||||
{{ dateData.isSign ? '今日已打卡' : '今日打卡'}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tipsText">
|
||||
ZH大健康用户打卡
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { date, sign } from '@/apis/interfaces/sign'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
dateData: '',
|
||||
dateArr : ''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.dateList();
|
||||
},
|
||||
methods: {
|
||||
// 用户登录
|
||||
dateList() {
|
||||
date().then(res => {
|
||||
this.dateData = res.base
|
||||
this.dateArr = res.calendar
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 签到
|
||||
signClick() {
|
||||
sign().then(res => {
|
||||
console.log(res)
|
||||
uni.showToast({
|
||||
title: '签到成功',
|
||||
icon: "none"
|
||||
})
|
||||
this.dateList();
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: "none"
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
page {
|
||||
background: $window-color;
|
||||
height: 100vh;
|
||||
}
|
||||
.setting {
|
||||
width: 100%;
|
||||
}
|
||||
.sign {
|
||||
z-index: 9;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
padding: 0 $padding + 20;
|
||||
margin-top: -$margin * 2.5;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
.signTitle {
|
||||
padding: $padding * 3;
|
||||
font-size: $title-size + 20;
|
||||
color: #48988d;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
}
|
||||
.signAdd {
|
||||
padding: $padding $padding * 2.5;
|
||||
box-sizing: border-box;
|
||||
border-radius: $radius-m;
|
||||
background-color: white;
|
||||
margin-bottom: $margin;
|
||||
display: flex;
|
||||
.label {
|
||||
display: flex;
|
||||
font-size: $title-size-sm;
|
||||
.picture {
|
||||
width: 74rpx;
|
||||
height: 74rpx;
|
||||
margin-right: $margin - 10;
|
||||
}
|
||||
.label-day {
|
||||
color: $text-gray;
|
||||
text {
|
||||
font-size: $title-size-lg;
|
||||
color: $text-color;
|
||||
font-weight: 600;
|
||||
padding-right: $padding - 20;
|
||||
}
|
||||
}
|
||||
&:first-child {
|
||||
flex: 1;
|
||||
.label-day {
|
||||
text {
|
||||
color: $main-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.signDate {
|
||||
padding: $padding;
|
||||
border-radius: $radius-m;
|
||||
background-color: white;
|
||||
.date {
|
||||
text-align: center;
|
||||
font-size: $title-size + 6;
|
||||
margin-bottom: $margin;
|
||||
font-weight: 600;
|
||||
}
|
||||
.list {
|
||||
.week {
|
||||
display: flex;
|
||||
.week-label {
|
||||
text-align: center;
|
||||
font-size: $title-size-m;
|
||||
width: 14.28%;
|
||||
margin: $margin - 10 0;
|
||||
}
|
||||
}
|
||||
.day {
|
||||
flex-wrap: wrap;
|
||||
display: flex;
|
||||
.day-label {
|
||||
width: 14.28%;
|
||||
text-align: center;
|
||||
line-height: 80rpx;
|
||||
color: $text-color;
|
||||
font-size: $title-size-m;
|
||||
.label-block {
|
||||
display: inline-block;
|
||||
background-color: transparent;
|
||||
color: $text-gray-m;
|
||||
border-radius: 50%;
|
||||
width: 56rpx;
|
||||
height: 56rpx;
|
||||
line-height: 56rpx;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
.label-icon {
|
||||
position: absolute;
|
||||
left: 10rpx;
|
||||
top: 0;
|
||||
}
|
||||
&.active {
|
||||
background-color: $main-color;
|
||||
color: white;
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.signBtn {
|
||||
padding: $padding * 2 $padding * 2 0;
|
||||
.btn {
|
||||
color: white;
|
||||
background-color: $text-price;
|
||||
text-align: center;
|
||||
border-radius: $radius-m;
|
||||
line-height: 90rpx;
|
||||
&.active {
|
||||
background-color: #ededed;
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tipsText {
|
||||
text-align: center;
|
||||
line-height: 120rpx;
|
||||
font-size: $title-size-sm;
|
||||
color: $text-gray-m;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,68 +0,0 @@
|
||||
<template>
|
||||
<view class="content vertical">
|
||||
<!-- logo -->
|
||||
<image class="logo" src="@/static/wallet/logo.png" mode="widthFix"></image>
|
||||
<!-- 副标题 -->
|
||||
<view class="sub-title">激活您的ZH健康钱包获取钱包地址,地址可以理解为您的个人银行卡卡号</view>
|
||||
<!-- 按钮 -->
|
||||
<view class="wallet-btn" @click="$Router.replace({name: 'WalletCreate'})">激活钱包</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: white;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
position: relative;
|
||||
height: 100vh;
|
||||
padding: 0 15vw;
|
||||
text-align: center;
|
||||
|
||||
.logo {
|
||||
width: 138rpx;
|
||||
vertical-align: top;
|
||||
margin-bottom: 20vh;
|
||||
}
|
||||
|
||||
.sub-title {
|
||||
font-size: $title-size-m;
|
||||
color: $text-gray;
|
||||
}
|
||||
|
||||
.wallet-btn {
|
||||
width: 100%;
|
||||
background-color: $main-color;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
margin-top: $margin * 2;
|
||||
border-radius: $radius-lg;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
|
||||
&.hollow {
|
||||
background-color: white;
|
||||
color: $main-color;
|
||||
border: solid 2rpx $main-color;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,193 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<!-- 设置钱包密码 -->
|
||||
<view class="password">
|
||||
<view class="prompt">请设置6位数字密码,建议不要使用连续的数字</view>
|
||||
<view class="group">
|
||||
<view class="inputs" @click="onShowKet('password')">
|
||||
<block v-if="password.length > 0">
|
||||
<text v-for="item in password.length" :key="item">•</text>
|
||||
</block>
|
||||
<block v-if="keyShow && valKye === 'password'">
|
||||
<text class="flicker-animation">|</text>
|
||||
</block>
|
||||
<block v-else>
|
||||
<text v-if="password.length === 0" class="placeholder">请设置密码</text>
|
||||
</block>
|
||||
</view>
|
||||
<view class="inputs" :class="{'hide': verify === ''}" @click="onShowKet('verify')">
|
||||
<block v-if="verify.length > 0">
|
||||
<text v-for="item in verify.length" :key="item">•</text>
|
||||
</block>
|
||||
<block v-if="keyShow && valKye === 'verify'">
|
||||
<text class="flicker-animation">|</text>
|
||||
</block>
|
||||
<block v-else>
|
||||
<text v-if="verify.length === 0" class="placeholder">请确认密码</text>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- key键盘 -->
|
||||
<u-keyboard mode="number" random dotDisabled :overlay="false" :show="keyShow" :showCancel="false"
|
||||
@change="keyValChange" @backspace="keyValBackspace" @confirm="keyShow = false"></u-keyboard>
|
||||
<!-- 按钮 -->
|
||||
<view class="buttons">
|
||||
<button type="default" form-type="submit" @click="createWallet">确认激活</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
security
|
||||
} from '@/apis/interfaces/wallet';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
password: '',
|
||||
verify: '',
|
||||
valKye: '',
|
||||
keyShow: false
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
// 唤起key
|
||||
onShowKet(key) {
|
||||
this.valKye = key
|
||||
this.keyShow = true
|
||||
},
|
||||
// 键盘输入
|
||||
keyValChange(e) {
|
||||
if (this[this.valKye].length >= 6) return
|
||||
this[this.valKye] += e
|
||||
},
|
||||
// 键盘删除
|
||||
keyValBackspace(e) {
|
||||
if (this[this.valKye].length) this[this.valKye] = this[this.valKye].substr(0, this[this.valKye].length -
|
||||
1)
|
||||
},
|
||||
// 激活钱包
|
||||
createWallet() {
|
||||
if (this.password === '' || this.verify === '') {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '请设置密码'
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (this.password !== this.verify) {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '两次输入密码不一致'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
security({
|
||||
code: Number(this.password)
|
||||
}).then(res => {
|
||||
this.$Router.replace({
|
||||
name: 'WalletProperty'
|
||||
})
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: err.message
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.flicker-animation {
|
||||
animation: flicker .8s infinite;
|
||||
}
|
||||
|
||||
@keyframes flicker {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100 {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 副标题
|
||||
.sub-title {
|
||||
color: $text-gray;
|
||||
text-align: center;
|
||||
margin: $margin * 2 $margin;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
|
||||
// 设置密码
|
||||
.password {
|
||||
padding: 0 $padding * 2;
|
||||
|
||||
.prompt {
|
||||
margin-top: $margin * 2;
|
||||
font-size: $title-size-m;
|
||||
color: $main-color;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.group {
|
||||
padding-top: $padding;
|
||||
|
||||
.inputs {
|
||||
padding: 10rpx $padding + 10;
|
||||
margin-top: $margin;
|
||||
border-radius: $radius-m;
|
||||
background-color: $window-color;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
font-size: $title-size-lg;
|
||||
text-align: center;
|
||||
|
||||
text {
|
||||
padding: 0 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.buttons {
|
||||
padding: $padding * 2;
|
||||
|
||||
.text {
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
height: 90rpx;
|
||||
margin-bottom: $margin * 2;
|
||||
font-size: $title-size-lg;
|
||||
color: $main-color;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
button {
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background-color: $main-color;
|
||||
border-radius: $radius-m;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,122 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<!-- 提示信息 -->
|
||||
<view class="prompt">请按照顺序记录并确保正确备份助记词</view>
|
||||
<!-- 助记词 -->
|
||||
<ul class="mnemonic">
|
||||
<li v-for="(item, index) in mnemonic" :key="index">{{item}}</li>
|
||||
</ul>
|
||||
<!-- 按钮 -->
|
||||
<view class="buttons">
|
||||
<view class="text">注:助记词是用户账户的唯一标识,不能分享给他人,掌握该助记词即可控制该账户与钱包</view>
|
||||
<!-- <button type="default" @click="goto">验证助记词</button> -->
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
seed
|
||||
} from "@/apis/interfaces/wallet"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
mnemonic: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
seed({
|
||||
code: this.$Route.query.password
|
||||
}).then(res => {
|
||||
this.mnemonic = res.seed.split(' ')
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: err.message
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
goto() {
|
||||
this.$Router.replace({
|
||||
name: 'WalletValidation',
|
||||
params: {
|
||||
seed: this.mnemonic,
|
||||
sign: this.sign
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 提示信息
|
||||
.prompt {
|
||||
color: $text-gray;
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
|
||||
// 跳过
|
||||
.skip {
|
||||
padding: $padding * 2;
|
||||
text-align: center;
|
||||
color: $text-gray;
|
||||
|
||||
navigator {
|
||||
color: $main-color;
|
||||
margin-left: $margin/2;
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
// 助记词
|
||||
.mnemonic {
|
||||
margin: $margin $margin * 2;
|
||||
border-radius: $radius-m;
|
||||
box-shadow: 0 0 4rpx 4rpx rgba($color: $text-color, $alpha: .02);
|
||||
background-color: white;
|
||||
padding: $padding;
|
||||
list-style: none;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
li {
|
||||
text-align: center;
|
||||
height: 58rpx;
|
||||
padding: 0 $padding/2;
|
||||
line-height: 58rpx;
|
||||
margin: $margin / 2;
|
||||
color: $text-color;
|
||||
background: rgba($color: $border-color, $alpha: .4);
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.buttons {
|
||||
padding: $padding $padding * 2;
|
||||
|
||||
.text {
|
||||
text-align: center;
|
||||
margin-bottom: $margin * 2;
|
||||
font-size: $title-size-m;
|
||||
color: $text-price;
|
||||
}
|
||||
|
||||
button {
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background-color: $main-color;
|
||||
border-radius: $radius-lg;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,130 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<!-- 私钥 -->
|
||||
<view class="keys">
|
||||
<view class="title">您的ZH托管钱包</view>
|
||||
<view class="key">{{key || '-'}}</view>
|
||||
<view class="copykey" @click="copykey">复制我的私钥</view>
|
||||
</view>
|
||||
<!-- 疑问 -->
|
||||
<view class="doubt" v-if="rules.length > 0">
|
||||
<view class="doubt-item" v-for="(item, index) in rules" :key="index">
|
||||
<view class="title">{{item.title || '-'}}</view>
|
||||
<view class="content">{{item.description || '-'}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 免责说明 -->
|
||||
<!-- <view class="liability">
|
||||
<navigator url="/pages/wallet/cmsWithDraw">免责条款</navigator>
|
||||
</view> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
privatekey,
|
||||
keyrules
|
||||
} from '@/apis/interfaces/wallet'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
key: "",
|
||||
rules: [{
|
||||
title: "什么是托管钱包?",
|
||||
description: "托管钱包顾名思义就是用户把私钥和数字资产委托给其他机构管理,也就是就是通过中心化的方式安全管理并保存资产,本质上是与区块链所追求的去中心化相背离的。"
|
||||
},
|
||||
{
|
||||
title: "什么是钱包私钥?",
|
||||
description: "作为管理和使用加密货币最关键的东西,私钥对所有数字货币用户而言具有所有权,拥有私钥才能支配相应的加密资产。"
|
||||
}
|
||||
]
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
privatekey(this.$Route.query.password).then(res => {
|
||||
this.key = res.private_key
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: 'none'
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
copykey() {
|
||||
uni.setClipboardData({
|
||||
data: this.key
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.keys {
|
||||
margin: $margin * 2;
|
||||
background: white;
|
||||
padding: $padding * 2;
|
||||
box-shadow: 0 0 4rpx 4rpx rgba($color: #000000, $alpha: .02);
|
||||
border-radius: $radius;
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
font-size: $title-size + 4;
|
||||
color: $text-color;
|
||||
}
|
||||
|
||||
.key {
|
||||
padding: $padding * 2 0;
|
||||
text-align: center;
|
||||
color: $main-color;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.copykey {
|
||||
background-color: $main-color;
|
||||
color: white;
|
||||
height: 95rpx;
|
||||
line-height: 95rpx;
|
||||
text-align: center;
|
||||
font-size: $title-size;
|
||||
border-radius: $radius-m;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.doubt {
|
||||
margin: $margin $margin * 2;
|
||||
|
||||
.doubt-item {
|
||||
padding: $padding 0;
|
||||
|
||||
.title {
|
||||
font-weight: bold;
|
||||
color: $text-color;
|
||||
line-height: 50rpx;
|
||||
font-size: $title-size + 2;
|
||||
}
|
||||
|
||||
.content {
|
||||
color: $text-gray;
|
||||
font-size: $title-size-m;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.liability {
|
||||
text-align: center;
|
||||
color: $text-gray;
|
||||
@extend .ios-bottom;
|
||||
|
||||
navigator {
|
||||
font-size: $title-size-sm;
|
||||
display: inline-block;
|
||||
line-height: 90rpx;
|
||||
padding: 0 ($padding * 2);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,386 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="propery">
|
||||
<view class="propery-content">
|
||||
<view class="currency">钱包余额</view>
|
||||
<view class="balance">{{ balance.balance || '0' }}</view>
|
||||
<view class="frozen">{{ balance.frozen || '0' }} 冻结中</view>
|
||||
<view class="balance-flex">
|
||||
<view class="balance-flex-item" @click="showAddress">区块链地址</view>
|
||||
<view class="balance-flex-item" @click="showPrivatekey('privatekey')">我的私钥</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 账户记录 -->
|
||||
<view class="record">
|
||||
<view class="record-tabs">
|
||||
<view class="tabs-item" :class="logsType === 0 ? 'show': ''" @click="onLogsType(0)">全部</view>
|
||||
<view class="tabs-item" :class="logsType === 2 ? 'show': ''" @click="onLogsType(2)">收入</view>
|
||||
<view class="tabs-item" :class="logsType === 1 ? 'show': ''" @click="onLogsType(1)">支出</view>
|
||||
</view>
|
||||
<record :list="logs" />
|
||||
<!-- ios安全距离 -->
|
||||
<view class="ios-bottom"></view>
|
||||
</view>
|
||||
<!-- 钱包密码 -->
|
||||
<u-popup :show="passwordShow" @close="resetPassword" mode="center" round="10" borderRadius="10">
|
||||
<view class="validationPassword">
|
||||
<view class="from">
|
||||
<view class="title">验证钱包密码</view>
|
||||
<view class="inputs">
|
||||
<text v-for="item in password.length" :key="item">•</text>
|
||||
<text class="flicker-animation">|</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</u-popup>
|
||||
<!-- key -->
|
||||
<u-keyboard mode="number" random dotDisabled :overlay="false" :show="passwordShow" confirmText="验证"
|
||||
@change="keyValChange" @backspace="keyValBackspace" @confirm="payPassword('confirm', passwordPages)"
|
||||
@cancel="passwordShow = false"></u-keyboard>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import record from '@/components/property/record'
|
||||
import {
|
||||
sum,
|
||||
logs,
|
||||
securityCheck
|
||||
} from '@/apis/interfaces/wallet'
|
||||
export default {
|
||||
components: {
|
||||
record
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
balance: {},
|
||||
logs: [],
|
||||
logsType: 0,
|
||||
password: '',
|
||||
passwordShow: false,
|
||||
passwordPages: ''
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
Promise.all([
|
||||
sum(),
|
||||
logs()
|
||||
]).then(res => {
|
||||
this.balance = res[0]
|
||||
this.logs = res[1]
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: err.message
|
||||
})
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
// 键盘输入
|
||||
keyValChange(e) {
|
||||
if (this.password.length >= 6) return
|
||||
this.password += e
|
||||
},
|
||||
// 键盘删除
|
||||
keyValBackspace(e) {
|
||||
if (this.password.length) this.password = this.password.substr(0, this.password.length - 1)
|
||||
},
|
||||
// 弹出私钥
|
||||
showPrivatekey(pages) {
|
||||
this.passwordShow = true
|
||||
this.passwordPages = pages
|
||||
},
|
||||
// 重置密码
|
||||
resetPassword() {
|
||||
this.passwordShow = false
|
||||
this.password = ''
|
||||
},
|
||||
// 验证私钥
|
||||
payPassword(type) {
|
||||
if (type === 'confirm') {
|
||||
if (this.password === '') {
|
||||
uni.showToast({
|
||||
title: '请输入安全密码',
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
securityCheck(this.password).then(res => {
|
||||
switch (this.passwordPages) {
|
||||
case 'privatekey':
|
||||
this.$Router.push({
|
||||
name: 'WalletPrivatekey',
|
||||
params: {
|
||||
password: this.password
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 'ResetPassword':
|
||||
this.$Router.push({
|
||||
name: 'ResetPassword',
|
||||
params: {
|
||||
password: this.password
|
||||
}
|
||||
})
|
||||
break;
|
||||
case 'WalletMnemonic':
|
||||
this.$Router.push({
|
||||
name: 'WalletMnemonic',
|
||||
params: {
|
||||
password: this.password
|
||||
}
|
||||
})
|
||||
break;
|
||||
}
|
||||
this.resetPassword()
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
title: err.message,
|
||||
icon: 'none',
|
||||
})
|
||||
})
|
||||
return
|
||||
}
|
||||
this.$refs.showPassword.close()
|
||||
},
|
||||
// 交易记录
|
||||
onLogsType(index) {
|
||||
if (this.logsType === index) return
|
||||
this.logsType = index
|
||||
this.logs = []
|
||||
logs({
|
||||
flag: this.logsType
|
||||
}).then(res => {
|
||||
this.logs = res
|
||||
})
|
||||
},
|
||||
// 区块地址
|
||||
showAddress() {
|
||||
uni.showModal({
|
||||
title: '我的区块链地址',
|
||||
content: this.balance.address,
|
||||
cancelText: '复制',
|
||||
cancelColor: '#009B69',
|
||||
success: (res) => {
|
||||
if (res.cancel) {
|
||||
uni.setClipboardData({
|
||||
data: this.balance.address
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
onNavigationBarButtonTap(e) {
|
||||
if (e.index === 0) {
|
||||
uni.showActionSheet({
|
||||
itemList: ['导出助记词', '修改密码'],
|
||||
success: (res) => {
|
||||
switch (res.tapIndex) {
|
||||
case 0:
|
||||
this.showPrivatekey('WalletMnemonic')
|
||||
break;
|
||||
case 1:
|
||||
this.showPrivatekey('ResetPassword')
|
||||
break;
|
||||
}
|
||||
uni.hideLoading()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.flicker-animation {
|
||||
animation: flicker .8s infinite;
|
||||
}
|
||||
|
||||
@keyframes flicker {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100 {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 验证密码弹出层
|
||||
.validationPassword {
|
||||
width: 80vw;
|
||||
|
||||
.from {
|
||||
padding: $padding*2;
|
||||
text-align: center;
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
padding-bottom: $padding;
|
||||
}
|
||||
|
||||
// input{
|
||||
// background: $window-color;
|
||||
// height: 90rpx;
|
||||
// left: 90rpx;
|
||||
// font-size: $title-size-lg;
|
||||
// border-radius: 45rpx;
|
||||
// }
|
||||
.inputs {
|
||||
background-color: $window-color;
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
border-radius: 45rpx;
|
||||
font-size: $title-size-lg;
|
||||
text-align: center;
|
||||
|
||||
text {
|
||||
padding: 0 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
text-align: center;
|
||||
padding: 0 $padding*2;
|
||||
|
||||
.button {
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
margin-bottom: $margin;
|
||||
|
||||
&.cancel {
|
||||
color: $text-gray;
|
||||
}
|
||||
|
||||
&.confirm {
|
||||
color: white;
|
||||
background: $main-color;
|
||||
border-radius: 45rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
}
|
||||
|
||||
// 账户
|
||||
.propery {
|
||||
position: relative;
|
||||
padding-top: var(--status-bar-height);
|
||||
background-image: linear-gradient(to right, $main-color, #22aa98);
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
content: " ";
|
||||
// background-image: url(@/static/background/wallet-back.png);
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.propery-content {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
padding: $padding * 5 $padding * 2;
|
||||
text-align: center;
|
||||
|
||||
.currency {
|
||||
font-size: $title-size-m;
|
||||
color: rgba($color: white, $alpha: .8);
|
||||
}
|
||||
|
||||
.balance {
|
||||
font-size: $title-size * 2;
|
||||
padding: ($padding / 2) 0;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.frozen {
|
||||
background: rgba($color: #000000, $alpha: .1);
|
||||
color: rgba($color: white, $alpha: .7);
|
||||
display: inline-block;
|
||||
padding: 0 $padding;
|
||||
font-size: $title-size-m;
|
||||
height: 50rpx;
|
||||
line-height: 50rpx;
|
||||
border-radius: $radius-m;
|
||||
border: solid 1rpx rgba($color: white, $alpha: .4)
|
||||
}
|
||||
|
||||
.balance-flex {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: $margin * 3;
|
||||
|
||||
.balance-flex-item {
|
||||
background-color: white;
|
||||
width: 200rpx;
|
||||
height: 75rpx;
|
||||
line-height: 75rpx;
|
||||
color: $main-color;
|
||||
margin: 0 $margin;
|
||||
border-radius: $radius-m;
|
||||
font-size: $title-size-lg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 记录
|
||||
.record {
|
||||
background-color: white;
|
||||
border-radius: $radius $radius 0 0;
|
||||
padding: $padding ($padding * 2);
|
||||
margin-top: -$margin;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
|
||||
.record-tabs {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
color: $text-gray;
|
||||
line-height: 70rpx;
|
||||
margin-bottom: $margin;
|
||||
|
||||
.tabs-item {
|
||||
position: relative;
|
||||
padding: 0 $padding;
|
||||
|
||||
&.show {
|
||||
color: $main-color;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: $padding;
|
||||
right: $padding;
|
||||
height: 4rpx;
|
||||
content: " ";
|
||||
background-color: $main-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,203 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<!-- 设置钱包密码 -->
|
||||
<view class="password">
|
||||
<view class="prompt">请设置6位数字密码,建议不要使用连续的数字</view>
|
||||
<view class="group">
|
||||
<view class="inputs" @click="onShowKet('password')">
|
||||
<block v-if="password.length > 0">
|
||||
<text v-for="item in password.length" :key="item">•</text>
|
||||
</block>
|
||||
<block v-if="keyShow && valKye === 'password'">
|
||||
<text class="flicker-animation">|</text>
|
||||
</block>
|
||||
<block v-else>
|
||||
<text v-if="password.length === 0" class="placeholder">请设置密码</text>
|
||||
</block>
|
||||
</view>
|
||||
<view class="inputs" :class="{'hide': verify === ''}" @click="onShowKet('verify')">
|
||||
<block v-if="verify.length > 0">
|
||||
<text v-for="item in verify.length" :key="item">•</text>
|
||||
</block>
|
||||
<block v-if="keyShow && valKye === 'verify'">
|
||||
<text class="flicker-animation">|</text>
|
||||
</block>
|
||||
<block v-else>
|
||||
<text v-if="verify.length === 0" class="placeholder">请确认密码</text>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- key键盘 -->
|
||||
<u-keyboard mode="number" random dotDisabled :overlay="false" :show="keyShow" :showCancel="false"
|
||||
@change="keyValChange" @backspace="keyValBackspace" @confirm="keyShow = false"></u-keyboard>
|
||||
<!-- 按钮 -->
|
||||
<view class="buttons">
|
||||
<button type="default" form-type="submit" @click="createWallet">确认修改</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
securityReset
|
||||
} from '@/apis/interfaces/wallet'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
password: '',
|
||||
verify: '',
|
||||
oldPassword: '',
|
||||
valKye: '',
|
||||
keyShow: false
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.oldPassword = this.$Route.query.password
|
||||
},
|
||||
methods: {
|
||||
// 唤起key
|
||||
onShowKet(key) {
|
||||
this.valKye = key
|
||||
this.keyShow = true
|
||||
},
|
||||
// 键盘输入
|
||||
keyValChange(e) {
|
||||
if (this[this.valKye].length >= 6) return
|
||||
this[this.valKye] += e
|
||||
},
|
||||
// 键盘删除
|
||||
keyValBackspace(e) {
|
||||
if (this[this.valKye].length) this[this.valKye] = this[this.valKye].substr(0, this[this.valKye].length -
|
||||
1)
|
||||
},
|
||||
// 修改密码
|
||||
createWallet() {
|
||||
if (this.password === '' || this.verify === '') {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '请设置密码'
|
||||
})
|
||||
return
|
||||
}
|
||||
if (this.password !== this.verify) {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: '两次输入密码不一致'
|
||||
})
|
||||
return
|
||||
}
|
||||
securityReset({
|
||||
new_code: this.password,
|
||||
code: this.oldPassword
|
||||
}).then(res => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '密码已重置',
|
||||
showCancel: false,
|
||||
success: res => {
|
||||
uni.navigateBack()
|
||||
}
|
||||
})
|
||||
}).catch(err => {
|
||||
uni.showToast({
|
||||
icon: 'none',
|
||||
title: err.message
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style>
|
||||
.flicker-animation {
|
||||
animation: flicker .8s infinite;
|
||||
}
|
||||
|
||||
@keyframes flicker {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100 {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 副标题
|
||||
.sub-title {
|
||||
color: $text-gray;
|
||||
text-align: center;
|
||||
margin: $margin * 2 $margin;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
|
||||
// 设置密码
|
||||
.password {
|
||||
padding: 0 $padding * 2;
|
||||
|
||||
.prompt {
|
||||
margin-top: $margin * 2;
|
||||
font-size: $title-size-m;
|
||||
color: $main-color;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.group {
|
||||
padding-top: $padding;
|
||||
|
||||
.inputs {
|
||||
padding: 10rpx $padding + 10;
|
||||
margin-top: $margin;
|
||||
border-radius: $radius-m;
|
||||
background-color: $window-color;
|
||||
height: 70rpx;
|
||||
line-height: 70rpx;
|
||||
font-size: $title-size-lg;
|
||||
text-align: center;
|
||||
|
||||
text {
|
||||
padding: 0 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
color: $text-gray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.buttons {
|
||||
padding: $padding * 2;
|
||||
|
||||
.text {
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
height: 90rpx;
|
||||
margin-bottom: $margin * 2;
|
||||
font-size: $title-size-lg;
|
||||
color: $main-color;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
button {
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background-color: $main-color;
|
||||
border-radius: $radius-m;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,178 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<!-- 提示信息 -->
|
||||
<view class="prompt">
|
||||
验证您的钱包助记词
|
||||
</view>
|
||||
<!-- 助记词 -->
|
||||
<view class="mnemonic">
|
||||
<view class="item" v-for="(item, index) in validation" :key="index" :class="item === null ? 'hide': ''"
|
||||
@click="onKeys('removeKey', index)">{{ item }}</view>
|
||||
</view>
|
||||
<!-- 选择助记词 -->
|
||||
<block v-if="mnemonic.length > 0">
|
||||
<view class="mnemonic-title">
|
||||
按顺序填写助记词
|
||||
</view>
|
||||
<view class="mnemonic-select">
|
||||
<view class="item" v-for="(item, index) in mnemonic" :key="index" @click="onKeys('addKey', index)">
|
||||
{{ item }}</view>
|
||||
</view>
|
||||
</block>
|
||||
<!-- 按钮 -->
|
||||
<view class="buttons">
|
||||
<button type="default" @click="verifyMnemonic">验证</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
hash
|
||||
} from "@/apis/interfaces/wallet"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
validation: new Array(12).fill(null), // 验证key
|
||||
mnemonic: [], // 助记词key
|
||||
sign: '', // 助记词校验签名
|
||||
seedString: '', // 助记词原词
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
let seed = this.$Route.query.seed.split(',')
|
||||
seed.sort(() => {
|
||||
return Math.random() - .5
|
||||
});
|
||||
console.log(seed)
|
||||
// this.mnemonic = seed
|
||||
// this.sign = this.$Route.query.sign
|
||||
// this.seedString = this.$Route.query.seed
|
||||
},
|
||||
methods: {
|
||||
// 填写助记词
|
||||
onKeys(type, index) {
|
||||
if (type === 'addKey') {
|
||||
this.$set(this.validation, this.validation.findIndex(val => val === null), this.mnemonic[index])
|
||||
this.$delete(this.mnemonic, index)
|
||||
return
|
||||
}
|
||||
if (type === 'removeKey' && this.validation[index] !== null) {
|
||||
this.mnemonic.push(this.validation[index])
|
||||
this.$delete(this.validation, index)
|
||||
this.validation.push(null)
|
||||
}
|
||||
},
|
||||
// 验证助记词
|
||||
verifyMnemonic() {
|
||||
if (this.validation.findIndex(val => val === null) > -1) {
|
||||
uni.showToast({
|
||||
title: '请完整填写助记词',
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
let seed = this.validation.toString().replace(/,/g, ',')
|
||||
if (this.seedString !== seed) {
|
||||
uni.showToast({
|
||||
title: '验证失败,请确认您的助记词',
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
uni.redirectTo({
|
||||
url: './create'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// 提示信息
|
||||
.prompt {
|
||||
color: $text-gray;
|
||||
text-align: center;
|
||||
line-height: 90rpx;
|
||||
font-size: $title-size-m;
|
||||
}
|
||||
|
||||
// 选择助记词
|
||||
.mnemonic-title {
|
||||
padding-top: $padding * 2;
|
||||
margin: 0 $margin * 2;
|
||||
font-size: $title-size-m;
|
||||
color: $main-color;
|
||||
}
|
||||
|
||||
.mnemonic-select {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: $padding $padding + $padding / 2;
|
||||
|
||||
.item {
|
||||
background-color: white;
|
||||
line-height: 68rpx;
|
||||
height: 68rpx;
|
||||
width: 68rpx;
|
||||
text-align: center;
|
||||
margin: $margin / 2;
|
||||
border-radius: $radius-m;
|
||||
box-shadow: 0 0 4rpx 4rpx rgba($color: $text-color, $alpha: .02);
|
||||
}
|
||||
}
|
||||
|
||||
// 助记词
|
||||
.mnemonic {
|
||||
margin: $margin ($margin * 2);
|
||||
border-radius: $radius-m;
|
||||
box-shadow: 0 0 4rpx 4rpx rgba($color: $text-color, $alpha: .02);
|
||||
background-color: white;
|
||||
padding: $padding;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
|
||||
.item {
|
||||
background: rgba($color: $border-color, $alpha: .4);
|
||||
min-width: 58rpx;
|
||||
height: 58rpx;
|
||||
line-height: 58rpx;
|
||||
text-align: center;
|
||||
color: $text-color;
|
||||
margin: $margin / 2;
|
||||
|
||||
&.hide {
|
||||
border: dashed 1px $border-color;
|
||||
box-sizing: border-box;
|
||||
background-color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 按钮
|
||||
.buttons {
|
||||
padding: $padding $padding * 2;
|
||||
|
||||
.text {
|
||||
text-align: center;
|
||||
margin-bottom: $margin * 2;
|
||||
font-size: $title-size-lg;
|
||||
color: $text-price;
|
||||
}
|
||||
|
||||
button {
|
||||
height: 90rpx;
|
||||
line-height: 90rpx;
|
||||
background-color: $main-color;
|
||||
border-radius: $radius-lg;
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: $title-size;
|
||||
|
||||
&[disabled] {
|
||||
background: rgba($color: $main-color, $alpha: .8);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because one or more lines are too long
4474
unpackage/dist/dev/app-plus/app-service.js
vendored
4474
unpackage/dist/dev/app-plus/app-service.js
vendored
File diff suppressed because one or more lines are too long
4860
unpackage/dist/dev/app-plus/app-view.js
vendored
4860
unpackage/dist/dev/app-plus/app-view.js
vendored
File diff suppressed because one or more lines are too long
2
unpackage/dist/dev/app-plus/manifest.json
vendored
2
unpackage/dist/dev/app-plus/manifest.json
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user