edit.blade.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396
  1. @extends('admin.layout')
  2. @section('content')
  3. <?php
  4. if (!isset($data)) $data = array();
  5. if (!$data && session("data")) {
  6. $data = session("data");
  7. }
  8. if (!$data && session('_old_input')) {
  9. $data = session("_old_input");
  10. }
  11. ?>
  12. <div class="wrapper wrapper-content animated fadeInRight">
  13. <div class="row">
  14. <div class="col-sm-12">
  15. <div class="ibox float-e-margins">
  16. <div class="ibox-title">
  17. <h5>导航栏设置</h5>
  18. <div class="ibox-tools">
  19. <a class="collapse-link"> <i class="fa fa-chevron-up"></i>
  20. </a>
  21. </div>
  22. </div>
  23. <div class="ibox-content">
  24. @if(role('Album/Nav/index'))
  25. <div class="row">
  26. <div class="col-sm-3 pull-right">
  27. <a href="{{ U('Album/Nav/index')}}"
  28. class="btn btn-sm btn-primary pull-right">返回列表</a>
  29. </div>
  30. </div>
  31. @endif
  32. <div class="row">
  33. <div class="col-lg-10">
  34. <form name="form_product" id="form-validation" action=""
  35. class="form-horizontal form-validation" accept-charset="UTF-8" method="post">
  36. <div class="form-group">
  37. <label class="control-label col-sm-3">图标名称</label>
  38. <div class="col-sm-5">
  39. <input id="data_name" name="data[name]" class="form-control"
  40. value="{{ $data['name'] or ''}}" required="" aria-required="true"
  41. placeholder="">
  42. </div>
  43. </div>
  44. <div class="form-group">
  45. <label class="control-label col-sm-3">位置</label>
  46. <div class="col-sm-5">
  47. <select name="data[state]" id="data_state" class="form-control" required=""
  48. aria-required="true">
  49. @foreach(dict()->get('album','top_buttom') as $key=>$val)
  50. <option value="{{$key}}"
  51. @if($key == (isset($data['state'])? $data['state']: ''))selected @endif>{{$val}}</option>
  52. @endforeach
  53. </select>
  54. </div>
  55. </div>
  56. <div class="form-group">
  57. <label class="control-label col-sm-3">默认图标</label>
  58. <div class="col-sm-5">
  59. {!! widget('Tools.ImgUpload')->single('pic_url',"data[pic_url]", isset($data['pic_url'])? $data['pic_url'] : "") !!}
  60. </div>
  61. </div>
  62. <div class="form-group">
  63. <label class="control-label col-sm-3">选中图标</label>
  64. <div class="col-sm-5">
  65. {!! widget('Tools.ImgUpload')->single('pic_url_active',"data[pic_url_active]", isset($data['pic_url_active'])? $data['pic_url_active'] : "") !!}
  66. </div>
  67. </div>
  68. <div class="form-group">
  69. <label class="control-label col-sm-3">跳转类型</label>
  70. <div class="col-sm-5">
  71. <select name="data[open_type]" id="data_open_type" class="form-control"
  72. required="" aria-required="true">
  73. @foreach(dict()->get('album','nav') as $key=>$val)
  74. <option value="{{$key}}"
  75. @if($key == (isset($data['open_type'])? $data['open_type']: '' ))selected @endif>{{$val}}</option>
  76. @endforeach
  77. </select>
  78. </div>
  79. </div>
  80. <div class="form-group re_xcx" style="display: none">
  81. <label class="control-label col-sm-3">App_ID</label>
  82. <div class="col-sm-5">
  83. <input id="data_app_id" name="data[app_id]" class="form-control re_xcx"
  84. value="{{ $data['app_id'] or ''}}" placeholder="">
  85. </div>
  86. </div>
  87. <div class="form-group re_nav" style="display: none">
  88. <label class="control-label col-sm-3">页面</label>
  89. <div class="col-sm-5">
  90. <select name="data[url]" id="data_select_url" class="form-control nav">
  91. @foreach($page as $k=>$v)
  92. <option value="{{$v['value']}}"
  93. @if($v['value'] == (isset($data['url'])? $data['url']: '' ))selected @endif>{{$v['name']}}</option>
  94. @endforeach
  95. </select>
  96. </div>
  97. </div>-+
  98. <div class="form-group re_xcx" style="display: none">
  99. <label class="control-label col-sm-3">路径配置</label>
  100. <div class="col-sm-5">
  101. <input id="data_url" name="data[url]" class="form-control re_xcx"
  102. value="{{ $data['url'] or ''}}" placeholder="">
  103. </div>
  104. </div>
  105. <div class="form-group re_call" style="display: none">
  106. <label class="control-label col-sm-3">拨号电话</label>
  107. <div class="col-sm-5">
  108. <input id="data_mobile" name="data[mobile]" class="form-control call"
  109. value="{{ $data['mobile'] or ''}}" placeholder="">
  110. </div>
  111. </div>
  112. <script type="text/javascript"
  113. src="https://webapi.amap.com/maps?v=1.3&key=533117702a063eae1dc26c183a1ac7bb&plugin=AMap.Autocomplete"></script>
  114. <script type="text/javascript"
  115. src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
  116. <div class="form-group re_address" style="display: none">
  117. <label class="control-label col-sm-3">导航地址</label>
  118. <div class="col-sm-5">
  119. <input n name="data[address]" readonly="true"
  120. value="{{ (isset($data['address'])?$data['address'] : "")}}"
  121. class="form-control address" id="add" data-toggle="modal"
  122. data-target="#myModal">
  123. {{--<input id="data_store_id" name="data[address]" class="form-control address" value="{{ $data['address'] or ''}}" placeholder="">--}}
  124. <input type="hidden" name="data[lon]" id="lon"
  125. value="{{$data['lon'] or ''}}">
  126. <input type="hidden" name="data[lat]" id="lat"
  127. value="{{$data['lat'] or ''}}">
  128. </div>
  129. </div>
  130. <div class="form-group re_nav_zhi" style="display: none">
  131. <label class="control-label col-sm-3 nav_zhi_name">路径参数</label>
  132. <div class="col-sm-5">
  133. <input id="data_zhi" name="zhi" class="form-control nav_zhi"
  134. value="{{$data['zhi'] or ''}}" placeholder="">
  135. </div>
  136. </div>
  137. <div class="form-group">
  138. <label class="control-label col-sm-3">排序</label>
  139. <div class="col-sm-5">
  140. <input id="data_sort" name="data[sort]" class="form-control"
  141. value="{{ $data['sort'] or '0'}}" required="" aria-required="true"
  142. placeholder="数值越大越靠前">
  143. <span class="help-block m-b-none">数值越大越靠前</span>
  144. </div>
  145. </div>
  146. <div class="form-group">
  147. <label class="control-label col-sm-3">&nbsp;</label>
  148. <div class="col-sm-9">
  149. <input type="hidden" name="_referer"
  150. value="<?php echo urlencode(request()->server('HTTP_REFERER'));?>"/>
  151. <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"/>
  152. <input type="submit" class="btn btn-success" style="margin-right:20px;">
  153. <input type="reset" class="btn btn-default">
  154. </div>
  155. </div>
  156. </form>
  157. </div>
  158. <!-- /.col-lg-10 -->
  159. </div>
  160. <!-- /.row -->
  161. </div>
  162. </div>
  163. </div>
  164. </div>
  165. </div>
  166. <div class="modal fade" id="myModal" tabindex="-1" role="dialog"
  167. aria-labelledby="myModalLabel" aria-hidden="true">
  168. <div class="modal-dialog" style="min-width:60%;">
  169. <div class="modal-content">
  170. <div class="modal-header">
  171. <h4 class="modal-title" id="myModalLabel">
  172. 选择坐标
  173. </h4>
  174. </div>
  175. <div class="modal-body">
  176. <div id="container" style="width: 100%;min-height: 400px;"></div>
  177. <div id="myPageTop">
  178. <table>
  179. <tr>
  180. <td>
  181. <label>按关键字搜索:</label>
  182. </td>
  183. <td>
  184. </td>
  185. </tr>
  186. <tr>
  187. <td>
  188. <input style="margin-right: 10px;min-width:300px"
  189. value="{{ (isset($data['address'])?$data['address'] : "") }}" type="text"
  190. placeholder="请输入关键字进行搜索" id="tipinput">
  191. </td>
  192. <td>
  193. <div style="margin-right: 10px;" class="btn btn-sm btn-primary"
  194. id="confirm">显示搜索点
  195. </div>
  196. </td>
  197. <td class="column2">
  198. <input type="hidden" readonly="true" id="lnglat">
  199. </td>
  200. </tr>
  201. </table>
  202. <br>
  203. <button type="button" id="modal-close" class="btn btn-sm btn-primary text-center"
  204. data-dismiss="modal">确认位置信息
  205. </button>
  206. </div>
  207. <div id="panel"></div>
  208. </div>
  209. </div><!-- /.modal-content -->
  210. </div><!-- /.modal -->
  211. </div>
  212. </div>
  213. <script type="text/javascript">
  214. var map = new AMap.Map("container", {
  215. resizeEnable: true,
  216. zoom: 10
  217. });
  218. $("#confirm").click(function () {
  219. var val = $('#tipinput').val();
  220. AMap.service(["AMap.PlaceSearch"], function () {
  221. var placeSearch = new AMap.PlaceSearch({ //构造地点查询类
  222. pageSize: 5,
  223. pageIndex: 1,
  224. map: map,
  225. panel: "panel"
  226. });
  227. placeSearch.search(val);
  228. });
  229. });
  230. //为地图注册click事件获取鼠标点击出的经纬度坐标
  231. var clickEventListener = map.on('click', function (e) {
  232. document.getElementById("lnglat").value = e.lnglat.getLng() + ',' + e.lnglat.getLat();
  233. });
  234. AMap.plugin('AMap.Geocoder', function () {
  235. var geocoder = new AMap.Geocoder({});
  236. var marker = new AMap.Marker({
  237. map: map,
  238. bubble: true
  239. })
  240. map.on('click', function (e) {
  241. console.log(e);
  242. marker.setPosition(e.lnglat);
  243. $('#lon').val(e.lnglat.getLng());
  244. $('#lat').val(e.lnglat.getLat());
  245. geocoder.getAddress(e.lnglat, function (status, result) {
  246. if (status == 'complete') {
  247. console.log(result);
  248. document.getElementById('tipinput').value = result.regeocode.formattedAddress
  249. }
  250. })
  251. })
  252. });
  253. $("#modal-close").click(function () {
  254. var b = ($('#tipinput').val());
  255. console.log(b);
  256. $('#map').val(b);
  257. $('#add').val(b);
  258. });
  259. /* $('.sg-datepicker').datepicker({
  260. format: 'yyyy-mm-dd',
  261. language: 'zh-CN'
  262. });*/
  263. </script>
  264. <script>
  265. setUrl();
  266. $(document).on("change", "select[name='data[open_type]']", function () {
  267. setOpenType();
  268. });
  269. $(document).on("change", "select[name='data[url]']", function () {
  270. setUrl();
  271. });
  272. var setting = ['xcx', 'call', 'address', 'nav'];
  273. setOpenType();
  274. function setOpenType() {
  275. if ($("select[name='data[open_type]']").val() == 1) {
  276. setRequire('call');
  277. } else if ($("select[name='data[open_type]']").val() == 2) {
  278. setRequire('address');
  279. } else if ($("select[name='data[open_type]']").val() == 3) {
  280. setRequire('xcx');
  281. } else if ($("select[name='data[open_type]']").val() == 4) {
  282. setRequire('nav');
  283. }
  284. }
  285. function setRequire(name) {
  286. $.each(setting, function (i, item) {
  287. if(name == 'xcx'){
  288. $('#data_select_url').attr('name');
  289. $('#data_url').removeAttr('name','data[url]');
  290. }else if(name == 'nav'){
  291. $('#data_url').removeAttr('name');
  292. $('#data_select_url').attr('name','data[url]');
  293. }
  294. if (item == name) {
  295. $('.re_' + item).show();
  296. $('input.' + item).attr('required', '');
  297. $("input." + item).attr('aria-required', 'true');
  298. } else {
  299. $('.re_' + item).hide();
  300. $('input.' + item).removeAttr('required');
  301. $("input." + item).removeAttr('aria-required');
  302. }
  303. })
  304. }
  305. function setUrl() {
  306. var url = $("select[name='data[url]']").val();
  307. var data = url.split("/")
  308. //console.log(data)
  309. if (data[2] == 'news' || data[2] == 'index') {
  310. zhiShow('hide');
  311. } else if (data[2] == 'info_list') {
  312. zhiShow('hide');
  313. } else if (data[2] == 'info_detail') {
  314. $(".nav_zhi_name").text('').text('文章ID');
  315. zhiShow('show');
  316. }
  317. }
  318. function zhiShow(e) {
  319. if (e == 'show') {
  320. $('.re_nav_zhi').show();
  321. $('.re_nav_zhi').attr('required', '');
  322. $('.re_nav_zhi').attr('name', 'zhi');
  323. $('.re_nav_zhi').attr('aria-required', 'true');
  324. } else {
  325. $('.re_nav_zhi').hide();
  326. $('#data_zhi').val('');
  327. $('.re_nav_zhi').removeAttr('required');
  328. $('.re_nav_zhi').removeAttr('name');
  329. $('.re_nav_zhi').removeAttr('aria-required');
  330. }
  331. }
  332. </script>
  333. @endsection