338 lines
6.8 KiB
JavaScript
338 lines
6.8 KiB
JavaScript
// packageE/appointment/search/search.js
|
|
const app = getApp();
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
appointmentLang: {},
|
|
status: "1",
|
|
category: {},
|
|
show1: false,
|
|
show2: false,
|
|
className: [],
|
|
url: "",
|
|
json: {},
|
|
sort: "asc",
|
|
point: {},
|
|
|
|
kwd: "",
|
|
projectList: [],
|
|
|
|
//more
|
|
isLoadMore: true,
|
|
page: 1,
|
|
total_page: 0
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
this.setData({
|
|
appointmentLang: wx.getStorageSync('yz_basic_info').lang.appointment,
|
|
city: options.city,
|
|
point: JSON.parse(options.point)
|
|
});
|
|
wx.setNavigationBarTitle({
|
|
title: "搜索" + this.data.appointmentLang.project + '/' + this.data.appointmentLang.worker
|
|
});
|
|
this.init();
|
|
this.getClass();
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
if (this.data.isLoadMore) {
|
|
this.getMoreData();
|
|
} else {
|
|
console.log('没有更多数据');
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
|
|
},
|
|
goProject(e) {
|
|
let id = e.currentTarget.dataset.id;
|
|
let point = JSON.stringify(this.data.point);
|
|
wx.navigateTo({
|
|
url: '/packageE/appointment/ProjectDetails/ProjectDetails?project_id=' + id + '&point=' + point,
|
|
});
|
|
},
|
|
toTechnicianDetails(e) {
|
|
let id = e.currentTarget.dataset.id;
|
|
let point = JSON.stringify(this.data.point);
|
|
wx.navigateTo({
|
|
url: '/packageE/appointment/technician_details/technician_details?worker_id=' + id + '&point=' + point,
|
|
});
|
|
},
|
|
bind(e) {
|
|
this.setData({
|
|
kwd: e.detail.value
|
|
});
|
|
},
|
|
goBack() {
|
|
let pages = getCurrentPages();
|
|
if (pages.length <= 1) {
|
|
wx.reLaunch({
|
|
url: '/packageG/index/index',
|
|
});
|
|
} else {
|
|
wx.navigateBack({ //返回
|
|
delta: 1
|
|
});
|
|
}
|
|
},
|
|
getClass() {
|
|
let that = this;
|
|
let urlStr = app.getNetAddresss("plugin.appointment.frontend.project-category.get-list");
|
|
app._getNetWork({
|
|
url: urlStr,
|
|
data: {},
|
|
success: function (resdata) {
|
|
var res = resdata.data;
|
|
if (res.result == 1) {
|
|
that.setData({
|
|
className: res.data
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: res.msg,
|
|
duration: 1500
|
|
});
|
|
}
|
|
},
|
|
fail: function (res) {
|
|
console.log(res);
|
|
}
|
|
});
|
|
},
|
|
close() {
|
|
this.setData({
|
|
show1: false
|
|
});
|
|
},
|
|
evaluateBtn() {
|
|
if (this.data.sort == "asc") {
|
|
this.setData({
|
|
sort: "desc"
|
|
});
|
|
} else {
|
|
this.setData({
|
|
sort: "asc"
|
|
});
|
|
}
|
|
this.setData({
|
|
page: 1,
|
|
isLoadMore: true,
|
|
total_page: 0,
|
|
show1: false
|
|
});
|
|
this.getData();
|
|
},
|
|
selectType(e) {
|
|
let type = e.currentTarget.dataset.type;
|
|
if (type == this.data.status) {
|
|
this.setData({
|
|
show2: false
|
|
});
|
|
return;
|
|
}
|
|
this.setData({
|
|
status: type,
|
|
projectList: []
|
|
});
|
|
this.getData();
|
|
if (this.data.status === "2") {
|
|
this.setData({
|
|
category: {},
|
|
});
|
|
}
|
|
this.setData({
|
|
show2: false,
|
|
});
|
|
},
|
|
showProject() {
|
|
this.setData({
|
|
show1: false,
|
|
show2: !this.data.show2
|
|
});
|
|
},
|
|
showClass() {
|
|
if (this.data.status === "2") {
|
|
return;
|
|
}
|
|
this.setData({
|
|
show2: false,
|
|
show1: !this.data.show1
|
|
});
|
|
},
|
|
init() {
|
|
this.setData({
|
|
projectList: [],
|
|
kwd: '',
|
|
category: {},
|
|
status: '1',
|
|
show1: false,
|
|
show2: false,
|
|
sort: 'asc',
|
|
isLoadMore: true,
|
|
total_page: 0,
|
|
'json.page': 1
|
|
});
|
|
},
|
|
selectionBtn(e) {
|
|
let item = e.currentTarget.dataset.item;
|
|
if (!item.name) {
|
|
this.setData({
|
|
category: {}
|
|
});
|
|
} else {
|
|
this.setData({
|
|
category: item
|
|
});
|
|
}
|
|
this.setData({
|
|
page: 1,
|
|
isLoadMore: true,
|
|
total_page: 0,
|
|
show1: false
|
|
});
|
|
this.getData();
|
|
},
|
|
|
|
getData() {
|
|
this.setData({
|
|
json: {},
|
|
});
|
|
if (this.data.status === "1") {
|
|
this.setData({
|
|
'json.sort': this.data.sort,
|
|
'json.category_id': this.data.category.id,
|
|
'json.name': this.data.kwd,
|
|
'json.page': 1,
|
|
url: app.getNetAddresss("plugin.appointment.frontend.project.get-list")
|
|
});
|
|
} else {
|
|
this.setData({
|
|
'json.lng': this.data.point.lng,
|
|
'json.lat': this.data.point.lat,
|
|
'json.city_name': this.data.city,
|
|
'json.kwd': this.data.kwd,
|
|
'json.page': 1,
|
|
url: app.getNetAddresss("plugin.appointment.frontend.worker.get-workers-by-name")
|
|
});
|
|
}
|
|
app._getNetWork({
|
|
url: this.data.url,
|
|
data: this.data.json,
|
|
success: (resdata) => {
|
|
var response = resdata.data;
|
|
if (response.result == 1) {
|
|
this.setData({
|
|
isLoadMore: true,
|
|
total_page: response.data.last_page,
|
|
projectList: response.data.data
|
|
});
|
|
if (!this.data.total_page) {
|
|
this.setData({
|
|
total_page: 0
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: response.msg,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
},
|
|
fail: function (res) {
|
|
console.log(res);
|
|
}
|
|
});
|
|
},
|
|
getMoreData() {
|
|
this.setData({
|
|
isLoadMore: false
|
|
});
|
|
// 防止多次请求分页数据
|
|
if (this.data.page >= this.data.total_page) {
|
|
return;
|
|
} else {
|
|
let page = this.data.page + 1;
|
|
this.setData({
|
|
page
|
|
});
|
|
app._getNetWork({
|
|
url: this.data.url,
|
|
data: this.data.json,
|
|
success: (resdata) => {
|
|
var response = resdata.data;
|
|
if (response.result == 1) {
|
|
var myData = response.data.data.concat(this.data.projectList);
|
|
this.setData({
|
|
projectList: myData
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
title: response.msg,
|
|
icon: 'none'
|
|
});
|
|
let pages = this.data.page - 1;
|
|
this.setData({
|
|
page: pages,
|
|
isLoadMore: false
|
|
});
|
|
}
|
|
},
|
|
fail: function (res) {
|
|
console.log(res);
|
|
}
|
|
});
|
|
}
|
|
},
|
|
}); |