| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- <?php if(!defined('HOST'))die('not access');?>
- <script >
- $(document).ready(function(){
- var myChart = false;
- var a = $('#viewshow_{rand}').bootstable({
- tablename:'todo',modedir:'flowtotal:main',storebeforeaction:'flowtotalbefore',storeafteraction:'flowtotalafter',
- columns:[{
- text:'名称',dataIndex:'name'
- },{
- text:'数值',dataIndex:'value'
- },{
- text:'比例',dataIndex:'bili'
- }],
- load:function(a){
- if(a.modearr){
- var s = '<option value="0">-选择模块-</option>',len=a.modearr.length,i,csd,types='';
- for(i=0;i<len;i++){
- csd = a.modearr[i];
- if(types!=csd.type){
- if(types!='')s+='</optgroup>';
- s+='<optgroup label="'+csd.type+'">';
- }
- s+='<option value="'+csd.id+'">'+csd.name+'</option>';
- types = csd.type;
- }
- $('#mode_{rand}').html(s);
- }else{
- c.loadcharts();
- }
-
- }
- });
-
- var c={
- search:function(o1,lx){
- var d = {
- 'modeid' : get('mode_{rand}').value,
- 'total_fields' : get('fields_{rand}').value,
- 'total_type' : get('type_{rand}').value,
- 'atype' : get('where_{rand}').value
- };
- if(d.modeid=='0'){js.msg('msg','请选择模块');return;}
- if(d.total_fields==''){js.msg('msg','请选择统计字段');return;}
- if(d.total_type==''){js.msg('msg','请选择统计类型');return;}
- if(d.atype==''){js.msg('msg','请选择统计条件,统计条件在[流程模块条件]下添加');return;}
- if(lx==1)return d;
- a.setparams(d,true);
- },
- createdzd:function(o1){
- var d1 = this.search(o1,1);
- if(typeof(d1)!='object')return;
- var o1 = get('fields_{rand}'),o2=get('type_{rand}');
- var ss = o1.options[o1.selectedIndex].text;
- d1.title = '按'+ss+'的'+o2.options[o2.selectedIndex].text+'';
- var url = 'main,flowtotal,view';
- var str1= '';
- for(var i1 in d1)str1+=','+i1+':"'+d1[i1]+'"';
- str1 = jm.base64encode('{'+str1.substr(1)+'}');
- url+=',paramsstr='+str1+'';
- addtabs({url:url,name:d1.title,num:'tongjiji'+js.getrand()+'',icons:'bar-chart'});
- },
- loadcharts:function(){
- var rows = a.getData('rows'),i,len=rows.length,v;
- var xAxis=[],data=[];
- for(i=0;i<len;i++){
- if(rows[i].name!='合计'){
- xAxis.push(rows[i].name);
- v = rows[i].value;if(v=='')v=0;
- data.push({value:parseFloat(v),name:rows[i].name});
- }
- }
- var o1 = get('fields_{rand}'),o2=get('type_{rand}');
- if(!myChart)myChart = echarts.init(get('main_show{rand}'));
- var ss = o1.options[o1.selectedIndex].text;
- var tlx= get('chattype_{rand}').value;
- var option = {
- title: {
- text: '按'+ss+'的'+o2.options[o2.selectedIndex].text+'',
- left: 'center'
- },
- tooltip : {
- trigger: 'item',
- formatter: "{b} : {c} ({d}%)"
- },
- series: [{
- name: '数值',
- type: tlx,
- data: data
- }]
- };
- if(tlx!='pie'){
- option.xAxis={data: xAxis};
- option.yAxis={type : 'value'};
- option.tooltip.formatter = '{b} : {c}';
- }
- myChart.setOption(option);
- },
- daochu:function(){
- var o1 = get('fields_{rand}'),o2=get('type_{rand}');
- var ss = o1.options[o1.selectedIndex].text;
- a.exceldown(''+ss+'的'+o2.options[o2.selectedIndex].text+'');
- },
- changemode:function(){
- var mid=this.value;
- get('fields_{rand}').length = 1;
- get('type_{rand}').length = 2;
- get('where_{rand}').length = 1;
- if(mid==0){
-
- }else{
- c.changefields(mid);
- }
- },
- changefields:function(mid){
- js.ajax(js.getajaxurl('changefields','{mode}','{dir}'),{modeid:mid},function(ret){
- c.changefieldss(ret);
- },'get,json');
- },
- changefieldss:function(ds){
- var ret = ds.farr;
- var d = [],d2=[],i,len=ret.length,lx,fid,fids;
- var fids = ',applydt,optdt,dt,adddt,createdt,startdt,enddt,';
- for(i=0;i<len;i++){
- lx = ret[i].fieldstype;
- fid= ret[i].fields;
- fids= ret[i].fieldss;
- if(lx=='number' || fids=='money'){
- d2.push({
- 'name' : ret[i].names+'(合计)',
- 'fields' : 'sum|'+fids
- });
- d2.push({
- 'name' : ret[i].names+'(平均值)',
- 'fields' : 'avg|'+fids
- });
- }else{
- d.push({
- 'name' : ret[i].name,
- 'fields' : fid,
- });
- if(lx=='date' || lx=='datetime' || fid.indexOf('dt`')>-1){
- d.push({
- 'name' : ret[i].names+'('+fids+',按月)',
- 'fields' : 'left('+fid+',7)'
- });
- }
- }
- }
- js.setselectdata(get('fields_{rand}'),d,'fields');
- js.setselectdata(get('type_{rand}'),d2,'fields');
- js.setselectdata(get('where_{rand}'),ds.fwhe,'num');
- }
- }
- $('#mode_{rand}').change(c.changemode);
- js.initbtn(c);
- $('#main_show{rand}').css('height',''+(viewheight-110)+'px');
- });
- </script>
- <div>
- <table width="100%">
- <tr>
- <td align="left">
- <select style="width:180px" id="mode_{rand}" class="form-control" ><option value="0">-选择模块-</option></select>
- </td>
- <td nowrap style="padding-left:10px">
- 根据
- </td>
- <td >
- <select style="width:150px" id="fields_{rand}" class="form-control" ><option value="">-统计字段-</option></select>
- </td>
- <td nowrap style="padding-left:10px">
- 的
- </td>
- <td >
- <select style="width:130px" id="type_{rand}" class="form-control" ><option value="">-统计类型-</option><option selected value="jls">记录数</option></select>
- </td>
- <td style="padding-left:10px">
- <select style="width:130px" id="where_{rand}" class="form-control" ><option value="">-统计条件-</option></select>
- </td>
- <td style="padding-left:10px">
- <select style="width:80px" id="chattype_{rand}" class="form-control" ><option value="pie">饼图</option><option value="line">线图</option><option value="bar">柱状图</option></select>
- </td>
- <td style="padding-left:10px">
- <button class="btn btn-default" click="search" type="button">来统计</button>
- </td>
- <td style="padding-left:10px">
- <button class="btn btn-default" click="createdzd" type="button">生成菜单URL</button>
- </td>
- <td width="90%">
-
- </td>
- <td align="right" nowrap>
- <button class="btn btn-default" click="daochu,1" type="button">导出</button>
- </td>
- </tr>
- </table>
-
- </div>
- <div class="blank10"></div>
- <table width="100%">
- <tr valign="top">
- <td width="80%">
- <div id="main_show{rand}" style="width:100%;height:480px"></div>
- </td>
- <td>
- <div style="width:350px" id="viewshow_{rand}"></div>
- </td>
- </tr>
- </table>
- <div class="tishi">此功能只其他基本的统计,更强大更多功能需要自己开发,模块列表需要在表单元素管理下开启有统计字段。</div>
|