随机菜单-自动生成菜单

合集下载

教你用Excel做随机点菜单,再也不用愁每天吃什么了

教你用Excel做随机点菜单,再也不用愁每天吃什么了

教你⽤Excel做随机点菜单,再也不⽤愁每天吃什么了很多⼈总是纠结每天吃什么,⽆论是点外卖还是在家做饭。

今天⼩编将教⼤家⽤制作⼀个随机点菜单,希望能帮⼤家解决不知道吃哪什么菜的烦恼。

⾸先申明⽅法简单易懂,就算是⼩⽩也可以学会的哦⊙⊙!预备⼯作:你可以先记录⼀下,你喜欢吃的菜,将菜名写下来,刚好⼆⼗个。

好了正式⼯作开始了:第⼀步:先打开电脑的Excel软件,⼩编⽤的是WPS新建⼀个 Excel ⼯作簿第⼆步:在⼯作区域(B2,F5)内建⽴⼀个5*4的表格第三步:修改表格格式将列宽改为20⾏⾼改为30第四步:将预备⼯作中的菜名,依次填⼊表格中第五部:设置单元格格式,给表格加⼀个外边框第五步:在表格下⽅添加开始和结束两个按钮。

在表格正下⽅菜单栏→插⼊→选择形状为矩形记住要添加两个⽅框,中间留⼀些距离在⽅框中添加⽂字,左边“开始”,右边“结束”设置格式,选择填充颜⾊给⽅框添加阴影第六步:在菜单栏菜单栏→⼯具→visual Basic编辑器第七步:在编辑器⾥在编辑器⾥双击⼯程⾥的Sheet1,在弹出的空⽩窗⼝⾥输⼊代码(⼩编会在评论⾥将代码复制发出来)再⿏标右键,“结束”在菜单栏⾥选择“指定宏”再选择“Sheet1.结束”点击确定。

好了,你已经完成了⼀个随机点菜菜单了。

试⽤:点击开始,表格⾥会⽣成⼀个红⾊底的⽅框,随机来回的移动。

点击结束,红⾊⽅框就会停在某个格⼦,也就决定了今天可以吃什么啦。

如果想多吃的话,可以多点⼏次哦。

⽤Excel制作随机菜单你学会了吗?如果⼼动的话,快去试试吧。

喜欢的话,欢迎点赞⊙⊙!本⽂原创,转载请写明来源:Miss不知道头条号。

如何使用自动生成功能在Word文档中创建章节

如何使用自动生成功能在Word文档中创建章节

如何使用自动生成功能在Word文档中创建章节在Word文档中创建章节是许多办公人员、学生和研究人员常常需要面对的任务。

一个清晰明确的章节结构不仅可以帮助读者更好地理解文档的逻辑和内容,同时也能提高文档的整体可读性。

为了满足这样的需求,Word提供了自动生成章节的功能,使得创建和管理章节变得更加简便和高效。

本文旨在介绍如何使用自动生成功能在Word文档中创建章节。

一、自动创建章节标题在Word中使用自动生成功能可以快速创建并管理章节标题。

下面将介绍具体步骤:1. 打开Word文档并定位到需要创建章节标题的位置。

2. 在菜单栏中选择“引用”选项卡。

3. 在“目录”组中找到“标题”按钮,并在下拉菜单中选择适当的标题格式。

例如,选择“标题1”。

4. 输入第一个章节标题文本,并按下Enter键。

5. 继续输入后续章节标题文本,依次按下Enter键。

通过以上步骤,您就可以轻松地创建出一系列按照标题格式排列的章节标题。

二、自动更新章节编号使用自动生成功能创建章节标题后,您还可以方便地对章节进行编号,并对其进行自动更新。

下面将介绍具体步骤:1. 在菜单栏中选择“视图”选项卡。

2. 在“导航窗格”组中找到“导航”按钮,并点击。

3. 在导航窗格中,找到章节标题列表。

4. 右键点击需要进行编号的章节标题,然后在弹出菜单中选择“设置编号格式”。

5. 在弹出的对话框中,选择合适的编号格式,并点击“确定”按钮。

通过以上步骤,您就可以自动对章节标题进行编号,并且在需要更新编号时,只需点击“更新表格”按钮即可。

三、自定义章节样式除了使用Word提供的默认章节样式外,您还可以根据需要自定义章节样式,以使其更符合文档的风格和要求。

下面将介绍具体步骤:1. 在菜单栏中选择“设计”选项卡。

2. 在“样式集”组中找到“更多”按钮,并点击。

3. 在弹出菜单中,选择“样式”选项。

4. 在“样式”窗口中,找到适当的章节样式,右键点击,并选择“修改”。

随机化菜单设计优化餐饮顾客体验

随机化菜单设计优化餐饮顾客体验

随机化菜单设计优化餐饮顾客体验随机化菜单设计作为一种创新策略,在提升餐饮顾客体验方面日益受到重视。

它不仅能够增加顾客的就餐乐趣,还能激发餐厅的创新活力,提升服务灵活性,进而促进顾客满意度和忠诚度。

以下是通过六个方面探讨如何运用随机化菜单设计优化餐饮顾客体验。

一、个性化推荐,提升就餐体验在信息爆炸的时代,顾客越来越期望获得个性化服务。

随机化菜单设计可通过分析顾客的就餐历史、口味偏好乃至社交媒体行为,智能推荐符合其个性的菜品组合。

这种个性化不仅仅体现在菜品选择上,还可以延伸到餐品的呈现方式、食材搭配甚至用餐场景的定制,让每次就餐都成为一次独特的体验之旅,加深顾客对餐厅的好感与记忆。

二、季节性变换,丰富味觉探索餐饮业随季节变化而调整菜单是常见做法,但随机化菜单设计在此基础上更进一步,通过引入季节限定的随机菜品,鼓励顾客尝试时令食材的新鲜搭配,增加菜单的探索性和新鲜感。

例如,春季推出以野菜为主题的惊喜套餐,秋季则主打丰收的南瓜与栗子等食材,让顾客在享受美食的同时,也能感受到四季的流转,增强就餐的情感连接。

三、互动式参与,增加趣味性随机化菜单设计可以融入互动元素,如设置“今日幸运菜”、“盲盒菜品”等环节,顾客在下单时可以参与小游戏或抽奖,决定自己的特别菜品。

这种参与感不仅让顾客在等待上菜的过程中充满期待,还能通过社交媒体分享增加餐厅的曝光度,形成口碑传播。

同时,互动式设计也为餐厅收集顾客反馈提供了机会,便于持续优化菜单和服务。

四、灵活应对食材供应链波动餐饮业常面临食材价格波动、供应链不稳定等挑战。

随机化菜单设计允许餐厅根据市场情况灵活调整菜品,将供应链中的不确定性转化为创意的机会。

比如,当某种原计划使用的食材价格上涨或短缺时,可以快速替换为另一种性价比高的食材,并通过创意搭配,推出新颖菜品,既控制成本又保持菜品的吸引力。

五、激发厨师团队创新能力随机化菜单设计鼓励厨房团队不断尝试和创新,打破常规菜单的限制。

微信自动回复与自定义菜单操作流程

微信自动回复与自定义菜单操作流程
3、编辑中的菜单不会马上被用户看到,点击发布后,会在24小时后在手机端同步显示,粉丝不会收到更新提示,若多次编 辑,以最后一次保存为准。(快速显示方法:先取消关注公众号,再关注)
第三十二页,共五十九页。
6章
乐享接口配置
第三十三页,共五十九页。
目前微信平台内的基础功能已经远远不能满足用户的需求,因此第三方平台的使用就显得尤为重要。目前主要 讲的第三方平台为“乐享”。
第四十二页,共五十九页。
(3)选中【回复文字】,即可进入编辑界面,在“自动回复内容”编辑框里可以添加文字与表情,对关注用户的一些 欢迎与引导。
第四十三页,共五十九页。
必须提出的是,第三方平台关注时可回复超链接,超链接能够使关注用户能够快速的到达所指定的界面,如活动界面, 方面快捷体验好。具体设置如下。
(默认插件均为关闭状态)
第四页,共五十九页。
插件功能介绍
群发功能:点击开通后可以向关注公众平台的用户群发消息。 自动回复:点击开通后可以使用用户关注自动回复、用户默认回复和用户关键 字回复功能。 自定义菜单:点击开通后可以使用自定义菜单,利用自定义菜单给用户更好体验。 卡卷功能:点击开通后,你可以通过卡券功能进行卡券的生成、投放和运营。
信公众平台接口就与第三方平台接口连接起来了。(无论使 用哪一种第三方平台,只需要将你使用的第三方平台的服务 器配置即URL和TOKEN连接到微信公众平台,则可使用第三方平台功
能。)
第三十七页,共五十九页。
温馨提示
提交成功后,会提示“提交成功”,若URL或TOKEN输入错误,则会提示“提交失败”,须重新输入。若
第二十七页,共五十九页。
(3)添加子菜单(二级菜单)成功后,再选中子菜单,即可在右边看到发送消息,和跳转到网址选 项。选中后即可添加菜单相应的内容。可以选择文字,图片,语音,同时也可以选择素材里面编辑好的图文信息。

