|
|
@@ -17,6 +17,9 @@ export default {
|
|
|
listState: {
|
|
|
loading: false,
|
|
|
finished: true
|
|
|
+ },
|
|
|
+ disabled: {
|
|
|
+ save: false
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
@@ -52,21 +55,30 @@ export default {
|
|
|
this.loading.data = false
|
|
|
return pm
|
|
|
},
|
|
|
- async inAttrData(item) {
|
|
|
+ async inAttrData(item, index) {
|
|
|
+ let pm
|
|
|
try {
|
|
|
- await this.onTipAttrState()
|
|
|
+ let b = index === undefined
|
|
|
+ if (b) {
|
|
|
+ await this.onTipAttrState()
|
|
|
+ }
|
|
|
let query = {
|
|
|
topic_id: item.id
|
|
|
}
|
|
|
let res = await api.apiGetVolumeInfo(query)
|
|
|
let data = res.data
|
|
|
- this.selectData(data)
|
|
|
+ this.selectData(data, index)
|
|
|
+ pm = Promise.resolve(res)
|
|
|
} catch (err) {
|
|
|
+ pm = Promise.reject(err)
|
|
|
+ if (err) {
|
|
|
+ this.data = null
|
|
|
+ }
|
|
|
console.warn(err)
|
|
|
}
|
|
|
+ return pm
|
|
|
},
|
|
|
- async btnSubmit() {
|
|
|
- this.loading.submit = true
|
|
|
+ async btnSave () {
|
|
|
let ld = null
|
|
|
try {
|
|
|
await this.$dialog.confirm({
|
|
|
@@ -74,22 +86,55 @@ export default {
|
|
|
message: '确认保存吗?',
|
|
|
})
|
|
|
ld = this.$toast.loading({ message: '保存中...', duration: 0 })
|
|
|
- let configKey = ['detail_id', 'content', 'layout_align', 'layout_inline', 'required', 'title', 'type', 'val']
|
|
|
+ let res = await this.btnSubmit(true)
|
|
|
+ let data = res.data
|
|
|
+ let index = null
|
|
|
+ let result = this.data.result
|
|
|
+ this.dataItem && result.some((item, i) => {
|
|
|
+ if (item === this.dataItem) {
|
|
|
+ index = i
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ await Promise.all([
|
|
|
+ this.inAttrData({ id: data.topic_id }, index),
|
|
|
+ this.inData()
|
|
|
+ ])
|
|
|
+ this.$toast.success(res.message)
|
|
|
+ } catch (err) {
|
|
|
+ }
|
|
|
+ ld && ld.clear()
|
|
|
+ },
|
|
|
+ async btnSubmit(b) {
|
|
|
+ let pm
|
|
|
+ this.loading.submit = true
|
|
|
+ let ld = null
|
|
|
+ try {
|
|
|
+ ld = !b && this.$toast.loading({ message: '保存中...', duration: 0 })
|
|
|
+ let configKey = ['detail_id', 'content', 'layout_align', 'layout_inline', 'required', 'title', 'type', 'val', 'visual']
|
|
|
let configTypeArr = ['checkbox']
|
|
|
let obj = JSON.parse(JSON.stringify(this.data))
|
|
|
- obj.result = obj.result.map(item => {
|
|
|
- let rst = {}
|
|
|
+ // 增加删除状态
|
|
|
+ obj.removeResult && obj.removeResult.forEach(item => item.visual = 0)
|
|
|
+ let result = [].concat(obj.result, obj.removeResult || [])
|
|
|
+ obj.result = result.map((item, rank) => {
|
|
|
+ let rst = { rank }
|
|
|
configKey.forEach(k => rst[k] = item[k])
|
|
|
rst.val = configTypeArr.indexOf(item.type) !== -1 ? [] : ''
|
|
|
return rst
|
|
|
})
|
|
|
+ delete obj.removeResult
|
|
|
+ delete this.data.removeResult
|
|
|
let res = await api.apiPostVolumeResult(obj)
|
|
|
- this.$toast.success(res.message)
|
|
|
+ !b && this.$toast.success(res.message)
|
|
|
+ pm = Promise.resolve(res)
|
|
|
} catch (error) {
|
|
|
+ pm = Promise.reject(error)
|
|
|
console.log(error)
|
|
|
}
|
|
|
ld && ld.clear()
|
|
|
this.loading.submit = false
|
|
|
+ return pm
|
|
|
}
|
|
|
}
|
|
|
}
|