合并分支 'xv' 到 'master'
Xv 查看合并请求 !11
正在显示
10 个修改的文件
包含
179 行增加
和
20 行删除
@@ -37,6 +37,12 @@ class ZjNewsController extends AdminBaseController | @@ -37,6 +37,12 @@ class ZjNewsController extends AdminBaseController | ||
37 | if ($this->request->param()){ | 37 | if ($this->request->param()){ |
38 | $arr=input('param.'); | 38 | $arr=input('param.'); |
39 | $arr['create_time']=time(); | 39 | $arr['create_time']=time(); |
40 | + if($arr['is_sta']==1){ | ||
41 | + $num=Db::name('zj_news')->where(['is_sta'=>1,'delete_time'=>0])->count(); | ||
42 | + if ($num>=3){ | ||
43 | + $this->error('最多同时发布三条系统消息'); | ||
44 | + } | ||
45 | + } | ||
40 | $add=Db::name('zj_news')->insert($arr); | 46 | $add=Db::name('zj_news')->insert($arr); |
41 | if ($add){ | 47 | if ($add){ |
42 | $this->success('添加成功',url('index')); | 48 | $this->success('添加成功',url('index')); |
@@ -63,6 +69,12 @@ class ZjNewsController extends AdminBaseController | @@ -63,6 +69,12 @@ class ZjNewsController extends AdminBaseController | ||
63 | public function editPost(){ | 69 | public function editPost(){ |
64 | if ($this->request->param()){ | 70 | if ($this->request->param()){ |
65 | $arr=input('param.'); | 71 | $arr=input('param.'); |
72 | + if($arr['is_sta']==1){ | ||
73 | + $num=Db::name('zj_news')->where(['is_sta'=>1,'delete_time'=>0])->count(); | ||
74 | + if ($num>=3){ | ||
75 | + $this->error('最多同时发布三条系统消息'); | ||
76 | + } | ||
77 | + } | ||
66 | $edit=Db::name('zj_news')->update($arr); | 78 | $edit=Db::name('zj_news')->update($arr); |
67 | if ($edit){ | 79 | if ($edit){ |
68 | $this->success('保存成功',url('index')); | 80 | $this->success('保存成功',url('index')); |
@@ -73,11 +85,17 @@ class ZjNewsController extends AdminBaseController | @@ -73,11 +85,17 @@ class ZjNewsController extends AdminBaseController | ||
73 | } | 85 | } |
74 | 86 | ||
75 | /** | 87 | /** |
76 | - * 系统消息启用禁用 | 88 | + * 系统消息发布状态 |
77 | */ | 89 | */ |
78 | public function sta(){ | 90 | public function sta(){ |
79 | if ($this->request->param()){ | 91 | if ($this->request->param()){ |
80 | $arr=input('param.'); | 92 | $arr=input('param.'); |
93 | + if($arr['is_sta']==1){ | ||
94 | + $num=Db::name('zj_news')->where(['is_sta'=>1,'delete_time'=>0])->count(); | ||
95 | + if ($num>=3){ | ||
96 | + $this->error('最多同时发布三条系统消息'); | ||
97 | + } | ||
98 | + } | ||
81 | $edit=Db::name('zj_news')->update($arr); | 99 | $edit=Db::name('zj_news')->update($arr); |
82 | if ($edit){ | 100 | if ($edit){ |
83 | $this->success('设置成功'); | 101 | $this->success('设置成功'); |
@@ -22,7 +22,7 @@ class ZjCartController extends HomeBaseController | @@ -22,7 +22,7 @@ class ZjCartController extends HomeBaseController | ||
22 | // $id=session('user.id'); | 22 | // $id=session('user.id'); |
23 | $id=8; | 23 | $id=8; |
24 | $all=Db::name('zj_cart')->alias('c')->join('zj_goods g','c.gid=g.id')->join('zj_category ca','g.cid=ca.id') | 24 | $all=Db::name('zj_cart')->alias('c')->join('zj_goods g','c.gid=g.id')->join('zj_category ca','g.cid=ca.id') |
25 | - ->where('c.uid',$id)->field('c.id as cartid,c.gid,c.num,g.*,ca.cid as caid')->select(); | 25 | + ->where('c.uid',$id)->where(['g.is_sta'=>'1','g.delete_time'=>'0'])->field('c.id as cartid,c.gid,c.num,g.*,ca.cid as caid')->select(); |
26 | if (empty($all[0])){ | 26 | if (empty($all[0])){ |
27 | $you=1; | 27 | $you=1; |
28 | }else{ | 28 | }else{ |
public/static/js/city-picker.js
0 → 100644
此 diff 太大无法显示。
@@ -111,7 +111,7 @@ | @@ -111,7 +111,7 @@ | ||
111 | <else> | 111 | <else> |
112 | <a href="{:url('state',array('id'=>$vo['id'],'is_sta'=>'1'))}" class="js-ajax-dialog-btn" data-msg="确定上架商品">上架</a> | 112 | <a href="{:url('state',array('id'=>$vo['id'],'is_sta'=>'1'))}" class="js-ajax-dialog-btn" data-msg="确定上架商品">上架</a> |
113 | </eq> | 113 | </eq> |
114 | - <a href="{:url('delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:lang('DELETE')}</a> | 114 | + <!--<a href="{:url('delete',array('id'=>$vo['id']))}" class="js-ajax-delete">{:lang('DELETE')}</a>--> |
115 | <a href="{:url('eva',array('id'=>$vo.id))}">查看评论</a> | 115 | <a href="{:url('eva',array('id'=>$vo.id))}">查看评论</a> |
116 | </td> | 116 | </td> |
117 | </tr> | 117 | </tr> |
@@ -3,8 +3,8 @@ | @@ -3,8 +3,8 @@ | ||
3 | <body> | 3 | <body> |
4 | <div class="wrap js-check-wrap"> | 4 | <div class="wrap js-check-wrap"> |
5 | <ul class="nav nav-tabs"> | 5 | <ul class="nav nav-tabs"> |
6 | - <li><a href="{:url('index')}">分类管理</a></li> | ||
7 | - <li class="active"><a href="{:url('add')}">添加分类</a></li> | 6 | + <li><a href="{:url('index')}">系统消息列表</a></li> |
7 | + <li class="active"><a href="{:url('add')}">添加系统消息</a></li> | ||
8 | </ul> | 8 | </ul> |
9 | <div class="row margin-top-20"> | 9 | <div class="row margin-top-20"> |
10 | <div class="col-md-6"> | 10 | <div class="col-md-6"> |
@@ -3,9 +3,9 @@ | @@ -3,9 +3,9 @@ | ||
3 | <body> | 3 | <body> |
4 | <div class="wrap js-check-wrap"> | 4 | <div class="wrap js-check-wrap"> |
5 | <ul class="nav nav-tabs"> | 5 | <ul class="nav nav-tabs"> |
6 | - <li><a href="{:url('index')}">分类管理</a></li> | ||
7 | - <li><a href="{:url('add')}">添加分类</a></li> | ||
8 | - <li class="active"><a href="javascript:;">编辑分类</a></li> | 6 | + <li><a href="{:url('index')}">系统消息列表</a></li> |
7 | + <li><a href="{:url('add')}">添加系统消息</a></li> | ||
8 | + <li class="active"><a href="javascript:;">编辑系统消息</a></li> | ||
9 | </ul> | 9 | </ul> |
10 | <div class="row margin-top-20"> | 10 | <div class="row margin-top-20"> |
11 | <div class="col-md-6"> | 11 | <div class="col-md-6"> |
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | <th>标题</th> | 14 | <th>标题</th> |
15 | <th>内容</th> | 15 | <th>内容</th> |
16 | <th style="width: 130px;">添加时间</th> | 16 | <th style="width: 130px;">添加时间</th> |
17 | - <th style="width: 50px;">状态</th> | 17 | + <th style="width: 80px;">状态</th> |
18 | <th style="width: 130px;">操作</th> | 18 | <th style="width: 130px;">操作</th> |
19 | </tr> | 19 | </tr> |
20 | </thead> | 20 | </thead> |
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | <div class="form-group"> | 14 | <div class="form-group"> |
15 | <label for="mobile"><span class="form-required">*</span>退款客服电话</label> | 15 | <label for="mobile"><span class="form-required">*</span>退款客服电话</label> |
16 | <div> | 16 | <div> |
17 | - <input type="text" class="form-control" value="{$one.mobile}" id="mobile" name="mobile"> | 17 | + <input type="text" class="form-control" required value="{$one.mobile}" id="mobile" name="mobile"> |
18 | </div> | 18 | </div> |
19 | </div> | 19 | </div> |
20 | <div class="form-group"> | 20 | <div class="form-group"> |
@@ -26,7 +26,32 @@ | @@ -26,7 +26,32 @@ | ||
26 | <div class="form-group"> | 26 | <div class="form-group"> |
27 | <label for="integral"><span class="form-required">*</span>返佣比例</label> | 27 | <label for="integral"><span class="form-required">*</span>返佣比例</label> |
28 | <div> | 28 | <div> |
29 | - <input type="number" class="form-control" id="integral" value="{$one.integral}" name="integral"> | 29 | + <input type="number" class="form-control" required id="integral" value="{$one.integral}" name="integral"> |
30 | + </div> | ||
31 | + </div> | ||
32 | + <div class="form-group"> | ||
33 | + <label for="integral"><span class="form-required">*</span>发货人信息</label> | ||
34 | + <div> | ||
35 | + <div class="col-md-5">发货人:<input type="text" required style="width: 80%;display: inline-block;" class="form-control" id="name" value="{$one.name}" name="name"></div> | ||
36 | + <div class="col-md-5">手机号:<input type="number" required style="width: 80%;display: inline-block;" class="form-control" id="fmobile" value="{$one.fmobile}" name="fmobile"></div> | ||
37 | + </div> | ||
38 | + </div> | ||
39 | + <br/> | ||
40 | + <br/> | ||
41 | + <br/> | ||
42 | + <div class="form-group"> | ||
43 | + <label><span class="form-required">*</span>发货地址</label><br/> | ||
44 | + <div class="col-md-3">省:<select required class="form-control " name="province" style="width: 80%;display: inline-block;" id="province" onchange="province1(this)"></select></div> | ||
45 | + <div class="col-md-3">市:<select required class="form-control " name="city" style="width: 80%;display: inline-block;" id="city" onchange="city1(this)"></select></div> | ||
46 | + <div class="col-md-3">区:<select required class="form-control " name="county" style="width: 80%;display: inline-block;" id="county"></select></div> | ||
47 | + </div> | ||
48 | + <br/> | ||
49 | + <br/> | ||
50 | + <br/> | ||
51 | + <div class="form-group"> | ||
52 | + <label for="integral"><span class="form-required">*</span>详细地址</label> | ||
53 | + <div> | ||
54 | + <input type="text" required class="form-control" id="place" value="{$one.place}" name="place"> | ||
30 | </div> | 55 | </div> |
31 | </div> | 56 | </div> |
32 | </div> | 57 | </div> |
@@ -39,6 +64,81 @@ | @@ -39,6 +64,81 @@ | ||
39 | </div> | 64 | </div> |
40 | </div> | 65 | </div> |
41 | <script type="text/javascript" src="__STATIC__/js/admin.js"></script> | 66 | <script type="text/javascript" src="__STATIC__/js/admin.js"></script> |
67 | +<script type="text/javascript" src="__STATIC__/js/city-picker.js"></script> | ||
68 | +<script> | ||
69 | + var pla=$.rawCitiesData | ||
70 | + var ci=document.getElementById('city') | ||
71 | + var co=document.getElementById('county') | ||
72 | + | ||
73 | + | ||
74 | + $(function () { | ||
75 | + var pr=document.getElementById('province') | ||
76 | + var arr1=[]; | ||
77 | + var arr2=[]; | ||
78 | + for (i=0;i<pla.length;i++){ | ||
79 | + if (pla[i].name=="{$one.province}"){ | ||
80 | + arr1=pla[i].sub | ||
81 | + for (l=0;l<arr1.length;l++){ | ||
82 | + if (arr1[l].name=="{$one.city}"){ | ||
83 | + arr2=arr1[l].sub | ||
84 | + } | ||
85 | + } | ||
86 | + } | ||
87 | + } | ||
88 | + ff(pr,pla,"{$one.province}") | ||
89 | + ff(ci,arr1,"{$one.city}") | ||
90 | + ff(co,arr2,"{$one.county}") | ||
91 | + }) | ||
92 | + | ||
93 | + //选择省 | ||
94 | + function province1(_this) { | ||
95 | + var arr1=[]; | ||
96 | + for (i=0;i<pla.length;i++){ | ||
97 | + if (pla[i].name==_this.value){ | ||
98 | + arr1=pla[i].sub | ||
99 | + } | ||
100 | + } | ||
101 | + rem(ci) | ||
102 | + rem(co) | ||
103 | + ff(ci,arr1) | ||
104 | + } | ||
105 | + | ||
106 | + //选择市 | ||
107 | + function city1(_this) { | ||
108 | + var pr=document.getElementById('province') | ||
109 | + var arr1=[]; | ||
110 | + for (i=0;i<pla.length;i++){ | ||
111 | + if (pla[i].name==pr.value){ | ||
112 | + for (l=0;l<pla[i].sub.length;l++){ | ||
113 | + if (pla[i].sub[l].name==_this.value){ | ||
114 | + arr1=pla[i].sub[l].sub | ||
115 | + } | ||
116 | + } | ||
117 | + } | ||
118 | + } | ||
119 | + rem(co) | ||
120 | + ff(co,arr1) | ||
121 | + } | ||
122 | + | ||
123 | + //添加option | ||
124 | + function ff(_this,arr,_name) { | ||
125 | + for(i=0;i<arr.length;i++){ | ||
126 | + var opt=document.createElement('option'); | ||
127 | + if (arr[i].name==_name){ | ||
128 | + opt.selected=true; | ||
129 | + } | ||
130 | + opt.text=arr[i].name; | ||
131 | + opt.value=arr[i].name; | ||
132 | + _this.add(opt); | ||
133 | + } | ||
134 | + } | ||
135 | + //删除option | ||
136 | + function rem(_this) { | ||
137 | + for(i=_this.options.length-1;i>=0;i--){ | ||
138 | + _this.remove(i) | ||
139 | + } | ||
140 | + } | ||
141 | +</script> | ||
42 | <script type="text/javascript"> | 142 | <script type="text/javascript"> |
43 | //编辑器路径定义 | 143 | //编辑器路径定义 |
44 | var editorURL = GV.WEB_ROOT; | 144 | var editorURL = GV.WEB_ROOT; |
@@ -271,17 +271,14 @@ | @@ -271,17 +271,14 @@ | ||
271 | $(".settle").click(function(){ | 271 | $(".settle").click(function(){ |
272 | var one=$('.one').filter('.icon-xuanzhong'); | 272 | var one=$('.one').filter('.icon-xuanzhong'); |
273 | if (one.length>0){ | 273 | if (one.length>0){ |
274 | - data=[]; | 274 | + var data=''; |
275 | for (i=0;i<one.length;i++){ | 275 | for (i=0;i<one.length;i++){ |
276 | var ii=one.eq(i).attr('data-id') | 276 | var ii=one.eq(i).attr('data-id') |
277 | - var nm=one.eq(i).attr('data-num') | ||
278 | - data.push([ii,nm]) | 277 | + data+=ii+','; |
279 | } | 278 | } |
280 | - $.ajax({ | ||
281 | - url:"{:url('')}", | ||
282 | - type:'POST', | ||
283 | - data:{data} | ||
284 | - }) | 279 | + |
280 | + data=data.substr(0,data.length-1) | ||
281 | + window.location.href="/cart/zj_cart/cart/id/"+ data +".html" | ||
285 | } | 282 | } |
286 | }) | 283 | }) |
287 | $(".see").click(function(){ | 284 | $(".see").click(function(){ |
@@ -10,11 +10,44 @@ | @@ -10,11 +10,44 @@ | ||
10 | <link rel="stylesheet" href="__INDEX__/css/swiper.min.css"> | 10 | <link rel="stylesheet" href="__INDEX__/css/swiper.min.css"> |
11 | <script type="text/javascript" src="__INDEX__/js/base.js" charset="utf-8"></script> | 11 | <script type="text/javascript" src="__INDEX__/js/base.js" charset="utf-8"></script> |
12 | <title>商品详情</title> | 12 | <title>商品详情</title> |
13 | + <style> | ||
14 | + .swiper-container{ | ||
15 | + height:7.5rem; | ||
16 | + font-size: 0.24rem; | ||
17 | + | ||
18 | + } | ||
19 | + .swiper-pagination-fraction{ | ||
20 | + color:#fff; | ||
21 | + bottom:8px; | ||
22 | + left:3.1rem; | ||
23 | + | ||
24 | + } | ||
25 | + .swiper-pagination-current{ | ||
26 | + color:#fff; | ||
27 | + font-size: 0.38rem; | ||
28 | + } | ||
29 | + .swiper-pagination-current{ | ||
30 | + color:#fff; | ||
31 | + } | ||
32 | + </style> | ||
13 | </head> | 33 | </head> |
14 | <body> | 34 | <body> |
15 | <div class="container"> | 35 | <div class="container"> |
16 | <div class="good_head"> | 36 | <div class="good_head"> |
17 | - <img src="{$data.thumb}" alt=""> | 37 | + <div class="swiper-container"> |
38 | + <div class="swiper-wrapper"> | ||
39 | + <div class="swiper-slide"> | ||
40 | + <img src="__INDEX__/img/gooddetail.png" alt="" > | ||
41 | + </div> | ||
42 | + <div class="swiper-slide"> | ||
43 | + <img src="__INDEX__/img/gooddetail.png" alt="" > | ||
44 | + </div> | ||
45 | + <div class="swiper-slide"> | ||
46 | + <img src="__INDEX__/img/gooddetail.png" alt="" > | ||
47 | + </div> | ||
48 | + </div> | ||
49 | + <div class="swiper-pagination"></div> | ||
50 | + </div> | ||
18 | </div> | 51 | </div> |
19 | <div class="good_info"> | 52 | <div class="good_info"> |
20 | <p class="good_name"> | 53 | <p class="good_name"> |
@@ -95,7 +128,18 @@ | @@ -95,7 +128,18 @@ | ||
95 | </div> | 128 | </div> |
96 | </div> | 129 | </div> |
97 | <script src="__INDEX__/js/jquery.min.js"></script> | 130 | <script src="__INDEX__/js/jquery.min.js"></script> |
131 | +<script type="text/javascript" src="__INDEX__/js/swiper.min.js"></script> | ||
98 | <script> | 132 | <script> |
133 | + //轮播图 | ||
134 | + var mySwiper = new Swiper('.swiper-container', { | ||
135 | + pagination: { | ||
136 | + el: '.swiper-pagination', | ||
137 | + type: 'fraction', | ||
138 | + }, | ||
139 | + autoplay: true,//可选选项,自动滑动 | ||
140 | + | ||
141 | + }) | ||
142 | + | ||
99 | $(".good_content p").click(function(){ | 143 | $(".good_content p").click(function(){ |
100 | console.log($(this).html()) | 144 | console.log($(this).html()) |
101 | $(this).addClass("active"); | 145 | $(this).addClass("active"); |
-
请 注册 或 登录 后发表评论