Showing
5 changed files
with
382 additions
and
0 deletions
| @@ -449,4 +449,97 @@ class Template extends Common{ | @@ -449,4 +449,97 @@ class Template extends Common{ | ||
| 449 | return view(); | 449 | return view(); |
| 450 | } | 450 | } |
| 451 | 451 | ||
| 452 | + //菜品库管理 | ||
| 453 | + public function Vegetable(){ | ||
| 454 | + if(Request::isAjax()){ | ||
| 455 | + //构建数组 | ||
| 456 | + $data = Request::except('file'); | ||
| 457 | + if(empty($data['pic'])){ | ||
| 458 | + $result['code'] = 0; | ||
| 459 | + $result['msg'] = '请确保文件已经上传成功!'; | ||
| 460 | + $result['url'] = url('Vegetable'); | ||
| 461 | + return $result; | ||
| 462 | + } | ||
| 463 | + if(empty($data['class'])){ | ||
| 464 | + $result['code'] = 0; | ||
| 465 | + $result['msg'] = '请选择菜系!'; | ||
| 466 | + $result['url'] = url('Vegetable'); | ||
| 467 | + return $result; | ||
| 468 | + } | ||
| 469 | + $list= file_get_contents(UNDER_LINE.'App.Cookbook.VegetableManage&data='.json_encode($data)); | ||
| 470 | + $array = json_decode($list,TRUE); | ||
| 471 | + if($array['ret']==200){ | ||
| 472 | + $result['code'] = 1; | ||
| 473 | + $result['msg'] = 'SUCCESS!'; | ||
| 474 | + $result['url'] = url('Vegetable'); | ||
| 475 | + }else{ | ||
| 476 | + $result['code'] = 0; | ||
| 477 | + $result['msg'] = $array['msg']; | ||
| 478 | + $result['url'] = url('Vegetable'); | ||
| 479 | + } | ||
| 480 | + return $result; | ||
| 481 | + } | ||
| 482 | + //模拟菜系 | ||
| 483 | + $arrayCai = array( | ||
| 484 | + 1 => '湘菜', | ||
| 485 | + 2 => '粤菜', | ||
| 486 | + 3 => '川菜', | ||
| 487 | + 4 => '东北菜', | ||
| 488 | + 5 => '湖南菜', | ||
| 489 | + ); | ||
| 490 | + $this->assign ('arrayCai',$arrayCai); | ||
| 491 | + $this->assign ( 'title','菜品库' ); | ||
| 492 | + return $this->fetch(); | ||
| 493 | + } | ||
| 494 | + //iframe | ||
| 495 | + public function batchAdd(){ | ||
| 496 | + $arr = array(1,2,3,4); | ||
| 497 | + if(Request::isAjax()){ | ||
| 498 | + //构建数组 | ||
| 499 | + $data = Request::except('file'); | ||
| 500 | + //print_r($arr);die; | ||
| 501 | + for($i=1;$i<=count($arr);$i++){ | ||
| 502 | + $str = 'pic'.$i; | ||
| 503 | + if($data[$str] == ""){ | ||
| 504 | + $result['code'] = 0; | ||
| 505 | + $result['msg'] = '请检查文件是否全部上传成功!'; | ||
| 506 | + $result['url'] = url('batchAdd'); | ||
| 507 | + return $result; | ||
| 508 | + } | ||
| 509 | + if($data['class1']==0){ | ||
| 510 | + $result['code'] = 0; | ||
| 511 | + $result['msg'] = '请至少选择一个菜系!'; | ||
| 512 | + $result['url'] = url('batchAdd'); | ||
| 513 | + return $result; | ||
| 514 | + } | ||
| 515 | + if($data['class'.$i]==0){ | ||
| 516 | + $data['class'.$i]=$data['class1']; | ||
| 517 | + } | ||
| 518 | + } | ||
| 519 | + | ||
| 520 | + $list= file_get_contents(UNDER_LINE.'App.Cookbook.VegetableManage&data='.json_encode($data).'&flag=1'); | ||
| 521 | + $array = json_decode($list,TRUE); | ||
| 522 | + if($array['ret']==200){ | ||
| 523 | + $result['code'] = 1; | ||
| 524 | + $result['msg'] = 'SUCCESS!'; | ||
| 525 | + $result['url'] = url('batchAdd'); | ||
| 526 | + }else{ | ||
| 527 | + $result['code'] = 0; | ||
| 528 | + $result['msg'] = $array['msg']; | ||
| 529 | + $result['url'] = url('batchAdd'); | ||
| 530 | + } | ||
| 531 | + return $result; | ||
| 532 | + } | ||
| 533 | + //模拟菜系 | ||
| 534 | + $arrayCai = array( | ||
| 535 | + 1 => '湘菜', | ||
| 536 | + 2 => '粤菜', | ||
| 537 | + 3 => '川菜', | ||
| 538 | + 4 => '东北菜', | ||
| 539 | + 5 => '湖南菜', | ||
| 540 | + ); | ||
| 541 | + $this->assign ('arrayCai',$arrayCai); | ||
| 542 | + $this->assign ('list',$arr); | ||
| 543 | + return $this->fetch(); | ||
| 544 | + } | ||
| 452 | } | 545 | } |
| 1 | +{include file="common/head"/} | ||
| 2 | +<div class="admin-main layui-anim layui-anim-upbit" ng-app="hd" ng-controller="ctrl"> | ||
| 3 | + <!--<form class="layui-form layui-form-pane"> | ||
| 4 | + <div class="layui-form-item" id="container"> | ||
| 5 | + <label class="layui-form-label">菜品名称</label> | ||
| 6 | + <div class="layui-input-1"> | ||
| 7 | + <input type="text" name="name" ng-model="field.name" lay-verify="required" placeholder="{:lang('pleaseEnter')}图片/视频名称" class="layui-input"> | ||
| 8 | + </div> | ||
| 9 | + <label class="layui-form-label">菜系</label> | ||
| 10 | + <div class="layui-input-1"> | ||
| 11 | + <select name="class" id="class" lay-filter="myselect"> | ||
| 12 | + <option value="">请选择类别</option> | ||
| 13 | + <option value="22222">22222</option> | ||
| 14 | + </select> | ||
| 15 | + </div> | ||
| 16 | + <label class="layui-form-label">菜品简介</label> | ||
| 17 | + <div class="layui-input-2"> | ||
| 18 | + <textarea name="content" style="text-align:left;" class="layui-input"></textarea> | ||
| 19 | + </div> | ||
| 20 | + <label class="layui-form-label">菜品图片</label> | ||
| 21 | + <input type="hidden" name="pic" id="pic" value="{{field.pic}}"> | ||
| 22 | + <div class="layui-input-1"> | ||
| 23 | + <div class="layui-upload"> | ||
| 24 | + <button type="button" class="layui-btn layui-btn-primary" id="adBtn"><i class="icon icon-upload3"></i>点击上传</button> | ||
| 25 | + <div class="layui-upload-list"> | ||
| 26 | + <img class="layui-upload-img" id="adPic"> | ||
| 27 | + <p id="demoText"></p> | ||
| 28 | + <video src="" id="adVideo" controls="controls" style="width: 300px;height: 200px;display: none"> | ||
| 29 | + 您的浏览器不支持 video 标签。 | ||
| 30 | + </video> | ||
| 31 | + </div> | ||
| 32 | + </div> | ||
| 33 | + </div> | ||
| 34 | + </div> | ||
| 35 | + | ||
| 36 | + <div class="layui-form-item"> | ||
| 37 | + <button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button> | ||
| 38 | + </div> | ||
| 39 | + </div> | ||
| 40 | + </form>--> | ||
| 41 | + <div id="mainContent" class="main-content"> | ||
| 42 | + <form class="layui-form layui-form-pane"> | ||
| 43 | + <div class="table-responsive"> | ||
| 44 | + <table class="layui-table"> | ||
| 45 | + <thead> | ||
| 46 | + <tr> | ||
| 47 | + <th class='col-name required has-btn'>菜品名称</th> | ||
| 48 | + <th class='w-150px'>菜系</th> | ||
| 49 | + <th class='w-100px hidden'>菜品简介</th> | ||
| 50 | + <th class='w-150px hidden'>菜品图片</th> | ||
| 51 | + </tr> | ||
| 52 | + </thead> | ||
| 53 | + <tbody> | ||
| 54 | + {volist name="list" id="vo"} | ||
| 55 | + <tr> | ||
| 56 | + <td> | ||
| 57 | + <div class="layui-input-10"> | ||
| 58 | + <input type="text" name="name{$vo}" ng-model="field.name{$vo}" lay-verify="required" placeholder="{:lang('pleaseEnter')}图片/视频名称" class="layui-input"> | ||
| 59 | + </div> | ||
| 60 | + </td> | ||
| 61 | + <td> | ||
| 62 | + <select name="class{$vo}" id="class{$vo}" lay-filter="myselect{$vo}"> | ||
| 63 | + <option value="0">同上</option> | ||
| 64 | + {volist name="arrayCai" id="item"} | ||
| 65 | + <option value="{$key}">{$item}</option> | ||
| 66 | + {/volist} | ||
| 67 | + </select> | ||
| 68 | + </td> | ||
| 69 | + <td> | ||
| 70 | + <textarea name="spec{$vo}" id="spec{$vo}" rows="1" class="layui-input"></textarea> | ||
| 71 | + </td> | ||
| 72 | + <td> | ||
| 73 | + <input type="hidden" name="pic{$vo}" id="pic{$vo}" value="{{field.pic}}"> | ||
| 74 | + <div class="layui-input-1"> | ||
| 75 | + <div class="layui-upload"> | ||
| 76 | + <button type="button" class="layui-btn layui-btn-primary adbtncil" id="{$vo}"><i class="icon icon-upload3"></i>点击上传</button> | ||
| 77 | + <p style="display:none" id="tip{$vo}"><font color="#FF0000" size="5px;">✔</font>️</p> | ||
| 78 | + </div> | ||
| 79 | + </div> | ||
| 80 | + </td> | ||
| 81 | + </tr> | ||
| 82 | + {/volist} | ||
| 83 | + </tbody> | ||
| 84 | + <tfoot> | ||
| 85 | + <tr> | ||
| 86 | + <td colspan="4"> | ||
| 87 | + <button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button> | ||
| 88 | + <a href='javascript:history.go(-1);' class='layui-btn layui-btn-primary' >返回</a> | ||
| 89 | + </td> | ||
| 90 | + </tr> | ||
| 91 | + </tfoot> | ||
| 92 | + </table> | ||
| 93 | + </div> | ||
| 94 | + </form> | ||
| 95 | + </div> | ||
| 96 | + | ||
| 97 | + | ||
| 98 | + | ||
| 99 | +</div> | ||
| 100 | +{include file="common/foot"/} | ||
| 101 | +<script src="/static/common/js/angular.min.js"></script> | ||
| 102 | +<script> | ||
| 103 | + var m = angular.module('hd',[]); | ||
| 104 | + m.controller('ctrl',['$scope',function($scope) { | ||
| 105 | + $scope.field = {type_id:'',name:'',url:'',open:1,sort:50,pic:'',content:''}; | ||
| 106 | + layui.use(['form','layer','upload'], function () { | ||
| 107 | + var form = layui.form, $ = layui.jquery, upload = layui.upload; | ||
| 108 | + if($scope.field.pic){ | ||
| 109 | + adPic.src = $scope.field.pic; | ||
| 110 | + } | ||
| 111 | + form.on('submit(submit)', function (data) { | ||
| 112 | + // 提交到方法 默认为本身 | ||
| 113 | + var loading = layer.load(1, {shade: [0.1, '#fff']}); | ||
| 114 | + $.post("{:url('batchAdd')}", data.field, function (res) { | ||
| 115 | + layer.close(loading); | ||
| 116 | + if (res.code > 0) { | ||
| 117 | + layer.msg(res.msg, {time: 1800, icon: 1}, function () { | ||
| 118 | + location.href = res.url; | ||
| 119 | + }); | ||
| 120 | + } else { | ||
| 121 | + layer.msg(res.msg, {time: 1800, icon: 2}); | ||
| 122 | + } | ||
| 123 | + }); | ||
| 124 | + }); | ||
| 125 | + | ||
| 126 | + //GIF/视频上传 | ||
| 127 | + var uploadInst = upload.render({ | ||
| 128 | + elem: '.adbtncil' | ||
| 129 | + ,url: '{:url("UpFiles/qncloud")}' | ||
| 130 | + ,before: function(obj){ | ||
| 131 | + //预读本地文件示例,不支持ie8 | ||
| 132 | + obj.preview(function(index, file, result){ | ||
| 133 | + //console.log(index); //得到文件索引 | ||
| 134 | + //不处理 | ||
| 135 | + }); | ||
| 136 | + },done: function(res){ | ||
| 137 | + var item = this.item; | ||
| 138 | + if(res.code>0){ | ||
| 139 | + $('#pic'+item.context.id).val(res.url); | ||
| 140 | + $('#tip'+item.context.id).css('display', 'block'); | ||
| 141 | + return layer.msg('上传成功'); | ||
| 142 | + }else{ | ||
| 143 | + //如果上传失败 | ||
| 144 | + return layer.msg('上传失败'); | ||
| 145 | + } | ||
| 146 | + } | ||
| 147 | + }); | ||
| 148 | + }); | ||
| 149 | + }]); | ||
| 150 | +</script> |
| @@ -10,6 +10,9 @@ | @@ -10,6 +10,9 @@ | ||
| 10 | <a href="{:url('uploadFile')}" class="layui-btn layui-btn-sm"> | 10 | <a href="{:url('uploadFile')}" class="layui-btn layui-btn-sm"> |
| 11 | <i class="fa fa-file-image-o"></i> GIF图片、短视频上传 | 11 | <i class="fa fa-file-image-o"></i> GIF图片、短视频上传 |
| 12 | </a> | 12 | </a> |
| 13 | + <a href="{:url('Vegetable')}" class="layui-btn layui-btn-sm"> | ||
| 14 | + <i class="fa fa-file-image-o"></i> 菜品库 | ||
| 15 | + </a> | ||
| 13 | </blockquote> | 16 | </blockquote> |
| 14 | <table class="layui-table" id="list" lay-filter="list"></table> | 17 | <table class="layui-table" id="list" lay-filter="list"></table> |
| 15 | </div> | 18 | </div> |
| @@ -10,6 +10,9 @@ | @@ -10,6 +10,9 @@ | ||
| 10 | <a href="{:url('uploadFile')}" class="layui-btn layui-btn-sm layui-btn-danger"> | 10 | <a href="{:url('uploadFile')}" class="layui-btn layui-btn-sm layui-btn-danger"> |
| 11 | <i class="fa fa-file-image-o"></i> GIF图片、短视频上传 | 11 | <i class="fa fa-file-image-o"></i> GIF图片、短视频上传 |
| 12 | </a> | 12 | </a> |
| 13 | + <a href="{:url('Vegetable')}" class="layui-btn layui-btn-sm"> | ||
| 14 | + <i class="fa fa-file-image-o"></i> 菜品库 | ||
| 15 | + </a> | ||
| 13 | </blockquote> | 16 | </blockquote> |
| 14 | <form class="layui-form layui-form-pane"> | 17 | <form class="layui-form layui-form-pane"> |
| 15 | <div class="layui-form-item"> | 18 | <div class="layui-form-item"> |
| 1 | +{include file="common/head"/} | ||
| 2 | +<div class="admin-main layui-anim layui-anim-upbit" ng-app="hd" ng-controller="ctrl"> | ||
| 3 | + <fieldset class="layui-elem-field layui-field-title"> | ||
| 4 | + <legend>{$title}</legend> | ||
| 5 | + </fieldset> | ||
| 6 | + <blockquote class="layui-elem-quote"> | ||
| 7 | + <a href="{:url('sellerList')}" class="layui-btn layui-btn-sm"> | ||
| 8 | + <i class="fa fa-file-image-o"></i> 商家信息列表 | ||
| 9 | + </a> | ||
| 10 | + <a href="{:url('uploadFile')}" class="layui-btn layui-btn-sm"> | ||
| 11 | + <i class="fa fa-file-image-o"></i> GIF图片、短视频上传 | ||
| 12 | + </a> | ||
| 13 | + <a href="{:url('Vegetable')}" class="layui-btn layui-btn-sm layui-btn-danger"> | ||
| 14 | + <i class="fa fa-file-image-o"></i> 菜品库 | ||
| 15 | + </a> | ||
| 16 | + </blockquote> | ||
| 17 | + <form class="layui-form layui-form-pane"> | ||
| 18 | + <div class="layui-form-item" id="container"> | ||
| 19 | + <label class="layui-form-label">菜品名称</label> | ||
| 20 | + <div class="layui-input-1"> | ||
| 21 | + <input type="text" name="name" ng-model="field.name" lay-verify="required" placeholder="{:lang('pleaseEnter')}图片/视频名称" class="layui-input"> | ||
| 22 | + </div> | ||
| 23 | + <label class="layui-form-label">菜系</label> | ||
| 24 | + <div class="layui-input-1"> | ||
| 25 | + <select name="class" id="class" lay-filter="myselect"> | ||
| 26 | + {volist name="arrayCai" id="item"} | ||
| 27 | + <option value="{$key}">{$item}</option> | ||
| 28 | + {/volist} | ||
| 29 | + </select> | ||
| 30 | + </div> | ||
| 31 | + <label class="layui-form-label">菜品简介</label> | ||
| 32 | + <div class="layui-input-2"> | ||
| 33 | + <textarea name="content" style="text-align:left;" class="layui-input"></textarea> | ||
| 34 | + </div> | ||
| 35 | + <label class="layui-form-label">菜品图片</label> | ||
| 36 | + <input type="hidden" name="pic" id="pic" value="{{field.pic}}"> | ||
| 37 | + <div class="layui-input-1"> | ||
| 38 | + <div class="layui-upload"> | ||
| 39 | + <button type="button" class="layui-btn layui-btn-primary" id="adBtn"><i class="icon icon-upload3"></i>点击上传</button> | ||
| 40 | + <div class="layui-upload-list"> | ||
| 41 | + <img class="layui-upload-img" id="adPic"> | ||
| 42 | + <p id="demoText"></p> | ||
| 43 | + <video src="" id="adVideo" controls="controls" style="width: 300px;height: 200px;display: none"> | ||
| 44 | + 您的浏览器不支持 video 标签。 | ||
| 45 | + </video> | ||
| 46 | + </div> | ||
| 47 | + </div> | ||
| 48 | + </div> | ||
| 49 | + </div> | ||
| 50 | + | ||
| 51 | + <div class="layui-form-item"> | ||
| 52 | + <button type="button" class="layui-btn" lay-submit="" lay-filter="submit">{:lang('submit')}</button> | ||
| 53 | + <a href="JavaScript:;" onclick="clickIframe();" class="layui-btn layui-btn-primary">批量添加</a> | ||
| 54 | + </div> | ||
| 55 | + </div> | ||
| 56 | + </form> | ||
| 57 | +</div> | ||
| 58 | +{include file="common/foot"/} | ||
| 59 | +<script src="/static/common/js/angular.min.js"></script> | ||
| 60 | +<script> | ||
| 61 | + var m = angular.module('hd',[]); | ||
| 62 | + m.controller('ctrl',['$scope',function($scope) { | ||
| 63 | + $scope.field = {type_id:'',name:'',url:'',open:1,sort:50,pic:'',content:''}; | ||
| 64 | + layui.use(['form','layer','upload'], function () { | ||
| 65 | + var form = layui.form, $ = layui.jquery, upload = layui.upload; | ||
| 66 | + if($scope.field.pic){ | ||
| 67 | + adPic.src = $scope.field.pic; | ||
| 68 | + } | ||
| 69 | + form.on('submit(submit)', function (data) { | ||
| 70 | + // 提交到方法 默认为本身 | ||
| 71 | + var loading = layer.load(1, {shade: [0.1, '#fff']}); | ||
| 72 | + $.post("{:url('Vegetable')}", data.field, function (res) { | ||
| 73 | + layer.close(loading); | ||
| 74 | + if (res.code > 0) { | ||
| 75 | + layer.msg(res.msg, {time: 1800, icon: 1}, function () { | ||
| 76 | + location.href = res.url; | ||
| 77 | + }); | ||
| 78 | + } else { | ||
| 79 | + layer.msg(res.msg, {time: 1800, icon: 2}); | ||
| 80 | + } | ||
| 81 | + }); | ||
| 82 | + }); | ||
| 83 | + //GIF/视频上传 | ||
| 84 | + var uploadInst = upload.render({ | ||
| 85 | + elem: '#adBtn' | ||
| 86 | + ,url: '{:url("UpFiles/qncloud")}' | ||
| 87 | + ,before: function(obj){ | ||
| 88 | + //预读本地文件示例,不支持ie8 | ||
| 89 | + obj.preview(function(index, file, result){ | ||
| 90 | + if(result.substring(5,10)=="image"){ | ||
| 91 | + $('#adPic').attr('src', result); //图片链接(base64) | ||
| 92 | + $('#adPic').css('display', 'block'); | ||
| 93 | + $("#adVideo").css('display', 'none'); | ||
| 94 | + }else{ | ||
| 95 | + $("#adVideo").get(0).src=result; //图片链接(base64) | ||
| 96 | + $("#adVideo").css('display', 'block'); | ||
| 97 | + $('#adPic').css('display', 'none'); | ||
| 98 | + } | ||
| 99 | + }); | ||
| 100 | + },done: function(res){ | ||
| 101 | + if(res.code>0){ | ||
| 102 | + $('#pic').val(res.url); | ||
| 103 | + return layer.msg('上传成功'); | ||
| 104 | + }else{ | ||
| 105 | + //如果上传失败 | ||
| 106 | + return layer.msg('上传失败'); | ||
| 107 | + } | ||
| 108 | + } | ||
| 109 | + ,error: function(){ | ||
| 110 | + //演示失败状态,并实现重传 | ||
| 111 | + var demoText = $('#demoText'); | ||
| 112 | + demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>'); | ||
| 113 | + demoText.find('.demo-reload').on('click', function(){ | ||
| 114 | + uploadInst.upload(); | ||
| 115 | + }); | ||
| 116 | + } | ||
| 117 | + }); | ||
| 118 | + | ||
| 119 | + | ||
| 120 | + }); | ||
| 121 | + }]); | ||
| 122 | + function clickIframe(){ | ||
| 123 | + //iframe弹层 | ||
| 124 | + layer.open({ | ||
| 125 | + type: 2, | ||
| 126 | + title: '批量添加', | ||
| 127 | + shadeClose: true, | ||
| 128 | + shade: 0.8, | ||
| 129 | + area: ['90%', '90%'], | ||
| 130 | + content: 'batchAdd/' //iframe的url | ||
| 131 | + }); | ||
| 132 | + } | ||
| 133 | +</script> |
-
Please register or login to post a comment