input_two.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. /**
  2. * 录入js额外文件,要共用到详情页里的
  3. */
  4. var inputtwo={
  5. selectdatadata:{}, //保存数据源
  6. selectdata:function(s1,ced,fid,tit,zbis){
  7. if(isedit==0)return;
  8. if(!tit)tit='请选择...';
  9. if(s1.indexOf('[SQL]')==0){js.msg('msg','此元素类型的不支持数据源是SQL的');return;}
  10. var a1 = s1.split(','),idobj=false,acttyle='act';
  11. var fids = a1[1];
  12. if(fids){
  13. if(zbis>=1){//说明是子表
  14. var gezs = this.getxuandoi(fid);
  15. fids+=gezs[2];
  16. }
  17. idobj=form(fids);
  18. }
  19. var gcan,dass,i,befs
  20. gcan = {'act':a1[0],'actstr':jm.base64encode(s1),'acttyle':acttyle,'sysmodenum':modenum,'sysmid':mid};
  21. dass = this.selectdatadata[fid];
  22. befs = this.onselectdatabefore(fid,zbis,s1);
  23. if(befs){
  24. if(typeof(befs)=='string'){js.msg('msg',befs);return;}
  25. if(typeof(befs)=='object'){
  26. dass=[];
  27. for(i in befs)gcan[i]=befs[i];
  28. }
  29. }
  30. $.selectdata({
  31. data:dass,title:tit,fid:fid,
  32. url:geturlact('getselectdata', gcan),
  33. checked:ced, nameobj:form(fid),idobj:idobj,
  34. onloaddata:function(a){
  35. c.selectdatadata[fid]=a;
  36. },
  37. onselect:function(seld,sna,sid){
  38. c.onselectdataall(this.fid,seld,sna,sid);
  39. if(c.onselectdata[this.fid])c.onselectdata[this.fid](seld,sna,sid);
  40. }
  41. });
  42. },
  43. selectdataclear:function(fid,s1,zbis){
  44. if(form(fid))form(fid).value='';
  45. var a1 = s1.split(',');
  46. var fids = a1[1];
  47. if(fids){
  48. if(zbis>=1){
  49. var gezs = this.getxuandoi(fid);
  50. fids+=gezs[2];
  51. }
  52. if(form(fids))form(fids).value='';
  53. }
  54. },
  55. //编辑器
  56. htmlediter:function(fid){
  57. var items = [
  58. 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline','removeformat','|',
  59. 'fontname', 'fontsize','quickformat', '|',
  60. 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist','insertunorderedlist', '|',
  61. 'image', 'link','unlink','|',
  62. 'undo','source','clearhtml','fullscreen'
  63. ];
  64. if(ismobile==1)items=['forecolor', 'hilitecolor', 'bold', 'italic','|','source','clearhtml','fullscreen'];
  65. var oethed = this.htmlediteritems(fid);
  66. if(oethed){
  67. var kx = 0,i;
  68. if(oethed[0]=='clear'){items=[];kx=1;oethed.push('fullscreen')}
  69. for(i=kx;i<oethed.length;i++)items.push(oethed[i]);
  70. }
  71. var cans = {
  72. resizeType : 0,
  73. allowPreviewEmoticons : false,
  74. allowImageUpload : true,
  75. formatUploadUrl:false,
  76. allowFileManager:true,
  77. uploadJson:'?m=upload&a=upimg&d=public',
  78. minWidth:'300px',height:'250',
  79. items : items
  80. };
  81. this.editorobj[fid] = KindEditor.create("[name='"+fid+"']", cans);
  82. },
  83. //初始上传框
  84. filearr:{},
  85. initupssa:{},
  86. initinput:function(){
  87. if(isedit==0){
  88. $('div[tsye="img"]').hide();
  89. $("div[id$='_divadd']").hide();
  90. }
  91. var o,o1,sna,i,tsye,uptp,tdata,farr=alldata.filearr,far,allfid='',allsna={};
  92. var o = $('div[id^="filed_"]');
  93. for(i=0;i<o.length;i++){
  94. o1 = o[i];sna= $(o1).attr('tnam');tsye=$(o1).attr('tsye');tdata=$(o1).attr('tdata');
  95. var val = form(sna).value;
  96. if(tsye=='img'){
  97. var val1 = data[''+sna+'_view'];
  98. if(!val1)val1=val;
  99. if(val1)get('imgview_'+sna+'').src=val1;
  100. }
  101. if(tsye=='file' && val){
  102. if(farr){
  103. var fid,f,vals=','+val+',';
  104. for(fid in farr){
  105. f = farr[fid];
  106. if(!f || vals.indexOf(','+f.id+',')<0)continue;
  107. this.showfileup(sna, f);
  108. }
  109. this.showupid(sna);//多文件上传显示id
  110. }else{
  111. allfid+=','+val+'';
  112. allsna[sna]=val;
  113. }
  114. }
  115. }
  116. if(allfid){
  117. js.ajax('api.php?m=upload&a=afileinfo',{allfid:allfid.substr(1)},function(farr){
  118. var sna,fid,f,vals;
  119. if(farr)for(sna in allsna){
  120. vals = ','+allsna[sna]+',';
  121. for(fid in farr){
  122. f = farr[fid];
  123. if(!f || vals.indexOf(','+f.id+',')<0)continue;
  124. c.showfileup(sna, f);
  125. }
  126. c.showupid(sna);
  127. }
  128. },'get,json');
  129. }
  130. if(ismobile==1){
  131. $('div[tmp="mobilezbiao"]').css('width',''+($(window).width()-12)+'px');
  132. }
  133. },
  134. initupss:function(sna){
  135. if(isedit==0 || this.initupssa[sna])return;
  136. var o,o1,sna,tsye,uptp='image';
  137. o1 = get('filed_'+sna+'');tsye=$(o1).attr('tsye');tdata=$(o1).attr('tdata');
  138. if(tsye=='file'){
  139. uptp='*';
  140. if(!isempt(tdata))uptp=tdata;
  141. }
  142. this.initupssa[sna]=$.rockupload({
  143. 'inputfile':'filed_'+sna+'_inp',
  144. 'initremove':false,'uptype':uptp,
  145. 'urlparams':{'sysmodenum':modenum,'sysmid':mid},
  146. 'oparams':{sname:sna,snape:tsye},
  147. 'onsuccess':function(f,gstr){
  148. var sna= f.sname,tsye=f.snape,d=js.decode(gstr);
  149. if(tsye=='img'){
  150. get('imgview_'+sna+'').src = d.filepath;
  151. form(sna).value=d.filepath;
  152. c.upimages(sna,d.id,false, d.autoup);
  153. }else if(tsye=='file'){
  154. $('#meng_'+c.uprnd+'').remove();
  155. $('#up_'+c.uprnd+'').attr('upid_'+sna+'',d.id);
  156. c.upfbo = false;
  157. c.filearr['f'+d.id+''] = f;
  158. c.showupid(sna);//显示ID
  159. }
  160. c.uploadback(sna, f);
  161. },
  162. 'onprogress':function(f,bl){
  163. var sna= f.sname,tsye=f.snape;
  164. if(tsye=='file'){
  165. $('#meng_'+c.uprnd+'').html(''+bl+'%');
  166. }
  167. },
  168. onchange:function(f){
  169. console.log(f);
  170. var sna= f.sname,tsye=f.snape;
  171. if(tsye=='file'){
  172. var flx = js.filelxext(f.fileext);
  173. c.uprnd = js.getrand();
  174. c.upfbo = true;
  175. var s='<div onclick="c.clickupfile(this,\''+sna+'\')" id="up_'+c.uprnd+'" title="'+f.filename+'('+f.filesizecn+')" class="upload_items">';
  176. if(f.isimg){
  177. s+='<img class="imgs" src="'+f.imgviewurl+'">'
  178. }else{
  179. s+='<div class="upload_items_items"><img src="web/images/fileicons/'+flx+'.gif" alian="absmiddle"> ('+f.filesizecn+')<br>'+f.filename+'</div>';
  180. }
  181. s+='<div id="meng_'+c.uprnd+'" class="upload_items_meng" style="font-size:16px">0%</div></div>';
  182. $('#'+sna+'_divadd').before(s);
  183. }else if(tsye=='img'){
  184. js.loading('上传中...');
  185. }
  186. }
  187. });
  188. },
  189. showfileup:function(sna, f){
  190. var s = '';
  191. s='<div onclick="c.clickupfile(this,\''+sna+'\')" title="'+f.filename+'('+f.filesizecn+')" upid_'+sna+'="'+f.id+'" class="upload_items">';
  192. if(js.isimg(f.fileext)){
  193. s+='<img class="imgs" src="'+f.thumbpath+'">';
  194. }else{
  195. s+='<div class="upload_items_items"><img src="web/images/fileicons/'+js.filelxext(f.fileext)+'.gif" alian="absmiddle"> ('+f.filesizecn+')<br>'+f.filename+'</div>';
  196. }
  197. s+='</div>';
  198. $('#'+sna+'_divadd').before(s);
  199. this.filearr['f'+f.id+''] = f;
  200. },
  201. upimages:function(fid,fileid,bs, lbu){
  202. if(!bs){
  203. if(lbu!=1){js.unloading();return;}
  204. js.loading('等待上传完成...');
  205. setTimeout("c.upimages('"+fid+"','"+fileid+"', true)",3000);
  206. }else{
  207. js.ajax(geturlact('upimagepath'),{fileid:fileid,fid:fid},function(ret){
  208. js.unloading();
  209. var da = ret.data;
  210. if(da.path)form(da.fid).value=da.path;
  211. },'get,json');
  212. }
  213. },
  214. //多文件点击上传
  215. uploadfilei:function(sna){
  216. if(isedit==0)return;
  217. var ts = this.uploadfileibefore(sna);
  218. if(ts){js.msg('msg',ts);return;}
  219. if(this.upfbo){js.msg('msg','请等待上传完成在添加');return;}
  220. this.initupss(sna);
  221. get('filed_'+sna+'_inp').click();
  222. },
  223. //上传完成
  224. showupid:function(sna){
  225. var os = $('div[upid_'+sna+']'),fvid='';
  226. for(var i=0;i<os.length;i++){
  227. fvid+=','+$(os[i]).attr('upid_'+sna+'')+'';
  228. }
  229. if(fvid!='')fvid=fvid.substr(1);
  230. form(sna).value=fvid;
  231. },
  232. //上传文件点击
  233. clickupfile:function(o1,sna, xs){
  234. this.yuobj = o1;
  235. var o = $(o1);
  236. var fid = o.attr('upid_'+sna+'');
  237. if(isempt(fid))return;
  238. var f = this.filearr['f'+fid+''];if(!f)return;
  239. if(isedit==0 || xs){
  240. js.alertclose();
  241. this.loadicons();
  242. js.fileopt(fid,0);
  243. }else{
  244. var fileext = f.fileext,oflx=',doc,docx,ppt,pptx,xls,xlsx,',s1='';
  245. if(oflx.indexOf(','+fileext+',')>-1)s1='&nbsp; <a style="color:blue" href="javascript:;" onclick="js.alertclose();js.fileopt('+fid+',2)">在线编辑</a>';
  246. js.confirm('确定要<font color=red>删除文件</font>:'+o1.title+'吗?<a style="color:blue" href="javascript:;" onclick="js.alertclose();js.downshow('+fid+',\'abc\')">下载</a>&nbsp; <a style="color:blue" href="javascript:;" onclick="c.clickupfile(c.yuobj,\''+sna+'\', true)">预览</a>'+s1+'',function(jg){
  247. if(jg=='yes'){
  248. o.remove();
  249. c.showupid(sna);
  250. $.get(js.getajaxurl('delfile','upload','public',{id:fid}));
  251. }
  252. });
  253. }
  254. },
  255. uploadimgclear:function(fid){
  256. get('imgview_'+fid+'').src='images/noimg.jpg';
  257. form(fid).value='';
  258. },
  259. //2020-09-02新增地图上选择位置
  260. selectmap:function(sna,snall,fna,iszb){
  261. var hei = winHb()-150;
  262. var url = 'https://map.qq.com/api/js?v=2.exp&libraries=convertor,geometry&key=55QBZ-JGYLO-BALWX-SZE4H-5SV5K-JCFV7&callback=c.showmap';
  263. js.tanbody('selectmap','选择['+fna+']',winWb()-((ismobile==1)?5:80),hei,{
  264. html:'<div style="padding:5px"><input onkeyup="if(event.keyCode==13)c.selectmapsou(this)" type="text" placeholder="输入城市区号来定位如:0592" class="inputs"></div><div id="selectmap" style="height:'+(hei-20)+'px;overflow:hidden"></div>',
  265. btn:[{text:'确定'}]
  266. });
  267. this.selectmapdata={sna:sna,snall:snall};
  268. this._temsel=[24.51036967209648,118.17883729934692,12];
  269. if(snall && form(snall) && form(snall).value)this._temsel = form(snall).value.split(',');
  270. if(!this.showmapbo){js.importjs(url);}else{this.showmap()}
  271. $('#selectmap_btn0').click(function(){
  272. c.selectmapque();
  273. js.tanclose('selectmap');
  274. });
  275. },
  276. selectmapclear:function(sna,snall){
  277. if(form(sna))form(sna).value='';
  278. if(snall && form(snall))form(snall).value='';
  279. },
  280. showmapbo:false,
  281. showmap:function(){
  282. this.showmapbo=true;
  283. var center = new qq.maps.LatLng(parseFloat(this._temsel[0]),parseFloat(this._temsel[1]));
  284. map = new qq.maps.Map(get('selectmap'),{
  285. center: center,
  286. zoom: parseFloat(this._temsel[2])
  287. });
  288. qq.maps.event.addListener(map, 'click', function(event) {
  289. marker.setPosition(event.latLng);
  290. });
  291. marker = new qq.maps.Marker({
  292. position: center,
  293. map: map,
  294. draggable:true,
  295. title:'点地图确定位置'
  296. });
  297. },
  298. selectmapsou:function(o1){
  299. var val = o1.value;
  300. if(!val || isNaN(val))return;
  301. if(!this.citylocation)this.citylocation = new qq.maps.CityService({
  302. complete : function(result){
  303. map.setCenter(result.detail.latLng);
  304. }
  305. });
  306. this.citylocation.searchCityByAreaCode(val);
  307. },
  308. selectmapque:function(){
  309. var as = marker.getPosition();
  310. var x = as.getLat();
  311. var y = as.getLng();
  312. var zoom = map.getZoom();
  313. this.selectmapdata.lat=x;
  314. this.selectmapdata.lng=y;
  315. this.selectmapdata.zoom=zoom;
  316. js.msg('wait','确定搜索地址...');
  317. this.geocoder(x,y);
  318. },
  319. //搜索位置
  320. geocoder:function(lat,lng, jid){
  321. if(!this.geocoderObj){
  322. this.geocoderObj = new qq.maps.Geocoder();
  323. this.geocoderObj.setComplete(function(result){
  324. var d1 = c.selectmapdata;
  325. d1.address = result.detail.address;
  326. d1.addressinfo = result.detail.addressComponents;
  327. js.msg();
  328. var sna = d1.sna;
  329. if(form(sna))form(sna).value=d1.address+'|'+d1.lat+','+d1.lng+'';
  330. var sna1 = d1.snall;
  331. if(sna1 && form(sna1))form(sna1).value=''+d1.lat+','+d1.lng+','+d1.zoom+'';
  332. c.onselectmap(sna,d1);
  333. });
  334. this.geocoderObj.setError(function() {
  335. js.msg('msg','搜索地址失败');
  336. });
  337. }
  338. var center = new qq.maps.LatLng(lat, lng);
  339. this.geocoderObj.getAddress(center);
  340. },
  341. xuanfile:function(fid,lx,fname,o1){
  342. if(!fname)fname='';
  343. $.selectdata({
  344. title:fname+'(模版选择)',fid:fid,
  345. url:'api.php?m=upload&a=getmfile&fenlei='+jm.base64encode(lx)+'',
  346. checked:false,nameobj:false,idobj:false,
  347. onselect:function(seld,sna,sid){
  348. if(sid)c.xuanfiles(this.fid,sid,fname,o1);
  349. }
  350. });
  351. },
  352. xuanfiles:function(fid,sid,fname,o1){
  353. js.loading('生成文件中...');if(!fname)fname='';
  354. js.ajax('api.php?m=upload&a=getmfilv',{fileid:sid,fname:jm.base64encode(fname)},function(ret){
  355. if(ret.success){
  356. js.unloading();
  357. c.showfileup(fid,ret.data);
  358. c.showupid(fid);
  359. if(o1)$(o1).remove();
  360. }else{
  361. js.msgerror(ret.msg);
  362. }
  363. },'get,json');
  364. }
  365. }