- 浏览: 5173486 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
一、环境搭建
略,请见https://wallimn.iteye.com/blog/2437140。
二、MySQL数据库脚本
二、后台JS
(一)数据库基础类db.js
(二)后台服务类dbservice.js
三、前端页面navmenu.html
略,请见https://wallimn.iteye.com/blog/2437140。
二、MySQL数据库脚本
create table t_menu( id int primary key auto_increment, tree_id int , tree_pid int, title varchar(60), url varchar(255), target varchar(60), icon varchar(255), remark varchar(255) ) default charset = utf8 ; insert into t_menu(tree_id,tree_pid,title,url,target,icon,remark) values(1,0,'系统管理','about:blank','main',null,null); insert into t_menu(tree_id,tree_pid,title,url,target,icon,remark) values(2,1,'用户管理','about:blank','main',null,null); insert into t_menu(tree_id,tree_pid,title,url,target,icon,remark) values(3,1,'角色管理','about:blank','main',null,null); insert into t_menu(tree_id,tree_pid,title,url,target,icon,remark) values(4,1,'功能管理','about:blank','main',null,null); insert into t_menu(tree_id,tree_pid,title,url,target,icon,remark) values(5,0,'业务管理','about:blank','main',null,null); insert into t_menu(tree_id,tree_pid,title,url,target,icon,remark) values(6,5,'JAVA业务','about:blank','main',null,null); insert into t_menu(tree_id,tree_pid,title,url,target,icon,remark) values(7,5,'JavaScript业务','about:blank','main',null,null); insert into t_menu(tree_id,tree_pid,title,url,target,icon,remark) values(8,5,'C#业务','about:blank','main',null,null);
二、后台JS
(一)数据库基础类db.js
var mysql = require('mysql'); // 创建一个数据库连接池 var pool = mysql.createPool({ connectionLimit: 50, host:"127.0.0.1", port:"3306", user: "root", password: "", database: "test" }); /** * 执行SQL,增、删、改、查全用这一个函数 * 参数: * sql:要执行的SQL语句 * P:参数,如果没有可不传,可以是数组或对象类型 * C:回调函数,执行成功后调用的语句 */ exports.query = function (sql, P, C) { var params = []; var callback; if (arguments.length == 2 && typeof arguments[1] == 'function') { callback = P; } else if (arguments.length == 3 && Array.isArray(arguments[1]) && typeof arguments[2] == 'function') { params = P; callback = C; } else { //会导致程序崩溃退出。 throw new Error('对不起,参数个数不匹配或者参数类型错误'); } // 从池子里面拿一个可以使用的连接 pool.getConnection(function (err, connection) { if(err){ callback.apply(null,[err]); return; } connection.query(sql, params, function () { // 使用完毕之后,将该连接释放回连接池 connection.release(); callback.apply(null, arguments); }); }); };
(二)后台服务类dbservice.js
var db = require("./db.js"); /* * 数据库服务类。 */ /** *生成导航菜单 * * @param {*} callback 回调函数 */ function selectNavMenus(callback){ db.query("select * from t_menu order by tree_pid,tree_id",function(error,results){ if(error){ callback(error); } else{ var treeArray = resultsToTreeArray(results); callback(null,treeArray); } //callback.apply(null,arguments); }); } /** *转化为导航菜单使用的数组,只考虑了菜单分两级。 * * @param {*} error * @param {*} results * @returns */ function resultsToTreeArray(results){ var treeArray = []; var len = results.length; for(var i=0;i<len; i++){ if(results[i].tree_pid===0){//根的ID为0 results[i].children=[]; treeArray.push(results[i]); } } for(var j=0; j<treeArray.length;j++){ for(var i=0;i<len; i++){ if(results[i].tree_pid===treeArray[j].tree_id){ treeArray[j].children.push(results[i]); } } } return treeArray; } module.exports = { "selectNavMenus":selectNavMenus, "author":'wallimn', "version":'20190204' }
三、前端页面navmenu.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>electron.js+mysql示例, by wallimn, 2019-02-05</title> <link rel="stylesheet" type="text/css" href="./libs/element-ui.v2.4.9/theme-chalk/index.css"> <style> body,html,#app{ height:100%; margin:0; } </style> </head> <body> <div id="app"> <el-menu :default-active="activeIndex" class="el-menu-main" mode="horizontal" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b" @select="handleSelect"> <template v-for="item in menus"> <template v-if="item.children.length==0"> <el-menu-item :index="'mi'+item.id" :key="item.id">{{item.title}}</el-menu-item> </template> <template v-else> <el-submenu v-if="item.children.length>0" :index="'mi'+item.id" :key="item.id"> <template slot="title">{{item.title}}</template> <el-menu-item v-for="subitem in item.children" :key="subitem.id" :index="'mi'+subitem.id">{{subitem.title}}</el-menu-item> </el-submenu> </template> </template> </el-menu> </div> <script type="text/javascript" src="./libs/vue.js"></script> <!-- 引入组件库 --> <script src="./libs/element-ui.v2.4.9/index.js"></script> <script type="text/javascript"> // Vue实例化 var doit = new Vue({ el:'#app', data: function(){ return { menus:[], activeIndex:"1", service:require('./dbservice.js') }; }, created:function(){ this.loadMenuData(); }, methods: { loadMenuData:function(){ var self = this; //var db = require('./db'); self.service.selectNavMenus(function(err,rows){ if(err){ console.error(err); } else{ var len = rows.length; self.menus = []; for(var i=0; i<len; i++ ){ self.menus.push(rows[i]); } if(len>0){ if(self.menus[0].children.length==0){ self.activeIndex="mi"+self.menus[0].id; } else{ self.activeIndex = "mi"+self.menus[0].children[0].id; } console.log("设置当前菜单:"+self.activeIndex); } } }); } } //end of methods }); </script> </body> </html>
- electron-quick-start20190205加导航菜单.zip (1 MB)
- 下载次数: 7
发表评论
-
gradle编译错误:Could not find method compile() for arguments
2020-09-19 10:50 18621编译(IDEA+Gradle)一个别人的工程,出现一个 ... -
netty心跳检查之UDP篇
2019-09-15 08:50 2456部分UDP通信场景中,需要客户端定期发送心跳信息,以获取终 ... -
解决tomcat部署两个SpringBoot应用提示InstanceAlreadyExistsException
2019-06-30 11:49 3446两个SpringBoot应用部署在一个Tomcat中,单独 ... -
Eclipse配置MyBatis代码自动化功能
2019-06-29 10:16 18121.安装插件 Eclipse中,Help->Ecli ... -
vue.js中使用qrcode生成二维码
2019-05-20 00:00 7677一、安装包 npm install qrcodejs2 --s ... -
MySQL插入数据报错: Incorrect string value: '\xFD\xDE'
2019-03-31 23:19 1274我MySQL数据库用的uft-8字符集,插入数据一直很正常 ... -
vue自定义组件并双向绑定属性
2019-03-08 22:46 3268做了两个子组件,原理基本一样,一个是使用原生的select ... -
vue-router简单示例
2019-03-05 00:32 1174写个基本完整、稍有借鉴意义的示例,防止自己忘记。 &l ... -
“联通充值系统繁忙”轻松应对
2019-02-06 11:03 3992大过年的,联通充个值一直报“充值系统繁忙”。昨天晚上试了几 ... -
electron.js数据库应用---入门(mysql+element-ui)
2019-01-27 23:19 7524我的机器:Windows10,64 ... -
SpringMVC 在controller层中注入成员变量request,是否线程安全
2018-12-17 21:17 2759@RestController public class ... -
VueJS 组件参数名命名与组件属性转化
2018-12-03 00:00 2089转自:https://www.cnblogs.com/meiy ... -
vue-resource拦截器实现token发送及检验自动化
2018-11-16 22:38 3084用了很长时间vue-resource,最近思考$http发 ... -
element-ui试用手记
2018-10-29 20:25 1768element-ui、iviewui都以vue.js为基础 ... -
iviewui中表格控件中render的使用示例
2018-07-07 16:46 9798示例了如何在表格中显示按钮,如何将代码转化为文字。 i ... -
Tomcat错误“Alias name tomcat does not identify a key entry”解决
2018-07-05 21:39 6632申请到了阿里云的证书后,下载、按照说明生成jks格式证书、 ... -
阿里云免费证书“fileauth.txt内容配置错误”解决
2018-07-05 20:43 5329最近研究微信小程序开发,上阿里云申请了个证书,使用文件验证 ... -
springboot2.0跨域配置
2018-07-04 22:11 5295springboot2.0跨域配置: 一、代码 ... -
微信小程序使用code换openid的方法(JAVA、SpringBoot)
2018-07-01 21:52 10416微信小程序序的代码中提示,使用code换取openid,但 ... -
SpringBoot2.0启用https协议
2018-06-28 23:00 7806SpringBoot2.0之后,启用https协议的方式与 ...
相关推荐
标题 "electron.js数据库应用---入门(mysql+element-ui)" 指的是一个教程或者项目,它涵盖了使用Electron.js框架创建桌面应用程序,并结合MySQL数据库和Element-UI库进行数据管理的入门知识。 Electron.js是一个流行...
`electron-vue`是基于Vue.js和Electron的集成开发环境,它为Electron应用提供了Vue的开发支持。它包含了Vue CLI工具、Webpack配置、Vue Router、Vuex等,使得在Electron环境中开发Vue应用变得更加简单。通过`...
使用Vue+Electron(electron-builder + electron-updater + electron-log)实现桌面应用程序的开发,面向所有electron使用者学习使用,内部源码都有注释。可参考文章(http://t.csdn.cn/BLM6Y)使用。
electron-vue + vue-cli + element-ui 实时热更新版,electronv12.0.4框架,打包好的框架,拿来即用,实时热更新,提高开发3倍效率
标题 "electron打包资源下载30.0.9/electron-v30.0.9-win32-ia32.zip" 指的是一个用于 Electron 应用程序打包的资源包,版本为30.0.9,适用于Windows操作系统,32位架构。这个资源包包含了构建和运行基于Electron...
Electron是由GitHub开发的,它结合了Chromium浏览器和Node.js环境,允许开发者使用HTML、CSS和JavaScript来构建原生桌面应用。这里的"win32-x64"表示这是针对Windows 64位系统的构建。Electron使得开发者能够利用Web...
Element-UI则是一个基于Vue.js的组件库,提供了丰富的UI组件,如表格、按钮、对话框、下拉菜单等,用于快速构建美观的企业级应用界面。 Vue.js的核心特性包括其声明式的编程方式、虚拟DOM、组件化开发以及强大的...
Electron允许开发者使用Web技术(如HTML、CSS和JavaScript)来创建桌面应用,同时提供了Node.js环境以实现后台功能。 描述中同样提到"electron-v22.3.27-win32-x64.zip",意味着这是一个zip压缩包,包含了运行...
通过结合 Chromium 和 Node.js 的功能,Electron 实现了在桌面环境中运行 web 应用的可能,极大地简化了桌面应用的开发流程。 Fiddle 在这里扮演的是一个实验台的角色,它提供了一个简洁的界面,让开发者可以快速...
你可以使用 Electron Fiddle 创建并运行小段 Electron 程序,从一个简单的模板开始,随心所欲地挥洒你的创意,选择一个 Electron 版本欣赏运行效果。最后,你可以将其下载保存,或推送 GitHub Gist 上,所有人都可以...
electron-v21.4.4-win32-x64.zip
electron 打包时每次都会下载一遍相应版本的包,这里我们可以利用打包命令直接读取本地的包,节省打包时间 electron-packager ./ electron-beian --win --arch=x64 --out ../outputs --electron-zip-dir=../electron...
electron-quick-start-master 快速入门教程electron-quick-start-master 快速入门教程electron-quick-start-master 快速入门教程electron-quick-start-master 快速入门教程electron-quick-start-master 快速入门教程...
electron-vue + vue-cli + element-ui 实时热更新版,electronvv2.0.18框架,打包好的框架,拿来即用,实时热更新,提高开发3倍效率
新下载得electron项目打包时经常会出错,是由于依赖环境不完善原因造成的,主要是缺少标题里的三样。下载后拷贝到C:\Users\XXX\AppData\Local\electron\Cache下使用
标签中包含的“nodejs”,表明Electron是基于Node.js的,这意味着在Electron应用中,开发者可以使用Node.js的API和模块,实现后台数据处理、文件操作等功能。 压缩包内的文件名列表揭示了Electron运行所需的组件和...
electron打包需要的electron-v32.2.5-win32-x64资源包
在IT行业中,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。而Electron是GitHub开发的一款开源框架,它允许我们使用Web技术(如HTML、CSS和JavaScript)构建跨...