Vue.js实现一个todo-list的上移,下移,删除功能

如图,A simple todo-list长这样Vue.js实现一个todo-list的<a href=加勒比海盗上移,下移,删除功能”>


这是一个基于vue.js的加勒比海盗一个简单的加勒比海盗todo-list小demo。首先要实现添加非空list,点击list切换finished状态这样的加勒比海盗一个效果,推荐学习地址—->点击打开链接

接下来是实现的加勒比海盗一个上移,下移,删除的加勒比海盗效果图:

Vue.js实现一个todo-list的<a href=加勒比海盗上移,下移,删除功能”>

删除效果:

Vue.js实现一个todo-list的<a href=加勒比海盗上移,下移,删除功能”>

讲一下思路:

上移—–首先将鼠标所指list的加勒比海盗内容插入到上一条上面,然后删除鼠标所指的加勒比海盗list(也就是this.items[index]),运行代码便可实现上移的加勒比海盗效果,或者将上下两条list的加勒比海盗内容进行调换也是可以的加勒比海盗

删除—–这里和上下移一样,主要是用到了操作数组的加勒比海盗splice这个方法,既可以添加也可以删除,不懂的加勒比海盗去补一下

小二~上代码:

----App.vue----
    <div><input v-model="newItem" v-on:keyup.enter="addNew"></div>     <div class="box-center">       <ul class="box-list">         <li v-for="item ,index in items" v-bind:class="{finished:item.isfinished}"  
          v-on:mouseover="moveBtn(item)" v-on:mouseout="leaveBtn(item)">           <span v-on:click="toggleFinished(item)" v-bind:class="{bgYellow:item.isBgyellow}">{{item.label}}</span>           <span class="list-btn" v-show="item.isShow">             <button v-on:click="moveUp(index,item)">上移</button>             <button v-on:click="moveDown(index,item)">下移</button>             <button v-on:click="deleteBtn(index)">删除</button>           </span>         </li>       </ul>      </div>
