edit.blade.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. @extends('admin.public.base')
  2. @section('body_class')
  3. style="margin: 0 auto;width: 96%;padding: 30px 0px;"
  4. @endsection
  5. @section('content')
  6. <form class="post-form" action="" method="post">
  7. <div class="form-group col-sm-2">
  8. <label class="control-label">产品图片</label>
  9. <div id="thumb">
  10. <a id="thumb-image" href="#" data-toggle="image" class="img-thumb">
  11. <img src="{{path_compat($oldData['thumb'])}}" height="100" />
  12. </a>
  13. <input type="hidden" name="thumb" value="{{$oldData['thumb']}}" id="input-image" />
  14. </div>
  15. </div>
  16. <div class="form-group col-sm-2">
  17. <label class="control-label">产品海报</label>
  18. <div id="poster">
  19. <a id="poster-image" href="#" data-toggle="image" class="img-thumbnail">
  20. <img src="{{path_compat($oldData['poster'])}}" height="100" />
  21. </a>
  22. <input type="hidden" name="poster" value="{{$oldData['poster']}}" id="input-poster" />
  23. </div>
  24. </div>
  25. <div class="form-group col-sm-2">
  26. <label class="control-label">产品名称</label>
  27. <input class="form-control" required="required" type="text" placeholder="产品名称" maxlength="50" name="name" value="{{$oldData['name']}}" />
  28. </div>
  29. <div class="form-group col-sm-2">
  30. <label class="control-label">折扣价格</label>
  31. <input class="form-control" required="required" type="text" placeholder="折扣价格" min="0" max="9999.99" name="price" value="{{$oldData['price']}}" />
  32. </div>
  33. <div class="form-group col-sm-2">
  34. <label class="control-label">产品原价</label>
  35. <input class="form-control" required="required" type="text" placeholder="产品原价" min="0" max="9999.99" name="market_price" value="{{$oldData['market_price']}}" />
  36. </div>
  37. <div class="form-group col-sm-2">
  38. <label class="control-label">产品规格</label>
  39. <input class="form-control" required="required" type="text" placeholder="产品规格" maxlength="25" name="spec" value="{{$oldData['spec']}}" />
  40. </div>
  41. <div class="form-group col-sm-2">
  42. <label class="control-label">产品库存</label>
  43. <input class="form-control" required="required" type="number" placeholder="产品库存" name="stock" value="{{$oldData['stock']}}" />
  44. </div>
  45. <div class="form-group col-sm-2">
  46. <label class="control-label">限购数量</label>
  47. <input class="form-control" required="required" type="number" placeholder="限购数量,设置为0表示不限购" name="quota" value="{{$oldData['quota']}}" />
  48. </div>
  49. <div class="form-group col-sm-2">
  50. <label class="control-label">限购开始</label>
  51. <input class="form-control" type="datetime-local" placeholder="限购开始时间" name="quota_start" value="{{date('Y-m-d H:i',$oldData['quota_start'])}}" />
  52. </div>
  53. <div class="form-group col-sm-2">
  54. <label class="control-label">限购结束</label>
  55. <input class="form-control" type="datetime-local" placeholder="限购结束时间" name="quota_end" value="{{date('Y-m-d H:i',$oldData['quota_end'])}}" />
  56. </div>
  57. <div class="form-group col-sm-2">
  58. <label class="control-label">服务城市</label>
  59. <select name="city_ids[]" class="form-control selectpicker" data-live-search="true" data-live-search-placeholder="搜索城市" data-none-results-text="未搜索到 {0}" title="选择城市" multiple>
  60. @foreach ($cityList as $group)
  61. <optgroup label="{{$group['name']}}">
  62. @foreach ($group['city'] as $city)
  63. <option value="{{$city['id']}}" @if(in_array($city['id'],$oldData['city_ids'])) selected @endif >{{$city['name']}}</option>
  64. @endforeach
  65. </optgroup>
  66. @endforeach
  67. </select>
  68. </div>
  69. <div class="form-group col-sm-2">
  70. <label class="control-label">商品类型</label>
  71. <select name="type_id" class="form-control" id="typeId">
  72. @foreach ($typeList as $value)
  73. <option value="{{$value['id']}}" >{{$value['name']}}</option>
  74. @endforeach
  75. </select>
  76. </div>
  77. <div class="form-group col-sm-2">
  78. <label class="control-label">生产厂家</label>
  79. <select name="producer_id" required class="form-control selectpicker" data-live-search="true" data-live-search-placeholder="搜索生产厂家" data-none-results-text="未搜索到 {0}" title="选择厂家">
  80. @foreach ($producerList as $value)
  81. <option value="{{$value['id']}}" @if( $value['id'] == $oldData['producer_id']) selected @endif >{{$value['name']}}</option>
  82. @endforeach
  83. </select>
  84. </div>
  85. <div class="form-group col-sm-2">
  86. <label class="control-label">商业公司</label>
  87. <select name="business_id" required class="form-control selectpicker" data-live-search="true" data-live-search-placeholder="搜索商业公司" data-none-results-text="未搜索到 {0}" title="选择商业公司">
  88. @foreach ($businessList as $value)
  89. <option value="{{$value['id']}}" @if( $value['id'] == $oldData['business_id']) selected @endif >{{$value['name']}}</option>
  90. @endforeach
  91. </select>
  92. </div>
  93. <div class="form-group col-sm-12" id="add_spec">
  94. @foreach ($specList as $spec)
  95. <div class="form-group col-sm-12">
  96. <label class="control-label">{{$spec['name']}}</label>
  97. <div class="form-group col-sm-12">
  98. @if( empty($spec['attr_list']))
  99. <div class="form-group col-sm-3 attr_div">
  100. <div class="form-group form-inline">
  101. <div class="input-group col-sm-4">
  102. <!-- @if ($spec['has_img'])
  103. <span class="input-group-addon btn-primary" data-toggle="image" style="cursor:pointer;" title="上传图片">
  104. <i class="fa fa-file-photo-o"></i>
  105. <input type="hidden" name="attr[{{$spec['id']}}][thumb][]" placeholder="图片路径">
  106. </span>
  107. @endif -->
  108. <input type="{{$spec['input_type']}}" name="attr[{{$spec['id']}}][name][]" class="form-control attr_name" required="required" placeholder="属性" />
  109. </div>
  110. <div class="input-group col-sm-4">
  111. <input type="text" class="form-control" name="attr[{{$spec['id']}}][remark][]" placeholder="备注" />
  112. <span class="input-group-addon btn-danger remove_attr" style="cursor:pointer;">
  113. <i class="fa fa-trash-o"></i>
  114. </span>
  115. </div>
  116. </div>
  117. </div>
  118. @else
  119. @foreach ($spec['attr_list'] as $attr)
  120. <div class="form-group col-sm-3 attr_div">
  121. <div class="form-group form-inline">
  122. <div class="input-group col-sm-4">
  123. <!-- @if ($spec['has_img'])
  124. <span class="input-group-addon btn-primary" data-toggle="image" style="cursor:pointer;" title="上传图片">
  125. <i class="fa fa-file-photo-o"></i>
  126. <input type="hidden" name="attr[{{$spec['id']}}][thumb][]" placeholder="图片路径" vlalue="value="{{$attr['thumb']}}" ">
  127. </span>
  128. @endif -->
  129. <input type="{{$spec['input_type']}}" name="attr[{{$spec['id']}}][name][]" class="form-control attr_name" required="required" placeholder="属性" value="{{$attr['name']}}" />
  130. </div>
  131. <div class="input-group col-sm-4">
  132. <input type="text" class="form-control" name="attr[{{$spec['id']}}][remark][]" placeholder="备注" value="{{$attr['remark']}}" />
  133. <span class="input-group-addon btn-danger remove_attr" style="cursor:pointer;">
  134. <i class="fa fa-trash-o"></i>
  135. </span>
  136. </div>
  137. </div>
  138. </div>
  139. @endforeach
  140. @endif
  141. <div class="form-group col-sm-3 add_attr_div">
  142. <div class="form-group form-inline">
  143. <div class="input-group">
  144. <button type="button" class="form-control add_attr"><i class="ace-icon fa glyphicon-plus"></i>添加属性</button>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. @endforeach
  151. @if( !$specList )
  152. <script type="text/javascript">
  153. $(function(){
  154. // 获取
  155. var type_id = $('#typeId').val();
  156. // 获取对应的规格
  157. getSpecHtml(type_id);
  158. })
  159. </script>
  160. @endif
  161. </div>
  162. <div class="form-group col-sm-12" id="add_sku">
  163. <div class="form-group col-sm-12">
  164. <div class="table-responsive">
  165. <table class="table table-striped table-bordered table-hover">
  166. <thead>
  167. <tr>
  168. @foreach ($specList as $value)
  169. <th>{{$value['name']}}</th>
  170. @endforeach
  171. <th>价格</th>
  172. <th>库存</th>
  173. <th>是否上架</th>
  174. <th>操作</th>
  175. </tr>
  176. </thead>
  177. <tbody>
  178. @foreach ($skuList as $value)
  179. <tr>
  180. @foreach (explode(',',$value['attr_ids']) as $v)
  181. <td>{{$v}}</td>
  182. @endforeach
  183. <td><input type="text" name="sku[{{$value['attr_ids']}}][price]" placeholder="价格" value="{{$value['price']}}"></td>
  184. <td><input type="number" name="sku[{{$value['attr_ids']}}][stock]" placeholder="库存" value="{{$value['stock']}}"></td>
  185. <td>
  186. <select name="sku[{{$value['attr_ids']}}][status]" >
  187. <option value="0" @if( $value['status'] == 0 ) selected @endif>上架</option>
  188. <option value="1" @if( $value['status'] == 1 ) selected @endif>下架</option>
  189. </select>
  190. </td>
  191. <td>
  192. <input type="hidden" name="sku[{{$value['attr_ids']}}][id]" value="{{$value['id']}}">
  193. <button type="button" class="btn btn-xs btn-danger remove_sku">删除 </button>
  194. </td>
  195. </tr>
  196. @endforeach
  197. </tbody>
  198. </table>
  199. </div>
  200. </div>
  201. <script type="text/javascript">
  202. $(function(){
  203. // 删除属性
  204. $('#add_sku').on('click','.remove_sku',function(){
  205. // 只有一个节点时(没有同级节点)。不允许删除
  206. if( $(this).parents('tr').siblings('tr').length < 1 ) return false;
  207. $(this).parents('tr').remove();
  208. return false;
  209. })
  210. })
  211. </script>
  212. </div>
  213. <div class="form-group col-sm-12">
  214. <label class="control-label">产品简介</label>
  215. <textarea required="required" name="description" id="container" placeholder="产品简介" maxlength="1500">{{$oldData['description']}}</textarea>
  216. </div>
  217. <div class="form-group col-sm-12">
  218. @csrf
  219. <input type="hidden" name="id" value="{{$oldData['id']}}" />
  220. <input id="send" type="submit" value="提交" class="btn btn-primary btn-block" />
  221. </div>
  222. </form>
  223. @endsection
  224. @section('javascript')
  225. <script src="/static/ueditor/ueditor.config.js"></script>
  226. <script src="/static/ueditor/ueditor.all.js"></script>
  227. <script type="text/javascript">
  228. var editor = new UE.ui.Editor();
  229. editor.render("container");
  230. </script>
  231. <script type="text/javascript">
  232. // 获取类型的规格
  233. function getSpecHtml(type_id){
  234. $.ajax({
  235. type: 'get',
  236. url: "{{url('admin/product/get_spec_html')}}",
  237. data: {type_id:type_id},
  238. success: function(data) {
  239. $('#add_spec').html(data);
  240. },
  241. error: function(data) {
  242. }
  243. });
  244. }
  245. // 获取节点
  246. $(function(){
  247. $('#typeId').change(function(){
  248. // 获取
  249. var type_id = $('#typeId').val();
  250. // 获取对应的规格
  251. getSpecHtml(type_id);
  252. })
  253. })
  254. </script>
  255. <script type="text/javascript">
  256. $(function(){
  257. // 添加属性
  258. $('#add_spec').on('click','.add_attr',function(){
  259. // 克隆
  260. var copy = $(this).parents('.add_attr_div').prev().clone();
  261. $(this).parents('.add_attr_div').before(copy);
  262. return false;
  263. });
  264. // 删除属性
  265. $('#add_spec').on('click','.remove_attr',function(){
  266. // 只有一个节点时(没有同级节点)。不允许删除
  267. // if( $(this).parents('.attr_div').siblings('.attr_div').length < 1 ) return false;
  268. $(this).parents('.attr_div').remove();
  269. var formData = $('#add_spec input,select').serialize();
  270. $.ajax({
  271. type: 'get',
  272. url: "{{url('admin/product/get_sku_html?product_id='.$oldData['id'])}}",
  273. data: formData,
  274. success: function(data) {
  275. $('#add_sku').html(data);
  276. },
  277. error: function(data) {
  278. }
  279. });
  280. return false;
  281. })
  282. // 属性名称变更
  283. $('#add_spec').on('change','.attr_name',function(){
  284. // 获取当前的名称
  285. var name = $(this).val();
  286. var formData = $('#add_spec input,select').serialize();
  287. $.ajax({
  288. type: 'get',
  289. url: "{{url('admin/product/get_sku_html?product_id='.$oldData['id'])}}",
  290. data: formData,
  291. success: function(data) {
  292. $('#add_sku').html(data);
  293. },
  294. error: function(data) {
  295. }
  296. });
  297. return false;
  298. })
  299. })
  300. </script>
  301. <script type="text/javascript">
  302. $(function(){
  303. // 删除规格
  304. $('#add_sku').on('click','.remove_sku',function(){
  305. // 只有一个节点时(没有同级节点)。不允许删除
  306. // if( $(this).parents('tr').siblings('tr').length < 1 ) return false;
  307. $(this).parents('tr').remove();
  308. return false;
  309. })
  310. })
  311. </script>
  312. @endsection