自动生成目录怎么设置

自动生成目录怎么设置

自动生成目录怎么设置要自动生成目录,需要使用适当的文本编辑软件或排版工具,如Microsoft Word、Google Docs或LaTeX等。

在Microsoft Word中,你可以按照以下步骤设置自动生成目录:1. 在文档中插入标题,可以使用标题样式(如标题1、标题2等)为文本添加级别。

2. 将光标放在你想要插入目录的位置。

3. 在Word菜单中选择“引用”选项卡。

4. 在“引用”选项卡的“目录”组中,点击“目录”按钮,选择一个目录样式,如简单的链接、格式化的链接或使用自定义样式等。

5. 文档中将自动插入目录。

如果标题层次不正确,你可以在“引用”选项卡的“目录”组中点击“更新目录”按钮进行更新,或者右键点击目录,选择“更新域”。

在Google Docs中,你可以按照以下步骤设置自动生成目录:1. 在文档中插入标题,可以使用标题样式(如标题1、标题2等)为文本添加级别。

2. 将光标放在你想要插入目录的位置。

3. 在Google Docs菜单中选择“插入”选项卡。

4. 在“插入”选项卡中选择“目录”。

5. 选择一个适当的目录样式,如基本的链接、数字链接或斑马链接。

6. 文档中将自动插入目录,并且会时刻更新。

在LaTeX中,你可以使用tocloft宏包来自定义目录样式。

以下是一个示例:```latex\\documentclass{article}\\usepackage{tocloft}\\begin{document}\\tableofcontents\\section{第一节}\\subsection{子节一}\\subsection{子节二}\\section{第二节}\\subsection{子节三}\\subsection{子节四}\\end{document}```以上是一些常用的设置方法,具体操作可能因软件版本和个人需求而有所不同,可参考软件的文档或在线教程获取更详细的指导。

魔兽作弊指令

魔兽作弊指令

魔兽作弊指令hke作弊是一种利用作弊器将作弊脚本写到魔兽地图中的一种作弊方法。

