hrjy 2 éve
szülő
commit
2fcaa45523

+ 26 - 2
app/admin/controller/store/StoreProduct.php

@@ -3,6 +3,7 @@
 namespace app\admin\controller\store;
 
 use app\admin\controller\AuthController;
+use app\admin\model\ump\StoreCoupon;
 use app\admin\model\store\{
     StoreDescription,
     StoreProductAttrValue,
@@ -144,10 +145,29 @@ class StoreProduct extends AuthController
      */
     public function create($id = 0)
     {
+
+        $this->assign('coupon', StoreCoupon::select());
         $this->assign('id', (int)$id);
         return $this->fetch();
     }
 
+    /**
+     * 优惠券
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public function coupon_list()
+    {
+        $list = \app\admin\model\ump\StoreCoupon::where('status', 1)->select();
+        $menus = [];
+        foreach ($list as $menu) {
+            $menus[] = ['value' => $menu['id'], 'label' => $menu['title']];//,'disabled'=>$menu['pid']== 0];
+        }
+        return JsonService::successful($menus);
+    }
+
     /**
      * 获取规则属性模板
      * @throws \think\db\exception\DataNotFoundException
@@ -184,6 +204,7 @@ class StoreProduct extends AuthController
                 return Json::fail('修改的产品不存在');
             }
             $productInfo['cate_id'] = explode(',', $productInfo['cate_id']);
+            $productInfo['coupon'] = explode(',', $productInfo['coupon']);
             $productInfo['description'] = htmlspecialchars_decode(StoreDescription::getDescription($id));
             $productInfo['slider_image'] = is_string($productInfo['slider_image']) ? json_decode($productInfo['slider_image'], true) : [];
             if ($productInfo['spec_type'] == 1) {
@@ -273,7 +294,8 @@ class StoreProduct extends AuthController
             ['items', []],
             ['attrs', []],
             ['activity', []],
-            ['store_type', 1]
+            ['store_type', 1],
+            ['coupon']
         ]);
         foreach ($data['activity'] as $k => $v) {
             if ($v == '秒杀') {
@@ -293,12 +315,14 @@ class StoreProduct extends AuthController
         $attr = $data['items'];
         unset($data['items'], $data['video'], $data['attrs']);
         if (count($data['cate_id']) < 1) return Json::fail('请选择产品分类');
+        if (count($data['coupon']) < 1) return Json::fail('请绑定优惠券');
+        $data['coupon'] = implode($data['coupon'], ',');
         if (!in_array($data['store_type'], [1, 2])) return Json::fail('请选择正确的商品类型');
         $cate_id = $data['cate_id'];
         $data['cate_id'] = implode(',', $data['cate_id']);
         if (!$data['store_name']) return Json::fail('请输入产品名称');
         if (count($data['image']) < 1) return Json::fail('请上传产品图片');
-        if (count($data['slider_image']) < 1) return Json::fail('请上传产品轮播图');
+//        if (count($data['slider_image']) < 1) return Json::fail('请上传产品轮播图');
         $data['image'] = $data['image'][0];
         $data['slider_image'] = json_encode($data['slider_image']);
         $data['stock'] = array_sum(array_column($detail, 'stock'));

+ 22 - 6
app/admin/controller/ump/StoreCoupon.php

@@ -4,6 +4,7 @@ namespace app\admin\controller\ump;
 
 use app\admin\controller\AuthController;
 use app\admin\model\store\StoreCategory as CategoryModel;
+use app\admin\model\system\SystemStore;
 use think\facade\Route as Url;
 use app\admin\model\wechat\WechatUser as UserModel;
 use app\admin\model\ump\{StoreCouponIssue, StoreCoupon as CouponModel};
@@ -55,10 +56,13 @@ class StoreCoupon extends AuthController
         //后面通用字段
         $formbuiderfoot = array();
         $formbuiderfoot[] = Form::number('coupon_price', '优惠券面值', 0)->min(0);
-        $formbuiderfoot[] = Form::number('use_min_price', '最低消费')->min(0);
-        $formbuiderfoot[] = Form::number('coupon_time', '有效期限')->min(0);
+        $formbuiderfoot[] =  Form::selectOne('store_id', '绑定商家', 0)
+            ->options(SystemStore::field('id as value,name as label')->select()->toArray())->filterable(1)->col(10);
+//        $formbuiderfoot[] = Form::number('use_min_price', '最低消费')->min(0);
+//        $formbuiderfoot[] = Form::number('coupon_time', '有效期限')->min(0);
         $formbuiderfoot[] = Form::number('sort', '排序');
         $formbuiderfoot[] = Form::hidden('type', $data['type']);
+        $formbuiderfoot[] = Form::dateTimeRange('range_date', '使用时间')->placeholder('不填为永久有效');
         $formbuiderfoot[] = Form::radio('status', '状态', 0)->options([['label' => '开启', 'value' => 1], ['label' => '关闭', 'value' => 0]])->value(1);
         $formbuiders = array_merge($f, $formbuider, $formbuiderfoot);
         $form = Form::make_post_form('添加优惠券', $formbuiders, Url::buildUrl('save'));
@@ -86,16 +90,28 @@ class StoreCoupon extends AuthController
             ['product_id', []],
             ['category_id', 0],
             'coupon_price',
-            'use_min_price',
-            'coupon_time',
+            [ 'use_min_price', 0],
             'sort',
             ['status', 0],
-            ['type', 0]
+            ['type', 0],
+            ['range_date', ['', '']],
+            ['store_id']
         ]);
+        $rangeTime = $data['range_date'];
+        if (count($rangeTime) != 2) return Json::fail('请选择正确的时间区间');
+        list($startTime, $endTime) = $rangeTime;
+//        echo $startTime;echo $endTime;var_dump($rangeTime);die;
+        if (!$startTime) $startTime = 0;
+        if (!$endTime) $endTime = 0;
+        if (!$startTime && $endTime) return Json::fail('请选择正确的开始时间');
+        if ($startTime && !$endTime) return Json::fail('请选择正确的结束时间');
         if (!in_array($data['type'],[0,1,2])) return Json::fail('优惠券类型有误');
+
+
+        $data['start_time'] = $startTime != 0 ? strtotime($startTime) : 0;
+        $data['end_time'] = $endTime!= 0 ? strtotime($endTime) : 0;;
         if (!$data['title']) return Json::fail('请输入优惠券名称');
         if (!$data['coupon_price']) return Json::fail('请输入优惠券面值');
-        if (!$data['coupon_time']) return Json::fail('请输入优惠券有效期限');
         $data['product_id'] = implode(',', $data['product_id']);
         $data['add_time'] = time();
         CouponModel::create($data);

+ 16 - 6
app/admin/model/ump/StoreCoupon.php

@@ -40,13 +40,23 @@ class StoreCoupon extends BaseModel
     public static function systemPage($where)
     {
         $model = new self;
-        if ($where['status'] != '') $model = $model->where('status', $where['status']);
-        if ($where['type'] != '') $model = $model->where('type', $where['type']);
-        if ($where['title'] != '') $model = $model->where('title', 'LIKE', "%$where[title]%");
+        $model = $model->alias('a')
+            ->field('a.*,b.name')
+            ->leftJoin('system_store b', 'b.id = a.store_id');
+        if ($where['status'] != '') $model = $model->where('a.status', $where['status']);
+        if ($where['type'] != '') $model = $model->where('a.type', $where['type']);
+        if ($where['title'] != '') $model = $model->where('a.title', 'LIKE', "%$where[title]%");
 //        if($where['is_del'] != '')  $model = $model->where('is_del',$where['is_del']);
-        $model = $model->where('is_del', 0);
-        $model = $model->order('id desc');
-        return self::page($model, $where);
+        $model = $model->where('a.is_del', 0);
+        $model = $model->order('a.id desc');
+        $list = self::page($model, $where);
+        if ($list){
+            foreach ($list['list'] as &$v){
+                $v['start_time'] = $v['start_time'] > 0 ? date('Y-m-d H:i:s', $v['start_time']) : 0;
+                $v['end_time'] =  $v['start_time'] > 0 ? date('Y-m-d H:i:s', $v['end_time']) : 0;
+            }
+        }
+        return $list;
     }
 
     /**

+ 196 - 142
app/admin/view/store/store_product/create.php

@@ -160,8 +160,8 @@
                     <div class="layui-tab layui-tab-brief" lay-filter="docTabBrief">
                         <ul class="layui-tab-title">
                             <li class="layui-this" lay-id='1'>基础信息</li>
-                            <li lay-id='2'>商品详情</li>
-                            <li lay-id='3'>其他设置</li>
+                            <li lay-id='2'>详情</li>
+<!--                            <li lay-id='3'>其他设置</li>-->
                         </ul>
                         <div class="layui-tab-content">
                             <div class="layui-tab-item layui-show">
@@ -178,25 +178,8 @@
                                     <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item">
-                                                <label class="layui-form-label">商品名称<i class="red">*</i></label>
-                                                <div class="layui-input-block">
-                                                    <input type="text" name="store_name" lay-verify="title"
-                                                           autocomplete="off"
-                                                           placeholder="请输入商品名称" class="layui-input"
-                                                           v-model="formData.store_name" maxlength="100">
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                    <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
-                                        <div class="grid-demo grid-demo-bg1">
-                                            <div class="layui-form-item">
-                                                <label class="layui-form-label">商品关键字</label>
-                                                <div class="layui-input-block">
-                                                    <input style="width: 40%" type="text" name="keyword"
-                                                           lay-verify="title" autocomplete="off"
-                                                           placeholder="请输入商品关键字" class="layui-input"
-                                                           v-model="formData.keyword">
+                                                <label class="layui-form-label">绑定优惠券<i class="red">*</i></label>
+                                                <div class="layui-input-block" id="coupon">
                                                 </div>
                                             </div>
                                         </div>
@@ -204,16 +187,42 @@
                                     <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item">
-                                                <label class="layui-form-label">单位</label>
+                                                <label class="layui-form-label">商品名称<i class="red">*</i></label>
                                                 <div class="layui-input-block">
-                                                    <input style="width: 40%" type="text" name="unit_name"
-                                                           lay-verify="title" autocomplete="off"
-                                                           placeholder="请输入单位" class="layui-input"
-                                                           v-model="formData.unit_name">
+                                                    <input type="text" name="store_name" lay-verify="title"
+                                                           autocomplete="off"
+                                                           placeholder="请输入商品名称" class="layui-input"
+                                                           v-model="formData.store_name" maxlength="100">
                                                 </div>
                                             </div>
                                         </div>
                                     </div>
+<!--                                    <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">-->
+<!--                                        <div class="grid-demo grid-demo-bg1">-->
+<!--                                            <div class="layui-form-item">-->
+<!--                                                <label class="layui-form-label">商品关键字</label>-->
+<!--                                                <div class="layui-input-block">-->
+<!--                                                    <input style="width: 40%" type="text" name="keyword"-->
+<!--                                                           lay-verify="title" autocomplete="off"-->
+<!--                                                           placeholder="请输入商品关键字" class="layui-input"-->
+<!--                                                           v-model="formData.keyword">-->
+<!--                                                </div>-->
+<!--                                            </div>-->
+<!--                                        </div>-->
+<!--                                    </div>-->
+<!--                                    <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">-->
+<!--                                        <div class="grid-demo grid-demo-bg1">-->
+<!--                                            <div class="layui-form-item">-->
+<!--                                                <label class="layui-form-label">单位</label>-->
+<!--                                                <div class="layui-input-block">-->
+<!--                                                    <input style="width: 40%" type="text" name="unit_name"-->
+<!--                                                           lay-verify="title" autocomplete="off"-->
+<!--                                                           placeholder="请输入单位" class="layui-input"-->
+<!--                                                           v-model="formData.unit_name">-->
+<!--                                                </div>-->
+<!--                                            </div>-->
+<!--                                        </div>-->
+<!--                                    </div>-->
                                     <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item layui-form-text">
@@ -225,46 +234,46 @@
                                             </div>
                                         </div>
                                     </div>
-                                    <div class="layui-form-item submit">
-                                        <label class="layui-form-label">主图视频</label>
-                                        <div class="layui-input-block">
-                                            <input type="text" name="link_key" v-model="videoLink"
-                                                   style="width:50%;display:inline-block;margin-right: 10px;"
-                                                   autocomplete="off" placeholder="请输入视频链接" class="layui-input">
-                                            <button type="button" @click="uploadVideo"
-                                                    class="layui-btn layui-btn-sm layui-btn-normal">{{videoLink ? '确认添加'
-                                                        : '上传视频'}}
-                                            </button>
-                                            <input ref="filElem" type="file" style="display: none">
-                                        </div>
-                                        <div class="layui-input-block video_show" style="width: 30%;margin-top: 20px;"
-                                             v-if="upload.videoIng">
-                                            <div class="layui-progress" style="margin-bottom: 10px">
-                                                <div class="layui-progress-bar layui-bg-blue"
-                                                     :style="'width:'+progress+'%'"></div>
-                                            </div>
-                                            <button type="button"
-                                                    class="layui-btn layui-btn-sm layui-btn-danger percent">
-                                                {{progress}}%
-                                            </button>
-                                        </div>
-                                        <div class="layui-input-block" v-if="formData.video_link">
-                                            <div class="layui-video-box" v-if="formData.video_link">
-                                                <video style="width:100%;height: 100%!important;border-radius: 10px;"
-                                                       :src="formData.video_link" controls="controls">
-                                                    您的浏览器不支持 video 标签。
-                                                </video>
-                                                <div class="mark" @click="delVideo">
-                                                    <span class="layui-icon layui-icon-delete"
-                                                          style="font-size: 30px; color: #1E9FFF;"></span>
-                                                </div>
-
-                                            </div>
-                                            <div class="layui-video-box" v-else>
-                                                <i class="layui-icon layui-icon-play"></i>
-                                            </div>
-                                        </div>
-                                    </div>
+<!--                                    <div class="layui-form-item submit">-->
+<!--                                        <label class="layui-form-label">主图视频</label>-->
+<!--                                        <div class="layui-input-block">-->
+<!--                                            <input type="text" name="link_key" v-model="videoLink"-->
+<!--                                                   style="width:50%;display:inline-block;margin-right: 10px;"-->
+<!--                                                   autocomplete="off" placeholder="请输入视频链接" class="layui-input">-->
+<!--                                            <button type="button" @click="uploadVideo"-->
+<!--                                                    class="layui-btn layui-btn-sm layui-btn-normal">{{videoLink ? '确认添加'-->
+<!--                                                        : '上传视频'}}-->
+<!--                                            </button>-->
+<!--                                            <input ref="filElem" type="file" style="display: none">-->
+<!--                                        </div>-->
+<!--                                        <div class="layui-input-block video_show" style="width: 30%;margin-top: 20px;"-->
+<!--                                             v-if="upload.videoIng">-->
+<!--                                            <div class="layui-progress" style="margin-bottom: 10px">-->
+<!--                                                <div class="layui-progress-bar layui-bg-blue"-->
+<!--                                                     :style="'width:'+progress+'%'"></div>-->
+<!--                                            </div>-->
+<!--                                            <button type="button"-->
+<!--                                                    class="layui-btn layui-btn-sm layui-btn-danger percent">-->
+<!--                                                {{progress}}%-->
+<!--                                            </button>-->
+<!--                                        </div>-->
+<!--                                        <div class="layui-input-block" v-if="formData.video_link">-->
+<!--                                            <div class="layui-video-box" v-if="formData.video_link">-->
+<!--                                                <video style="width:100%;height: 100%!important;border-radius: 10px;"-->
+<!--                                                       :src="formData.video_link" controls="controls">-->
+<!--                                                    您的浏览器不支持 video 标签。-->
+<!--                                                </video>-->
+<!--                                                <div class="mark" @click="delVideo">-->
+<!--                                                    <span class="layui-icon layui-icon-delete"-->
+<!--                                                          style="font-size: 30px; color: #1E9FFF;"></span>-->
+<!--                                                </div>-->
+<!---->
+<!--                                            </div>-->
+<!--                                            <div class="layui-video-box" v-else>-->
+<!--                                                <i class="layui-icon layui-icon-play"></i>-->
+<!--                                            </div>-->
+<!--                                        </div>-->
+<!--                                    </div>-->
                                     <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item">
@@ -281,56 +290,56 @@
                                             </div>
                                         </div>
                                     </div>
-                                    <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
-                                        <div class="grid-demo grid-demo-bg1">
-                                            <div class="layui-form-item">
-                                                <label class="layui-form-label">商品轮播图<i class="red">*</i></label>
-                                                <div class="pictrueBox pictrue"
-                                                     v-for="(item,index) in formData.slider_image">
-                                                    <img :src="item">
-                                                    <i class="layui-icon closes"
-                                                       @click="deleteImage('slider_image',index)">&#x1007</i>
-                                                </div>
-                                                <div class="pictrueBox">
-                                                    <div class="upLoad" @click="uploadImage('slider_image')"
-                                                         v-if="formData.slider_image.length <= rule.slider_image.maxLength">
-                                                        <i class="layui-icon layui-icon-camera" class="iconfont"
-                                                           style="font-size: 26px;"></i>
-                                                    </div>
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                    <div class="layui-col-xs12 layui-col-sm4 layui-col-md12">
-                                        <div class="grid-demo grid-demo-bg1">
-                                            <div class="layui-form-item">
-                                                <label class="layui-form-label">商品类型</label>
-                                                <div class="layui-input-block">
-                                                    <input type="radio" name="store_type" lay-filter="store_type"
-                                                           value="1" title="普通商品"
-                                                           :checked="formData.store_type == 1 ? true : false">
-                                                    <input type="radio" name="store_type" lay-filter="store_type"
-                                                           value="2" title="虚拟商品"
-                                                           :checked="formData.store_type == 0 ? true : false">
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                    <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">
-                                        <div class="grid-demo grid-demo-bg1">
-                                            <div class="layui-form-item">
-                                                <label class="layui-form-label">商品规格<i class="red">*</i></label>
-                                                <div class="layui-input-block">
-                                                    <input type="radio" name="spec_type" value="0" title="单规格"
-                                                           lay-filter="spec_type"
-                                                           :checked="formData.spec_type == 0 ? true : false">
-                                                    <input type="radio" name="spec_type" value="1" title="多规格"
-                                                           lay-filter="spec_type"
-                                                           :checked="formData.spec_type == 1 ? true : false">
-                                                </div>
-                                            </div>
-                                        </div>
-                                    </div>
+<!--                                    <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">-->
+<!--                                        <div class="grid-demo grid-demo-bg1">-->
+<!--                                            <div class="layui-form-item">-->
+<!--                                                <label class="layui-form-label">商品轮播图<i class="red">*</i></label>-->
+<!--                                                <div class="pictrueBox pictrue"-->
+<!--                                                     v-for="(item,index) in formData.slider_image">-->
+<!--                                                    <img :src="item">-->
+<!--                                                    <i class="layui-icon closes"-->
+<!--                                                       @click="deleteImage('slider_image',index)">&#x1007</i>-->
+<!--                                                </div>-->
+<!--                                                <div class="pictrueBox">-->
+<!--                                                    <div class="upLoad" @click="uploadImage('slider_image')"-->
+<!--                                                         v-if="formData.slider_image.length <= rule.slider_image.maxLength">-->
+<!--                                                        <i class="layui-icon layui-icon-camera" class="iconfont"-->
+<!--                                                           style="font-size: 26px;"></i>-->
+<!--                                                    </div>-->
+<!--                                                </div>-->
+<!--                                            </div>-->
+<!--                                        </div>-->
+<!--                                    </div>-->
+<!--                                    <div class="layui-col-xs12 layui-col-sm4 layui-col-md12">-->
+<!--                                        <div class="grid-demo grid-demo-bg1">-->
+<!--                                            <div class="layui-form-item">-->
+<!--                                                <label class="layui-form-label">商品类型</label>-->
+<!--                                                <div class="layui-input-block">-->
+<!--                                                    <input type="radio" name="store_type" lay-filter="store_type"-->
+<!--                                                           value="1" title="普通商品"-->
+<!--                                                           :checked="formData.store_type == 1 ? true : false">-->
+<!--                                                    <input type="radio" name="store_type" lay-filter="store_type"-->
+<!--                                                           value="2" title="虚拟商品"-->
+<!--                                                           :checked="formData.store_type == 0 ? true : false">-->
+<!--                                                </div>-->
+<!--                                            </div>-->
+<!--                                        </div>-->
+<!--                                    </div>-->
+<!--                                    <div class="layui-col-xs12 layui-col-sm12 layui-col-md12">-->
+<!--                                        <div class="grid-demo grid-demo-bg1">-->
+<!--                                            <div class="layui-form-item">-->
+<!--                                                <label class="layui-form-label">商品规格<i class="red">*</i></label>-->
+<!--                                                <div class="layui-input-block">-->
+<!--                                                    <input type="radio" name="spec_type" value="0" title="单规格"-->
+<!--                                                           lay-filter="spec_type"-->
+<!--                                                           :checked="formData.spec_type == 0 ? true : false">-->
+<!--                                                    <input type="radio" name="spec_type" value="1" title="多规格"-->
+<!--                                                           lay-filter="spec_type"-->
+<!--                                                           :checked="formData.spec_type == 1 ? true : false">-->
+<!--                                                </div>-->
+<!--                                            </div>-->
+<!--                                        </div>-->
+<!--                                    </div>-->
                                     <div class="layui-col-xs12 layui-col-sm12 layui-col-md12"
                                          v-if="formData.spec_type == 0">
 
@@ -618,22 +627,22 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs12 layui-col-sm6 layui-col-md6">
-                                    <div class="grid-demo grid-demo-bg1">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label">运费模板<i class="red">*</i></label>
-                                            <div class="layui-input-block">
-                                                <select name="temp_id" lay-filter="temp_id">
-                                                    <option value="0">请选择</option>
-                                                    <option :value="item.id" v-for="item in tempList"
-                                                            :selected=" item.id == formData.temp_id ? true : false ">
-                                                        {{item.name}}
-                                                    </option>
-                                                </select>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </div>
+<!--                                <div class="layui-col-xs12 layui-col-sm6 layui-col-md6">-->
+<!--                                    <div class="grid-demo grid-demo-bg1">-->
+<!--                                        <div class="layui-form-item">-->
+<!--                                            <label class="layui-form-label">运费模板<i class="red">*</i></label>-->
+<!--                                            <div class="layui-input-block">-->
+<!--                                                <select name="temp_id" lay-filter="temp_id">-->
+<!--                                                    <option value="0">请选择</option>-->
+<!--                                                    <option :value="item.id" v-for="item in tempList"-->
+<!--                                                            :selected=" item.id == formData.temp_id ? true : false ">-->
+<!--                                                        {{item.name}}-->
+<!--                                                    </option>-->
+<!--                                                </select>-->
+<!--                                            </div>-->
+<!--                                        </div>-->
+<!--                                    </div>-->
+<!--                                </div>-->
                                 <div class="layui-row layui-col-space15">
                                     <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
                                         <div class="grid-demo grid-demo-bg1">
@@ -957,7 +966,7 @@
                                                     @click="back" v-if="layTabId != 1">上一步
                                             </button>
                                             <button class="layui-btn layui-btn-normal layui-btn-sm" type="button"
-                                                    v-if="layTabId != 3" @click="next">下一步
+                                                    v-if="layTabId != 2" @click="next">下一步
                                             </button>
                                         </div>
                                         <div class="layui-form-item" v-else>
@@ -965,10 +974,10 @@
                                                     @click="back" v-if="layTabId != 1">上一步
                                             </button>
                                             <button class="layui-btn layui-btn-normal layui-btn-sm" type="button"
-                                                    @click="next" v-if="layTabId != 3">下一步
+                                                    @click="next" v-if="layTabId != 2">下一步
                                             </button>
                                             <button class="layui-btn layui-btn-normal layui-btn-sm" type="button"
-                                                    v-if="layTabId == 3" @click="handleSubmit()">提交
+                                                    v-if="layTabId == 2" @click="handleSubmit()">提交
                                             </button>
                                         </div>
                                     </div>
@@ -991,12 +1000,15 @@
             cateList: [],
             //运费模板
             tempList: [],
+            // 优惠券
+            coupon:[],
             upload: {
                 videoIng: false
             },
             formData: {
                 cate_id: [],
-                temp_id: 0,
+                coupon:[],
+                temp_id: 1,
                 commission: 0,
                 store_name: '',
                 keyword: '',
@@ -1230,6 +1242,23 @@
                     that.showMsg(res.msg);
                 })
             },
+
+            /**
+             * 获取商品信息
+             * */
+            getCouponInfo: function () {
+                var that = this;
+                that.requestGet(that.U({
+                    c: "store.StoreProduct",
+                    a: 'coupon_list',
+                    q: {id: that.id}
+                })).then(function (res) {
+                    that.$set(that, 'coupon', res.data);
+                }).catch(function (res) {
+                    that.showMsg(res.msg);
+                })
+            },
+
             /**
              * 给某个属性添加属性值
              * @param item
@@ -1515,6 +1544,24 @@
                             //候选项数据的键名
                             , field: {idName: 'value', titleName: 'label', statusName: 'disabled'}
                         });
+
+                        var selectC = layui.selectM;
+                        selectC({
+                            //元素容器【必填】
+                            elem: '#coupon'
+                            //候选数据【必填】
+                            , data: that.coupon
+                            //默认值
+                            , selected: that.formData.coupon || []
+                            //最多选中个数,默认5
+                            , max: 20
+                            , name: 'coupon'
+                            , model: 'formData.coupon'
+                            //值的分隔符
+                            , delimiter: ','
+                            //候选项数据的键名
+                            , field: {idName: 'value', titleName: 'label'}
+                        });
                     });
                 })
             },
@@ -1562,25 +1609,31 @@
                 });
             },
             handleSubmit: function () {
-                var that = this, cate_id = $('input[name="cate_id"]').val();
+                var that = this, cate_id = $('input[name="cate_id"]').val(), coupon = $('input[name="coupon"]').val();
                 if (cate_id != '') {
                     this.formData.cate_id = cate_id.split(',');
                 }
+                if (coupon != '') {
+                    this.formData.coupon = coupon.split(',');
+                }
                 if (!that.formData.cate_id.length) {
                     return that.showMsg('请选择商品分类');
                 }
-                if (!that.formData.temp_id) {
-                    return that.showMsg('请选择运费模板');
+                if (!that.formData.coupon.length) {
+                    return that.showMsg('请绑定优惠券');
                 }
+                // if (!that.formData.temp_id) {
+                //     return that.showMsg('请选择运费模板');
+                // }
                 if (!that.formData.store_name) {
                     return that.showMsg('请填写商品名称');
                 }
                 if (!that.formData.image) {
                     return that.showMsg('请填选择商品图');
                 }
-                if (!that.formData.slider_image.length) {
-                    return that.showMsg('请填选择商品轮播图');
-                }
+                // if (!that.formData.slider_image.length) {
+                //     return that.showMsg('请填选择商品轮播图');
+                // }
                 if (that.formData.spec_type == 0) {
                     if (!that.formData.attr.pic) {
                         return that.showMsg('请选择单规则图片');
@@ -1722,6 +1775,7 @@
             var that = this;
             axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
             that.getProductInfo();
+            that.getCouponInfo();
             window.$vm = that;
             window.changeIMG = that.changeIMG;
             window.insertEditor = that.insertEditor;

+ 6 - 6
app/admin/view/ump/store_coupon/create.php

@@ -24,12 +24,12 @@
 </head>
 <body>
 <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
-    <ul class="layui-tab-title">
-        <li {if condition="$get['type'] eq 0"}class="layui-this"{/if}><a href="{:Url('create',array('tab_id'=>$Request.param.tab_id,'type'=>0))}">通用券</a> </li>
-        <li {if condition="$get['type'] eq 1"}class="layui-this"{/if}><a href="{:Url('create',array('tab_id'=>$Request.param.tab_id,'type'=>1))}">品类券</a> </li>
-        <li {if condition="$get['type'] eq 2"}class="layui-this"{/if}><a href="{:Url('create',array('tab_id'=>$Request.param.tab_id,'type'=>2))}">商品券</a></li>
-
-    </ul>
+<!--    <ul class="layui-tab-title">-->
+<!--        <li {if condition="$get['type'] eq 0"}class="layui-this"{/if}><a href="{:Url('create',array('tab_id'=>$Request.param.tab_id,'type'=>0))}">通用券</a> </li>-->
+<!--        <li {if condition="$get['type'] eq 1"}class="layui-this"{/if}><a href="{:Url('create',array('tab_id'=>$Request.param.tab_id,'type'=>1))}">品类券</a> </li>-->
+<!--        <li {if condition="$get['type'] eq 2"}class="layui-this"{/if}><a href="{:Url('create',array('tab_id'=>$Request.param.tab_id,'type'=>2))}">商品券</a></li>-->
+<!---->
+<!--    </ul>-->
     <div class="layui-tab-content" style="height: 100px;">
         <div class="layui-tab-item layui-show coupon_form" id="formdiv">
 

+ 12 - 18
app/admin/view/ump/store_coupon/index.php

@@ -47,9 +47,8 @@
 
                             <th class="text-center">编号</th>
                             <th class="text-center">优惠券名称</th>
-                            <th class="text-center">优惠券类型</th>
                             <th class="text-center">优惠券面值</th>
-                            <th class="text-center">优惠券最低消费</th>
+                            <th class="text-center">优惠券商家</th>
                             <th class="text-center">优惠券有效期限</th>
                             <th class="text-center">排序</th>
                             <th class="text-center">是否有效</th>
@@ -66,23 +65,18 @@
                             <td class="text-center">
                                 {$vo.title}
                             </td>
-                            <td class="text-center">
-                                {if $vo.type eq 0}
-                                通用券
-                                {elseif $vo.type eq 1}
-                                品类券
-                                {else/}
-                                商品券
-                                {/if}
-                            </td>
                             <td class="text-center">
                                 {$vo.coupon_price}
                             </td>
                             <td class="text-center">
-                                {$vo.use_min_price}
+                                {$vo.name}
                             </td>
                             <td class="text-center">
-                                {$vo.coupon_time}天
+                                {if($vo.start_time)}
+                                    {$vo.start_time} - {$vo.end_time}
+                                {else}
+                                    没有期限
+                                {/if}
                             </td>
                             <td class="text-center">
                                 {$vo.sort}
@@ -107,11 +101,11 @@
                                                     <i class="fa  fa-yelp"></i> 立即失效
                                                 </a>
                                             </li>
-                                            <li>
-                                                <a href="javascript:void(0);" onclick="$eb.createModalFrame(this.innerText+' [{$vo.title}] 优惠劵','{:Url('issue',['id'=>$vo['id']])}')">
-                                                    <i class="fa  fa-male"></i> 发布
-                                                </a>
-                                            </li>
+<!--                                            <li>-->
+<!--                                                <a href="javascript:void(0);" onclick="$eb.createModalFrame(this.innerText+' [{$vo.title}] 优惠劵','{:Url('issue',['id'=>$vo['id']])}')">-->
+<!--                                                    <i class="fa  fa-male"></i> 发布-->
+<!--                                                </a>-->
+<!--                                            </li>-->
                                             {/if}
                                             <li>
                                                 <a href="javascript:void(0);" class="delstor" data-url="{:Url('delete',array('id'=>$vo['id']))}">

+ 6 - 6
app/api/controller/AuthController.php

@@ -196,12 +196,12 @@ class AuthController
         } catch (ValidateException $e) {
             return app('json')->fail($e->getError());
         }
-        $verifyCode = CacheService::get('code_' . $account);
-        if (!$verifyCode)
-            return app('json')->fail('请先获取验证码');
-        $verifyCode = substr($verifyCode, 0, 6);
-        if ($verifyCode != $captcha)
-            return app('json')->fail('验证码错误');
+//        $verifyCode = CacheService::get('code_' . $account);
+//        if (!$verifyCode)
+//            return app('json')->fail('请先获取验证码');
+//        $verifyCode = substr($verifyCode, 0, 6);
+//        if ($verifyCode != $captcha)
+//            return app('json')->fail('验证码错误');
         if (strlen(trim($password)) < 6 || strlen(trim($password)) > 16)
             return app('json')->fail('密码必须是在6到16位之间');
         if ($password == '123456') return app('json')->fail('密码太过简单,请输入较为复杂的密码');

+ 12 - 0
app/common.php

@@ -594,3 +594,15 @@ if (!function_exists('do_request')) {
         return $result;
     }
 }
+
+if (!function_exists('pr')) {
+    function pr($var, $int = '')
+    {
+        $template = PHP_SAPI !== 'cli' ? '<pre>%s</pre>' : "\n%s\n";
+        printf($template, print_r($var, true));
+        if (!empty($int)) {
+            exit($int);
+        }
+
+    }
+}