You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
2.7 KiB
123 lines
2.7 KiB
import { getClassifyList, changeToIssue } from "../../utils/api"
|
|
|
|
Page({
|
|
data: {
|
|
textareaValue: "",
|
|
cascaderVisible: false,
|
|
selectedClassify: {
|
|
value: "",
|
|
label: ""
|
|
},
|
|
cascaderOptions: [],
|
|
topicId: "",
|
|
timer: ""
|
|
},
|
|
onShow () {
|
|
|
|
},
|
|
onLoad (options) {
|
|
this.getClassifyList()
|
|
this.setData({
|
|
topicId: options.topicId
|
|
})
|
|
},
|
|
// textarea v-model
|
|
bindTextareaValue (e) {
|
|
this.setData({
|
|
textareaValue: e.detail.value
|
|
})
|
|
},
|
|
// 选择分类
|
|
chooseClassify () {
|
|
this.setData({
|
|
cascaderVisible: true
|
|
})
|
|
},
|
|
// cascader 关闭回调
|
|
onClose () {
|
|
this.setData({
|
|
cascaderVisible: false
|
|
})
|
|
},
|
|
// cascader change回调
|
|
onChange (e) {
|
|
const selectedClassify = {
|
|
value: e.detail.options[e.detail.options.length - 1].value || "",
|
|
label: e.detail.options[e.detail.options.length - 1].label || ""
|
|
}
|
|
this.setData({
|
|
selectedClassify
|
|
})
|
|
},
|
|
// 获取分类列表
|
|
getClassifyList () {
|
|
getClassifyList().then(res => {
|
|
console.log("分类列表", res)
|
|
this.filterClassifyList(res.data)
|
|
this.setData({
|
|
cascaderOptions: res.data
|
|
})
|
|
}).catch(err => {
|
|
console.log(err)
|
|
})
|
|
},
|
|
// 递归分类列表
|
|
filterClassifyList (classifyList) {
|
|
classifyList.forEach(item => {
|
|
item.label = item.categoryName
|
|
item.value = item.id
|
|
if (item.children && item.children.length > 0) {
|
|
this.filterClassifyList(item.children)
|
|
}
|
|
})
|
|
},
|
|
debounceChangeToIssue () {
|
|
clearTimeout(this.data.timer)
|
|
this.data.timer = setTimeout(() => {
|
|
this.changeToIssue()
|
|
}, 500)
|
|
},
|
|
// 话题转议题
|
|
changeToIssue () {
|
|
if (this.data.textareaValue === "") {
|
|
wx.showToast({
|
|
title: "请输入处理意见",
|
|
icon: "none",
|
|
duration: 2000
|
|
})
|
|
return false
|
|
} else if (this.data.selectedClassify.label === "") {
|
|
wx.showToast({
|
|
title: "请选择分类",
|
|
icon: "none",
|
|
duration: 2000
|
|
})
|
|
return false
|
|
}
|
|
const para = {
|
|
id: this.data.topicId,
|
|
categoryId: this.data.selectedClassify.value,
|
|
advice: this.data.textareaValue
|
|
}
|
|
wx.showLoading({
|
|
title: "加载中"
|
|
})
|
|
changeToIssue(para).then(res => {
|
|
wx.hideLoading()
|
|
console.log("话题转议题", res)
|
|
wx.showToast({
|
|
title: "话题已转为议题",
|
|
icon: "none",
|
|
duration: 2000
|
|
})
|
|
const pages = getCurrentPages()
|
|
const page = pages[pages.length - 3]
|
|
page.pullRefreshGetTopicList()
|
|
wx.navigateBack({
|
|
delta: 2
|
|
})
|
|
}).catch(err => {
|
|
console.log(err)
|
|
})
|
|
}
|
|
})
|