可作弊内容如下:开启作弊依次按方向键↑↑←↓进入作弊(按错了就重新按次,不限时间只要顺序对)此时你就是CheatMaster(可以理解为作弊管理员)且有一个玩家成为CheatMaster别的玩家就不能再次开启了(注意:在弹出菜单或者打开聊天窗口的时候按无效)开启作弊后请重新选中单位(否则某些功能可能失效)当然也可以先开启了再选单位打不开请看无法开启--------------------------------------------------------------------------------所有功能想知道hke脚本更新历史可以点这里:更新历史1.25b加入了主机优势必须先开启作弊无法开启看这如果第一次玩请先看玩家必看实在懒得看你可以看最简帮助基本上能享受大部分功能感觉热键冲突可以关闭键盘作弊你可以关闭录像(不能再开启) 还能查看其他玩家信息也可以玩家作弊权限分享作弊键盘作弊:完整键盘作弊(也可以看看最简键盘作弊)自动化作弊:自动加钱/木自动清除CD 自动加魔法自动加生命自动清人口英雄自动无限重生英雄类:加血魔/清除CD/负面Buff(负面魔法效果)复活英雄升级加力量加敏捷加智力加三围切换背包复制物品掉落物品冲物品打包物品设置经验设置技能点禁止获得经验其他:加钱木彩字聊天悬浮彩字开/关地图瞬间造兵/升级科技设置人口/人口最大值破解英雄限制(矿图) 设置金矿数设置游戏时间生树荒芜双倍经验重设出生点召唤技能设置天空设置天气设置水色设置作弊配置 T人断线征税改名获得任意单位获得任意物品获得任意技能获得尸体单位类:瞬移/移动单位隐藏加攻隐藏加攻溅射沉默单位克隆操作复制单位删除复制标记控制单位删除单位暂停单位暂停生命周期设置单位MPHP 获得农民设置单位大小设置单位颜色设置飞行高度单位特殊属性:光环请看光环辉煌光环专注光环吸血光环荆棘光环耐久光环强击光环邪恶光环减速光环命令光环医疗光环无敌隐形穿墙魔免移动速度加快反隐永久献祭重击致命一击闪避闪避100% 反弹燃灰分裂攻击减少魔法伤害33% 加攻击20 加防御10 秒杀模式菜单介绍: 主菜单单个单位菜单资源菜单自动化菜单单位特殊属性菜单个人选项菜单帮助菜单其他玩家作弊管理菜单其他玩家管理菜单游戏作弊选项菜单同盟菜单CMD命令分散到各个选项里了完整CMD你可以也看看但比较烦琐--------------------------------------------------------------------------------关闭键盘作弊如果你觉得和地图本身热键冲突可以关掉输入-k-关闭-k+打开关闭是对你自己而言不会影响其他作弊者[键盘作弊] [CMD作弊] [回所有功能]--------------------------------------------------------------------------------加血/加魔/清除CD/删除负面Buff可以采用下面的的几个方法:1.Esc 选定单位清除负面魔法重置CD时间回血魔按照生命/魔法百分比分阶段回HP 30%-60%-90%-100%MP 50%-75%-90%-100%2.← 选定单位清除负面魔法重置CD时间3.↓ 选定单位血魔满4.自动加魔法自动清除CD[键盘作弊] [回所有功能]--------------------------------------------------------------------------------加钱木 (不加资源分)1.按键盘→ (默认加钱200木100/钱2000木0)如果觉得少或者不合理你可以到设置作弊配置设置-set km是一次→加的钱数/-set kw是一次→加的木头数2.输入-rm 钱数输入-rw 木头数如果想减少空格可以换成-例子:加200钱:-rm 200减50木头:-rw-503.打开自动加钱/加木项目4.在资源菜单加减[键盘作弊] [回所有功能] [CMD作弊]--------------------------------------------------------------------------------升级1.选定英雄按住←→再按↓2.输入-hu 级别比如输入-hu 2 升级2空格换成-可以减去等级3.在单个单位菜单升级[键盘作弊] [回所有功能] [CMD作弊]--------------------------------------------------------------------------------改名在游戏中输入-rn 新名称即可把自己的名字更改纯属好玩[回所有功能] [CMD作弊]--------------------------------------------------------------------------------加力量(对选中英雄)1.按键盘↑+←(间隔2s内)2.输入-hl 数值(空格换成-可以减去)例子:加20力量:-hl 20减力量5:-hl-5[键盘作弊] [回所有功能] [CMD作弊]--------------------------------------------------------------------------------加敏捷(对选中英雄)1.按键盘↑+↓(间隔2s内)2.输入-hm 数值(空格换成-可以减去)例子:加20敏捷:-hm 20减敏捷5:-hm-5[键盘作弊] [回所有功能] [CMD作弊]--------------------------------------------------------------------------------加智力(对选中英雄)1.按键盘↑+→(间隔2s内)2.输入-hz 数值(空格换成-可以减去)例子:加20智力:-hz 20减智力5:-hz-5[键盘作弊] [回所有功能] [CMD作弊]--------------------------------------------------------------------------------加三围(对选中英雄)1.按住键盘↑↓再按→2.输入-ha 数值(空格换成-可以减去)例子:加20三围:-ha 20减三围5:-ha-53.在单个单位菜单设置[键盘作弊] [回所有功能] [CMD作弊]--------------------------------------------------------------------------------开地图(只会自己开不会对盟友共享[盟友看见是正常视野])1.连按5次↑(2s内)2.在主菜单 -资源菜单打开3.CheatMaster可以在其他玩家管理菜单帮别人打开打开了取消作弊时关闭地图全开取消作弊地图会关闭[键盘作弊] [回所有功能]--------------------------------------------------------------------------------瞬间造兵/升级科技/造房子1.造兵/研究科技:按住↑↓再造兵/研究注意要按住再升级/造兵否则无效造一半或者升级一半的也不会瞬间完成(有必要的话你可以先取消再重新造/升级)瞬间造兵造不出来请把建筑集结点点到个空旷的地方注意瞬间造兵的兵是直接出现在集结点的还有默认不占人口如果你想让他占人口可到作弊选项菜单设置2.建筑物建造/升级先建/升级建筑物再选定建筑物按←注意:造房子不要把农民移开要让他敲最后一下[键盘作弊] [回所有功能]--------------------------------------------------------------------------------设置人口/人口最大值1.在在主菜单 -资源菜单设置人口清理成5 或人口最大值1002.输入-rp 人口数-rpm 最大人口数来设置3.开启自动清人口4.在资源菜单清除[回所有功能] [CMD作弊]--------------------------------------------------------------------------------复活英雄(复活在起始点)1.在在主菜单 -资源菜单设置2.输入-hr你可以到重设出生点设置出生位置[回所有功能] [CMD作弊]--------------------------------------------------------------------------------破解矿图3英雄限制输入-rh+即可破解限制(但是要爆3个以上英雄还是要3本哦) 输入-rh-可以恢复正常[回所有功能] [CMD作弊]--------------------------------------------------------------------------------自动加钱/木头(不加资源分)1.在自动化菜单设置2.输入-am+开启自动加钱输入-aw+开启自动加木头同理输入-am-/aw-关闭自动加钱/木开启后钱<2000+1000 木<1000+500如果你觉得太多或太少你可以到设置作弊配置设置-set am 3000 则钱<3000+1500-set am 500 则钱<500+250[回所有功能] [CMD作弊]--------------------------------------------------------------------------------自动清除CD1.在自动化菜单设置2.输入-acd+开启自动清除CD同理输入-acd-关闭自动清除CD每次使用魔法完都会自动重置CD时间有时候召唤出单位不会马上清除是因为动作没做完你可以随便移动下或按停止下即可马上清除[回所有功能] [CMD作弊]--------------------------------------------------------------------------------自动加魔法1.在自动化菜单设置2.输入-amp+开启自动加魔法同理输入-amp-关闭自动加魔法每次使用魔法完都会自动自动加魔法有时候召唤出单位不会马上加魔法是因为动作没做完你可以随便移动下或按停止下即可马上自动加魔法默认魔法恢复到100% 你可以到设置作弊配置设置输入-set amp=百分比设置比如-set amp=90 每次都能恢复到90%[回所有功能] [CMD作弊]--------------------------------------------------------------------------------自动加生命1.在自动化菜单设置2.输入-ahp+开启自动加生命同理输入-ahp-关闭自动加生命默认生命低于15%加到100% 你可以到设置作弊配置设置你可以输入-set ahpt=百分比设置到多少加你可以输入-set ahp=百分比设置加到多少比如-set amp=90-set ampt=10生命低于10%加到90%[回所有功能] [CMD作弊]--------------------------------------------------------------------------------自动清人口1.在自动化菜单设置2.输入-ap+开启自动清人口同理输入-ap-关闭自动清人口开启后人口超过30自动清成5你可以到设置作弊配置设置[回所有功能] [键盘作弊]--------------------------------------------------------------------------------英雄自动无限重生1.在自动化菜单设置2.输入-ars+开启英雄自动无限重生同理输入-ars-关闭英雄自动无限重生开启后英雄死后会立即在原地复活[回所有功能] [CMD作弊]--------------------------------------------------------------------------------瞬移/移动单位按住方向键↑↓ 鼠标右键点目标点即可把选定单位移动过去基本上能移动任何单位(包括建筑)有些建筑不能移动如果你想移动的话1.选中他输入-ujj让它获得可以设置集结点的技能2.按上述瞬移3.输入-ujj-删除集结点技能(当然留着也不碍事)4.移动非己方单位可以用-uyd(把刚才选的单位移到现在选的单位处)-ujh交换刚才选的和现在选的单位的位置[键盘作弊] [回所有功能]--------------------------------------------------------------------------------切换背包按住方向键↑↓再按Esc(按一次切换一次)背包可以在你的任意单位间切换比如剑圣将物品存入背包再用恶魔猎手切换可以拿到剑圣存入的物品背包属性不会叠加默认可以切换2次(即1个额外背包)你也可以自己设置背包数(最大支持额外3个即可切换4次)[键盘作弊] [回所有功能]--------------------------------------------------------------------------------生树选定单位处创建树墙输入-uss符号(-+*/)树种代码树数+代表树墙方向竖(|方向)-代表树墙方向横(-方向)/代表树墙方向斜(/方向)*代表树墙方向斜(\方向)如果要一个横的10棵树的夏季树木树墙选定单位后输入-uss-1 1[回所有功能]--------------------------------------------------------------------------------树种代码生树中使用0 随机一种1 夏季树木2 秋季树木3 冬季树木4 白杨谷树木5 白杨谷伞状树木6 荒芜之地树木7 黑色城堡树木8 城邦冬树木9 城邦夏树木10 城邦桃树木11 城邦积雪树木12 城邦枯树13 选拉慧遗迹树木14 地下城树木15 费尔伍德树木16 费尔伍德伞牡树木17 冰封王座树木18 冰封王座树木19 诺森德伞状树木20 边缘之地树21 遗迹树木22 地底树木23 村庄树木[回所有功能]--------------------------------------------------------------------------------荒芜选定一个单位输入-uhw 荒芜半径半径不填默认500-uhw-半径反荒芜[回所有功能]--------------------------------------------------------------------------------设置飞行高度纯粹恶搞功能选单位输入-ufg 高度不能设置非飞行单位如果设置高点人家就看不到你啦嘿嘿设置低点看起来就像在地上爬[回所有功能]--------------------------------------------------------------------------------双倍经验在资源菜单打开/恢复打开后你可以获得双倍经验注意有些地图比如澄海买英雄时也会更改经验率他改了你在改回来就是了[回所有功能]--------------------------------------------------------------------------------重设出生点选单位输入-usp 即可吧单位所在位置设置为出生点此出生点会影响到复活英雄获得任意单位等功能[回所有功能]--------------------------------------------------------------------------------删除复制标记如果你复制单位又不想让他在删除所有复制单位时被删除选定复制单位输入-ufzd[回所有功能]--------------------------------------------------------------------------------设置经验选定单位输入-he 经验即可增加相应经验注意经验只能加不能减少有些反作弊升级地图中可以用这个[回所有功能]--------------------------------------------------------------------------------设置单位MPHP选定单位输入-ump 百分比 -uhp 百分比注意这个百分比是反的要设置HP0(杀死单位)-hp 100 HP满-hp 0[回所有功能]--------------------------------------------------------------------------------设置技能点选定单位输入-hj 点数来设置也可-hj-点数或-hj+点数来增加[回所有功能]--------------------------------------------------------------------------------禁止获得经验选定英雄输入-hsj-禁止英雄获得经验-hsj+恢复获得经验嘿嘿这个无疑是阴人的好办法[回所有功能]--------------------------------------------------------------- -----------------召唤技能(巫毒/宁静/流星雨)在选中单位出召唤出一个技能效果目前只支持3种-jwd 巫毒/-jnj 宁静/-jlx 流星雨有的地图可能会不能用此功能[回所有功能]--------------------------------------------------------------------------------设置天空-gtk 天空代码(1-14)不过这个功能其实没啥用因为天空很难看到天空代码:1 无2 暴风雪的天空3 达拉然的天空4 菲尔伍德的天空5 被雾笼罩的天空6 普通的天空7 洛丹伦(秋)的天空8 洛丹伦(夏)的天空9 洛丹伦(冬)的天空10 洛丹伦(冬)的天空(亮绿)11 洛丹伦(冬)的天空(分红)12 洛丹伦(冬)的天空(紫色)13 洛丹伦(冬)的天空(黄色)14 边缘之地的天空[回所有功能]--------------------------------------------------------------------------------设置天气纯恶搞功能不过好像有点小bug 某些天气开了管不了(一般是同时开N个天气发生)-gtq+天气代码开此天气效果-gtq-天气代码关此天气效果可以同时开很多效果只要你不怕关不掉天气代码:1 白杨谷大雨2 白杨谷小雨3 选拉然之盾4 地下城蓝雾(厚)5 地下城蓝雾(薄)6 地下城绿雾(厚)7 地下城绿雾(薄)8 地下城红雾(厚)9 地下城红雾(薄)10 地下城白雾(厚)11 地下城白雾(薄)12 洛丹伦大雨13 洛丹伦小雨14 诺森德的暴风雪15 诺森德大雪16 诺森德小雪17 边缘之地大风18 边缘之地的风19 日光20 月光21 大风[回所有功能]--------------------------------------------------------------------------------颜色代码在设置单位颜色设置水色彩字聊天悬浮彩字等功能中使用0 █ 白色1 █ 灰色2 █ 黑色3 █ 红色4 █ 橙色5 █ 黄色6 █ 绿色7 █ 青色8 █ 蓝色9 █ 紫色[回所有功能]--------------------------------------------------------------------------------设置水色设置地图上河水海水的颜色-gss 颜色代码[回所有功能]--------------------------------------------------------------------------------彩字聊天-lt 颜色代码文字对所有人显示-lt+颜色代码文字对盟友显示-lt-颜色代码文字对敌人显示另外还有悬浮彩字功能[回所有功能]--------------------------------------------------------------------------------悬浮彩字选定单位输入-ult 颜色代码文字会创建个彩字挂在单位处(不会因为单位移动而移动)另外还有彩字聊天功能[回所有功能]--------------------------------------------------------------------------------设置作弊配置CheatMaster才能使用使用后全局有效查询输入-set你可以输入-set 选项=值来设置比如按→加钱改成20 -set km=20自动加钱AM 自动加木AW 自动清人口触发值AP 自动加魔法百分比AMP 自动加生命百分比AHP 自动加生命触发值AHPT 键盘加钱数KM 键盘加木数KW 键盘加属性KG 菜单加钱MM 菜单加木MW 菜单加属性MG背包数量BAG 文字显示时间IT 菜单自动关闭时间(局域网才行防止出现白板)MT 子弹时间ZD征税税率RT 隐藏加攻攻击力HA 隐藏加攻溅射比例HAP[回所有功能]--------------------------------------------------------------------------------T人CheatMaster可以把看不顺眼的人T掉1.输入-gtr 玩家编号显示文字玩家编号可以用显示玩家信息获得2.选要T的玩家的单位输入-gtr+放心你不能T掉自己[回所有功能]--------------------------------------------------------------------------------断线1.25b新功能CheatMaster可以让看不顺眼的人断线1.-gdx 玩家编号玩家编号可以用显示玩家信息获得2.选要断线的玩家的单位输入-gdx+和旧的T人不同这个不是让对方失败而是魔兽崩溃退出让裁判崩溃或许很有意思限制了不能对主机使用否则大家都断线就没得玩了此功能未经测试不知是否有效大家自己试下吧[回所有功能]--------------------------------------------------------------------------------征税在其他玩家管理菜单设置可以收黄金和木头开启后该玩家的收入会按比例支付给你(默认30%)虽然可以调钱但这个貌似比较爽啊你可以到设置作弊配置设置税率输入-set rt=税率设置[回所有功能]--------------------------------------------------------------------------------子弹时间(微操时间)输入-zd开启会在几秒内(默认3)游戏突然慢下来获得微操时间(右上角会有计时器提醒)至于为什么叫子弹时间我也不知道你可以到设置作弊配置设置输入-set zd=时间来更改[回所有功能]--------------------------------------------------------------------------------隐藏加攻在个人选项菜单开启开启后你所有的单位会获得额外攻击力单位状态无显示CheatMaster可以更改加的攻击力比如加钱20点-set HA=20到设置作弊配置设置可以开启隐藏加攻溅射获得更强杀伤[回所有功能]--------------------------------------------------------------------------------隐藏加攻溅射在个人选项菜单开启启用隐藏加攻时会同时溅射伤害周围单位(溅射伤害只算隐藏加的不包括单位自身攻击可以和其他溅射混用)不过人多的话可能会耗资源哦CheatMaster可以更改加的溅射率比如溅射50%-set HAP=50到设置作弊配置设置[回所有功能]--------------------------------------------------------------------------------沉默单位在个人选项菜单开启(默认已经开启)开启后按住←→选敌对单位会沉默该单位附近的敌对单位效果和沉默权杖一样具体参数买一根看看就知道了啥你不知道啥叫沉默... 就是禁魔啦[键盘作弊] [回所有功能]--------------------------------------------------------------------------------克隆操作A首先.你必须先允许克隆操作(1.输入-kl+开/-kl-关2.在主作弊菜单开关)B然后.按住←→操作单位所有单位即可执行相同命令默认不能克隆操作农民(你可以在作弊选项菜单关闭禁止克隆操作农民)克隆操作不要建房子不然会出错退出WAR3没事的时候最好关闭免得不小心自己的单位引起混乱什么是克隆操作呢如果你有200只天鬼(打个比方嘛)要同时A到某个地方怎么办?编10对也才120 一次次圈也是很麻烦是有了这个功能你只要控制一只其他的都会跟过去方便吧也可以A别人一起插下来变石像都很帅的[回所有功能]--------------------------------------------------------------------------------组队克隆操作必须先开启克隆操作开启后克隆操作会自动分割成小队有一定队形主要是应用在地面单位减少拥挤[回所有功能]--------------------------------------------------------------------------------复制物品1.在单个单位菜单按复制2.选定单位输入-hfz物品会复制到单位脚下3.选定单位输入-hfz+物品会复制到上次选定的单位脚下比如先选剑圣再选圣骑输入-hfz+圣骑的物品会复制到剑圣脚下[回所有功能] [CMD作弊]--------------------------------------------------------------------------------掉落物品1.在单个单位菜单按掉落2.选定单位输入-hdw物品会掉落到单位脚下3.选定单位输入-hfz+物品会掉落到上次选定的单位脚下比如先选剑圣再选圣骑输入-hdw+圣骑的物品会掉落到剑圣脚下[回所有功能] [CMD作弊]--------------------------------------------------------------------------------冲物品A.首先物品必须有使用次数B.你必须选定一个单位把物品放在物品栏第一格(快捷键是7)的地方C.输入-hcw 数量比如大法第一格是回城选他输入-hcw 20 回城可以用21次(本来1次+20次)[回所有功能]--------------------------------------------------------------------------------打包物品物品必须有使用次数而且身上有2个以上相同物品可以打包合并成一个选中单位输入-hdb比如大法有3个魔瓶选他输入-hdb即可合并成1个可使用3次的魔瓶[回所有功能] [CMD作弊]--------------------------------------------------------------------------------设置单位大小这个纯属恶搞功能选定单位输入-usize 缩放百分比如果要放大必须输入>100的数字比如-usize 200选定单位放大成原来2倍大[回所有功能] [CMD作弊]--------------------------------------------------------------------------------设置单位颜色这个也是纯属恶搞功能有3种方法1.选定单个单位输入-ucl 颜色代码透明度代码(2个都是0-9的数字)比如:-ucl 2 1-usize 200然后你能看到类似复仇天神的效果很帅哦2.随机染色选定一些单位输入-ucl+会自动随机染成五颜六色输入-ucl-可以全部恢复成原来颜色3.选定单个单位输入-uco 红绿兰透明(每个都是1-100百分比不足3位用0凑齐)这个比较麻烦其实就是光的3基色原理不理解就算了前两个够用了这个主要可以自定义更多颜色[回所有功能] [CMD作弊]--------------------------------------------------------------------------------设置金矿数仅仅CheatMaster可用此功能选定个金矿输入-ujk 钱数即可增加相应钱数-ukj-钱数减去相应钱数比如输入-ukj 3000 本来5000的金矿就变8000[回所有功能] [CMD作弊]--------------------------------------------------------------------------------获得各族农民输入-unm 数字(1-5)可以获得相应农民在初始点(1人族 2兽族 3暗夜 4不死 5娜珈) 比如-unm 5获得娜珈农民(嘿嘿吓死对手)[回所有功能] [CMD作弊]--------------------------------------------------------------------------------复制单位选中一个单位1.在单个单位菜单点复制2.输入-ufz 复制数量效果同上但可以复制很多个3.输入-ufz+数量复制但是不是复制给你是复制给原单位的所有者4.输入-ufz-数量复制给你但是单位有生命时间(类似召唤单位) 以免复制太多嘿嘿5.输入-ufzh这个只能复制英雄但是复制的英雄等级三围身上的物品和原来的一样(除了技能要手动加剩下都和原来一样)如果想删除所有复制单位可以打开主菜单按删除复制单位或者输入-udel+ 如果想让某个复制单位不会被此功能删除请删除复制标记[回所有功能] [CMD作弊]--------------------------------------------------------------------------------获得尸体1.25b新功能选中单位输入-ust id即可在选定单位处获得相应尸体id就是单位id 见获得任意单位这个id是区分大小写的前面的命令不区分注意不要试图获得英雄尸体不然会得到个空模型建筑倒是也有尸体但是没什么用[回所有功能] [CMD作弊]--------------------------------------------------------------------------------获得任意单位输入-ucu 单位ID或单位英文名(如何查询单位ID,某些地图我会提供ID表)ID区分大小写前面的命令不区分英文名不区分即可得到相应单位(在初始点) 你可以到重设出生点设置出生位置例如要阿克蒙德 -ucu archimonde或 -ucu Uwar一些英文名:NagaRoyalGuard娜迦皇家卫兵archimonde阿克蒙德LadyVashj法斯琪lichking巫妖王(好看的)一些ID:Uwar 阿克蒙德魔兽开矿中最强的英雄攻击强魔法也强Ecen 赛纳留斯一个丛林守护者和阿克蒙德有得一拼Hvwd 传说中的光明游侠?Hlgr 黑暗骑士?Othr 萨尔很帅的先知力量也比普通的多1点Hjai 吉安娜大法师MM 属性和普通的一样的Hgam 安东尼达斯和大法一样但是比较帅Harf 拿霜之哀伤的阿尔塞斯是个圣骑士Nbbc 红色的剑圣Ogrh 地狱咆哮(剑圣)Opgh 地狱咆哮着魔的Utic 一只比较帅的恐惧魔王魔法很强Ekkg 透明的丛林守护者Emfr 比较帅的丛林守护者nnrg 娜珈皇家卫兵ndmg 恶魔之门很强的建筑ndt2 高级冰霜塔nbt2 高级巨石塔ntx2 高级死亡塔nft2 高级火焰塔net2 高级能量塔[回所有功能] [CMD作弊]--------------------------------------------------------------------------------获得任意物品输入-uci 物品ID (如何查询物品ID,某些地图我会提供ID表)ID区分大小写前面的命令不区分即可得到相应物品(在选定单位脚下)1.25b中选定单位输入-uci+id可以让单位直接获得该物品有些无法显示的物品(如某些RPG中的升级铸造XX装备)也可以获得了比如要传送权杖选英雄输入-uci stel一些ID:stel 传送权杖stwp 回城spre 保存权杖ankh 重生十字架srrc 复活卷轴modt 死亡面罩hbth 战舰之舵(太强了)gemt 显形宝石gsou 灵魂宝石(太BT了最好不要乱用啊尤其是RPG)odef 黑暗之球ofro 霜冻之球sora 影子之球oslo 减速之球oven 毒液之球ofir 火焰之球ocor 腐蚀之球oli2 都是闪电之球fgrd 红龙卵[回所有功能] [CMD作弊]--------------------------------------------------------------------------------获得任意技能输入-uua 技能ID (如何查询技能ID,某些地图我会提供ID表)ID区分大小写前面的命令不区分即可得到相应技能(选定单位)例如:要获得天神下凡:选英雄输入-uua AHav部分技能ID:AHre 复活AHav 天神下凡AHpx 火凤凰AHmt 群体传送AOww 剑刃风暴AOvd 巫术AOre 重生AOsh 震荡波AUin 地狱火AUan 操纵死尸AUdd 死亡凋零AUls 蝗虫群AEme 变身AEtq 宁静AEsf 群星陨落AEsv 复仇之魂ANdo 末日审判ANef 土火风暴ANvc 火山爆发ANtm 点金术ANch 咒符ANto 龙卷风这3招超强而且不耗魔ANfd 死亡之指ANrc 混乱之雨ANdp 黑暗之门[回所有功能] [CMD作弊]------------------------------------------- -------------------------------------查询物品ID1.在游戏中查选中单位把该物品放在第一格子输入-uci?即可查到2.用WE打开地图(RPG图可以用ENE WE打开)按F6打开物体编辑器在里面选择物品(第二个)在上面的查看-使用原始数据显示勾起来(或者按Ctrl+D)即可看见物品名称前面的 4位ID[回获得任意物品] [回所有功能]--------------------------------------------------------------------------------查询单位ID1.在游戏中查选中单位输入-ucu?即可查到2.用WE打开地图(RPG图可以用ENE WE打开)按F6打开物体编辑器在里面选择单位(第一个)在上面的查看-使用原始数据显示勾起来(或者按Ctrl+D)即可看见单位名称前面的 4位ID[回获得任意单位] [回所有功能]--------------------------------------------------------------------------------查询技能ID用WE打开地图(RPG图可以用ENE WE打开)按F6打开物体编辑器在里面选择技能(第五个)在上面的查看-使用原始数据显示勾起来(或者按Ctrl+D)即可看见技能名称前面的 4位ID[回获得任意技能] [回所有功能]--------------------------------------------------------------------------------设置游戏时间这个一般是矿图用的 RPG用处不大只有CheatMaster可用输入-gsj 时间(24小时制)比如LT上看见人家半夜在血泉回血把时间调到8点就鸡叫了(嘿嘿下面的事情不用我说了吧)[回所有功能]--------------------------------------------------------------------------------控制(占据)单位默认只有CheatMaster可用他人要用请打开他人占据单位1.在单个单位菜单选控制2.选中单位输入-ukz。

