提交 9a0e8d2d 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

前端utils中封装了前端获取字典并缓存到内存的方法getDict

上级 d70599f6
...@@ -78,7 +78,7 @@ func UpdateSysDictionary(c *gin.Context) { ...@@ -78,7 +78,7 @@ func UpdateSysDictionary(c *gin.Context) {
func FindSysDictionary(c *gin.Context) { func FindSysDictionary(c *gin.Context) {
var sysDictionary model.SysDictionary var sysDictionary model.SysDictionary
_ = c.ShouldBindQuery(&sysDictionary) _ = c.ShouldBindQuery(&sysDictionary)
err, resysDictionary := service.GetSysDictionary(sysDictionary.ID) err, resysDictionary := service.GetSysDictionary(sysDictionary.Type, sysDictionary.ID)
if err != nil { if err != nil {
response.FailWithMessage(fmt.Sprintf("查询失败,%v", err), c) response.FailWithMessage(fmt.Sprintf("查询失败,%v", err), c)
} else { } else {
......
package service package service
import ( import (
"errors"
"gin-vue-admin/global" "gin-vue-admin/global"
"gin-vue-admin/model" "gin-vue-admin/model"
"gin-vue-admin/model/request" "gin-vue-admin/model/request"
...@@ -13,6 +14,9 @@ import ( ...@@ -13,6 +14,9 @@ import (
// @return err error // @return err error
func CreateSysDictionary(sysDictionary model.SysDictionary) (err error) { func CreateSysDictionary(sysDictionary model.SysDictionary) (err error) {
if (!global.GVA_DB.First(&model.SysDictionary{}, "type = ?", sysDictionary.Type).RecordNotFound()) {
return errors.New("存在相同的type,不允许创建")
}
err = global.GVA_DB.Create(&sysDictionary).Error err = global.GVA_DB.Create(&sysDictionary).Error
return err return err
} }
...@@ -42,7 +46,16 @@ func UpdateSysDictionary(sysDictionary *model.SysDictionary) (err error) { ...@@ -42,7 +46,16 @@ func UpdateSysDictionary(sysDictionary *model.SysDictionary) (err error) {
"Status": sysDictionary.Status, "Status": sysDictionary.Status,
"Desc": sysDictionary.Desc, "Desc": sysDictionary.Desc,
} }
err = global.GVA_DB.Where("id = ?", sysDictionary.ID).First(&dict).Updates(sysDictionaryMap).Error db := global.GVA_DB.Where("id = ?", sysDictionary.ID).First(&dict)
if dict.Type == sysDictionary.Type {
err = db.Updates(sysDictionaryMap).Error
} else {
if (!global.GVA_DB.First(&model.SysDictionary{}, "type = ?", sysDictionary.Type).RecordNotFound()) {
return errors.New("存在相同的type,不允许创建")
} else {
err = db.Updates(sysDictionaryMap).Error
}
}
return err return err
} }
...@@ -53,8 +66,8 @@ func UpdateSysDictionary(sysDictionary *model.SysDictionary) (err error) { ...@@ -53,8 +66,8 @@ func UpdateSysDictionary(sysDictionary *model.SysDictionary) (err error) {
// @return error // @return error
// @return SysDictionary SysDictionary // @return SysDictionary SysDictionary
func GetSysDictionary(id uint) (err error, sysDictionary model.SysDictionary) { func GetSysDictionary(Type string, Id uint) (err error, sysDictionary model.SysDictionary) {
err = global.GVA_DB.Where("id = ?", id).Preload("SysDictionaryDetails").First(&sysDictionary).Error err = global.GVA_DB.Where("type = ? OR id = ?", Type, Id).Preload("SysDictionaryDetails").First(&sysDictionary).Error
return return
} }
......
...@@ -4,7 +4,7 @@ import VuexPersistence from 'vuex-persist' ...@@ -4,7 +4,7 @@ import VuexPersistence from 'vuex-persist'
import { user } from "@/store/module/user" import { user } from "@/store/module/user"
import { router } from "@/store/module/router" import { router } from "@/store/module/router"
import { dictionary } from "@/store/module/dictionary"
Vue.use(Vuex) Vue.use(Vuex)
...@@ -16,7 +16,8 @@ const vuexLocal = new VuexPersistence({ ...@@ -16,7 +16,8 @@ const vuexLocal = new VuexPersistence({
export const store = new Vuex.Store({ export const store = new Vuex.Store({
modules: { modules: {
user, user,
router router,
dictionary
}, },
plugins: [vuexLocal.plugin] plugins: [vuexLocal.plugin]
}) })
\ No newline at end of file
import { findSysDictionary } from '@/api/sysDictionary'
export const dictionary = {
namespaced: true,
state: {
dictionaryMap: {},
},
mutations: {
setDictionaryMap(state, dictionaryMap) {
state.dictionaryMap = { ...state.dictionaryMap, ...dictionaryMap }
},
},
actions: {
// 从后台获取动态路由
async getDictionary({ commit, state }, type) {
if (state.dictionaryMap[type]) {
return state.dictionaryMap[type]
} else {
const res = await findSysDictionary({ type })
if (res.code == 0) {
const dictionaryMap = {}
const dict = []
res.data.resysDictionary.sysDictionaryDetails && res.data.resysDictionary.sysDictionaryDetails.map(item => {
dict.push({
label: item.label,
value: item.value
})
})
dictionaryMap[res.data.resysDictionary.type] = dict
commit("setDictionaryMap", dictionaryMap)
return state.dictionaryMap[type]
}
}
}
},
getters:{
getDictionary(state){
return state.dictionaryMap
}
}
}
\ No newline at end of file
import { store } from '@/store/index'
export const getDict = async (type) => {
await store.dispatch("dictionary/getDictionary", type)
return store.getters["dictionary/getDictionary"][type]
}
\ No newline at end of file
...@@ -114,10 +114,9 @@ import { ...@@ -114,10 +114,9 @@ import {
updateSysDictionary, updateSysDictionary,
findSysDictionary, findSysDictionary,
getSysDictionaryList getSysDictionaryList
} from "@/api/sys_dictionary"; // 此处请自行替换地址 } from "@/api/sysDictionary"; // 此处请自行替换地址
import { formatTimeToStr } from "@/utils/data"; import { formatTimeToStr } from "@/utils/data";
import infoList from "@/components/mixins/infoList"; import infoList from "@/components/mixins/infoList";
export default { export default {
name: "SysDictionary", name: "SysDictionary",
mixins: [infoList], mixins: [infoList],
...@@ -239,7 +238,7 @@ export default { ...@@ -239,7 +238,7 @@ export default {
this.dialogFormVisible = true; this.dialogFormVisible = true;
} }
}, },
created() { async created() {
this.getTableData(); this.getTableData();
} }
}; };
......
...@@ -113,7 +113,7 @@ import { ...@@ -113,7 +113,7 @@ import {
updateSysDictionaryDetail, updateSysDictionaryDetail,
findSysDictionaryDetail, findSysDictionaryDetail,
getSysDictionaryDetailList getSysDictionaryDetailList
} from "@/api/sys_dictionary_detail"; // 此处请自行替换地址 } from "@/api/sysDictionaryDetail"; // 此处请自行替换地址
import { formatTimeToStr } from "@/utils/data"; import { formatTimeToStr } from "@/utils/data";
import infoList from "@/components/mixins/infoList"; import infoList from "@/components/mixins/infoList";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册