2021-07-20 15:45:29 +08:00
|
|
|
// pages/mine/setting/columnsetting.js
|
|
|
|
const app = getApp()
|
|
|
|
Page({
|
|
|
|
data: {
|
2021-09-01 16:55:20 +08:00
|
|
|
activeNames: ['1'],
|
2021-07-20 15:45:29 +08:00
|
|
|
curIndex: 0,
|
|
|
|
menuList: [],
|
|
|
|
imgUrl: app.urls.baseImgUrl,
|
|
|
|
inputColumnName: '',
|
|
|
|
isShowInput: false,
|
|
|
|
curId: '',
|
|
|
|
curIndex: 0,
|
2021-09-01 16:55:20 +08:00
|
|
|
curIdx: 0,
|
|
|
|
pageInfo: {
|
|
|
|
rowHeight: 64,
|
|
|
|
scrollHeight: 85,
|
|
|
|
startIndex: null,
|
|
|
|
scrollY: true,
|
|
|
|
readyPlaceIndex: null,
|
|
|
|
startY: 0,
|
|
|
|
selectedIndex: null,
|
|
|
|
startIdx: null,
|
|
|
|
selectedIdx: null
|
|
|
|
},
|
|
|
|
movableViewInfo: {
|
|
|
|
y: 0,
|
|
|
|
showClass: 'none',
|
|
|
|
data: {}
|
|
|
|
},
|
|
|
|
pageInfoX: {
|
|
|
|
rowWidth: 96,
|
|
|
|
scrollHeight: 85,
|
|
|
|
startIndex: null,
|
|
|
|
scrollX: true,
|
|
|
|
readyPlaceIndex: null,
|
|
|
|
startX: 0,
|
|
|
|
selectedIndex: null,
|
|
|
|
startIdx: null,
|
|
|
|
selectedIdx: null
|
|
|
|
},
|
|
|
|
movableViewInfoX: {
|
|
|
|
x: 0,
|
|
|
|
showClass: 'none',
|
|
|
|
data: {}
|
|
|
|
},
|
2021-07-20 15:45:29 +08:00
|
|
|
},
|
|
|
|
onLoad: function (options) {
|
|
|
|
this.getColumnList()
|
|
|
|
try {
|
|
|
|
var isFrist = wx.getStorageSync('isFirst')
|
|
|
|
if (isFrist) {
|
|
|
|
|
|
|
|
} else {
|
|
|
|
wx.setStorage({
|
|
|
|
key: 'isFirst',
|
|
|
|
data: true
|
|
|
|
})
|
|
|
|
wx.showModal({
|
|
|
|
title: '提示',
|
|
|
|
content: '点击列表条目名称可以自定义栏目名称,点击开关可以控制是否在首页展示该条目.',
|
|
|
|
showCancel: false,
|
|
|
|
success(res) {
|
|
|
|
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
} catch (err) {
|
|
|
|
console.log('获取失败')
|
|
|
|
wx.showModal({
|
|
|
|
title: '提示',
|
|
|
|
content: '点击列表条目名称可以自定义栏目名称,点击开关可以控制是否在首页展示该条目.',
|
|
|
|
showCancel: false,
|
|
|
|
success(res) {
|
|
|
|
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
},
|
|
|
|
getColumnList() {
|
|
|
|
wx.showLoading({
|
|
|
|
title: '加载中...',
|
|
|
|
})
|
|
|
|
var _self = this
|
|
|
|
app.http.get(app.urls.getMineColumnList, {
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
var data = res.data
|
|
|
|
wx.hideLoading({})
|
2021-09-01 16:55:20 +08:00
|
|
|
data.forEach((it, index) => {
|
|
|
|
it.phoneOrder = index
|
2021-07-20 15:45:29 +08:00
|
|
|
})
|
|
|
|
_self.setData({
|
|
|
|
menuList: data
|
|
|
|
})
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//保存我的栏目是否显示
|
|
|
|
doSaveColumnDisplay(e) {
|
|
|
|
// configColumnId
|
|
|
|
var id = e.currentTarget.dataset.id
|
|
|
|
var index = e.currentTarget.dataset.index
|
|
|
|
var idx = e.currentTarget.dataset.idx
|
|
|
|
console.log(id + '===' + idx + '===' + index)
|
|
|
|
var _self = this
|
|
|
|
wx.showLoading({
|
|
|
|
title: '保存中...',
|
|
|
|
})
|
|
|
|
app.http.post(app.urls.doSaveColumnDisplay, {
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
},
|
|
|
|
data: {
|
|
|
|
configColumnId: id
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
var setMode = _self.data.menuList[index].configColumnList[idx].configColumnSet
|
|
|
|
if (setMode == '0') {
|
|
|
|
setMode = '1'
|
|
|
|
} else {
|
|
|
|
setMode = '0'
|
|
|
|
}
|
|
|
|
_self.data.menuList[index].configColumnList[idx].configColumnSet = setMode
|
|
|
|
_self.setData({
|
|
|
|
menuList: _self.data.menuList
|
|
|
|
})
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
console.log(err)
|
|
|
|
wx.hideLoading({})
|
|
|
|
wx.showToast({
|
|
|
|
title: '保存失败',
|
|
|
|
icon: 'error'
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//保存我的栏目名称
|
|
|
|
doSaveColumnName() {
|
|
|
|
var _self = this
|
|
|
|
wx.showLoading({
|
|
|
|
title: '修改中...',
|
|
|
|
})
|
|
|
|
app.http.post(app.urls.doSaveColumnName, {
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
},
|
|
|
|
data: {
|
|
|
|
configColumnId: _self.data.curId,
|
|
|
|
configColumnName: _self.data.inputColumnName
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
_self.data.menuList[_self.data.curIndex].configColumnList[_self.data.curIdx].configColumnRemark = _self.data.menuList[_self.data.curIndex].configColumnList[_self.data.curIdx].configColumnName
|
|
|
|
_self.data.menuList[_self.data.curIndex].configColumnList[_self.data.curIdx].configColumnName = _self.data.inputColumnName
|
|
|
|
// 刷新数据
|
|
|
|
_self.setData({
|
|
|
|
menuList: _self.data.menuList,
|
|
|
|
inputColumnName: '',
|
|
|
|
})
|
|
|
|
})
|
|
|
|
.catch(err => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
wx.showToast({
|
|
|
|
title: '修改失败',
|
|
|
|
icon: 'error'
|
|
|
|
})
|
|
|
|
})
|
|
|
|
},
|
|
|
|
showInput(e) {
|
|
|
|
var id = e.currentTarget.dataset.id //栏目
|
|
|
|
var index = e.currentTarget.dataset.index //栏目组
|
|
|
|
var idx = e.currentTarget.dataset.idx //栏目
|
|
|
|
this.setData({
|
|
|
|
isShowInput: true,
|
|
|
|
curId: id,
|
|
|
|
curIndex: index,
|
|
|
|
curIdx: idx
|
|
|
|
})
|
|
|
|
},
|
|
|
|
//保存自定义栏目名称
|
|
|
|
addName(e) {
|
|
|
|
var _self = this
|
|
|
|
_self.setData({
|
|
|
|
isShowInput: false,
|
|
|
|
})
|
|
|
|
_self.doSaveColumnName()
|
|
|
|
},
|
|
|
|
//栏目名称输入监听
|
|
|
|
textInput(e) {
|
|
|
|
this.setData({
|
|
|
|
inputColumnName: e.detail.value
|
|
|
|
})
|
|
|
|
},
|
|
|
|
onHide(e) {
|
|
|
|
this.setData({
|
|
|
|
isShowInput: false
|
|
|
|
})
|
2021-09-01 16:55:20 +08:00
|
|
|
},
|
|
|
|
dragStart: function (event) {
|
|
|
|
var startIndex = event.currentTarget.dataset.index
|
|
|
|
var startIdx = event.currentTarget.dataset.idx
|
|
|
|
console.log('获取到的元素为', this.data.menuList[startIndex].configColumnList[startIdx])
|
|
|
|
// 初始化页面数据
|
|
|
|
var pageInfo = this.data.pageInfo
|
|
|
|
pageInfo.startY = event.touches[0].clientY
|
|
|
|
pageInfo.readyPlaceIndex = startIndex
|
|
|
|
pageInfo.selectedIndex = startIndex
|
|
|
|
pageInfo.selectedIdx = startIdx
|
|
|
|
pageInfo.scrollY = false
|
|
|
|
pageInfo.startIndex = startIndex
|
|
|
|
pageInfo.startIdx = startIdx
|
|
|
|
this.setData({
|
|
|
|
'movableViewInfo.y': pageInfo.startY - (pageInfo.rowHeight / 2)
|
|
|
|
})
|
|
|
|
// 初始化拖动控件数据
|
|
|
|
var movableViewInfo = this.data.movableViewInfo
|
|
|
|
movableViewInfo.data = this.data.menuList[startIndex].configColumnList[startIdx]
|
|
|
|
movableViewInfo.showClass = "inline"
|
|
|
|
|
|
|
|
this.setData({
|
|
|
|
movableViewInfo: movableViewInfo,
|
|
|
|
pageInfo: pageInfo
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
|
|
dragMove: function (event) {
|
|
|
|
var optionList = this.data.menuList
|
|
|
|
var pageInfo = this.data.pageInfo
|
|
|
|
// 计算拖拽距离
|
|
|
|
var movableViewInfo = this.data.movableViewInfo
|
|
|
|
var movedDistance = event.touches[0].clientY - pageInfo.startY
|
|
|
|
movableViewInfo.y = pageInfo.startY - (pageInfo.rowHeight / 2) + movedDistance
|
|
|
|
console.log('移动的距离为', movedDistance)
|
|
|
|
|
|
|
|
// 修改预计放置位置
|
|
|
|
var movedIndex = parseInt(movedDistance / pageInfo.rowHeight)
|
|
|
|
var readyPlaceIndex = pageInfo.startIdx + movedIndex
|
|
|
|
if (readyPlaceIndex < 0) {
|
|
|
|
readyPlaceIndex = 0
|
|
|
|
} else if (readyPlaceIndex >= optionList[pageInfo.selectedIndex].configColumnList.length) {
|
|
|
|
readyPlaceIndex = optionList[pageInfo.selectedIndex].configColumnList.length - 1
|
|
|
|
}
|
|
|
|
|
|
|
|
if (readyPlaceIndex != pageInfo.selectedIdx) {
|
|
|
|
var selectedData = optionList[pageInfo.selectedIndex].configColumnList[pageInfo.selectedIdx]
|
|
|
|
|
|
|
|
optionList[pageInfo.selectedIndex].configColumnList.splice(pageInfo.selectedIdx, 1)
|
|
|
|
optionList[pageInfo.selectedIndex].configColumnList.splice(readyPlaceIndex, 0, selectedData)
|
|
|
|
pageInfo.selectedIdx = readyPlaceIndex
|
|
|
|
}
|
|
|
|
// 移动movableView
|
|
|
|
pageInfo.readyPlaceIndex = readyPlaceIndex
|
|
|
|
// console.log('移动到了索引', readyPlaceIndex, '选项为', optionList[readyPlaceIndex])
|
|
|
|
|
|
|
|
this.setData({
|
|
|
|
movableViewInfo: movableViewInfo,
|
|
|
|
menuList: optionList,
|
|
|
|
pageInfo: pageInfo
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
|
|
dragEnd: function (event) {
|
|
|
|
// 重置页面数据
|
|
|
|
var pageInfo = this.data.pageInfo
|
|
|
|
var order = order = pageInfo.readyPlaceIndex + 1
|
|
|
|
this.doSaveOrder(pageInfo.selectedIndex)
|
|
|
|
pageInfo.readyPlaceIndex = null
|
|
|
|
pageInfo.startY = null
|
|
|
|
pageInfo.selectedIndex = null
|
|
|
|
pageInfo.selectedIdx = null
|
|
|
|
pageInfo.startIndex = null
|
|
|
|
pageInfo.startIdx = null
|
|
|
|
pageInfo.scrollY = true
|
|
|
|
// 隐藏movableView
|
|
|
|
var movableViewInfo = this.data.movableViewInfo
|
|
|
|
movableViewInfo.showClass = 'none'
|
|
|
|
|
|
|
|
this.setData({
|
|
|
|
pageInfo: pageInfo,
|
|
|
|
movableViewInfo: movableViewInfo
|
|
|
|
})
|
|
|
|
},
|
|
|
|
dragStartX(e) {
|
|
|
|
var startIndex = e.currentTarget.dataset.index
|
|
|
|
var startIdx = e.currentTarget.dataset.idx
|
|
|
|
console.log('获取到的元素为', this.data.menuList[startIndex].configColumnList[startIdx])
|
|
|
|
// 初始化页面数据
|
|
|
|
var pageInfo = this.data.pageInfoX
|
|
|
|
pageInfo.startX = e.touches[0].clientX
|
|
|
|
console.log(pageInfo.startX)
|
|
|
|
pageInfo.readyPlaceIndex = startIndex
|
|
|
|
pageInfo.selectedIndex = startIndex
|
|
|
|
pageInfo.selectedIdx = startIdx
|
|
|
|
pageInfo.scrollX = false
|
|
|
|
pageInfo.startIndex = startIndex
|
|
|
|
pageInfo.startIdx = startIdx
|
|
|
|
this.setData({
|
|
|
|
'movableViewInfoX.x': pageInfo.startX - (pageInfo.rowWidth / 2)
|
|
|
|
})
|
|
|
|
// 初始化拖动控件数据
|
|
|
|
var movableViewInfo = this.data.movableViewInfoX
|
|
|
|
movableViewInfo.data = this.data.menuList[startIndex].configColumnList[startIdx]
|
|
|
|
movableViewInfo.showClass = "inline"
|
|
|
|
console.log(movableViewInfo)
|
|
|
|
this.setData({
|
|
|
|
movableViewInfoX: movableViewInfo,
|
|
|
|
pageInfoX: pageInfo
|
|
|
|
})
|
|
|
|
},
|
|
|
|
dragMoveX(event) {
|
|
|
|
var optionList = this.data.menuList
|
|
|
|
var pageInfo = this.data.pageInfoX
|
|
|
|
// 计算拖拽距离
|
|
|
|
var movableViewInfo = this.data.movableViewInfoX
|
|
|
|
var movedDistance = event.touches[0].clientX - pageInfo.startX
|
|
|
|
movableViewInfo.x = pageInfo.startX - (pageInfo.rowWidth / 2) + movedDistance
|
|
|
|
console.log('移动的距离为', movedDistance)
|
|
|
|
|
|
|
|
// 修改预计放置位置
|
|
|
|
var movedIndex = parseInt(movedDistance / pageInfo.rowWidth)
|
|
|
|
var readyPlaceIndex = pageInfo.startIdx + movedIndex
|
|
|
|
if (readyPlaceIndex < 0) {
|
|
|
|
readyPlaceIndex = 0
|
|
|
|
} else if (readyPlaceIndex >= optionList[pageInfo.selectedIndex].configColumnList.length) {
|
|
|
|
readyPlaceIndex = optionList[pageInfo.selectedIndex].configColumnList.length - 1
|
|
|
|
}
|
|
|
|
|
|
|
|
if (readyPlaceIndex != pageInfo.selectedIdx) {
|
|
|
|
var selectedData = optionList[pageInfo.selectedIndex].configColumnList[pageInfo.selectedIdx]
|
|
|
|
|
|
|
|
optionList[pageInfo.selectedIndex].configColumnList.splice(pageInfo.selectedIdx, 1)
|
|
|
|
optionList[pageInfo.selectedIndex].configColumnList.splice(readyPlaceIndex, 0, selectedData)
|
|
|
|
pageInfo.selectedIdx = readyPlaceIndex
|
|
|
|
}
|
|
|
|
// 移动movableView
|
|
|
|
pageInfo.readyPlaceIndex = readyPlaceIndex
|
|
|
|
// console.log('移动到了索引', readyPlaceIndex, '选项为', optionList[readyPlaceIndex])
|
|
|
|
|
|
|
|
this.setData({
|
|
|
|
movableViewInfoX: movableViewInfo,
|
|
|
|
menuList: optionList,
|
|
|
|
pageInfoX: pageInfo
|
|
|
|
})
|
|
|
|
},
|
|
|
|
dragEndX(e) {
|
|
|
|
// 重置页面数据
|
|
|
|
var pageInfo = this.data.pageInfoX
|
|
|
|
// var order = order = pageInfo.readyPlaceIndex + 1
|
|
|
|
// this.doSaveOrder(order, this.data.movableViewInfo.data.configColumnId)
|
|
|
|
pageInfo.readyPlaceIndex = null
|
|
|
|
pageInfo.startX = null
|
|
|
|
pageInfo.selectedIndex = null
|
|
|
|
pageInfo.selectedIdx = null
|
|
|
|
pageInfo.startIndex = null
|
|
|
|
pageInfo.startIdx = null
|
|
|
|
pageInfo.scrollY = true
|
|
|
|
// 隐藏movableView
|
|
|
|
var movableViewInfo = this.data.movableViewInfoX
|
|
|
|
movableViewInfo.showClass = 'none'
|
|
|
|
|
|
|
|
this.setData({
|
|
|
|
pageInfoX: pageInfo,
|
|
|
|
movableViewInfoX: movableViewInfo
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
|
|
//保存排序
|
|
|
|
doSaveOrder(index) {
|
|
|
|
wx.showLoading({
|
|
|
|
title: '保存中...',
|
|
|
|
})
|
|
|
|
var _self = this
|
|
|
|
|
|
|
|
var orders = {}
|
|
|
|
_self.data.menuList[index].configColumnList.forEach((it, index) => {
|
|
|
|
orders[it.configColumnId] = index + 1
|
|
|
|
})
|
|
|
|
app.http.post(app.urls.doOrderColumn, {
|
|
|
|
header: {
|
|
|
|
token: app.globalData.token
|
|
|
|
},
|
|
|
|
data: {
|
|
|
|
configColumnOrder: orders
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then(res => {
|
|
|
|
wx.hideLoading({})
|
|
|
|
})
|
|
|
|
.catch(err => {})
|
|
|
|
},
|
|
|
|
onChange(e) {
|
|
|
|
this.setData({
|
|
|
|
activeNames: e.detail
|
|
|
|
})
|
2021-07-20 15:45:29 +08:00
|
|
|
}
|
|
|
|
})
|