Происхождение: вчера появилось обновление от разработчиков — v0.10.101100. В компоненте Picker теперь поддерживаются свойства mode со значениями date и time, а также исправлена ошибка с background-image. Поэтому было решено обновить этот экземпляр.
Как показано на рисунке:
Информация взята из официальной документации: https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html
В файле item.wxml добавьте компонент picker:
<view class="section">
<picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindDateChange">
<view class="section__title">
Дата: {{date}}
</view>
</picker>
</view>
Как видно на рисунке:
Поэтому в файле item.js нужно объявить значение data date, связанное с wxml {{date}}, и инициализировать строковое значение даты в onLoad. Подробное описание см. в комментариях:
// Получить текущую дату
var date = new Date();
// Отформатировать дату как "ГГГГ-мм-дд"
var dateStr = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
// Сохранить данные для отображения на странице
this.setData({
date: dateStr
})
После обработки компонент отображает текущую дату:
Далее необходимо исправить логическую ошибку: конец даты picker должен быть не позже текущей даты. Это можно сделать, изменив атрибут end в wxml на «{{date}}»:
<picker mode="date" value="{{date}}" start="{{date}}" end="2017-09-01" bindchange="bindDateChange">
Стоит отметить, что у официального picker всё ещё есть ошибки, он полностью игнорирует значения start и end и позволяет выбрать любую дату. Однако пока это только внутреннее тестирование, поэтому код остаётся таким, какой он есть.
Теперь нужно обработать событие щелчка по компоненту подтверждения даты bindDateChange:
Вернитесь к файлу item.js и объявите метод bindDateChange, добавив следующий код для обновления значения data date:
// Событие клика по компоненту выбора даты
bindDateChange: function(e) {
this.setData({
date: e.detail.value
})
}
Таким образом, компонент выбора даты интегрирован. Осталось сохранить его вместе с предыдущими полями заголовка, типа и суммы в json и сохранить локально с помощью setStorage. Подробности можно найти в статье автора «Разработка приложения для учёта в малых программах WeChat (приложениях)».
Если запрос выполнен успешно, то локально сохраняются uid и accessToken.
Адрес интерфейса: https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html
App({
onLaunch: function() {
wx.login({
success: function(res) {
if (res.code) {
// Отправка сетевого запроса
wx.request({
url: 'https://test.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('Ошибка при получении статуса пользователя!' + res.errMsg)
}
}
});
}
})
Сохраните основную информацию о пользователе локально:
index.js
onLoad: function(){
var that = this
// Вызов метода экземпляра приложения для получения глобальных данных
app.getUserInfo(function(userInfo){
// Запрос на вход
console.log(userInfo.nickName);
app.httpService(
'user/login',
{
openid: userInfo.nickName
},
function(response){
// Успешный обратный вызов
console.log(response);
// Локальное сохранение uid и accessToken
var userinfo = wx.getStorageSync('userinfo') || {};
userinfo['uid'] = response.data.uid;
userinfo['accessToken'] = response.data.accessToken;
console.log(userinfo);
wx.setStorageSync('userinfo', userinfo);
}
);
})
}
app.js
Определите общую функцию доступа к сети:
httpService:function(uri, param, cb) {
// Соответственно пути, параметрам и обратным вызовам
wx.request({
url: 'http://financeapi.applinzi.com/index.php/' + uri,
data: param,
header: {
'Content-Type': 'application/json'
},
success: function(res) {
cb(res.data)
},
fail: function() {
console.log('Ошибка интерфейса');
}
})
},
По умолчанию используется метод get. Если вы установите другой метод, например post, серверная часть не сможет получить значения. Поэтому сервер был изменён для получения значений.
Проверьте, что данные успешно сохранены в Storage:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )