diff --git a/application/admin/view/default/appconfig/app.html b/application/admin/view/default/appconfig/app.html index 85dbb5f462ffd0824df2d69b45faea7bc3d45346..925783e0424824c918cbf4c00def1a0b62af51b6 100644 --- a/application/admin/view/default/appconfig/app.html +++ b/application/admin/view/default/appconfig/app.html @@ -78,6 +78,15 @@ +
+ + +
+
diff --git a/application/api/controller/Goods.php b/application/api/controller/Goods.php index 006021fbddede707cfafe1682e3106bb7a0715db..0d46c2dff2f13e4a6291b33ccf67da674b58881a 100755 --- a/application/api/controller/Goods.php +++ b/application/api/controller/Goods.php @@ -11,6 +11,7 @@ namespace app\api\controller; use app\service\GoodsService; +use app\service\GoodsCommentsService; /** * 商品 @@ -97,6 +98,9 @@ class Goods extends Common $ret_favor = GoodsService::IsUserGoodsFavor(['goods_id'=>$goods_id, 'user'=>$this->user]); $ret['data'][0]['is_favor'] = ($ret_favor['code'] == 0) ? $ret_favor['data'] : 0; + // 商品评价总数 + $ret['data'][0]['comments_count'] = GoodsCommentsService::GoodsCommentsTotal(['goods_id'=>$goods_id, 'is_show'=>1]); + // 商品访问统计 GoodsService::GoodsAccessCountInc(['goods_id'=>$goods_id]); diff --git a/application/api/controller/Index.php b/application/api/controller/Index.php index 6c0ce9548df1ceebef1948e60757bbac72bafc6a..712b9cd8c8546ed978337b7518b1b3c36b54b95e 100755 --- a/application/api/controller/Index.php +++ b/application/api/controller/Index.php @@ -45,6 +45,10 @@ class Index extends Common */ public function Index() { + // 秒杀 + $common_app_is_limitedtimediscount = (int) MyC('common_app_is_limitedtimediscount'); + + // 返回数据 $result = [ 'navigation' => AppHomeNavService::AppHomeNav(), 'banner_list' => BannerService::Banner(), @@ -54,14 +58,17 @@ class Index extends Common 'common_app_is_enable_answer' => (int) MyC('common_app_is_enable_answer', 1), 'common_app_is_header_nav_fixed' => (int) MyC('common_app_is_header_nav_fixed', 0), 'common_app_is_online_service' => (int) MyC('common_app_is_online_service', 0), + 'common_app_is_limitedtimediscount' => $common_app_is_limitedtimediscount, ]; // 秒杀 - $plugins_class = 'app\plugins\limitedtimediscount\service\Service'; - if(class_exists($plugins_class)) + if($common_app_is_limitedtimediscount == 1) { - $ret = (new $plugins_class())->ApiHomeAd(); - $result['plugins_limitedtimediscount_data'] = $ret['data']; + $ret = CallPluginsMethod('app\plugins\limitedtimediscount\service\Service', 'ApiHomeAd'); + if($ret['code'] == 0) + { + $result['plugins_limitedtimediscount_data'] = $ret['data']; + } } // 返回数据 diff --git a/application/common.php b/application/common.php index 01ccac97c3a97944ae5c316caa45630d94b60a1e..abc5572304b7b69bcf4b46a3ee7244404cf1dc26 100755 --- a/application/common.php +++ b/application/common.php @@ -11,6 +11,24 @@ // 应用公共文件 +/** + * 调用插件方法 - 访问为静态 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @datetime 2019-07-10T22:03:48+0800 + * @param [string] $plugins_class [类命名空间] + * @param [string] $method [方法名称] + */ +function CallPluginsMethod($plugins_class, $method) +{ + if(class_exists($plugins_class)) + { + return $plugins_class::$method(); + } + return DataReturn('类未定义', -1); +} + /** * 判断当前是否小程序环境中 * @author Devil diff --git a/public/appmini/old/alipay/app.js b/public/appmini/old/alipay/app.js index 0741d5d79b621b894988c4ea3aac483721cfa4ab..2261e5e26f6abe69076ea7554dfe45d932443db2 100644 --- a/public/appmini/old/alipay/app.js +++ b/public/appmini/old/alipay/app.js @@ -61,7 +61,7 @@ App({ // 请求地址 request_url: "{{request_url}}", request_url: 'http://tp5-dev.com/', - request_url: 'http://test.shopxo.net/', + //request_url: 'http://test.shopxo.net/', // 基础信息 application_title: "{{application_title}}", diff --git a/public/appmini/old/alipay/app.json b/public/appmini/old/alipay/app.json old mode 100755 new mode 100644 diff --git a/public/appmini/old/alipay/pages/goods-detail/goods-detail.acss b/public/appmini/old/alipay/pages/goods-detail/goods-detail.acss old mode 100755 new mode 100644 index e334424a0cf05d4c8ed734029e9763e3089947d3..ccc5eb32021f9be516a33d6771117e18a9ba720b --- a/public/appmini/old/alipay/pages/goods-detail/goods-detail.acss +++ b/public/appmini/old/alipay/pages/goods-detail/goods-detail.acss @@ -172,26 +172,52 @@ right: 0; } .goods-base .goods-title { - width: calc(100% - 100rpx); font-size: 32rpx; line-height: 44rpx; font-weight: 500; } +.goods-base .goods-share { + position: absolute; + top: 0; + right: 0; + padding: 0 20rpx; +} .goods-base .goods-share image { width: 50rpx; height: 50rpx; } .goods-base .goods-share button { - height: auto; - font-size: 26rpx; - border: 0; - min-width: initial; + height: auto; + font-size: 26rpx; + border: 0; + min-width: initial; +} +.goods-base .goods-share view { + line-height: 40rpx; } .goods-base .goods-price { - margin-top: 10rpx; - padding-right: 160rpx; - position: relative; - max-height: 68rpx; + margin-top: 10rpx; + padding-right: 100rpx; + position: relative; + min-height: 80rpx; +} +.goods-base .goods-price .original-price { + margin-top: 10rpx; + margin-left: 0; +} +.goods-base .base-grid { + margin-top: 15rpx; + padding-top: 15rpx; + border-top: 1px solid #f5f5f5; +} +.goods-base .base-grid view { + width: calc(33.33% - 1px); +} +.goods-base .base-grid view:not(:last-child) { + border-right: 1px solid #f5f5f5; +} +.goods-base .base-grid view .cr-main { + padding-left: 10rpx; } .page { padding-bottom: 100rpx; diff --git a/public/appmini/old/alipay/pages/goods-detail/goods-detail.axml b/public/appmini/old/alipay/pages/goods-detail/goods-detail.axml index cc1f319dcaf417e821d27a4029c16fd8d2ea02ac..9106917ff3b313e8b28be0c0a165991714dc708e 100644 --- a/public/appmini/old/alipay/pages/goods-detail/goods-detail.axml +++ b/public/appmini/old/alipay/pages/goods-detail/goods-detail.axml @@ -17,21 +17,30 @@ - - {{goods.title}} - + {{goods.title}} + + - - {{show_field_price_text}} ¥{{goods.price}} - ¥{{goods.original_price}} - - 销量 {{goods.sales_count}} + ¥{{goods.original_price}} + + + + 累计销量 + {{goods.sales_count}} + + + 浏览次数 + {{goods.access_count}} + + + 累计评论 + {{goods.comments_count}} diff --git a/public/appmini/old/alipay/pages/index/index.acss b/public/appmini/old/alipay/pages/index/index.acss index 66b44bd35c1c9e034e1dbcf3c4482ba141d827fb..8436c8107deafcfb2a1e856e5d88bc2d40c28000 100644 --- a/public/appmini/old/alipay/pages/index/index.acss +++ b/public/appmini/old/alipay/pages/index/index.acss @@ -99,4 +99,107 @@ } .floor-list .goods-list .goods-base .sales-price { font-size: 30rpx; +} + + +/* + * 限时秒杀 + */ + .limitedtimediscount { + background: #fff; + padding: 5rpx 10rpx 20rpx 10rpx; + margin-bottom: 20rpx; +} +.limitedtimediscount .nav-title { + overflow: hidden; + padding: 10rpx 0; +} +.limitedtimediscount .nav-title .nav-icon { + width: 45rpx; + height: 45rpx; + vertical-align: sub; + margin-right: 10rpx; +} +.limitedtimediscount .text-wrapper { + color: #d2364c; + font-size: 36rpx; + font-weight: bold; +} +.limitedtimediscount .countdown { + line-height: 50rpx; + float: right; +} +.limitedtimediscount .countdown view { + margin-right: 0; + float: right; +} +.limitedtimediscount .countdown .timer-title { + color: #666; + margin-right: 10rpx; +} +.limitedtimediscount .countdown .timer-hours { + padding: 0 12rpx; + -moz-border-radius: 8rpx; + border-radius: 8rpx; + background-color: #3A4145; + color: #fff; + min-width: 35rpx; + text-align: center; +} +.limitedtimediscount .countdown .ds { + color: #4B5459; + padding: 0 8rpx; + font-weight: 700; +} + +.limitedtimediscount .goods-list { + width: 100%; + white-space: nowrap; + box-sizing: border-box; + margin-top: 5rpx; +} +.limitedtimediscount .goods-list .item { + width: 460rpx; + height: 605rpx; + border: 1px solid #f5f5f5; + background: white; + display: inline-block; + position: relative; +} +.limitedtimediscount .goods-list .item:not(:last-child) { + margin-right: 10px; +} +.limitedtimediscount .goods-list .item image { + width: 460rpx; + height: 460rpx; +} +.limitedtimediscount .goods-list .item .goods-base { + padding: 0 10rpx; + margin-top: 10rpx; +} +.limitedtimediscount .goods-list .goods-base .goods-title { + font-size: 32rpx; + margin-bottom: 10rpx; +} +.limitedtimediscount .goods-list .goods-base .goods-price { + color: #f40; + font-weight: bold; + font-size: 32rpx; +} +.limitedtimediscount .goods-list .goods-base .goods-original-price { + color: #999; + text-decoration: line-through; + font-size: 24rpx; +} +.limitedtimediscount .goods-list .goods-base button { + background: #d2364c; + border: 0; + color: #fff; + padding: 0 30rpx; + line-height: 65rpx; + font-size: 30rpx; + border-radius: 6rpx; + position: absolute; + right: 15rpx; + bottom: 15rpx; } \ No newline at end of file diff --git a/public/appmini/old/alipay/pages/index/index.axml b/public/appmini/old/alipay/pages/index/index.axml index f5e666669bd3c3165648a60d57590bd6b6600dcc..c719071053c4a57a5870c05eafc6551090cc0fde 100644 --- a/public/appmini/old/alipay/pages/index/index.axml +++ b/public/appmini/old/alipay/pages/index/index.axml @@ -12,15 +12,17 @@ {{common_shop_notice}} - - - - + + - - - + + + + + + + diff --git a/public/appmini/old/alipay/pages/index/index.js b/public/appmini/old/alipay/pages/index/index.js index 37bf845b3f511e4b8d1bde3cb56ade9d2256a5af..5430b04f6464182a44a54f0da0d8a1636d552eb7 100644 --- a/public/appmini/old/alipay/pages/index/index.js +++ b/public/appmini/old/alipay/pages/index/index.js @@ -1,6 +1,7 @@ const app = getApp(); Page({ data: { + load_status: 0, data_list_loding_status: 1, data_bottom_line_status: false, data_list: [], @@ -10,7 +11,12 @@ Page({ common_app_is_enable_search: 1, common_app_is_enable_answer: 1, common_app_is_header_nav_fixed: 0, - load_status: 0, + + // 限时秒杀插件 + common_app_is_limitedtimediscount : 0, + plugins_limitedtimediscount_data: null, + plugins_limitedtimediscount_timer_title: '距离结束', + plugins_limitedtimediscount_is_show_time: true, }, onShow() { @@ -40,6 +46,7 @@ Page({ if (res.data.code == 0) { var data = res.data.data; self.setData({ + data_bottom_line_status: true, banner_list: data.banner_list || [], navigation: data.navigation || [], data_list: data.data_list || [], @@ -48,8 +55,15 @@ Page({ common_app_is_enable_answer: data.common_app_is_enable_answer, common_app_is_header_nav_fixed: data.common_app_is_header_nav_fixed, data_list_loding_status: data.data_list.length == 0 ? 0 : 3, - data_bottom_line_status: true, + common_app_is_limitedtimediscount: data.common_app_is_limitedtimediscount || 0, + plugins_limitedtimediscount_data: data.plugins_limitedtimediscount_data || null, }); + + // 限时秒杀倒计时 + if (this.data.common_app_is_limitedtimediscount == 1 && this.data.plugins_limitedtimediscount_data != null) + { + this.plugins_limitedtimediscount_countdown(); + } } else { self.setData({ data_list_loding_status: 0, @@ -97,6 +111,54 @@ Page({ this.init(); }, + // 显示秒杀插件-倒计时 + plugins_limitedtimediscount_countdown() { + var hours = this.data.plugins_limitedtimediscount_data.time.hours || 0; + var minutes = this.data.plugins_limitedtimediscount_data.time.minutes || 0; + var seconds = this.data.plugins_limitedtimediscount_data.time.seconds || 0; + var self = this; + if (hours > 0 || minutes > 0 || seconds > 0) { + // 秒 + var timer = setInterval(function () { + if (seconds <= 0) { + if (minutes > 0) { + minutes--; + seconds = 59; + } else if (hours > 0) { + hours--; + minutes = 59; + seconds = 59; + } + } else { + seconds--; + } + + self.setData({ + 'plugins_limitedtimediscount_data.time.hours': (hours < 10) ? 0 + hours : hours, + 'plugins_limitedtimediscount_data.time.minutes': (minutes < 10) ? 0 + minutes : minutes, + 'plugins_limitedtimediscount_data.time.seconds': (seconds < 10) ? 0 + seconds : seconds, + }); + + if (hours <= 0 && minutes <= 0 && seconds <= 0) { + // 停止时间 + clearInterval(timer); + + // 活动已结束 + self.setData({ + plugins_limitedtimediscount_timer_title: '活动已结束', + plugins_limitedtimediscount_is_show_time: false, + }); + } + }, 1000); + } else { + // 活动已结束 + self.setData({ + plugins_limitedtimediscount_timer_title: '活动已结束', + plugins_limitedtimediscount_is_show_time: false, + }); + } + }, + // 自定义分享 onShareAppMessage() { return { diff --git a/public/appmini/old/alipay/pages/lib/limitedtimediscount/content.axml b/public/appmini/old/alipay/pages/lib/limitedtimediscount/content.axml new file mode 100644 index 0000000000000000000000000000000000000000..d65ff05e28d53e32c6f99dfb2ed6ce60f8174107 --- /dev/null +++ b/public/appmini/old/alipay/pages/lib/limitedtimediscount/content.axml @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/public/appmini/old/alipay/pages/lib/limitedtimediscount/nav-icon.png b/public/appmini/old/alipay/pages/lib/limitedtimediscount/nav-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..49b0f380cd79db390195e9d43cab7467360bb5f7 Binary files /dev/null and b/public/appmini/old/alipay/pages/lib/limitedtimediscount/nav-icon.png differ diff --git a/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxml b/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxml index 3dda25aa1c70059ba9fbae1dfd76ffa1670c5005..0619f743f5a699e1cceac34f294bedd17b59c83c 100755 --- a/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxml +++ b/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxml @@ -28,19 +28,28 @@ - - {{goods.title}} - + {{goods.title}} + + - 分享 + 分享 - - {{show_field_price_text}} ¥{{goods.price}} - ¥{{goods.original_price}} - - 销量 {{goods.sales_count}} + ¥{{goods.original_price}} + + + + 累计销量 + {{goods.sales_count}} + + + 浏览次数 + {{goods.access_count}} + + + 累计评论 + {{goods.comments_count}} @@ -182,6 +191,6 @@ - + \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxss b/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxss index b3f62ba4788a3342dd9c7fa1c0fc8030f2f86cca..7a08935cf8dd7c58498a78ad057d200969a05772 100755 --- a/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxss +++ b/public/appmini/old/weixin/pages/goods-detail/goods-detail.wxss @@ -174,32 +174,50 @@ .goods-base button { background: #fff; } -.goods-base .goods-price .sales { - position: absolute; - top: 0; - right: 0; -} .goods-base .goods-title { - width: calc(100% - 100rpx); font-size: 32rpx; line-height: 44rpx; font-weight: 500; } .goods-base .goods-share { + position: absolute; + top: 0; + right: 0; padding: 0 20rpx; - margin-bottom: 10rpx; } .goods-base .goods-share image { - width: 50rpx; - height: 50rpx; + width: 50rpx; + height: 50rpx; +} +.goods-base .goods-share view { + line-height: 40rpx; } .goods-base .goods-price { - margin-top: 10rpx; - padding-right: 160rpx; - position: relative; + margin-top: 10rpx; + padding-right: 100rpx; + position: relative; + min-height: 80rpx; +} +.goods-base .goods-price .original-price { + margin-top: 8rpx; + margin-left: 0; +} +.goods-base .base-grid { + margin-top: 15rpx; + padding-top: 15rpx; + border-top: 1px solid #f5f5f5; +} +.goods-base .base-grid view { + width: calc(33.33% - 1px); +} +.goods-base .base-grid view:not(:last-child) { + border-right: 1px solid #f5f5f5; +} +.goods-base .base-grid view .cr-main { + padding-left: 10rpx; } .page { - padding-bottom: 100rpx; + padding-bottom: 100rpx; } /* diff --git a/public/appmini/old/weixin/pages/index/index.js b/public/appmini/old/weixin/pages/index/index.js index bfd7326e3c81867f8b759411ca9ebe96e4fb0d17..0b90bfeb66b357ba267a428f3e368b0ba29f70e9 100755 --- a/public/appmini/old/weixin/pages/index/index.js +++ b/public/appmini/old/weixin/pages/index/index.js @@ -14,7 +14,8 @@ Page({ common_app_is_online_service: 0, // 限时秒杀插件 - plugins_limitedtimediscount_data: [], + common_app_is_limitedtimediscount : 0, + plugins_limitedtimediscount_data: null, plugins_limitedtimediscount_timer_title: '距离结束', plugins_limitedtimediscount_is_show_time: true, }, @@ -55,11 +56,15 @@ Page({ common_app_is_header_nav_fixed: data.common_app_is_header_nav_fixed, data_list_loding_status: data.data_list.length == 0 ? 0 : 3, common_app_is_online_service: data.common_app_is_online_service || 0, - plugins_limitedtimediscount_data: data.plugins_limitedtimediscount_data || [], + common_app_is_limitedtimediscount: data.common_app_is_limitedtimediscount || 0, + plugins_limitedtimediscount_data: data.plugins_limitedtimediscount_data || null, }); - + // 限时秒杀倒计时 - this.plugins_limitedtimediscount_countdown(); + if (this.data.common_app_is_limitedtimediscount == 1 && this.data.plugins_limitedtimediscount_data != null) + { + this.plugins_limitedtimediscount_countdown(); + } } else { self.setData({ data_list_loding_status: 0, diff --git a/public/appmini/old/weixin/pages/index/index.wxml b/public/appmini/old/weixin/pages/index/index.wxml index cabfd6791937dbe38edd20d3a0815690a0b77fea..7a5c8819e580d98a15e10417417fdbd5246fb189 100755 --- a/public/appmini/old/weixin/pages/index/index.wxml +++ b/public/appmini/old/weixin/pages/index/index.wxml @@ -19,36 +19,9 @@ - - - - 限时秒杀 - - - {{plugins_limitedtimediscount_data.time.seconds}} - : - {{plugins_limitedtimediscount_data.time.minutes}} - : - {{plugins_limitedtimediscount_data.time.hours}} - - {{plugins_limitedtimediscount_timer_title}} - - - - - - - - - {{item.title}} - ¥{{item.price}} - ¥{{item.original_price}} - - - - - - + + + @@ -104,7 +77,7 @@ - + diff --git a/public/appmini/old/weixin/pages/index/index.wxss b/public/appmini/old/weixin/pages/index/index.wxss index 6fc3f62e936c4ba7ce034b0499310c0d608dbdcf..a7c4a140890271daf13e81638ec47099d0a4801c 100755 --- a/public/appmini/old/weixin/pages/index/index.wxss +++ b/public/appmini/old/weixin/pages/index/index.wxss @@ -122,7 +122,7 @@ .limitedtimediscount .nav-title .nav-icon { width: 45rpx; height: 45rpx; - vertical-align: top; + vertical-align: sub; margin-right: 10rpx; } .limitedtimediscount .text-wrapper { @@ -184,6 +184,7 @@ } .limitedtimediscount .goods-list .goods-base .goods-title { font-size: 32rpx; + margin-bottom: 10rpx; } .limitedtimediscount .goods-list .goods-base .goods-price { color: #f40; @@ -200,7 +201,7 @@ border: 0; color: #fff; padding: 0 30rpx; - line-height: 50rpx; + line-height: 65rpx; font-size: 30rpx; border-radius: 6rpx; position: absolute; diff --git a/public/appmini/old/weixin/pages/lib/limitedtimediscount/content.wxml b/public/appmini/old/weixin/pages/lib/limitedtimediscount/content.wxml new file mode 100644 index 0000000000000000000000000000000000000000..9d1afaf422a93054db5eda4cdef605a7f4b15ac0 --- /dev/null +++ b/public/appmini/old/weixin/pages/lib/limitedtimediscount/content.wxml @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/lib/limitedtimediscount/nav-icon.png b/public/appmini/old/weixin/pages/lib/limitedtimediscount/nav-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..49b0f380cd79db390195e9d43cab7467360bb5f7 Binary files /dev/null and b/public/appmini/old/weixin/pages/lib/limitedtimediscount/nav-icon.png differ diff --git a/public/appmini/old/weixin/pages/common/online_service.wxml b/public/appmini/old/weixin/pages/lib/online-service/content.wxml similarity index 57% rename from public/appmini/old/weixin/pages/common/online_service.wxml rename to public/appmini/old/weixin/pages/lib/online-service/content.wxml index acfb2f85d5caedb8970870d2ec2983da2da996a9..8828928c34650f93bb17c3f7a2c5932c5954c6cb 100644 --- a/public/appmini/old/weixin/pages/common/online_service.wxml +++ b/public/appmini/old/weixin/pages/lib/online-service/content.wxml @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/public/appmini/old/weixin/images/default-online-service-icon.png b/public/appmini/old/weixin/pages/lib/online-service/icon.png similarity index 100% rename from public/appmini/old/weixin/images/default-online-service-icon.png rename to public/appmini/old/weixin/pages/lib/online-service/icon.png diff --git a/public/appmini/old/weixin/pages/user/user.wxml b/public/appmini/old/weixin/pages/user/user.wxml index b9d14c20a949b8897f55614de49a0e0aa1428b78..5f1402ab3e4c7c55384636ee3f21ff1ec6c278dd 100755 --- a/public/appmini/old/weixin/pages/user/user.wxml +++ b/public/appmini/old/weixin/pages/user/user.wxml @@ -79,7 +79,7 @@ - +