cf-wx-app/src/pages/mySupplyDemand/mySupplyDemand.js

399 lines
14 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Taro, { Component } from '@tarojs/taro'
import { View, Text, Button } from '@tarojs/components'
import { AtInput, AtButton, Picker, AtIcon, AtModal, AtModalHeader, AtModalContent, AtModalAction } from 'taro-ui'
import URL from '../../serviceAPI.config'
import CopyrightComponent from '../../component/copyrightComponent/copyrightComponent'
import './mySupplyDemand.scss'
class MySupplyDemand extends Component {
config = {
navigationBarTitleText: '我的供求'
}
constructor() {
super(...arguments)
this.state = {
demandSupplyCate: [{ name: '全部', id: '' }, { name: '需求', id: '1' }, { name: '供应', id: '2' }, { name: '人才', id: '3' },],
demandSupplyCateSelected: { name: '全部', id: '' },
demandSupplyState: [{ name: '全部', id: '' }, { name: '上架', id: '1' }, { name: '下架', id: '0' }],
demandSupplyStatesSelected: { name: '全部', id: '' },
title: '',
startDateSel: '',
endDateSel: '',
allDemandSupply: [],
totalDemandSupply: '',
isConfirmWindow: false, // 是否显示确认弹窗
demandSupplyItemName: '',// 确认框提示时 使用的供求名
demandSupplyId: '',// 删除我的供求时的供求id
}
}
//获取我的供求API
getMySupplyDemand({ curr_page = 1, page_count = 20 }) {
Taro.request({
url: URL.MySupplyDemand,
method: 'POST',
dataType: 'json',
data: {
param: JSON.stringify({
curr_page: curr_page,
page_count: page_count
})
},
header: {
'Cookie': 'PFWSSS=' + Taro.getStorageSync('session_id'),
'content-type': 'application/x-www-form-urlencoded',
'X-Requested-With': 'XMLHttpRequest'
}
}).then(res => {
if (res.data.err_msg === "success") {
// 判断是否有res.data.supplys 如果没有就是空数组[]
Taro.hideLoading()
this.setState({ allDemandSupply: res.data.supplys || [], totalDemandSupply: res.data.count })
}
})
}
//搜索我的供求api
searchDemandSupply({ curr_page = 1, page_count = 20,
sd_type = this.state.demandSupplyCateSelected.id,
state = this.state.demandSupplyStatesSelected.id, sd_title = this.state.title, update_dateL = this.state.startDateSel, update_dateU = this.state.endDateSel }) {
Taro.request({
url: URL.SearchDemandSupply,
method: 'POST',
dataType: 'json',
data: {
param: JSON.stringify({
curr_page: curr_page,
page_count: page_count,
sd_type: sd_type,
state: state,
sd_title: sd_title,
update_dateL: update_dateL,
update_dateU: update_dateU
})
},
header: {
'content-type': 'application/x-www-form-urlencoded',
'Cookie': 'PFWSSS=' + Taro.getStorageSync('session_id'),
'X-Requested-With': 'XMLHttpRequest'
}
})
.then(res => {
//this.setState({ grabOrderSuccess: res.data.err_msg,isGrabOrderSuccess: true })
console.log('我的供求搜索结果', res)
Taro.hideLoading()
this.setState({ allDemandSupply: res.data.supplys || [], totalDemandSupply: res.data.count })
})
}
onSearchButtonHandler(){
Taro.showLoading({title:'加载中'}) .then(() => {
setTimeout(() => {
this.searchDemandSupply({})
}, 1000);
})
}
// 删除我的供求api
onDelete({ sdID = 0 }) {
Taro.request({
url: URL.DeleteDemandSupply,
method: 'POST',
dataType: 'json',
data: {
sdID: sdID
},
header: {
'content-type': 'application/x-www-form-urlencoded',
'Cookie': 'PFWSSS=' + Taro.getStorageSync('session_id'),
'X-Requested-With': 'XMLHttpRequest'
}
})
.then(res => {
if (res.data.err_msg == 'success') {
console.log('删除成功')
Taro.showToast({
title: '删除成功'
}).then(() => {
this.getMySupplyDemand({})
})
} else {
Taro.showToast({
title: res.data.err_msg,
icon: 'none'
})
}
}
)
.catch(error => {
Taro.showToast({
title: '删除失败',
icon: 'none'
})
})
}
//搜索我的供求
// 新增我的供求
addDemandSupply() {
Taro.navigateTo({
url: '/pages/supplyDemandPublish/supplyDemandPublish'
})
}
//修改供求类型
demSupplyCateChange = e => {
this.setState({
demandSupplyCateSelected: this.state.demandSupplyCate[e.detail.value]
}, () => {
console.log(this.state.demandSupplyCateSelected)
})
}
// 修改供求状态
demSupplyStateChange = e => {
this.setState({
demandSupplyStatesSelected: this.state.demandSupplyState[e.detail.value]
})
}
titleChange(event) {
this.setState({ title: event })
}
// 修改开始日期
onStartDateChange = e => {
this.setState({
startDateSel: e.detail.value
})
}
// 修改结束日期
onEndDateChange = e => {
this.setState({
endDateSel: e.detail.value
})
}
handleWindowModClose() {
this.setState({ isConfirmWindow: false })
}
handleWindowModCancel() {
this.setState({ isConfirmWindow: false })
}
handleWindowConfirm() {
this.setState({ isConfirmWindow: false })
this.onDelete({ sdID: this.state.demandSupplyId })
}
// 删除我的供求
handleOnDelete(id, itemName) {
this.setState({ isConfirmWindow: true, demandSupplyItemName: itemName, demandSupplyId: id })
}
// 编辑我的供求
// 跳转到我的供求编辑页面
goToMyDSEditPage() {
Taro.navigateTo({
url: '/pages/myDemandSupplyEdit/myDemandSupplyEdit'
})
}
// 转到供求查看页面
goToSupplyDemandPage(){
Taro.navigateTo({
url: '/pages/supplyDemandView/supplyDemandView'
})
}
//查看我的供求
componentWillReceiveProps(nextProps) {
console.log(this.props, nextProps)
}
componentDidMount() {
Taro.showLoading({title:'加载中'}) .then(() => {
this.getMySupplyDemand({})
})
}
componentWillUnmount() { }
componentDidShow() { }
componentDidHide() { }
render() {
// 提示模态弹窗element
const modalMessageConfirmElement = <AtModal isOpened={this.state.isConfirmWindow}>
<AtModalHeader>提示</AtModalHeader>
<AtModalContent>
确认删除{this.state.demandSupplyItemName}
</AtModalContent>
<AtModalAction> <Button onClick={this.handleWindowModCancel.bind(this)}>取消</Button> <Button className='orange' onClick={this.handleWindowConfirm.bind(this)}></Button> </AtModalAction>
</AtModal>
const demandSupplyElementArray = this.state.allDemandSupply.length ? this.state.allDemandSupply.map((item, index) => {
return <View key={index} className='info-container'>
<View className='type'>
<Text className='title'>需求类型</Text>
<Text className='info'>{item.type_name}</Text>
</View>
<View className='demand-title'>
<Text className='title'>需求标题</Text>
<Text className='info'>{item.sd_title}</Text>
</View>
<View className='contact-name'>
<Text className='title'>联系人</Text>
<Text className='info'>{item.user_name}</Text>
</View>
<View className='contact-number'>
<Text className='title'>电话号码</Text>
<Text className='info'>{item.user_phone}</Text>
</View>
<View className='demand-status'>
<Text className='title'>需求状态</Text>
<Text className='info'>{item.state}</Text>
</View>
<View className='update-time'>
<Text className='title'>更新时间</Text>
<Text className='info'>{item.update_date}</Text>
</View>
<View className='info-button-box'>
<View className='button' onClick={this.goToSupplyDemandPage.bind(this)}>
<AtButton type='primary' size='small'>查看</AtButton>
</View>
<View className='button' onClick={this.goToMyDSEditPage.bind(this)} >
<AtButton type='primary' size='small'>编辑</AtButton>
</View>
<View className='button' onClick={this.handleOnDelete.bind(this, item.sd_id, item.sd_title)}>
<AtButton type='primary' className='button-a' size='small'>删除</AtButton>
</View>
</View>
</View>
}) : <View className='title' >
没有更多了....
</View >
return (
<View className='mySupplyDemand'>
{/* 是否删除供求确认框 */}
{modalMessageConfirmElement}
{/* 供求类型 */}
<View className='page-section'>
<View>
<Picker mode='selector' rangeKey='name' range={this.state.demandSupplyCate} onChange={this.demSupplyCateChange.bind(this)}>
<View className='picker'>
<View className='title-box'>
<Text className='title'><Text className='require'>*</Text>:</Text> <Text className='selected'>{this.state.demandSupplyCateSelected.name}</Text>
</View>
</View>
</Picker>
</View>
</View>
{/* 供求状态 */}
<View className='page-section'>
<View>
<Picker mode='selector' rangeKey='name' range={this.state.demandSupplyState} onChange={this.demSupplyStateChange.bind(this)}>
<View className='picker'>
<View className='title-box'>
<Text className='title'> <Text className='require'>*</Text>:</Text> <Text className='selected'>{this.state.demandSupplyStatesSelected.name}</Text>
</View>
</View>
</Picker>
</View>
</View>
{/* 供求标题 */}
<View className='input-box'>
<Text className='require'>*</Text>
<AtInput
name='value'
title='供求标题:'
placeholder='供求标题·'
type='text'
value={this.state.title}
onChange={this.titleChange.bind(this)}
/>
</View>
{/* 开始和结束日期 */}
<View className='page-section'>
<View className='picker-box'>
<Picker mode='date' className='picker-container' onChange={this.onStartDateChange}>
<View className='picker'>
<View className='title-box'>
<Text className='title'><Text className='require'>*</Text>:</Text> <Text className='selected'>{this.state.startDateSel}</Text>
</View>
</View>
</Picker>
<Picker className='picker-container' mode='date' start={this.state.startDateSel} onChange={this.onEndDateChange}>
<View className='picker'>
<View className='title-box'>
<Text className='title'><Text className='require'>*</Text>:</Text> <Text className='selected'>{this.state.endDateSel}</Text>
</View>
</View>
</Picker>
</View>
</View>
<View className='button-box'>
<View className='button' onClick={this.onSearchButtonHandler.bind(this)}>
<AtButton type='primary' size='small'>
<AtIcon value='search' size='12' color='white'></AtIcon>
搜索</AtButton>
</View>
<View className='button' onClick={this.addDemandSupply.bind(this)}>
<AtButton type='primary' className='button-a' size='small'>
<AtIcon value='add' size='12' color='white'></AtIcon>
新增</AtButton>
</View>
</View>
<View className='total-count'>一共<Text className='number'>{this.state.totalDemandSupply}</Text> </View>
{/* 我的供求信息 */}
<View className='info-box'>
{demandSupplyElementArray}
</View>
<CopyrightComponent></CopyrightComponent>
</View>
)
}
}
export default MySupplyDemand