基于蚂蚁金服AntDesignVue-Menu导航菜单实现根据初始路由自动选中对应菜单解决。。。

基于蚂蚁金服AntDesignVue-Menu导航菜单实现根据初始路由自动选中对应菜单解决。。。

基于蚂蚁⾦服AntDesignVue-Menu导航菜单实现根据初始路由⾃动选中对应菜单解决。

基于实现根据初始路由⾃动选定对应菜单,其实官⽅已经做了原⽣实现,但是VUE版本需要⾃⼰实现。

功能:刷新或直接打开某路径时,⾃动根据路由选中当前路由对应的菜单⽀持根⽬录(/)匹配规则可以⾃定义,即使同样的path下对应多个菜单也可以,总之,只要Vue路由能正确导航就能正确匹配(判断是否选中时使⽤模拟导航)注意:由于vue2和vue3版本有差异,并且同⼀份代码兼容两个版本会使得代码冗余且难维护,因此争对两个版本的vue分别提供由于逻辑复杂故采⽤TypeScript做类型声明,如果没有使⽤TypeScript的项⽬,可以把类容保存为".jsx"后缀,并且去除相关的类型声明即可具体部分⽤法参见源码最前⾯的⽂档注释部分,完整⽤法可以参考源码中的 MenuOption 类型。

