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

潮州建设局网站门户网站建设公司案例

潮州建设局网站,门户网站建设公司案例,不上此网站枉做男人,苏州网站建设系统电话1.需求背景 项目中有部分功能需要vip权限才可以使用,所有部分筛选、按钮 等有vip的icon提示 如下图 此项目衍生出一个特殊版本,此版本无需登录且拥有最高权限,所以产品要求去除项目中的所有vip相关的提示。 2.解决思路 (1&am…

1.需求背景

项目中有部分功能需要vip权限才可以使用,所有部分筛选、按钮 等有vip的icon提示 如下图

此项目衍生出一个特殊版本,此版本无需登录且拥有最高权限,所以产品要求去除项目中的所有vip相关的提示。

2.解决思路

(1)首先想到的是找到对应组件把引用icon的节点隐藏  如下

此方法过于繁琐,项目中涉及到的页面有数十个,对与修改和验证的压力都很大,容易出现遗漏和错误。

(2)直接把引用的vip的icon删除,或者换成空白的图片。

所以准备在项目打包的时候增加脚本处理相关文件。

3.具体操作

(1)大概统计一下 项目中凡是涉及到vip显示的icon 命名中基本都带有 vip 字符

(2)新建三个空白图片 

(3)替换:递归src文件夹下的所有文件 匹配到文件名含有vip的图片,并根据图片类型 替换成 对应的blank文件(此处把源文件做了一次备份,在文件名后加了一个后缀)。代码如下所示

// 替换并备份 项目内的所有vip图片
const fs = require('fs');
const path = require('path');
// const { format } = require('date-fns'); // 用于格式化日期
const joinDir = (...dir) => path.join(__dirname, ...dir);
// 定义要搜索的目录
const searchDir = './'; // 当前目录
const replacementPath = joinDir('../blankImg/');
// 定义备份文件的后缀
const backupSuffix = `_bak`;// 定义要删除文件的扩展名
const fileExtensions = ['.png', '.jpg', '.svg'];// 定义替换文件的映射
const replacementFiles = {'.png': 'blank.png','.jpg': 'blank.jpg','.svg': 'blank.svg'
};// 递归查找并处理文件
function processDirectory(dir) {const files = fs.readdirSync(dir);files.forEach(file => {const fullPath = path.join(dir, file);const stat = fs.statSync(fullPath);if (stat.isDirectory() && fullPath.includes('src')) {// 如果是目录,则递归处理processDirectory(fullPath);} else if (stat.isFile()) {// 检查文件名是否包含 "vip" 且扩展名是否为 .png, .jpg, 或 .svgconst ext = path.extname(file).toLowerCase();if (file.toLowerCase().includes('vip') && fileExtensions.includes(ext) && !file.toLowerCase().includes(backupSuffix)) {// 生成备份文件名const backupExt = path.extname(file);const baseName = path.basename(file, backupExt);const backupFileName = `${baseName}${backupSuffix}${backupExt}`;const backupPath = path.join(dir, backupFileName);// 创建备份文件fs.copyFileSync(fullPath, backupPath);// 替换原文件let tempPath = path.join(replacementPath,replacementFiles[ext]);fs.copyFileSync(tempPath, fullPath);}}});
}let startTime  = new Date().getTime()
// 替换并备份
processDirectory(searchDir);
console.log('Done: 替换并备份 vip文件 耗时:', new Date().getTime() - startTime , 'ms')

(4)恢复源文件:打包完成之后把替换成空图片的文件恢复成源文件,直接用3里备份的文件替换就可以,代码如下

// 打包完成之后恢复vip图片
const fs = require('fs');
const path = require('path');
// const { format } = require('date-fns'); // 用于格式化日期// 定义要搜索的目录
const searchDir = './'; // 当前目录
// 定义备份文件的后缀
const backupSuffix = `_bak`;// 定义要删除文件的扩展名
const fileExtensions = ['.png', '.jpg', '.svg'];// 递归查找并删除符合条件的文件
function deleteFilesRecursively(dir) {const files = fs.readdirSync(dir);files.forEach(file => {const fullPath = path.join(dir, file);const stat = fs.statSync(fullPath);if (stat.isDirectory() && fullPath.includes('src')) {// 如果是目录,则递归处理deleteFilesRecursively(fullPath);} else if (stat.isFile()) {// 检查文件名和扩展名const ext = path.extname(file).toLowerCase();const baseNameOrigin = path.basename(file, ext);const baseName = path.basename(file, ext).toLowerCase();if (fileExtensions.includes(ext) && baseName.toLowerCase().includes('vip') && !baseName.includes(backupSuffix)) {// 删除文件fs.unlinkSync(fullPath);}if (fileExtensions.includes(ext) && baseName.toLowerCase().includes('vip') && baseName.includes(backupSuffix)) {// 去掉文件名中的 backupSuffixconst newName = baseNameOrigin.replace(backupSuffix, '').concat(ext);const newFullPath = path.join(dir, newName);// 重命名文件fs.renameSync(fullPath, newFullPath);}}});
}let startTime  = new Date().getTime()
// 删除blankVip文件 恢复vip文件
deleteFilesRecursively(searchDir);
console.log('Done: 恢复vip文件 耗时:', new Date().getTime() - startTime , 'ms')

(5)调用:在打包前替换文件,打包后恢复文件

4.总结

在打包之后会发现项目中引入的vip文件的逻辑并没变,只是每个vip文件都变成空白的了。

其实此处有一个问题就是vip的icon如果设置了尺寸的话,占位还是在的。


文章转载自:

http://enSS776I.xkwyk.cn
http://wPsg3PrY.xkwyk.cn
http://gNP3Sqgc.xkwyk.cn
http://Ek5zppZO.xkwyk.cn
http://1lrmUqLF.xkwyk.cn
http://MI2OZ931.xkwyk.cn
http://iBJLIIEX.xkwyk.cn
http://UuyQHFt1.xkwyk.cn
http://MlbChYsD.xkwyk.cn
http://1rDUrw0d.xkwyk.cn
http://04Ne8Hs6.xkwyk.cn
http://EZbBupeZ.xkwyk.cn
http://1Pt8QRZt.xkwyk.cn
http://SON4Tm0L.xkwyk.cn
http://C3v9aA9w.xkwyk.cn
http://tk6qMx9O.xkwyk.cn
http://Gr4qcOsS.xkwyk.cn
http://8LRwhUYO.xkwyk.cn
http://VfgonIFf.xkwyk.cn
http://sqeXHk9v.xkwyk.cn
http://MTQFqKNz.xkwyk.cn
http://2WJuC0du.xkwyk.cn
http://wtjiGigh.xkwyk.cn
http://SPCSqGqV.xkwyk.cn
http://61GJCxaT.xkwyk.cn
http://2npGGhVq.xkwyk.cn
http://LVZy9sof.xkwyk.cn
http://aJBNjWzY.xkwyk.cn
http://4DMOrQaJ.xkwyk.cn
http://b8J0kdoy.xkwyk.cn
http://www.dtcms.com/wzjs/673233.html

相关文章:

  • 网站建设果麦科技微网站和app的区别
  • 申请网站建设费北京网站策划联系电话
  • 收集链接 做网站四核网站建设
  • 石家庄做网站排名上海今天最新的新闻
  • wordpress 站中站怎么在百度提交自己的网站
  • 网站开发设计报告怎么写站群软件哪个好
  • 竞价网站与竞价网站之间做友情链接wordpress跟discuz
  • 广州做网站优化公司报价wordpress外链站内打开
  • 一个网站可以做多少关键字广州模板建站软件
  • 中文购物网站模板宝安小学网站建设
  • 进入城乡建设网站怎么竣工备案温州网站提升排名
  • 西安网站注册短视频营销经典案例
  • 专题网站建设工作网站建设服务费怎么写分录
  • 网站上的个人词条怎么做的扬州市工程建设招标网
  • 现在什么视频网站做的最好做网站还是app省钱
  • 网站续费一年多少钱工业设计是学什么
  • 网站建设制作过程网站iis7.5配置
  • 2021国内最好用免费建站系统最新有限公司网站
  • 网络科技网站设计网站推广做多大尺寸
  • 用宝塔做网站步骤教育培训网站排名
  • 自己做挖矿网站wordpress双站 中英文
  • 中小学网站建设探讨wordpress主机模板
  • 实验一 电子商务网站建设与维护衡水做企业网站
  • 构建网站需要会什么网站建设项目运营岗
  • html5制作网站wordpress 验证账号
  • 2017年做网站多少钱江门网站推广排名
  • 100款免费软件网站大全小说网站建设后如何赚钱
  • 免费建站免费网站大气学校网站
  • iis 里没有网站吗free免费空间
  • 企业网站如何找词网站开发工作好不好