説明なし

ordercreate.blade.php 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. @extends('admin/master')
  2. @section('content')
  3. <body>
  4. @if(count($errors) > 0)
  5. <div class="Huialert Huialert-info" id="error">
  6. @foreach($errors->all() as $error)
  7. <li>{{$error}}</li>
  8. @endforeach
  9. </div>
  10. @endif
  11. <style type="text/css">
  12. #good_sku{
  13. position: absolute;
  14. z-index: 9;
  15. background: #ffffff;
  16. box-shadow: 1px 1px 1px 1px #ccc;
  17. width: calc(100% - 30px);
  18. }
  19. #good_sku li{
  20. font-size: 12px;
  21. line-height: 24px;
  22. cursor: pointer;
  23. padding: 5px 10px;
  24. }
  25. #good_sku li:hover{
  26. background: #eaeaea;
  27. }
  28. </style>
  29. <div class="page-container">
  30. <form id='order-form' action="/admin/order/store" method="post" class="form form-horizontal" enctype="multipart/form-data" onkeypress="return event.keyCode != 13;">
  31. <input type="hidden" name="_token" value="{{ csrf_token() }}" />
  32. <input type="hidden" name="status" value="0" />
  33. <input type='hidden' name='last_url' value="{{$last_url}}"/>
  34. <div class="row cl">
  35. <label class="form-label col-xs-4 col-sm-2">
  36. <font color='red'>* </font>买家姓名:</label>
  37. <div class="formControls col-xs-6 col-sm-6">
  38. <input type="text" class="input-text" value="{{old('customerName')}}" placeholder="请输入名称" name="customerName">
  39. </div>
  40. </div>
  41. <div class="row cl">
  42. <label class="form-label col-xs-4 col-sm-2">
  43. <font color='red'>* </font>收件人姓名:</label>
  44. <div class="formControls col-xs-6 col-sm-6">
  45. <input type="text" class="input-text" value="{{old('receiverName')}}" placeholder="" name="receiverName">
  46. </div>
  47. </div>
  48. <div class="row cl">
  49. <label class="form-label col-xs-4 col-sm-2">
  50. <font color='red'>* </font>收件人手机号:</label>
  51. <div class="formControls col-xs-6 col-sm-6">
  52. <input type="text" class="input-text" value="{{old('receiverMobile')}}" placeholder="" onkeyup="getAddress()" name="receiverMobile">
  53. </div>
  54. </div>
  55. <div class="row cl">
  56. <label class="form-label col-xs-4 col-sm-2">
  57. <font color='red'>* </font>加粉时间:</label>
  58. <div class="formControls col-xs-6 col-sm-6">
  59. <input id="stime" type="text" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd' })" class="input-text Wdate" style="width:22%;text-align:center;" name="fanTime" value="">
  60. </div>
  61. </div>
  62. <div class="row cl">
  63. <label class="form-label col-xs-4 col-sm-2">
  64. <font color='red'>* </font>省/直辖市:</label>
  65. <div class="formControls col-xs-6 col-sm-6">
  66. <input type="text" class="input-text" value="{{old('receiverState')}}" placeholder="" name="receiverState">
  67. </div>
  68. </div>
  69. <div class="row cl">
  70. <label class="form-label col-xs-4 col-sm-2">
  71. <font color='red'>* </font>市:</label>
  72. <div class="formControls col-xs-6 col-sm-6">
  73. <input type="text" class="input-text" value="{{old('receiverCity')}}" placeholder="" name="receiverCity">
  74. </div>
  75. </div>
  76. <!--div class="row cl">
  77. <label class="form-label col-xs-4 col-sm-2">
  78. 区:</label>
  79. <div class="formControls col-xs-6 col-sm-6">
  80. <input type="text" class="input-text" value="{{old('receiverDistrict')}}" placeholder="" name="receiverDistrict">
  81. </div>
  82. </div>
  83. <div class="row cl">
  84. <label class="form-label col-xs-4 col-sm-2">
  85. 街道:</label>
  86. <div class="formControls col-xs-6 col-sm-6">
  87. <input type="text" class="input-text" value="{{old('receiverStreet')}}" placeholder="" name="receiverStreet">
  88. </div>
  89. </div-->
  90. <div class="row cl">
  91. <label class="form-label col-xs-4 col-sm-2">
  92. <font color='red'>* </font>详细地址:</label>
  93. <div class="formControls col-xs-6 col-sm-6">
  94. <input type="text" class="input-text" value="{{old('receiverAddress')}}" placeholder="" name="receiverAddress">
  95. </div>
  96. </div>
  97. <div class="row cl">
  98. <label class="form-label col-xs-4 col-sm-2">
  99. <font color='red'>* </font>商品信息:</label>
  100. <div class="formControls col-xs-6 col-sm-6">
  101. <textarea class="textarea" placeholder="填写商品详细信息,A或B仓必填" name="goods_note">{{old('goods_note')}}</textarea>
  102. </div>
  103. </div>
  104. <div class="row cl">
  105. <label class="form-label col-xs-4 col-sm-2">
  106. <font color='red'>* </font>预发货时间:</label>
  107. <div class="formControls col-xs-6 col-sm-6">
  108. <input id="delivery" type="text" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd' })" class="input-text Wdate" style="width:22%;text-align:center;" name="delivery_date" value=""> <font color='red'> *默认今天 </font>
  109. </div>
  110. </div>
  111. <div class="row cl">
  112. <label class="form-label col-xs-4 col-sm-2">
  113. 物流单号:</label>
  114. <div class="formControls col-xs-6 col-sm-6">
  115. <input type="text" class="input-text" value="{{old('logistics_id')}}" placeholder="" name="logistics_id">
  116. </div>
  117. </div>
  118. <div class="row cl">
  119. <label class="form-label col-xs-4 col-sm-2">
  120. <font color='red'>* </font>发货仓库:</label>
  121. <div class="formControls col-xs-6 col-sm-6">
  122. <span class="select-box">
  123. <select size="1" name="warehouse" id='warehouse'>
  124. <option value="0" @if(old('warehouse')=='0') selected @endif>- 请选择 -</option>
  125. <option value="1" @if(old('warehouse')=='1') selected @endif>A仓库</option>
  126. <option value="2" @if(old('warehouse')=='2') selected @endif>B仓库</option>
  127. <option value="3" @if(old('warehouse')=='3') selected @endif>C仓库</option>
  128. </select>
  129. </span>
  130. </div>
  131. </div>
  132. @if($self_role !='销售' )
  133. <div class="row cl">
  134. <label class="form-label col-xs-4 col-sm-2">
  135. 成本:</label>
  136. <div class="formControls col-xs-6 col-sm-6">
  137. <input type="text" class="input-text" value="{{old('cost')}}" placeholder="" name="cost">
  138. </div>
  139. </div>
  140. @endif
  141. <div class="row cl">
  142. <label class="form-label col-xs-4 col-sm-2"><font color='red'>* </font>搜索选择商品:</label>
  143. <div class="formControls col-xs-6 col-sm-6">
  144. <input type='text' class="input-text" autocomplete="off" name='goods_name' placeholder="输入关键词搜索商品,C仓必须选择" value=''/>
  145. <ul id="good_sku"></ul>
  146. </div>
  147. </div><br>
  148. <div class="row cl">
  149. <label class="form-label col-xs-4 col-sm-2">
  150. <font color='red'>* </font>已选择商品:</label>
  151. <div id='goods_o' class="formControls col-xs-6 col-sm-6">
  152. <input class="input-text" id='g_info' type='hidden' name='g_info' value=''/>
  153. </div>
  154. </div><br>
  155. <div class="row cl">
  156. <label class="form-label col-xs-4 col-sm-2">
  157. <font color='red'>* </font>付款金额:</label>
  158. <div class="formControls col-xs-6 col-sm-6">
  159. <input id='receivedAmount' type="text" class="input-text" value="{{old('receivedAmount')}}" placeholder="" name="receivedAmount">
  160. </div>
  161. </div>
  162. <div class="row cl">
  163. <label class="form-label col-xs-4 col-sm-2">
  164. <font color='red'>* </font>支付方式:</label>
  165. <div class="formControls col-xs-6 col-sm-6">
  166. <input type="radio" name="payment_type" value="1" @if(old('payment_type')==='1') checked @else checked @endif>
  167. <label for="status-1" style="margin-right: 27px;">微信支付</label>
  168. <input type="radio" name="payment_type" value="2" @if(old('payment_type')==='2') checked @endif>
  169. <label for="status-0">付款码支付</label>
  170. </div>
  171. </div>
  172. <div class="row cl">
  173. <label class="form-label col-xs-4 col-sm-2">
  174. <font color='red'>* </font>是否退补单:</label>
  175. <div class="formControls col-xs-6 col-sm-6">
  176. <input type="radio" name="is_refund" value="0" @if(old('is_refund')==='0') checked @else checked @endif>
  177. <label for="status-1" style="margin-right: 27px;">否</label>
  178. <input type="radio" name="is_refund" value="1" @if(old('is_refund')==='1') checked @endif>
  179. <label for="status-0">是</label>
  180. </div>
  181. </div>
  182. <div class="row cl">
  183. <label class="form-label col-xs-4 col-sm-2">
  184. 应该退补差价:</label>
  185. <div class="formControls col-xs-6 col-sm-6">
  186. <input type="text" class="input-text" value="{{old('refund_price')}}" placeholder="" name="refund_price">
  187. </div>
  188. </div>
  189. <div class="row cl">
  190. <label class="form-label col-xs-4 col-sm-2">
  191. <font color='red'>* </font>是否复购:</label>
  192. <div class="formControls col-xs-6 col-sm-6">
  193. <input type="radio" name="is_fugou" value="0" @if(old('is_fugou')==='0') checked @else checked @endif>
  194. <label for="status-1" style="margin-right: 27px;">否</label>
  195. <input type="radio" name="is_fugou" value="1" @if(old('is_fugou')==='1') checked @endif>
  196. <label for="status-0">是</label>
  197. </div>
  198. </div>
  199. <div class="row cl">
  200. <label class="form-label col-xs-4 col-sm-2">
  201. <font color='red'>* </font>下单时间:</label>
  202. <div class="formControls col-xs-6 col-sm-6">
  203. <input id="createTime" type="text" onfocus="WdatePicker({ dateFmt:'yyyy-MM-dd HH:mm:ss' })" class="input-text Wdate" style="width:22%;text-align:center;" name="createTime" value=""> <font color='red'> *默认今天 </font>
  204. </div>
  205. </div>
  206. <div class="row cl">
  207. <label class="form-label col-xs-4 col-sm-2">
  208. 买家备注:</label>
  209. <div class="formControls col-xs-6 col-sm-6">
  210. <textarea class="textarea" placeholder="填写买家备注..." name="buyerMemo">{{old('buyerMemo')}}</textarea>
  211. </div>
  212. </div>
  213. <div class="row cl">
  214. <label class="form-label col-xs-4 col-sm-2">
  215. 卖家备注:</label>
  216. <div class="formControls col-xs-6 col-sm-6">
  217. <textarea class="textarea" placeholder="填写卖家备注..." name="sellerMemo">{{old('sellerMemo')}}</textarea>
  218. </div>
  219. </div>
  220. @if(0)
  221. @if($self_role !='销售' )
  222. <div class="row cl">
  223. <label class="form-label col-xs-4 col-sm-2">
  224. 选择销售员(不选默认当前用户):</label>
  225. <div class="formControls col-xs-6 col-sm-6">
  226. <span class="select-box">
  227. <select size="1" name="team" id='team'>
  228. <option value="0" @if(old('team')=='') selected @endif>选择团队</option>
  229. @foreach($teamlist as $v)
  230. <option value="{{$v['id']}}" @if(old('team')==$v['id']) selected @endif>{{$v['name']}}</option>
  231. @endforeach
  232. </select>
  233. <select id='admins' size="1" name="admin_id">
  234. <option value="0" @if(old('admin_id')=='') selected @endif>-- 选择销售 --</option>
  235. @foreach($adminlist as $v)
  236. <option value="{{$v['id']}}" @if(old('admin_id')==$v['id']) selected @endif>{{$v['realname']}}</option>
  237. @endforeach
  238. </select>
  239. &nbsp;&nbsp;
  240. </span>
  241. </div>
  242. </div>
  243. @endif
  244. @endif
  245. <div class="row cl">
  246. <div class="col-9 col-offset-2">
  247. <button class="btn btn-primary radius" type='button' onclick="to_submit()" value="&nbsp;&nbsp;保存&nbsp;&nbsp;">&nbsp;&nbsp;保存&nbsp;&nbsp;</button>&nbsp;
  248. <button class="btn btn-primary radius" type='button' onclick="to_verify()" value="&nbsp;&nbsp;保存并提审&nbsp;&nbsp;">&nbsp;&nbsp;保存并提审&nbsp;&nbsp;</button>&nbsp;
  249. <button class="btn btn-default" type="reset" onclick="return_index();">&nbsp;&nbsp;返回&nbsp;&nbsp;</button>&nbsp;
  250. </div>
  251. </div>
  252. </form>
  253. </div>
  254. <!--_footer 作为公共模版分离出去-->
  255. <script type="text/javascript" src="/admin/lib/jquery/1.9.1/jquery.min.js"></script>
  256. <script type="text/javascript" src="/admin/lib/layer/2.4/layer.js"></script>
  257. <script type="text/javascript" src="/admin/static/h-ui/js/H-ui.min.js"></script>
  258. <script type="text/javascript" src="/admin/static/h-ui.admin/js/H-ui.admin.js"></script>
  259. <!--/_footer 作为公共模版分离出去-->
  260. <!--请在下方写此页面业务相关的脚本-->
  261. <script type="text/javascript" src="/admin/lib/My97DatePicker/4.8/WdatePicker.js"></script>
  262. <script type="text/javascript">
  263. $(function(){
  264. setTimeout("$('#error').hide()",3000);
  265. var dtime = today();
  266. $('#createTime').val(dtime);
  267. var tdate = today_date();
  268. $('#delivery').val(tdate);
  269. $('#category').change(function(){
  270. category = $('#category').val();
  271. if(category==''){
  272. return false;
  273. }
  274. $.ajax({
  275. 'url':'/admin/order/categoods/'+category,
  276. 'type': 'get',
  277. 'dataType':'json',
  278. 'success' : function(data){
  279. str = '<option value=\'0\'>-- 选择商品 --<\/option>';
  280. $.each(data, function(i, va){
  281. var props = va.props_name;
  282. if(props != ''){
  283. props = '【' + props + '】';
  284. }
  285. var price = va.price;
  286. if(price > 0){
  287. price = '【¥' + price + '元】';
  288. }else{
  289. price = '';
  290. }
  291. str += '<option value="'+va.id+'">' + va.goods_name + props + price +'<\/option>';
  292. })
  293. $('#goods').html(str);
  294. }
  295. });
  296. })
  297. $('#team').change(function(){
  298. team = $('#team').val();
  299. if(team==''){
  300. return false;
  301. }
  302. $.ajax({
  303. 'url':'/admin/order/teamAdmins/'+team,
  304. 'type': 'get',
  305. 'dataType':'json',
  306. 'success' : function(data){
  307. str = '<option value=\'0\'>-- 选择销售 --<\/option>';
  308. $.each(data, function(i, va){
  309. str += '<option value="'+va.id+'">' + va.realname +'<\/option>';
  310. })
  311. $('#admins').html(str);
  312. }
  313. });
  314. })
  315. });
  316. /*返回*/
  317. function return_index(){
  318. location.href='/admin/order/index';
  319. }
  320. function add_goods(goods_id,sku_id,name,props_name,price){
  321. var gnum = $("#gnum"+sku_id).val();
  322. if(gnum){
  323. var n = gnum;
  324. n = parseInt(n)+1
  325. $("#gnum"+sku_id).val(n);
  326. }
  327. else{
  328. var str = "<p>"+name+' 【 规格:'+props_name+' 价格:¥'+price+" 】&nbsp; <input type='hidden' name='skus[]' value="+sku_id+" \/><font style=\"font-weight: bold;\">件数 <\/font><button style='width:14px;' type='button' onclick=\"cut_num("+sku_id+","+ price + ")\">-<\/button><input style='width:20px;' id='gnum"+ sku_id +"' class='gnums' price="+price+" type=\'text\' name=\'gnum[]\' value=1 \/><button style='width:14px;' type='button' onclick=\"add_num("+sku_id+","+ price + ")\">+<\/button> &nbsp;&nbsp;<button type='button' onclick='del_sku(this, "+sku_id+","+ price + ")'> 移除<\/button> <\/p>";
  329. $("#goods_o").append(str);
  330. }
  331. sync_money()
  332. document.getElementById('good_sku').style.display='none'
  333. return false;
  334. }
  335. function add_num(sku_id, price){
  336. var gnum = $("#gnum"+sku_id).val();
  337. var n = gnum;
  338. n = parseInt(n)+1
  339. $("#gnum"+sku_id).val(n);
  340. sync_money()
  341. return false;
  342. }
  343. function cut_num(sku_id, price){
  344. var gnum = $("#gnum"+sku_id).val();
  345. var n = gnum;
  346. if(n == 1){
  347. return false;
  348. }
  349. n = parseInt(n)-1;
  350. $("#gnum"+sku_id).val(n);
  351. sync_money()
  352. return false;
  353. }
  354. function del_sku(obj, sku_id, price){
  355. var gnum = $("#gnum"+sku_id).val();
  356. $(obj).parent().remove();
  357. sync_money();
  358. }
  359. function sync_money(){
  360. var gnums = new Array();
  361. var total = 0;
  362. $('.gnums').each(function(key, value){
  363. var gnum = $(this).val();
  364. var price = $(this).attr('price');
  365. total = total + parseFloat(price) * parseInt(gnum);
  366. });
  367. if(total>0){
  368. $("#receivedAmount").val(total);
  369. }else{
  370. $("#receivedAmount").val('');
  371. }
  372. return false;
  373. }
  374. function today(){
  375. var today=new Date();
  376. var h=today.getFullYear();
  377. var m=today.getMonth()+1;
  378. var d=today.getDate();
  379. var hh=today.getHours();
  380. var mm=today.getMinutes();
  381. var ss=today.getSeconds();
  382. m= m<10?"0"+m:m;
  383. d= d<10?"0"+d:d;
  384. hh = hh < 10 ? "0" + hh:hh;
  385. mm = mm < 10 ? "0" + mm:mm;
  386. ss = ss < 10 ? "0" + ss:ss;
  387. return h+"-"+m+"-"+d+" "+hh+":"+mm+":"+ss;
  388. }
  389. function today_date(){
  390. var today=new Date();
  391. var h=today.getFullYear();
  392. var m=today.getMonth()+1;
  393. var d=today.getDate();
  394. var hh=today.getHours();
  395. var mm=today.getMinutes();
  396. var ss=today.getSeconds();
  397. m= m<10?"0"+m:m;
  398. d= d<10?"0"+d:d;
  399. hh = hh < 10 ? "0" + hh:hh;
  400. mm = mm < 10 ? "0" + mm:mm;
  401. ss = ss < 10 ? "0" + ss:ss;
  402. return h+"-"+m+"-"+d;
  403. }
  404. function getAddress(){
  405. var phone = $('input[name=receiverMobile]').val();
  406. var reg = /^1\d{10}$/
  407. if(reg.test(phone)){
  408. $.ajax({
  409. 'url': '/admin/order/getAddress?phone='+phone,
  410. 'type': 'get',
  411. 'dateType': 'json',
  412. success:function(data){
  413. if(data != '0'){
  414. data = eval("("+data+")");
  415. $("input[name=receiverState]").val(data.receiverState);
  416. $("input[name=receiverCity]").val(data.receiverCity);
  417. //$("input[name=receiverDistrict]").val(data.receiverDistrict);
  418. //$("input[name=receiverStreet]").val(data.receiverStreet);
  419. $("input[name=receiverAddress]").val(data.receiverAddress);
  420. $("input[name=fanTime]").val(data.fanTime);
  421. }
  422. }
  423. })
  424. }
  425. }
  426. function getGoods(){
  427. var name = $('input[name=goods_name]').val();
  428. if(!name){
  429. return false;
  430. }
  431. $.ajax({
  432. 'url': '/admin/goods/searchSkus?name='+name,
  433. 'type': 'get',
  434. 'dateType': 'json',
  435. success:function(data){
  436. if(data != '0'){
  437. data = eval("("+data+")");
  438. }
  439. }
  440. })
  441. }
  442. function to_verify(){
  443. $("input[name=status]").val('1');
  444. var warehouse = $("#warehouse").val();
  445. if(warehouse == 3){
  446. var if_good = $('.gnums');
  447. if(!if_good.length){
  448. layer.msg('仓库C必须选择商品!',{icon:2,time:1000});
  449. return false;
  450. }
  451. }
  452. $(".btn").attr("disabled",true);
  453. //console.log('disabled')
  454. $("#order-form").submit();
  455. return true;
  456. }
  457. function to_submit(){
  458. $("input[name=status]").val('0');
  459. //console.log('disabled1')
  460. var warehouse = $("#warehouse").val();
  461. if(warehouse == 3){
  462. var if_good = $('.gnums');
  463. if(!if_good.length){
  464. layer.msg('仓库C必须选择商品!',{icon:2,time:1000});
  465. return false;
  466. }
  467. }
  468. $(".btn").attr("disabled",true);
  469. $("#order-form").submit();
  470. return true;
  471. }
  472. $('input[name=goods_name]').on('keyup focus', function(){
  473. var name = $('input[name=goods_name]').val();
  474. if(!name){
  475. return false;
  476. }
  477. $.ajax({
  478. 'url': '/admin/goods/searchSkus?name='+name,
  479. 'type': 'get',
  480. 'dateType': 'json',
  481. success:function(data){
  482. if(data != '0'){
  483. data = eval("("+data+")");
  484. var str = '';
  485. for (var i = 0, l = data.length; i < l; i++) {
  486. var item = data[i];
  487. str += '<li onclick=\'add_goods('+item.goods_id+','+item.sku_id+',"'+item.name+'","'+item.propsName+'",'+item.price+');\'>'+ item.name+'【 规格:'+item.propsName+'&nbsp;&nbsp; 价格:¥'+item.price +' 】<\/li>'
  488. // '<p onclick=\'add_goods('+item.goods_id+','+item.sku_id+',"'+item.name+'","'+item.propsName+'",'+item.price+');\'>'+ item.name+' '+item.propsName+' ¥'+item.price +'<\/p>';
  489. }
  490. document.getElementById('good_sku').innerHTML = str;
  491. document.getElementById('good_sku').style.display='block'
  492. // layer.open({
  493. // type: 1,
  494. // area: ['600px', '360px'],
  495. // shadeClose: true, //点击遮罩关闭
  496. // content: str
  497. // });
  498. }
  499. }
  500. })
  501. });
  502. $('body').on('click', function(){
  503. document.getElementById('good_sku').style.display='none'
  504. })
  505. </script>
  506. </body>
  507. @endsection