form.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. {extend name='admin@main'}
  2. {block name="content"}
  3. {include file='mall@store_goods/form_style'}
  4. <header>
  5. <meta charset="utf-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
  8. <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>
  9. <style>
  10. .layui-form-radio{
  11. margin: 0 !important;
  12. padding-right:0 !important;
  13. }
  14. .layui-form-select{
  15. margin-right: 10px !important;
  16. }
  17. .layui-col-xs9{
  18. width: 90%;
  19. }
  20. .amap-icon img,
  21. .amap-marker-content img{
  22. width: 25px;
  23. height: 34px;
  24. }
  25. .marker {
  26. position: absolute;
  27. top: -20px;
  28. right: -118px;
  29. color: #fff;
  30. padding: 4px 10px;
  31. box-shadow: 1px 1px 1px rgba(10, 10, 10, .2);
  32. white-space: nowrap;
  33. font-size: 12px;
  34. font-family: "";
  35. background-color: #25A5F7;
  36. border-radius: 3px;
  37. }
  38. .input-card{
  39. width: 18rem;
  40. z-index: 170;
  41. }
  42. .input-card .btn{
  43. margin-right: .8rem;
  44. }
  45. .input-card .btn:last-child{
  46. margin-right: 0;
  47. }
  48. </style>
  49. </header>
  50. <form onsubmit="return false;" id="GoodsForm" data-auto="true" method="post" class='layui-form layui-card' autocomplete="off">
  51. <div class="layui-card-body think-box-shadow padding-left-40">
  52. <div class="layui-tab">
  53. <ul class="layui-tab-title">
  54. <li class="layui-this">招聘设置</li>
  55. </ul>
  56. <div class="layui-tab-content">
  57. <!--基础设置-->
  58. <div class="layui-tab-item layui-show">
  59. <div class="layui-form-item layui-row layui-col-space15">
  60. <label class="layui-col-xs9 relative">
  61. <span class="color-green">地图</span>
  62. <div>
  63. <div id="container" style="width:800px; height: 500px;"></div>
  64. </div>
  65. <div class="layui-input-inline">
  66. <input type="hidden" id="longitude" name="longitude" value="{$vo.longitude|default=''}">
  67. <input type="hidden" id="latitude" name="latitude" value="{$vo.latitude|default=''}">
  68. <input id='lnglat' type="text" value="{$vo.longitude|default=''},{$vo.latitude|default=''}">
  69. </div>
  70. </label>
  71. </div>
  72. <!--基础设置start-->
  73. <div class="layui-form-item layui-row layui-col-space15">
  74. <label class="layui-col-xs9 relative">
  75. <span class="color-green">标题</span>
  76. <input name="title" required class="layui-input" placeholder="请输入招聘标题" value="{$vo.title|default=''}">
  77. </label>
  78. </div>
  79. <div class="layui-form-item layui-row layui-col-space15">
  80. <label class="layui-col-xs9 relative">
  81. <span class="color-green">会员ID</span>
  82. <input name="user_id" required class="layui-input" placeholder="请输入发布会员id" value="{$vo.user_id|default=''}">
  83. </label>
  84. </div>
  85. <div class="layui-form-item layui-row layui-col-space15">
  86. <label class="layui-col-xs9 relative">
  87. <span class="color-green">标签</span><span class="margin-left-10 color-gray">多个半角逗号(,)隔开</span>
  88. <textarea placeholder="请输入招聘标签" class="layui-textarea" name="label">{$vo.label|default=''}</textarea>
  89. </label>
  90. </div>
  91. <div class="layui-form-item layui-row layui-col-space15">
  92. <label class="layui-col-xs9 relative">
  93. <span class="color-green">排序</span>
  94. <input name="sort" required class="layui-input" placeholder="请输入排序号" value="{$vo.sort|default=''}">
  95. </label>
  96. </div>
  97. <div class="layui-form-item layui-row layui-col-space15">
  98. <label class="layui-col-xs3 relative">
  99. <span class="color-green">学历</span>
  100. <select class="layui-select" required name="education" id="education" lay-filter="education" lay-search>
  101. {foreach $education as $e}
  102. <option value="{$e}" {if isset($vo.education) && $vo.education eq $e}selected{/if}>{$e}</option>
  103. {/foreach}
  104. </select>
  105. </label>
  106. <label class="layui-col-xs3 relative">
  107. <span class="color-green">招聘人数</span>
  108. <input name="num" required class="layui-input" placeholder="请输入招聘人数" value="{$vo.num|default=''}">
  109. </label>
  110. </div>
  111. <div class="layui-form-item layui-row layui-col-space15">
  112. <label class="layui-col-xs9 relative">
  113. <span class="color-green">分类</span>
  114. </label>
  115. <div class="layui-inline" style="top: -15px;margin-bottom: -25px">
  116. <div class="layui-input-inline">
  117. <select name="first_classify" lay-filter ="first_classify">
  118. <option value="0">请选择</option>
  119. {if !empty($cate_tree)}
  120. {foreach $cate_tree as $ck=>$cv}
  121. {if isset($vo.first_classify) && $vo.first_classify == $cv['id'] }
  122. <option selected data-cl_key="{$ck}" value="{$cv['id']}">{$cv['title']}</option>
  123. {else}
  124. <option data-cl_key="{$ck}" value="{$cv['id']}">{$cv['title']}</option>
  125. {/if}
  126. {/foreach}
  127. {/if}
  128. </select>
  129. </div>
  130. <div class="layui-input-inline">
  131. <select name="second_classify" lay-filter ="second_classify">
  132. <option value="0">请选择</option>
  133. {if !empty($cate_tree)}
  134. {foreach $cate_tree as $ck=>$cv}
  135. {if isset($vo.first_classify) && $vo.first_classify == $cv['id'] }
  136. {if isset($cv['children'])}
  137. {foreach $cv['children'] as $cln}
  138. {if isset($vo.second_classify) && $vo.second_classify == $cln['id'] }
  139. <option selected value="{$cln['id']}">{$cln['title']}</option>
  140. {else}
  141. <option value="{$cln['id']}">{$cln['title']}</option>
  142. {/if}
  143. {/foreach}
  144. {/if}
  145. {/if}
  146. {/foreach}
  147. {/if}
  148. </select>
  149. </div>
  150. </div>
  151. </div>
  152. <div class="layui-form-item layui-row layui-col-space15">
  153. <label class="layui-col-xs9 relative">
  154. <span class="color-green">地址</span>
  155. </label>
  156. <div class="layui-inline" style="top: -15px;margin-bottom: -25px">
  157. <div class="layui-input-inline">
  158. <select name="province" lay-filter ="province">
  159. <option value="0">请选择</option>
  160. {foreach $all_area as $ak=>$cv}
  161. {if isset($vo.province) && $vo.province == $cv['name'] }
  162. <option selected data-al_key="{$ak}" value="{$cv['name']}">{$cv['name']}</option>
  163. {else}
  164. <option data-al_key="{$ak}" value="{$cv['name']}">{$cv['name']}</option>
  165. {/if}
  166. {/foreach}
  167. </select>
  168. </div>
  169. <div class="layui-input-inline">
  170. <select name="city" lay-filter ="city">
  171. <option value="0">请选择</option>
  172. {foreach $all_area as $ck=>$cv}
  173. {if isset($vo.province) && $vo.province == $cv['name'] }
  174. {foreach $cv['children'] as $cln}
  175. {if isset($vo.city) && $vo.city == $cln['name'] }
  176. <option selected value="{$cln['name']}">{$cln['name']}</option>
  177. {else}
  178. <option value="{$cln['name']}">{$cln['name']}</option>
  179. {/if}
  180. {/foreach}
  181. {/if}
  182. {/foreach}
  183. </select>
  184. </div>
  185. <div class="layui-input-inline">
  186. <input name="address" style="width: 400px" required class="layui-input" placeholder="请输入公司地址" value="{$vo.address|default=''}">
  187. </div>
  188. </div>
  189. </div>
  190. <div class="layui-form-item layui-row layui-col-space15">
  191. <label class="layui-col-xs9 relative">
  192. <span class="color-green">工作年限</span>
  193. </label>
  194. <div class="layui-inline" style="top: -15px;margin-bottom: -25px">
  195. <div class="layui-input-inline">
  196. <input type="number" name="experience_min" value="{$vo.experience_min|default=''}" placeholder="" autocomplete="off" class="layui-input">
  197. </div>
  198. <div class="layui-form-mid">-</div>
  199. <div class="layui-input-inline">
  200. <input type="number" name="experience_max" value="{$vo.experience_max|default=''}" placeholder="" autocomplete="off" class="layui-input">
  201. </div>
  202. </div>
  203. </div>
  204. <div class="layui-form-item layui-row layui-col-space15">
  205. <label class="layui-col-xs9 relative">
  206. <span class="color-green">薪资</span>
  207. </label>
  208. <div class="layui-inline" style="top: -15px;margin-bottom: -25px">
  209. <div class="layui-input-inline">
  210. <input type="number" name="price_min" value="{$vo.price_min|default=''}" placeholder="¥" autocomplete="off" class="layui-input">
  211. </div>
  212. <div class="layui-form-mid">-</div>
  213. <div class="layui-input-inline" >
  214. <input type="number" name="price_max" value="{$vo.price_max|default=''}"placeholder="¥" autocomplete="off" class="layui-input">
  215. </div>
  216. </div>
  217. </div>
  218. <div class="layui-form-item layui-row layui-col-space15">
  219. <label class="layui-col-xs9 relative">
  220. <span class="color-green">福利待遇</span><span class="margin-left-10 color-gray">多个半角逗号(,)隔开</span>
  221. <textarea placeholder="请输入内容" class="layui-textarea" name="welfare">{$vo.welfare|default=''}</textarea>
  222. </label>
  223. </div>
  224. <div class="layui-form-item layui-row layui-col-space15">
  225. <label class="layui-col-xs3 relative">
  226. <span class="color-green">招聘公司</span>
  227. <input name="company" required class="layui-input" placeholder="请输入招聘公司名称" value="{$vo.company|default=''}">
  228. </label>
  229. <label class="layui-col-xs2 relative">
  230. <span class="color-green">联系人</span>
  231. <input name="principal" required class="layui-input" placeholder="请输入联系人" value="{$vo.principal|default=''}">
  232. </label>
  233. <label class="layui-col-xs2 relative">
  234. <span class="color-green">邮箱</span>
  235. <input name="email" required class="layui-input" placeholder="请输入邮箱" value="{$vo.email|default=''}">
  236. </label>
  237. <label class="layui-col-xs2 relative">
  238. <span class="color-green">电话</span>
  239. <input name="phone" required class="layui-input" placeholder="请输入电话" value="{$vo.phone|default=''}">
  240. </label>
  241. </div>
  242. <div class="layui-form-item layui-row layui-col-space15">
  243. <label class="layui-col-xs9 relative">
  244. <span class="color-green">公司标签</span><span class="margin-left-10 color-gray">多个半角逗号(,)隔开</span>
  245. <textarea placeholder="请输入公司标签" class="layui-textarea" name="company_label">{$vo.company_label|default=''}</textarea>
  246. </label>
  247. </div>
  248. <div class="layui-form-item layui-row layui-col-space15">
  249. <label class="layui-col-xs9 relative">
  250. <span class="color-green label-required-prev">公司LOGO</span>
  251. <table class="layui-table">
  252. <thead>
  253. <tr>
  254. <th class="text-left">LOGO</th>
  255. </tr>
  256. <tr>
  257. <td width="auto" class="text-left"><input name="cover" type="hidden" value="{$vo.cover|default=''}"></td>
  258. </tr>
  259. </thead>
  260. </table>
  261. </label>
  262. <script>$('[name="cover"]').uploadOneImage();</script>
  263. </div>
  264. <div class="layui-form-item layui-row layui-col-space15">
  265. <label class="layui-col-xs9 relative">
  266. <span class="color-green">招聘详情</span>
  267. <textarea name="content">{$vo.content|default=""}</textarea>
  268. </label>
  269. </div>
  270. <div class="layui-form-item text-center">
  271. {notempty name='vo.id'}<input type="hidden" name="id" value="{$vo.id}">{/notempty}
  272. <button class="layui-btn layui-btn-danger" ng-click="hsitoryBack()" type="button">取消</button>
  273. <button class="layui-btn" type="submit">保存</button>
  274. </div>
  275. </div>
  276. </div>
  277. </div>
  278. </div>
  279. </form>
  280. {/block}
  281. {block name='script'}
  282. <textarea class="layui-hide" id="goods-specs">{$vo.specs|raw|default=''}</textarea>
  283. <textarea class="layui-hide" id="goods-value">{$defaultValues|raw|default=''}</textarea>
  284. <script type="text/javascript" src="https://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
  285. <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=5295cbb966c063bde1ed33c1de7ed6bd"></script>
  286. <script>
  287. layui.config({}).extend({}).use(['index', 'form'], function(){ var $ = layui.$,form = layui.form;})
  288. var longitude = "{$vo.longitude|default=''}";
  289. var latitude = "{$vo.latitude|default=''}";
  290. window.init = function(){
  291. var marker, map = new AMap.Map('container', {
  292. center:['118.356655','35.102929'],
  293. resizeEnable: true,
  294. zoom:13
  295. });
  296. map.on( 'click', function (e) {
  297. lnglatInput.value = e.lnglat.toString();
  298. var inputVal = lnglatInput.value.split(',');
  299. clearMarker();
  300. addMark(inputVal[0], inputVal[1])
  301. $("longitude").value =inputVal[0] ;
  302. $("latitude").value = inputVal[1];
  303. });
  304. var $ = function(elementId){
  305. return document.getElementById(elementId);
  306. };
  307. var lnglatInput = $('lnglat');
  308. var pixelInput = $('pixel');
  309. lnglat2container();
  310. // 经纬度坐标转成容器像素坐标
  311. function lnglat2container() {
  312. if(!lnglatInput.value) return
  313. var inputVal = lnglatInput.value.split(',');
  314. var lnglat = new AMap.LngLat(inputVal[0], inputVal[1]);
  315. var pixel = map.lngLatToContainer(lnglat);
  316. pixelInput.value = pixel.round();
  317. }
  318. // 添加mark
  319. function addMark(lng,pix) {
  320. console.log(lng,pix)
  321. if(!lng || !pix) return ;
  322. marker = new AMap.Marker({
  323. icon: "https://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",
  324. position: [lng, pix],
  325. offset: new AMap.Pixel(-13, -30)
  326. });
  327. marker.setMap(map);
  328. }
  329. // 清除 marker
  330. function clearMarker() {
  331. if (marker) {
  332. marker.setMap(null);
  333. marker = null;
  334. }
  335. }
  336. addMark(longitude,latitude);
  337. }
  338. </script>
  339. <script src="https://webapi.amap.com/maps?v=1.4.15&key=5295cbb966c063bde1ed33c1de7ed6bd&callback=init"></script>
  340. <script src="https://webapi.amap.com/js/require.js" data-main="./require-init"></script>
  341. <script src="https://webapi.amap.com/loader.js"></script>
  342. <script>
  343. window.form.render();
  344. layui.use('form', function () {
  345. var form = layui.form;
  346. //日期时间范围
  347. laydate.render({
  348. elem: '#start_time'
  349. ,type: 'datetime'
  350. });
  351. laydate.render({
  352. elem: '#end_time'
  353. ,type: 'datetime'
  354. });
  355. })
  356. layui.use('element', function(){
  357. var $ = layui.jquery
  358. ,element = layui.element;
  359. var active = {
  360. tabAdd: function(){
  361. element.tabAdd('demo', {
  362. title: '新选项'+ (Math.random()*1000|0)
  363. ,content: '内容'+ (Math.random()*1000|0)
  364. ,id: new Date().getTime()
  365. })
  366. }
  367. ,tabDelete: function(othis){
  368. element.tabDelete('demo', '44');
  369. othis.addClass('layui-btn-disabled');
  370. }
  371. ,tabChange: function(){
  372. element.tabChange('demo', '22');
  373. }
  374. };
  375. $('.site-demo-active').on('click', function(){
  376. var othis = $(this), type = othis.data('type');
  377. active[type] ? active[type].call(this, othis) : '';
  378. });
  379. //Hash地址的定位
  380. var layid = location.hash.replace(/^#test=/, '');
  381. element.tabChange('test', layid);
  382. element.on('tab(test)', function(elem){
  383. location.hash = 'test='+ $(this).attr('lay-id');
  384. });
  385. });
  386. require(['ckeditor', 'angular'], function () {
  387. window.createEditor('[name="content"]', {
  388. height: 500,
  389. });
  390. })
  391. // 添加设置
  392. $(document).on('click',".add_goods_no",function () {
  393. var knum = $('.no_html tr').length;
  394. var no_html = get_ht(knum);
  395. $(".no_html").append(no_html);
  396. form.render();
  397. console.log(a);// 别删这个!!!
  398. })
  399. // 删除设置
  400. $(document).on('click',".del_no",function (){
  401. var knum = $('.no_html tr').length;
  402. if(knum == 1) {
  403. layer.msg('不能全部删除!')
  404. form.render();
  405. console.log(a);// 别删这个!!!
  406. }
  407. var index= $(".del_no").index(this);
  408. $(".no_detail").eq(index).remove();
  409. form.render();
  410. console.log(a);// 别删这个!!!
  411. })
  412. var is_add = parseInt('{$isAddMode|default=0}');
  413. if(is_add){
  414. $(".no_html").html(get_ht(0));
  415. }else{
  416. var ladder = {:json_encode($ladder)};
  417. if(ladder && ladder.length > 0) {
  418. var no_html = '';
  419. $.each(ladder,function (lk,lv) {
  420. no_html += ' <tr class="no_detail change_del" data-dh ="'+lk+'">';
  421. no_html += "<td class='text-left nowrap'>" +
  422. "<input type='text' class='layui-input' name='ladder_title[]' value='"+lv.ladder_title+"'/>" +
  423. "</td>";
  424. no_html += "<td class='text-left nowrap'>" +
  425. "<input type='' class='layui-input' name='ladder_num[]' value='"+lv.ladder_num+"'/>" +
  426. "</td>";
  427. no_html += "<td class='text-left nowrap'>" +
  428. "<input type='' class='layui-input' name='ladder_price[]' value='"+lv.ladder_price+"'/>" +
  429. "</td>";
  430. no_html += "<td class='text-left nowrap'>" +
  431. "<a class=\"layui-btn layui-btn-sm layui-btn-danger del_no\">删 除</a>" +
  432. "<a class=\"layui-btn layui-btn-sm layui-btn-sm add_goods_no\">添 加</a>" +
  433. "</td>"
  434. no_html += "</tr>";
  435. })
  436. $(".no_html").html(no_html);
  437. }else{
  438. $(".no_html").html(get_ht(0));
  439. }
  440. window.form.render();
  441. }
  442. function get_ht(k) {
  443. var award_length = $(".no_detail").length;
  444. var no_html = '';
  445. no_html += ' <tr class="no_detail change_del" data-dh ="'+k+'">';
  446. no_html += "<td class='text-left nowrap'>" +
  447. "<input type='text' class='layui-input' name='ladder_title[]' value=''/>" +
  448. "</td>";
  449. no_html += "<td class='text-left nowrap'>" +
  450. "<input type='' class='layui-input' name='ladder_num[]' value=''/>" +
  451. "</td>";
  452. no_html += "<td class='text-left nowrap'>" +
  453. "<input type='' class='layui-input' name='ladder_price[]' value=''/>" +
  454. "</td>";
  455. no_html += "<td class='text-left nowrap'>" +
  456. "<a class=\"layui-btn layui-btn-sm layui-btn-danger del_no\">删 除</a>" +
  457. "<a class=\"layui-btn layui-btn-sm layui-btn-sm add_goods_no\">添 加</a>" +
  458. "</td>"
  459. no_html += "</tr>";
  460. return no_html;
  461. }
  462. // 分类选择监听
  463. form.on('select(first_classify)', function(data){
  464. var cl_html = '<option value="0">请选择</option>';
  465. if(data.value == 0) {
  466. $("select[name='second_classify']").html(cl_html);
  467. }else{
  468. var cl_key = data.elem[data.elem.selectedIndex].dataset.cl_key;
  469. var goods_spec = {:json_encode($cate_tree)};
  470. $.each(goods_spec[cl_key]['children'],function (ck,cv) {
  471. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  472. })
  473. $("select[name='second_classify']").html(cl_html);
  474. }
  475. window.form.render();
  476. });
  477. //地址监听
  478. form.on('select(province)', function(data){
  479. var cl_html = '<option value="0">请选择</option>';
  480. if(data.value == 0) {
  481. $("select[name='city']").html(cl_html);
  482. }else{
  483. var cl_key = data.elem[data.elem.selectedIndex].dataset.al_key;
  484. var goods_spec = {:json_encode($all_area)};
  485. $.each(goods_spec[cl_key]['children'],function (ck,cv) {
  486. cl_html +='<option value="'+cv.name+'">'+cv.name+'</option>';
  487. })
  488. $("select[name='city']").html(cl_html);
  489. }
  490. window.form.render();
  491. });
  492. </script>
  493. {/block}