9 changed files with 633 additions and 324 deletions
-
5pages/home/home.js
-
2pages/home/home.wxml
-
BINpages/images/mm.png
-
BINpages/images/zh.png
-
377pages/login/login.js
-
90pages/login/login.wxml
-
471pages/login/login.wxss
-
2project.private.config.json
-
2utils/api.js
|
After Width: 200 | Height: 200 | Size: 4.0 KiB |
|
After Width: 200 | Height: 200 | Size: 3.3 KiB |
@ -1,199 +1,288 @@ |
|||||
import http from '../../utils/api' |
import http from '../../utils/api' |
||||
|
|
||||
Page({ |
Page({ |
||||
data: { |
data: { |
||||
isAgree: true, // 是否同意协议
|
|
||||
showAgreementModal: false, // 是否显示协议弹窗
|
|
||||
modalTitle: '', // 弹窗标题
|
|
||||
modalContent: '', // 弹窗内容
|
|
||||
isLoading: false, // 是否显示加载中,
|
|
||||
phoneData: {}, |
|
||||
|
// 账号密码
|
||||
|
account: '', |
||||
|
password: '', |
||||
|
accountFocus: false, |
||||
|
passwordFocus: false, |
||||
|
passwordVisible: false, |
||||
|
|
||||
|
// 协议相关
|
||||
|
isAgree: true, |
||||
|
showAgreementModal: false, |
||||
|
modalTitle: '', |
||||
|
modalContent: '', |
||||
|
|
||||
|
|
||||
|
// 加载状态
|
||||
|
isLoading: false, |
||||
|
|
||||
|
// 登录状态
|
||||
|
canLogin: false |
||||
}, |
}, |
||||
|
|
||||
onLoad() { |
onLoad() { |
||||
this.login() |
|
||||
|
// 检查登录状态
|
||||
|
// this.checkLoginStatus()
|
||||
}, |
}, |
||||
|
|
||||
|
// 检查登录状态
|
||||
|
// checkLoginStatus() {
|
||||
|
// const token = wx.getStorageSync('token')
|
||||
|
// if (token) {
|
||||
|
// // 已登录,跳转到首页
|
||||
|
// wx.switchTab({
|
||||
|
// url: '/pages/home/home'
|
||||
|
// })
|
||||
|
// }
|
||||
|
// },
|
||||
|
|
||||
// 登录获取
|
|
||||
login() { |
|
||||
// 小程序接口
|
|
||||
var that = this |
|
||||
wx.login({ |
|
||||
success(res) { |
|
||||
//登录接口
|
|
||||
http.login({ |
|
||||
data: { |
|
||||
code: res.code, |
|
||||
clientType: 'vet-app' |
|
||||
}, |
|
||||
success: function (res) { |
|
||||
console.log(111111,res); |
|
||||
if (res.data) { |
|
||||
that.setData({ |
|
||||
phoneData: res.data |
|
||||
}) |
|
||||
wx.showToast({ |
|
||||
title: res.data.message, |
|
||||
icon: 'none', |
|
||||
duration: 2000 |
|
||||
}); |
|
||||
} |
|
||||
|
// 账号输入
|
||||
|
onAccountInput(e) { |
||||
|
this.setData({ |
||||
|
account: e.detail.value |
||||
|
}, () => { |
||||
|
this.checkCanLogin() |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
if (res.data.token) { |
|
||||
wx.setStorageSync('token', res.data.token) |
|
||||
wx.switchTab({ |
|
||||
url: '/pages/home/home' |
|
||||
}); |
|
||||
} |
|
||||
}, |
|
||||
|
// 密码输入
|
||||
|
onPasswordInput(e) { |
||||
|
this.setData({ |
||||
|
password: e.detail.value |
||||
|
}, () => { |
||||
|
this.checkCanLogin() |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
}) |
|
||||
}, |
|
||||
fail: (error) => { |
|
||||
console.log('登录失败!' + error); |
|
||||
} |
|
||||
|
// 检查是否可以登录
|
||||
|
checkCanLogin() { |
||||
|
const { account, password, isAgree } = this.data |
||||
|
this.setData({ |
||||
|
canLogin: account.length >= 4 && password.length >= 6 && isAgree |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
// 账号焦点
|
||||
|
onAccountFocus() { |
||||
|
this.setData({ accountFocus: true }) |
||||
|
}, |
||||
|
|
||||
|
onAccountBlur() { |
||||
|
this.setData({ accountFocus: false }) |
||||
|
}, |
||||
|
|
||||
|
// 密码焦点
|
||||
|
onPasswordFocus() { |
||||
|
this.setData({ passwordFocus: true }) |
||||
|
}, |
||||
|
|
||||
|
onPasswordBlur() { |
||||
|
this.setData({ passwordFocus: false }) |
||||
|
}, |
||||
|
|
||||
|
// 聚焦密码输入框
|
||||
|
focusPassword() { |
||||
|
this.setData({ passwordFocus: true }) |
||||
|
}, |
||||
|
|
||||
|
// 切换密码可见性 - 修复版
|
||||
|
togglePasswordVisible(e) { |
||||
|
// 阻止事件冒泡
|
||||
|
if (e && e.stopPropagation) { |
||||
|
e.stopPropagation() |
||||
|
} |
||||
|
|
||||
|
this.setData({ |
||||
|
passwordVisible: !this.data.passwordVisible |
||||
}) |
}) |
||||
|
|
||||
}, |
}, |
||||
|
|
||||
|
// 切换协议同意状态
|
||||
|
toggleAgreement() { |
||||
|
this.setData({ |
||||
|
isAgree: !this.data.isAgree |
||||
|
}, () => { |
||||
|
this.checkCanLogin() |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
// 处理登录
|
||||
|
handleLogin() { |
||||
|
const { account, password, isAgree } = this.data |
||||
|
|
||||
// 获取用户手机号
|
|
||||
getPhoneNumber(e) { |
|
||||
if (!this.data.isAgree) { |
|
||||
|
if (!isAgree) { |
||||
wx.showToast({ |
wx.showToast({ |
||||
title: '请先同意协议', |
|
||||
|
title: '请先同意用户协议', |
||||
icon: 'none', |
icon: 'none', |
||||
duration: 2000 |
duration: 2000 |
||||
}); |
|
||||
return; |
|
||||
|
}) |
||||
|
return |
||||
} |
} |
||||
|
|
||||
// 显示加载中
|
|
||||
this.setData({ |
|
||||
isLoading: true |
|
||||
}); |
|
||||
|
|
||||
// 检查是否获取到手机号
|
|
||||
if (e.detail.errMsg === "getPhoneNumber:ok") { |
|
||||
// 这里应该将加密数据发送到后端进行解密
|
|
||||
this.data.phoneData.encryptedData = e.detail.encryptedData |
|
||||
this.data.phoneData.iv = e.detail.iv |
|
||||
http.getPhoneNumber({ |
|
||||
data: this.data.phoneData, |
|
||||
success: res => { |
|
||||
if (res.code == 200) { |
|
||||
wx.setStorageSync('token', res.token) |
|
||||
|
|
||||
setTimeout(() => { |
|
||||
wx.switchTab({ |
|
||||
url: '/pages/home/home' |
|
||||
}); |
|
||||
}, 1500); |
|
||||
|
|
||||
this.setData({ |
|
||||
isLoading: false |
|
||||
}) |
|
||||
wx.showToast({ |
|
||||
title: '登录成功', |
|
||||
icon: 'success', |
|
||||
duration: 2000 |
|
||||
}); |
|
||||
}else{ |
|
||||
wx.showToast({ |
|
||||
title: res.msg, |
|
||||
icon: 'none', |
|
||||
duration: 2000 |
|
||||
}); |
|
||||
this.setData({ |
|
||||
isLoading:false |
|
||||
}) |
|
||||
} |
|
||||
} |
|
||||
|
if (!account || !password) { |
||||
|
wx.showToast({ |
||||
|
title: '请输入账号和密码', |
||||
|
icon: 'none', |
||||
|
duration: 2000 |
||||
}) |
}) |
||||
} else { |
|
||||
// 用户拒绝授权
|
|
||||
this.setData({ |
|
||||
isLoading: false |
|
||||
}); |
|
||||
|
return |
||||
|
} |
||||
|
|
||||
|
if (account.length < 4) { |
||||
wx.showToast({ |
wx.showToast({ |
||||
title: '需要手机号授权才能登录', |
|
||||
|
title: '账号长度不能小于4位', |
||||
icon: 'none', |
icon: 'none', |
||||
duration: 2000 |
duration: 2000 |
||||
}); |
|
||||
|
}) |
||||
|
return |
||||
} |
} |
||||
}, |
|
||||
|
|
||||
// 切换协议同意状态
|
|
||||
toggleAgreement() { |
|
||||
this.setData({ |
|
||||
isAgree: !this.data.isAgree |
|
||||
}); |
|
||||
|
if (password.length < 6) { |
||||
|
wx.showToast({ |
||||
|
title: '密码长度不能小于6位', |
||||
|
icon: 'none', |
||||
|
duration: 2000 |
||||
|
}) |
||||
|
return |
||||
|
} |
||||
|
|
||||
|
// 显示加载中
|
||||
|
this.setData({ isLoading: true }) |
||||
|
|
||||
|
// 调用登录接口
|
||||
|
http.login({ |
||||
|
data: { |
||||
|
phone: account, |
||||
|
password: password, |
||||
|
clientType:'wechat_vet' |
||||
|
}, |
||||
|
success: (res) => { |
||||
|
this.setData({ isLoading: false }) |
||||
|
|
||||
|
if (res.code === 200 && res.token) { |
||||
|
// 保存token
|
||||
|
wx.setStorageSync('token', res.token) |
||||
|
|
||||
|
wx.showToast({ |
||||
|
title: '登录成功', |
||||
|
icon: 'success', |
||||
|
duration: 1500, |
||||
|
success: () => { |
||||
|
setTimeout(() => { |
||||
|
wx.switchTab({ |
||||
|
url: '/pages/home/home' |
||||
|
}) |
||||
|
}, 1500) |
||||
|
} |
||||
|
}) |
||||
|
} else { |
||||
|
wx.showToast({ |
||||
|
title: res.msg || '登录失败,请检查账号密码', |
||||
|
icon: 'none', |
||||
|
duration: 2000 |
||||
|
}) |
||||
|
} |
||||
|
}, |
||||
|
fail: (error) => { |
||||
|
this.setData({ isLoading: false }) |
||||
|
wx.showToast({ |
||||
|
title: '网络错误,请稍后重试', |
||||
|
icon: 'none', |
||||
|
duration: 2000 |
||||
|
}) |
||||
|
console.error('登录失败:', error) |
||||
|
} |
||||
|
}) |
||||
}, |
}, |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
// 显示用户协议
|
// 显示用户协议
|
||||
showAgreement() { |
showAgreement() { |
||||
const content = `欢迎您使用与牧同行服务!
|
|
||||
|
const content = `兽医助手用户协议
|
||||
|
欢迎使用兽医助手! |
||||
|
|
||||
一、服务说明 |
一、服务说明 |
||||
与牧同行为您提供智慧放牧管理、牲畜追踪、草场监测等服务。通过我们的平台,您可以更高效地管理牧场资源,提升放牧效率。 |
|
||||
二、账号注册 |
|
||||
1. 您需要使用手机号完成注册 |
|
||||
2. 您应保证提供的信息真实、准确、完整 |
|
||||
3. 您对账号安全负全部责任 |
|
||||
三、使用规范 |
|
||||
1. 不得利用本服务从事任何违法违规活动 |
|
||||
2. 不得干扰或破坏本服务的正常运行 |
|
||||
3. 遵守相关法律法规和平台规则 |
|
||||
四、服务变更与终止 |
|
||||
我们可能根据需要变更服务内容,如您不同意变更,可停止使用本服务。 |
|
||||
五、免责声明 |
|
||||
对于不可抗力、网络问题等导致的服务中断,我们不承担相应责任。 |
|
||||
六、法律适用 |
|
||||
本协议受中华人民共和国法律管辖。 |
|
||||
感谢您选择与牧同行!`;
|
|
||||
|
兽医助手是为兽医专业人士提供的工作辅助平台,包括病例管理、诊疗记录、药品查询等功能。 |
||||
|
|
||||
|
二、账号使用 |
||||
|
1. 您需要使用真实信息注册账号 |
||||
|
2. 账号仅限本人使用,不得转借他人 |
||||
|
3. 您对账号下的所有行为负责 |
||||
|
|
||||
|
三、信息规范 |
||||
|
1. 请确保录入的诊疗信息真实准确 |
||||
|
2. 尊重动物主人隐私,不得泄露客户信息 |
||||
|
3. 遵守医疗行业规范和职业道德 |
||||
|
|
||||
|
四、责任声明 |
||||
|
1. 本平台提供的诊疗建议仅供参考 |
||||
|
2. 最终诊疗方案由执业兽医自行判断 |
||||
|
3. 平台不承担任何医疗责任 |
||||
|
|
||||
|
五、服务变更 |
||||
|
我们保留修改服务条款的权利,修改后会通过公告通知。 |
||||
|
|
||||
|
感谢您使用兽医助手!`
|
||||
|
|
||||
this.setData({ |
this.setData({ |
||||
showAgreementModal: true, |
showAgreementModal: true, |
||||
modalTitle: '用户协议', |
modalTitle: '用户协议', |
||||
modalContent: content |
modalContent: content |
||||
}); |
|
||||
|
}) |
||||
}, |
}, |
||||
|
|
||||
// 显示隐私政策
|
// 显示隐私政策
|
||||
showPrivacy() { |
showPrivacy() { |
||||
const content = `与牧同行隐私政策
|
|
||||
我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则保护您的个人信息:权责一致原则、目的明确原则、选择同意原则、最少够用原则、确保安全原则、主体参与原则、公开透明原则等。 |
|
||||
一、我们如何收集和使用您的个人信息 |
|
||||
我们仅会出于本政策所述的以下目的,收集和使用您的个人信息: |
|
||||
1. 账号注册:手机号 |
|
||||
2. 服务提供:位置信息、设备信息 |
|
||||
3. 安全保障:登录日志、操作记录 |
|
||||
二、我们如何共享、转让、公开披露您的个人信息 |
|
||||
1. 我们不会与任何公司、组织和个人共享您的个人信息 |
|
||||
2. 我们不会将您的个人信息转让给任何公司、组织和个人 |
|
||||
3. 我们仅会在法律要求的情况下公开披露您的个人信息 |
|
||||
三、我们如何保护您的个人信息 |
|
||||
1. 我们已使用符合业界标准的安全防护措施保护您提供的个人信息 |
|
||||
2. 我们会采取合理可行的措施,确保未收集无关的个人信息 |
|
||||
四、您的权利 |
|
||||
您有权访问、更正、删除您的个人信息,以及改变您授权同意的范围或撤回授权。 |
|
||||
五、我们如何处理儿童的个人信息 |
|
||||
我们的服务主要面向成人。如果没有父母或监护人的同意,儿童不应创建自己的个人信息主体账户。 |
|
||||
六、本政策如何更新 |
|
||||
我们可能适时修订本政策内容,并通过公告等方式通知您。 |
|
||||
如有任何疑问,请通过客服渠道联系我们。`;
|
|
||||
|
const content = `兽医助手隐私政策
|
||||
|
我们重视您的隐私保护 |
||||
|
|
||||
|
一、信息收集 |
||||
|
我们收集以下必要信息: |
||||
|
1. 账号信息:手机号、姓名、执业证书编号 |
||||
|
2. 使用信息:登录日志、操作记录 |
||||
|
3. 设备信息:设备型号、系统版本 |
||||
|
|
||||
|
二、信息使用 |
||||
|
1. 用于提供兽医诊疗辅助服务 |
||||
|
2. 优化和改进服务质量 |
||||
|
3. 保障账号安全 |
||||
|
|
||||
|
三、信息保护 |
||||
|
1. 采用加密技术保护数据 |
||||
|
2. 严格控制访问权限 |
||||
|
3. 定期进行安全审计 |
||||
|
|
||||
|
四、信息共享 |
||||
|
1. 未经您同意,不向第三方共享信息 |
||||
|
2. 法律要求的情况除外 |
||||
|
3. 可能用于统计分析(匿名化处理) |
||||
|
|
||||
|
五、您的权利 |
||||
|
1. 访问、更正您的个人信息 |
||||
|
2. 注销账号 |
||||
|
3. 撤回授权 |
||||
|
|
||||
|
六、联系我们 |
||||
|
如有疑问,请通过客服渠道联系我们`
|
||||
|
|
||||
this.setData({ |
this.setData({ |
||||
showAgreementModal: true, |
showAgreementModal: true, |
||||
modalTitle: '隐私政策', |
modalTitle: '隐私政策', |
||||
modalContent: content |
modalContent: content |
||||
}); |
|
||||
|
}) |
||||
}, |
}, |
||||
|
|
||||
// 隐藏弹窗
|
// 隐藏弹窗
|
||||
hideModal() { |
hideModal() { |
||||
this.setData({ |
this.setData({ |
||||
showAgreementModal: false |
showAgreementModal: false |
||||
}); |
|
||||
|
}) |
||||
} |
} |
||||
}) |
}) |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue