UNPKG

vue-django

Version:

个人实验项目, 本框架的目标是借鉴并超越django admin的自动化思想, 实现UI前端的极简快速定制开发

113 lines (109 loc) 3.61 kB
/** * Created by denishuang on 2017/7/27. */ import Qs from 'qs' import { format } from 'date-fns' function joinErrors(errors) { let es = {} for (let n in errors) { es[n] = errors[n].join("") } return es } function formatDates(data) { let rs = {} for (let n in data) { let d = data[n] if (d instanceof Date) { rs[n] = format(d, 'YYYY-MM-DD') } else { rs[n] = d } } return rs } export default { data (){ return { loading: false, loadingText: '数据加载中...', server_response_error: undefined } }, // computed: { // isTagsView() { // // wayky add : 判断是否tagsView作tab导航 // return !!this.$store.state.tagsView // } // }, methods: { joinErrors, submitData: function (url, data, successMsg, isCreate) { this.loading = true this.errors = {} let action = isCreate ? this.$http.post : this.$http.put let dt = this.restStyle ? data : Qs.stringify(formatDates(data)) let promise = action(url, dt).then(({data}) => { this.loading = false if (!this.restStyle && data.code != 0) { return Promise.reject({code: 400, msg: data.data.errors}) } this.$message({message: successMsg || '提交成功', type: 'success'}) return data }).catch(this.onServerResponseError) return promise }, alertError(error){ this.$message({ message: `${error.code}错误:${error.msg}`, type: 'error' }) }, onServerResponseError: function (error) { this.loading = false if (error == 'cancel') { // confirm dialog cancel ? return } if ([404,403,405,406,429, 537].includes(error.code) && error.msg.detail) { error.msg = error.msg.detail } console.error(error) if (error.code === 400) { // this.errors = this.formErrors = joinErrors(error.msg) } else if (error.code === 401) { this.$store.state.bus.$emit('user-logout') } else if (error.code === 502) { this.alertError('网关错误') } else if (error instanceof Error) { this.alertError({code: error.name, msg: error.message}) } else { this.alertError(error) } return error // this.server_response_error = error }, // // resolveRoutePath(path) { // return path // // wayky add : 根据isTagsView自动给路由路径处理结尾的 / , tagView 组件的去掉结尾的 / // if (this.isTagsView) { // return path // } else { // if (path.indexOf('?') !== -1) { // const p = path.split('?') // return `${p[0]}/?${p[1]}` // } else { // return `${path}/` // } // } // }, // // resolveCurrentTagLabel(path, title) { // // wayky add : 根据isTagsView设置当前的Tag标签 // if (this.isTagsView) { // this.$store.dispatch('setCurrentTagLabel', { path, title}) // // 同时修改 // this.$store.dispatch('updateLabelInVisitedViews', { path, title}) // } // } } }