2018-12-24 17:35:51 +08:00
|
|
|
|
todo list:
|
2018-12-25 17:26:35 +08:00
|
|
|
|
首页:
|
|
|
|
|
商品发布页面:
|
|
|
|
|
|
|
|
|
|
供求发布页面
|
2018-12-24 17:35:51 +08:00
|
|
|
|
全部业主需求页面:
|
|
|
|
|
我的供求页面:
|
2018-12-26 17:32:35 +08:00
|
|
|
|
我的商品列表页面
|
2018-12-27 17:31:17 +08:00
|
|
|
|
商品编辑页面
|
|
|
|
|
|
2019-01-14 17:04:08 +08:00
|
|
|
|
我的需求列表页面:
|
2018-12-29 17:15:59 +08:00
|
|
|
|
接口问题:
|
|
|
|
|
优惠卷和询价
|
2019-01-02 17:31:07 +08:00
|
|
|
|
bug: 商品编辑 增加图片后 图片顺序乱了
|
2019-01-04 17:33:38 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-08 13:51:26 +08:00
|
|
|
|
等待后台--- 单个我的商品页面的图片顺序,单个我的需求页面的接口, 当个我哦的需求编辑页面的接口
|
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
|
|
|
|
|
|
2019-01-14 17:04:08 +08:00
|
|
|
|
import Taro, { Component } from '@tarojs/taro'
|
2019-01-17 17:32:38 +08:00
|
|
|
|
import { View, Text } from '@tarojs/components'
|
2019-01-14 17:04:08 +08:00
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
import { Picker } from 'taro-ui'
|
|
|
|
|
|
|
|
|
|
import './goodsTypeInteractionComp.scss'
|
|
|
|
|
|
|
|
|
|
class GoodsTypeInteractionComp extends Component {
|
|
|
|
|
|
|
|
|
|
config = {
|
|
|
|
|
navigationBarTitleText: 'goodsTypeInteractionComp'
|
|
|
|
|
}
|
|
|
|
|
constructor() {
|
|
|
|
|
super(...arguments);
|
|
|
|
|
|
|
|
|
|
this.state = {
|
|
|
|
|
///---行业分类 开始
|
|
|
|
|
objectMultiArray: [[{ name: '选择商品分类', id: '' }], [], []],
|
|
|
|
|
multiIndex: [0, 0, 0, 0],
|
|
|
|
|
formatInWindow: [],
|
|
|
|
|
///---行业分类 结束
|
2019-01-14 17:04:08 +08:00
|
|
|
|
}
|
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
}
|
|
|
|
|
//商品目录请求api GetShopCategoryList
|
|
|
|
|
getProductCateList(url) {
|
|
|
|
|
Taro.request({
|
|
|
|
|
url: url,
|
|
|
|
|
method: 'POST',
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
header: {
|
|
|
|
|
'content-type': 'application/x-www-form-urlencoded',
|
|
|
|
|
'Cookie': 'PFWSSS=' + Taro.getStorageSync('session_id'),
|
|
|
|
|
'X-Requested-With': 'XMLHttpRequest'
|
|
|
|
|
}
|
2019-01-14 17:04:08 +08:00
|
|
|
|
})
|
2019-01-17 17:32:38 +08:00
|
|
|
|
.then(res => {
|
|
|
|
|
if (res.data.err_msg === 'success') {
|
|
|
|
|
console.log('商品分类目录', res)
|
|
|
|
|
this.formatIndustryType(res.data.data)
|
|
|
|
|
this.formatIndustTypeInit(res.data.data)
|
|
|
|
|
this.setState({goodsTypeList:res.data.data})
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
console.log('商品分类请求没有成功', res)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
)
|
|
|
|
|
.catch(error => {
|
|
|
|
|
console.log('商品分类请求错误', error)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 第一种formate 用于底部弹层滚动时的数据
|
|
|
|
|
formatIndustryType(data) {
|
|
|
|
|
const newIndustryType = []
|
|
|
|
|
if (data) {
|
|
|
|
|
for (let outter of data) {
|
|
|
|
|
let outterObject = { name: outter.class_name, id: outter.class_id, children: [] }
|
|
|
|
|
if (outter.children) {
|
|
|
|
|
for (let middler of outter.children) {
|
|
|
|
|
const middleObject = { name: middler.class_name, id: middler.class_id, children: [] }
|
|
|
|
|
outterObject.children.push(middleObject)
|
|
|
|
|
if (middler.children) {
|
|
|
|
|
for (let inner of middler.children) {
|
|
|
|
|
const innerObject={ name: inner.class_name, id: inner.class_id,children: [] }
|
|
|
|
|
middleObject.children.push(innerObject)
|
|
|
|
|
|
|
|
|
|
if (inner.children) {
|
|
|
|
|
for (let final of inner.children) {
|
|
|
|
|
innerObject.children.push({ name: final.class_name, id: final.class_id })
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
innerObject.children.push({ name: '', id: '' })
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
middleObject.children.push({ name: '', id: '' })
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
outterObject.children.push({ name: '', id: '', children: [] })
|
|
|
|
|
}
|
|
|
|
|
newIndustryType.push(outterObject)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
console.log('店铺分类数据问题')
|
|
|
|
|
}
|
2019-01-14 17:04:08 +08:00
|
|
|
|
|
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
this.setState({ formatInWindow: newIndustryType }, () => {
|
|
|
|
|
console.log('滚动时的数据', this.state.formatInWindow)
|
2019-01-17 08:52:30 +08:00
|
|
|
|
})
|
2019-01-17 17:32:38 +08:00
|
|
|
|
}
|
|
|
|
|
//第二种format 用于底部弹层的初始化数据
|
|
|
|
|
formatIndustTypeInit(data) {
|
|
|
|
|
const firstArray = []
|
|
|
|
|
const secondArray = []
|
|
|
|
|
const thirdArray = []
|
|
|
|
|
for (let outter of data) {
|
|
|
|
|
firstArray.push({ name: outter.class_name, id: outter.class_id })
|
|
|
|
|
if (outter.children) {
|
|
|
|
|
for (let middler of outter.children) {
|
|
|
|
|
secondArray.push({ name: middler.class_name, id: middler.class_id })
|
|
|
|
|
if (middler.children) {
|
|
|
|
|
for (let inner of middler.children) {
|
|
|
|
|
thirdArray.push({ name: inner.class_name, id: inner.class_id })
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 这里不能加入secondArray,和thirdArray 会有bug
|
|
|
|
|
this.setState({ objectMultiArray: [firstArray, [{ name: '', id: '' }], [{ name: '', id: '' }]] }, () => {
|
|
|
|
|
console.log('初始化数据', this.state.objectMultiArray)
|
2019-01-14 17:04:08 +08:00
|
|
|
|
})
|
2019-01-17 17:32:38 +08:00
|
|
|
|
}
|
|
|
|
|
//--- 三级联动--------------
|
|
|
|
|
bindMultiPickerChange(e) {
|
|
|
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
|
|
|
|
this.setState({
|
|
|
|
|
multiIndex: e.detail.value
|
|
|
|
|
}, () => {
|
|
|
|
|
this.returnResultToParent()
|
2019-01-14 17:04:08 +08:00
|
|
|
|
})
|
2019-01-17 17:32:38 +08:00
|
|
|
|
}
|
|
|
|
|
returnResultToParent() {
|
|
|
|
|
let result = ''
|
|
|
|
|
let outter = this.state.formatInWindow[this.state.multiIndex[0]]
|
|
|
|
|
let middler = outter.children[this.state.multiIndex[1]]
|
|
|
|
|
let inner = middler.children[this.state.multiIndex[2]]
|
|
|
|
|
if (outter.id) {
|
|
|
|
|
result = outter
|
|
|
|
|
if (middler.id) {
|
|
|
|
|
result = middler
|
|
|
|
|
if (inner.id) {
|
|
|
|
|
result = inner
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-01-14 17:04:08 +08:00
|
|
|
|
}
|
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
this.passDataToParent(result)
|
2019-01-14 17:04:08 +08:00
|
|
|
|
}
|
2019-01-17 17:32:38 +08:00
|
|
|
|
bindMultiPickerCol(e) {
|
|
|
|
|
console.log('修改的列为', e.detail.column, ',值为', e.detail.value)
|
|
|
|
|
const data = {
|
|
|
|
|
multiArray: this.state.objectMultiArray,
|
|
|
|
|
multiIndex: this.state.multiIndex
|
|
|
|
|
}
|
|
|
|
|
data.multiIndex[e.detail.column] = e.detail.value
|
|
|
|
|
|
|
|
|
|
switch (e.detail.column) {
|
|
|
|
|
case 0:
|
|
|
|
|
switch (data.multiIndex[0]) {
|
|
|
|
|
case 0:
|
|
|
|
|
data.multiArray[1] = this.state.formatInWindow[0].children
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[0].children
|
|
|
|
|
break
|
|
|
|
|
case 1:
|
|
|
|
|
data.multiArray[1] = this.state.formatInWindow[1].children
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
data.multiArray[1] = this.state.formatInWindow[2].children
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
data.multiArray[1] = this.state.formatInWindow[3].children
|
|
|
|
|
break
|
|
|
|
|
case 4:
|
|
|
|
|
data.multiArray[1] = this.state.formatInWindow[4].children
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
data.multiIndex[1] = 0
|
|
|
|
|
data.multiIndex[2] = 0
|
|
|
|
|
data.multiIndex[3] = 0
|
|
|
|
|
break
|
|
|
|
|
case 1:
|
|
|
|
|
switch (data.multiIndex[0]) {
|
|
|
|
|
case 0:
|
|
|
|
|
|
|
|
|
|
break
|
|
|
|
|
case 1:
|
|
|
|
|
switch (data.multiIndex[1]) {
|
|
|
|
|
case 0:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[1].children[0].children
|
|
|
|
|
break
|
|
|
|
|
case 1:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[1].children[1].children
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[1].children[2].children
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[1].children[3].children ? this.state.formatInWindow[1].children[3].children : [{ class_name: '' }]
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
switch (data.multiIndex[1]) {
|
|
|
|
|
case 0:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[2].children[0].children
|
|
|
|
|
break
|
|
|
|
|
case 1:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[2].children[1].children
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[2].children[2].children
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[2].children[3].children
|
|
|
|
|
break
|
|
|
|
|
case 4:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[2].children[4].children
|
|
|
|
|
break
|
|
|
|
|
case 5:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[2].children[5].children
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
switch (data.multiIndex[1]) {
|
|
|
|
|
case 0:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[3].children[0].children
|
|
|
|
|
break
|
|
|
|
|
case 1:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[3].children[1].children
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[3].children[2].children
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[3].children[3].children
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[3].children[3].children
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
break
|
|
|
|
|
case 4:
|
|
|
|
|
switch (data.multiIndex[1]) {
|
|
|
|
|
case 0:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[4].children[0].children
|
|
|
|
|
break
|
|
|
|
|
case 1:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[4].children[1].children
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
data.multiArray[2] = this.state.formatInWindow[4].children[2].children
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
data.multiIndex[2] = 0
|
|
|
|
|
data.multiIndex[3] = 0
|
|
|
|
|
break
|
2019-01-17 08:52:30 +08:00
|
|
|
|
}
|
2019-01-17 17:32:38 +08:00
|
|
|
|
this.setState({ multiIndex: data.multiIndex })
|
2019-01-14 17:04:08 +08:00
|
|
|
|
}
|
2019-01-17 08:52:30 +08:00
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
//--------------------结束-行业分类picker
|
|
|
|
|
passDataToParent(industryTypeSelected) {
|
|
|
|
|
this.props.onPassDataToChild(industryTypeSelected)
|
|
|
|
|
}
|
2019-01-17 08:52:30 +08:00
|
|
|
|
|
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
componentDidMount() {
|
|
|
|
|
this.getProductCateList(this.props.url)
|
2019-01-14 17:04:08 +08:00
|
|
|
|
|
|
|
|
|
}
|
2019-01-17 17:32:38 +08:00
|
|
|
|
// 当然父组件有新的props的 会从新渲染组件
|
|
|
|
|
componentWillReceiveProps(nextProps) {
|
2019-01-14 17:04:08 +08:00
|
|
|
|
|
2019-01-17 08:52:30 +08:00
|
|
|
|
}
|
2019-01-17 17:32:38 +08:00
|
|
|
|
componentWillUnmount() { }
|
|
|
|
|
|
|
|
|
|
componentDidShow() { }
|
|
|
|
|
|
|
|
|
|
componentDidHide() { }
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
|
return (
|
|
|
|
|
<View class='page-section'>
|
|
|
|
|
<Picker
|
|
|
|
|
rangeKey='name'
|
|
|
|
|
mode='multiSelector'
|
|
|
|
|
onChange={this.bindMultiPickerChange.bind(this)}
|
|
|
|
|
onColumnchange={this.bindMultiPickerCol.bind(this)}
|
|
|
|
|
value={this.state.multiIndex}
|
|
|
|
|
range={this.state.objectMultiArray}
|
|
|
|
|
>
|
|
|
|
|
<View class='picker type'>
|
|
|
|
|
<View className='title-box'>
|
|
|
|
|
<Text className='require'>*</Text>
|
|
|
|
|
<Text className='title'>商品分类:</Text>
|
|
|
|
|
<Text className='first-col'>
|
|
|
|
|
{this.props.selectedValue.name}
|
|
|
|
|
</Text>
|
|
|
|
|
|
|
|
|
|
{/* {this.state.objectMultiArray[0].length?<Text className='first-col'> {this.state.objectMultiArray[0][this.state.multiIndex[0]].name}</Text>:null}
|
|
|
|
|
{this.state.objectMultiArray[1].length?<Text className='second-col'>{this.state.objectMultiArray[1][this.state.multiIndex[1]].name}</Text>:null}
|
|
|
|
|
{this.state.objectMultiArray[2].length?<Text className='third-col'>{this.state.objectMultiArray[2][this.state.multiIndex[2]].name}</Text>:null} */}
|
|
|
|
|
|
|
|
|
|
</View>
|
|
|
|
|
</View>
|
|
|
|
|
</Picker>
|
2019-01-14 17:04:08 +08:00
|
|
|
|
</View>
|
|
|
|
|
|
2019-01-17 08:52:30 +08:00
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
)
|
|
|
|
|
}
|
2019-01-14 17:04:08 +08:00
|
|
|
|
}
|
2019-01-08 13:51:26 +08:00
|
|
|
|
|
2019-01-17 17:32:38 +08:00
|
|
|
|
export default GoodsTypeInteractionComp
|
|
|
|
|
|
|
|
|
|
|