| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import { login } from "../logic";
- import request from "../request/method";
- type Status = 'loading' | 'pending' | 'success' | 'fail'
- type UpdataStatusCallback = (status: Status) => void
- type UpdataValueCallback = (value: string) => void
- export function usePhoneNumber() {
- const _updataValue: UpdataValueCallback[] = [];
- const _updateStatus: UpdataStatusCallback[] = [];
- let value = '';
- let status: Status = 'loading';
- login(false).then(token => token ? 'pending' : 'fail' as const, () => 'fail' as const).then(_status => {
- status = _status;
- _updateStatus.forEach(cb => cb(status));
- })
- return {
- updateValue(callback: UpdataValueCallback) {
- _updataValue.push(callback);
- if (value) callback(value);
- },
- updateStatus(callback: UpdataStatusCallback) {
- _updateStatus.push(callback);
- callback(status)
- },
- getPhoneNumber(event: WechatMiniprogram.ButtonGetPhoneNumber) {
- console.log('getPhoneNumber-->', event);
- const code = event.detail.code;
- console.log('getPhoneNumber-->code', code);
- if (!code) return;
- console.log('getPhoneNumber-->');
- _updateStatus.forEach(cb => cb('loading'))
- request({
- url: `/mobileAccountManage/getAccountPhone`,
- method: 'GET',
- params: { code },
- transform({ data }) { return data; }
- }).then(phone => {
- value = phone;
- status = 'success';
- _updataValue.forEach(cb => cb(value))
- _updateStatus.forEach(cb => cb(status))
- }, (error) => {
- _updateStatus.forEach(cb => cb('pending'))
- wx.showModal({ title: '获取失败', content: error.errMsg || error.message, showCancel: false })
- })
- }
- }
- }
|