当前位置: 首页 > news >正文

做网站侵权培训网站建设方案模板

做网站侵权,培训网站建设方案模板,网站制作公司 佛山,做门户网站用什么技术好vuex缓存所有字典项 背景vuex管理所有字典项调用字典接口处理字典项数据的filter页面中使用字典 背景 每次用到字典都需要通过对应的字典type调用一次字典接口#xff0c;当一个页面用到字典项很多时#xff0c;接口请求炒鸡多#xff0c;会导致接口响应超时。 本篇文章改为… vuex缓存所有字典项 背景vuex管理所有字典项调用字典接口处理字典项数据的filter页面中使用字典 背景 每次用到字典都需要通过对应的字典type调用一次字典接口当一个页面用到字典项很多时接口请求炒鸡多会导致接口响应超时。 本篇文章改为调用接口将所有字典项请求回存到vuex中需要时通过过滤数据的方式解决这一问题。 vuex管理所有字典项 新建src\store\modules\dict.js文件dict.js完整代码 const state {// 存储所有字典项allDict: new Array(), };const mutations {SET_ALL_DICT: (state, data) {state.allDict data;},CLEAN_ALL_DICT: (state) {state.allDict new Array();}, };const actions {setAllDict({ commit }, data) {commit(SET_ALL_DICT, data);},cleanAllDict({ commit }) {commit(CLEAN_ALL_DICT);}, };export default {state,mutations,actions, }; 在src\store\index.js中引入dict.js import Vue from vue; import Vuex from vuex; import app from ./modules/app; import user from ./modules/user; import tagsView from ./modules/tagsView; import permission from ./modules/permission; import settings from ./modules/settings; import getters from ./getters; import businessDictAll from ./modules/businessDictAll; //引入Vue.use(Vuex);const store new Vuex.Store({modules: {app,user,tagsView,permission,settings,businessDictAll,},getters, });export default store; 4.src\store\getter.js中添加allDict const getters {sidebar: state state.app.sidebar,size: state state.app.size,device: state state.app.device,dict: state state.dict.dict,visitedViews: state state.tagsView.visitedViews,cachedViews: state state.tagsView.cachedViews,token: state state.user.token,avatar: state state.user.avatar,name: state state.user.name,introduction: state state.user.introduction,roles: state state.user.roles,permissions: state state.user.permissions,permission_routes: state state.permission.routes,topbarRouters:state state.permission.topbarRouters,defaultRoutes:state state.permission.defaultRoutes,sidebarRouters:state state.permission.sidebarRouters,allDict: state state.businessDictAll.allDict, //所有字典项 } export default getters 调用字典接口 我这块在src\store\modules\user.js中的的getInfo后调用的字典接口并存储字典数据我放这的目的是当页面刷新会调用getInfo调用成功后更新字典数据也可以放到登录成功后这种情况如果想要刷新字典数据只能退出重新登录。 关键代码 // 获取用户接口下的代码 let queryParams {pageNum: 1,pageSize: 100000, //这块完全是因为后端不想再开接口用的之前分页的接口所以传了巨大个值 }; listData(queryParams).then((response) {let dictData response.rows;store.commit(SET_ALL_DICT, dictData); });处理字典项数据的filter src\filters\dict.js完整代码 import store from /store;const allDict {// 处理select这类表单项数据// 如果有字典名dictName则过滤字典,若没有取当前表单项的option属性(这块是通过接口返回的数据字段)dictOption: function (formItem) {if (formItem.dictName) {let type formItem.dictName;let dictList [];if (type typeof type string) {const dicts store.getters store.getters.allDict;dictList dicts.filter((item) item.dictType type);} else {console.error(字典获取失败);}return dictList;} else {return formItem.option;}},// table中根据dictValue字段匹配对应dictLabel值dictAll: function (value, type) {let dictList [];let foundItem {};if (type typeof type string) {const dicts store.getters store.getters.allDict;dictList dicts.filter((item) item.dictType type);foundItem dictList.find((item) item.dictValue value);} else {console.error(字典获取失败);}//如果过滤到了就返回dictLabel,// 否则判断当前是否有返回数据,如果有返回的数据,直接将数据返回// 否则接口没返回数据给table显示-(可根据需要去处理,我这块是因为table中数据为空要显示-)return foundItem ? foundItem.dictLabel : value ? value : -;}, };export default allDict; 将过滤方法注册到全局 import dict from ./filters/dict; // 注册所有过滤方法 for (let key in dict) {Vue.filter(key, dict[key]); }页面中使用字典 table中使用 baseTable:columnscolumns:loadingloading:tableDatatableData:totaltotal:queryParamsqueryParams:tableHtableHgetListgetListtemplate #modeCoderecord!-- 调用filter方法,record.row.modeCode为当前接口返回值,dictAll为全局过滤方法,mode_code为字典项名 --span{{ record.row.modeCode | dictAll(mode_code) }}/span/templatetemplate #actionrecordel-buttonsizeminitypetexticonel-icon-editclicktableAction(update, record.row)编辑/el-buttonel-buttonsizeminitypetexticonel-icon-deleteclicktipClick删除/el-button/template表单组件select和radio使用 templatedivel-form:modelformModel:rulesrulesrefbaseForm:label-width120pxel-row :guttergutterdiv v-for(item, index) in formData :keyindexel-col :spanitem.span || 8 v-if!item.hiddenel-form-item :labelitem.label :propitem.name!-- 省略组件其他表单项(具体可查看组件那篇) --!-- 单选框 --el-radio-groupv-ifitem.type radiov-modelformModel[item.name]:disableditem.disabled || !isUpdateinputradioChangeel-radiov-forlist in optionDicts(item):keylist.value || list.dictValue:labellist.value || list.dictValue{{ list.label }}/el-radio/el-radio-group!-- select选择器 --el-selectsizesmallv-ifitem.type selectfilterable:disableditem.disabled || !isUpdatev-modelformModel[item.name]:placeholderitem.disabled ? : 请选择 item.label:multipleitem.multiplestylewidth: 100%changechange(item.name, formModel[item.name])el-optionv-forlist in optionDicts(item):keylist.value || list.dictValue:labellist.label || list.dictLabel:valuelist.value || list.dictValue//el-select!-- 自定义 --template v-ifitem.type slot #defaultslot :nameitem.name/slot/template/el-form-item/el-col/div/el-row/el-form/div /templatemethods: {optionDicts(item) {//通过this.$options.filters调用处理表单项的过滤方法return this.$options.filters[dictOption](item); } }// 下面是给表单组件的栗子数据 data() {return {formItems: [{label: XXX模式,type: select,key: modeCode,placeholder: 请选择XXX模式,dictName: mode_code, },]} }
http://www.eeditor.cn/news/123311/

