vue微乾坤子应用开发及ele组件开发时问题记录

news2025/1/19 14:34:50

一. 微乾坤

  1. 新增page页面路由,pmi权限中心配置正常,跳转链接正确,但路由未找到403.

        解决: 新增的配置是page类型,transformQianKunRoute方法转换微前端路由数据 时,过滤未兼容page型的路由, 解决 ['menu', 'page'].includes(v.resourceType)

// 转换微前端路由数据
function transformQianKunRoutes(routes) {
    return routes.filter(v => ['menu', 'page'].includes(v.resourceType)).map(data => {
        let path = data.resourceUrl.replace(/^\/hw/, '').replace(/\/\//g, '/')
        let componentPath = ROUTE_PATHS[path] || path
        let route = {
            id: data.resourceId,
            name: data.resourceName,
            path,
            meta: {
                id: data.resourceId,
                icon: '',
                title: data.resourceName
            },
            component: importViews(componentPath.replace(/^\//, '')),
            businessType: /^\/(\w+)?\/?/.exec(path)?.[1]
        }
        return route
    })
}

  2. 微乾坤子应用打包部署后,相关img/font字体资源路径未找到404

        尝试子应用webpack配置config.module.rule("fonts")输出publicPath配置路径,未果。

        2-1.解决: limit 设置大数值,打包时字体资源会转base64,从而绕过资源文件夹路径不对问题
config.module
            .rule("fonts")
            .test(/\.(woff2?|eot|ttf|otf|ttc|woff)(\?.*)?$/i)
            .use("url-loader")
            .loader("url-loader")
            .options({
                limit: 99999999,
                name: './src/assets/font/[name].[hash:8].[ext]',
                fallback: {
                    loader: "file-loader",
                    options: {
                        name: `static/styles/[name].[ext]`
                    }
                }
            })
            .end();
         2.2.解决: 在public文件夹内放置需要的font资源,在index.html上直接引入,引入路径带上环境变量配置 <%= BASE_URL %>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title></title>
    <style>
        @font-face {
            font-family: "DIN-Medium";
            src: url("<%= BASE_URL %>font/DIN-Medium.otf") format("truetype");
        }

        @font-face {
            font-family: 'PingFangSC';
            src: url("<%= BASE_URL %>font/PingFangMedium.ttf") format('truetype');
        }

        @font-face {
            font-family: 'element-icons';
            src: url("<%= BASE_URL %>font/element-icons.woff") format("woff"),
                url("<%= BASE_URL %>font/element-icons.ttf") format("truetype");
            font-weight: 400;
            font-display: "auto";
            font-style: normal
        }
    </style>
</head>

二. element-ui组件

  1.ele-locale 国际化多语言少配置,导致el组件部分文本无文本的问题

     自己配置引用的locale/cn.js文件会覆盖ele源码内的locale,需要完整的locale-cn配置内容,不然会导致el-time-picker,el-date-picker等所有ele组件的文本渲染无文本的问题,

cn.js

export default {
    el: {
        colorpicker: {
            confirm: '确定',
            clear: '清空'
        },
        datepicker: {
            now: '此刻',
            today: '今天',
            cancel: '取消',
            clear: '清空',
            confirm: '确定',
            selectDate: '选择日期',
            selectTime: '选择时间',
            startDate: '开始日期',
            startTime: '开始时间',
            endDate: '结束日期',
            endTime: '结束时间',
            prevYear: '前一年',
            nextYear: '后一年',
            prevMonth: '上个月',
            nextMonth: '下个月',
            year: '年',
            month1: '1 月',
            month2: '2 月',
            month3: '3 月',
            month4: '4 月',
            month5: '5 月',
            month6: '6 月',
            month7: '7 月',
            month8: '8 月',
            month9: '9 月',
            month10: '10 月',
            month11: '11 月',
            month12: '12 月',
            // week: '周次',
            weeks: {
                sun: '日',
                mon: '一',
                tue: '二',
                wed: '三',
                thu: '四',
                fri: '五',
                sat: '六'
            },
            months: {
                jan: '一月',
                feb: '二月',
                mar: '三月',
                apr: '四月',
                may: '五月',
                jun: '六月',
                jul: '七月',
                aug: '八月',
                sep: '九月',
                oct: '十月',
                nov: '十一月',
                dec: '十二月'
            }
        },
        select: {
            loading: '加载中',
            noMatch: '无匹配数据',
            noData: '无数据',
            placeholder: '请选择'
        },
        cascader: {
            noMatch: '无匹配数据',
            loading: '加载中',
            placeholder: '请选择',
            noData: '暂无数据'
        },
        pagination: {
            goto: '前往',
            pagesize: '', // 主要为了XX-ui规范,分页位置不显示'分/页' 字样
            total: `{total} 条`,
            pageClassifier: '页'
        },
        messagebox: {
            title: '提示',
            confirm: '确定',
            cancel: '取消',
            error: '输入的数据不合法!'
        },
        upload: {
            deleteTip: '按 delete 键可删除',
            delete: '删除',
            preview: '查看图片',
            continue: '继续上传'
        },
        table: {
            emptyText: '暂无数据',
            confirmFilter: '筛选',
            resetFilter: '重置',
            clearFilter: '全部',
            sumText: '合计'
        },
        tree: {
            emptyText: '暂无数据'
        },
        transfer: {
            noMatch: '无匹配数据',
            noData: '无数据',
            titles: ['列表 1', '列表 2'],
            filterPlaceholder: '请输入搜索内容',
            noCheckedFormat: '共 {total} 项',
            hasCheckedFormat: '已选 {checked}/{total} 项'
        },
        image: {
            error: '加载失败'
        },
        pageHeader: {
            title: '返回'
        },
        popconfirm: {
            confirmButtonText: '确定',
            cancelButtonText: '取消'
        },
        empty: {
            description: '暂无数据'
        }
    }
};

2.el-tabs 的下标线,初始化时未有下标线

 用document.getElementsByClassName获取元素及宽度值
 初次未点击触发active时,直接设置第一个el-tabs__active-bar的宽度。

mounted() {
// 初始-默认选项的选中下标线, 20 是 el-tabs__item的左右padding值
            setTimeout(() => {
                this.$nextTick(() => {
                    const itemDom = document.getElementsByClassName('el-tabs__item')[0]
                    // console.log('el-tabs__item_text_Dom', itemDom, itemDom.clientWidth)
                    const activeBarElement = document.getElementsByClassName('el-tabs__active-bar')[0]
                    activeBarElement.style.width = String(itemDom.clientWidth - 20)+ 'px';
                })     
            })
} 

3.el-switch 加底部背景文字activeText-问题

    采用props配置isChecked + className样式一起控制 文字左右位置显示

<template>
    <div class="switch-wrapper">
        <el-switch   
            :isChecked="isChecked"
            @change="(e) => switchChange(e)"
        />
        <div v-if="showLabel && activeText && isChecked" class="label right">{{ activeText }}</div>
        <div v-if="showLabel && inactiveText && !isChecked" class="label left">{{ inactiveText}}</div>
    </div>
</template>
<script>

    export default {
        props: {
            inactiveText: {
                type: String,   default: '启用'           
            },
            activeText: {
                type: String,   default: '停用'           
            }, 
            showLabel: Boolean,   
            isChecked: { type: Boolean, default: false }
        },
        watch: {
            value(newVal, oldVal) {
                if (newVal !== oldVal) {
                    // console.log('watch()-newVal', newVal)
                    this.switchChange(newVal)
                }
            }   
        },
        methods: {
            switchChange(e) {
                // console.log('switchChange()-', e)
                this.$emit('change', e)
            },
        }
    }
</script>

<style lang='scss' scoped>
.switch-wrapper {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    position: relative;
    .label {
        position: absolute;
        //margin-left: 8px;
        line-height: 1em;
        color: var(--bg-color);
    }
   
    .label.right{
        left: 7rem;
        // width: 100%;
        text-align: center;
        cursor: pointer;
    }
    .label.left{
        right:7rem;
        // width: 100%;
        text-align: center;
        cursor: pointer;
    }
    // .el-switch__core { // width: 56rem !important;}
}
</style>

4.el-popover 位置自动更新问题

通过ref获取el-popover组件-直接执行源码自带的 updatePopper() 方法

 this.$nextTick(() => {
     this.$refs.PickerInput.$refs.elPopover.updatePopper()
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1331011.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Git的总体认知与具体实现

GIt概念 是一种分布式控制管理器 tips:敏捷开发 -> 先上线&#xff0c;后续开发再继续开发 集中式和分布式 集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来&#xff0c;并且如果服务器丢失了&#xff0c;那么所有的就都丢失了&#xff0c;你本机客户端仅…

神经网络:深度学习基础

1.反向传播算法&#xff08;BP&#xff09;的概念及简单推导 反向传播&#xff08;Backpropagation&#xff0c;BP&#xff09;算法是一种与最优化方法&#xff08;如梯度下降法&#xff09;结合使用的&#xff0c;用来训练人工神经网络的常见算法。BP算法对网络中所有权重计算…

MySQL代码笔记

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb;表的增删查改创建表格&…

word2003 open word2007+

Win 7 C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates 还是不行&#xff0c;重装office2003吧&#xff0c;再安装转换插件&#xff0c;但是再高版本好像没转换工具

Python+Playwright自动化测试--playwright处理浏览器多窗口切换

1.简介 浏览器多窗口的切换问题相比大家不会陌生吧&#xff0c;之前小编在javaselenium系列文章中就有介绍过。大致步骤就是&#xff1a;使用selenium进行浏览器的多个窗口切换测试&#xff0c;如果我们打开了多个网页&#xff0c;进行网页切换时&#xff0c;我们需要先获取各…

使用Java语言解决古典猴子分桃问题

一、主要思想 五只猴子分桃 第一只猴子呀 平均分成五分 挤出来多一个 多的扔入海中 拿了其中一份 来了五只猴子 均是如此操作 第五只猴子呀 还存有多少只 二、基本代码 public class MonkeyPeach {public static void main(String[] args){int n 1;int m 0;int flag1;int…

MyBatis的延迟加载!!!

首先&#xff1a;MyBatis的关联查询&#xff01;&#xff01;&#xff01;&#xff08;一对一、一对多、多对多&#xff09;-CSDN博客以这个项目为基础。 1.在UserMapper接口中创建一个方法&#xff1a; package com.by.mapper;import com.by.pojo.User;import java.util.Lis…

GDAL3.7编译一:普通压缩类算法库编译(zlib/zstd/lz4/liblzma/brotli)

通过整理gdal所有依赖库&#xff0c;发现压缩类的三方库被依赖的频率很高&#xff0c;而且这些三方库又不依赖别的库&#xff0c;因此首先编译。 1.zlib库编译&#xff1a; 源码下载地址&#xff1a;GitHub - madler/zlib: A massively spiffy yet delicately unobtrusive co…

电力系统风储联合一次调频MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 简介&#xff1a; 同一电力系统在不同风电渗透率下遭受同一负荷扰动时&#xff0c;其频率变化规律所示&#xff1a; &#xff08;1&#xff09;随着电力系统中风电渗透率的不断提高&#xff0c;风电零惯性响…

HTML5+CSS3+Vue小实例:彩带圣诞树

实例:彩带圣诞树 技术栈:HTML+CSS+Vue 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><…

⭐Unity 读取本地图片再区域裁剪

现在需求是将本地的图片读取之后再区域截图成新的图片 话不多说直接上代码 using UnityEngine; using System.IO;public class LocalRegionCapture : MonoBehaviour {public string fullScreenImagePath "Assets/SavedImages/fullScreenScreenshot.png";public str…

C语言学习NO.9-指针(一)内存和地址,指针变量,指针变类型的意义,const修饰指针,指针运算,野指针,assret断言,指针的使用和传址调用

指针是什么&#xff1f; 指针理解的2个要点&#xff1a; 1.指针是内存中一个最小单元的编号&#xff0c;也就是地址&#xff1b; 2.平时口语中说的指针&#xff0c;通常指的是指针变量&#xff0c;是用来存放内存地址的变量。 总结&#xff1a;指针就是地址&#xff08;变量的地…

玩转大数据21:基于FP-Growth算法的关联规则挖掘及实现

1.引言 关联规则挖掘是大数据领域中重要的数据分析任务之一&#xff0c;其可以帮助我们发现数据集中项目之间的关联关系。关联规则挖掘是指在交易数据或者其他数据集中&#xff0c;发现一些常见的关联项&#xff0c;如购物篮中经常一起出现的商品组合。关联规则挖掘的应用非常…

医学实验室检验科LIS信息系统源码

实验室信息管理是专为医院检验科设计的一套实验室信息管理系统&#xff0c;能将实验仪器与计算机组成网络&#xff0c;使病人样品登录、实验数据存取、报告审核、打印分发&#xff0c;实验数据统计分析等繁杂的操作过程实现了智能化、自动化和规范化管理。 实验室管理系统功能介…

初识Stable Diffusion

界面选项解读 这是在趋动云上部署的Stable Diffusion txt2img prompt &#xff08;1&#xff09;分割符号&#xff1a;使用逗号 , 用于分割词缀&#xff0c;且有一定权重排序功能&#xff0c;逗号前权重高&#xff0c;逗号后权重低 &#xff08;2&#xff09;建议的通用范式…

LabVIEW的六轴工业机器人运动控制系统

LabVIEW开发六轴工业机器人运动控制系统 本项目开发了一个高效的工业机器人控制系统&#xff0c;重点关注于运动学算法和轨迹规划算法的实现和测试。LabVIEW作为一个关键技术&#xff0c;在项目中扮演了核心角色。 系统研究与算法开发&#xff1a;首先&#xff0c;项目围绕机…

记一次生产慢sql索引优化及思考

一 问题重现 夜黑风高的某一晚&#xff0c;突然收到一条运营后台数据库慢sql的报警&#xff0c;耗时竟然达到了60s。 看了一下&#xff0c;还好不是很频繁&#xff0c;内心会更加从容排查问题&#xff0c;应该是特定条件下没有走到索引导致&#xff0c;如果频繁出现慢查询&…

ubuntu22.04+ROS2推荐匹配的gazebo版本

放大以后看到&#xff1a; 可以看到ros2推荐使用版本是humble-----匹配的是Ubuntu22.04LTS -------匹配gazebo Harmonic

Windows漏洞利用开发——利用SEH绕过GS保护

实验6 Windows漏洞利用开发 6.1实验名称 Windows漏洞利用开发 6.2实验目的 学习windows漏洞利用开发&#xff0c;使用kali linux相关工具对windows内目标程序进行漏洞利用 6.3实验步骤及内容 第二阶段&#xff1a;利用SEH绕过GS保护 了解GS编译选项&#xff0c;SHE异常处…

【多模态对话】《颠覆性创新:多模态对话与精准区域分割 - VPGTrans NExT-Chat》学习笔记

【OpenMMLab社区开放麦讲座】《颠覆性创新&#xff1a;多模态对话与精准区域分割 - VPGTrans & NExT-Chat》 1 VPGTrans 1.1 研究问题 1.1.1 模态对齐预训练开销很大&#xff1a;训练时间长 解决方案&#xff1a;迁移已有的VPG(比如BLIP-2 OPT 27B上的VPG) 1.2 训练技巧…