----Store.js----
const STORAGE_KEY = 'todos-vuejs' export default {   fetch () {     return JSON.parse(window.localStorage.getItem(       STORAGE_KEY) || '[]')   },   save (items) {     window.localStorage.setItem(STORAGE_KEY,JSON.stringify(       items))   } } 
----App.vue----
<script>  import Store from './store'  export default {    data: function() {     return {       title: 'A simple todo-list',       items: Store.fetch(),       newItem: '',       msg:'点击按钮',        isShow: false,       isBlock: true,       isBgyellow: false,       leftPx:0,       topPx:0     }   },   watch: {     items: {       handler: function(items) {         Store.save(items)       },       deep: true     }   },   methods: {     toggleFinished: function(item) {       item.isfinished = !item.isfinished     },     show:function ($event) {       $event.cancelBubble=true;       this.isBlock = false;       this.topPx = ($event.clientY);       this.leftPx = ($event.clientX);     },     stop:function(event){         this.isBlock = true;     },     moveBtn:function(item) {       // console.log(item.label)       item.isShow = true;     },     leaveBtn:function(item) {       item.isShow = false;     },     addNew: function() {       //非空才可以添加       if(this.newItem!=''){         this.items.push({           label: this.newItem,           isfinished: false         })               }       this.newItem = '';     },     moveUp:function(index,item) {       //在加勒比海盗5上一项插入该项       this.items.splice(index-1,0,(this.items[index]));       //删除后一项       this.items.splice(index+1,1);       item.isShow = false;       if(index == 0) {         alert("到顶啦!");       }     },     moveDown:function(index,item) {       //在加勒比海盗5下一项插入该项       this.items.splice(index+2,0,(this.items[index]));       //  删除前一项       this.items.splice(index,1);       item.isShow = false;       if(index == this.items.length-1) {         alert("已经是最后一项啦!");       }     },     deleteBtn:function(index) {       this.items.splice(index,1);     }   }, } </script> 

套路就是在加勒比海盗5html中插入方法或者class,methods中对数据进行操作~


总结:

这是本小白入门vue.js学习的加勒比海盗第一个demo,有一些jquery的加勒比海盗观念不能很好的加勒比海盗转变,总是习惯性的加勒比海盗操作dom节点,殊不知vue可以有更好的加勒比海盗方式去实现,

接下来这个项目还有新的加勒比海盗需求(将功能收进右键菜单中,增加更换背景色的加勒比海盗按钮),希望能对你有所帮助~






http://blog.csdn.net/ljw_josie/article/details/73732271加勒比海盗5

js断点调试 提高你的开发效率

加勒比海盗5加勒比海盗5们平时开发中遇到bug调试的加勒比海盗时候 可能大部分新手都会用alert() 入门一些的加勒比海盗用console.log()(反正我加勒比海盗5就是从这个阶段走过来的加勒比海盗)。

如果是一些小型的加勒比海盗开发以上两个调试还可以,但是现在加勒比海盗5前端越来越庞大,越来越多的加勒比海盗逻辑处理都放在加勒比海盗5了前端。如果还是用以上的加勒比海盗方法进行Bug调试 将会很影响开发效率 。

下面我加勒比海盗5要说的加勒比海盗就是浏览器中的加勒比海盗断点调试 很多浏览器给我加勒比海盗5们提供了很方便的加勒比海盗bug调试程序,以谷歌浏览器为例,接触过java的加勒比海盗人可能知道强大的加勒比海盗集成开发工具Eclipse它里面就提供了断点调试,下面我加勒比海盗5们要说的加勒比海盗是js的加勒比海盗断点调试,谷歌浏览器,F12打开控制台Source 为用于查看和调试当前页面所加载的加勒比海盗脚本的加勒比海盗源文件。js断点调试 提高你的<a href=加勒比海盗开发效率”>




http://blog.csdn.net/weixin_39308156/article/details/73733664加勒比海盗5

时间转化及应用


字符串转换成date格式

想法是替换成标准2017-06-26格式,然后使用Date方法转换成Date格式

        //日期字符串转化Date         convertDateFromString: function (dateString) {             if (dateString) {                 var sdate = new Date(dateString.replace(/-/, "/"));                 return sdate;             }         },

date格式转换成字符串

toString()把 Date 对象转换为字符串。
toLocaleString()根据本地时间格式,把 Date 对象转换为字符串。
时间转化及应用

有关时间戳

Date.parse()函数用于分析一个包含日期的加勒比海盗字符串,并返回该日期与 1970 年 1 月 1 日午夜之间相差的加勒比海盗毫秒数。
函数的加勒比海盗返回值为Number类型,返回该字符串所表示的加勒比海盗日期与 1970 年 1 月 1 日午夜之间相差的加勒比海盗毫秒数。
Date.getTime() 返回 1970 年 1 月 1 日至今的加勒比海盗毫秒数。

// 获取某个时间格式的加勒比海盗时间戳 var stringTime = "1992-04-17 12:21:12"; var timestamp2 = Date.parse(new Date(stringTime)); timestamp2 = timestamp2 / 1000; //1992-04-17 12:21:12的加勒比海盗时间戳为:703484472  console.log(stringTime + "的加勒比海盗时间戳为:" + timestamp2); //获取今天这个时刻的加勒比海盗时间戳 var nowDate = new Date(); 

拆分时间计算

想法是根据隔开数字的加勒比海盗符号拆分字符串,获取年,月,日,组成一个数组,这样就可以需要哪个就提取哪个了,最后再重新组成一个需要的加勒比海盗字符串。

//这里引用的加勒比海盗是数据表格里面的加勒比海盗formatter例子  //有效期状态         isState: function (value, row, index) {  //根据传入的加勒比海盗时间+有效期限<当前时期 判断是否过期             var limitMonth = row.yxdate;//默认有效期6个月             var cDate = userRoleSetting.convertDateFromString(value);//传入的加勒比海盗日期:2017-5-15             var ndate = (new Date()).toLocaleDateString(); //获取当前的加勒比海盗日期:2017-6-19             date1 = value.split('-');//拆分日期             var outDateD = date1[2];             date11 = ndate.split('/');//拆分日期             // 得到总月数             date1 = parseInt(date1[0]) * 12 + parseInt(date1[1]);             date11 = parseInt(date11[0]) * 12 + parseInt(date11[1]);             date2 = date1 + parseInt(limitMonth);             var outDateY = parseInt(date2 / 12);             var outDateM = date2 % 12;             if (date2 < date11) {//创建日期+有效日期在加勒比海盗5今天之前,显示过期,否则显示到期日期                 return '<span style="color: red;">已过期</span>';             } else {                 return '<span style="color: green">' + outDateY + '-' + outDateM + '-' + outDateD + '</span>';             }         }

http://blog.csdn.net/yingjiekuaile/article/details/73740537加勒比海盗5

前端新人的自白

第一篇博客


加勒比海盗5是十三这是我加勒比海盗5加勒比海盗博客欢迎你来”>  你好,我加勒比海盗5十三,这是我加勒比海盗5加勒比海盗博客,欢迎你来。

加勒比海盗想法把自己的加勒比海盗学习路程记录的加勒比海盗博客上由于各种原因或是个人惫懒没有得到实施现在正值暑假我加勒比海盗5也到了要找工作的加勒比海盗时候了终于有时间能把想法付诸行动”>  一直有这样的加勒比海盗想法,把自己的加勒比海盗学习路程记录的加勒比海盗博客上,由于各种原因,或是个人惫懒,没有得到实施,现在加勒比海盗5正值暑假,我加勒比海盗5也到了要找工作的加勒比海盗时候了,终于有时间能把想法付诸行动。

加勒比海盗5是一名大二的加勒比海盗学生或者说到了大三了吧在学校最初是浑浑噩噩的加勒比海盗状态不知道自己想要什么刚进大学对各种东西都感兴趣加入了几个社团零零散散的加勒比海盗没有坚持下去让我加勒比海盗5受益良多的加勒比海盗是一直以来没有走散的加勒比海盗几个朋友在这里感谢我加勒比海盗5加勒比海盗朋友们一直的加勒比海盗支持”>  我加勒比海盗5是一名大二的加勒比海盗学生,或者说到了大三了吧,在加勒比海盗5学校最初是浑浑噩噩的加勒比海盗状态,不知道自己想要什么,刚进大学,对各种东西都感兴趣,加入了几个社团,零零散散的加勒比海盗没有坚持下去,让我加勒比海盗5受益良多的加勒比海盗是一直以来没有走散的加勒比海盗几个朋友,在加勒比海盗5这里感谢我加勒比海盗5加勒比海盗朋友们一直的加勒比海盗支持。

加勒比海盗想法于是在各大论坛寻找学习的加勒比海盗资源开始了学习前端的加勒比海盗路程这里只想说一切都源于兴趣有了兴趣才有了一直学习下去走下去的加勒比海盗想法希望有志于开发行业的加勒比海盗同学们都能一直坚持下去热爱开发行业热爱你的加勒比海盗工作热爱coding”>  最初萌生出做web前端开发是在加勒比海盗5大二,是开始接触了jQuery这个框架以后,有了想做网页开发的加勒比海盗想法,于是在加勒比海盗5各大论坛寻找学习的加勒比海盗资源,开始了学习前端的加勒比海盗路程,这里只想说,一切都源于兴趣,有了兴趣,才有了一直学习下去走下去的加勒比海盗想法,希望有志于开发行业的加勒比海盗同学们都能一直坚持下去,热爱开发行业,热爱你的加勒比海盗工作,热爱coding。

加勒比海盗感触就是一定不能放弃或许你是刚开始学或许是学了一段时间感觉it行业颇为难走但是你坚持下去学过一段时间会发现it行业的加勒比海盗浩大要学习的加勒比海盗知识很多你可以一直往前走不断往上爬学习的加勒比海盗过程是枯燥的加勒比海盗坚持就好”>  在加勒比海盗5学习中的加勒比海盗感触就是,一定不能放弃,或许你是刚开始学,或许是学了一段时间,感觉IT行业颇为难走,但是,你坚持下去,学过一段时间,会发现IT行业的加勒比海盗浩大,要学习的加勒比海盗知识很多,你可以一直往前走,不断往上爬,学习的加勒比海盗过程是枯燥的加勒比海盗,坚持就好。

加勒比海盗5的加勒比海盗博客历程吧也希望我加勒比海盗5能找到一份不错的加勒比海盗工作”>  好了,开始我加勒比海盗5加勒比海盗博客历程吧,也希望我加勒比海盗5能找到一份不错的加勒比海盗工作。

---Hello,World! <!DOCTYPE html> <html>     <head>         <meta charset="utf-8" />         <title>Hello,World!</title>     </head>     <body>         <script type="text/javascript">             alert("Hello,World!");         </script>     </body> </html>

http://blog.csdn.net/github_39300517/article/details/73733756加勒比海盗5

幽冥 (2016)

幽冥 (2016)

幽冥 (2016)

更新:
2016-12-10 20:44
状态:
高清
类型:
电影 动作  科幻  
地区:
欧美
语言:
英语
imdb:
tt2106651
主演:
艾米莉·莫迪默  马克斯·马蒂尼  詹姆斯·戴尔  布鲁斯·格林伍德  科里·哈德里克  瑞安·罗宾斯  克莱恩·克劳福德  乌苏拉·帕克  冈萨洛·门内德  

下载地址相关图片预告片字幕收藏评论报 错

剧情介绍:

  《幽冥》讲述的加勒比海盗是美国国防部高级研究计划局科学家接受一项致命任务,带领一队精挑细选的加勒比海盗士兵进驻一个被战争摧毁的加勒比海盗城市。这里游荡着被称为“幽冥”的加勒比海盗神秘物质,它们无形无色,能在加勒比海盗5不经意间造成大规模的加勒比海盗伤亡。在加勒比海盗5已经公开的加勒比海盗预告片中“幽冥”看起来像是一团白色气体,可以快速通过人体从而造成杀伤,它刀枪不入,堪称无敌,再加上完全无法察觉的加勒比海盗透明外表,这种神秘物质以一敌多让士兵毫无招架之力。但是“幽冥”也有弱点。

  所有的加勒比海盗未知的加勒比海盗存在加勒比海盗5都有它存在加勒比海盗5加勒比海盗意义,我加勒比海盗5们应该去发现去了解。

http://www.btbtdy.com/btdy/dy8805.html加勒比海盗5

git 常用命令

查看、添加、提交、删除、找回,重置修改文件

git help <command> # 显示command的加勒比海盗help

git show # 显示某次提交的加勒比海盗内容 git show $id

git co — <file> # 抛弃工作区修改

git co . # 抛弃工作区修改

git add <file> # 将工作文件修改提交到本地暂存区

git add . # 将所有修改过的加勒比海盗工作文件提交暂存区

git rm <file> # 从版本库中删除文件

git rm <file> –cached # 从版本库中删除文件,但不删除文件

git reset <file> # 从暂存区恢复到工作文件

git reset — . # 从暂存区恢复到工作文件

git reset –hard # 恢复最近一次提交过的加勒比海盗状态,即放弃上次提交后的加勒比海盗所有本次修改

git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在加勒比海盗5一起做                                    git ci -am "some comments"

git ci –amend # 修改最后一次提交记录

git revert <$id> # 恢复某次提交的加勒比海盗状态,恢复动作本身也创建次提交对象

git revert HEAD # 恢复最后一次提交的加勒比海盗状态

查看文件diff

git diff <file> # 比较当前文件和暂存区文件差异 git diff

git diff <id1><id1><id2> # 比较两次提交之间的加勒比海盗差异

git diff <branch1>..<branch2> # 在加勒比海盗5两个分支之间比较

git diff –staged # 比较暂存区和版本库差异

git diff –cached # 比较暂存区和版本库差异

git diff –stat # 仅仅比较统计信息

查看提交记录

git log git log <file> # 查看该文件每次提交记录

git log -p <file> # 查看每次详细修改内容的加勒比海盗diff

git log -p -2 # 查看最近两次详细修改内容的加勒比海盗diff

git log –stat #查看提交统计信息

tig

Mac上可以使用tig代替diff和log,brew install tig

Git 本地分支管理

查看、切换、创建和删除分支

git br -r # 查看远程分支

git br <new_branch> # 创建新的加勒比海盗分支

git br -v # 查看各个分支最后提交信息

git br –merged # 查看已经被合并到当前分支的加勒比海盗分支

git br –no-merged # 查看尚未被合并到当前分支的加勒比海盗分支

git co <branch> # 切换到某个分支

git co -b <new_branch> # 创建新的加勒比海盗分支,并且切换过去

git co -b <new_branch> <branch> # 基于branch创建新的加勒比海盗new_branch

git co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除

git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支

git br -d <branch> # 删除某个分支

git br -D <branch> # 强制删除某个分支 (未被合并的加勒比海盗分支被删除的加勒比海盗时候需要强制)

 分支合并和rebase

git merge <branch> # 将branch分支合并到当前分支

git merge origin/master –no-ff # 不要Fast-Foward合并,这样可以生成merge提交

git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>

 Git补丁管理(方便在加勒比海盗5多台机器上开发同步时用)

git diff > ../sync.patch # 生成补丁

git apply ../sync.patch # 打补丁

git apply –check ../sync.patch #测试补丁能否成功

 Git暂存管理

git stash # 暂存

git stash list # 列所有stash

git stash apply # 恢复暂存的加勒比海盗内容

git stash drop # 删除暂存区

Git远程分支管理

git pull # 抓取远程仓库所有分支更新并合并到本地

git pull –no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并

git fetch origin # 抓取远程仓库更新

git merge origin/master # 将远程主分支合并到本地当前分支

git co –track origin/branch # 跟踪某个远程分支创建相应的加勒比海盗本地分支

git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上

git push # push所有分支

git push origin master # 将本地主分支推到远程主分支

git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)

git push origin <local_branch> # 创建远程分支, origin是远程仓库名

git push origin <local_branch>:<remote_branch> # 创建远程分支

git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支

Git远程仓库管理

GitHub

git remote -v # 查看远程服务器地址和仓库名称

git remote show origin # 查看远程服务器仓库状态

git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址

git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库

创建远程仓库

git clone –bare robbin_site robbin_site.git # 用带版本的加勒比海盗项目创建纯版本仓库

scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上

mkdir robbin_site.git && cd robbin_site.git && git –bare init # 在加勒比海盗5服务器创建纯仓库

git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址

git push -u origin master # 客户端首次提交

git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且track

git remote set-head origin master # 设置远程仓库的加勒比海盗HEAD指向master分支

也可以命令设置跟踪远程库和本地库

git branch –set-upstream master origin/master

git branch –set-upstream develop origin/develop

http://blog.csdn.net/web_youth/article/details/73732434加勒比海盗5

<java EE 项目:Attendance> 从一个简单项目看java web 开发的整体布局

需求说明:

&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

效果图:

1:数据库:
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

2:导入信息页面:
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

3:导入成功后的加勒比海盗数据库:
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

4:显示考情信息(3条):
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

项目整体格局:
注意:不用管最后一个servlet的加勒比海盗包,这个是为了测试,将attenceAction.jsp用servlet来实现

&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

整体的加勒比海盗布局,还是标准的加勒比海盗三层结构:数据层Dao,业务层Biz,表示层Jsp

源代码:

实体:
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

package com.attendance.entity;  import java.util.Date;  public class Attence {     private int id;     private String empName;     private String dept;     private Date chkDate;     private int status;      public Attence(){}       public Attence(String empName, String dept, Date chkDate, int status) {         super();         this.empName = empName;         this.dept = dept;         this.chkDate = chkDate;         this.status = status;     }       public int getId() {         return id;     }      public void setId(int id) {         this.id = id;     }      public String getEmpName() {         return empName;     }      public void setEmpName(String empName) {         this.empName = empName;     }      public String getDept() {         return dept;     }      public void setDept(String dept) {         this.dept = dept;     }      public Date getChkDate() {         return chkDate;     }      public void setChkDate(Date chkDate) {         this.chkDate = chkDate;     }      public int getStatus() {         return status;     }      public void setStatus(int status) {         this.status = status;     }   } 

数据层:
(1)接口:
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

package com.attendance.dao;  import java.util.List;  import com.attendance.entity.Attence;   public interface AttenceDao {     int addAttence(Attence attence);     List<Attence> getAttencesByNum(int num);  } 

(2)实现:
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>
AttenceDaoImpl:

package com.attendance.dao.impl;  import java.sql.ResultSet; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List;  import com.attendance.dao.AttenceDao; import com.attendance.entity.Attence;   public class AttenceDaoImpl extends BaseDao implements AttenceDao{      public int addAttence(Attence attence) {         int count = 0;         try {             openConnection();             String sql = "insert into attence(EmpName,Dept,ChkDate,Status)values(?,?,?,?)";             Object[] params = new Object[] {                 attence.getEmpName(),                 attence.getDept(),                 attence.getChkDate(),                 attence.getStatus()             };             count = executeUpdate(sql, params);             sql = "select last_insert_id()";             ResultSet rs = executeQuery(sql, null);             if(rs.next())             {                 attence.setId(rs.getInt(1));             }         } catch (Exception e) {             e.printStackTrace();         }         finally         {             closeResource();         }         return count;     }      public List<Attence> getAttencesByNum(int num) {         List<Attence> attences = new ArrayList<Attence>();         try {             openConnection();             String sql = "select * from attence order by id desc limit ?";             ResultSet rs = executeQuery(sql, new Object[] {num});             while(rs.next())             {                 Attence attence = new Attence();                 attence.setId(rs.getInt("id"));                 attence.setEmpName(rs.getString("empName"));                 attence.setDept(rs.getString("dept"));                 attence.setChkDate(rs.getDate("chkDate"));                 attence.setStatus(rs.getInt("status"));                 attences.add(attence);             }         } catch (Exception e) {             e.printStackTrace();         }         finally         {             closeResource();         }         return attences;     }       public static void main(String[] args) {         AttenceDao attenceDao = new AttenceDaoImpl();         Attence attence = new Attence();         attence.setEmpName("xjy");         attence.setDept("asd");         attence.setStatus(1);         //         DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");         try {             Date date = sdf.parse("2017-11-30");             attence.setChkDate(date);         } catch (Exception e) {             e.printStackTrace();         }         int count = attenceDao.addAttence(attence);         System.out.println(count);     } } 

数据库访问函数封装:

package com.attendance.dao.impl;  import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;  public class BaseDao {     String className = "com.mysql.jdbc.Driver";     String dbUrl = "jdbc:mysql://localhost:3306/musicdb";     Connection connection;  //连接     PreparedStatement statement; //命令     ResultSet resultSet; //结果集      //打开连接     public void openConnection() throws ClassNotFoundException, SQLException      {         //加载驱动类         Class.forName(className);         connection = DriverManager.getConnection(dbUrl,"root","root");     }      //增     public int executeUpdate(String sql, Object[] params) throws SQLException     {         statement = connection.prepareStatement(sql);         if(params != null) //追加参数         {             int i = 1;             for(Object object : params){                 statement.setObject(i, object);                 i++;             }         }          //执行sql         int count = statement.executeUpdate();         return count;     }      //查询     public ResultSet executeQuery(String sql,Object[] params) throws SQLException     {         statement = connection.prepareStatement(sql);         if(params != null) //追加参数         {             int i = 1;             for(Object object : params){                 statement.setObject(i, object);                 i++;             }         }          resultSet  = statement.executeQuery();         return resultSet;     }      //释放资源     public void closeResource()     {         try {             if(resultSet != null)             {                 resultSet.close();             }             if(statement != null)             {                 statement.close();             }             if(connection != null)             {                 connection.close();             }         } catch (Exception e) {             e.printStackTrace();         }     } } 

业务层:
(1)接口:
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

package com.attendance.biz;  import java.util.List;  import com.attendance.entity.Attence;   public interface AttenceBiz {     List<Attence> getAttencesByNum(int num);     int addAttence(Attence attence);  } 

(2)实现:

package com.attendance.biz.impl;  import java.util.List;  import com.attendance.biz.AttenceBiz; import com.attendance.dao.AttenceDao; import com.attendance.dao.impl.AttenceDaoImpl; import com.attendance.entity.Attence;   public class AttenceBizImpl implements AttenceBiz{      AttenceDao attenceDao = new AttenceDaoImpl();    //业务层调用数据层      public List<Attence> getAttencesByNum(int num) {          return attenceDao.getAttencesByNum(num);     }      public int addAttence(Attence attence) {         return attenceDao.addAttence(attence);     }  } 

表示层:
&lt;java EE 项目:Attendance&gt; 从一个简单项目看java web 开发的<a href=加勒比海盗整体布局”>

(1)attence.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>   <head>     <base href="<%=basePath%>">      <title>My JSP 'attence.jsp' starting page</title>      <meta http-equiv="pragma" content="no-cache">     <meta http-equiv="cache-control" content="no-cache">     <meta http-equiv="expires" content="0">         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">     <meta http-equiv="description" content="This is my page">     <!--     <link rel="stylesheet" type="text/css" href="styles.css">     -->    </head>    <body >         <form id="考勤信息记录表" action="attenceAction.jsp" method="post">                 <table border = "1">                     <tr>                         <td colspan = "2" align = "center"> 考情信息记录表  </td>                     </tr>                     <tr>                         <td>姓名:</td>                         <td><input class="txt" type="text" id="empname" name="empname" style = "width:380px;"/> <label class="error"></label></td>                     </tr>                     <tr>                         <td>所属部门:</td>                         <td><input class="txt" type="dept" id="dept" name="dept" style = "width:380px;" /> <label class="error"></label></td>                     </tr>                     <tr>                         <td>考勤日期:</td>                         <td><input class="txt" type="text" id="chkdate" name="chkdate" style = "width:200px;"/> 日期格式:yyyy-mm-dd  <label class="error"></label></td>                     </tr>                     <tr>                         <td>考勤状态:</td>                         <td>                              <select style = "width:120px;" name = "status" id = "status">                             <option value = "1"> 正常 </option>                             <option value = "2"> 迟到 </option>                             <option value = "3"> 早退 </option>                             <option value = "4"> 休假 </option>                             <option value = "5"> 外出 </option>                         </td>                     </tr>                     <tr>                         <td></td>                         <td>                             <input id="btnSubmit" type="submit" name="btnSubmit" value="登记" /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                             <input type="reset" name="reset" id="reset" value="重置" />                         </td>                     </tr>                     <tr>                         <td colspan="2" align="center">                         <label class="error">${error}</label>                         </td>                     </tr>                 </table>                 </form>   </body> </html> 

(2)attenceAction

<%@page import="com.attendance.entity.Attence"%> <%@page import="com.attendance.biz.impl.AttenceBizImpl"%> <%@page import="com.attendance.biz.AttenceBiz"%> <%@page import="java.text.SimpleDateFormat"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  <%     request.setCharacterEncoding("utf-8");      String empname = request.getParameter("empname");     String dept = request.getParameter("dept");      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");     Date date = sdf.parse(request.getParameter("chkdate"));      int status = Integer.parseInt(request.getParameter("status"));      AttenceBiz attenceBiz = new AttenceBizImpl();          //表示层调用业务层!!!     Attence attence = new Attence(empname,dept,date,status);       int count = attenceBiz.addAttence(attence);     if(count != 0)     {            request.setAttribute("error", "已成功导入!");         request.getRequestDispatcher("attence.jsp").forward(request, response);     }     else      {         request.setAttribute("error", "用户名或密码错误!");         request.getRequestDispatcher("attence.jsp").forward(request, response);      } %>

(3)showAttence

 <%@page import="com.attendance.biz.impl.AttenceBizImpl"%> <%@page import="com.attendance.entity.Attence"%> <%@page import="com.attendance.dao.impl.AttenceDaoImpl"%> <%@page import="com.attendance.biz.AttenceBiz"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>   <head>     <base href="<%=basePath%>">      <title>My JSP 'showAttence.jsp' starting page</title>      <meta http-equiv="pragma" content="no-cache">     <meta http-equiv="cache-control" content="no-cache">     <meta http-equiv="expires" content="0">         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">     <meta http-equiv="description" content="This is my page">     <!--     <link rel="stylesheet" type="text/css" href="styles.css">     -->    </head>    <%     AttenceBiz attenceBiz = new AttenceBizImpl();     List<Attence> attences = new ArrayList<Attence>();     attences = attenceBiz.getAttencesByNum(3);     request.setAttribute("attences", attences);    %>      <body>     <div id = "attences">                  <table >                 <tr>                     <td ><strong>员工姓名 </strong></td>                     <td ><strong>所属部门</strong></td>                     <td ><strong>考勤日期</strong></td>                     <td ><strong>考勤状态 </strong></td>                 </tr>                 <c:forEach var="attence" items="${attences}">                     <tr>                         <td ><strong>${attence.empName}</strong></td>                         <td ><strong>${attence.dept}</strong></td>                         <td ><strong>${attence.chkDate}</strong></td>                         <td ><strong>&nbsp;&nbsp;${attence.status}</strong></td>                     </tr>                 </c:forEach>                 </table>          </div>   </body> </html> 

http://blog.csdn.net/stillxjy/article/details/73734030加勒比海盗5

斐波那契数列js解法之性能对比

斐波那契数列 1 1 2 3 5 8 13 …
话不多说直接进入整体
第一种利用递归
function fibo(n) {
return n<2 ? 1 : fibo(n-1) + fibo(n-2)
// or return n<2 ? 1 : arguments.callee(n – 1) + arguments.callee(n – 2) 
}
console.time(‘small loop1’)
for( let i = 1; i <= 10; i++){
console.log(fibo(n))
}
console.timeEnd(‘small loop1’)
当我加勒比海盗5们计算到第十一个数时,我加勒比海盗5们调用了11次,但是他自身调用了442次,一共453次。
第二种利用迭代
function fibo(n){
let num1 = 1,
num2 = 2,
num3 = 0;
if (n<3) {
num3 = 1
}
for( let i = 3;i<n;i++) {
num3 = num1+num2;
num1 = num2;
num2 = num3
}
return num3
}
第三种 尾递归优化
递归非常耗内存,因为需要同事保存成千上百个调用帧,很容易发生‘栈溢出’(stack overflow)。但对于尾递归优化来说,由于只存在加勒比海盗5一个调用帧,所以永远不会发生栈溢出。
function F(n,ac1 = 1,ac2 = 1){
if( n <=1 ){ return ac2}
return F(n – 1,ac2,ac1 +ac2)
}
尾递归的加勒比海盗实现,往往需要改写递归函数,确保最后一步只调用自身。做到这一点的加勒比海盗方法,就是把所有用到的加勒比海盗内部变量改写成函数的加勒比海盗参数.
第四种是我加勒比海盗5们利用函数的加勒比海盗记忆功能,构造带记忆功能的加勒比海盗函数。
var fibo = function(){
var memo = [1,1]; //存储我加勒比海盗5们的加勒比海盗结果隐藏在加勒比海盗5闭包中,当调用的加勒比海盗时候首先先检查这个结果是否存在加勒比海盗5
var fib = function(n) {
var result = memo[n];
if(typeof result!== ‘number’) {
result = fib(n-1) + fib(n-2);
memo[n] = result
}
return result;
};
return fib
}()
经过测试第一种性能是最差的加勒比海盗
20次性能测试

斐波那契数列js解法之性能对比

当五十次时第一种已经无法响应出来了
加勒比海盗5们去掉第一种方式再次测试1000次
斐波那契数列js解法之性能对比
斐波那契数列js解法之性能对比
当数量越来越大时,记忆函数的加勒比海盗性能就体现出来了

http://blog.csdn.net/u012872875/article/details/73740241加勒比海盗5

bower install <package> 报错 ECMDERR

bower install  &lt;package&gt; 报错 ECMDERR

废话不多说   直接上报错代码    bower 安装 package     第三行报错 ECMDERR    

解决办法   git config –global url."https://".insteadOf git://

第5行还报错 (可能是mac的加勒比海盗原因)    Additional error details:   (额外的加勒比海盗错误详细信息:) 

解决办法  xcode-select –install     需要安装xcode

然后   bower install package

bower install  &lt;package&gt; 报错 ECMDERRbower install  &lt;package&gt; 报错 ECMDERR

http://blog.csdn.net/qq_31301099/article/details/73733198加勒比海盗5

echarts3的简单实践(饼图、柱形图、折线图、地图+散点图)

echarts3是向下兼容echarts2的加勒比海盗,所以echarts2切换到echarts3基本无需改代码。

饼图、柱形图、折线图:用的加勒比海盗echarts2的加勒比海盗配置项,但是能正常显示

echarts3的<a href=加勒比海盗简单实践(饼图、柱形图、折线图、地图+散点图)”>

代码片段:

    function loadCharts(orgCode){     /** 构建故障原因饼图 */         myChart1.showLoading();       jQuery.ajax({     type: "POST",        url: "#URL()/fastrepair/statistics/queryDayFaultReason",        data: {orgCode:orgCode},        success: function(json){          var faultReason = json.result;             option1 = {                  title : {                      text: '主要故障原因',                         x:'center',                       y:'bottom',                       textStyle: {                          fontFamily: 'Microsoft YaHei',                          fontSize:12,                          fontStyle: 'normal',                          fontWeight: 'normal',                          color: '#333333'                       }                  },                  tooltip : {                      trigger: 'item',                      formatter: "{a} <br/>{b} : {c} ({d}%)"                  },                  calculable : true,                color: ['rgb(27,208,220)','rgb(106,234,157)','rgb(109,174,239)','rgb(240,208,113)','rgb(235,97,0)'],                series : [                      {                        name:'主要故障原因',                        clickable:false,                      itemStyle: {                        normal: {                           label: {                              formatter: "{b} {c}"                           },                           labelLine: {                               length: 5                           }                        }                      },                       type:'pie',                        radius : '55%',                        center: ['50%', '40%'],                        data: faultReason                    }                  ]           };           myChart1.setOption(option1);           myChart1.hideLoading();  } });                /** 构建故障类型饼图 */         myChart2.showLoading();   jQuery.ajax({     type: "POST",        url: "#URL()/fastrepair/statistics/queryDayFaultType",        data: {orgCode:orgCode},        success: function(json){        var faultType = json.result;                    option2 = {                  title : {                      text: '故障类型',                         x:'center',                       y:'bottom',                       textStyle: {                          fontFamily: 'Microsoft YaHei',                          fontSize:12,                          fontStyle: 'normal',                          fontWeight: 'normal',                          color: '#333333'                       }                  },                tooltip : {                      trigger: 'item',                      formatter: "{a} <br/>{b} : {c} ({d}%)"                  },                calculable : true,                color: ['rgb(27,208,220)','rgb(109,174,239)','rgb(240,208,113)','rgb(235,97,0)'],                series : [                      {                        type:'pie',                        name:'故障类型',                        clickable:false,                      itemStyle: {                        normal: {                           label: {                              formatter: "{b} {c}"                           },                           labelLine: {                               length: 5                           }                        }                      },                       radius : '55%',                        center: ['50%', '40%'],                        data:faultType                    }                  ]           };           myChart2.setOption(option2);          myChart2.hideLoading();      } });            /** 构建故障来源饼图 */         myChart3.showLoading();   jQuery.ajax({     type: "POST",        url: "#URL()/fastrepair/statistics/queryDayFaultSource",        data: {orgCode:orgCode},        success: function(json){        var faultSource = json.result;         option3 = {                  title : {                      text: '故障来源',                         x:'center',                       y:'bottom',                       textStyle: {                          fontFamily: 'Microsoft YaHei',                          fontSize:12,                          fontStyle: 'normal',                          fontWeight: 'normal',                          color: '#333333'                       }                  },                  tooltip : {                      trigger: 'item',                      formatter: "{a} <br/>{b} : {c} ({d}%)"                  },                  calculable : true,                color: ['rgb(27,208,220)','rgb(109,174,239)','rgb(240,208,113)'],                series : [                      {                        name:'故障来源',                        clickable:false,                      itemStyle: {                        normal: {                           label: {                              formatter: "{b} {c}"                           },                           labelLine: {                               length: 5                           }                        }                      },                       type:'pie',                        radius : '55%',                        center: ['50%', '40%'],                        data:faultSource                    }                  ]             };             myChart3.setOption(option3);             myChart3.hideLoading();      } });                myChart4.showLoading();   jQuery.ajax({     type: "POST",        url: "#URL()/fastrepair/statistics/queryDayFaultUnit",        data: {orgCode:orgCode},        success: function(json){        var faultUnit = json.result;          var orgname =[];               var daytotal = [];          var dayrushrepair =[];               var dayrecover = [];                             jQuery.each(faultUnit, function(i,item){              orgname.push(item.orgname);            daytotal.push(item.daytotal);            dayrushrepair.push(item.dayrushrepair);            dayrecover.push(item.dayrecover);               });           option4 = {               tooltip : {                   trigger: 'item'               },               legend: {                   //data:['历史未复电','当天抢修中','当天已复电'],                   data:['当天抢修中','当天已复电','当天总数'],                   y:'bottom',                   textStyle: {                      fontFamily:'Microsoft YaHei'                   }               },               grid:{                  x:50,                  x2:35,                  y:20,                  y2:80               },               xAxis : [               {                   type : 'category',                   axisLine: {                      show: false                   },                   axisLabel: {                      textStyle: {                         color: '#333',                         fontFamily:'Microsoft YaHei'                      }                   },                   axisTick : {show: false},                   splitLine: {                      show: false                   },                   splitArea: {                      show: false                   },                   data : orgname               }               ],               yAxis : [               {                   type : 'value',                   axisLine: {                      show: false                   },                   axisLabel: {                      textStyle: {                         color: '#333',                         fontFamily:'Microsoft YaHei'                      }                   },                   axisTick : {show: false},                   splitLine: {                      show: true                   },                   splitArea: {                      show: false                   }                                 }               ],               series : [ /*              {                  name:'历史未复电',                  type:'bar',                  data:[15, 8, 7, 16, 5, 7, 13],                  itemStyle: {                      normal: {                          color: '#6daeef'                      }                  },                  markLine : {                      symbol: 'none',                      precision: 1,                      itemStyle: {                         normal: {                            lineStyle: {                               type: 'dotted'                            }                         }                      },                                      data : [                        {type : 'average', name: '平均值'}                     ]                  }               },*/               {                  name:'当天抢修中',                  type:'bar',                  data:dayrushrepair,                  itemStyle: {                      normal: {                          color: '#f0d071'                      }                  },                                   markLine : {                      symbol: 'none',                      precision: 1,                      itemStyle: {                         normal: {                            lineStyle: {                               type: 'dotted'                            }                         }                      },                                       data : [                          {type : 'average', name : '平均值'}                      ]                  }               },               {                   name:'当天已复电',                   type:'bar',                   data:dayrecover,                   itemStyle: {                      normal: {                          color: '#1bd0dc'                      }                   },                                     markLine : {                      symbol: 'none',                      precision: 1,                      itemStyle: {                         normal: {                            lineStyle: {                               type: 'dotted'                            }                         }                      },                      data : [                         {type : 'average', name : '平均值'}                      ]                   }               },               {                   type:'line',                   name:'当天总数',                   yAxisIndex: 0,                   itemStyle: {                      normal: {                         color:'#0970d6'                      }                   },                   data:daytotal               } /*              {                   type:'line',                   name:'历史数据',                   yAxisIndex: 0,                   itemStyle: {                      normal: {                         color:'#f15acc'                      }                   },                                     data:[25, 26, 27, 28, 29, 30, 36]               }*/               ]           };           myChart4.setOption(option4);             myChart4.hideLoading();       }       });                            /** 构建故障持续时间柱形图 */         myChart5.showLoading();   jQuery.ajax({     type: "POST",        url: "#URL()/fastrepair/statistics/queryDayFaultTime",        data: {orgCode:orgCode},        success: function(json){        var faultTime = json.result;                    var option5 = {                grid:{                   x:50                },                xAxis : [                          {                               type : 'value',                               axisLine: {                                    show: false                               },                               axisTick : {show: false},                               splitLine: {                                      show: false                               },                               splitArea: {                                    show: false                               }                                                        }                        ],                yAxis : [                         {                           type : 'category',                           axisLine: {                                  show: false                           },                           axisTick : {show: false},                           splitLine: {                                      show: true                           },                           splitArea: {                                    show: false                           },                           data : ['2h-4h','4h-8h','>8h']                         }                        ],               series : [                           {                             name:'故障持续时间',                             type:'bar',                             data:faultTime,                             itemStyle: {                                  normal: {                                    color: '#1BD0DC',                                    label : {                                          show: true,                                          position: 'insideRight',                                          formatter: '{c}',                                          textStyle: {                                             color:'#FFF'                                          }                                    }                                  }                             }                           }                        ]            };            myChart5.setOption(option5);               myChart5.hideLoading();       }       });                               }

2.柱形图+折线图+地图+散点图,这是从echarts3重新开发的加勒比海盗

echarts3的<a href=加勒比海盗简单实践(饼图、柱形图、折线图、地图+散点图)”>

echarts3的<a href=加勒比海盗简单实践(饼图、柱形图、折线图、地图+散点图)”>

echarts3的<a href=加勒比海盗简单实践(饼图、柱形图、折线图、地图+散点图)”>

代码片段:

/** 加载图表 function  * provinceCode 省编码 * bureau_code 局编码 * assetType  资产类型 */ var myChart = echarts.init(document.getElementById('main')); var myChart1 = echarts.init(document.getElementById('main1')); var myChart2 = echarts.init(document.getElementById('map')); var convertData = function (data) {     var res = [];     for (var i = 0; i < data.length; i++) {         var geoCoord = geoCoordMap[data[i].name];         if (geoCoord) {             res.push({                 name: data[i].name,                 value: geoCoord.concat(data[i].value)             });         }     }     return res; }; var geoCoordMap = {};  function loadCharts(provinceCode,bureau_code,assetType){ var tjnybm = cui("#censusDate").getValue();  if(!provinceCode){ provinceCode = '00';} if(!assetType)   { assetType = 0;} var assetTypeName =''; if(assetType == 0){  assetTypeName ='变电站数量'; }else if(assetType == 1){  assetTypeName ='主变数量(台)';  }else if(assetType == 2){  assetTypeName ='主变容量(MVA)';  }else if(assetType == 3){  assetTypeName ='断路器数量(组)';  }else if(assetType == 4){  assetTypeName ='隔离开关数量(组)';  }else if(assetType == 5){  assetTypeName ='GIS间隔数量';  }else if(assetType == 6){  assetTypeName ='输电线路长度(km)';  }else if(assetType == 7){  assetTypeName ='输电线路条数';  }else if(assetType == 8){  assetTypeName ='配变数量(台)';  }else if(assetType == 9){  assetTypeName ='配变容量(KVA)';  }else if(assetType == 10){  assetTypeName ='10kV馈线长度(km)';  }else if(assetType == 11){  assetTypeName ='10kV馈线条数';  } var orgCode = provinceCode; var orgName = cui("#parentUnit").getText(); if(bureau_code){  orgCode = bureau_code;  orgName = cui("#childUnit").getText(); } var param = [orgCode,tjnybm,assetType]; /** echarts图表构建开始  */ //构建资产规模分布 myChart.showLoading(); jQuery.ajax({   type: "POST",      url: "/web/assetmonitoring/assetScaleChart/queryAssetDistribution.bpms",      data: {'param':param},      traditional:true,      async: true,      dataType: 'json',        success: function(data){      var distributionList = data.distributionList;       var dydj =[];      var total = [];      var add =[];      jQuery.each(distributionList, function(i,item){         dydj.push(item.dimName);       total.push(item.assetTotal);       add.push(item.assetNew);         }); option = {     title: {         text: ((assetTypeName.indexOf("(")!=-1?assetTypeName.substring(0,assetTypeName.indexOf("(")):assetTypeName)+'的加勒比海盗资产规模分布'+assetTypeName.substring(assetTypeName.indexOf("("),assetTypeName.indexOf(")")+1))+'('+tjnybm.substr(0,4)+'年'+tjnybm.substr(4,2)+'月)',         textStyle: {fontSize:14,fontWeight:'normal'},         subtext:'/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n'+orgName,         subtextStyle: {          color:'#000'         },         top:'top',         left:'center'     }, //    animation:false,     grid:{      left:60     },         tooltip: {         trigger: 'axis',         axisPointer: {             type: 'none'         }     },     xAxis: [         {             type: 'category',    data: dydj,    axisTick: {                 alignWithLabel: true             }         }     ],     yAxis: [         {          name:'总数',             type: 'value',    splitNumber:4,             axisLabel: {                 formatter: '{value} '             }         },         {          name:'新增',             type: 'value',     splitNumber:4,             axisLabel: {                 formatter: '{value} '             }         }     ],     series: [         {             type:'bar',             name:'总数',             data:total,    barWidth:'20%',    itemStyle:{      normal :{         color:'#4F94CD'      },      emphasis: {         color:'#4876FF'      }    }         },         {             type:'line',             name:'新增',    yAxisIndex: 1,             data:add,    itemStyle: {                 normal: {color: '#188df0'}             }         }     ] }; myChart.setOption(option); myChart.hideLoading(); } });    //构建资产规模趋势 myChart1.showLoading(); jQuery.ajax({  type: "POST",     url: "/web/assetmonitoring/assetScaleChart/queryAssetTrend.bpms",     data: {'param':param},     traditional:true,     async: true,     dataType: 'json',       success: function(data){     var trendList = data.trendList;      var tjnybm1 =[];     var total = [];     var add =[];     jQuery.each(trendList, function(i,item){        tjnybm1.push(item.tjnybm);      total.push(item.assetTotal);      add.push(item.assetNew);     }); option1 = {     title: {         text: ((assetTypeName.indexOf("(")!=-1?assetTypeName.substring(0,assetTypeName.indexOf("(")):assetTypeName)+'的加勒比海盗资产规模趋势'+assetTypeName.substring(assetTypeName.indexOf("("),assetTypeName.indexOf(")")+1))+'('+tjnybm.substr(0,4)+'年'+tjnybm.substr(4,2)+'月)',         textStyle: {fontSize:14,fontWeight:'normal'},         subtext:'/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n'+orgName,         subtextStyle: {          color:'#000'         },         top:'top',         left:'center'     }, //    animation:false,     grid:{      left:60     },     tooltip: {         trigger: 'axis',         axisPointer: {             type: 'none'         }     },     xAxis: [         {             type: 'category',    data: tjnybm1,    axisTick: {                 alignWithLabel: true             }         }     ],     yAxis: [         {          name:'总数',             type: 'value',    splitNumber:4,             axisLabel: {                 formatter: '{value} '             }         },         {          name:'新增',             type: 'value',    splitNumber:4,             axisLabel: {                 formatter: '{value} '             }         }     ],     series: [         {             type:'bar',             name:'总数',             data:total,    barWidth:'20%',    itemStyle:{      normal :{         color:'#4F94CD'      },      emphasis: {         color:'#4876FF'      }    }         },         {             type:'line',             name:'新增',    yAxisIndex: 1,             data:add,    itemStyle: {                 normal: {color: '#188df0'}             }         }     ] }; myChart1.setOption(option1); myChart1.hideLoading(); } });     /** 构建对比分析地图  */ if(bureau_code && bureau_code.length==2){  provinceCode = bureau_code; } var param2 = [provinceCode,tjnybm,assetType];  myChart2.showLoading(); jQuery.ajax({  type: "POST",     url: "/web/assetmonitoring/assetScaleChart/queryAssetCompare.bpms",     data: {'param':param2},     traditional:true,     async: true,     dataType: 'json',     success: function(result){     var compareList = result.compareList;      var data =[];     jQuery.each(compareList, function(i,item){          var objdata = {};         objdata.name=item.dimName;         objdata.value=item.assetTotal;      data.push(objdata);     });   var mapJsonName; var mapJson = getMapJson(provinceCode); mapJsonName =mapJson[0].name; geoCoordMap =mapJson[1].geo;  //加载地图 option3 = {     title: {         text: ((assetTypeName.indexOf("(")!=-1?assetTypeName.substring(0,assetTypeName.indexOf("(")):assetTypeName)+'的加勒比海盗单位对比分析'+assetTypeName.substring(assetTypeName.indexOf("("),assetTypeName.indexOf(")")+1))+'('+tjnybm.substr(0,4)+'年'+tjnybm.substr(4,2)+'月)',         textStyle: {fontSize:18,fontWeight:'normal'},         top:'top',         left:'center'     }, //    animation:false,     tooltip : {         trigger: 'item'     },     geo: {         map: mapJsonName,         selectedMode:'single',         label: {             normal: {                 show: false             },             emphasis: {                 show: false             }         },                 itemStyle: {             normal: {                 areaColor: '#D1EEEE'             },             emphasis: {                 areaColor: '#6495ED'             }         }     },         series: [              {                  type: 'scatter',                  coordinateSystem: 'geo',                  data: convertData(data),                  symbolSize: 20,                  hoverAnimation: true,                  symbolSize: function (val) {                      return (val[2] / (compareList[0].assetTotal) *100)> 30?(val[2] / (compareList[0].assetTotal) *250):(val[2] / (compareList[0].assetTotal) *300);                  },                  label: {                      normal: {                          formatter: function (params) {                              return params.name + '/n ' + params.value[2];                          },                          position: 'inside',                          show: true,                          textStyle:{color:'#000'}                      }                  },                  itemStyle: {                      normal: {                          color: '#5CACEE'                      },                      emphasis: {                       color: '#FF8C00'                      }                  },                  tooltip : {                      formatter: function (params) {                          return params.name + ' : ' + params.value[2];                      }                  },                  zlevel: 1              },              {               type:'map',               geoIndex:0,               data: data,               tooltip : {                      formatter: function (params) {                          return params.name + (isNaN(params.value)?'':(':'+params.value));                      }               }                  },              {               type:'pie',               center: ['90%','10%'],               radius: 45,                  label: {                      normal: {                          show: (mapJsonName=='NW'?false:true),                          position: 'center',                          formatter: '{b}',                          textStyle: {                           color:'#4F94CD',                           fontSize:14                          }                      },                      emphasis: {                          show: (mapJsonName=='NW'?false:true),                          position: 'center',                          formatter: '{b}',                          textStyle: {                           color:'#4F94CD',                           fontSize:14                          }                      }                  },                  itemStyle:{                      normal: {                          color: '#fff'                      }                                },                  data:[                        {value:0,name:'返回南方电网'}                  ],                  tooltip: {                   formatter:'{b}'                  }              }    /*              {               type:'pie',               center: ['10%','90%'],                  radius: [35,45],                  avoidLabelOverlap: false,                  stillShowZeroSum:true,                  label: {                      normal: {                          show: true,                          position: 'inside',                          formatter: '{c}/n/n/n/n/n{b}',                          textStyle: {                           color:'#000',                           fontWeight:'bold',                           fontSize:16                          }                      },                      emphasis: {                          show: true,                          position: 'inside',                          formatter: '{c}/n/n/n/n/n{b}',                          textStyle: {                           color:'#000',                           fontWeight:'bold',                           fontSize:16                          }                      }                  },                  itemStyle:{                      normal: {                          color: '#4F94CD'                      }                                },                  data:[                        {value:compareList[0].assetTotal, name:(compareList[0].dimName.substr(0,6))}                  ],                  tooltip: {                   formatter:'{b}:{c}'                  }              } */      ]   }    $.get('geoJson/'+mapJsonName+'.json', function (geoJson) {   echarts.registerMap(mapJsonName, geoJson);   myChart2.setOption(option3);   myChart2.hideLoading();     myChart2.dispatchAction({      type: 'downplay',      seriesIndex: 0     });     myChart2.dispatchAction({      type: 'downplay',      seriesIndex: 1     });    //如果选了地市则高亮   if(bureau_code.length>2){  myChart2.dispatchAction({         type: 'highlight',         seriesIndex: 0,         name: cui("#childUnit").getText()    });  myChart2.dispatchAction({         type: 'highlight',         seriesIndex: 1,         name: cui("#childUnit").getText()    });   } }); } }); } /** echarts图表构建结束  */  //地图点击事件 function mapClick(){ myChart2.on('click', function (params){  if(params.seriesType == 'scatter' || params.seriesType=="map"  || params.seriesType=="pie"){  var tjnybm = cui("#censusDate").getValue();   var tjnybm2 = cui("#censusDate").getValue();  var assetType = cui("#assetTypeInput").getValue();   var mapJson = getMapJson(params.name);   //点击网省  if(mapJson[0].name){   mapJsonName =mapJson[0].name;   geoCoordMap =mapJson[1].geo;       $.get('geoJson/'+mapJsonName+'.json', function (geoJson) {        echarts.registerMap(mapJsonName, geoJson);        option3.geo.map = mapJsonName;               var orgCode = mapJson[2].code;        var param3 = [orgCode,tjnybm2,assetType];        myChart2.showLoading();        jQuery.ajax({        type: "POST",           url: "/web/assetmonitoring/assetScaleChart/queryAssetCompare.bpms",           data: {'param':param3},           traditional:true,           async: true,           dataType: 'json',           success: function(result){           var compareList = result.compareList;            var data =[];           jQuery.each(compareList, function(i,item){                var objdata = {};               objdata.name=item.dimName;               objdata.value=item.assetTotal;            data.push(objdata);           });             option3.series[0].data = convertData(data);           option3.series[1].data = data;           //设置圆环图表 /*           var data1 =[];           var objdata ={};           objdata.value = compareList[0].assetTotal;           objdata.name = compareList[0].dimName.substr(0,6);           data1.push(objdata);           option3.series[1].data = data1;  */              myChart2.setOption(option3);              myChart2.hideLoading();           }        })       })     }//点击地市局  else{      //高亮地市局区域和散点      myChart2.dispatchAction({             type: 'highlight',             seriesIndex: 0,             name: params.name.substr(0,2)         });      myChart2.dispatchAction({             type: 'highlight',             seriesIndex: 1,             name: params.name.substr(0,2)         });     }  //刷新分布和趋势图表  //查询组织机构ID  var dimId;  jQuery.ajax({   type: "POST",      url: "/web/assetmonitoring/assetScaleChart/queryDimIdByName.bpms",      data: {'param':params.name.substr(0,2)},      async: false,      dataType: 'json',        success: function(data){      var dimIdList = data.dimIdList;       if(dimIdList.length>0){      jQuery.each(dimIdList, function(i,item){         dimId = item;         });   if(dimId.length>0 && dimId.length<=2){    cui("#parentUnit").setValue(dimId);   }else if(dimId.length>=4){    cui("#childUnit").setValue(dimId);   }   }else{    dimId ='00';    cui("#parentUnit").setValue(dimId);    cui("#childUnit").setValue('');   }      }  });  var param4 = [dimId,tjnybm,assetType];  myChart.showLoading();  jQuery.ajax({   type: "POST",      url: "/web/assetmonitoring/assetScaleChart/queryAssetDistribution.bpms",      data: {'param':param4},      traditional:true,      async: true,      dataType: 'json',        success: function(data){      var distributionList = data.distributionList;       var dydj =[];      var total = [];      var add =[];      jQuery.each(distributionList, function(i,item){         dydj.push(item.dimName);       total.push(item.assetTotal);       add.push(item.assetNew);         });      option.series[0].data = total;      option.series[1].data = add;      option.xAxis[0].data = dydj;      option.title.subtext = '/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n'+params.name.substr(0,2);      myChart.setOption(option);      myChart.hideLoading();      }  });    myChart1.showLoading();  jQuery.ajax({  type: "POST",     url: "/web/assetmonitoring/assetScaleChart/queryAssetTrend.bpms",     data: {'param':param4},     traditional:true,     async: true,     dataType: 'json',       success: function(data){     var trendList = data.trendList;      var tjnybm3 =[];     var total = [];     var add =[];     jQuery.each(trendList, function(i,item){        tjnybm3.push(item.tjnybm);      total.push(item.assetTotal);      add.push(item.assetNew);     });     option1.series[0].data = total;     option1.series[1].data = add;     option1.xAxis[0].data = tjnybm3;     option1.title.subtext = '/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n/n'+params.name.substr(0,2);     myChart1.setOption(option1);     myChart1.hideLoading();     }  })    //调用列表刷新  if(dimId.length>0 && dimId.length<=2){   buttonClick()  }else{     cui("#assetScaleGrid").loadData();     sumTypebuttonClick(assetType,true)  }     }}); }   //获取Map需加载的加勒比海盗mapJSON名,组织编号,散点坐标数据 function getMapJson(provinceCode){  var mapJsonCode ={};  var mapJsonName ={};  var geoCoordMap1 ={};  if(provinceCode == '00'){   mapJsonName.name ='NW';   mapJsonCode.code = '00';   geoCoordMap1.geo = {        '广东':[114.105952,24.004227],        '云南':[102.212251,24.240609],        '贵州':[106.713478,26.578343],        '海南':[109.50119,19.231971],        '广西':[108.720004,23.22402],        '广州':[112.622414,22.519643],        '深圳':[114.085947,22.247],        '超高压':[114.985947,22.747]   };  }else if(provinceCode == '03' || provinceCode=="广东"){    mapJsonCode.code = '03';    mapJsonName.name  ='GD';    geoCoordMap1.geo = {            '汕头':[116.608463,23.37102],         '佛山':[113.122717,23.028762],         '珠海':[113.553986,22.224979],         '深圳':[114.085947,22.547],         '韶关':[113.591544,24.801322],         '广州':[113.280637,23.125178],         '肇庆':[112.472529,23.451546],      '梅州':[116.117582,24.299112],      '江门':[112.594942,22.090431],      '湛江':[110.364977,21.274898],      '茂名':[110.919229,21.659751],      '惠州':[114.412599,23.079404],      '阳江':[111.975107,21.859222],      '河源':[114.697802,23.746266],      '中山':[113.382391,22.521113],      '潮州':[116.832301,23.861701],      '揭阳':[116.055733,23.443778],      '云浮':[112.044439,22.929801],      '汕尾':[115.364238,22.774485],      '东莞':[113.746262,23.046237],      '清远':[113.051227,23.685022]    };   }else if(provinceCode == '04' || provinceCode=="广西" ){    mapJsonName.name  ='GX';    mapJsonCode.code = '04';    geoCoordMap1.geo = {            '柳州':[109.411703,24.314617],         '防城港':[108.345478,21.614631],         '梧州':[111.297604,23.474803],         '桂林':[110.299121,25.274215],         '北海':[109.119254,21.473343],         '南宁':[108.320004,22.82402],         '贵港':[109.602146,23.0936],      '贺州':[111.552056,24.414141],      '百色':[106.616285,23.897742],      '钦州':[108.624175,21.967127],      '玉林':[110.154393,22.63136],      '来宾':[109.229772,23.733766],      '崇左':[107.353926,22.404108],      '河池':[108.062105,24.695899]    };   }else if(provinceCode == '05'  || provinceCode=="云南"){    mapJsonName.name  ='YN';    mapJsonCode.code = '05' ;    geoCoordMap1.geo = {            '保山':[99.167133,25.111802],         '曲靖':[103.797851,25.501557],         '昭通':[103.717216,27.336999],         '昆明':[102.712251,25.040609],         '丽江':[100.233026,26.872108],         '玉溪':[102.543907,24.350461],         '临沧':[100.08697,23.886567],      '楚雄':[101.546046,25.041988],      '文山':[104.24401,23.66951],      '文山电力':[104.24401,23.26951],      '大理':[100.225668,25.589449],      '红河':[103.384182,23.366775],      '普洱':[100.972344,22.777321],      '版纳':[100.797941,22.001724],      '德宏':[98.578363,24.436694],      '怒江':[98.854304,25.850949],      '迪庆':[99.706463,27.826853]    };   }else if(provinceCode == '06'  || provinceCode=="贵州"){    mapJsonName.name  ='GZ';    mapJsonCode.code = '06';    geoCoordMap1.geo = {            '安顺':[105.932188,26.245544],         '贵阳':[106.713478,26.578343],         '输电运行检修分公司':[106.713478,26.878343],         '六盘水':[104.846743,26.584643],         '铜仁':[109.191555,27.718346],         '毕节':[105.28501,27.301693],         '遵义':[106.937265,27.706626],         '兴义':[104.897971,25.08812],      '凯里':[107.977488,26.583352],      '都匀':[107.517156,26.258219],      '贵安':[106.217156,26.358219]    };   }else if(provinceCode == '07'  || provinceCode=="海南"){    mapJsonName.name  ='HN';    mapJsonCode.code = '07';    geoCoordMap1.geo = {            '海口':[110.33119,20.031971],         '儋州':[109.576782,19.517486],         '琼海':[110.466785,19.246011],         '三亚':[109.508268,18.247872],         '五指山':[109.516662,18.776921],         '文昌':[110.753975,19.612986],      '东方':[108.653789,19.10198],         '万宁':[110.388793,18.796216],      '定安':[110.349235,19.684966],      '屯昌':[110.102773,19.362916],      '澄迈':[110.007147,19.737095],      '临高':[109.687697,19.908293],      '昌江':[109.053351,19.260968],      '白沙':[109.452606,19.224584],      '陵水':[110.037218,18.505006],      '乐东':[109.175444,18.74758],      '保亭':[109.70245,18.636371],      '琼中':[109.839996,19.03557],      '三沙':[112.34882,16.831039]    };   }else if(provinceCode == '08'  || provinceCode=="广州"){    mapJsonName.name  ='GZS';    mapJsonCode.code = '08';    geoCoordMap1.geo = {            '荔湾':[113.243038,23.124943],         '越秀':[113.280714,23.125624],         '海珠':[113.262008,23.103131],         '白云':[113.262831,23.162281],         '天河':[113.335367,23.13559],         '黄埔':[113.450761,23.103239],      '南沙':[113.53738,22.794531],         '番禺':[113.364619,22.938582],      '花都':[113.211184,23.39205],      '增城':[113.829579,23.290497],      '从化':[113.587386,23.545283]    };   }else if(provinceCode == '09'  || provinceCode=="深圳"){    mapJsonName.name  ='SZ';    mapJsonCode.code = '09';    geoCoordMap1.geo = {            '福田':[114.05096,22.541009],         '龙岗':[114.251372,22.721511],         '盐田':[114.235366,22.555069],         '罗湖':[114.123885,22.555341],         '南山':[113.92943,22.531221],         '宝安':[113.828671,22.754741],      '龙华':[114.044346,22.691963],         '坪山':[114.338441,22.69423]    };   }else if(provinceCode == '01'  || provinceCode=="超高压"){   mapJsonName.name  ='NW';   mapJsonCode.code = '01';   geoCoordMap1.geo = {           '广州局':[112.622414,22.719643],        '贵阳局':[106.713478,26.578343],        '南宁局':[108.320004,22.82402],        '柳州局':[109.411703,24.314617],        '梧州局':[111.297604,23.474803],        '百色局':[106.616285,23.897742],     '天生桥局':[104.897971,25.08812],        '曲靖局':[103.797851,25.501557],        '昆明局':[102.712251,25.040609],        '大理局':[100.225668,25.589449]   };      }      var json=[];      json.push(mapJsonName);      json.push(geoCoordMap1);      json.push(mapJsonCode);      return json; }

http://blog.csdn.net/x2145637/article/details/73733995加勒比海盗5