相关文章:

  • 淮北建网站费用基金网站模板
  • 南通网站建设心得徽章设计制作小程序
  • 山东网站开发网络公司国家工商网企业查询官网
  • 阿里巴巴网站广告怎么做wordpress插件卸载
  • 上海营销型网站标准app网站开发框架
  • 哈尔滨做网站哪家好广州番禺职业技术学院
  • 大型门户网站开发费用上海网页设计公司山东济南兴田德润简介
  • 网站菜单导航制作教程哈尔滨关键词优化效果
  • 昆明网站建设一条龙服务广州住房和建设局网站
  • 手机网站在后台怎么做编辑什么网站ghost做的好
  • 做网站赤峰怎么制作网站封面
  • 投资公司网站模板郑州关键词网站优化排名
  • 北京定制网站建设公司学校网站建设 效果
  • 网站设计合同网页版游戏排行榜枪
  • 做网站复杂吗wordpress页面半透明
  • 泰和县城乡建设局网站wordpress 多主题插件
  • 下载建设银行官方网站下载安装做静态网站接单
  • 做网站要收订金吗电子购物网站建设
  • 上海网站建设公司联系方式网站上的图文介绍怎么做的
  • 临安市住房和建设局网站建筑公司取名参考
  • 陕西做网站电话男女做羞羞的事视频网站
  • 公司网站建设建议网上下载的html模板怎么修改
  • 建设银行网站的安全措施门户网站建设询价公告
  • 徐州如何选择网站建设福建省建设执业注册与管理中心网站
  • 怎么知道网站被k住房与建设管理局
  • 济南集团网站建设流程开放平台供稿人计划
  • 网站建设辶首选金手指十五directory wordpress
  • 滨州建网站公司做爰全过程免费的视频网站有声音
  • 域名服务器ip查询网站如何用ps做网站导航条
  • 莱芜网站建设公司罗村网站制作