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

企业网站备案资料填写单c 微网站开发

企业网站备案资料填写单,c 微网站开发,学服装设计培训哪里好,网站开发和设计如何合作需求 页面中上面搜索项有获取字典枚举接口#xff0c;table表格中也有根据key匹配字典中的value 方案一 需要做到的要求 这里上面下拉列表是一个组件获取的字典#xff0c;下面也是通过字典匹配#xff0c;所以尽量统一封装一个函数#xff0c;每个组件保证最少变动tabl…需求 页面中上面搜索项有获取字典枚举接口table表格中也有根据key匹配字典中的value 方案一 需要做到的要求 这里上面下拉列表是一个组件获取的字典下面也是通过字典匹配所以尽量统一封装一个函数每个组件保证最少变动table表格中如果filters中更改,会获取多次接口—使用闭包让只获取一次接口节省性能filter中又是必须同步函数异步函数报错所以不能使用async,await最好请求接口之后存储起来下次直接拿不用请求了 综上 utils/dictionary.js import { getDicValue } from /api/systemManage import store from /store /*** 获取字典数据* param {Boolean} hasAllOption 是否包含全部选项*/ export function getDicValueList(dictClassCode, hasAllOption true) {const dictionaryCache store.state.dictionary.dictionaryCache || {}return new Promise((resolve, reject) {let optionList []if (dictionaryCache[dictClassCode]) {const dicList JSON.parse(JSON.stringify(dictionaryCache[dictClassCode]))if (hasAllOption) {optionList [ { value: , label: 全部 }, ...dicList]} else {optionList [...dicList]}resolve(optionList)} else {getDicValue(dictClassCode).then(response {console.log(字典调用, dictClassCode)const dicList response.value || []store.dispatch(dictionary/setDictionaryCache, { key: dictClassCode, value: dicList })if (hasAllOption) {optionList [ { value: , label: 全部 }, ...dicList]} else {optionList [...dicList]}resolve(optionList)}).catch(error {reject([])})}}) }/*** 获取字典数据并返回一个闭包函数* param {string} dictClassCode 字典类代码* param {string} noTitle 默认值当找不到匹配项时返回* returns {PromiseFunction} 返回一个闭包函数该函数可以根据 value 获取 label*/ export async function getDicValueName(dictClassCode, noTitle --) {try {const response await getDicValueList(dictClassCode, false)const listData response || []return (value) {let label noTitlelistData.some(item {if (item.value value) {label item.labelreturn true}})return label}} catch (err) {console.error(err)return (value) noTitle} }下拉框组件 created () {this.getOptionLists()},getOptionLists() {if (this.dictClassCode) {getDicValueList(this.dictClassCode).then(res {this.optionLists res})} else {this.optionLists this.options}},table组件中 span{{ filterStateName(scope.row.state) }}/spanimport { getDicValueName } from /utils/dictionarycreated() {this.initDictionary()},methods: { async initDictionary() {try {this.filterStateName await getDicValueName(DC_DICTIONARY_STATE)} catch (error) {console.error(Failed to fetch dictionary:, error)this.filterStateName (value) --}},}问题 但是这种因为一进页面这两个组件都是去获取字典所以还是从接口拿的数据会调用两次接口 方案二建议 方案接下来优化可以通过路由导航预加载先获取字典之后在加载页面 router.js // 预加载字典 export function preloadDictionary(dictClassCodeList) {const pList []dictClassCodeList.forEach(dictClassCode {const p getDicValueList(dictClassCode)pList.push(p)})return Promise.all(pList) }// 预加载字典 router.beforeEach((to, from, next) {if(to.meta to.meta.dictClassCodeList to.meta.dictClassCodeList.length 0) {preloadDictionary(to.meta.dictClassCodeList).then(res {next()})} else {next()} })总结其实这里都可以规定直接预加载字典到页面直接使用加载后的字典注册个全局filters就行根本不用上面那些先都记录上后期根据需求灵活应用吧
http://www.dnsts.com.cn/news/51078.html

相关文章:

  • 中国电力建设集团公司网站网站备案号查询网
  • 萍乡做网站的公司有哪些html页面转WordPress文章
  • 用ps做零食网站模板网站用户体验存在问题
  • 不想让网站保存密码怎么做原生app开发工具
  • seo网站架构云之创网站建设
  • 东莞公司注册代理seo专员是什么
  • 公司网站的详细步骤注册大创网
  • 杭州建设网站建站唯样商城网站
  • 企业网站建设合同(一)企业网页设计素材
  • wordpress替换首页图片台州企业网站seo
  • 绵阳网站建设网站建设网站主服务器域名
  • 网站建设江阴查看网站名称
  • 网站建设 的系统公式php网站开发实例视频教程
  • 郑州的网站建设没公司怎么做网站
  • 网站空间续费后网页不能打开建站极速通
  • asp.net 跳转别的网站上海十大国企集团
  • 网站品牌建设方案靖江seo收费贵吗
  • 网络营销的名词解释是什么上海网站建设seodian
  • 做英语听力音频的网站企业网站建设 南通
  • 烟台专业网站建设公司wordpress间文章同步
  • 口碑好的微信网站建设代运营竞价公司
  • cc域名网站广州网站优化平台
  • 亚马逊做品牌备案自有网站广东公园网站建设代理公司
  • 宽屏网站模板wordpress 内容排版
  • 承装承修承试材料在哪个网站做经典营销案例分析
  • 旅游网站开发参考文献wordpress做后端
  • 上海知名建站公司怎么进入网站后台管理系统
  • 防止服务器上的网站被进攻回龙观做网站
  • wordpress搭建的网站亚马逊雨林的原始部落
  • 优秀网站开发公司网站建设丷金手指专业十五