具体导航到哪⾥ MenuOption.routerNavigation.location(RawLocation,原⽣VUE路由对象)决定,也可以使⽤⾃定义事件进⾏导航。

源码,vue2.x版本(可去除ts类型声明后保存为.jsx) - menu.tsximport Vue, { VNode } from 'vue'import { RawLocation } from 'vue-router/types/router'import { Route } from 'vue-router'/*** 申明式嵌套菜单导航.* 官⽅⽂档: https:///components/menu-cn/#API* <a-menu>* <MenuItem>菜单项</MenuItem>* <a-sub-menu title="⼦菜单">* <MenuItem>⼦菜单项</MenuItem>* </a-sub-menu>* </a-menu>* 根据提供的数据进⾏菜单渲染.* <p>* ⽰例:* <pre><code>* import Menu, { MenuOption } from '@/components/menu'** const menus: Array<MenuOption> = [* {* // 菜单名称,⽤于显⽰* name: '菜单1',* // [可选]⽤于⾃动导航和判断当前路由与当前菜单是否匹配,以实现刷新⾃动选中或菜单组⾃动展开(如果不需要则建议使⽤原⽣组件)* routerNavigation: {* // 是否⾃动导航,如果开启则会⾃动根据{@code location}值进⾏导航.默认开启* autoNavigation: true,* // 该属性类型为Vue原⽣导航参数类型(RawLocation)* location: { name: 'Login' }* }* },* {* name: '菜单组',* children: [* {* name: '菜单2',* routerNavigation: {* location: '/reg'* },* // 还可以为菜单项添加原⽣事件* on: {* click: () => {}* }* },* {* name: '菜单3',* routerNavigation: {* location: { path: '/reg2' }* }* }* ]* }* ];** // template中使⽤(不要忘记在components中导⼊): <Menu mode="inline" :menus="menus"></Menu>* </pre></code>* 如⽰例所⽰,只要使⽤时申明需要显⽰的菜单名字以及该菜单导航所需的对象即可(该对象默认⽤于导航已经⾃动根据当前路由进⾏⾼亮) * 但是可以禁⽤⾃动导航功能.并可以⾃定义菜单的点击事件* 如果不需要⾃动根据当前路由进⾏⾼亮和展开,请直接使⽤原⽣组件即可.* </p>* @author Laeni<m@>*/export default Vue.extend({name: 'Menu',props: {/*** 需要进⾏渲染的菜单,* 类型为{@link MenuOption}.*/menus: {type: Array,required: true},/*** 菜单类型* ⽔平: vertical vertical-right* 垂直: horizontal* 内嵌: inline*/mode: {type: String,default: ''},/*** 主题.* 详情参考官⽹: https:///components/menu-cn/#components-menu-demo-menu-themes* light dark*/theme: {type: String,default: ''},/*** 事件.* 如* {* click: () => {},* }*/on: {type: Object,default: () => {}},},data(): {// this.menus的扩展,⽅便使⽤menuOptionLocals: Array<MenuOptionLocal>,// 菜单展开的分组openKeys: Array<string>,// 菜单选中的菜单项selectedKeys: Array<string>} {return {menuOptionLocals: [],// 菜单展开的分组openKeys: [],// 菜单选中的菜单项selectedKeys: []}},methods: {/*** 初始化菜单选中状态.* <p>* 功能:* <ul>* <li>当路由改变时计算出路由对应的菜单,并选中</li>* <li>如果选择的菜单在菜单组中,则将该组展开</li>* </ul>* </p>*/initMenu(): void {// 从{@code this.menuOptionLocals}中将找出与当前路由相符的选项const menuOptionLocal: MenuOptionLocal | null = this.findMenuOptionLocal(this.menuOptionLocals, this.$route);if (menuOptionLocal !== null) {// 设置当前选择的keythis.selectedKeys = [menuOptionLocal.key];// 依次将当前菜单所在的⽗菜单展开this.openKeying(menuOptionLocal);}},/*** 渲染菜单项或菜单组.* @param menu 单个MenuOption类型的对象*/renderMenu(menu: MenuOptionLocal): VNode {if (menu.children && menu.children.length > 0) {return this.renderSubMenu(menu);} else {return this.renderMenuItem(menu);}},// 渲染菜单组renderSubMenu(menu: MenuOptionLocal): VNode {const props = {key: menu.key,title: ,}return (<a-sub-menu key={ menu.key } {...{ props }}>{ menu.children && menu.children.map(v => this.renderMenu(v)) }</a-sub-menu>);},// 渲染菜单项renderMenuItem(menu: MenuOptionLocal): VNode {const props = {disabled: menu.disabled}const on = {...menu.on,// 注⼊点击事件click: () => {// 原始事件if (menu.on && typeof menu.on.click === 'function') {menu.on.click();}// 如果配置了⾃动导航,则根据配置规则进⾏点击时⾃动导航if (menu.routerNavigation && (menu.routerNavigation.autoNavigation || menu.routerNavigation.autoNavigation === undefined)) { // 导航到指定路由(如果当前路由处于⽬标路由则不进⾏导航)if (this.$router.resolve(menu.routerNavigation.location).route.fullPath !== this.$route.fullPath) {this.$router.push(menu.routerNavigation.location);}}}}return (<a-menu-item key={ menu.key } {...{ props, on }}>{ }</a-menu-item>);},/*region private*//*** 根据菜单的层次结构⾃动⽣成该菜单下唯⼀的 key.* 添加该元素的⽗元素(如果有).* @param menus 需要⽣产key则菜单.* @param parent [递归调⽤时使⽤]⽗节点*/toMenuOptionLocal(menus: Array<MenuOption>, parent?: MenuOptionLocal): Array<MenuOptionLocal> { // 默认key前缀,如果⽗元素为空则使⽤,⽤于⽗元素const defaultPrefix = 'k';const menuLocals: Array<MenuOptionLocal> = [];menus.forEach((v, i) => {const menuLocal: MenuOptionLocal = {...v,children: undefined,key: (parent ? parent.key : defaultPrefix) + '-' + i,parent: parent,};// ⽣成⼦节点的keyif (v.children && v.children.length > 0) {menuLocal.children = this.toMenuOptionLocal(v.children, menuLocal);}// 如果可以导航则⽣成导航对象if (v.routerNavigation && v.routerNavigation.location) {menuLocal.route = this.$router.resolve(v.routerNavigation.location).route;}menuLocals.push(menuLocal);})return menuLocals;},/*** 从{@code this.menuOptionLocals}中将找出与当前路由相符的选项.* @param menuOptionLocals 菜单选项* @param route 当前路由对象* @return MenuOptionLocal 如果没有找到则返回null*/findMenuOptionLocal(menuOptionLocals: Array<MenuOptionLocal>, route: Route): MenuOptionLocal | null { // 从节点树中找出所有符合要求的节点const menuOptionLocalAll: Array<MenuOptionLocal> = this.findMenuOptionLocalAll(menuOptionLocals, route);// 从所有符合要求的节点中找出优先级最⾼的⼀个节点(如"/xxx"优先级⾼于"/")const high = this.findHighPriority(menuOptionLocalAll);// 对⾸页进⾏特殊处理if (high) {// 如果 high ⼀定不满⾜要求则跳过if (!high.routerNavigation || !high.routerNavigation.location) {return null;}const highRoute: Route = high.route || this.$router.resolve(high.routerNavigation.location).route;const homeRoute: Route = this.$router.resolve({ name: 'Home' }).route;if (highRoute.fullPath !== route.fullPath && highRoute.fullPath === homeRoute.fullPath) {return null;}}return high;},/*** 从{@code this.menuOptionLocals}中将找出与当前路由相符的<b>所有</b>选项.* @param menuOptionLocals 菜单选项* @param route 当前路由对象* @return Array<MenuOptionLocal> 返回0个或多个菜单项数组*/findMenuOptionLocalAll(menuOptionLocals: Array<MenuOptionLocal>, route: Route): Array<MenuOptionLocal> { // ⽤于放满⾜要求的选项节点const menuOptionLocalAll: Array<MenuOptionLocal> = [];for (const menu of menuOptionLocals) {// 如果有⼦元素则先找⼦元素if (menu.children && menu.children.length > 0) {const menuOptionLocal: MenuOptionLocal | null = this.findMenuOptionLocal(menu.children, route);if (menuOptionLocal) {menuOptionLocalAll.push(menuOptionLocal);}}// 如果不是⼦元素则判断当前元素是否为⽬标元素else if (menu.routerNavigation && menu.routerNavigation.location) {// 利⽤Vue模拟解析⽣成⼀个路由对象const resolveRoute: Route = menu.route || this.$router.resolve(menu.routerNavigation.location).route;// 通过⽐较{@link Route#path}和{@link Route#query}以判断该菜单是否为⽬标菜单if (route.path.indexOf(resolveRoute.path) > -1) {// 定义⼀个变量假设本元素符合要求,如果不符合则改为falselet ok: boolean = true;for (const key of Object.keys(resolveRoute.query)) {if (resolveRoute.query[key] && resolveRoute.query[key] !== route.query[key]) {ok = false;break;} else if (typeof route.query[key] === 'undefined') {ok = false;break;}}if (ok) {menuOptionLocalAll.push(menu);}}}}return menuOptionLocalAll;},// 从所有符合要求的节点中找出优先级最⾼的⼀个节点(如"/xxx"优先级⾼于"/")findHighPriority(menuOptionLocals: Array<MenuOptionLocal>): MenuOptionLocal | null {if (menuOptionLocals.length === 0) {return null;}// 假定第⼀个元素优先级最⾼let high: MenuOptionLocal = menuOptionLocals[0];// 通过path进⾏⽐较for (let i = 1; i < menuOptionLocals.length; i++) {const menu = menuOptionLocals[i];// 如果 high 或 menu ⼀定不满⾜要求则跳过if (!high.routerNavigation || !high.routerNavigation.location || !menu.routerNavigation || !menu.routerNavigation.location) { high = menu;continue;}// 利⽤Vue模拟解析⽣成⼀个路由对象const highRoute: Route = high.route || this.$router.resolve(high.routerNavigation.location).route;const menuRoute: Route = menu.route || this.$router.resolve(menu.routerNavigation.location).route;// 优先级⽐较if (menuRoute.path.indexOf(highRoute.path) > -1) {high = menu;}}return high;},/*** 依次将当前菜单所在的⽗菜单展开.* @param menuOptionLocal 当前url导航对应的菜单.*/openKeying(menuOptionLocal: MenuOptionLocal): void {if (menuOptionLocal.parent) {this.openKeys.push(menuOptionLocal.parent.key);this.openKeying(menuOptionLocal.parent);}}/*endregion*/},created(): void {// @ts-ignorethis.menuOptionLocals = this.toMenuOptionLocal(this.menus);},mounted(): void {this.initMenu();},render(): VNode {const props: any = {openKeys: this.openKeys,selectedKeys: this.selectedKeys,}if (this.mode) {props.mode = this.mode;}if (this.theme) {props.theme = this.theme;}const on: any = {// 同步展开或关闭时的标签openChange: (openKeys: never[]) => this.openKeys = openKeys,// select: (item: any) => this.selectedKeys = item.selectedKeys,}return (<a-menu {...{props, on}}>{this.menuOptionLocals.map((menu) => this.renderMenu(menu))}</a-menu>);},watch: {$route() {this.initMenu();},menus() {// @ts-ignorethis.menuOptionLocals = this.toMenuOptionLocal(this.menus);this.initMenu();}},})/*** 菜单组或菜单项.* 如果{@link #children}为空则表⽰菜单项(⽗菜单),否则为菜单.*/export interface MenuOption {/*** 菜单或菜单项的名字.*/name: string;/*** 路由导航规则,为菜单项(children 未定义或 children.length === 0)时有效.* 根据路由动态选中该菜单,可以根据该定义的判断在当前路由下是否应该选择该菜单.*/routerNavigation?: {/*** 是否根据定义的结构进⾏⾃动导航.* 即点击时⾃动导航到声明的路由中.如果在复杂条件不能⾃动导航时,可禁⽤,并且添加{@link MenuOption#on}相关事件进⾏⾃定义导航. * 如"/xxx?a=1&b=2"中,仅仅依据path"/xxx"和查询参数"a=1"作为是否选中的判断依据,但是查询参数"b=2"不作为判断依据时,* 应该在这⾥不定义查询参数"b=2"这个条件,所以不能⾃动获取并传递该参数,这个时候应该禁⽤⾃动导航.*/autoNavigation?: boolean;/*** Vue路由导航参数.其作⽤最多有两个.* 1.点击时⾃动导航({@link #autoNavigation}为{@code undefined}或为{@code true}时有效.)* 2.⾃动根据其定义的类容判断是否应该选中该菜单.*/location: RawLocation;};/*** ⼦菜单组或者⼦菜单项.* 如果为空则本菜单表⽰菜单组(⽗菜单),否则为菜单项*/children?: Array<MenuOption>;/*** 菜单或菜单项logo图标(TODO 暂未实现, 可为框架的图标名或阿⾥⽮量图标库的名称).*/logo?: string;/*** Menu.Item事件(html原⽣事件),为菜单项(children.length > 0)时有效.*/on?: any;/*** 是否禁⽤.*/disabled?: boolean;}/*** 仅供本组件使⽤的扩展*/interface MenuOptionLocal extends MenuOption {/*** 菜单组合菜单项的唯⼀标识,⽤于框架组件菜单设置选中状态与展开状态.*/key: string;/*** ⼦菜单或者⼦菜单项.* 如果为空则表⽰菜单项(⽗菜单),否则为菜单*/children?: Array<MenuOptionLocal>;/*** 如果该菜单项⽗元素,则该属性为其⽗元素,⽅便反向遍历.*/parent?: MenuOptionLocal;/*** 本组件对应的路由对象.*/route?: Route;}View Code源码,vue3.x版本(可去除ts类型声明后保存为.jsx) - menu.tsximport { VNode, defineComponent, PropType } from 'vue'import { RouteLocationRaw } from 'vue-router'import { RouteLocation } from 'vue-router'/*** 申明式嵌套菜单导航.* 官⽅⽂档: https:///components/menu-cn/#API* <a-menu>* <MenuItem>菜单项</MenuItem>* <a-sub-menu title="⼦菜单">* <MenuItem>⼦菜单项</MenuItem>* </a-sub-menu>* </a-menu>* 根据提供的数据进⾏菜单渲染.* <p>* ⽰例:* <pre><code>* import Menu, { MenuOption } from '@/components/menu'** const menus: Array<MenuOption> = [* {* // 菜单名称,⽤于显⽰* name: '菜单1',* // [可选]⽤于⾃动导航和判断当前路由与当前菜单是否匹配,以实现刷新⾃动选中或菜单组⾃动展开(如果不需要则建议使⽤原⽣组件) * routerNavigation: {* // 是否⾃动导航,如果开启则会⾃动根据{@code location}值进⾏导航.默认开启* autoNavigation: true,* // 该属性类型为Vue原⽣导航参数类型(RouteLocationRaw)* location: { name: 'Login' }* }* },* {* name: '菜单组',* children: [* {* name: '菜单2',* routerNavigation: {* location: '/reg'* },* // 还可以为菜单项添加原⽣事件* on: {* click: () => {}* }* },* {* name: '菜单3',* routerNavigation: {* location: { path: '/reg2' }* }* }* ]* }* ];** // template中使⽤(不要忘记在components中导⼊): <Menu mode="inline" :menus="menus"></Menu>* </pre></code>* 如⽰例所⽰,只要使⽤时申明需要显⽰的菜单名字以及该菜单导航所需的对象即可(该对象默认⽤于导航已经⾃动根据当前路由进⾏⾼亮) * 但是可以禁⽤⾃动导航功能.并可以⾃定义菜单的点击事件* 如果不需要⾃动根据当前路由进⾏⾼亮和展开,请直接使⽤原⽣组件即可.* </p>* @author Laeni<m@>*/export default defineComponent({name: 'Menu',props: {/*** 需要进⾏渲染的菜单,* 类型为{@link MenuOption}.*/menus: {type: Array as PropType<Array<MenuOption>>,required: true},/*** 菜单类型* ⽔平: vertical vertical-right* 垂直: horizontal* 内嵌: inline*/mode: {type: String,default: ''},/*** 主题.* 详情参考官⽹: https:///components/menu-cn/#components-menu-demo-menu-themes* light darktheme: {type: String,default: 'light'},/*** 事件.* 如* {* click: () => {},* }*/on: {type: Object,default: () => {// do nothing.}},},data() {return {menuOptionLocals: [],// 菜单展开的分组openKeys: [],// 菜单选中的菜单项selectedKeys: []} as {// this.menus的扩展,⽅便使⽤menuOptionLocals: Array<MenuOptionLocal>;// 菜单展开的分组openKeys: Array<string>;// 菜单选中的菜单项selectedKeys: Array<string>;}},methods: {/*** 初始化菜单选中状态.* <p>* 功能:* <ul>* <li>当路由改变时计算出路由对应的菜单,并选中</li>* <li>如果选择的菜单在菜单组中,则将该组展开</li>* </ul>* </p>*/initMenu(): void {// 从{@code this.menuOptionLocals}中将找出与当前路由相符的选项const menuOptionLocal: MenuOptionLocal | null = this.findMenuOptionLocal(this.menuOptionLocals, this.$route);if (menuOptionLocal !== null) {// 设置当前选择的keythis.selectedKeys = [menuOptionLocal.key];// 依次将当前菜单所在的⽗菜单展开this.openKeying(menuOptionLocal);}},/*** 渲染菜单项或菜单组.* @param menu 单个MenuOption类型的对象*/renderMenu(menu: MenuOptionLocal): VNode {if (menu.children && menu.children.length > 0) {return this.renderSubMenu(menu);} else {return this.renderMenuItem(menu);}},// 渲染菜单组renderSubMenu(menu: MenuOptionLocal): VNode {return (<a-sub-menu key={ menu.key } title={}>{ menu.children && menu.children.map(v => this.renderMenu(v)) }</a-sub-menu>);},// 渲染菜单项renderMenuItem(menu: MenuOptionLocal): VNode {// 注⼊点击事件const click = () => {// 原始事件if (menu.on && typeof menu.on.click === 'function') {menu.on.click();// 如果配置了⾃动导航,则根据配置规则进⾏点击时⾃动导航if (menu.routerNavigation && (menu.routerNavigation.autoNavigation || menu.routerNavigation.autoNavigation === undefined)) { // 导航到指定路由(如果当前路由处于⽬标路由则不进⾏导航)if (this.$router.resolve(menu.routerNavigation.location).fullPath !== this.$route.fullPath) {this.$router.push(menu.routerNavigation.location);}}}return (<a-menu-item key={ menu.key } disabled={menu.disabled} onClick={click} on={menu.on}>{ }</a-menu-item>);},/*region private*//*** 根据菜单的层次结构⾃动⽣成该菜单下唯⼀的 key.* 添加该元素的⽗元素(如果有).* @param menus 需要⽣产key则菜单.* @param parent [递归调⽤时使⽤]⽗节点*/toMenuOptionLocal(menus: Array<MenuOption>, parent?: MenuOptionLocal): Array<MenuOptionLocal> { // 默认key前缀,如果⽗元素为空则使⽤,⽤于⽗元素const defaultPrefix = 'k';const menuLocals: Array<MenuOptionLocal> = [];menus.forEach((v, i) => {const menuLocal: MenuOptionLocal = {...v,children: undefined,key: (parent ? parent.key : defaultPrefix) + '-' + i,parent: parent,};// ⽣成⼦节点的keyif (v.children && v.children.length > 0) {menuLocal.children = this.toMenuOptionLocal(v.children, menuLocal);}// 如果可以导航则⽣成导航对象if (v.routerNavigation && v.routerNavigation.location) {menuLocal.route = this.$router.resolve(v.routerNavigation.location);}menuLocals.push(menuLocal);})return menuLocals;},/*** 从{@code this.menuOptionLocals}中将找出与当前路由相符的选项.* @param menuOptionLocals 菜单选项* @param route 当前路由对象* @return MenuOptionLocal 如果没有找到则返回null*/findMenuOptionLocal(menuOptionLocals: Array<MenuOptionLocal>, route: RouteLocation): MenuOptionLocal | null { // 从节点树中找出所有符合要求的节点const menuOptionLocalAll: Array<MenuOptionLocal> = this.findMenuOptionLocalAll(menuOptionLocals, route);// 从所有符合要求的节点中找出优先级最⾼的⼀个节点(如"/xxx"优先级⾼于"/")const high = this.findHighPriority(menuOptionLocalAll);// 对⾸页进⾏特殊处理if (high) {// 如果 high ⼀定不满⾜要求则跳过if (!high.routerNavigation || !high.routerNavigation.location) {return null;}const highRoute: RouteLocation = high.route || this.$router.resolve(high.routerNavigation.location);const homeRoute: RouteLocation = this.$router.resolve({ name: 'Home' });if (highRoute.fullPath !== route.fullPath && highRoute.fullPath === homeRoute.fullPath) {return null;}}return high;},/*** 从{@code this.menuOptionLocals}中将找出与当前路由相符的<b>所有</b>选项.* @param menuOptionLocals 菜单选项* @param route 当前路由对象* @return Array<MenuOptionLocal> 返回0个或多个菜单项数组*/findMenuOptionLocalAll(menuOptionLocals: Array<MenuOptionLocal>, route: RouteLocation): Array<MenuOptionLocal> { // ⽤于放满⾜要求的选项节点const menuOptionLocalAll: Array<MenuOptionLocal> = [];for (const menu of menuOptionLocals) {// 如果有⼦元素则先找⼦元素if (menu.children && menu.children.length > 0) {const menuOptionLocal: MenuOptionLocal | null = this.findMenuOptionLocal(menu.children, route);if (menuOptionLocal) {menuOptionLocalAll.push(menuOptionLocal);}}// 如果不是⼦元素则判断当前元素是否为⽬标元素else if (menu.routerNavigation && menu.routerNavigation.location) {// 利⽤Vue模拟解析⽣成⼀个路由对象const resolveRoute: RouteLocation = menu.route || this.$router.resolve(menu.routerNavigation.location);// 通过⽐较{@link RouteLocation#path}和{@link RouteLocation#query}以判断该菜单是否为⽬标菜单if (route.path.indexOf(resolveRoute.path) > -1) {// 定义⼀个变量假设本元素符合要求,如果不符合则改为falselet ok = true;for (const key of Object.keys(resolveRoute.query)) {if (resolveRoute.query[key] && resolveRoute.query[key] !== route.query[key]) {ok = false;break;} else if (typeof route.query[key] === 'undefined') {ok = false;break;}}if (ok) {menuOptionLocalAll.push(menu);}}}}return menuOptionLocalAll;},// 从所有符合要求的节点中找出优先级最⾼的⼀个节点(如"/xxx"优先级⾼于"/")findHighPriority(menuOptionLocals: Array<MenuOptionLocal>): MenuOptionLocal | null {if (menuOptionLocals.length === 0) {return null;}// 假定第⼀个元素优先级最⾼let high: MenuOptionLocal = menuOptionLocals[0];// 通过path进⾏⽐较for (let i = 1; i < menuOptionLocals.length; i++) {const menu = menuOptionLocals[i];// 如果 high 或 menu ⼀定不满⾜要求则跳过if (!high.routerNavigation || !high.routerNavigation.location || !menu.routerNavigation || !menu.routerNavigation.location) { high = menu;continue;}// 利⽤Vue模拟解析⽣成⼀个路由对象const highRoute: RouteLocation = high.route || this.$router.resolve(high.routerNavigation.location);const menuRoute: RouteLocation = menu.route || this.$router.resolve(menu.routerNavigation.location);// 优先级⽐较if (menuRoute.path.indexOf(highRoute.path) > -1) {high = menu;}}return high;},/*** 依次将当前菜单所在的⽗菜单展开.* @param menuOptionLocal 当前url导航对应的菜单.*/openKeying(menuOptionLocal: MenuOptionLocal): void {if (menuOptionLocal.parent) {this.openKeys.push(menuOptionLocal.parent.key);this.openKeying(menuOptionLocal.parent);}}/*endregion*/},created(): void {this.menuOptionLocals = this.toMenuOptionLocal(this.menus);},mounted(): void {this.initMenu();},render(): VNode {return (<a-menu theme={this.theme} mode={this.mode} openKeys={this.openKeys} selectedKeys={this.selectedKeys}onOpenChange={(openKeys: string[]) => this.openKeys = openKeys}>{this.menuOptionLocals.map((menu) => this.renderMenu(menu))}</a-menu>);},watch: {$route() {this.initMenu();},menus() {this.menuOptionLocals = this.toMenuOptionLocal(this.menus);this.initMenu();}},})/*** 菜单组或菜单项.* 如果{@link #children}为空则表⽰菜单项(⽗菜单),否则为菜单.*/export interface MenuOption {/*** 菜单或菜单项的名字.*/name: string;/*** 路由导航规则,当菜单项(children 未定义或 children.length === 0)时有效.* 根据路由动态选中该菜单,可以根据该定义的判断在当前路由下是否应该选择该菜单.*/routerNavigation?: {/*** 是否根据定义的结构进⾏⾃动导航.* 即点击时⾃动导航到声明的路由中.如果在复杂条件不能⾃动导航时,可禁⽤,并且添加{@link MenuOption#on}相关事件进⾏⾃定义导航. * 如"/xxx?a=1&b=2"中,仅仅依据path"/xxx"和查询参数"a=1"作为是否选中的判断依据,但是查询参数"b=2"不作为判断依据时,* 应该在这⾥不定义查询参数"b=2"这个条件,所以不能⾃动获取并传递该参数,这个时候应该禁⽤⾃动导航.*/autoNavigation?: boolean;/*** Vue路由导航参数.其作⽤最多有两个.* 1.点击时⾃动导航({@link #autoNavigation}为{@code undefined}或为{@code true}时有效.)* 2.⾃动根据其定义的类容判断是否应该选中该菜单.*/location: RouteLocationRaw;};/*** ⼦菜单组或者⼦菜单项.* 如果为空则本菜单表⽰菜单组(⽗菜单),否则为菜单项*/children?: Array<MenuOption>;/*** 菜单或菜单项logo图标(TODO 暂未实现, 可为框架的图标名或阿⾥⽮量图标库的名称).*/logo?: string;/*** Menu.Item事件(html原⽣事件),为菜单项(children.length > 0)时有效.*/on?: any;/*** 是否禁⽤.*/disabled?: boolean;}/*** 仅供本组件使⽤的扩展*/interface MenuOptionLocal extends MenuOption {/*** 菜单组合菜单项的唯⼀标识,⽤于框架组件菜单设置选中状态与展开状态.*/key: string;/*** ⼦菜单或者⼦菜单项.* 如果为空则表⽰菜单项(⽗菜单),否则为菜单*/children?: Array<MenuOptionLocal>;/*** 如果该菜单项⽗元素,则该属性为其⽗元素,⽅便反向遍历. */parent?: MenuOptionLocal;/*** 本组件对应的路由对象.*/route?: RouteLocation;}View Code。

EXCEL随机数据生成方法

EXCEL随机数据生成方法

求教:我的电子表格中rand()函数的取值范围是-1到1,如何改回1到0回答:有两种修改办法:是[1-rand()]/2,或[1+rand()]/2。

效果是一样的,都可生成0到1之间的随机数电子表格中RAND()函数的取值范围是0到1,公式如下:=RAND()如果取值范围是1到2,公式如下:=RAND()*(2-1)+1RAND( )注解:若要生成 a 与 b 之间的随机实数:=RAND()*(b-a)+a如果要使用函数 RAND 生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,保持编辑状态,然后按 F9,将公式永久性地改为随机数。

示例RAND() 介于 0 到 1 之间的一个随机数(变量)=RAND()*100 大于等于 0 但小于 100 的一个随机数(变量)excel产生60-70随机数公式=RAND()*10+60要取整可以用=int(RAND()*10+60)我想用excel在B1单元个里创建一个50-80的随机数且这个随机数要大于A1单元个里的数值,请教大家如何编写公式!整数:=ROUND(RAND()*(80-MAX(50,A1+1))+MAX(50,A1+1),0)无需取整数:=RAND()*(80-MAX(50,A1))+MAX(50,A1)要求:1,小数保留2,1000-1100范围3,不要出现重复=LEFT(RAND()*100+1000,6)至于不许重复你可以设置数据有效性在数据-有效性设=countif(a:a,a1)=1选中a列设有效性就好了其他列耶可以急求excel随机生成数字的公式,取值要在之间,不允许重复出现,保留两位小数,不允许变藏=round(RAND()*5+,2)公式下拉Excel随机数Excel具有强大的函数功能,使用Excel函数,可以轻松在Excel表格产生一系列随机数。

1、产生一个小于100的两位数的整数,输入公式=ROUNDUP(RAND()*100,0)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中 清炒虾仁 炒圆白菜 清炒荷兰豆 青椒牛肉 番茄菜花 菠菜摊鸡蛋 清炒虾仁 清炒西兰花 菠菜木耳 炖鱼 西红柿炒鸡蛋 虾皮油菜 清炒虾仁 菠菜木耳 清炒荷兰豆 炖鱼 炒圆白菜 清炒西兰花 微波炉鸡翅 番茄菜花 番茄菜花 肉菜 素菜 素菜 肉菜 素菜 素菜 肉菜 素菜 素菜 肉菜 素菜 素菜 肉菜 素菜 素菜 肉菜 素菜 素菜 肉菜 素菜 素菜 24 37 43 23 43 35 22 30 51 25 42 43 23 34 42 27 48 46 25 30 41
晚 清炒虾仁 清炒菠菜 菠菜木耳 炖鱼 菠菜木耳 土豆丝 油焖大虾 葱烧豆腐 炒豇豆 青椒牛肉 西红柿炒鸡蛋 菠菜木耳 炖鱼 清炒油麦菜 西红柿炒鸡蛋 炖牛肉 炒茄丁 炒空心菜 青椒牛肉 葱烧豆腐 耗油生菜
周二
周三
周四
周五
周六
周日
双击红色再 单击绿色空 格菜单自动 变换 5
早 周一 流食 蔬菜 干的 流食 蔬菜 干的 流食 蔬菜 干的 流食 蔬菜 干的 流食 蔬菜 干的 流食 蔬菜 干的 流食 蔬菜 干的 5 11 17 2 11 17 6 12 21 7 12 19 5 12 20 3 11 18 5 10 16 豆奶麦片粥 肉菜 西兰花 素菜 油条 素菜 红豆杂粮粥 肉菜 西兰 西红柿鸡蛋汤肉菜 豆芽 素菜 汉堡 素菜 豆奶麦片粥 肉菜 豆芽 素菜 烧饼加鸡蛋 素菜 大米小米粥 肉菜 西兰花 素菜 面包 素菜 豆奶麦片粥 肉菜 菠菜 素菜 豆包 素菜 24 50 32 25 45 38 24 31 43 23 42 44 24 43 32 23 50 31 28 45 45
相关文档
最新文档