//myNeeds import Taro, { Component } from '@tarojs/taro' import { View, Text, Button } from '@tarojs/components' import { AtInput, Picker, AtIcon, AtModal, AtModalHeader, AtModalContent, AtModalAction } from 'taro-ui' import URL from '../../serviceAPI.config' import ScrollToTopComponent from '../../component/scrollToTopComponent/scrollToTopComponent' import InteractionComponent from '../../component/interactionComponent/interactionComponent' import CopyrightComponent from '../../component/copyrightComponent/copyrightComponent' import LoginService from '../../util/LoginService' import './myNeeds.scss' import loginExpired from '../../util/loginExpired'; import onClickValueService from '../../util/onClickValueService'; import { getGlobalStorage } from '../../util/getSetStoage'; class MyNeeds extends Component { config = { navigationBarTitleText: '我的需求' } constructor() { super(...arguments) this.state = { title: '', startDateSel: '', endDateSel: '', industryTypeSelected: { name: '全部', id: '' }, needsType: [{ name: '业主需求', id: '4' }, { name: '效果图', id: '5' }], needsTypeSelected: { name: '业主需求', id: '4' }, needsState: [ { name: '全部', id: '' }, { name: '作废', id: '0' } , { name: '在用', id: '1' }, { name: '已抢单', id: '2' }, { name: '已抢光', id: '3' }], needsStateSelected: { name: '全部', id: '' }, pageCount: 10,// 列表数量 allNeedsList: [],// 我的需求列表 totalNeeds: 0,// 我的需求数量 currentPage: 1, needsItem: '',// 确认框提示时 使用的供求名 isDeleteModal: false,// 删除提示框 isAddToList: false,// 请求需求的时候是否添加到旧列表里 isShowTopNav: false,// 是否显示返回顶部按钮 loadMorePageIndex: 1,// 上拉加载页面数 } } //请求我的需求列表 api GetMyNeedsList getMyNeedsList({ curr_page = this.state.currentPage, page_count = this.state.pageCount, sd_type = this.state.needsTypeSelected.id, sd_title = this.state.title, update_dateL = this.state.startDateSel, update_dateU = this.state.endDateSel, class_id = this.state.industryTypeSelected.id, state = this.state.needsStateSelected.id }) { //由于后台返回的问题, 所有当state为空的时候不传state,反之传state const param = state ? { param: JSON.stringify({ curr_page: curr_page, page_count: page_count, sd_type: sd_type, sd_title: sd_title, update_dateL: update_dateL, update_dateU: update_dateU, class_id: class_id, state: state }) } : { param: JSON.stringify({ curr_page: curr_page, page_count: page_count, sd_type: sd_type, sd_title: sd_title, update_dateL: update_dateL, update_dateU: update_dateU, class_id: class_id, }) } Taro.request({ url: URL.GetMyNeedsList, method: 'POST', dataType: 'json', data: param, header: { 'Cookie': 'PFWSSS=' + getGlobalStorage('session_id'), 'content-type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' } }).then(res => { Taro.hideLoading() console.log('我的需求列表', res) if (res.data.err_code === 0) { if (res.data.supplys) { // 查看res.data 里面是否有supplys 这个key if (this.state.isAddToList) { // 如果是上拉 this.setState({ allNeedsList: this.state.allNeedsList.concat(res.data.supplys) }, () => { this.setState({ isAddToList: false }) }) } else { this.setState({ isAddToList: false }) this.setState({ allNeedsList: res.data.supplys, totalNeeds: Number(res.data.count) }) } } else { if (this.state.isAddToList) { this.setState({ isAddToList: false }) Taro.showToast({ title: '没有更多了', icon: 'none' }) } else { this.setState({ allNeedsList: [], totalNeeds: 0 }) } } } else if (JSON.parse(res.data).err_code === 88888) { const response = { data: JSON.parse(res.data) } loginExpired(response) } else { Taro.showToast({ title: res.data.err_msg, icon: 'none' }) } }) } //删除我的需求 api DeleteMyNeeds deleteMyNeeds({ demandId = 10 }) { Taro.request({ url: URL.DeleteMyNeeds, method: 'POST', dataType: 'json', data: { demandId: demandId }, header: { 'Cookie': 'PFWSSS=' + getGlobalStorage('session_id'), 'content-type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' } }).then(res => { console.log('删除我的列表', res) if (res.data.err_code === 0) { Taro.showToast({ title: '删除成功', icon: 'success', duration: 1500 }) setTimeout(() => { this.getMyNeedsList({ }) }, 1500); } else if (res.data.err_code === 88888) { loginExpired(res) } else { Taro.showToast({ title: res.data.err_msg, icon: 'none', duration: 1500 }) } }) } // 搜索按钮 onSearchButtonHandler() { Taro.showLoading({ title: '加载中' }).then(() => { this.setState({ currentPage: 1, loadMorePageIndex: 1 }, () => { this.getMyNeedsList({ curr_page: this.state.currentPage, page_count: this.state.pageCount, sd_type: this.state.needsTypeSelected.id, sd_title: this.state.title, update_dateL: this.state.startDateSel, update_dateU: this.state.endDateSel, class_id: this.state.industryTypeSelected.id === '-1' ? '' : this.state.industryTypeSelected.id, state: this.state.needsStateSelected.id }) }) }) } // 新增我的需求 addNeeds() { Taro.navigateTo({ url: '/pages/myNeedsPublish/myNeedsPublish' }) } //清空筛选项 emptyFilter() { this.setState({ title: '', endDateSel: '', startDateSel: '', industryTypeSelected: { name: '全部', id: '' }, needsTypeSelected: { name: '业主需求', id: '4' }, needsStateSelected: { name: '全部', id: '' }, currentPage: 1, loadMorePageIndex: 1, }, () => { this.getMyNeedsList({}) }) Taro.showToast({ title: '已清空', icon: 'success', duration: 1000 }) } titleChange(event) { this.setState({ title: event }) } // 修改开始日期 onStartDateChange = e => { this.setState({ startDateSel: e.detail.value }) } // 修改结束日期 onEndDateChange = e => { this.setState({ endDateSel: e.detail.value }) } needsTypeChange = e => { this.setState({ needsTypeSelected: this.state.needsType[e.detail.value] }) } needsStateChange = e => { this.setState({ needsStateSelected: this.state.needsState[e.detail.value] }) } goToMyNeedsViewPage(e) { const id = onClickValueService(e) Taro.navigateTo({ url: '/pages/grabOrderPage/grabOrderPage?orderId=' + id }) } goToMyNeedsEditPage(e) { const id = onClickValueService(e) Taro.navigateTo({ url: '/pages/myNeedsEdit/myNeedsEdit?id=' + id }) } deleteButton(e) { const item = onClickValueService(e) this.setState({ isDeleteModal: true, needsItem: item }) } handleWindowModCancel() { this.setState({ isDeleteModal: false }) } handleWindowConfirm() { this.setState({ isDeleteModal: false }) this.deleteMyNeeds({ demandId: this.state.needsItem.sd_id }) } componentDidMount() { Taro.showLoading({ title: '加载中' }) this.getMyNeedsList({}) } componentWillReceiveProps(nextProps) { console.log(this.props, nextProps) } componentWillUnmount() { } componentDidShow() { if (!getGlobalStorage('userInfo').user_id) { LoginService() return } } componentDidHide() { } // 页面位置 onPageScroll(location) { if (location.scrollTop <= 300 && this.state.isShowTopNav) { this.setState({ isShowTopNav: false }) } else if (location.scrollTop > 300 && !this.state.isShowTopNav) { this.setState({ isShowTopNav: true }) } } // 底部加载 onReachBottom() { Taro.showLoading({ title: '加载中' }) this.setState({ isAddToList: true, loadMorePageIndex: this.state.loadMorePageIndex + 1 }, () => { this.getMyNeedsList({ curr_page: this.state.loadMorePageIndex }) }) } getDataFromChild(value) { console.log('从子组件传回来的值', value) this.setState({ industryTypeSelected: value }) } render() { const myNeedsListArrayElement = this.state.allNeedsList.map((item, index) => { return 行业分类: {item.class_name} 需求标题: {item.sd_title} 需求状态: {item.state_name} 更新时间: {item.update_date} {item.state === '0' || item.state === '1' ? : } }) const deleteModalWindowElement = 提示 确认删除{this.state.needsItem.sd_title}? return ( {/* 删除模态框 */} {deleteModalWindowElement} {/* 需求标题 */} {/* 开始和结束日期 */} 开始日期:{this.state.startDateSel} 结束日期: {this.state.endDateSel} {/* 行业分类开始 */} {/* 行业分类结束 */} {/* 需求类型 */} 需求类型: {this.state.needsTypeSelected.name} {/* 需求状态 */} 需求状态: {this.state.needsStateSelected.name} {this.state.totalNeeds} 条记录 {/* 我的需求信息 */} { {this.state.allNeedsList.length ? myNeedsListArrayElement : 没有更多了} } {this.state.isShowTopNav ? : null} ) } } export default MyNeeds