index.php 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. {extend name="public/container"}
  2. {block name="head"}
  3. <link href="{__FRAME_PATH}css/plugins/iCheck/custom.css" rel="stylesheet">
  4. <script src="{__ADMIN_PATH}plug/validate/jquery.validate.js"></script>
  5. <script src="{__ADMIN_PATH}frame/js/plugins/iCheck/icheck.min.js"></script>
  6. <script src="{__ADMIN_PATH}frame/js/ajaxfileupload.js"></script>
  7. <style>
  8. label.error{
  9. color: #a94442;
  10. margin-bottom: 0;
  11. display: inline-block;
  12. font: normal normal normal 14px/1 FontAwesome;
  13. font-size: inherit;
  14. text-rendering: auto;
  15. -webkit-font-smoothing: antialiased;
  16. -moz-osx-font-smoothing: grayscale;
  17. transform: translate(0, 0);
  18. }
  19. .file{
  20. background-color:#676a6c;
  21. border: none;
  22. }
  23. .deleteimg{position: absolute;
  24. right: 0%;
  25. top: 0%;
  26. cursor: pointer;
  27. background-color:#676a6c;
  28. color: #fff;
  29. width: 18px;
  30. text-align: center;}
  31. </style>
  32. {/block}
  33. {block name="content"}
  34. <div class="row">
  35. <div class="col-sm-12">
  36. <div class="ibox float-e-margins">
  37. <div class="tabs-container ibox-title">
  38. <ul class="nav nav-tabs">
  39. {volist name="config_tab" id="vo"}
  40. {if condition="$vo['value'] eq $tab_id"}
  41. <li class="active"><a href="{:Url('index',array('tab_id'=>$vo['value'],'type'=>$vo['type']))}"><i class="fa fa-{$vo.icon}"></i>{$vo.label}</a></li>
  42. {else/}
  43. <li><a href="{:Url('index',array('tab_id'=>$vo['value'],'type'=>$vo['type']))}"><i class="fa fa-{$vo.icon}"></i>{$vo.label}</a></li>
  44. {/if}
  45. {/volist}
  46. </ul>
  47. <div class="tab-content">
  48. <div class="<!--ibox-content--> p-m m-t-sm">
  49. <form method="post" class="form-horizontal" id="signupForm" action="{:Url('save_basics')}">
  50. <input type="hidden" value="{$tab_id}" name="tab_id"/>
  51. {volist name="list" id="vo"}
  52. {eq name="$vo['config_tab_id']" value="$tab_id"}
  53. <div class="form-group">
  54. <label class="col-sm-2 control-label" {eq name="$vo['type']" value="radio"}style="padding-top: 0;"{/eq}>{$vo.info}</label>
  55. <div class="col-sm-10">
  56. <div class="row">
  57. <div class="col-md-6">
  58. {switch name="$vo['type']" }
  59. {case value="text" break="1"}<!-- 文本框-->
  60. <input type="{$vo.type}" class="form-control" name="{$vo.menu_name}" value="{$vo.value}" validate="{$vo['required']}" style="width: {$vo.width}%"/>
  61. {/case}
  62. {case value="textarea" break="1"}<!--多行文本框-->
  63. <textarea name="{$vo.menu_name}" cols="{$vo.width}" rows="{$vo.high}" class="form-control" style="width: {$vo.width}%">{$vo.value}</textarea>
  64. {/case}
  65. {case value="checkbox" break="1"}<!--多选框-->
  66. <?php
  67. $parameter = array();
  68. $option = array();
  69. if($vo['parameter']){
  70. $parameter = explode("\n",$vo['parameter']);
  71. foreach ($parameter as $k=>$v){
  72. $option[$k] = explode('=>',$v);
  73. }
  74. // dump($parameter);
  75. // exit();
  76. }
  77. $checkbox_value = $vo['value'];
  78. if(!is_array($checkbox_value)) $checkbox_value = explode("\n",$checkbox_value);
  79. // dump($checkbox_value);
  80. // exit();
  81. ?>
  82. {volist name="option" id="son" key="k"}
  83. {if condition="in_array($son[0],$checkbox_value)"}
  84. <label class="checkbox-inline i-checks">
  85. <input type="checkbox" value="{$son.0}" name="{$vo.menu_name}[]" checked="checked">{$son.1}</label>
  86. {else/}
  87. <label class="checkbox-inline i-checks">
  88. <input type="checkbox" value="{$son.0}" name="{$vo.menu_name}[]">{$son.1}</label>
  89. {/if}
  90. {/volist}
  91. {/case}
  92. {case value="radio" break="1"}<!--单选按钮-->
  93. <?php
  94. $parameter = array();
  95. $option = array();
  96. if($vo['parameter']){
  97. $parameter = explode("\n",$vo['parameter']);
  98. foreach ($parameter as $k=>$v){
  99. $option[$k] = explode('=>',$v);
  100. }
  101. }
  102. ?>
  103. {volist name="option" id="son"}
  104. {if condition="$son[0] eq $vo['value']"}
  105. <div class="radio i-checks checked" style="display:inline">
  106. <label class="" style="padding-left: 0;">
  107. <div class="iradio_square-green " style="position: relative;">
  108. <input type="radio" checked="checked" value="{$son.0}" name="{$vo.menu_name}" style="position: absolute; opacity: 0;">
  109. </div>
  110. <i></i> {$son.1}
  111. </label>
  112. </div>
  113. {else /}
  114. <div class="radio i-checks" style="display:inline">
  115. <label class="" style="padding-left: 0;">
  116. <div class="iradio_square-green" style="position: relative;">
  117. <input type="radio" value="{$son.0}" name="{$vo.menu_name}" style="position: absolute; opacity: 0;">
  118. </div>
  119. <i></i> {$son.1}
  120. </label>
  121. </div>
  122. {/if}
  123. {/volist}
  124. {/case}
  125. {case value="upload" break="1"}<!--文件上传-->
  126. <?php
  127. $img_image = $vo['value'];
  128. $num_img = 0;
  129. if(!empty($img_image)){
  130. $num_img = 1;
  131. }
  132. ?>
  133. <!--文件-->{if condition="$vo['upload_type'] EQ 3"}
  134. <button class="btn btn-w-m btn-primary flag" type="button" data-name="{$vo.menu_name}"><i class="fa fa-upload"></i>添加文件</button>
  135. <div style="display: inline-flex;">
  136. <input type="file" class="{$vo.menu_name}_1" name="{$vo.menu_name}" style="display: none;" data-name="{$vo.menu_name}" id="{$vo.menu_name}" data-type = "{$vo.upload_type}" />
  137. {if condition="$num_img LT 1"}
  138. <div class="file-box">
  139. <div class="file {$vo.menu_name}">
  140. </div>
  141. </div>
  142. {else/}
  143. {volist name="$vo['value']" id="img"}
  144. <div class="file-box">
  145. <div class="file {$vo.menu_name}" style="position: relative;">
  146. <a href="http://<?php echo $_SERVER['SERVER_NAME'].$img;?>" target="_blank">
  147. <span class="corner"></span>
  148. <div class="icon">
  149. <i class="fa fa-file"></i>
  150. </div>
  151. <div class="file-name">
  152. <?php
  153. //显示带有文件扩展名的文件名
  154. echo basename($img);
  155. ?>
  156. </div>
  157. </a>
  158. <div data-name="{$vo.menu_name}" data-image="{$img}" class="deleteimg" onclick="delPic(this)" title="删除">×</div>
  159. <input type="hidden" name="{$vo.menu_name}[]" value="{$img}">
  160. </div>
  161. </div>
  162. {/volist}
  163. {/if}
  164. <div class="clearfix"></div>
  165. </div>
  166. <!--多图-->{elseif condition="$vo['upload_type'] EQ 2"/}
  167. <div style="margin-top: 20px;">
  168. <input type="file" class="{$vo.menu_name}_1" name="{$vo.menu_name}" style="display: none;" data-name="{$vo.menu_name}" id="{$vo.menu_name}" data-type = "{$vo.upload_type}" />
  169. <button class="btn btn-w-m btn-primary flag" type="button" data-name="{$vo.menu_name}"><i class="fa fa-upload"></i>添加图片</button>
  170. <!-- <span class="flag" style="margin-top: 5px;width: 86px;height: 27px;border-radius: 6px;cursor:pointer;padding: .5rem 1rem;background-color: #18a689;color: #fff;text-align: center;" data-name="{$vo.menu_name}" >添加图片</span>-->
  171. <div class="attachment upload_image_{$vo.menu_name}" style="display:block;margin:20px 0 5px -44px">
  172. {volist name="$vo['value']" id="img"}
  173. <div class="file-box">
  174. <div class="file {$vo.menu_name}" style="position: relative;">
  175. <span class="corner"></span>
  176. <div class="image open_image">
  177. <img alt="image" class="img-responsive" data-image="{$img}" src="{$img}" style="width:100%;height:100%;cursor: pointer">
  178. </div>
  179. <div class="file-name">
  180. <?php
  181. //显示带有文件扩展名的文件名
  182. echo basename($img);
  183. ?>
  184. </div>
  185. <div data-name="{$vo.menu_name}" data-image="{$img}" class="deleteimg" onclick="delPic(this)" title="删除">×</div>
  186. <input type="hidden" name="{$vo.menu_name}[]" value="{$img}">
  187. </div>
  188. </div>
  189. {/volist}
  190. <div class="clearfix"></div>
  191. </div>
  192. </div>
  193. <!--单图-->{else/}
  194. <div style="display: inline-flex;">
  195. <input type="file" class="{$vo.menu_name}_1" name="{$vo.menu_name}" style="display: none;" data-name="{$vo.menu_name}" id="{$vo.menu_name}" data-type = "{$vo.upload_type}" />
  196. <div class="flag" style="width: 100px;height: 80px;background-image:url('/public/system/module/wechat/news/images/image.png');cursor: pointer" data-name="{$vo.menu_name}" >
  197. </div>
  198. {if condition="$num_img LT 1"}
  199. <div class="file-box">
  200. <div class="{$vo.menu_name}">
  201. </div>
  202. </div>
  203. {else/}
  204. {volist name="$vo['value']" id="img"}
  205. <div class="file-box">
  206. <div class="{$vo.menu_name}">
  207. <div style="position: relative;" class="file">
  208. <div class="image open_image">
  209. <img alt="image" class="img-responsive" data-image="{$img}" src="{$img}" style="width: 100%;height: 100%;cursor: pointer">
  210. </div>
  211. <div data-name="{$vo.menu_name}" data-image="{$img}" class="deleteimg" onclick="delPic(this)" title="删除">×</div>
  212. <input type="hidden" name="{$vo.menu_name}[]" value="{$img}">
  213. </div>
  214. </div>
  215. </div>
  216. {/volist}
  217. <div class="clearfix"></div>
  218. {/if}
  219. </div>
  220. {/if}
  221. {/case}
  222. {/switch}
  223. </div>
  224. <div class="col-md-6">
  225. <span class="help-block m-b-none"><i class="fa fa-info-circle"></i> {$vo.desc}</span>
  226. </div>
  227. </div>
  228. </div>
  229. </div>
  230. <!-- <div class="hr-line-dashed"></div>-->
  231. {/eq}
  232. {/volist}
  233. <div class="form-group" style="text-align: center;">
  234. <div class="col-sm-4 col-sm-offset-2">
  235. <button class="btn btn-primary" type="submit">提交</button>
  236. </div>
  237. </div>
  238. </form>
  239. </div>
  240. </div>
  241. </div>
  242. </div>
  243. </div>
  244. </div>
  245. {/block}
  246. {block name="script"}
  247. <script>
  248. $eb = parent._mpApi;
  249. $().ready(function() {
  250. $("#signupForm").validate();
  251. $('.i-checks').iCheck({
  252. checkboxClass: 'icheckbox_square-green',
  253. radioClass: 'iradio_square-green',
  254. });
  255. $('.flag').on('click',function(){
  256. $('.'+$(this).data('name')+'_1').trigger('click');
  257. change_upload($(this).data('name'));
  258. });
  259. function change_upload(_this_name) {
  260. $('.'+_this_name+'_1').on('change',function(){
  261. ajaxFileUpload(this);
  262. });
  263. }
  264. });
  265. /**
  266. * 添加文件
  267. * */
  268. function getHtmlFlie(menu_name,html_src) {
  269. html_file = '';
  270. if(html_src.length < 1){
  271. return html_file;
  272. }
  273. html_file += '<a href="http://'+window.location.host+html_src+'" target="_blank">';
  274. html_file += '<span class="corner"></span>';
  275. html_file += '<div class="icon">';
  276. html_file += '<i class="fa fa-file"></i>';
  277. html_file += '</div>';
  278. html_file += '<div class="file-name">';
  279. $.ajax({
  280. url:"{:url('getImageName')}",
  281. data:'src='+html_src,
  282. type:'post',
  283. async:false,
  284. dataType:'json',
  285. success:function (re) {
  286. html_file += re.name;
  287. }
  288. })
  289. html_file += '</div>';
  290. html_file += '</a>';
  291. html_file += '<div data-name="'+menu_name+'" data-image="'+html_src+'" class="deleteimg" onclick="delPic(this)" title="删除">×</div>';
  292. html_file += '<input type="hidden" name="'+menu_name+'[]" value="'+html_src+'">';
  293. return html_file;
  294. }
  295. /**
  296. * 多图上传html 处理
  297. * */
  298. function getHtmlOrthe(menu_name,html_src) {
  299. html_order = '';
  300. if(html_src.length < 1){
  301. return html_order;
  302. }
  303. html_order += '<div class="file-box">';
  304. html_order += '<div class="file '+menu_name+'" style="position: relative">';
  305. html_order += '<span class="corner"></span>';
  306. html_order += '<div class="image open_image">';
  307. html_order += '<img alt="image" class="img-responsive" data-image="'+html_src+'" src="'+html_src+'" style="width:100%;height:100%;cursor: pointer">';
  308. html_order += '</div>';
  309. html_order += '<div class="file-name">';
  310. $.ajax({
  311. url:"{:url('getImageName')}",
  312. data:'src='+html_src,
  313. type:'post',
  314. async:false,
  315. dataType:'json',
  316. success:function (re) {
  317. html_order += re.name;
  318. }
  319. })
  320. html_order += '</div>';
  321. html_order += '<div data-name="'+menu_name+'" data-image="'+html_src+'" class="deleteimg" onclick="delPic(this)" title="删除">×</div>';
  322. html_order += '<input type="hidden" name="'+menu_name+'[]" value="'+html_src+'">';
  323. html_order += '</div>';
  324. html_order += '</div>';
  325. return html_order;
  326. }
  327. /**
  328. * 单图上传html处理
  329. * */
  330. function getHtml(menu_name,html_src) {
  331. html_one = '';
  332. if(html_src.length < 1){
  333. return html_one;
  334. }
  335. html_one += '<div style="position: relative;" class="file">'
  336. html_one += '<span class="corner"></span>';
  337. html_one += '<div class="image open_image">';
  338. html_one += '<img alt="image" class="img-responsive" data-image="'+html_src+'" src="'+html_src+'" style="width:100%;height:100%;cursor: pointer">';
  339. html_one += '</div>';
  340. html_one += '<div class="file-name">';
  341. $.ajax({
  342. url:"{:url('getImageName')}",
  343. data:'src='+html_src,
  344. type:'post',
  345. async:false,
  346. dataType:'json',
  347. success:function (re) {
  348. html_one += re.name;
  349. }
  350. })
  351. html_one += '</div>';
  352. html_one += '<div data-name="'+menu_name+'" data-image="'+html_src+'" class="deleteimg" onclick="delPic(this)" title="删除">×</div>';
  353. html_one += '<input type="hidden" name="'+menu_name+'[]" value="'+html_src+'">';
  354. html_one += '</div>'
  355. return html_one;
  356. }
  357. function ajaxFileUpload(is) {
  358. bool_upload_num = $(is).data('type');
  359. $.ajaxFileUpload({
  360. url: "{:url('view_upload')}",
  361. data:{file: $(is).data('name'),type:bool_upload_num},
  362. type: 'post',
  363. secureuri: false, //一般设置为false
  364. fileElementId: $(is).data('name'), // 上传文件的id、name属性名
  365. dataType: 'json', //返回值类型,一般设置为json、application/json
  366. success: function(data, status, e){
  367. console.log(data);
  368. if(data.code == 200){
  369. if(bool_upload_num == 2){
  370. getHtmlOrthe($(is).data('name'),data.data.url);
  371. $('.upload_image_'+$(is).data('name')).append(html_order);
  372. }else if(bool_upload_num == 1){
  373. getHtml($(is).data('name'),data.data.url);
  374. $('.'+$(is).data('name')).empty();
  375. $('.'+$(is).data('name')).append(html_one);
  376. }else if(bool_upload_num == 3){
  377. getHtmlFlie($(is).data('name'),data.data.url);
  378. $('.'+$(is).data('name')).empty();
  379. $('.'+$(is).data('name')).append(html_file);
  380. }else{}
  381. $eb.message('success',data.msg);
  382. }else{
  383. $eb.message('error',data.msg);
  384. }
  385. $('.'+$(is).data('name')).on('change',function(){ ajaxFileUpload(this);})
  386. },
  387. error: function(data, status, e){
  388. $('.'+$(is).data('name')).on('change',function(){ ajaxFileUpload(this);})
  389. }
  390. });
  391. }
  392. $('.del_upload_one');
  393. function delPic(_this) {
  394. if(!confirm('确认删除?')) return false;
  395. p = $(_this).parents('.'+$(_this).data('name'));
  396. p.empty();
  397. var image = $(_this).data('image');
  398. url = "{:Url('rmPublicResource')}";
  399. $.ajax({
  400. url:url,
  401. data:'url='+image,
  402. type:'get',
  403. success:function (re) {
  404. if(re.code == 200){
  405. $eb.message('success',re.msg);
  406. }else{
  407. $eb.message('error',re.msg);
  408. }
  409. }
  410. })
  411. }
  412. $(document).on('click','.open_image',function (e) {
  413. var image = $(".open_image img").data('image');
  414. $eb.openImage(image);
  415. })
  416. </script>
  417. {/block}