Commit 6341715b478fda82dc4f8bf26ba616e235ee4afd

Authored by 后端研发-田富滉
1 parent 1ffc7382

首次上传

Showing 436 changed files with 51630 additions and 0 deletions

Too many changes.

To preserve performance only 100 of 436 files are displayed.

.gitignore 0 → 100644
  1 +# Windows
  2 +[Dd]esktop.ini
  3 +Thumbs.db
  4 +$RECYCLE.BIN/
  5 +
  6 +# macOS
  7 +.DS_Store
  8 +.fseventsd
  9 +.Spotlight-V100
  10 +.TemporaryItems
  11 +.Trashes
  12 +
  13 +# Node.js
  14 +node_modules/
  15 +.idea/workspace.xml
  16 +.idea/wexinapp.iml
  17 +.idea/vcs.xml
  18 +.idea/modules.xml
  19 +.idea/misc.xml
  20 +.idea/encodings.xml
... ...
api/api.js 0 → 100644
  1 +//这个页面只调用接口
  2 +var rq = require("../utils/request.js")
  3 +var regeneratorRuntime = require('../utils/runtime.js');
  4 +
  5 +const wxRequest = async(params = {}, url) => {
  6 + let data = params.query || {};
  7 + let res = await rq.promiseGet(url,data)
  8 + return res;
  9 +};
  10 +//--检查是否购买自定义模板--
  11 +const check_isbuy = (params) => wxRequest({}, "/store/storemoduleendtime/page?store_id=" + params.store_id + "&type=" + params.type);
  12 +//--获取config--
  13 +const get_config=(stoid)=>wxRequest({},"/api/weshop/store/get/"+stoid);
  14 +//--获取自定义模板首页--
  15 +const get_template_fir=(stoid)=>wxRequest({},"/api/weshop/store_module/gets/"+stoid+"/1/4");
  16 +
  17 +module.exports = {
  18 + check_isbuy,
  19 + get_config,
  20 + get_template_fir,
  21 +}
... ...
app.js 0 → 100644
  1 +var t = require("setting.js"), o = require("./utils/auth.js"), a = require("./utils/request.js"), e = require("./utils/common.js"), ut = require("./utils/util.js");
  2 +var os=t;
  3 +var regeneratorRuntime = require('./utils/runtime.js');
  4 +var api = require("./api/api.js")
  5 +
  6 +//公共方法和变量
  7 +App({
  8 + globalData: {
  9 + setting: t,
  10 + wechatUser: null,
  11 + userInfo: null,
  12 + config: null,
  13 + config2: null,
  14 + code: null,
  15 + heigth:0,
  16 + user_id: 5682068,// 4379287,// null,// 5682068,
  17 + buy_now:null,
  18 + picklist:null, //门店列表
  19 + wuliuprice: null, //物流价格表
  20 + wuliu: null, //物流公司
  21 + baddr:null,
  22 + mobile: null, //记录手机
  23 + getu:null, //记录会员信息
  24 + sessionKey: null,//记录会员信息
  25 + openid: null, //记录会员信息
  26 +
  27 + to_group:null, //参团传递的数据
  28 + wxapp_buy_obj:null,//微信小程序购买的Object
  29 +
  30 + },
  31 + auth: o,
  32 + request: a,
  33 + onLaunch: function() {
  34 + this.initExt();
  35 + var t = this.globalData.setting;
  36 + t.resourceUrl = t.url + "/template/mobile/rainbow";
  37 + var clientWidth = wx.getSystemInfoSync().windowWidth;
  38 + var rpxR = 750 / clientWidth;
  39 + var calc = wx.getSystemInfoSync().windowHeight * rpxR;
  40 + this.globalData.heigth=calc;
  41 +
  42 + var app=this;
  43 + if(!app.globalData.userInfo){
  44 + var user = wx.getStorageSync("userinfo");
  45 + if (user && user.user_id){
  46 + app.globalData.userInfo=wx.getStorageSync("userinfo");
  47 + app.globalData.user_id= app.globalData.userInfo.user_id;
  48 + }
  49 + }
  50 +
  51 + },
  52 +
  53 + //---初始化第三方----
  54 + initExt: function() {
  55 + var tt=t;
  56 + console.log("initExt");
  57 + console.log(11);
  58 + var t = wx.getExtConfigSync(), o = this.globalData.setting;
  59 + console.log(t);
  60 + t.appName ? (o.appName = t.appName, o.stoid = t.stoid) : tt=1;
  61 + },
  62 +
  63 + //首页的第一次登录
  64 + getUserFir(t){
  65 + var s = this;
  66 + if (o.isAuth()) "function" == typeof t && t(s.globalData.userInfo, s.globalData.wechatUser); else {
  67 + if (!o.isAuth()) return o.wxLogin_fir(t);
  68 + if (null == s.globalData.userInfo) {
  69 + return o.wxLogin_fir(t);
  70 + }
  71 + }
  72 + },
  73 +
  74 + getUserInfo: function(t, n, i) {
  75 + var s = this;
  76 + if (o.isAuth()) "function" == typeof t && t(s.globalData.userInfo, s.globalData.wechatUser); else {
  77 + if (!o.isAuth()) return o.auth(t);
  78 + if (null == s.globalData.userInfo){
  79 + return o.auth(t);
  80 + }
  81 + /*---
  82 + a.get("/api/user/userInfo", {
  83 + isShowLoading: void 0 === i || i,
  84 + success: function(o) {
  85 + s.globalData.userInfo = o.data.result, s.globalData.userInfo.head_pic = e.getFullUrl(s.globalData.userInfo.head_pic),
  86 + "function" == typeof t && t(s.globalData.userInfo, s.globalData.wechatUser);
  87 + }
  88 + });--*/
  89 + }
  90 + },
  91 + //----------------获取配置参数--------------------
  92 + getConfig: function(t, o) {
  93 + var e = this; if(this.globalData.config==undefined) this.globalData.config=null;
  94 + this.globalData.config ? "function" == typeof t && t(this.globalData.config) : e.request.get("/api/weshop/store/get/" + e.globalData.setting.stoid, {
  95 + success: function(o) {
  96 + console.log('getConfig');
  97 + if(o.data.code==0){
  98 + e.globalData.config = o.data.data, "function" == typeof t && t(e.globalData.config);
  99 + }
  100 + }
  101 + });
  102 + },
  103 +
  104 + //----------------获取配置参数--------------------
  105 + getConfig2: function (t, o) {
  106 + var e = this;
  107 + this.globalData.config2 && !o ?
  108 + "function" == typeof t && t(this.globalData.config2) : a.get("/api/weshop/storeconfig/get/" + e.globalData.setting.stoid, {
  109 + success: function (o) {
  110 + console.log('getConfig2');
  111 + if (o.data.code == 0) {
  112 + e.globalData.config = o.data.data, "function" == typeof t && t(e.globalData.config);
  113 + }
  114 + }
  115 + });
  116 + },
  117 +
  118 + //----------------获取商家开启的物流--------------------
  119 + getwuliu: function (t, o){
  120 + var th = this, st = this.globalData.setting;
  121 + this.globalData.wuliu && !o ?
  122 + "function" == typeof t && t(this.globalData.wuliu) : a.get("/api/weshop/storeshipping/list", {
  123 + data: { store_id: st.stoid, status: 1, pageSize:600 },
  124 + success: function (o) {
  125 + console.log('getwuliu');
  126 + console.log(o);
  127 + if (o.data.code == 0) {
  128 + var arr = o.data.data.pageData;
  129 + console.log(arr);
  130 + arr.forEach(function(item,index){
  131 + arr[index].code = item.shipping_code; arr[index].name = item.shipping_name;
  132 + })
  133 + th.globalData.wuliu = arr, "function" == typeof t && t(arr);
  134 + }
  135 + }
  136 + });
  137 + },
  138 +
  139 + //----------------获取物流价格表--------------------
  140 + getwuliuprice: function (t, o) {
  141 + var e = this,th=e, st = this.globalData.setting;
  142 + this.globalData.wuliuprice && !o ?
  143 + "function" == typeof t && t(this.globalData.wuliuprice) : a.get("/api/weshop/shippingarea/list",{
  144 + data: { store_id: st.stoid,pageSize: 600 },
  145 + success: function (o) {
  146 + console.log('getwuliuprice');
  147 + console.log(o);
  148 + if (o.data.code == 0) {
  149 + var arr=o.data.data.pageData;
  150 + console.log(arr);
  151 + if (arr.length>0){
  152 + for (var i = 0; i < arr.length;i++){
  153 + arr[i].code = arr[i].shipping_code;
  154 + if (arr[i].json_config != "" && arr[i].json_config != undefined && arr[i].json_config != null )
  155 + arr[i].config = JSON.parse(arr[i].json_config);
  156 + }
  157 + }
  158 + th.globalData.wuliuprice = o.data.data, "function" == typeof t && t(e.globalData.wuliuprice);
  159 + }
  160 + }
  161 + });
  162 + },
  163 + //----------------设置立即购买数组--------------------
  164 + set_b_now: function (d) { this.globalData.buy_now=d;},
  165 + get_b_now: function () {return this.globalData.buy_now},
  166 +
  167 + getPrevPageData: function(t) {
  168 + void 0 === t && (t = 1);
  169 + var o = getCurrentPages();
  170 + return o[o.length - t - 1].data;
  171 + },
  172 + showLoading: function(t, o) {
  173 + void 0 === o && (o = 1500), wx.showToast({
  174 + title: "加载中",
  175 + icon: "loading",
  176 + duration: o,
  177 + mask: !0,
  178 + complete: function() {
  179 + "function" == typeof t && setTimeout(t, o);
  180 + }
  181 + });
  182 + },
  183 + showSuccess: function(t, o, a) {
  184 + void 0 === a && (a = 1e3), wx.showToast({
  185 + title: t,
  186 + icon: "success",
  187 + duration: a,
  188 + mask: !0,
  189 + complete: function() {
  190 + "function" == typeof o && setTimeout(o, a);
  191 + }
  192 + });
  193 + },
  194 + showWarning: function(t, o, a, e) {
  195 + //var imghost=this.globalData.setting.imghost;
  196 + !a && (a = 1500), void 0 === e && (e = !0), wx.showToast({
  197 + title: t,
  198 + mask: e,
  199 + duration: a,
  200 + image:"/images/gt.png",
  201 + complete: function() {
  202 + "function" == typeof o && setTimeout(o, a);
  203 + }
  204 + });
  205 + },
  206 +
  207 + confirmBox: function(t, o) {
  208 + wx.showModal({
  209 + title: t,
  210 + showCancel: !1,
  211 + complete: function() {
  212 + "function" == typeof o && o();
  213 + }
  214 + });
  215 + },
  216 +
  217 + //----------获取所有的门店------------
  218 + get_allsto(func){
  219 + var th=this;
  220 + if (this.globalData.picklist!=null){
  221 + "function" == typeof func && func(th.globalData.picklist);
  222 + }else{
  223 + th.request.get("/api/weshop/pickup/page", {
  224 + data: { store_id: th.globalData.setting.stoid, pageSize: 600 },
  225 + success: function (da) {
  226 + //设置门店
  227 + //th.setData({ allsto: da.data.data.pageData });
  228 + th.globalData.picklist = da.data.data.pageData;
  229 + "function" == typeof func && func(th.globalData.picklist);
  230 + }
  231 + })
  232 + }
  233 + },
  234 +
  235 + //同步化,在调用的时候要await
  236 + async get_isbuy() {
  237 +
  238 + var th=this;
  239 + await api.check_isbuy({ store_id: t.stoid, type: 5 }).then(res=>{
  240 + var o=res;
  241 + if (o.data.code == 0) {
  242 + var ob = { isout: 0, isbuy: 1 };
  243 + var arr = o.data.data.pageData;
  244 + var isbuy = 0;
  245 + //----如果数组不为空----
  246 + if (arr.length > 0) {
  247 + arr.forEach(function (val, ind) {
  248 + if (val.is_sy == 0 && val.type == 5) {
  249 + isbuy = 1;
  250 + var now = ut.gettimestamp();
  251 + if (now > val.end_time) ob.isout = 1;
  252 + return false;
  253 + }
  254 + })
  255 + }
  256 + ob.isbuy = isbuy;
  257 + th.globalData.wxapp_buy_obj=ob;
  258 + }
  259 + })
  260 + },
  261 +
  262 + //--同步化,在调用的时候要await,获取商家config--
  263 + async getConfig_ays(){
  264 + if(this.globalData.config!=null) return false;
  265 + var th=this;
  266 + await api.get_config(this.globalData.setting.stoid).then(res=>{
  267 + var o=res;
  268 + if(o.data.code==0){
  269 + th.globalData.config = o.data.data;
  270 + }
  271 + })
  272 + },
  273 +
  274 + //----智能跳转,判断 非tabBar,tabBar页面的跳转----
  275 + goto:function (url) {
  276 + var arr_tabbar=["/pages/index/index/index","/pages/goods/categoryList/categoryList",
  277 + "/pages/cart/cart/cart","/pages/user/index/index"];
  278 + if(arr_tabbar.indexOf(url)!=-1){
  279 + wx.switchTab({ url: url, }) //跳到tabbar页
  280 + }else{
  281 + wx.navigateTo({ url: url, }) //跳到非tabbar页
  282 + }
  283 + },
  284 +
  285 + //显示提示,word提示内容,type 0失败,提示 1成功
  286 + my_warnning(word,type,that){
  287 + var warn = that.selectComponent("#warn"); //组件的id
  288 + warn.open(word,type);
  289 + return 1;
  290 + }
  291 +
  292 +});
... ...
app.json 0 → 100644
  1 +{
  2 + "pages": [
  3 + "pages/index/index/index",
  4 + "pages/goods/categoryList/categoryList",
  5 + "pages/cart/cart/cart",
  6 + "pages/cart/cart2/cart2",
  7 + "pages/cart/cart4/cart4",
  8 + "pages/goods/goodsInfo/goodsInfo",
  9 + "pages/goods/goodsList/goodsList",
  10 + "pages/goods/search/search",
  11 + "pages/order/refund_order/refund_order",
  12 + "pages/payment/payment/payment",
  13 + "pages/user/index/index",
  14 + "pages/user/order_list/order_list",
  15 + "pages/user/order_detail/order_detail",
  16 + "pages/user/visit_log/visit_log",
  17 + "pages/user/address_list/address_list",
  18 + "pages/user/userinfo/userinfo",
  19 + "pages/user/account/account",
  20 + "pages/user/comment/comment",
  21 + "pages/user/return_goods_list/return_goods_list",
  22 + "pages/user/userinfo_edit/userinfo_edit",
  23 + "pages/user/collect_list/collect_list",
  24 + "pages/user/coupon/coupon",
  25 + "pages/user/checkcoupon/checkcoupon",
  26 + "pages/user/add_address/add_address",
  27 + "pages/user/account_list/account_list",
  28 + "pages/user/points_list/points_list",
  29 + "pages/user/recharge_list/recharge_list",
  30 + "pages/user/withdrawals_list/withdrawals_list",
  31 + "pages/user/add_comment/add_comment",
  32 + "pages/user/return_goods_info/return_goods_info",
  33 + "pages/user/return_goods/return_goods",
  34 + "pages/user/withdrawals/withdrawals",
  35 + "pages/user/recharge/recharge",
  36 + "pages/user/message_notice/message_notice",
  37 + "pages/user/express/express",
  38 + "pages/user/binding_info/binding_info",
  39 + "pages/user/get_user_info/get_user_info",
  40 + "pages/activity/seckill_list/seckill_list",
  41 + "pages/activity/pind_list/pind_list",
  42 + "pages/togoin/togoin",
  43 + "pages/getphone/getphone",
  44 + "pages/team/team_success/team_success",
  45 + "pages/team/team_show/team_show",
  46 + "pages/team/team_ping/team_ping",
  47 + "pages/cart/cart2_pt/cart2_pt",
  48 + "pages/cart/cart_wk/cart_wk",
  49 +
  50 + "pages/user/member/menber",
  51 + "pages/user/member/bring/bring",
  52 + "pages/user/member/bring/msg/msg",
  53 + "pages/user/member/account/account",
  54 + "pages/user/member/account_unable/account_unable",
  55 + "pages/user/member/cash_record/cash_record",
  56 + "pages/user/deposit/deposit",
  57 + "pages/user/deposit/prepaid/prepaid",
  58 + "pages/user/deposit/prepaid/msg/msg",
  59 + "pages/user/coupons/coupons",
  60 + "pages/user/coupons/qr_code/qr_code",
  61 + "pages/user/coupons/query/index",
  62 + "pages/user/coupons/exchange/exchange",
  63 + "pages/user/integral/integral",
  64 + "pages/user/integral/query/index",
  65 + "pages/user/integral/msg/msg",
  66 +
  67 + "pages/user/userqy/userqy",
  68 + "pages/user/user_spsy/user_spsy",
  69 + "pages/user/user_fw/user_fw",
  70 + "pages/user/user_coupon/user_coupon",
  71 + "pages/user/grow_value/grow_value"
  72 +
  73 + ],
  74 + "window": {
  75 + "backgroundTextStyle": "light",
  76 + "navigationBarTextStyle": "black",
  77 + "navigationBarTitleText": "加载中...",
  78 + "navigationBarBackgroundColor": "#ffffff",
  79 + "backgroundColor": "#eeeeee",
  80 + "enablePullDownRefresh": true
  81 + },
  82 + "tabBar": {
  83 + "color": "#6e6d6b",
  84 + "selectedColor": "#f23030",
  85 + "borderStyle": "white",
  86 + "backgroundColor": "#ffffff",
  87 + "list": [
  88 + {
  89 + "pagePath": "pages/index/index/index",
  90 + "text": "首页",
  91 + "iconPath": "images/bar/index.png",
  92 + "selectedIconPath": "images/bar/index_on.png"
  93 + },
  94 + {
  95 + "pagePath": "pages/goods/categoryList/categoryList",
  96 + "text": "分类",
  97 + "iconPath": "images/bar/fl.png",
  98 + "selectedIconPath": "images/bar/fl_on.png"
  99 + },
  100 + {
  101 + "pagePath": "pages/cart/cart/cart",
  102 + "text": "购物车",
  103 + "iconPath": "images/bar/car.png",
  104 + "selectedIconPath": "images/bar/car_on.png"
  105 + },
  106 + {
  107 + "pagePath": "pages/user/index/index",
  108 + "text": "我的",
  109 + "iconPath": "images/bar/user.png",
  110 + "selectedIconPath": "images/bar/user_on.png"
  111 + }
  112 + ]
  113 + },
  114 + "debug": false,
  115 + "sitemapLocation": "sitemap.json"
  116 +}
0 117 \ No newline at end of file
... ...
app.wxss 0 → 100644
  1 +
  2 +.flex {
  3 + display: flex;
  4 +}
  5 +.flex_auto {
  6 + flex: 1;
  7 +}
  8 +.container {
  9 + /*font-family: "iconfont" !important; */
  10 + display: flex; flex-direction: column;
  11 + justify-content: space-between;
  12 + box-sizing: border-box;
  13 +}
  14 +page {
  15 + /*background-color: #f2f2f2;*/
  16 +}
  17 +button {
  18 + border-radius: 0; padding-left: 0;
  19 + padding-right: 0; background-color: transparent;
  20 + font-size: 28rpx;
  21 +}
  22 +.wh100 {
  23 + width: 100%;
  24 + height: 100%;
  25 +}
  26 +.ellipsis-1 {
  27 + overflow: hidden;
  28 + white-space: nowrap;
  29 + text-overflow: ellipsis;
  30 +}
  31 +.ellipsis-2 {
  32 + overflow: hidden;
  33 + text-overflow: ellipsis;
  34 + display: -webkit-box;
  35 + -webkit-box-orient: vertical;
  36 + -webkit-line-clamp: 2;
  37 +}
  38 +.ellipsis-3 {
  39 + overflow: hidden;
  40 + text-overflow: ellipsis;
  41 + display: -webkit-box;
  42 + -webkit-box-orient: vertical;
  43 + -webkit-line-clamp: 3;
  44 +}
  45 +.pd-bg-fff {
  46 + padding: 0 30rpx;
  47 + background-color: #fff;
  48 + font-size: 32rpx;
  49 +}
  50 +.co-red {
  51 + color: #f23030;
  52 +}
  53 +.hide {
  54 + display: none;
  55 +}
  56 +.t-c {
  57 + text-align: center;
  58 +}
  59 +.cover-layer {
  60 + position: fixed;
  61 + left: 0;
  62 + top: 0;
  63 + right: 0;
  64 + bottom: 0;
  65 + z-index: 11;
  66 + background: rgba(0,0,0,0.4);
  67 + width: 100%;
  68 + height: 100%;
  69 +}
  70 +.modal-close {
  71 + position: absolute;
  72 + right: 25rpx;
  73 + top: 25rpx;
  74 +}
  75 +.no-data {
  76 + width: 100%;
  77 + text-align: center;
  78 +}
  79 +.no-data .no-data-title {
  80 + color: #9b9b9b;
  81 + margin-bottom: 30rpx;
  82 + font-size: 35rpx;
  83 +}
  84 +.no-data .cart-image {
  85 + width: 140px;
  86 + height: 140px;
  87 + margin-top: 100rpx;
  88 +}
  89 +.no-data .lookat {
  90 + padding: 16rpx 40rpx;
  91 + background-color: white;
  92 + display: inline;
  93 + margin: 0 auto;
  94 +}
  95 +.big{font-size:32rpx;}
  96 +.one-level-word{
  97 + font-size: 60rpx;
  98 +}
  99 +.two-level-word{
  100 + font-size:40rpx;
  101 +}
  102 +.three-level-word{
  103 + font-size:28rpx;
  104 +}
  105 +.four-level-word{
  106 + font-size:24rpx;
  107 +}
  108 +.five-level-word{
  109 + font-size:20rpx;
  110 +}
  111 +/* 圆 */
  112 +.circle{
  113 + border-radius: 50%;
  114 + -moz-border-radius: 50%;
  115 + -webkit-border-radius: 50%;
  116 +}
  117 +/* 水平垂直 */
  118 +.flex-center{
  119 +display:flex;
  120 +justify-content:center;
  121 +align-items:center;
  122 +}
  123 +/* 水平居中 */
  124 +.flex-level{
  125 + display:flex;
  126 +justify-content:center;
  127 +}
  128 +/* 垂直居中 */
  129 +.flex-vertical{
  130 + display:flex;
  131 +align-items:center;
  132 +}
  133 +/* 水平左垂直对齐 */
  134 +.flex-left-center{
  135 + display:flex;
  136 +justify-content:flex-start;
  137 +align-items:center;
  138 +}
  139 +/* 水平左对齐 */
  140 +.flex-level-left{
  141 + display:flex;
  142 +justify-content:flex-start;
  143 +}
  144 +/* 水平右对齐 */
  145 +.flex-level-right{
  146 + display:flex;
  147 +justify-content:flex-end;
  148 +}
  149 +
  150 +/* 水平右对垂直对齐 */
  151 +.flex-right-vertical{
  152 + display:flex;
  153 +justify-content:flex-end;
  154 +align-items:center;
  155 +}
  156 +/* 水平两端等距离*/
  157 +.flex-equality{
  158 + display:flex;
  159 +justify-content:space-around;
  160 +}
  161 +/* 相对定位 */
  162 +.rel{
  163 + position: relative;
  164 +
  165 +}
  166 +/* 相对定位 */
  167 +.abs{
  168 + position: absolute;
  169 +}
  170 +/* 隐藏溢出 */
  171 +.hidden{
  172 +overflow: hidden;
  173 +}
  174 +/*内容溢出滑动 */
  175 +.slide{
  176 +overflow:auto;
  177 +}
  178 +/* 处于底部 */
  179 +.fixed{
  180 +position:fixed;
  181 + bottom:0;
  182 +}
  183 +/* 中间等距两边贴边 */
  184 +.flex-space-between{
  185 + display: flex;
  186 + justify-content:space-between;
  187 +}
  188 +
  189 +
  190 +/* 垂直居中 中间等距两边贴边 7.13*/
  191 +.flex-vertical-between{
  192 + display:flex;
  193 +align-items:center;
  194 +justify-content:space-between;
  195 +}
  196 +/* 垂直居中 各项周围留有空白 */
  197 +.flex-center-around{
  198 + display:flex;
  199 +align-items:center;
  200 +justify-content:space-around;
  201 +}
  202 +/* 右向箭头 */
  203 +.bg_right{
  204 + border-top: 2rpx solid ;
  205 + border-right: 2rpx solid ;
  206 + transform: rotate(45deg);
  207 + display:inline-block;
  208 + width:18rpx;height:18rpx;border-color:#da0b31;margin-top:6rpx;
  209 +
  210 +}
  211 +/*********************** 7.15 */
  212 +/* 左向箭头 */
  213 +.bg_left{
  214 + border-top: 2rpx solid ;
  215 + border-right: 2rpx solid ;
  216 + transform: rotate(225deg);
  217 + display:inline-block;
  218 +
  219 +}
  220 +
  221 +/* 文字中间加线条 */
  222 +.word-line{
  223 + text-decoration:line-through;
  224 +}
  225 +
  226 +.t-r{
  227 + text-align: right;
  228 +}
  229 +.t-l{
  230 + text-align: right;
  231 +}
  232 +.white{
  233 + color: #fff;
  234 +}
  235 +.img_gray{
  236 + -webkit-filter: grayscale(1);/* Webkit */
  237 + filter:gray;/* IE6-9 */
  238 + filter: grayscale(1);/* W3C */
  239 +}
  240 +.ib{
  241 + display:inline-block;
  242 +}
  243 +
  244 +@font-face {
  245 + font-family: '思源黑体';
  246 + src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'),
  247 + url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
  248 + font-weight: 300;
  249 + font-style: normal;
  250 +}
  251 +
  252 +.fs20{
  253 + font-size: 20rpx;
  254 +}
  255 +.fs22{
  256 + font-size: 22rpx;
  257 +}
  258 +.fs24{
  259 + font-size: 24rpx;
  260 +}
  261 +.fs26{
  262 + font-size: 26rpx;
  263 +}
  264 +.fs28{
  265 + font-size: 28rpx;
  266 +}
  267 +
  268 +.fs30{
  269 + font-size:30rpx;
  270 +}
  271 +.fs32{
  272 + font-size:32rpx;
  273 +}
  274 +.fs35{
  275 + font-size:35rpx;
  276 +}
  277 +.fs45{
  278 + font-size: 45rpx;
  279 +}
  280 +.fs50{
  281 + font-size: 50rpx;
  282 +}
  283 +.fs60{ font-size:60rpx;}
  284 +
  285 +/* 7.26 */
  286 +.xc-wc{
  287 + color: #e4374d;
  288 +}
  289 +.oh{
  290 + overflow: hidden;
  291 +}
  292 +
  293 +.xc-ash{
  294 +color: #b9b9b9;
  295 +}
  296 +.xc-black{
  297 + color: #000;
  298 +}
  299 +
  300 +
  301 +
... ...
components/diy_advertising/diy_advertising.js 0 → 100644
  1 +Component({
  2 + properties: {
  3 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  4 + object:{
  5 + type:Object,
  6 + value:null
  7 + },
  8 +
  9 + },
  10 + data: {
  11 + // 这里是一些组件内部数据
  12 + yc:false,
  13 + btn: 1,
  14 + ad:false,
  15 + autoplay:false,
  16 + interval:5000,
  17 + duration:1000,
  18 + someData: {}
  19 + },
  20 + methods: {
  21 + customMethod: function () { },
  22 + //---智能跳转---
  23 + go_url:function(e){
  24 + var url=e.currentTarget.dataset.url;
  25 + getApp().goto(url);
  26 + }
  27 + }
  28 +})
0 29 \ No newline at end of file
... ...
components/diy_advertising/diy_advertising.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_advertising/diy_advertising.wxml 0 → 100644
  1 +<!--pages/diy_gk/diy_gk.wxml-->
  2 +<!--上下两块-->
  3 +<block wx:if='{{object.style==0}}'>
  4 +<view class="zwp_s1">
  5 + <block wx:for="{{object.data}}" wx:key="{{index}}">
  6 + <view class='s1'>
  7 + <view class='s1_gk'>
  8 + <block wx:if="{{item.src==''}}">
  9 + <text>建议宽度640</text>
  10 + </block>
  11 + <block wx:if="{{item.src!=''}}">
  12 + <view data-url="{{item.wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  13 + <image src="{{item.src}}" mode="widthFix">
  14 + </image>
  15 + </view>
  16 + </block>
  17 + </view>
  18 +
  19 + </view>
  20 + </block>
  21 +</view>
  22 +</block>
  23 +<view class="clear"></view>
  24 +<!--一张图片-->
  25 +<view class='s2' wx:if='{{object.style==1}}'>
  26 +
  27 + <block wx:for="{{object.data}}" wx:key="{{index}}">
  28 + <view class="s2_w">
  29 + <view class='s2_gk'>
  30 + <block wx:if="{{item.src==''}}">
  31 + <text>建议宽度640</text>
  32 + </block>
  33 + <block wx:if="{{item.src!=''}}">
  34 + <view data-url="{{item.wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  35 + <image src="{{item.src}}" mode="widthFix">
  36 + </image>
  37 + </view>
  38 + </block>
  39 +
  40 + </view>
  41 + </view>
  42 + </block>
  43 +
  44 +</view>
  45 +<view class="clear"></view>
  46 +<!--左右两块-->
  47 +<view>
  48 + <block wx:if='{{object.style==2}}'>
  49 +
  50 + <block wx:for="{{object.data}}" wx:key="{{index}}">
  51 + <view class='s3'>
  52 +
  53 + <view class='s3_gk'>
  54 + <block wx:if="{{item.src==''}}">
  55 + <text>300*300</text>
  56 + </block>
  57 + <block wx:if="{{item.src!=''}}">
  58 + <view data-url="{{item.wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  59 + <image src="{{item.src}}" mode="widthFix"></image>
  60 + </view>
  61 + </block>
  62 + </view>
  63 + </view>
  64 + </block>
  65 +
  66 + </block>
  67 +</view>
  68 +<view class="clear"></view>
  69 +<!--2行三列-->
  70 +<view class='s4' wx:if='{{object.style==3}}'>
  71 +
  72 + <block wx:for="{{object.data}}" wx:key="{{index}}">
  73 +
  74 + <view class='s4_gk'>
  75 + <block wx:if="{{item.src==''}}">
  76 + <text>200*200</text>
  77 + </block>
  78 + <block wx:if="{{item.src!=''}}">
  79 + <view data-url="{{item.wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  80 + <image src="{{item.src}}" ></image>
  81 + </view>
  82 + </block>
  83 + </view>
  84 + </block>
  85 +</view>
  86 +<view class="clear"></view>
  87 +
  88 +
  89 +
  90 +<!--第5 3个图 -->
  91 +<view class='s5' wx:if='{{object.style==5}}'>
  92 +
  93 + <view class='s5_gk'>
  94 + <block wx:if="{{object.data[0].src==''}}">
  95 + <text>300*300</text>
  96 + </block>
  97 + <block wx:if="{{object.data[0].src!=''}}">
  98 + <view data-url="{{object.data[0].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  99 + <image src="{{object.data[0].src}}"></image>
  100 + </view>
  101 + </block>
  102 + </view>
  103 +
  104 + <view class='s5_g5'>
  105 + <view class='s5_g5_1'>
  106 + <block wx:if="{{object.data[1].src==''}}">
  107 + <text>300*150</text>
  108 + </block>
  109 + <block wx:if="{{object.data[1].src!=''}}">
  110 + <view data-url="{{object.data[1].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  111 + <image src="{{object.data[1].src}}"></image>
  112 + </view>
  113 + </block>
  114 + </view>
  115 + <view class='s5_g5_2'>
  116 + <block wx:if="{{object.data[2].src==''}}">
  117 + <text>300*150</text>
  118 + </block>
  119 + <block wx:if="{{object.data[2].src!=''}}">
  120 + <view data-url="{{object.data[2].wxapp_imgurl}}" open-type="switchTab" class="s1_gk_a1" bindtap="go_url">
  121 + <image src="{{object.data[2].src}}"></image>
  122 + </view>
  123 + </block>
  124 + </view>
  125 + </view>
  126 +
  127 +</view>
  128 +
  129 +<!--第6 4个图第1个-->
  130 +<view class='s6' wx:if='{{object.style==6}}'>
  131 + <view class='s6_gk6'>
  132 + <view class='s6_gk6_1'>
  133 + <block wx:if="{{object.data[0].src==''}}">
  134 + <text>200*200</text>
  135 + </block>
  136 + <block wx:if="{{object.data[0].src!=''}}">
  137 + <view data-url="{{object.data[0].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  138 + <image src="{{object.data[0].src}}"></image>
  139 + </view>
  140 + </block>
  141 + </view>
  142 + <view class='s6_gk6_2' style='margin-right:8rpx'>
  143 + <block wx:if="{{object.data[1].src==''}}">
  144 + <text>400*200</text>
  145 + </block>
  146 + <block wx:if="{{object.data[1].src!=''}}">
  147 + <view data-url="{{object.data[1].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  148 + <image src="{{object.data[1].src}}"></image>
  149 + </view>
  150 + </block>
  151 + </view>
  152 + </view>
  153 + <!-- 2 -->
  154 + <view class='s6_gk6'>
  155 + <view class='s6_gk6_2'>
  156 + <block wx:if="{{object.data[2].src==''}}">
  157 + <text>400*200</text>
  158 + </block>
  159 + <block wx:if="{{object.data[2].src!=''}}">
  160 + <view data-url="{{object.data[2].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  161 + <image src="{{object.data[2].src}}"></image>
  162 + </view>
  163 + </block>
  164 + </view>
  165 + <view class='s6_gk6_1' style='margin-right:8rpx'>
  166 + <block wx:if="{{object.data[3].src==''}}">
  167 + <text>200*200</text>
  168 + </block>
  169 + <block wx:if="{{object.data[3].src!=''}}">
  170 + <view data-url="{{object.data[3].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  171 + <image src="{{object.data[3].src}}"></image>
  172 + </view>
  173 + </block>
  174 + </view>
  175 + </view>
  176 +</view>
  177 +
  178 +<!--第7 4个图第2个-->
  179 +<view class='s7' wx:if='{{object.style==7}}'>
  180 +
  181 + <view class='s7_gk7'>
  182 + <view class='s7_gk7_1'>
  183 + <block wx:if="{{object.data[0].src==''}}">
  184 + <text>300*150</text>
  185 + </block>
  186 + <block wx:if="{{object.data[0].src!=''}}">
  187 + <view data-url="{{object.data[0].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  188 + <image src="{{object.data[0].src}}"></image>
  189 + </view>
  190 + </block>
  191 + </view>
  192 + <view class='s7_gk7_2'>
  193 +
  194 + <block wx:if="{{object.data[1].src==''}}">
  195 + <text>300*300</text>
  196 + </block>
  197 + <block wx:if="{{object.data[1].src!=''}}">
  198 + <view data-url="{{object.data[1].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  199 + <image src="{{object.data[1].src}}"></image>
  200 + </view>
  201 + </block>
  202 +
  203 + </view>
  204 + </view>
  205 + <!-- 2 -->
  206 + <view class='s7_gk7'>
  207 + <view class='s7_gk7_2'>
  208 + <block wx:if="{{object.data[1].src==''}}">
  209 + <text>300*300</text>
  210 + </block>
  211 + <block wx:if="{{object.data[2].src!=''}}">
  212 + <view data-url="{{object.data[2].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  213 + <image src="{{object.data[2].src}}">
  214 + </image>
  215 + </view>
  216 + </block>
  217 + </view>
  218 + <view class='s7_gk7_1'>
  219 + <block wx:if="{{object.data[3].src==''}}">
  220 + <text>300*150</text>
  221 + </block>
  222 + <block wx:if="{{object.data[3].src!=''}}">
  223 + <view data-url="{{object.data[3].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  224 + <image src="{{object.data[3].src}}">
  225 + </image>
  226 + </view>
  227 + </block>
  228 + </view>
  229 + </view>
  230 +
  231 +</view>
  232 +
  233 +<!--第8 5个图-->
  234 +<view class='s8' wx:if='{{object.style==8}}'>
  235 +
  236 + <!-- <block wx:for="{{object.data}}" > -->
  237 + <!-- <view class='s8_gk8'>
  238 +
  239 + <view class='s8_gk1'>
  240 +
  241 + <block wx:if="{{object.data[0].src==''}}">
  242 + <text>200*200</text>
  243 + </block>
  244 + <block wx:if="{{object.data[0].src!=''}}">
  245 + <view data-url="{{object.data[0].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  246 + <image src="{{object.data[0].src}}">
  247 + </image>
  248 + </view>
  249 + </block>
  250 + </view>
  251 + <view class='s8_gk1'>
  252 + <block wx:if="{{object.data[1].src==''}}">
  253 + <text>200*200</text>
  254 + </block>
  255 + <block wx:if="{{object.data[1].src!=''}}">
  256 + <view data-url="{{object.data[1].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  257 + <image src="{{object.data[1].src}}" mode="widthFix">
  258 + </image>
  259 + </view>
  260 + </block>
  261 + </view>
  262 + </view> -->
  263 +
  264 +
  265 +
  266 +
  267 +
  268 +
  269 + <view class='s8_gk8'>
  270 + <view class='s8_gk1'>
  271 + <block wx:if="{{object.data[0].src==''}}">
  272 + <text>200*200</text>
  273 + </block>
  274 + <block wx:if="{{object.data[0].src!=''}}">
  275 + <view data-url="{{object.data[0].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  276 + <image src="{{object.data[0].src}}" >
  277 + </image>
  278 + </view>
  279 + </block>
  280 + </view>
  281 + <view class='s8_gk1'>
  282 + <block wx:if="{{object.data[1].src==''}}">
  283 + <text>200*200</text>
  284 + </block>
  285 + <block wx:if="{{object.data[1].src!=''}}">
  286 + <view data-url="{{object.data[1].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  287 + <image src="{{object.data[1].src}}" >
  288 + </image>
  289 + </view>
  290 + </block>
  291 + </view>
  292 + </view>
  293 +
  294 + <!-- 2 -->
  295 + <view class='s8_gk8'>
  296 + <view class='s8_gk1'>
  297 + <block wx:if="{{object.data[2].src==''}}">
  298 + <text>200*200</text>
  299 + </block>
  300 + <block wx:if="{{object.data[2].src!=''}}">
  301 + <view data-url="{{object.data[2].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  302 + <image src="{{object.data[2].src}}" >
  303 + </image>
  304 + </view>
  305 + </block>
  306 + </view>
  307 + <view class='s8_gk1'>
  308 + <block wx:if="{{object.data[3].src==''}}">
  309 + <text>200*200</text>
  310 + </block>
  311 + <block wx:if="{{object.data[3].src!=''}}">
  312 + <view data-url="{{object.data[3].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  313 + <image src="{{object.data[3].src}}" >
  314 + </image>
  315 + </view>
  316 + </block>
  317 + </view>
  318 + </view>
  319 +
  320 + <!-- 3 -->
  321 + <view class='s8_gk8'>
  322 + <view class='s8_gk2'>
  323 +
  324 + <block wx:if="{{object.data[4].src==''}}">
  325 + <text>200*420</text>
  326 + </block>
  327 + <block wx:if="{{object.data[4].src!=''}}">
  328 + <view data-url="{{object.data[4].wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  329 + <image src="{{object.data[4].src}}" style='height:492rpx'>
  330 + </image>
  331 + </view>
  332 + </block>
  333 + </view>
  334 + </view>
  335 + <!--</block>-->
  336 +
  337 +</view>
  338 +
  339 +<!--幻灯片-->
  340 +<block wx:if='{{object.style==4}}'>
  341 + <swiper class="swiper" indicator-dots="true" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
  342 + <block wx:for="{{object.data}}" wx:for-index="index" >
  343 + <block wx:if="{{item.src!=''}}">
  344 + <view data-url="{{item.wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  345 + <swiper-item>
  346 + <image src="{{item.src}}" class="slide-image" mode="aspectFill" />
  347 + </swiper-item>
  348 + </view>
  349 + </block>
  350 + <block wx:if="{{item.src==''}}">
  351 + <view url="{{item.wxapp_imgurl}}" class="s1_gk_a1" bindtap="go_url">
  352 + <swiper-item>
  353 + <image src="" class="slide-image" mode="aspectFill" />
  354 + </swiper-item>
  355 + </view>
  356 + </block>
  357 + </block>
  358 + </swiper>
  359 +
  360 +</block>
0 361 \ No newline at end of file
... ...
components/diy_advertising/diy_advertising.wxss 0 → 100644
  1 +/* pages/diy_gk/diy_gk.wxss */
  2 +
  3 +.s1_gk {
  4 + /* background-color: rgb(129, 213, 249); */
  5 + width: 100%;
  6 + color: #fff;
  7 + font-size: 32rpx;
  8 + min-height: 300rpx;
  9 + line-height: 300rpx;
  10 + text-align: center;
  11 +}
  12 +
  13 +.s1_gk image {
  14 + width: 100%;
  15 + height: 100%;
  16 + vertical-align: top;
  17 + padding: 0rpx;
  18 + margin: 0rpx;
  19 +}
  20 +
  21 +.s1 {
  22 + width: 100%;
  23 + display: flex;
  24 +}
  25 +
  26 +.s2_w {
  27 + width: 100%;
  28 + height: 100%;
  29 + display: flex;
  30 +}
  31 +
  32 +.s3_gk image {
  33 + width: 100%;
  34 + height: 100%;
  35 + vertical-align: top;
  36 + padding: 0rpx;
  37 + margin: 0rpx;
  38 +}
  39 +
  40 +.s5_gk image {
  41 + width: 100%;
  42 + height: 100%;
  43 + vertical-align: top;
  44 + padding: 0rpx;
  45 + margin: 0rpx;
  46 +}
  47 +
  48 +.s5_g5_1 image {
  49 + width: 100%;
  50 + height: 100%;
  51 + vertical-align: top;
  52 + padding: 0rpx;
  53 + margin: 0rpx;
  54 +}
  55 +
  56 +.s6 image {
  57 + width: 100%;
  58 + height: 100%;
  59 + vertical-align: top;
  60 + padding: 0rpx;
  61 + margin: 0rpx;
  62 +}
  63 +
  64 +.s8_gk8 image {
  65 + width: 100%;
  66 + height: 240rpx;
  67 + vertical-align: top;
  68 + padding: 0rpx;
  69 + margin: 0rpx;
  70 +}
  71 +
  72 +.s7_gk7 image {
  73 + width: 100%;
  74 + height: 100%;
  75 + vertical-align: top;
  76 + padding: 0rpx;
  77 + margin: 0rpx;
  78 +}
  79 +
  80 +.s5_g5_2 image {
  81 + width: 100%;
  82 + height: 100%;
  83 + vertical-align: top;
  84 + padding: 0rpx;
  85 + margin: 0rpx;
  86 +}
  87 +
  88 +.s4_gk image {
  89 + width: 100%;
  90 + height: 100%;
  91 + vertical-align: top;
  92 + padding: 0rpx;
  93 + margin: 0rpx;
  94 +}
  95 +
  96 +.s1_gk1 {
  97 + /* background-color: rgb(255, 129, 149); */
  98 + width: 100%;
  99 + color: #fff;
  100 + font-size: 32rpx;
  101 + min-height: 300rpx;
  102 + line-height: 300rpx;
  103 + text-align: center;
  104 +}
  105 +
  106 +.s2_gk {
  107 + /* background-color: rgb(129, 213, 249); */
  108 + width: 98%;
  109 + color: #fff;
  110 + font-size: 32rpx;
  111 + min-height: 300rpx;
  112 + line-height: 300rpx;
  113 + text-align: center;
  114 + margin: 8rpx;
  115 +}
  116 +
  117 +.s2_gk image {
  118 + width: 100%;
  119 + height: 100%;
  120 + vertical-align: top;
  121 + padding: 0rpx;
  122 + margin: 0rpx;
  123 +}
  124 +
  125 +.s2_gk1 {
  126 + /* background-color: rgb(255, 129, 149); */
  127 + width: 97%;
  128 + color: #fff;
  129 + font-size: 32rpx;
  130 + min-height: 300rpx;
  131 + line-height: 300rpx;
  132 + text-align: center;
  133 + margin: 10rpx;
  134 +}
  135 +
  136 +.s3 {
  137 + width: 101%;
  138 + /* min-height: 20rpx; */
  139 +}
  140 +
  141 +.s3_gk {
  142 + /* background-color: rgb(129, 213, 249); */
  143 + width: 48%;
  144 + color: #fff;
  145 + font-size: 32rpx;
  146 + line-height: 300rpx;
  147 + text-align: center;
  148 + float: left;
  149 + margin-left: 8rpx;
  150 + margin-bottom: 8rpx;
  151 +}
  152 +
  153 +.s3_gk1 {
  154 + /* background-color: rgb(255, 129, 149); */
  155 + width: 48%;
  156 + color: #fff;
  157 + font-size: 32rpx;
  158 + line-height: 300rpx;
  159 + text-align: center;
  160 + float: left;
  161 + margin-left: 10rpx;
  162 +}
  163 +
  164 +.s4_gk {
  165 + /* background-color: rgb(129, 213, 249); */
  166 + width: 32%;
  167 + color: #fff;
  168 + font-size: 32rpx;
  169 + height: 240rpx;
  170 + text-align: center;
  171 + margin-left: 1%;
  172 + float: left;
  173 + margin-bottom: 8rpx;
  174 +}
  175 +
  176 +.s4_gk1 {
  177 + /* background-color: rgb(255, 129, 149); */
  178 + width: 30%;
  179 + color: #fff;
  180 + font-size: 32rpx;
  181 + line-height: 200rpx;
  182 + text-align: center;
  183 + margin: 6rpx;
  184 + float: left;
  185 +}
  186 +
  187 +.s5 {
  188 + display: flex;
  189 + margin: 0px;
  190 + margin-bottom: 8rpx;
  191 +}
  192 +
  193 +.s5_gk {
  194 + /* background-color: rgb(129, 213, 249); */
  195 + width: 366rpx;
  196 + height: 390rpx;
  197 + color: #fff;
  198 + font-size: 32rpx;
  199 + text-align: center;
  200 + flex: 1;
  201 + margin-left: 6rpx;
  202 +}
  203 +
  204 +.s5_g5 {
  205 + flex: 1;
  206 + /* background-color: white; */
  207 + width: 366rpx;
  208 + height: 390rpx;
  209 + margin: 0 6rpx;
  210 +}
  211 +
  212 +.s5_g5_1 {
  213 + width: 100%;
  214 + height: 192rpx;
  215 + margin-bottom: 6rpx;
  216 + line-height: 150rpx;
  217 + text-align: center;
  218 + color: #fff;
  219 + font-size: 32rpx;
  220 +}
  221 +
  222 +.s5_g5_2 {
  223 + width: 100%;
  224 + height: 192rpx;
  225 + line-height: 150rpx;
  226 + text-align: center;
  227 + color: #fff;
  228 + font-size: 32rpx;
  229 +}
  230 +
  231 +.s6 {
  232 + width: 100%;
  233 + color: #fff;
  234 + font-size: 32rpx;
  235 + margin-bottom: 8rpx;
  236 +}
  237 +
  238 +.s6_gk6 {
  239 + width: 100%;
  240 + display: flex;
  241 + margin-top: 8rpx;
  242 +}
  243 +
  244 +.s6_gk6_1 {
  245 + width: 242rpx;
  246 + height: 242rpx;
  247 + margin-left: 8rpx;
  248 + text-align: center;
  249 +}
  250 +
  251 +.s6_gk6_2 {
  252 + width: 484rpx;
  253 + height: 242rpx;
  254 + text-align: center;
  255 + margin-left: 8rpx;
  256 +}
  257 +
  258 +.s7 {
  259 + width: 100%;
  260 + color: #fff;
  261 + font-size: 32rpx;
  262 + display: flex;
  263 +}
  264 +
  265 +.s7_gk7 {
  266 + width: 362rpx;
  267 + margin: 0 8rpx;
  268 + /* margin-top: 6rpx; */
  269 +}
  270 +
  271 +.s7_gk7_1 {
  272 + width: 100%;
  273 + height: 181rpx;
  274 + /* background-color: #99cc66; */
  275 + margin-right: 10rpx;
  276 + line-height: 150rpx;
  277 + text-align: center;
  278 + margin-bottom: 8rpx;
  279 +}
  280 +
  281 +.s7_gk7_2 {
  282 + width: 100%;
  283 + height: 362rpx;
  284 + /* background-color: #99cc66; */
  285 + line-height: 300rpx;
  286 + text-align: center;
  287 + margin-right: 10rpx;
  288 + margin-bottom: 8rpx;
  289 +}
  290 +
  291 +.s8 {
  292 + width: 100%;
  293 + color: #fff;
  294 + font-size: 32rpx;
  295 + display: flex;
  296 +}
  297 +
  298 +.s8_gk8 {
  299 + flex: 1;
  300 + width: 30%;
  301 +}
  302 +
  303 +.s1_gk_a1 {
  304 + display: inline;
  305 + width: auto;
  306 + height: auto;
  307 +}
  308 +
  309 +.s8_gk1 {
  310 + /* background-color: rgb(255, 129, 149); */
  311 + width: 96%;
  312 + color: #fff;
  313 + font-size: 32rpx;
  314 + line-height: 200rpx;
  315 + text-align: center;
  316 + margin: 6rpx;
  317 + margin-bottom: 10rpx;
  318 +}
  319 +
  320 +.s8_gk2 {
  321 + /* background-color: rgb(255, 129, 149); */
  322 + width: 94%;
  323 + color: #fff;
  324 + font-size: 32rpx;
  325 + line-height: 496rpx;
  326 + text-align: center;
  327 + margin: 6rpx;
  328 +}
  329 +
  330 +/**index.wxss**/
  331 +
  332 +.swiper {
  333 + height: 400rpx;
  334 + width: 98%;
  335 + padding:0 7rpx;
  336 + padding-bottom: 7rpx;
  337 + padding-top: 7rpx;
  338 + /* background-color: palevioletred; */
  339 +}
  340 +
  341 +.swiper image {
  342 + height: 100%;
  343 + width: 100%;
  344 + margin: 0;
  345 +}
  346 +
  347 +
  348 +.zwp_s1{
  349 + margin-bottom: 8rpx;
  350 +}
0 351 \ No newline at end of file
... ...
components/diy_assist/diy_assist.js 0 → 100644
  1 +Component({
  2 + properties: {
  3 + object: {
  4 + type: Object,
  5 + value: null
  6 + },
  7 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  8 +
  9 + },
  10 + data: {
  11 + // 这里是一些组件内部数据
  12 + someData: {}
  13 + },
  14 + methods: {
  15 + // 这里是一个自定义方法
  16 + customMethod() { }
  17 + }
  18 +})
0 19 \ No newline at end of file
... ...
components/diy_assist/diy_assist.json 0 → 100644
  1 +{
  2 + "component": true
  3 + }
0 4 \ No newline at end of file
... ...
components/diy_assist/diy_assist.wxml 0 → 100644
  1 +<view class='assist' style='height:{{object.height}}rpx;background-color:{{object.bgcolor}}'></view>
0 2 \ No newline at end of file
... ...
components/diy_assist/diy_assist.wxss 0 → 100644
  1 +.assist{
  2 + width: 100%;
  3 + min-height:90rpx;
  4 + border:1px solid #00F;
  5 +}
0 6 \ No newline at end of file
... ...
components/diy_goodsGroup/diy_goodsGroup.js 0 → 100644
  1 +// var e = function(e) {
  2 +// return e && e.__esModule ? e : {
  3 +// default: e
  4 +// };
  5 +// }(require("../../utils/LoadMore3.js")),
  6 +// n = new e.default(),
  7 +var t = getApp(),
  8 + a = t.request,
  9 + o = t.globalData.setting,
  10 + os = o,
  11 + i = require("../../utils/util.js"),
  12 + ut = i,
  13 + s = require("../../utils/common.js");
  14 +var regeneratorRuntime = require('../../utils/runtime.js');
  15 +
  16 +Component({
  17 + properties: {
  18 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  19 + object: {
  20 + type: Object,
  21 + value: null,
  22 + },
  23 +
  24 + },
  25 + data: {
  26 + // 这里是一些组件内部数据
  27 + group: false,
  28 + imghost: o.imghost,
  29 + is_recommend: 0,
  30 + is_hot: 0,
  31 + is_new: 0,
  32 + baseUrl: "/api/weshop/goods/page",
  33 + resourceUrl: t.globalData.setting.resourceUrl,
  34 + currentPage: 1,
  35 + requestData: null,
  36 + requestUrl: "",
  37 + goods_array: null,
  38 + total: null,
  39 + prom_id: 0,
  40 + classstyle_id: null,
  41 + g_id: null,
  42 + wgroup: null,
  43 + goods_btn: null,
  44 + loadText: '加载更多',
  45 + someData: {},
  46 + goodscount: null,
  47 + firist_type_data: null,
  48 + firist_type_curr: 0,
  49 + },
  50 +
  51 + ready: function () {
  52 + console.log("ready");
  53 + this.data.classstyle_id = this.data.object.classstyle;
  54 + this.data.goodscount = this.data.object.goodscount;
  55 + console.log(this.data.classstyle_id);
  56 + this.data.wgroup = this.data.object.wgroup;
  57 + console.log(this.data.wgroup);
  58 + this.setData({
  59 + classstyle_id: this.data.object.classstyle
  60 + })
  61 + if (this.data.object.goodsclass == 1) {
  62 + this.data.is_recommend = 1
  63 + }
  64 + if (this.data.object.goodsclass == 2) {
  65 + this.data.is_hot = 1
  66 + }
  67 + if (this.data.object.goodsclass == 3) {
  68 + this.data.is_new = 1
  69 + }
  70 + this.data.requestData = new Array();
  71 + this.data.g_id = this.data.object.data;
  72 + var arr = [];
  73 +
  74 + for (var i = 0; i < this.data.g_id.length; i += this.data.goodscount) {
  75 + arr.push(this.data.g_id.slice(i, i + this.data.goodscount));
  76 + }
  77 + this.data.firist_type_data = arr;
  78 + console.log("firist_type_data");
  79 + console.log(this.data.firist_type_data);
  80 + this.init(this.data.classstyle_id, this.data.wgroup);
  81 +
  82 + },
  83 + methods: {
  84 + // 这里是一个自定义方法
  85 +
  86 + init: function (classstyle_id, wgroup) {
  87 + var th = this;
  88 + var g_id = this.data.g_id;
  89 + if (classstyle_id == 1) {
  90 + //手动选择的时候
  91 + g_id = this.data.firist_type_data[th.data.firist_type_curr];
  92 + th.data.firist_type_curr++;
  93 + }
  94 +
  95 + var th = this,
  96 + app = getApp(),
  97 + index = 0,
  98 + gdata = [];
  99 + switch (classstyle_id) {
  100 + case "1":
  101 + g_id.forEach(function (val, ind) {
  102 + var item = {};
  103 + var prom_id = null;
  104 + console.log(val.goodsid);
  105 + app.request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + val.goodsid, {}).then(res => {
  106 + //商品地址
  107 + var goods = res.data.data;
  108 + th.setData({
  109 + goods_btn: res.data.data
  110 + })
  111 +
  112 + item.goods_name = goods.goods_name;
  113 + item.goods_img = th.data.imghost + goods.original_img;
  114 + item.market_price = goods.market_price;
  115 + item.shop_price = goods.shop_price;
  116 + item.sales_sum = goods.sales_sum;
  117 + item.goods_id = goods.goods_id;
  118 + prom_id = res.data.data.prom_id;
  119 +
  120 + var prom_type = res.data.data.prom_type; //0普通商品 1秒杀 6拼单
  121 +
  122 + var url = "";
  123 + if (prom_type == 1) {
  124 + url = "/api/weshop/teamlist/get/" + os.stoid + "/" + prom_id;
  125 + } else if (prom_type == 6) {
  126 + url = "/api/ms/flash_sale/get/" + os.stoid + "/" + prom_id;
  127 + }
  128 + return app.request.promiseGet(url, {})
  129 + }).then(res => {
  130 + index++;
  131 + var prom = res.data.data;
  132 + if (prom != null) {
  133 + item.shop_price = res.data.data.price;
  134 + }
  135 + th.data.requestData.push(item);
  136 + th.setData({
  137 + goods_array: th.data.requestData,
  138 + });
  139 +
  140 + if (th.data.firist_type_curr == th.data.firist_type_data.length) {
  141 + th.setData({
  142 + goods_btn: []
  143 + });
  144 + }
  145 + })
  146 + })
  147 + break;
  148 + case "2":
  149 + console.log(2222222222222222222);
  150 + var item = {};
  151 + app.request.promiseGet("/api/weshop/goods/page", {
  152 + data: {
  153 + store_id: 1,
  154 + is_recommend: th.data.is_recommend,
  155 + is_hot: th.data.is_hot,
  156 + is_new: th.data.is_new,
  157 + pageSize: th.data.goodscount ,
  158 + page: th.data.currentPage,
  159 + }
  160 + }).then(res => {
  161 + //商品地址
  162 + var goods = res.data.data.pageData;
  163 + th.setData({
  164 + goods_btn: res.data.data.pageData,
  165 + total: res.data.data.total
  166 + })
  167 + console.log(66666666677777777777);
  168 + console.log(res.data.data.total);
  169 + console.log(res.data);
  170 + console.log(this.data.total);
  171 + th.data.currentPage++;
  172 +
  173 + goods.forEach(function (val, ind) {
  174 + var item = {};
  175 + var prom_id = null;
  176 + console.log(val.goodsid);
  177 + app.request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + val.goods_id, {}).then(res => {
  178 + //商品地址
  179 + var goods = res.data.data;
  180 +
  181 + item.goods_name = goods.goods_name;
  182 + item.goods_img = th.data.imghost + goods.original_img;
  183 + item.market_price = goods.market_price;
  184 + item.shop_price = goods.shop_price;
  185 + item.sales_sum = goods.sales_sum;
  186 + item.goods_id = goods.goods_id;
  187 + prom_id = res.data.data.prom_id;
  188 +
  189 + var prom_type = res.data.data.prom_type; //0普通商品 1秒杀 6拼单
  190 +
  191 + var url = "";
  192 + if (prom_type == 1) {
  193 + url = "/api/weshop/teamlist/get/" + os.stoid + "/" + prom_id;
  194 + } else if (prom_type == 6) {
  195 + url = "/api/ms/flash_sale/get/" + os.stoid + "/" + prom_id;
  196 + }
  197 + return app.request.promiseGet(url, {})
  198 + }).then(res => {
  199 + var prom = res.data.data;
  200 + if (prom != null) {
  201 + item.shop_price = res.data.data.price;
  202 + }
  203 + th.data.requestData.push(item);
  204 + th.setData({
  205 + goods_array: th.data.requestData,
  206 + page: th.data.currentPage-1,
  207 + });
  208 + })
  209 + })
  210 +
  211 + })
  212 +
  213 + break;
  214 + case "3":
  215 + var item = {};
  216 + app.request.promiseGet("/api/weshop/goodsGroup/pageGoodsList", {
  217 + data: {
  218 + store_id: 1,
  219 + gpid: wgroup,
  220 + pageSize: th.data.goodscount,
  221 + page: th.data.currentPage,
  222 + }
  223 + }).then(res => {
  224 + //商品地址
  225 + var goods = res.data.data.pageData;
  226 + console.log("333333333zwp" );
  227 + console.log(res.data.data);
  228 + th.setData({
  229 + goods_btn: res.data.data.pageData,
  230 + total: res.data.data.total
  231 + })
  232 + console.log("goods_btn");
  233 + console.log(th.data.goods_btn);
  234 + th.data.currentPage++;
  235 + goods.forEach(function (val, ind) {
  236 + var item = {};
  237 + var prom_id = null;
  238 + console.log(val.goodsid);
  239 + app.request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + val.goods_id, {}).then(res => {
  240 + //商品地址
  241 + var goods = res.data.data;
  242 + console.log("goods");
  243 + console.log(goods);
  244 + // th.setData({
  245 + // goods_btn: res.data.data
  246 + // })
  247 + item.goods_name = goods.goods_name;
  248 + item.goods_img = th.data.imghost + goods.original_img;
  249 + item.market_price = goods.market_price;
  250 + item.shop_price = goods.shop_price;
  251 + item.sales_sum = goods.sales_sum;
  252 + item.goods_id = goods.goods_id;
  253 + prom_id = res.data.data.prom_id;
  254 +
  255 + var prom_type = res.data.data.prom_type; //0普通商品 1秒杀 6拼单
  256 +
  257 + var url = "";
  258 + if (prom_type == 1) {
  259 + url = "/api/weshop/teamlist/get/" + os.stoid + "/" + prom_id;
  260 + } else if (prom_type == 6) {
  261 + url = "/api/ms/flash_sale/get/" + os.stoid + "/" + prom_id;
  262 + }
  263 + return app.request.promiseGet(url, {})
  264 + }).then(res => {
  265 + var prom = res.data.data;
  266 + if (prom != null) {
  267 + item.shop_price = res.data.data.price;
  268 + }
  269 + th.data.requestData.push(item);
  270 + th.setData({
  271 + goods_array: th.data.requestData,
  272 + page: th.data.currentPage-1,
  273 + });
  274 + })
  275 + })
  276 + })
  277 + break;
  278 + }
  279 + },
  280 + setLoading: function () {
  281 + var that = this;
  282 + that.init(that.data.classstyle_id, that.data.wgroup);
  283 + },
  284 +
  285 + //图片失败,默认图片
  286 + bind_bnerr3: function (e) {
  287 + var _errImg = e.target.dataset.errorimg;
  288 + var _errObj = {};
  289 + _errObj[_errImg] = this.data.imghost+"/public/images/default_goods_image_240.gif";
  290 + this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
  291 + },
  292 + }
  293 +})
0 294 \ No newline at end of file
... ...
components/diy_goodsGroup/diy_goodsGroup.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_goodsGroup/diy_goodsGroup.wxml 0 → 100644
  1 +<!--pages/diy_zs/diy_zs.wxml-->
  2 +<!--1个-->
  3 +<view class="zs_goods_wai">
  4 + <!--右下角-->
  5 +
  6 + <block wx:if='{{object.column==1 && object.position==4}}'>
  7 + <block wx:for="{{goods_array}}" >
  8 + <view class='zs_goods'>
  9 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  10 + <view class='zs_top'>
  11 + <block>
  12 + <image class='zs_t_img' src="{{item.goods_img}}"
  13 + data-errorimg="goods_array[{{index}}].goods_img"
  14 + binderror="bind_bnerr3"
  15 + ></image></block>
  16 +
  17 + <block wx:if="{{object.goodicon==3}}">
  18 + <image class='zs_t1' wx:if="{{ object.position==4}}"
  19 + src='{{object.customicon}}'></image>
  20 + <!--<image class='zs_t1' wx:if="{{object.position==1}}"-->
  21 + <!--src='{{object.customicon}}'></image>-->
  22 + <!--<image class='zs_t1' wx:if="{{ object.position==1}}"-->
  23 + <!--src='{{object.customicon}}'></image>-->
  24 + <!--<image class='zs_t1' wx:if="{{object.position==1}}"-->
  25 + <!--src='{{object.customicon}}'></image>-->
  26 + </block>
  27 + <block wx:if="{{object.goodicon==1}}">
  28 + <image class='zs_t1' src=''></image>
  29 + </block>
  30 + <block wx:if="{{object.goodicon==2}}">
  31 + <image class='zs_t1' wx:if="{{object.styleicon==1}}"
  32 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  33 + <image class='zs_t1' wx:if="{{object.styleicon==2}}"
  34 + src='{{imghost}}/miniapp/images/hot.png'></image>
  35 + <image class='zs_t1' wx:if="{{object.styleicon==3}}"
  36 + src='{{imghost}}/miniapp/images/new.png'></image>
  37 + <image class='zs_t1' wx:if="{{object.styleicon==4}}"
  38 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  39 + </block>
  40 + </view>
  41 + <view class='zs_center'>
  42 +
  43 + <view class='zs_wz1' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  44 + <view class='zs_wz2' wx:if="{{object.goodsprice}}">
  45 + <view class='wz_red'>¥{{item.shop_price}}</view>
  46 + <view class='del'>¥{{item.market_price}}</view>
  47 + </view>
  48 + <!-- <view class='zs_wz3'>美妆价:¥9.00</view>
  49 + <view class='zs_wz4'>等级价:¥8.00</view> -->
  50 + <view class='zs_wz5' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  51 +
  52 + </view>
  53 + </navigator>
  54 + </view>
  55 + </block>
  56 + </block>
  57 +
  58 + <!-- 右上角 -->
  59 + <block wx:if='{{object.column==1 && object.position==2}}'>
  60 + <block wx:for="{{goods_array}}" >
  61 + <view class='zs_goods' >
  62 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  63 + <view class='zs_top'>
  64 +
  65 + <block>
  66 + <image class='zs_t_img' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  67 + binderror="bind_bnerr3"></image>
  68 + </block>
  69 +
  70 + <!-- <image class='zs_t2' src='http://jmh.xinda100.cn/public/static/images/model/Recommend.png'></image> -->
  71 + <block wx:if="{{object.goodicon==3}}">
  72 + <image class='zs_t2' wx:if="{{object.position==2}}"
  73 + src='{{object.customicon}}'></image>
  74 + <!--<image class='zs_t2' wx:if="{{object.styleicon==2 && object.position==2}}"-->
  75 + <!--src='{{object.customicon}}'></image>-->
  76 + <!--<image class='zs_t2' wx:if="{{object.styleicon==3 && object.position==2}}"-->
  77 + <!--src='{{object.customicon}}'></image>-->
  78 + <!--<image class='zs_t2' wx:if="{{object.styleicon==4 && object.position==2}}"-->
  79 + <!--src='{{object.customicon}}'></image>-->
  80 + </block>
  81 + <block wx:if="{{object.goodicon==1}}">
  82 + <image class='zs_t2' src=''></image>
  83 + </block>
  84 + <block wx:if="{{object.goodicon==2}}">
  85 + <image class='zs_t2' wx:if="{{object.styleicon==1}}"
  86 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  87 + <image class='zs_t2' wx:if="{{object.styleicon==2 }}"
  88 + src='{{imghost}}/miniapp/images/hot.png'></image>
  89 + <image class='zs_t2' wx:if="{{object.styleicon==3}}"
  90 + src='{{imghost}}/miniapp/images/new.png'></image>
  91 + <image class='zs_t2' wx:if="{{object.styleicon==4 }}"
  92 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  93 + </block>
  94 + </view>
  95 +
  96 + <view class='zs_center'>
  97 + <view class='zs_wz1' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  98 + <view class='zs_wz2' wx:if="{{object.goodsprice}}">
  99 + <view class='wz_red'>¥{{item.shop_price}}</view>
  100 + <view class='del'>¥{{item.market_price}}</view>
  101 + </view>
  102 + <view class='zs_wz5' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  103 +
  104 + </view>
  105 + </navigator>
  106 +
  107 + </view>
  108 + </block>
  109 + </block>
  110 + <!-- 左上角 -->
  111 + <block wx:if='{{object.column==1 && object.position==1}}'>
  112 + <block wx:for="{{goods_array}}">
  113 + <view class='zs_goods'>
  114 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  115 + <view class='zs_top'>
  116 +
  117 + <block>
  118 + <image class='zs_t_img' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  119 + binderror="bind_bnerr3"></image>
  120 + </block>
  121 + <!-- <image class='zs_t3' src='http://jmh.xinda100.cn/public/static/images/model/hot.png'></image> -->
  122 + <block wx:if="{{object.goodicon==3}}">
  123 + <image class='zs_t3' wx:if="{{ object.position==1}}"
  124 + src='{{object.customicon}}'></image>
  125 + <!--<image class='zs_t3' wx:if="{{object.styleicon==2 && object.position==3}}"-->
  126 + <!--src='{{object.customicon}}'></image>-->
  127 + <!--<image class='zs_t3' wx:if="{{object.styleicon==3 && object.position==3}}"-->
  128 + <!--src='{{object.customicon}}'></image>-->
  129 + <!--<image class='zs_t3' wx:if="{{object.styleicon==4 && object.position==3}}"-->
  130 + <!--src='{{object.customicon}}'></image>-->
  131 + </block>
  132 + <block wx:if="{{object.goodicon==1}}">
  133 + <image class='zs_t3' src=''></image>
  134 + </block>
  135 + <block wx:if="{{object.goodicon==2}}">
  136 + <image class='zs_t3' wx:if="{{object.styleicon==1}}"
  137 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  138 + <image class='zs_t3' wx:if="{{object.styleicon==2 }}"
  139 + src='{{imghost}}/miniapp/images/hot.png'></image>
  140 + <image class='zs_t3' wx:if="{{object.styleicon==3}}"
  141 + src='{{imghost}}/miniapp/images/new.png'></image>
  142 + <image class='zs_t3' wx:if="{{object.styleicon==4 }}"
  143 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  144 + </block>
  145 + </view>
  146 +
  147 + <view class='zs_center'>
  148 +
  149 + <view class='zs_wz1' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  150 + <view class='zs_wz2' wx:if="{{object.goodsprice}}">
  151 + <view class='wz_red'>¥{{item.shop_price}}</view>
  152 + <view class='del'>¥{{item.market_price}}</view>
  153 + </view>
  154 + <view class='zs_wz5' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  155 +
  156 + </view>
  157 + </navigator>
  158 +
  159 + </view>
  160 + </block>
  161 + </block>
  162 + <!-- 左下角 -->
  163 + <block wx:if='{{object.column==1 && object.position==3}}'>
  164 + <block wx:for="{{goods_array}}" >
  165 + <view class='zs_goods' >
  166 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  167 + <view class='zs_top'>
  168 +
  169 + <block>
  170 + <image class='zs_t_img' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  171 + binderror="bind_bnerr3"></image>
  172 + </block>
  173 + <!-- <image class='zs_t4' src='http://jmh.xinda100.cn/public/static/images/model/new.png'></image> -->
  174 +
  175 + <block wx:if="{{object.goodicon==3}}">
  176 + <image class='zs_t4' wx:if="{{ object.position==3}}"
  177 + src='{{object.customicon}}'></image>
  178 + <!--<image class='zs_t4' wx:if="{{object.styleicon==2 && object.position==4}}"-->
  179 + <!--src='{{object.customicon}}'></image>-->
  180 + <!--<image class='zs_t4' wx:if="{{object.styleicon==3 && object.position==4}}"-->
  181 + <!--src='{{object.customicon}}'></image>-->
  182 + <!--<image class='zs_t4' wx:if="{{object.styleicon==4 && object.position==4}}"-->
  183 + <!--src='{{object.customicon}}'></image>-->
  184 + </block>
  185 + <block wx:if="{{object.goodicon==1}}">
  186 + <image class='zs_t4' src=''></image>
  187 + </block>
  188 + <block wx:if="{{object.goodicon==2}}">
  189 + <image class='zs_t4' wx:if="{{object.styleicon==1}}"
  190 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  191 + <image class='zs_t4' wx:if="{{object.styleicon==2 }}"
  192 + src='{{imghost}}/miniapp/images/hot.png'></image>
  193 + <image class='zs_t4' wx:if="{{object.styleicon==3}}"
  194 + src='{{imghost}}/miniapp/images/new.png'></image>
  195 + <image class='zs_t4' wx:if="{{object.styleicon==4 }}"
  196 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  197 + </block>
  198 + </view>
  199 +
  200 + <view class='zs_center'>
  201 + <view class='zs_wz1' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  202 + <view class='zs_wz2' wx:if="{{object.goodsprice}}">
  203 + <view class='wz_red'>¥{{item.shop_price}}</view>
  204 + <view class='del'>¥{{item.market_price}}</view>
  205 + </view>
  206 + <view class='zs_wz5' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  207 +
  208 + </view>
  209 + </navigator>
  210 + </view>
  211 + </block>
  212 + </block>
  213 +</view>
  214 +
  215 +
  216 +<!-- 列表显示 -->
  217 +<view class="zs_goods_xiao_wai">
  218 + <!--右上角-->
  219 + <block wx:if='{{object.column==4 && object.position==2}}'>
  220 + <block wx:for="{{goods_array}}" >
  221 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  222 + <view class="{{object.noboder==0?'zs_goods_xiao_bottom':'zs_goods_xiao'}}" >
  223 + <view class='zs_top_x'>
  224 + <!--<image class='zs_t_img_x'></image>-->
  225 + <block>
  226 + <image class='zs_t_img_x' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  227 + binderror="bind_bnerr3" mode="widthFix" style='max-height:290rpx'></image>
  228 + </block>
  229 +
  230 + <block wx:if="{{object.goodicon==3}}">
  231 + <image class='zs_t1_x' wx:if="{{object.position==2}}"
  232 + src='{{object.customicon}}'></image>
  233 + <!--<image class='zs_t1_x' wx:if="{{object.styleicon==2 && object.position==1}}"-->
  234 + <!--src='{{object.customicon}}'></image>-->
  235 + <!--<image class='zs_t1_x' wx:if="{{object.styleicon==3 && object.position==1}}"-->
  236 + <!--src='{{object.customicon}}'></image>-->
  237 + <!--<image class='zs_t1_x' wx:if="{{object.styleicon==4 && object.position==1}}"-->
  238 + <!--src='{{object.customicon}}'></image>-->
  239 + </block>
  240 + <block wx:if="{{object.goodicon==1}}">
  241 + <image class='zs_t1_x' src=''></image>
  242 + </block>
  243 + <block wx:if="{{object.goodicon==2}}">
  244 + <image class='zs_t1_x' wx:if="{{object.styleicon==1}}"
  245 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  246 + <image class='zs_t1_x' wx:if="{{object.styleicon==2 }}"
  247 + src='{{imghost}}/miniapp/images/hot.png'></image>
  248 + <image class='zs_t1_x' wx:if="{{object.styleicon==3}}"
  249 + src='{{imghost}}/miniapp/images/new.png'></image>
  250 + <image class='zs_t1_x' wx:if="{{object.styleicon==4 }}"
  251 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  252 + </block>
  253 + </view>
  254 +
  255 + <view class='zs_center_x'>
  256 +
  257 +
  258 + <view class='zs_wz1_x' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  259 + <view class='zs_wz2_x' wx:if="{{object.goodsprice}}">
  260 + <view class='wz_red'>¥{{item.shop_price}}</view>
  261 + <view class='del'>¥{{item.market_price}}</view>
  262 + </view>
  263 + <view class='zs_wz5_x' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  264 +
  265 +
  266 + </view>
  267 +
  268 + </view>
  269 + </navigator>
  270 + </block>
  271 + </block>
  272 + <!-- 左上角 -->
  273 + <block wx:if='{{object.column==4 && object.position==1}}'>
  274 + <block wx:for="{{goods_array}}" >
  275 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  276 + <view class="{{object.noboder==0?'zs_goods_xiao_bottom':'zs_goods_xiao'}}" >
  277 + <view class='zs_top_x'>
  278 +
  279 + <block wx:if="{{item.goods_img!=''}}">
  280 + <image class='zs_t_img_x' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  281 + binderror="bind_bnerr3" mode="widthFix" style='max-height:290rpx'></image>
  282 + </block>
  283 +
  284 + <block wx:if="{{object.goodicon==3}}">
  285 + <image class='zs_t1_x1' wx:if="{{ object.position==1}}"
  286 + src='{{object.customicon}}'></image>
  287 + <!--<image class='zs_t1_x1' wx:if="{{object.styleicon==2 && object.position==2}}"-->
  288 + <!--src='{{object.customicon}}'></image>-->
  289 + <!--<image class='zs_t1_x1' wx:if="{{object.styleicon==3 && object.position==2}}"-->
  290 + <!--src='{{object.customicon}}'></image>-->
  291 + <!--<image class='zs_t1_x1' wx:if="{{object.styleicon==4 && object.position==2}}"-->
  292 + <!--src='{{object.customicon}}'></image>-->
  293 + </block>
  294 + <block wx:if="{{object.goodicon==1}}">
  295 + <image class='zs_t1_x1' src=''></image>
  296 + </block>
  297 + <block wx:if="{{object.goodicon==2}}">
  298 + <image class='zs_t1_x1' wx:if="{{object.styleicon==1}}"
  299 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  300 + <image class='zs_t1_x1' wx:if="{{object.styleicon==2 }}"
  301 + src='{{imghost}}/miniapp/images/hot.png'></image>
  302 + <image class='zs_t1_x1' wx:if="{{object.styleicon==3}}"
  303 + src='{{imghost}}/miniapp/images/new.png'></image>
  304 + <image class='zs_t1_x1' wx:if="{{object.styleicon==4 }}"
  305 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  306 + </block>
  307 + </view>
  308 + <view class='zs_center_x'>
  309 + <view class='zs_wz1_x' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  310 + <view class='zs_wz2_x' wx:if="{{object.goodsprice}}">
  311 + <view class='wz_red'>¥{{item.shop_price}}</view>
  312 + <view class='del'>¥{{item.market_price}}</view>
  313 + </view>
  314 + <view class='zs_wz5_x' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  315 + </view>
  316 +
  317 + </view>
  318 + </navigator>
  319 + </block>
  320 + </block>
  321 + <!-- 右下角 -->
  322 + <block wx:if='{{object.column==4 && object.position==4}}'>
  323 + <block wx:for="{{goods_array}}" >
  324 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  325 + <view class="{{object.noboder==0?'zs_goods_xiao_bottom':'zs_goods_xiao'}}" >
  326 + <view class='zs_top_x'>
  327 +
  328 + <block>
  329 + <image class='zs_t_img_x' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  330 + binderror="bind_bnerr3" mode="widthFix" style='max-height:290rpx'></image>
  331 + </block>
  332 +
  333 + <block wx:if="{{object.goodicon==3}}">
  334 + <image class='zs_t1_x2' wx:if="{{object.position==4}}"
  335 + src='{{object.customicon}}'></image>
  336 + <!--<image class='zs_t1_x2' wx:if="{{object.styleicon==2 && object.position==3}}"-->
  337 + <!--src='{{object.customicon}}'></image>-->
  338 + <!--<image class='zs_t1_x2' wx:if="{{object.styleicon==3 && object.position==3}}"-->
  339 + <!--src='{{object.customicon}}'></image>-->
  340 + <!--<image class='zs_t1_x2' wx:if="{{object.styleicon==4 && object.position==3}}"-->
  341 + <!--src='{{object.customicon}}'></image>-->
  342 + </block>
  343 + <block wx:if="{{object.goodicon==1}}">
  344 + <image class='zs_t1_x2' src=''></image>
  345 + </block>
  346 + <block wx:if="{{object.goodicon==2}}">
  347 + <image class='zs_t1_x2' wx:if="{{object.styleicon==1}}"
  348 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  349 + <image class='zs_t1_x2' wx:if="{{object.styleicon==2 }}"
  350 + src='{{imghost}}/miniapp/images/hot.png'></image>
  351 + <image class='zs_t1_x2' wx:if="{{object.styleicon==3}}"
  352 + src='{{imghost}}/miniapp/images/new.png'></image>
  353 + <image class='zs_t1_x2' wx:if="{{object.styleicon==4 }}"
  354 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  355 + </block>
  356 + </view>
  357 +
  358 + <view class='zs_center_x'>
  359 + <view class='zs_wz1_x' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  360 + <view class='zs_wz2_x' wx:if="{{object.goodsprice}}">
  361 + <view class='wz_red'>¥{{item.shop_price}}</view>
  362 + <view class='del'>¥{{item.market_price}}</view>
  363 + </view>
  364 + <view class='zs_wz5_x' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  365 +
  366 + </view>
  367 +
  368 + </view>
  369 + </navigator>
  370 + </block>
  371 + </block>
  372 + <!-- 左下角 -->
  373 + <block wx:if='{{object.column==4 && object.position==3}}'>
  374 + <block wx:for="{{goods_array}}" >
  375 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  376 + <view class="{{object.noboder==0?'zs_goods_xiao_bottom':'zs_goods_xiao'}}" >
  377 + <view class='zs_top_x'>
  378 + <block wx:if="{{item.goods_img!=''}}">
  379 + <image class='zs_t_img_x' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  380 + binderror="bind_bnerr3" mode="widthFix" style='max-height:290rpx'></image>
  381 + </block>
  382 +
  383 + <block wx:if="{{object.goodicon==3}}">
  384 + <image class='zs_t1_x3' wx:if="{{object.position==3}}"
  385 + src='{{object.customicon}}'></image>
  386 + <!--<image class='zs_t1_x3' wx:if="{{object.styleicon==2 && object.position==4}}"-->
  387 + <!--src='{{object.customicon}}'></image>-->
  388 + <!--<image class='zs_t1_x3' wx:if="{{object.styleicon==3 && object.position==4}}"-->
  389 + <!--src='{{object.customicon}}'></image>-->
  390 + <!--<image class='zs_t1_x3' wx:if="{{object.styleicon==4 && object.position==4}}"-->
  391 + <!--src='{{object.customicon}}'></image>-->
  392 + </block>
  393 + <block wx:if="{{object.goodicon==1}}">
  394 + <image class='zs_t1_x3' src=''></image>
  395 + </block>
  396 + <block wx:if="{{object.goodicon==2}}">
  397 + <image class='zs_t1_x3' wx:if="{{object.styleicon==1}}"
  398 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  399 + <image class='zs_t1_x3' wx:if="{{object.styleicon==2 }}"
  400 + src='{{imghost}}/miniapp/images/hot.png'></image>
  401 + <image class='zs_t1_x3' wx:if="{{object.styleicon==3}}"
  402 + src='{{imghost}}/miniapp/images/new.png'></image>
  403 + <image class='zs_t1_x3' wx:if="{{object.styleicon==4 }}"
  404 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  405 + </block>
  406 + </view>
  407 + <view class='zs_center_x'>
  408 +
  409 + <view class='zs_wz1_x' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  410 + <view class='zs_wz2_x' wx:if="{{object.goodsprice}}">
  411 + <view class='wz_red'>¥{{item.shop_price}}</view>
  412 + <view class='del'>¥{{item.market_price}}</view>
  413 + </view>
  414 + <view class='zs_wz5_x' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  415 + </view>
  416 +
  417 + </view>
  418 + </navigator>
  419 + </block>
  420 + </block>
  421 +</view>
  422 +
  423 +
  424 +<!--2个一列-->
  425 +<!--左上角-->
  426 +<block wx:if="{{object.column==2 && object.position==1}}">
  427 +<block wx:for="{{goods_array}}" >
  428 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  429 +
  430 + <view class="zs_goods_wai_ban">
  431 + <view class="zs_goods_ban">
  432 + <view class='zs_goods_2l'>
  433 +
  434 + <view class='zs_top_2l'>
  435 + <!--<image class='zs_t_img_2l'></image>-->
  436 + <block wx:if="{{item.goods_img!=''}}">
  437 + <image class='zs_t_img_2l' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  438 + binderror="bind_bnerr3"></image>
  439 + </block>
  440 +
  441 + <block wx:if="{{object.goodicon==3}}">
  442 + <image class='zs_t1_2l' wx:if="{{object.position==1}}"
  443 + src='{{object.customicon}}'></image>
  444 + <!--<image class='zs_t1_2l' wx:if="{{object.styleicon==2 && object.position==1}}"-->
  445 + <!--src='{{object.customicon}}'></image>-->
  446 + <!--<image class='zs_t1_2l' wx:if="{{object.styleicon==3 && object.position==1}}"-->
  447 + <!--src='{{object.customicon}}'></image>-->
  448 + <!--<image class='zs_t1_2l' wx:if="{{object.styleicon==4 && object.position==1}}"-->
  449 + <!--src='{{object.customicon}}'></image>-->
  450 + </block>
  451 + <block wx:if="{{object.goodicon==1}}">
  452 + <image class='zs_t1_2l' src=''></image>
  453 + </block>
  454 + <block wx:if="{{object.goodicon==2}}">
  455 + <image class='zs_t1_2l' wx:if="{{object.styleicon==1}}"
  456 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  457 + <image class='zs_t1_2l' wx:if="{{object.styleicon==2 }}"
  458 + src='{{imghost}}/miniapp/images/hot.png'></image>
  459 + <image class='zs_t1_2l' wx:if="{{object.styleicon==3}}"
  460 + src='{{imghost}}/miniapp/images/new.png'></image>
  461 + <image class='zs_t1_2l' wx:if="{{object.styleicon==4 }}"
  462 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  463 + </block>
  464 + </view>
  465 +
  466 + <view class='zs_center_2l'>
  467 + <view class='zs_wz1_2l' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  468 + <view class='zs_wz2_2l' wx:if="{{object.goodsprice}}">
  469 + <view class='wz_red'>¥{{item.shop_price}}</view>
  470 + <view class='del'>¥{{item.market_price}}</view>
  471 + </view>
  472 + <view class='zs_wz5_2l' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  473 + </view>
  474 + </view>
  475 + </view>
  476 +
  477 + </view>
  478 + </navigator>
  479 +</block>
  480 +
  481 +<view class="clear"></view>
  482 +</block>
  483 +<!--右上角-->
  484 +<block wx:if='{{object.column==2 && object.position==2}}'>
  485 +<block wx:for="{{goods_array}}" >
  486 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  487 + <view class="zs_goods_wai_ban" >
  488 + <view class="zs_goods_ban">
  489 + <view class='zs_goods_2l'>
  490 +
  491 + <view class='zs_top_2l'>
  492 + <!--<image class='zs_t_img_2l'></image>-->
  493 + <block>
  494 + <image class='zs_t_img_2l' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  495 + binderror="bind_bnerr3"></image>
  496 + </block>
  497 + <block wx:if="{{object.goodicon==3}}">
  498 + <image class='zs_t2_2l' wx:if="{{ object.position==2}}"
  499 + src='{{object.customicon}}'></image>
  500 + <!--<image class='zs_t2_2l' wx:if="{{object.styleicon==2 && object.position==2}}"-->
  501 + <!--src='{{object.customicon}}'></image>-->
  502 + <!--<image class='zs_t2_2l' wx:if="{{object.styleicon==3 && object.position==2}}"-->
  503 + <!--src='{{object.customicon}}'></image>-->
  504 + <!--<image class='zs_t2_2l' wx:if="{{object.styleicon==4 && object.position==2}}"-->
  505 + <!--src='{{object.customicon}}'></image>-->
  506 + </block>
  507 + <block wx:if="{{object.goodicon==1}}">
  508 + <image class='zs_t2_2l' src=''></image>
  509 + </block>
  510 + <block wx:if="{{object.goodicon==2}}">
  511 + <image class='zs_t2_2l' wx:if="{{object.styleicon==1}}"
  512 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  513 + <image class='zs_t2_2l' wx:if="{{object.styleicon==2 }}"
  514 + src='{{imghost}}/miniapp/images/hot.png'></image>
  515 + <image class='zs_t2_2l' wx:if="{{object.styleicon==3}}"
  516 + src='{{imghost}}/miniapp/images/new.png'></image>
  517 + <image class='zs_t2_2l' wx:if="{{object.styleicon==4 }}"
  518 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  519 + </block>
  520 + </view>
  521 + <view class='zs_center_2l'>
  522 +
  523 +
  524 + <view class='zs_wz1_2l' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  525 + <view class='zs_wz2_2l' wx:if="{{object.goodsprice}}">
  526 + <view class='wz_red'>¥{{item.shop_price}}</view>
  527 + <view class='del'>¥{{item.market_price}}</view>
  528 + </view>
  529 + <view class='zs_wz5_2l' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  530 +
  531 + </view>
  532 + </view>
  533 + </view>
  534 +
  535 + </view>
  536 + </navigator>
  537 +</block>
  538 +
  539 +<view class="clear"></view>
  540 +</block>
  541 +<!--右下角-->
  542 +<block wx:if='{{object.column==2 && object.position==4}}'>
  543 +<block wx:for="{{goods_array}}" >
  544 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  545 + <view class="zs_goods_wai_ban" >
  546 + <view class="zs_goods_ban">
  547 + <view class='zs_goods_2l'>
  548 +
  549 + <view class='zs_top_2l'>
  550 + <!--<image class='zs_t_img_2l'></image>-->
  551 + <block>
  552 + <image class='zs_t_img_2l' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  553 + binderror="bind_bnerr3"></image>
  554 + </block>
  555 +
  556 + <block wx:if="{{object.goodicon==3}}">
  557 + <image class='zs_t3_2l' wx:if="{{ object.position==4}}"
  558 + src='{{object.customicon}}'></image>
  559 + <!--<image class='zs_t3_2l' wx:if="{{object.styleicon==2 && object.position==3}}"-->
  560 + <!--src='{{object.customicon}}'></image>-->
  561 + <!--<image class='zs_t3_2l' wx:if="{{object.styleicon==3 && object.position==3}}"-->
  562 + <!--src='{{object.customicon}}'></image>-->
  563 + <!--<image class='zs_t3_2l' wx:if="{{object.styleicon==4 && object.position==3}}"-->
  564 + <!--src='{{object.customicon}}'></image>-->
  565 + </block>
  566 + <block wx:if="{{object.goodicon==1}}">
  567 + <image class='zs_t3_2l' src=''></image>
  568 + </block>
  569 + <block wx:if="{{object.goodicon==2}}">
  570 + <image class='zs_t3_2l' wx:if="{{object.styleicon==1}}"
  571 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  572 + <image class='zs_t3_2l' wx:if="{{object.styleicon==2 }}"
  573 + src='{{imghost}}/miniapp/images/hot.png'></image>
  574 + <image class='zs_t3_2l' wx:if="{{object.styleicon==3}}"
  575 + src='{{imghost}}/miniapp/images/new.png'></image>
  576 + <image class='zs_t3_2l' wx:if="{{object.styleicon==4 }}"
  577 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  578 + </block>
  579 + </view>
  580 +
  581 + <view class='zs_center_2l'>
  582 +
  583 + <view class='zs_wz1_2l' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  584 + <view class='zs_wz2_2l' wx:if="{{object.goodsprice}}">
  585 + <view class='wz_red'>¥{{item.shop_price}}</view>
  586 + <view class='del'>¥{{item.market_price}}</view>
  587 + </view>
  588 + <view class='zs_wz5_2l' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  589 + </view>
  590 +
  591 + </view>
  592 + </view>
  593 +
  594 +
  595 + </view>
  596 + </navigator>
  597 +</block>
  598 +
  599 +<view class="clear"></view>
  600 +</block>
  601 +<!--左下角-->
  602 +<block wx:if='{{object.column==2 && object.position==3}}'>
  603 +<block wx:for="{{goods_array}}" >
  604 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  605 + <view class="zs_goods_wai_ban" >
  606 + <view class="zs_goods_ban">
  607 + <view class='zs_goods_2l'>
  608 +
  609 + <view class='zs_top_2l'>
  610 + <!--<image class='zs_t_img_2l'></image>-->
  611 + <block>
  612 + <image class='zs_t_img_2l' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  613 + binderror="bind_bnerr3"></image>
  614 + </block>
  615 +
  616 + <block wx:if="{{object.goodicon==3}}">
  617 + <image class='zs_t4_2l' wx:if="{{ object.position==3}}"
  618 + src='{{object.customicon}}'></image>
  619 + <!--<image class='zs_t4_2l' wx:if="{{object.styleicon==2 && object.position==4}}"-->
  620 + <!--src='{{object.customicon}}'></image>-->
  621 + <!--<image class='zs_t4_2l' wx:if="{{object.styleicon==3 && object.position==4}}"-->
  622 + <!--src='{{object.customicon}}'></image>-->
  623 + <!--<image class='zs_t4_2l' wx:if="{{object.styleicon==4 && object.position==4}}"-->
  624 + <!--src='{{object.customicon}}'></image>-->
  625 + </block>
  626 + <block wx:if="{{object.goodicon==1}}">
  627 + <image class='zs_t4_2l' src=''></image>
  628 + </block>
  629 + <block wx:if="{{object.goodicon==2}}">
  630 + <image class='zs_t4_2l' wx:if="{{object.styleicon==1}}"
  631 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  632 + <image class='zs_t4_2l' wx:if="{{object.styleicon==2 }}"
  633 + src='{{imghost}}/miniapp/images/hot.png'></image>
  634 + <image class='zs_t4_2l' wx:if="{{object.styleicon==3}}"
  635 + src='{{imghost}}/miniapp/images/new.png'></image>
  636 + <image class='zs_t4_2l' wx:if="{{object.styleicon==4 }}"
  637 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  638 + </block>
  639 + </view>
  640 +
  641 + <view class='zs_center_2l'>
  642 +
  643 + <view class='zs_wz1_2l' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  644 + <view class='zs_wz2_2l' wx:if="{{object.goodsprice}}">
  645 + <view class='wz_red'>¥{{item.shop_price}}</view>
  646 + <view class='del'>¥{{item.market_price}}</view>
  647 + </view>
  648 + <view class='zs_wz5_2l' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  649 +
  650 + </view>
  651 + </view>
  652 + </view>
  653 +
  654 + </view>
  655 + </navigator>
  656 +</block>
  657 +
  658 +<view class="clear"></view>
  659 +</block>
  660 +
  661 +<!--3个一列-->
  662 +<!--左上角-->
  663 +<block wx:if='{{object.column==3 && object.position==1}}'>
  664 +<view class="zwp_3">
  665 + <block wx:for="{{goods_array}}" >
  666 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  667 + <view class="zs_goods_wai_san" >
  668 + <view class="zs_goods_san">
  669 + <view class='zs_goods_3l'>
  670 + <view class='zs_top_3l'>
  671 + <block>
  672 + <image class='zs_t_img_3l' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  673 + binderror="bind_bnerr3"></image>
  674 + </block>
  675 +
  676 + <block wx:if="{{object.goodicon==3}}">
  677 + <image class='zs_t1_3l' wx:if="{{ object.position==1}}"
  678 + src='{{object.customicon}}'></image>
  679 + <!-- <image class='zs_t1_3l' wx:if="{{object.styleicon==2 && object.position==1}}"
  680 + src='{{object.customicon}}'></image>
  681 + <image class='zs_t1_3l' wx:if="{{object.styleicon==3 && object.position==1}}"
  682 + src='{{object.customicon}}'></image>
  683 + <image class='zs_t1_3l' wx:if="{{object.styleicon==4 && object.position==1}}"
  684 + src='{{object.customicon}}'></image> -->
  685 + </block>
  686 + <block wx:if="{{object.goodicon==1}}">
  687 + <image class='zs_t1_3l' src=''></image>
  688 + </block>
  689 + <block wx:if="{{object.goodicon==2}}">
  690 + <image class='zs_t1_3l' wx:if="{{object.styleicon==1}}"
  691 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  692 + <image class='zs_t1_3l' wx:if="{{object.styleicon==2 }}"
  693 + src='{{imghost}}/miniapp/images/hot.png'></image>
  694 + <image class='zs_t1_3l' wx:if="{{object.styleicon==3}}"
  695 + src='{{imghost}}/miniapp/images/new.png'></image>
  696 + <image class='zs_t1_3l' wx:if="{{object.styleicon==4 }}"
  697 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  698 + </block>
  699 + </view>
  700 + <view class='zs_center_3l'>
  701 +
  702 +
  703 + <view class='zs_wz1_3l' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  704 + <view class='zs_wz2_3l' wx:if="{{object.goodsprice}}">
  705 + <view class='wz_red'>¥{{item.shop_price}}</view>
  706 + <view class='del'>¥{{item.market_price}}</view>
  707 + </view>
  708 + <view class='zs_wz5_3l' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  709 + </view>
  710 + </view>
  711 + </view>
  712 + </view>
  713 + </navigator>
  714 + </block>
  715 +</view>
  716 +<view class="clear"></view>
  717 +</block>
  718 +<!--右上角-->
  719 +<block wx:if='{{object.column==3 && object.position==2}}'>
  720 +<block wx:for="{{goods_array}}" >
  721 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  722 + <view class="zs_goods_wai_san" >
  723 + <view class="zs_goods_san">
  724 + <view class='zs_goods_3l'>
  725 + <view class='zs_top_3l'>
  726 + <!--<image class='zs_t_img_3l'></image>-->
  727 + <block>
  728 + <image class='zs_t_img_3l' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  729 + binderror="bind_bnerr3"></image>
  730 + </block>
  731 +
  732 + <block wx:if="{{object.goodicon==3}}">
  733 + <image class='zs_t2_3l' wx:if="{{ object.position==2}}"
  734 + src='{{object.customicon}}'></image>
  735 + <!--<image class='zs_t2_3l' wx:if="{{object.styleicon==2 && object.position==2}}"-->
  736 + <!--src='{{object.customicon}}'></image>-->
  737 + <!--<image class='zs_t2_3l' wx:if="{{object.styleicon==3 && object.position==2}}"-->
  738 + <!--src='{{object.customicon}}'></image>-->
  739 + <!--<image class='zs_t2_3l' wx:if="{{object.styleicon==4 && object.position==2}}"-->
  740 + <!--src='{{object.customicon}}'></image>-->
  741 + </block>
  742 + <block wx:if="{{object.goodicon==1}}">
  743 + <image class='zs_t2_3l' src=''></image>
  744 + </block>
  745 + <block wx:if="{{object.goodicon==2}}">
  746 + <image class='zs_t2_3l' wx:if="{{object.styleicon==1}}"
  747 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  748 + <image class='zs_t2_3l' wx:if="{{object.styleicon==2 }}"
  749 + src='{{imghost}}/miniapp/images/hot.png'></image>
  750 + <image class='zs_t2_3l' wx:if="{{object.styleicon==3}}"
  751 + src='{{imghost}}/miniapp/images/new.png'></image>
  752 + <image class='zs_t2_3l' wx:if="{{object.styleicon==4 }}"
  753 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  754 + </block>
  755 + </view>
  756 + <view class='zs_center_3l'>
  757 +
  758 +
  759 + <view class='zs_wz1_3l' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  760 + <view class='zs_wz2_3l' wx:if="{{object.goodsprice}}">
  761 + <view class='wz_red'>¥{{item.shop_price}}</view>
  762 + <view class='del'>¥{{item.market_price}}</view>
  763 + </view>
  764 + <view class='zs_wz5_3l' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  765 +
  766 + <!--<view class='zs_wz3_3l'>美妆价:¥9.00</view>-->
  767 + <!--<view class='zs_wz4_3l'>等级价:¥8.00</view>-->
  768 +
  769 + </view>
  770 + </view>
  771 + </view>
  772 + </view>
  773 + </navigator>
  774 +</block>
  775 +<view class="clear"></view>
  776 +</block>
  777 +<!--右下角-->
  778 +
  779 +<block wx:if='{{object.column==3 && object.position==4}}'>
  780 +<block wx:for="{{goods_array}}" >
  781 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  782 + <view class="zs_goods_wai_san" >
  783 + <view class="zs_goods_san">
  784 + <view class='zs_goods_3l'>
  785 + <view class='zs_top_3l'>
  786 +
  787 + <block>
  788 + <image class='zs_t_img_3l' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  789 + binderror="bind_bnerr3"></image>
  790 + </block>
  791 +
  792 + <block wx:if="{{object.goodicon==3}}">
  793 + <image class='zs_t3_3l' wx:if="{{ object.position==4}}"
  794 + src='{{object.customicon}}'></image>
  795 + <!--<image class='zs_t3_3l' wx:if="{{object.styleicon==2 && object.position==3}}"-->
  796 + <!--src='{{object.customicon}}'></image>-->
  797 + <!--<image class='zs_t3_3l' wx:if="{{object.styleicon==3 && object.position==3}}"-->
  798 + <!--src='{{object.customicon}}'></image>-->
  799 + <!--<image class='zs_t3_3l' wx:if="{{object.styleicon==4 && object.position==3}}"-->
  800 + <!--src='{{object.customicon}}'></image>-->
  801 + </block>
  802 + <block wx:if="{{object.goodicon==1}}">
  803 + <image class='zs_t3_3l' src=''></image>
  804 + </block>
  805 + <block wx:if="{{object.goodicon==2}}">
  806 + <image class='zs_t3_3l' wx:if="{{object.styleicon==1}}"
  807 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  808 + <image class='zs_t3_3l' wx:if="{{object.styleicon==2 }}"
  809 + src='{{imghost}}/miniapp/images/hot.png'></image>
  810 + <image class='zs_t3_3l' wx:if="{{object.styleicon==3}}"
  811 + src='{{imghost}}/miniapp/images/new.png'></image>
  812 + <image class='zs_t3_3l' wx:if="{{object.styleicon==4 }}"
  813 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  814 + </block>
  815 + </view>
  816 + <view class='zs_center_3l'>
  817 +
  818 +
  819 + <view class='zs_wz1_3l' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  820 + <view class='zs_wz2_3l' wx:if="{{object.goodsprice}}">
  821 + <view class='wz_red'>¥{{item.shop_price}}</view>
  822 + <view class='del'>¥{{item.market_price}}</view>
  823 + </view>
  824 + <view class='zs_wz5_3l' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  825 + <!--<view class='zs_wz3_3l'>美妆价:¥9.00</view>-->
  826 + <!--<view class='zs_wz4_3l'>等级价:¥8.00</view>-->
  827 + </view>
  828 + </view>
  829 + </view>
  830 +
  831 + </view>
  832 + </navigator>
  833 +</block>
  834 +
  835 +
  836 +<view class="clear"></view>
  837 +</block>
  838 +<!--左下角-->
  839 +<block wx:if='{{object.column==3 && object.position==3}}'>
  840 +<block wx:for="{{goods_array}}" >
  841 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" class="s1_gk_a1">
  842 + <view class="zs_goods_wai_san" >
  843 + <view class="zs_goods_san">
  844 + <view class='zs_goods_3l'>
  845 +
  846 + <view class='zs_top_3l'>
  847 +
  848 + <block>
  849 + <image class='zs_t_img_3l' src="{{item.goods_img}}" data-errorimg="goods_array[{{index}}].goods_img"
  850 + binderror="bind_bnerr3"></image>
  851 + </block>
  852 +
  853 + <block wx:if="{{object.goodicon==3}}">
  854 + <image class='zs_t4_3l' wx:if="{{object.position==3}}"
  855 + src='{{object.customicon}}'></image>
  856 + <!--<image class='zs_t4_3l' wx:if="{{ object.position==4}}"-->
  857 + <!--src='{{object.customicon}}'></image>-->
  858 + <!--<image class='zs_t4_3l' wx:if="{{object.position==4}}"-->
  859 + <!--src='{{object.customicon}}'></image>-->
  860 + <!--<image class='zs_t4_3l' wx:if="{{ object.position==4}}"-->
  861 + <!--src='{{object.customicon}}'></image>-->
  862 + </block>
  863 + <block wx:if="{{object.goodicon==1}}">
  864 + <image class='zs_t4_3l' src=''></image>
  865 + </block>
  866 + <block wx:if="{{object.goodicon==2}}">
  867 + <image class='zs_t4_3l' wx:if="{{object.styleicon==1}}"
  868 + src='{{imghost}}/miniapp/images/Recommend.png'></image>
  869 + <image class='zs_t4_3l' wx:if="{{object.styleicon==2 }}"
  870 + src='{{imghost}}/miniapp/images/hot.png'></image>
  871 + <image class='zs_t4_3l' wx:if="{{object.styleicon==3}}"
  872 + src='{{imghost}}/miniapp/images/new.png'></image>
  873 + <image class='zs_t4_3l' wx:if="{{object.styleicon==4 }}"
  874 + src='{{imghost}}/miniapp/images/Promotion.png'></image>
  875 + </block>
  876 + </view>
  877 +
  878 + <view class='zs_center_3l'>
  879 +
  880 + <view class='zs_wz1_3l' wx:if="{{object.goodstit}}">{{item.goods_name}}</view>
  881 + <view class='zs_wz2_3l' wx:if="{{object.goodsprice}}">
  882 + <view class='wz_red'>¥{{item.shop_price}}</view>
  883 + <view class='del'>¥{{item.market_price}}</view>
  884 + </view>
  885 + <view class='zs_wz5_3l' wx:if="{{object.goodsnum}}">销量:{{item.sales_sum}}件</view>
  886 +
  887 +
  888 + </view>
  889 +
  890 +
  891 + </view>
  892 + </view>
  893 +
  894 + </view>
  895 + </navigator>
  896 +</block>
  897 +<view class="clear"></view>
  898 +</block>
  899 +
  900 +
  901 +<!-- <block wx:if="{{object.classstyle=='2' }}">
  902 +<view class="button-wrapper" wx:if="{{object.goodscount * page <total }}" style="border: none">
  903 + <button type="default" size="default" loading="{{loading}}" disabled="{{disabled}}" bindtap="setLoading" style="background-color: rgba(0,0,0,0);border:none">
  904 + {{loadText}}
  905 + </button>
  906 +</view>
  907 +</block> -->
  908 +
  909 +<block wx:if="{{object.classstyle=='1' }}">
  910 +<view class="button-wrapper" wx:if="{{goods_btn.length!=0 }}" style="border: none">
  911 + <button type="default" size="default" loading="{{loading}}" disabled="{{disabled}}" bindtap="setLoading" style="background-color: rgba(0,0,0,0);border:none">
  912 + {{loadText}}
  913 + </button>
  914 +</view>
  915 +</block>
  916 +
  917 +<block wx:if="{{object.classstyle!='1' }}">
  918 + <view class="button-wrapper" wx:if="{{object.goodscount * page <total }}" style="border: none">
  919 + <button type="default" size="default" loading="{{loading}}" disabled="{{disabled}}" bindtap="setLoading" style="background-color: rgba(0,0,0,0);border:none">
  920 + {{loadText}}
  921 + </button>
  922 +</view>
  923 +
  924 + </block>
0 925 \ No newline at end of file
... ...
components/diy_goodsGroup/diy_goodsGroup.wxss 0 → 100644
  1 +/* pages/diy_zs/diy_zs.wxss */
  2 +
  3 +.zs_goods{
  4 + width: 100%;
  5 + min-height: 500rpx;
  6 +border: 2rpx #ddd solid;
  7 +margin: 0 auto;
  8 +}
  9 +
  10 +.zwp_3{
  11 + /* width: 30%; */
  12 +}
  13 +
  14 +.s1_gk_a1{
  15 + display: inline;
  16 + width: auto;
  17 + height: auto;
  18 +}
  19 +.clear{
  20 + clear: both;
  21 +}
  22 +.zs_top{
  23 + width: 100%;
  24 + min-height: 700rpx;
  25 + margin: 0 auto;
  26 + padding-left:22rpx;
  27 +padding-bottom:30rpx;
  28 +
  29 +display: flex;
  30 +/* padding-left: 6rpx; */
  31 +/* padding-right: 30rpx; */
  32 +}
  33 +
  34 +.zs_t_img {
  35 + width: 700rpx;
  36 + height: 700rpx;
  37 + /* margin: 0 auto; */
  38 + /* background-color: bisque; */
  39 +
  40 +}
  41 +
  42 +.zs_center{
  43 + width: 100%;
  44 + min-height: 200rpx;
  45 + font-size: 28rpx;
  46 + color: #333;
  47 + text-align: left;
  48 + margin-left: 25rpx;
  49 + padding: 0 10rpx;
  50 +}
  51 +
  52 +.zs_wz1{
  53 + overflow: hidden;
  54 + text-overflow: ellipsis;
  55 + margin-bottom:10rpx;
  56 +font-size:28rpx;
  57 + white-space: nowrap;
  58 +}
  59 +
  60 +
  61 +.zs_wz2{
  62 + overflow: hidden;
  63 + text-overflow: ellipsis;
  64 + margin-bottom:10rpx;
  65 +font-size:28rpx;
  66 + white-space: nowrap;
  67 +}
  68 +
  69 +.zs_wz3{
  70 + overflow: hidden;
  71 + text-overflow: ellipsis;
  72 + margin-bottom:10rpx;
  73 +font-size:28rpx;
  74 + white-space: nowrap;
  75 +}
  76 +
  77 +.zs_wz4{
  78 + overflow: hidden;
  79 + text-overflow: ellipsis;
  80 + margin-bottom:10rpx;
  81 +font-size:28rpx;
  82 + white-space: nowrap;
  83 +}
  84 +
  85 +.zs_wz5{
  86 + overflow: hidden;
  87 + text-overflow: ellipsis;
  88 + font-size:30rpx;
  89 + white-space: nowrap;
  90 +}
  91 +
  92 +.wz_red{
  93 +
  94 + color: #C4182E;
  95 + font-size: 32rpx;
  96 +}
  97 +
  98 +.del{
  99 + font-size: 24rpx;
  100 + color: #999;
  101 + text-decoration: line-through;
  102 +}
  103 +
  104 +.zs_t1{
  105 + width: 56rpx;
  106 + height: 56rpx;
  107 + position: relative;
  108 + right: 58rpx;
  109 + bottom: -640rpx;
  110 +}
  111 +
  112 +
  113 +.zs_t2{
  114 + width: 56rpx;
  115 + height: 56rpx;
  116 + position: relative;
  117 + right: 58rpx;
  118 + bottom: -2rpx;
  119 +}
  120 +
  121 +.zs_t3{
  122 + width: 56rpx;
  123 + height: 56rpx;
  124 + position: relative;
  125 + right: 692rpx;
  126 + bottom: -4rpx;
  127 +}
  128 +
  129 +
  130 +.zs_t4{
  131 + width: 56rpx;
  132 + height: 56rpx;
  133 + position: relative;
  134 + right: 692rpx;
  135 + bottom: -642rpx;
  136 +}
  137 +
  138 +
  139 +
  140 +
  141 +/* xiao */
  142 +
  143 +
  144 +.zs_goods_xiao_bottom{
  145 + width: 100%;
  146 + min-height: 300rpx;
  147 +
  148 + display: flex;
  149 + border-bottom: 2rpx #eee solid;
  150 + padding: 10rpx;
  151 + background-color: white;
  152 +
  153 +}
  154 +
  155 +.zs_goods_xiao{
  156 + width: 100%;
  157 + min-height: 300rpx;
  158 +
  159 + display: flex;
  160 + /* border-bottom: 2rpx #eee solid; */
  161 + padding: 10rpx;
  162 + background-color: white;
  163 +}
  164 +
  165 +.zs_top_x{
  166 + width: 400rpx;
  167 + height: 318rpx;
  168 + margin-top: 20rpx;
  169 + /* /* padding-top:30rpx;
  170 +padding-bottom:30rpx; */
  171 +
  172 +display: flex;
  173 +
  174 +}
  175 +
  176 +/* .zs_goods_xiao{
  177 + background-color: white;
  178 +} */
  179 +
  180 +.zs_t_img_x {
  181 + width: 290rpx;
  182 + height: 290rpx;
  183 + margin-left: 20rpx;
  184 + /* background-color: bisque; */
  185 +
  186 +}
  187 +
  188 +.zs_center_x{
  189 +
  190 + width: 100%;
  191 + min-height: 200rpx;
  192 + font-size: 28rpx;
  193 + color: #333;
  194 + text-align: left;
  195 + margin-top: 30rpx;
  196 + padding: 0 10rpx;
  197 +}
  198 +
  199 +.zs_wz1_x{
  200 + overflow: hidden;
  201 + text-overflow: ellipsis;
  202 + margin-bottom:10rpx;
  203 +font-size:28rpx;
  204 + white-space: nowrap;
  205 + width: 80%;
  206 +}
  207 +
  208 +
  209 +.zs_wz2_x{
  210 + overflow: hidden;
  211 + text-overflow: ellipsis;
  212 + margin-bottom:10rpx;
  213 +font-size:28rpx;
  214 + white-space: nowrap;
  215 +}
  216 +
  217 +.zs_wz3_x{
  218 + overflow: hidden;
  219 + text-overflow: ellipsis;
  220 + margin-bottom:10rpx;
  221 +font-size:28rpx;
  222 + white-space: nowrap;
  223 +}
  224 +
  225 +.zs_wz4_x{
  226 + overflow: hidden;
  227 + text-overflow: ellipsis;
  228 + margin-bottom:10rpx;
  229 +font-size:28rpx;
  230 + white-space: nowrap;
  231 +}
  232 +
  233 +.zs_wz5_x{
  234 + overflow: hidden;
  235 + text-overflow: ellipsis;
  236 + font-size:30rpx;
  237 + white-space: nowrap;
  238 +}
  239 +
  240 +.wz_red{
  241 + color: #C4182E;
  242 + font-size: 32rpx;
  243 +}
  244 +
  245 +.del{
  246 + font-size: 24rpx;
  247 + color: #999;
  248 + text-decoration: line-through;
  249 + margin-left: 10rpx;
  250 + margin-top: 8rpx;
  251 +}
  252 +
  253 +.zs_t1_x{
  254 + width: 56rpx;
  255 + height: 56rpx;
  256 + position: relative;
  257 + right: 62rpx;
  258 +top: 6rpx;
  259 +}
  260 +
  261 +.zs_t1_x1{
  262 + width: 56rpx;
  263 + height: 56rpx;
  264 + position: relative;
  265 + right: 285rpx;
  266 +top: 6rpx;
  267 +}
  268 +
  269 +.zs_t1_x2{
  270 + width: 56rpx;
  271 + height: 56rpx;
  272 + position: relative;
  273 + right: 56rpx;
  274 +top: 234rpx;
  275 +}
  276 +
  277 +
  278 +.zs_t1_x3{
  279 + width: 56rpx;
  280 + height: 56rpx;
  281 + position: relative;
  282 + right: 288rpx;
  283 +top: 234rpx;
  284 +}
  285 +
  286 +/*1列2个*/
  287 +
  288 +.zs_goods_ban{
  289 + width: 100%;
  290 + min-height: 300rpx;
  291 +}
  292 +
  293 +.zs_goods_wai_ban{
  294 + display: flex;
  295 + /* padding-left: 2rpx; */
  296 + margin-bottom: 12rpx;
  297 + width: 50%;
  298 + float: left;
  299 + background: #fff;
  300 +}
  301 +
  302 +
  303 +.zs_goods_2l{
  304 + width: 94%;
  305 + min-height: 300rpx;
  306 + border: 2rpx #ddd solid;
  307 + margin: 0 auto;
  308 +padding: 2rpx;
  309 +}
  310 +
  311 +.zs_top_2l{
  312 + width: 300rpx;
  313 + height: 300rpx;
  314 +
  315 +
  316 +}
  317 +
  318 +.button-wrapper button {
  319 + /*width: 94%;*/
  320 + border: none;
  321 +}
  322 +
  323 +
  324 +.zs_t_img_2l {
  325 + width: 100%;
  326 + height: 300rpx;
  327 + margin: 0 auto;
  328 +}
  329 +
  330 +.zs_center_2l{
  331 + width: 100%;
  332 + min-height: 200rpx;
  333 + font-size: 28rpx;
  334 + color: #333;
  335 + text-align: left;
  336 + padding: 0 10rpx;
  337 +}
  338 +
  339 +.zs_wz1_2l{
  340 + overflow: hidden;
  341 + text-overflow: ellipsis;
  342 + margin-bottom:10rpx;
  343 + font-size:30rpx;
  344 + white-space: nowrap;
  345 + margin-top: 10rpx;
  346 +}
  347 +
  348 +
  349 +.zs_wz2_2l{
  350 + overflow: hidden;
  351 + text-overflow: ellipsis;
  352 + margin-bottom:10rpx;
  353 + font-size:30rpx;
  354 + white-space: nowrap;
  355 + margin-top: 10rpx;
  356 +}
  357 +
  358 +.zs_wz3_2l{
  359 + overflow: hidden;
  360 + text-overflow: ellipsis;
  361 + margin-bottom:10rpx;
  362 + font-size:30rpx;
  363 + white-space: nowrap;
  364 + margin-top: 10rpx;
  365 +}
  366 +
  367 +.zs_wz4_2l{
  368 + overflow: hidden;
  369 + text-overflow: ellipsis;
  370 + margin-bottom:10rpx;
  371 + font-size:30rpx;
  372 + white-space: nowrap;
  373 + margin-top: 10rpx;
  374 +}
  375 +
  376 +.zs_wz5_2l{
  377 + overflow: hidden;
  378 + text-overflow: ellipsis;
  379 + font-size:30rpx;
  380 + white-space: nowrap;
  381 + margin-top: 10rpx;
  382 +}
  383 +
  384 +
  385 +.zs_t1_2l{
  386 + width: 56rpx;
  387 + height: 56rpx;
  388 + position: relative;
  389 + right: -2rpx;
  390 + top: -310rpx;
  391 +}
  392 +
  393 +
  394 +.zs_t2_2l{
  395 + width: 56rpx;
  396 + height: 56rpx;
  397 + position: relative;
  398 + right: -294rpx;
  399 + bottom: 310rpx;
  400 +}
  401 +
  402 +.zs_t3_2l{
  403 + width: 56rpx;
  404 + height: 56rpx;
  405 + position: relative;
  406 + right: -294rpx;
  407 + bottom: 68rpx;
  408 +}
  409 +
  410 +
  411 +.zs_t4_2l{
  412 + width: 56rpx;
  413 + height: 56rpx;
  414 + position: relative;
  415 + right: -2rpx;
  416 + bottom: 68rpx;
  417 +}
  418 +
  419 +/*一个3列*/
  420 +.zs_goods_wai_san{
  421 + width: 240rpx;
  422 + display: flex;
  423 + margin-left: 8rpx;
  424 + float: left;
  425 + margin-bottom: 8rpx;
  426 + background-color:white;
  427 +
  428 +}
  429 +
  430 +.zs_goods_san{
  431 + width: 240rpx;
  432 +
  433 +}
  434 +
  435 +
  436 +
  437 +
  438 +
  439 +
  440 +.zs_goods_3l{
  441 + width: 240rpx;
  442 + min-height: 300rpx;
  443 + border: 2rpx #ddd solid;
  444 + margin: 0 auto;
  445 + padding: 2rpx;
  446 +}
  447 +
  448 +.zs_top_3l{
  449 + width: 240rpx;
  450 + height: 240rpx;
  451 +
  452 +
  453 +
  454 +
  455 +
  456 +
  457 +}
  458 +
  459 +.zs_t_img_3l {
  460 + width:237rpx;
  461 + height: 240rpx;
  462 + margin: 0 auto;
  463 + background-color: bisque;
  464 +
  465 +}
  466 +
  467 +.zs_center_3l{
  468 + width: 100%;
  469 + min-height: 200rpx;
  470 + font-size: 28rpx;
  471 + color: #333;
  472 + text-align: left;
  473 + padding: 0 10rpx;
  474 +}
  475 +
  476 +.zs_wz1_3l{
  477 + overflow: hidden;
  478 + text-overflow: ellipsis;
  479 + margin-bottom:10rpx;
  480 + font-size:30rpx;
  481 + height: 80rpx;
  482 + width: 227rpx;
  483 + /* white-space: nowrap; */
  484 +}
  485 +
  486 +
  487 +.zs_wz2_3l{
  488 + /* overflow: hidden;
  489 + text-overflow: ellipsis; */
  490 + margin-bottom:10rpx;
  491 + font-size:30rpx;
  492 + /* white-space: nowrap; */
  493 + display: flex;
  494 +}
  495 +
  496 +.zs_wz3_3l{
  497 + overflow: hidden;
  498 + text-overflow: ellipsis;
  499 + margin-bottom:10rpx;
  500 + font-size:30rpx;
  501 + white-space: nowrap;
  502 +}
  503 +
  504 +.zs_wz4_3l{
  505 + overflow: hidden;
  506 + text-overflow: ellipsis;
  507 + margin-bottom:10rpx;
  508 + font-size:30rpx;
  509 + white-space: nowrap;
  510 +}
  511 +
  512 +.zs_wz5_3l{
  513 + overflow: hidden;
  514 + text-overflow: ellipsis;
  515 + font-size:30rpx;
  516 + white-space: nowrap;
  517 +}
  518 +
  519 +
  520 +.zs_t1_3l{
  521 + width: 56rpx;
  522 + height: 56rpx;
  523 + position: relative;
  524 + right: 0rpx;
  525 + top: -250rpx;
  526 +}
  527 +
  528 +
  529 +.zs_t2_3l{
  530 + width: 56rpx;
  531 + height: 56rpx;
  532 + position: relative;
  533 + right: -177rpx;
  534 + bottom: 250rpx;
  535 +}
  536 +
  537 +.zs_t3_3l{
  538 + width: 56rpx;
  539 + height: 56rpx;
  540 + position: relative;
  541 + right: -177rpx;
  542 + bottom: 67rpx;
  543 +}
  544 +
  545 +
  546 +.zs_t4_3l{
  547 + width: 56rpx;
  548 + height: 56rpx;
  549 + position: relative;
  550 + right: 0rpx;
  551 + bottom: 67rpx;
  552 +}
  553 +
  554 +.zs_goods_wai{
  555 + background-color: white;
  556 + margin-top: 10rpx;
  557 +}
0 558 \ No newline at end of file
... ...
components/diy_groupbuy/diy_groupbuy.js 0 → 100644
  1 +Component({
  2 + properties: {
  3 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  4 +
  5 + style_b: {
  6 + type: Number,
  7 + value: 3,
  8 + },
  9 +
  10 +
  11 +
  12 +
  13 +
  14 + },
  15 + data: {
  16 + // 这里是一些组件内部数据
  17 + bulk:false,
  18 + someData: {}
  19 + },
  20 + methods: {
  21 + // 这里是一个自定义方法
  22 +
  23 + customMethod: function () { }
  24 + }
  25 +})
0 26 \ No newline at end of file
... ...
components/diy_groupbuy/diy_groupbuy.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_groupbuy/diy_groupbuy.wxml 0 → 100644
  1 +<!--pages/wp/wp.wxml-->
  2 +
  3 +
  4 +
  5 +
  6 +<view class='top_b'>
  7 +<view class='t_left_b'></view>
  8 +<view class='t_ms_b'>团购</view>
  9 +<view class='.right_b'></view>
  10 +</view>
  11 +
  12 +
  13 +<!--商品展示-->
  14 +
  15 +<view class='sp_b' wx:if="{{style_b==1}}">
  16 +
  17 +<view class='one_b'>
  18 +<view class='sp_top_b'>
  19 +<view class='s_img_b'><image></image></view>
  20 +<view class='s_foot_bulk'>11天22小时33分44秒</view>
  21 +</view>
  22 +
  23 +<view class='sp_wz_b'>
  24 +<view class='sp_wzi_b'>ddddd</view>
  25 +<view class='sp_jg_b'>¥1111111111111</view>
  26 +<view class='sp_jgx_b'>¥1111111111111111</view>
  27 +</view>
  28 +
  29 + <view class='guo_b'>
  30 + <view class='g_one_b'><text>已抢50件</text></view>
  31 + <view class='g_two_b'><text>50%</text></view>
  32 + </view>
  33 +</view>
  34 +
  35 +<view class='one_b'>
  36 +<view class='sp_top_b'>
  37 +
  38 +<view class='s_img_b'><image></image></view>
  39 +<view class='s_foot1_bulk'>11天22小时33分44秒</view>
  40 +</view>
  41 +
  42 +<view class='sp_wz_b'>
  43 +<view class='sp_wzi_b'>ddddd</view>
  44 +<view class='sp_jg_b'>1111</view>
  45 +<view class='sp_jgx_b'>1111</view>
  46 +</view>
  47 +
  48 + <view class='guo_b'>
  49 + <view class='g_one_b'><text>已抢50件</text></view>
  50 + <view class='g_two_b'><text>50%</text></view>
  51 + </view>
  52 +</view>
  53 +
  54 +<view class='one_b'>
  55 +<view class='sp_top_b'>
  56 +
  57 +<view class='s_img_b'><image></image></view>
  58 +<view class='s_foot2_bulk'>11天22小时33分44秒</view>
  59 +</view>
  60 +
  61 +<view class='sp_wz_b'>
  62 +<view class='sp_wzi_b'>ddddd</view>
  63 +<view class='sp_jg_b'>1111</view>
  64 +<view class='sp_jgx_b'>1111</view>
  65 +</view>
  66 + <view class='guo_b'>
  67 + <view class='g_one_b'><text>已抢50件</text></view>
  68 + <view class='g_two_b'><text>50%</text></view>
  69 + </view>
  70 +</view>
  71 +
  72 +</view>
  73 +
  74 +
  75 +<view class="sp2_b" wx:if="{{style_b==2}}">
  76 +<view class="sp2_one_b">
  77 +
  78 + <view class="g_g_b">
  79 + <view class="g_top_b">
  80 + <text>距结束时间</text>
  81 + <view class="o1_sj1_bulk"><text>11</text>天<text>22</text>:<text>22</text>:<text>22</text></view>
  82 + </view>
  83 + </view>
  84 +
  85 +
  86 + <view class='one1_b'>
  87 +
  88 +
  89 + <view class="o1_img_b"><image></image></view>
  90 + <view class="o1_right_b">
  91 +
  92 + <view class="sp_wzi_b">ddddd</view>
  93 +
  94 + <view class='sp2_guo_b'>
  95 + <view class='g_one2_b'><text>已抢50件</text></view>
  96 + <view class='g_two2_b'><text>50%</text></view>
  97 + </view>
  98 +
  99 + <view class='sp_jg_b'>1111</view>
  100 + <view class='sp_jgx_b'>1111</view>
  101 +
  102 +
  103 +
  104 + </view>
  105 + </view>
  106 +</view>
  107 +
  108 +
  109 + <view class="sp2_one_b">
  110 + <view class="g_top_b">
  111 + <text>距结束时间</text>
  112 + <view class="o1_sj1_bulk"><text>11</text>天<text>22</text>:<text>22</text>:<text>22</text></view>
  113 + </view>
  114 + <view class='one1_b'>
  115 +
  116 +
  117 + <view class="o1_img_b"><image></image></view>
  118 + <view class="o1_right_b">
  119 +
  120 + <view class="sp_wzi_b">ddddd</view>
  121 +
  122 + <view class='sp2_guo_b'>
  123 + <view class='g_one2_b'><text>已抢50件</text></view>
  124 + <view class='g_two2_b'><text>50%</text></view>
  125 + </view>
  126 +
  127 + <view class='sp_jg_b'>1111</view>
  128 + <view class='sp_jgx_b'>1111</view>
  129 +
  130 +
  131 +
  132 + </view>
  133 + </view>
  134 + </view>
  135 +
  136 +
  137 + <view class="sp2_one_b">
  138 + <view class="g_top_b">
  139 + <text>距结束时间</text>
  140 + <view class="o1_sj1_bulk"><text>11</text>天<text>22</text>:<text>22</text>:<text>22</text></view>
  141 + </view>
  142 + <view class='one1_b'>
  143 +
  144 +
  145 + <view class="o1_img_b"><image></image></view>
  146 + <view class="o1_right_b">
  147 +
  148 + <view class="sp_wzi_b">ddddd</view>
  149 +
  150 + <view class='sp2_guo_b'>
  151 + <view class='g_one2_b'><text>已抢50件</text></view>
  152 + <view class='g_two2_b'><text>50%</text></view>
  153 + </view>
  154 +
  155 + <view class='sp_jg_b'>1111</view>
  156 + <view class='sp_jgx_b'>1111</view>
  157 +
  158 +
  159 +
  160 + </view>
  161 + </view>
  162 + </view>
  163 +
  164 +
  165 +
  166 +</view>
  167 +
  168 +
  169 +
  170 +
  171 +
  172 +
  173 +
  174 +
  175 +
  176 +
  177 +
  178 +
  179 +
  180 +
  181 +
  182 +
  183 +
  184 +
  185 +
... ...
components/diy_groupbuy/diy_groupbuy.wxss 0 → 100644
  1 +/* pages/team_guo/team_guo.wxss */
  2 +
  3 +/* pages/wp/wp.wxss */
  4 +.kbstyle{
  5 + background-color: red;
  6 + width: 100%;
  7 + height: 60rpx;
  8 +}
  9 +
  10 +.right_b{
  11 + width: 30rpx;
  12 + height: 100%;
  13 + background: url(https://mshopimg.yolipai.net/miniapp/images/user/leftTip.png) no-repeat center center;
  14 + background-size: 22rpx 40rpx;
  15 + margin-left: 600rpx;
  16 +}
  17 +
  18 +.top_b{
  19 + width: 100%;
  20 + background-color: white;
  21 + height: 70rpx;
  22 + line-height: 70rpx;
  23 + color: #000;
  24 + text-align: left;
  25 + border-bottom: 2rpx solid #eee;
  26 + display: flex;
  27 +}
  28 +
  29 +.top_b .t_left_b{
  30 + width: 6rpx;
  31 + height: 38rpx;
  32 + background: #C4182E;
  33 + margin-top:18rpx;
  34 +margin-right:12rpx;
  35 +
  36 +}
  37 +
  38 +
  39 +.sp_b{
  40 + min-height: 300rpx;
  41 + width: 100%;
  42 + background-color: white;
  43 + padding:18rpx;
  44 +display: flex;
  45 +}
  46 +
  47 +.sp_b .sp_top_b{
  48 + height: 220rpx;
  49 + min-width: 30%;
  50 + background-color: bisque;
  51 +
  52 +}
  53 +
  54 +.sp_b .sp_top_b .s_img_b{
  55 + width: 210rpx;
  56 + height: 100%;
  57 +}
  58 +
  59 +.sp_b .sp_top_b .s_img_b image{
  60 + width: 210rpx;
  61 + height: 100%;
  62 + background-color: blueviolet;
  63 + position:relative;
  64 +top:-24rpx;
  65 +left:-64rpx;
  66 +
  67 +}
  68 +
  69 +.sp_b .sp_top_b .s_top_b{
  70 + position: absolute;
  71 +background-color:#C4182E;
  72 +font-size:24rpx;
  73 +height:38rpx;
  74 +line-height:38rpx;
  75 +left:40rpx;
  76 +top:160rpx;
  77 +padding:0 10rpx;
  78 +color:white;
  79 +border-radius:10rpx;
  80 +
  81 +}
  82 +
  83 +.sp_b .sp_top_b .s_foot_bulk{
  84 + font-size: 20rpx;
  85 + position: relative;
  86 + top:-40rpx;
  87 + width: 210rpx;
  88 + height: 38rpx;
  89 + line-height: 38rpx;
  90 + color: #fff;
  91 + text-align: center;
  92 + background-color: rgba(0, 0, 0, 0.5);
  93 +}
  94 +
  95 +
  96 +
  97 +.sp_wz_b{
  98 +width: 210rpx;
  99 + min-height:100rpx;
  100 +
  101 +}
  102 +
  103 +.sp_wz_b .sp_wzi_b{
  104 + font-size: 28rpx;
  105 + border-bottom: 2rpx solid #dcdcdc;
  106 + width: 100%;
  107 + text-align: left;
  108 + padding: 4rpx 0;
  109 + overflow: hidden;
  110 + height: 48rpx;
  111 + text-overflow: ellipsis;
  112 + display: inline-block;
  113 + white-space: nowrap;
  114 +}
  115 +
  116 +.sp_wz_b .sp_jg_b{
  117 + color: #C4182E;
  118 + font-size: 20rpx;
  119 + width: 50%;
  120 + overflow: hidden;
  121 + display: inline-block;
  122 +
  123 + text-overflow: ellipsis;
  124 + white-space: nowrap;
  125 +}
  126 +
  127 +.sp_wz_b .sp_jgx_b{
  128 + color: #dcdcdc;
  129 + text-decoration: line-through;
  130 + font-size: 20rpx;
  131 + width: 50%;
  132 + overflow: hidden;
  133 + display: inline-block;
  134 +
  135 + text-overflow: ellipsis;
  136 + white-space: nowrap;
  137 +}
  138 +
  139 +.one_b{
  140 + margin-left: 14rpx;
  141 +
  142 +}
  143 +
  144 +
  145 +.sp_b .sp_top_b .s_top1_b{
  146 + position: absolute;
  147 +background-color:#C4182E;
  148 +font-size:24rpx;
  149 +height:38rpx;
  150 +line-height:38rpx;
  151 +left:265rpx;
  152 +top:160rpx;
  153 +padding:0 10rpx;
  154 +color:white;
  155 +border-radius:10rpx;
  156 +
  157 +}
  158 +
  159 +.sp_b .sp_top_b .s_top2_b{
  160 + position: absolute;
  161 +background-color:#C4182E;
  162 +font-size:24rpx;
  163 +height:38rpx;
  164 +line-height:38rpx;
  165 +right:146rpx;
  166 +top:160rpx;
  167 +padding:0 10rpx;
  168 +color:white;
  169 +border-radius:10rpx;
  170 +
  171 +}
  172 +
  173 +
  174 +
  175 +.sp_b .sp_top_b .s_foot1_bulk{
  176 + font-size: 20rpx;
  177 + position: relative;
  178 + top:-40rpx;
  179 + width: 210rpx;
  180 + height: 38rpx;
  181 + line-height: 38rpx;
  182 + color: #fff;
  183 + text-align: center;
  184 + background-color: rgba(0, 0, 0, 0.5);
  185 +}
  186 +
  187 +
  188 +
  189 +.sp_b .sp_top_b .s_foot2_bulk{
  190 + font-size: 20rpx;
  191 + position: relative;
  192 + top:-40rpx;
  193 + width: 210rpx;
  194 + height: 38rpx;
  195 + line-height: 38rpx;
  196 + color: #fff;
  197 + text-align: center;
  198 + background-color: rgba(0, 0, 0, 0.5);
  199 +}
  200 +
  201 +
  202 +
  203 +
  204 +
  205 +
  206 +
  207 +.sp2_b{
  208 + width: 100%;
  209 + min-height: 240rpx;
  210 +
  211 +}
  212 +
  213 +.sp2_b .one1_b{
  214 + width: 100%;
  215 + background-color: white;
  216 + height: 252rpx;
  217 + display: flex;
  218 + padding: 20rpx;
  219 + border-bottom:2rpx#eee solid;
  220 +
  221 +}
  222 +
  223 +.sp2_b .one1_b .o1_img_b{
  224 + width: 200rpx;
  225 + height: 240rpx;
  226 + background-color: bisque;
  227 + margin-right: 24rpx;
  228 +}
  229 +
  230 +.o1_right_b .sp_wzi_b{
  231 + font-size: 36rpx;
  232 + margin-bottom:6rpx;
  233 +
  234 + width: 100%;
  235 + text-align: left;
  236 + padding: 4rpx 0;
  237 + overflow: hidden;
  238 + height: 48rpx;
  239 + text-overflow: ellipsis;
  240 +}
  241 +
  242 +.o1_right_b .o1_sj_b{
  243 + height: 60rpx;
  244 +
  245 + margin-bottom: 10rpx;
  246 +}
  247 +
  248 +.o1_right_b .o1_sj_b text{
  249 + background-color: #fdcb08;
  250 + text-align: center;
  251 + border-radius: 10rpx;
  252 + padding:4rpx;
  253 +margin-left:6rpx;
  254 +
  255 +}
  256 +
  257 +
  258 +
  259 +.o1_right_b .sp_jg_b{
  260 + color: #C4182E;
  261 + font-size: 36rpx;
  262 + width: 28%;
  263 + overflow: hidden;
  264 + margin-top: 10rpx;
  265 +}
  266 +
  267 +.o1_right_b .sp_jgx_b{
  268 + color: #dcdcdc;
  269 + text-decoration: line-through;
  270 + font-size: 26rpx;
  271 + width: 50%;
  272 + overflow: hidden;
  273 + display: inline-block;
  274 + margin-top: 10rpx;
  275 +}
  276 +
  277 +
  278 +.o1_img_b image{
  279 + width: 100%;
  280 + height: 100%;
  281 + background-color: blueviolet;
  282 + position: relative;
  283 + top:-24rpx;
  284 +left:-64rpx;
  285 +
  286 +}
  287 +
  288 +.o1_right_b .wo_b{
  289 + background-color: #C4182E;
  290 + width: 160rpx;
  291 + height: 60rpx;
  292 + line-height: 60rpx;
  293 + color: white;
  294 + text-align: center;
  295 + font-size: 38rpx;
  296 + margin-left:298rpx;
  297 +border-radius:14rpx;
  298 +
  299 +}
  300 +
  301 +.guo_b{
  302 + width: 100%;
  303 + border: 1px solid #C4182E;
  304 + text-align: left;
  305 + background-color: #fff;
  306 + border-radius:24rpx;
  307 +height:44rpx;
  308 +font-size:26rpx;
  309 +display: flex;
  310 +}
  311 +
  312 +.g_one_b{
  313 + width: 50%;
  314 + height: 44rpx;
  315 + line-height: 44rpx;
  316 + text-align: left;
  317 + background-color: #C4182E;
  318 +color: white;
  319 +border-radius:24rpx;
  320 +padding-right: 2rpx;
  321 + text-overflow: ellipsis;
  322 + white-space: nowrap;
  323 + overflow: hidden;
  324 +}
  325 +
  326 +.g_one_b text{
  327 + margin-left: 10rpx;
  328 + text-overflow: ellipsis;
  329 +}
  330 +
  331 +.g_two_b{
  332 + height: 44rpx;
  333 + line-height: 44rpx;
  334 + text-align: right;
  335 + width: 50%;
  336 + color: #C4182E;
  337 +}
  338 +
  339 +.g_two_b text{
  340 + margin-right: 10rpx;
  341 +}
  342 +
  343 +.g_top_b{
  344 + display: flex;
  345 + background-color: #fbfaff;
  346 + color: #333;
  347 + font-size: 28rpx;
  348 + height: 60rpx;
  349 + line-height: 60rpx;
  350 + width: 94%;
  351 +}
  352 +
  353 +.g_top_b text{
  354 + margin-left: 20rpx;
  355 +}
  356 +
  357 +.o1_sj_b text{
  358 + background-color: #fdcb08;
  359 + text-align: center;
  360 + border-radius: 10rpx;
  361 + padding:4rpx;
  362 + margin-left:6rpx;
  363 +
  364 +}
  365 +
  366 +.o1_sj_b{
  367 + margin-left: 370rpx;
  368 +}
  369 +
  370 +.sp2_guo_b{
  371 + width: 100%;
  372 + border: 1px solid #C4182E;
  373 + text-align: left;
  374 + background-color: #fff;
  375 + border-radius:24rpx;
  376 + height:44rpx;
  377 + font-size:26rpx;
  378 + display: flex;
  379 +}
  380 +
  381 +.g_one2_b{
  382 + width: 50%;
  383 + height: 44rpx;
  384 + line-height: 44rpx;
  385 + text-align: left;
  386 + background-color: #C4182E;
  387 + color: white;
  388 + border-radius:24rpx;
  389 + padding-right: 2rpx;
  390 +}
  391 +
  392 +.g_one2_b text{
  393 + margin-left: 10rpx;
  394 +}
  395 +
  396 +.g_two2_b{
  397 + height: 44rpx;
  398 + line-height: 44rpx;
  399 + text-align: right;
  400 + width: 50%;
  401 + color: #C4182E;
  402 +}
  403 +
  404 +.g_two2_b text{
  405 + margin-right: 10rpx;
  406 +}
  407 +
  408 +.o1_sj1_bulk text{
  409 + background-color: #fdcb08;
  410 + text-align: center;
  411 + border-radius: 10rpx;
  412 + padding:4rpx;
  413 + margin-left:6rpx;
  414 +}
  415 +
  416 +
  417 +
  418 +
  419 +.o1_sj1_bulk {
  420 + margin-left:306rpx;
  421 +}
  422 +
  423 +.o1_right_b{
  424 + width: 456rpx;
  425 +}
  426 +
  427 +
  428 +.down-arrow {
  429 + display :inline-block;
  430 + position: relative;
  431 + width: 40rpx;
  432 + height: 30rpx;
  433 + margin-right: 20rpx;
  434 +}
  435 +
  436 +.down-arrow::after {
  437 + display: inline-block;
  438 + content: " ";
  439 + height: 18rpx;
  440 + width: 18rpx;
  441 + border-width: 0 2rpx 2rpx 0;
  442 + border-color: #999999;
  443 + border-style: solid;
  444 + transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
  445 + transform-origin: center;
  446 + transition: transform .3s;
  447 + position: absolute;
  448 + top: 50%;
  449 + right: 10rpx;
  450 + margin-top: -10rpx;
  451 +}
  452 +
  453 +
  454 +
  455 +.pt_center{
  456 + background: #fff;
  457 + position: fixed;
  458 + padding: 15px;
  459 +}
  460 +
  461 +.pt_center .pt_zi span{
  462 + color: #333;
  463 +}
  464 +
  465 +.pt_c_img image{
  466 + background-color: red;
  467 + width: 48rpx;
  468 + height: 48rpx;
  469 + position: relative;
  470 + top: 0rpx;
  471 + right: 0rpx;
  472 + display: inline-block;
  473 +}
  474 +
  475 +.pt_c_img{
  476 + display: inline-block;
  477 +}
  478 +
  479 +.pt_zi{
  480 + width: 100%;
  481 + font-size: 36rpx;
  482 +}
  483 +
  484 +.g_g{
  485 + background-color: #fff;
  486 + width: 100%;
  487 +}
0 488 \ No newline at end of file
... ...
components/diy_nav/diy_nav.js 0 → 100644
  1 +var t = getApp(),
  2 + o = t.globalData.setting;
  3 +
  4 +Component({
  5 + properties: {
  6 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  7 + object: {
  8 + type: Object,
  9 + value: null,
  10 + },
  11 +
  12 + nav_list: {
  13 + type: Array,
  14 + value: [],
  15 + },
  16 +
  17 + },
  18 + data: {
  19 + // 这里是一些组件内部数据
  20 + strs:null,
  21 + imghost: o.imghost,
  22 + someData: {}
  23 + },
  24 +
  25 + ready: function() {
  26 + console.log("ready");
  27 + var g_id = this.data.object.data;
  28 + this.pd_navicon(g_id);
  29 + },
  30 + methods: {
  31 + // 这里是一个自定义方法,判断图片路径,并加载
  32 + pd_navicon:function(g_id){
  33 +
  34 + var item={};
  35 + var nav_strs=g_id;
  36 + for (var i=0;i<nav_strs.length;i++){
  37 + if (!(nav_strs[i].navicon.indexOf("/public/static/images/model/tag-icon.png"))){
  38 + nav_strs[i].navicon ="../../../../../images/nav-icon.png";
  39 + }
  40 + }
  41 + this.setData({
  42 + nav_list:nav_strs,
  43 + });
  44 + },
  45 + customMethod: function () { },
  46 + //智能跳转
  47 + go_url:function (e) {
  48 + var url=e.currentTarget.dataset.url;
  49 + getApp().goto(url);
  50 + }
  51 + }
  52 +})
0 53 \ No newline at end of file
... ...
components/diy_nav/diy_nav.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_nav/diy_nav.wxml 0 → 100644
  1 +<block wx:if="{{object.style==1}}">
  2 + <view class="{{object.seticon==1?'big':object.seticon==2?'big_one_two':'big_border_three'}}">
  3 + <block wx:for="{{nav_list}}">
  4 + <view data-url="{{item.wxapp_url}}" class="s1_gk_a1" bindtap="go_url">
  5 + <view style='width:{{100/nav_list.length}}%'
  6 + class="{{object.seticon==1?'big_view_one':object.seticon==2?'big_view_two':'bicder_picture'}}">
  7 + <block wx:if="{{item.navicon==null}}">
  8 + <image style='width:{{object.sliderExample+100}}rpx;height:{{object.sliderExample+100}}rpx;'
  9 + class="{{object.seticon==1?'print_one':object.seticon==2?'print_two':'image_none'}}"
  10 + src="{{imghost}}/miniapp/images/nav-icon.png"></image>
  11 + <view class="{{object.seticon==1?'font_one':object.seticon==2?'font_bicder_two':'font_three'}}">
  12 + {{item.title}}
  13 + </view>
  14 + </block>
  15 + <block wx:if="{{item.navicon!=null}}">
  16 + <image style='width:{{object.sliderExample+100}}rpx;height:{{object.sliderExample+100}}rpx;'
  17 + class="{{object.seticon==1?'print_one':object.seticon==2?'print_two':'image_none'}}"
  18 + src="{{item.navicon}}"></image>
  19 + <view class="{{object.seticon==1?'font_one':object.seticon==2?'font_bicder_two':'font_three'}}">
  20 + {{item.title}}
  21 + </view>
  22 + </block>
  23 + </view>
  24 + </view>
  25 + </block>
  26 + </view>
  27 +</block>
  28 +
  29 +<block wx:if="{{object.style==2}}">
  30 + <view class="big_two">
  31 + <!-- 图片一 -->
  32 + <block wx:for="{{nav_list}}">
  33 + <view data-url="{{item.wxapp_url}}" class="s1_gk_a1" bindtap="go_url">
  34 + <view class="one_div">
  35 + <view class="picture_one">
  36 + <block wx:if="{{item.navicon!=null}}">
  37 + <image style='width:{{object.sliderExample+100}}rpx;height:{{object.sliderExample+100}}rpx;'
  38 + src="{{item.navicon}}">
  39 + </image>
  40 + </block>
  41 +
  42 + <block wx:if="{{item.navicon==null}}">
  43 + <image style='width:{{object.sliderExample+100}}rpx;height:{{object.sliderExample+100}}rpx;'
  44 + src="{{imghost}}/miniapp/images/nav-icon.png">
  45 + </image>
  46 + </block>
  47 +
  48 + </view>
  49 + <view class="test">{{item.title}}</view>
  50 + </view>
  51 + </view>
  52 + </block>
  53 + </view>
  54 +</block>
  55 +
... ...
components/diy_nav/diy_nav.wxss 0 → 100644
  1 +/* 最大的view*/
  2 +
  3 +.big {
  4 + width: 100%;
  5 + /* min-height: 280rpx; */
  6 + /* 先设置最小容器单位,min-height:280rpx;然后再设置auto */
  7 + height: auto;
  8 + margin: 0rpx auto;
  9 + text-align: center;
  10 +}
  11 +
  12 +.s1_gk_a1 {
  13 + display: inline;
  14 +}
  15 +
  16 +/* 设置第一张图片的外框 */
  17 +
  18 +.big_view_one {
  19 + width: 25%;
  20 + min-height: 145rpx;
  21 + height: auto;
  22 + display: inline-block;
  23 + text-align: center;
  24 + vertical-align: middle;
  25 +}
  26 +
  27 +/* 第一张图片 */
  28 +
  29 +.print_one {
  30 + display: inline-block;
  31 + vertical-align: middle;
  32 + flex-direction: row;
  33 + margin-top: 30rpx;
  34 +}
  35 +
  36 +/* 第一个文字 */
  37 +
  38 +.font_one {
  39 + /*display: flex;*/
  40 + height: 40rpx;
  41 + font-size: 30rpx;
  42 + margin-top: 20rpx;
  43 + /*margin-left: 40rpx;*/
  44 + text-align: center;
  45 +}
  46 +
  47 +/* 图片2的大框 */
  48 +
  49 +.big_one_two {
  50 + display: inline-block;
  51 + /* display: flex; */
  52 + width: 100%;
  53 + min-height: 122rpx;
  54 + height: auto;
  55 + margin: 0 auto;
  56 + text-align: center;
  57 +}
  58 +
  59 +/* 图片2的外框 */
  60 +
  61 +.big_view_two {
  62 + display: inline-block;
  63 + /* display: flex; */
  64 + width: 20%;
  65 + min-height: 86rpx;
  66 + line-height: 86rpx;
  67 + height: auto;
  68 + margin-top: 20rpx;
  69 + text-align: center;
  70 +}
  71 +
  72 +/* 图片2 */
  73 +
  74 +.print_two {
  75 + margin-left: 5rpx;
  76 + vertical-align: middle;
  77 +}
  78 +
  79 +/* 文字2 */
  80 +
  81 +.font_bicder_two {
  82 + display: inline-block;
  83 + width: 80rpx;
  84 + font-size: 30rpx;
  85 + /* margin-left: 40rpx; */
  86 + vertical-align: middle;
  87 + line-height: 30rpx;
  88 + overflow: hidden;
  89 +}
  90 +
  91 +/* 3功能的大边框 */
  92 +
  93 +.big_border_three {
  94 + display: flex;
  95 + widows: 100%;
  96 + height: 108rpx;
  97 +}
  98 +
  99 +/* 图片的边框 */
  100 +
  101 +.bicder_picture {
  102 + display: flex;
  103 + width: 25%;
  104 +}
  105 +
  106 +/* 设置文字3 */
  107 +
  108 +.font_three {
  109 + display: inline-block;
  110 + margin-left: 70rpx;
  111 + margin-top: 40rpx;
  112 + font-size: 30rpx;
  113 + font-family: "宋体";
  114 +}
  115 +
  116 +/* 隐藏图片 */
  117 +
  118 +.image_none {
  119 + display: none;
  120 +}
  121 +
  122 +/* 判断后端图片 */
  123 +
  124 +.image {
  125 + margin-left: 55rpx;
  126 + width: 80rpx;
  127 + height: 80rpx;
  128 + transform: rotate(270deg);
  129 +}
  130 +
  131 +/*
  132 + 第二块 */
  133 +
  134 +.big_two {
  135 + display: inline-block;
  136 + width: 100%;
  137 + min-height: 280rpx;
  138 + /* 先设置最小容器单位,min-height:280rpx;然后再设置auto */
  139 + height: auto;
  140 +}
  141 +
  142 +image {
  143 + /* transform:rotate(270deg); */
  144 +}
  145 +
  146 +/* 图片大外层 */
  147 +
  148 +.one_div {
  149 + display: inline-block;
  150 + min-height: 50%;
  151 + width: 50%;
  152 + height: auto;
  153 +}
  154 +
  155 +/* 图片的外层 */
  156 +
  157 +.picture_one {
  158 + display: inline-block;
  159 + margin-left: 50rpx;
  160 + vertical-align: middle;
  161 +}
  162 +
  163 +/* 文字1 */
  164 +
  165 +.test {
  166 + width: 60rpx;
  167 + height: 40rpx;
  168 + margin-left: 30rpx;
  169 + font-size: 30rpx;
  170 + /* 被display:inline-block;要移动位置的时候用 vertical-align: middle; */
  171 + display: inline-block;
  172 + vertical-align: middle;
  173 +}
  174 +
  175 +/* 图片2的大外层 */
  176 +
  177 +.two_div {
  178 + display: inline-block;
  179 + min-height: 50%;
  180 + width: 50%;
  181 + height: auto;
  182 +}
  183 +
  184 +/* 图片2的外层*/
  185 +
  186 +.picture_two {
  187 + display: inline-block;
  188 + vertical-align: middle;
  189 +}
  190 +
  191 +/* 文字2 */
  192 +
  193 +.text_two {
  194 + width: 60rpx;
  195 + height: 40rpx;
  196 + margin-left: 30rpx;
  197 + font-size: 30rpx;
  198 + /* 被display:inline-block;要移动位置的时候用 vertical-align: middle中部; */
  199 + display: inline-block;
  200 + vertical-align: middle;
  201 +}
  202 +
  203 +/* 外层view3 */
  204 +
  205 +.three_div {
  206 + display: inline-block;
  207 + min-height: 50%;
  208 + width: 50%;
  209 + height: auto;
  210 + margin-top: 80rpx;
  211 +}
  212 +
  213 +/* 外层div4 */
  214 +
  215 +.four_div {
  216 + display: inline-block;
  217 + min-height: 50%;
  218 + width: 50%;
  219 + height: auto;
  220 + /* margin-top: 30rpx; */
  221 + vertical-align: middle;
  222 +}
... ...
components/diy_notice/diy_notice.js 0 → 100644
  1 +var t = getApp(),
  2 + o = t.globalData.setting;
  3 +Component({
  4 + properties: {
  5 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  6 + object: {
  7 + type: Object,
  8 + value: null,
  9 + },
  10 + },
  11 + data: {
  12 + // 这里是一些组件内部数据
  13 + imghost: o.imghost,
  14 + someData: {},
  15 + mleft:600,
  16 + timer: null,
  17 + width:0,
  18 + },
  19 + ready: function() {
  20 + var th=this;
  21 + },
  22 + detached() {
  23 + },
  24 + methods: {
  25 + go_url:function (e) {
  26 + var url=e.currentTarget.dataset.url;
  27 + getApp().goto(url);
  28 + },
  29 + }
  30 +})
0 31 \ No newline at end of file
... ...
components/diy_notice/diy_notice.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_notice/diy_notice.wxml 0 → 100644
  1 +<block wx:if="{{object.style==1}}">
  2 + <view data-url="{{object.wxapp_url}}" class="s1_gk_a1 pd_top10" bindtap="go_url" style="background-color: {{object.notice_bgcolor}}">
  3 + <view class="big_border">
  4 + <image class="image_c" src="/public/static/images/model/notice.png"></image>
  5 + <view class="marquee">
  6 + <view class="content">
  7 + <text style="color: {{object.notice_color}}">{{object.noticetxt}}</text> <text style="display: inline-block; width: 590rpx;"></text>
  8 + <text style="color: {{object.notice_color}}">{{object.noticetxt}}</text> <text style="display: inline-block; width: 590rpx;"></text>
  9 + <text style="color: {{object.notice_color}}">{{object.noticetxt}}</text> <text style="display: inline-block; width: 590rpx;"></text>
  10 + </view>
  11 + </view>
  12 + </view>
  13 + </view>
  14 +</block>
  15 +
  16 +
  17 +
  18 +
... ...
components/diy_notice/diy_notice.wxss 0 → 100644
  1 +.big_border {
  2 + width: 100%;
  3 + height: 80rpx;
  4 + margin-left:40rpx;
  5 +
  6 +}
  7 +.image_c{
  8 + width: 35rpx;
  9 + height: 35rpx;
  10 + margin-top: 24rpx;
  11 +}
  12 +
  13 +.view1 {
  14 + width: auto;
  15 + height: 60rpx;
  16 + line-height: 60rpx;
  17 + margin-left: 20rpx;
  18 + margin-top:15rpx;
  19 + font-size: 30rpx;
  20 +}
  21 +.border_min{
  22 + /* margin-top:-45rpx; */
  23 + width: 640rpx;
  24 + height: 60rpx;
  25 + display:inline-block;
  26 + overflow: hidden;
  27 +}
  28 +
  29 +
  30 +@keyframes kf-marque-animation{ 0% { transform: translateX(0); } 100% { transform: translateX(-33.3%); } }
  31 +.marquee{
  32 + width: 100%;
  33 + height: 44rpx;
  34 + line-height: 44rpx;
  35 + background: none;
  36 + border: none;
  37 + display: block;
  38 + overflow: hidden;
  39 + white-space: nowrap;
  40 + text-overflow: clip;
  41 + position: relative;
  42 + font-size: 28rpx;
  43 + margin-left: 50rpx;
  44 + margin-top: -45rpx;
  45 +}
  46 +.marquee .content{
  47 + display: inline-block;
  48 + position: relative;
  49 + padding-right: 0px;
  50 + animation: kf-marque-animation 4.5s linear infinite;
  51 + white-space: nowrap;
  52 +}
  53 +
  54 +.pd_top10{margin: 10rpx 0}
  55 +
... ...
components/diy_picMax/diy_picMax.js 0 → 100644
  1 +Component({
  2 + properties: {
  3 + object: {
  4 + type: Object,
  5 + value: null
  6 + },
  7 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  8 + },
  9 + data: {
  10 + // 这里是一些组件内部数据
  11 + someData: {},
  12 + pic_height:0,//图片组合的高度
  13 + },
  14 + ready: function () {
  15 + //console.log(this.data.object.data)
  16 + //--计算图片组合占用的高度--
  17 + var height=0;
  18 + this.properties.object.data.forEach(function (val,ind) {
  19 + if(val.fir.x==0){
  20 + height+=val.y_span*187;
  21 + }
  22 + })
  23 + this.setData({pic_height:height})
  24 +
  25 + },
  26 + methods: {
  27 + //智能跳转到页面
  28 + gopage(e) {
  29 + var url = e.currentTarget.dataset.url;
  30 + getApp().goto(url);
  31 + }
  32 + }
  33 +})
0 34 \ No newline at end of file
... ...
components/diy_picMax/diy_picMax.json 0 → 100644
  1 +{
  2 + "component": true
  3 + }
0 4 \ No newline at end of file
... ...
components/diy_picMax/diy_picMax.wxml 0 → 100644
  1 +<!--图片组合-->
  2 +<view class="picMax" style="height: {{pic_height}}rpx">
  3 + <view wx:for="{{object.data}}" class="pic_item width_{{item.x_span}} height_{{item.y_span}} mar_x{{item.fir.x}} mar_y{{item.fir.y}}">
  4 + <image bindtap='gopage' data-url="{{item.wxapp_url}}" src="{{item.src}}" mode="widthFix"></image>
  5 + </view>
  6 +</view>
... ...
components/diy_picMax/diy_picMax.wxss 0 → 100644
  1 +.picMax{width: 100%; padding: 0 10rpx;position: relative;}
  2 +.pic_item{position: absolute; top:0;left:0;}
  3 +.pic_item image{width: 100%; height: 100%}
  4 +.width_1{width: 187rpx}.width_2{width: 374rpx;}.width_3{width: 561rpx}.width_4{width:748rpx;}
  5 +.height_1{height: 187rpx;}.height_2{height: 374rpx;}.height_3{height: 561rpx}.height_4{height: 748rpx;}
  6 +.mar_x1{margin-left:187rpx;}.mar_x2{margin-left:374rpx;}.mar_x3{margin-left:561rpx}.mar_x4{margin-left: 748rpx;}
  7 +.mar_y1{margin-top: 187rpx;}.mar_y2{margin-top: 374rpx;}.mar_y3{margin-top: 561rpx}.mar_y4{margin-top: 748rpx;}
  8 +.picMax-clear{clear: both;}
0 9 \ No newline at end of file
... ...
components/diy_pingd_buy/diy_pingd_buy.js 0 → 100644
  1 +// var e = function(e) {
  2 +// return e && e.__esModule ? e : {
  3 +// default: e
  4 +// };
  5 +// }(require("../../utils/LoadMore3.js")),
  6 +// n = new e.default(),
  7 +var t = getApp(),
  8 + a = t.request,
  9 + o = t.globalData.setting,
  10 + os = o,
  11 + i = require("../../utils/util.js"),
  12 + ut = i,
  13 + s = require("../../utils/common.js");
  14 +var regeneratorRuntime = require('../../utils/runtime.js');
  15 +
  16 +Component({
  17 + properties: {
  18 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  19 + object: {
  20 + type: Object,
  21 + value: null,
  22 + },
  23 + goods_array: {
  24 + type: Array,
  25 + value: []
  26 + },
  27 + newTime: {
  28 + type: Number,
  29 + value: 0
  30 + },
  31 + },
  32 + data: {
  33 + // 这里是一些组件内部数据
  34 + yc: false,
  35 + someData: null,
  36 + ylp_img: "https://mshopimg.yolipai.net/",
  37 + timer: null,
  38 + iurl:o.imghost,
  39 + },
  40 + ready: function() {
  41 + console.log("ready");
  42 + var g_id = this.data.object.data;
  43 + console.log(g_id);
  44 + this.init(g_id);
  45 + },
  46 + detached() {
  47 + // 页面被被销毁的时候,清除定时器
  48 + clearInterval(this.data.timer);
  49 + },
  50 + methods: {
  51 + // 这里是一个自定义方法
  52 + customMethod: function() {},
  53 + init: function(g_id) {
  54 + var th = this,
  55 + app = getApp(), all_array = [],
  56 + index = 0,
  57 + goodsidlist="";
  58 +
  59 + //--先把商品ID串起来--
  60 + g_id.forEach(function(val, ind) {
  61 + var item = {};
  62 + goodsidlist+=val.goodsid+",";
  63 + })
  64 + goodsidlist= goodsidlist.substr(0,goodsidlist.length-1);
  65 +
  66 + //--调用接口,读取拼单--
  67 + app.request.promiseGet("/api/weshop/teamlist/getGoodsList?store_id="
  68 + +os.stoid+"&goodsidlist="+goodsidlist, {}).then(res => {
  69 +
  70 + //如果拼单的数组为空的时候
  71 + var goodslist=res.data.data;
  72 + if(goodslist.length==0) return false;
  73 +
  74 + /*--商品队列按照添加的顺序排列--*/
  75 + g_id.forEach(function(val, ind) {
  76 + goodslist.forEach(function (vy,indy) {
  77 + if(val.goodsid==vy.goods_id){
  78 + all_array.push(vy);
  79 + }
  80 + })
  81 + })
  82 + if(all_array.length==0){
  83 + all_array=goodslist;
  84 + }
  85 +
  86 + var arr = new Array();
  87 + //--三个三个一组---
  88 + for(var i=0;i< all_array.length;i+=3){
  89 + arr.push(all_array.slice(i,i+3));
  90 + }
  91 + /*--熏染到前台--*/
  92 + th.setData({goods_array:arr});
  93 + var newTime = ut.gettimestamp();
  94 + th.setData({ newTime: newTime });
  95 +
  96 + th.data.timer = setInterval(function() {
  97 + th.countDown2(th);
  98 + }, 1000);
  99 + });
  100 + },
  101 + //---小于10的格式化函数----
  102 + timeFormat: function(param) {
  103 + return param < 10 ? '0' + param : param;
  104 + },
  105 + //----拼单倒计时函数-----
  106 + countDown2: function(ob) {
  107 + if (ob == undefined) return false;
  108 + var ee = ob;
  109 + // 获取当前时间,同时得到活动结束时间数组
  110 + var newTime = ut.gettimestamp();
  111 + var List = ee.data.goods_array;
  112 + if (List.length == 0) return false;
  113 + for (var j = 0; j < List.length; j++) {
  114 + // 对结束时间进行处理渲染到页面
  115 + var endTimeList = List[j];
  116 + for (var i = 0; i < endTimeList.length; i++) {
  117 + var o = endTimeList[i];
  118 + var endTime = o.end_time;
  119 + // if (o.status == 0) endTime = o.start_time;
  120 + let obj = null;
  121 + // 如果活动未结束,对时间进行处理
  122 + if (endTime - newTime > 0) {
  123 + let time = (endTime - newTime);
  124 + // 获取天、时、分、秒
  125 + let day = parseInt(time / (60 * 60 * 24));
  126 + let hou = parseInt(time % (60 * 60 * 24) / 3600);
  127 + let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
  128 + let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
  129 + obj = {
  130 + day: this.timeFormat(day),
  131 + hou: this.timeFormat(hou),
  132 + min: this.timeFormat(min),
  133 + sec: this.timeFormat(sec)
  134 + }
  135 + } else {
  136 + //活动已结束,全部设置为'00'
  137 + obj = {
  138 + day: '00',
  139 + hou: '00',
  140 + min: '00',
  141 + sec: '00'
  142 + }
  143 + }
  144 + var txt = "goods_array[" + j + "][" + i + "].djs";
  145 + ee.setData({
  146 + [txt]: obj
  147 + });
  148 + }
  149 + }
  150 + },
  151 + //图片失败,默认图片
  152 + bind_bnerr3: function (e) {
  153 + var _errImg = e.target.dataset.errorimg;
  154 + var _Img = e.target.dataset.img;
  155 + if (_Img != undefined) {
  156 + var _errObj = {};
  157 + _errObj[_errImg] = "/public/images/default_goods_image_240.gif";
  158 + this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
  159 + }
  160 + },
  161 + go_to_pindlist:function () {
  162 + wx.navigateTo({
  163 + url:"/pages/activity/pind_list/pind_list"
  164 + });
  165 + }
  166 + },
  167 +
  168 +
  169 +})
0 170 \ No newline at end of file
... ...
components/diy_pingd_buy/diy_pingd_buy.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_pingd_buy/diy_pingd_buy.wxml 0 → 100644
  1 +<!--pages/wp/wp.wxml-->
  2 +<block wx:if="goods_array.length>0">
  3 + <!--拼单-->
  4 + <view class='top_p'>
  5 + <view class='t_left_p'></view>
  6 + <view class='t_ms_p'>拼单</view>
  7 + <view class='right_p' bindtap="go_to_pindlist">
  8 + <image src="{{iurl}}/miniapp/images/icon-arrowdown.png"></image>
  9 + </view>
  10 + </view>
  11 + <!--商品展示-->
  12 + <swiper class="s_prom" indicator-active-color='red' indicator-dots="false" wx:if="{{object.style==1}}">
  13 + <view class='sp_p' wx:if="{{object.style==1}}">
  14 + <swiper-item class="s_it" wx:for="{{goods_array}}" >
  15 + <block wx:for="{{item}}" wx:for-item="aitem" wx:for-index="aind" >
  16 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{aitem.goods_id}}" class="s1_gk_a1">
  17 + <view class='one_p'>
  18 + <view class='sp_top_p'>
  19 +
  20 + <block wx:if="{{aitem.start_time>newTime}}">
  21 + <span class='s_top_p' style="background-color: #ffe718;color: #3c3b31;font-weight: bold">即将开始</span>
  22 + </block>
  23 + <block wx:if="{{aitem.start_time<newTime}}">
  24 + <span class='s_top_p'>火热进行</span>
  25 + </block>
  26 +
  27 + <!-- <span class='s_top_p'>火热进行</span> -->
  28 +
  29 + <view class='s_img_p'>
  30 + <image src="{{iurl+aitem.original_img}}"
  31 + data-errorimg="goods_array[{{index}}][{{aind}}].original_img"
  32 + binderror="bind_bnerr3"></image>
  33 + </view>
  34 +
  35 + <!--<view class='s_foot_p'>-->
  36 + <!--<text>{{aitem.djs.hou}}天</text>-->
  37 + <!--<text>{{aitem.djs.hou}}时</text>-->
  38 + <!--<text>{{aitem.djs.min}}分</text>-->
  39 + <!--<text>{{aitem.djs.sec}}秒</text>-->
  40 + <!--</view>-->
  41 +
  42 + <view class='sp_sj_p' wx:if="{{aitem.kttype==1}}">商家</view>
  43 + <view class='sp_sj_p' wx:if="{{aitem.kttype==2}}">会员</view>
  44 + <view class='sp_sj_p' wx:if="{{aitem.kttype==3}}">阶梯</view>
  45 + </view>
  46 +
  47 + <view class='sp_wz_p'>
  48 + <view class='sp_wzi_p'>{{aitem.goods_name}}</view>
  49 + <view class='sp_jg_p'>¥{{aitem.price}}</view>
  50 + <!--<view class='sp_jgx_p'>¥{{aitem.market_price}}</view>-->
  51 +
  52 + <view class="tuan_set_num">
  53 + <view class="co-red2">{{aitem.ct_num}}人团</view>
  54 +
  55 + <view wx:if="{{aitem.kttype==1 && aitem.goods_num>aitem.buy_num }}" class="cantuan">去参团</view>
  56 + <view wx:if="{{aitem.kttype==2 && aitem.goods_num>aitem.buy_num }}" class="cantuan">去开团</view>
  57 + <view wx:if="{{aitem.kttype==3 && aitem.goods_num>aitem.buy_num }}" class="cantuan">去开团</view>
  58 + <view wx:if="{{aitem.goods_num<=aitem.buy_num }}" class="cantuan huise">已抢光</view>
  59 + </view>
  60 + </view>
  61 + </view>
  62 + </navigator>
  63 + </block>
  64 + </swiper-item>
  65 +
  66 + </view>
  67 + </swiper>
  68 + <view class="sp2_p" wx:if="{{object.style==2}}">
  69 + <block wx:for="{{goods_array}}" >
  70 + <block wx:for="{{item}}" wx:for-item="aitem" wx:for-index="aind" >
  71 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{aitem.goods_id}}" class="s1_gk_a1">
  72 + <view class='one1_p'>
  73 + <block>
  74 + <view class="o1_img_p">
  75 + <image src="{{iurl+aitem.original_img}}"
  76 + data-errorimg="goods_array[{{index}}][{{aind}}].original_img"
  77 + binderror="bind_bnerr3"></image>
  78 + <view class='sp_sj1_p' wx:if="{{aitem.kttype==1}}">商家</view>
  79 + <view class='sp_sj1_p' wx:if="{{aitem.kttype==2}}">会员</view>
  80 + <view class='sp_sj1_p' wx:if="{{aitem.kttype==3}}">阶梯</view>
  81 + </view>
  82 + </block>
  83 +
  84 + <view class="o1_right_p">
  85 +
  86 + <view class="sp_wzi_p">{{aitem.title}}</view>
  87 + <view class="co-red2">
  88 + <text class="yituan_num">已团{{aitem.buy_num}}件</text>
  89 + {{aitem.ct_num}}人团
  90 + </view>
  91 + <view class='sp_jg_p'>¥{{aitem.price}}</view>
  92 + <view class='sp_jgx_p'>¥{{aitem.market_price}}</view>
  93 +
  94 + <view class="o1_sj_p">
  95 + <image class="time_img" src="/public/static/images/model/time.png"></image><block wx:if="aitem.djs.day>0">{{aitem.djs.day}}天</block>{{aitem.djs.hou}}时{{aitem.djs.min}}分{{aitem.djs.sec}}秒
  96 + </view>
  97 +
  98 + <view wx:if="{{aitem.kttype==1 && aitem.goods_num>aitem.buy_num }}" class="wo_p">去参团</view>
  99 + <view wx:if="{{aitem.kttype==2 && aitem.goods_num>aitem.buy_num }}" class="wo_p">去开团</view>
  100 + <view wx:if="{{aitem.kttype==3 && aitem.goods_num>aitem.buy_num }}" class="wo_p">去参团</view>
  101 + <view wx:if="{{aitem.goods_num<=aitem.buy_num }}" class="wo_p huise">已抢光</view>
  102 +
  103 + </view>
  104 + </view>
  105 + </navigator>
  106 + </block>
  107 + </block>
  108 + </view>
  109 +
  110 +</block>
0 111 \ No newline at end of file
... ...
components/diy_pingd_buy/diy_pingd_buy.wxss 0 → 100644
  1 +/* pages/wp/wp.wxss */
  2 +
  3 +.top_p {
  4 + width: 100%;
  5 + background-color: white;
  6 + height: 70rpx;
  7 + line-height: 70rpx;
  8 + color: #000;
  9 + text-align: left;
  10 + border-bottom: 2rpx solid #eee;
  11 + display: flex;
  12 +}
  13 +
  14 +.right_p {
  15 + width: 30rpx;
  16 + height: 100%;
  17 + margin-left: 580rpx;
  18 +}
  19 +
  20 +.right_p image {
  21 + width: 30rpx;
  22 + height: 30rpx;
  23 +}
  24 +
  25 +.top_p .t_left_p {
  26 + width: 10rpx;
  27 + height: 38rpx;
  28 + background: #c4182e;
  29 + margin-top: 18rpx;
  30 + margin-right: 12rpx;
  31 + margin-left: 20rpx;
  32 +}
  33 +
  34 +.sp_p {
  35 + min-height: 300rpx;
  36 + width: 100%;
  37 + background-color: white;
  38 + padding: 18rpx;
  39 + display: flex;
  40 +}
  41 +
  42 +.sp_p .sp_top_p {
  43 + height: 220rpx;
  44 + min-width: 30%;
  45 + position: relative;
  46 +}
  47 +
  48 +.sp_p .sp_top_p .s_img_p {
  49 + width: 210rpx;
  50 + height: 100%;
  51 +}
  52 +
  53 +.sp_p .sp_top_p .s_img_p image {
  54 + width: 100%;
  55 + height: 100%;
  56 + background-color: blueviolet;
  57 + left: 0rpx;
  58 + vertical-align: middle;
  59 +}
  60 +
  61 +.sp_p .sp_top_p .s_top_p {
  62 + background-color: #c4182e;
  63 + font-size: 24rpx;
  64 + height: 38rpx;
  65 + line-height: 38rpx;
  66 + left: 6rpx;
  67 + padding: 0 10rpx;
  68 + border-radius: 10rpx;
  69 + z-index: 9;
  70 + position: absolute;
  71 + width: 100rpx;
  72 + color: #fff;
  73 + text-align: center;
  74 +}
  75 +
  76 +.sp_p .sp_top_p .s_foot_p {
  77 + font-size: 20rpx;
  78 + position: relative;
  79 + top: -90rpx;
  80 + width: 210rpx;
  81 + height: 38rpx;
  82 + line-height: 38rpx;
  83 + color: #fff;
  84 + text-align: center;
  85 + background-color: rgba(0, 0, 0, 0.5);
  86 +}
  87 +
  88 +.s_it {
  89 + width: 100%;
  90 + display: flex;
  91 + background-color: white;
  92 +}
  93 +
  94 +.s1_gk_a1 {
  95 + display: inline;
  96 + width: auto;
  97 + height: auto;
  98 +}
  99 +
  100 +.s_prom {
  101 + width: 100%;
  102 + background-color: white;
  103 + min-height: 200rpx;
  104 +}
  105 +
  106 +swiper {
  107 + display: block;
  108 + height: 400rpx;
  109 +}
  110 +
  111 +.sp_wz_p {
  112 + width: 210rpx;
  113 + min-height: 100rpx;
  114 +}
  115 +
  116 +.sp_wz_p .sp_wzi_p {
  117 + font-size: 30rpx;
  118 + border-bottom: 1rpx solid #dcdcdc;
  119 + width: 100%;
  120 + text-align: left;
  121 + padding: 4rpx 0;
  122 + overflow: hidden;
  123 + height: 48rpx;
  124 + line-height: 48rpx;
  125 + text-overflow: ellipsis;
  126 + white-space: nowrap;
  127 +}
  128 +
  129 +.sp_wz_p .sp_jg_p {
  130 + color: #c4182e;
  131 + font-size: 30rpx;
  132 + overflow: hidden;
  133 + display: inline-block;
  134 + text-overflow: ellipsis;
  135 + white-space: nowrap;
  136 + margin-right: 10rpx;
  137 +}
  138 +
  139 +.sp_wz_p .sp_jgx_p {
  140 + color: #adadad;
  141 + text-decoration: line-through;
  142 + font-size: 24rpx;
  143 + overflow: hidden;
  144 + display: inline-block;
  145 + text-overflow: ellipsis;
  146 + white-space: nowrap;
  147 +}
  148 +
  149 +.one_p {
  150 + margin-left: 20rpx;
  151 +}
  152 +
  153 +.sp_p .sp_top_p .s_top1_p {
  154 + position: absolute;
  155 + background-color: #c4182e;
  156 + font-size: 24rpx;
  157 + height: 38rpx;
  158 + line-height: 38rpx;
  159 + left: 265rpx;
  160 + top: 160rpx;
  161 + padding: 0 10rpx;
  162 + color: white;
  163 + border-radius: 10rpx;
  164 +}
  165 +
  166 +.sp_p .sp_top_p .s_top2_p {
  167 + position: absolute;
  168 + background-color: #c4182e;
  169 + font-size: 24rpx;
  170 + height: 38rpx;
  171 + line-height: 38rpx;
  172 + right: 146rpx;
  173 + top: 160rpx;
  174 + padding: 0 10rpx;
  175 + color: white;
  176 + border-radius: 10rpx;
  177 +}
  178 +
  179 +.sp_p .sp_top_p .s_foot1_p {
  180 + font-size: 20rpx;
  181 + position: absolute;
  182 + top: 332rpx;
  183 + width: 210rpx;
  184 + height: 38rpx;
  185 + line-height: 38rpx;
  186 + color: #fff;
  187 + text-align: center;
  188 + background-color: rgba(0, 0, 0, 0.5);
  189 +}
  190 +
  191 +.sp_p .sp_top_p .s_foot2_p {
  192 + font-size: 20rpx;
  193 + position: absolute;
  194 + top: 332rpx;
  195 + width: 210rpx;
  196 + height: 38rpx;
  197 + line-height: 38rpx;
  198 + color: #fff;
  199 + text-align: center;
  200 + background-color: rgba(0, 0, 0, 0.5);
  201 +}
  202 +
  203 +.sp2_p {
  204 + width: 100%;
  205 + min-height: 240rpx;
  206 +}
  207 +
  208 +.sp2_p .one1_p {
  209 + width: 100%;
  210 + background-color: white;
  211 + height: 252rpx;
  212 + display: flex;
  213 + padding: 20rpx;
  214 + border-bottom: 6rpx#eee solid;
  215 +}
  216 +
  217 +.sp2_p .one1_p .o1_img_p {
  218 + width: 200rpx;
  219 + height: 240rpx;
  220 + margin-right: 24rpx;
  221 +}
  222 +
  223 +.o1_right_p{position: relative; width: 485rpx;}
  224 +
  225 +.o1_right_p .sp_wzi_p {
  226 + font-size: 36rpx;
  227 + margin-bottom: 6rpx;
  228 + width: 100%;
  229 + text-align: left;
  230 + padding: 4rpx 0;
  231 + overflow: hidden;
  232 + height: 48rpx;
  233 + text-overflow: ellipsis;
  234 +}
  235 +
  236 +.o1_right_p .o1_sj_p {
  237 + height: 60rpx;
  238 + margin-bottom: 10rpx;
  239 + font-size: 28rpx;
  240 + line-height: 40rpx;
  241 +}
  242 +
  243 +.o1_right_p .o1_sj_p text {
  244 + background-color: #fdcb08;
  245 + text-align: center;
  246 + border-radius: 10rpx;
  247 + padding: 4rpx;
  248 + margin-left: 6rpx;
  249 +}
  250 +
  251 +.o1_right_p .sp_jg_p {
  252 + color: #c4182e;
  253 + font-size: 36rpx;
  254 + overflow: hidden;
  255 + display: inline-block;
  256 + margin-right: 10rpx;
  257 +}
  258 +
  259 +.o1_right_p .sp_jgx_p {
  260 + color: #adadad;
  261 + text-decoration: line-through;
  262 + font-size: 26rpx;
  263 + overflow: hidden;
  264 + display: inline-block;
  265 +}
  266 +
  267 +.o1_img_p image {
  268 + width: 100%;
  269 + height: 100%;
  270 + background-color: blueviolet;
  271 + position: relative;
  272 + top: -8rpx;
  273 + left: 0rpx;
  274 +}
  275 +
  276 +.o1_right_p .wo_p {
  277 + background-color: #c4182e;
  278 + width: 160rpx;
  279 + height: 60rpx;
  280 + line-height: 60rpx;
  281 + color: white;
  282 + text-align: center;
  283 + font-size: 26rpx;
  284 + border-radius: 14rpx;
  285 + position: absolute;
  286 + right: 0;
  287 + bottom:46rpx;
  288 +}
  289 +
  290 +.sp_sj_p {
  291 + background-color: red;
  292 + color: white;
  293 + font-size: 24rpx;
  294 + border-radius: 50%;
  295 + position: absolute;
  296 + bottom: 300rpx;
  297 + right: 0rpx;
  298 + top: 0;
  299 + width: 60rpx;
  300 + height: 60rpx;
  301 + text-align: center;
  302 + line-height: 60rpx;
  303 +
  304 +}
  305 +
  306 +.sp_sj1_p {
  307 + background-color: red;
  308 + color: white;
  309 + font-size: 24rpx;
  310 + border-radius: 50%;
  311 + position: relative;
  312 + bottom: 257rpx;
  313 + width: 60rpx;
  314 + height: 60rpx;
  315 + text-align: center;
  316 + line-height: 60rpx;
  317 +}
  318 +.tuan_set_num{
  319 + display: flex;justify-content: space-between; font-size: 28rpx;
  320 +}
  321 +
  322 +.tuan_set_num .co-red2{
  323 + color: #B2AEA8;font-size: 26rpx;
  324 +}
  325 +.tuan_set_num .cantuan{
  326 + background:#c4182e; color: #fff; padding: 4rpx 10rpx; border-radius:5rpx ;
  327 +}
  328 +.tuan_set_num .cantuan.huise{
  329 + background:gainsboro; color: #666;
  330 +}
  331 +
  332 +.o1_sj_p .time_img{width: 40rpx; height: 40rpx; vertical-align: top; margin-right: 10rpx;}
  333 +.o1_right_p .co-red2{font-size:30rpx; color: #999;}
  334 +.o1_right_p .co-red2 .yituan_num{font-size:30rpx; margin-right: 10rpx; color: #333;}
... ...
components/diy_richtext/diy_richtext.js 0 → 100644
  1 +Component({
  2 + properties: {
  3 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  4 +
  5 + nodes: {
  6 + type: String,
  7 + value: '<div><h3>javascript - <em>js同步编程</em>与异步编程的区别,异步有哪些优点,为什么...</h3><div><span>2016年5月20日 - </span>从编程方式来讲当然是<em>同步编程</em>的方式更为简单,但是同步有其局限性一是假如是单线程那么一旦遇到阻塞调用,会造成整个线程阻塞,导致cpu无法得到有效利用...</div><div><div></div><span ><span ></span></span> - 百度快照</div><div ><span>为您推荐:</span>js同步和异步ajax异步和同步的区别</div></div>',
  8 + },
  9 + my:{
  10 + type: String,
  11 + value:''
  12 + }
  13 +
  14 +
  15 +
  16 + },
  17 + data: {
  18 + // 这里是一些组件内部数据
  19 +
  20 + someData: {}
  21 + },
  22 +
  23 + pageLifetimes: {
  24 + // 组件所在页面的生命周期函数
  25 + show: () => { },
  26 + hide: () => { }
  27 + },
  28 +
  29 +
  30 + methods: {
  31 + // 这里是一个自定义方法
  32 +
  33 + customMethod: function () {
  34 + this.setData({
  35 + my:'oooooo'
  36 + })
  37 + },
  38 + }
  39 +})
0 40 \ No newline at end of file
... ...
components/diy_richtext/diy_richtext.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_richtext/diy_richtext.wxml 0 → 100644
  1 +<!--pages/diy_fwb/diy_fwb.wxml-->
  2 +<rich-text nodes="{{nodes}}"></rich-text>
  3 +
  4 +
  5 +
  6 +<!-- <view>
  7 +
  8 +<w-test inner-text="sssszwpwpwpww"></w-test>
  9 + <component-tag-name inner-text="Some text"></component-tag-name>
  10 +</view> -->
  11 +
... ...
components/diy_richtext/diy_richtext.wxss 0 → 100644
  1 +/* pages/diy_fwb/diy_fwb.wxss */
0 2 \ No newline at end of file
... ...
components/diy_searchbox/diy_searchbox.js 0 → 100644
  1 +var t = getApp(),
  2 + o = t.globalData.setting;
  3 +
  4 +
  5 +Component({
  6 + properties: {
  7 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  8 +
  9 + object: {
  10 + type: Object,
  11 + value: null,
  12 + },
  13 + },
  14 + data: {
  15 + // 这里是一些组件内部数据
  16 + yc:false,
  17 + imghost: o.imghost,
  18 + someData: {}
  19 + },
  20 + ready: function() {
  21 + console.log("ready");
  22 + },
  23 + methods: {
  24 + //智能跳转
  25 + go_url:function (e) {
  26 + var url=e.currentTarget.dataset.url;
  27 + getApp().goto(url);
  28 + }
  29 +
  30 +
  31 +
  32 + }
  33 +})
0 34 \ No newline at end of file
... ...
components/diy_searchbox/diy_searchbox.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_searchbox/diy_searchbox.wxml 0 → 100644
  1 +<!--pages/diy_ss/diy_ss.wxml-->
  2 +<view class='ss' wx:if="{{object.style==1}}">
  3 + <view bindtap='go_url' data-url="/pages/goods/search/search" class="s1_gk_a1">
  4 + <view class='s_ge'>
  5 + <image src='{{imghost}}/miniapp/images/search.png'></image>
  6 + <text>在店铺内搜索</text>
  7 + </view>
  8 + </view>
  9 +</view>
  10 +
  11 +<view class='ss2' wx:if='{{object.style==2}}' style='background-color:{{object.top_bgcolor}}'>
  12 + <view class='s2_left'>
  13 + <navigator url="/pages/index/index/index" class="s1_gk_a1">
  14 + <image src='/public/static/images/model/nav.png'></image>
  15 + </navigator>
  16 + </view>
  17 +
  18 + <view class='s2_cen' style='background-color:{{object.inner_bgcolor}}'>
  19 + <navigator url="/pages/goods/search/search" class="s1_gk_a2">
  20 + <image src='/public/static/images/model/select.png'></image>
  21 + <text>在店铺内搜索</text>
  22 + </navigator>
  23 + </view>
  24 +
  25 + <view class='s2_right'>
  26 + <navigator url="/pages/cart/cart/cart" class="s1_gk_a1">
  27 + <image src='/public/static/images/model/car.png'></image>
  28 + </navigator>
  29 + </view>
  30 +</view>
0 31 \ No newline at end of file
... ...
components/diy_searchbox/diy_searchbox.wxss 0 → 100644
  1 +/* pages/diy_ss/diy_ss.wxss */
  2 +
  3 +.ss{
  4 + font-size: 28rpx;
  5 + text-align: center;
  6 + padding: 20rpx;
  7 +}
  8 +
  9 +.s_ge{
  10 + width: 700rpx;
  11 + height: 70rpx;
  12 + text-align: center;
  13 + border-radius: 8rpx;
  14 + color: #999;
  15 + background: #fff none repeat scroll 0 0;
  16 + border: 2px solid #eee;
  17 + line-height: 64rpx;
  18 +}
  19 +
  20 +.s_ge image{
  21 + width: 30rpx;
  22 + height: 30rpx;
  23 + margin-right: 10rpx;
  24 + margin-bottom: -8rpx;
  25 +}
  26 +
  27 +.ss2{
  28 + background-color: rgb(232, 31, 24);
  29 +
  30 + display: flex;
  31 + width: 100%;
  32 + padding: 10rpx;
  33 + height: 70rpx;
  34 + line-height: 70rpx;
  35 +}
  36 +
  37 +.s2_left image{
  38 + width: 35rpx;
  39 + height: 30rpx;
  40 + margin-left: 10rpx;
  41 +}
  42 +
  43 +.s2_cen{
  44 + width: 80%;
  45 + height: 70rpx;
  46 + color: #fff;
  47 + text-align: left;
  48 + font-size: 28rpx;
  49 + line-height: 60rpx;
  50 + background-color: rgb(207, 6, 0);
  51 + margin-left: 20rpx;
  52 +}
  53 +
  54 +.s_ge text{
  55 + margin-bottom: 10rpx;
  56 +}
  57 +
  58 +.s2_cen image{
  59 + width: 30rpx;
  60 + height: 30rpx;
  61 + margin-left: 10rpx;
  62 + margin-right: 4rpx;
  63 + margin-bottom:-6rpx;
  64 +margin-top:20rpx;
  65 +
  66 +}
  67 +
  68 +.s1_gk_a1{
  69 + display: inline;
  70 + width: auto;
  71 + height: auto;
  72 +}
  73 +
  74 +.s2_right image{
  75 + width: 35rpx;
  76 + height: 30rpx;
  77 + margin-left: 20rpx;
  78 +}
0 79 \ No newline at end of file
... ...
components/diy_seckill/diy_seckill.js 0 → 100644
  1 +// var e = function(e) {
  2 +// return e && e.__esModule ? e : {
  3 +// default: e
  4 +// };
  5 +// }(require("../../utils/LoadMore3.js")),
  6 +// n = new e.default(),
  7 +var t = getApp(),
  8 + a = t.request,
  9 + o = t.globalData.setting,
  10 + os = o,
  11 + i = require("../../utils/util.js"),
  12 + ut = i,
  13 + s = require("../../utils/common.js");
  14 +var regeneratorRuntime = require('../../utils/runtime.js');
  15 +Component({
  16 + properties: {
  17 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  18 + object: {
  19 + type: Object,
  20 + value: null,
  21 + },
  22 + goods_array: {
  23 + type: Array,
  24 + value: []
  25 + },
  26 + newTime: {
  27 + type: Number,
  28 + value: 0
  29 + },
  30 + },
  31 + data: {
  32 + // 这里是一些组件内部数据
  33 + yc: false,
  34 + someData: null,
  35 + ylp_img: "https://mshopimg.yolipai.net/",
  36 + imghost: os.imghost,
  37 + timer: null,
  38 + },
  39 + ready: function() {
  40 + console.log("ready");
  41 + var g_id = this.data.object.data;
  42 + console.log(g_id);
  43 + this.init(g_id);
  44 + },
  45 + detached() {
  46 + // 页面被被销毁的时候,清除定时器
  47 + clearInterval(this.data.timer);
  48 + },
  49 + methods: {
  50 + // 这里是一个自定义方法
  51 + customMethod: function() {},
  52 + init: function(g_id) {
  53 + var th = this, app = getApp(),all_array = [], goodsidlist="";
  54 +
  55 + //--先把商品ID串起来--
  56 + g_id.forEach(function(val, ind) {
  57 + var item = {};
  58 + goodsidlist+=val.goodsid+",";
  59 + })
  60 +
  61 + //--调用接口,读取秒杀--
  62 + app.request.promiseGet("/api/ms/flash_sale/getGoodsList?store_id="
  63 + +os.stoid+"&goodsidlist="+goodsidlist, {}).then(res => {
  64 + //如果秒杀的数组为空的时候
  65 + console.log(111111111111)
  66 + console.log(res.data.data)
  67 + var goodslist=res.data.data;
  68 + if(goodslist.length==0) return false;
  69 +
  70 + // 判断火热,预热
  71 + var newTime = ut.gettimestamp();
  72 + th.setData({newTime:newTime});
  73 + // for(var a=0;a< goodslist.length;a++){
  74 + // var starTime=goodslist[a].start_time;
  75 + // var msStr=[];
  76 + // console.log(2222222222)
  77 + // console.log(starTime+":"+newTime)
  78 + // if (starTime>newTime){
  79 + // msStr.push()
  80 + // //th.setData({msText:'即将开始'});
  81 + // }
  82 + // if (starTime<newTime){
  83 + // th.setData({msText:'火热进行'});
  84 + // }
  85 + // }
  86 + /*--商品队列按照添加的顺序排列--*/
  87 + g_id.forEach(function(val, ind) {
  88 + goodslist.forEach(function (vy,indy) {
  89 + if(val.goodsid==vy.goods_id){
  90 + all_array.push(vy);
  91 + th.setData({goods_array:arr});
  92 + }
  93 + })
  94 + })
  95 + if(all_array.length==0){
  96 + all_array=goodslist;
  97 + }
  98 +
  99 + var arr = new Array();
  100 + //--三个三个一组---
  101 + for(var i=0;i< all_array.length;i+=3){
  102 + arr.push(all_array.slice(i,i+3));
  103 + }
  104 + /*--熏染到前台--*/
  105 +
  106 + th.setData({goods_array:arr});
  107 +
  108 + th.data.timer = setInterval(function() {
  109 + th.countDown2(th);
  110 + }, 1000);
  111 + });
  112 + },
  113 + //---小于10的格式化函数----
  114 + timeFormat: function(param) {
  115 + return param < 10 ? '0' + param : param;
  116 + },
  117 + //----秒杀倒计时函数-----
  118 + countDown2: function(ob) {
  119 + if (ob == undefined) return false;
  120 + var ee = ob;
  121 + // 获取当前时间,同时得到活动结束时间数组
  122 + var newTime = ut.gettimestamp();
  123 + var List = ee.data.goods_array;
  124 + if (List.length == 0) return false;
  125 + for (var j = 0; j < List.length; j++) {
  126 + // 对结束时间进行处理渲染到页面
  127 + var endTimeList = List[j];
  128 + for (var i = 0; i < endTimeList.length; i++) {
  129 + var o = endTimeList[i];
  130 + var endTime = o.end_time;
  131 + // if (o.status == 0) endTime = o.start_time;
  132 + let obj = null;
  133 + // 如果活动未结束,对时间进行处理
  134 + if (endTime - newTime > 0) {
  135 + let time = (endTime - newTime);
  136 + // 获取天、时、分、秒
  137 + let day = parseInt(time / (60 * 60 * 24));
  138 + let hou = parseInt(time % (60 * 60 * 24) / 3600);
  139 + let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
  140 + let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
  141 + obj = {
  142 + day: this.timeFormat(day),
  143 + hou: this.timeFormat(hou),
  144 + min: this.timeFormat(min),
  145 + sec: this.timeFormat(sec)
  146 + }
  147 + } else {
  148 + //活动已结束,全部设置为'00'
  149 + obj = {
  150 + day: '00',
  151 + hou: '00',
  152 + min: '00',
  153 + sec: '00'
  154 + }
  155 + }
  156 + var txt = "goods_array[" + j + "][" + i + "].djs";
  157 + ee.setData({
  158 + [txt]: obj
  159 + });
  160 + }
  161 + }
  162 + },
  163 + //图片失败,默认图片
  164 + bind_bnerr3: function (e) {
  165 + var _errImg = e.target.dataset.errorimg;
  166 + var _errObj = {};
  167 + _errObj[_errImg] = "/public/images/default_goods_image_240.gif";
  168 + this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
  169 + },
  170 +
  171 + go_to_skill:function () {
  172 + wx.navigateTo({
  173 + url:"/pages/activity/seckill_list/seckill_list"
  174 + });
  175 + }
  176 + },
  177 +
  178 +
  179 +})
0 180 \ No newline at end of file
... ...
components/diy_seckill/diy_seckill.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_seckill/diy_seckill.wxml 0 → 100644
  1 +<block wx:if="goods_array.length>0">
  2 + <!--秒杀-->
  3 + <view class='top'>
  4 + <view class='t_left'></view>
  5 + <view class='t_ms'>秒杀</view>
  6 + <view class='right_k' bindtap="go_to_skill">
  7 + <image src="{{imghost}}/miniapp/images/icon-arrowdown.png"></image>
  8 + </view>
  9 + </view>
  10 +
  11 + <!--商品展示-->
  12 + <swiper class="s_prom" indicator-active-color='red' indicator-dots="false" wx:if="{{object.style==1}}">
  13 + <view class='sp' wx:if="{{object.style==1}}">
  14 + <swiper-item class="s_it" wx:for="{{goods_array}}" >
  15 + <block wx:for="{{item}}" wx:for-item="aitem" wx:for-index="aind">
  16 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{aitem.goods_id}}" class="s1_gk_a1">
  17 + <view class='one'>
  18 + <view class='sp_top'>
  19 + <view class='po'></view>
  20 + <block wx:if="{{aitem.start_time>newTime}}">
  21 + <span class='s_top_kill' style="background-color: #ffe718;color: #3c3b31;font-weight: bold">即将开始</span>
  22 + </block>
  23 + <block wx:if="{{aitem.start_time<newTime}}">
  24 + <span class='s_top_kill'>火热进行</span>
  25 + </block>
  26 + <view class='clear'></view>
  27 +
  28 + <view class='s_img'>
  29 + <image src="{{imghost+aitem.original_img}}"
  30 + data-errorimg="goods_array[{{index}}][{{aind}}].original_img"
  31 + binderror="bind_bnerr3"></image>
  32 + </view>
  33 +
  34 + <view class='s_foot_kill'>
  35 + <text>{{aitem.djs.day}}天</text>
  36 + <text>{{aitem.djs.hou}}时</text>
  37 + <text>{{aitem.djs.min}}分</text>
  38 + <text>{{aitem.djs.sec}}秒</text>
  39 + </view>
  40 + <view class='clear'></view>
  41 +
  42 + </view>
  43 +
  44 + <view class='sp_wz'>
  45 + <view class='sp_wzi'>{{aitem.goods_name}}</view>
  46 + <view class='sp_jg'>¥{{aitem.price}}</view>
  47 + <view class='sp_jgx'>¥{{aitem.market_price}}</view>
  48 + </view>
  49 +
  50 + </view>
  51 + </navigator>
  52 + </block>
  53 + </swiper-item>
  54 + </view>
  55 + </swiper>
  56 +
  57 + <view class="sp2" wx:if="{{object.style==2}}">
  58 + <block wx:for="{{goods_array}}" >
  59 + <block wx:for="{{item}}" wx:for-item="aitem" wx:for-index="aind" >
  60 + <navigator url="/pages/goods/goodsInfo/goodsInfo?goods_id={{aitem.goods_id}}" class="s1_gk_a1">
  61 + <view class='one1'>
  62 +
  63 + <view class="o1_img">
  64 + <image src="{{imghost+aitem.original_img}}"
  65 + data-errorimg="goods_array[{{index}}][{{aind}}].original_img"
  66 + binderror="bind_bnerr3"></image>
  67 + </view>
  68 +
  69 + <view class="o1_right">
  70 + <view class="sp_wzi">{{aitem.goods_name}}</view>
  71 + <view class="o1_sj_kill">
  72 + <text>{{aitem.djs.day}}</text>
  73 + 天
  74 + <text>{{aitem.djs.hou}}</text>
  75 + :
  76 + <text>{{aitem.djs.min}}</text>
  77 + :
  78 + <text>{{aitem.djs.sec}}</text>
  79 +
  80 + </view>
  81 + <view class='sp_jg'>¥{{aitem.price}}</view>
  82 + <view class='sp_jgx'>¥{{aitem.market_price}}</view>
  83 + <block wx:if="{{aitem.start_time>newTime}}">
  84 + <view class="wo" style="background-color: #adadad">正在预热</view>
  85 + </block>
  86 + <block wx:if="{{aitem.start_time<newTime}}">
  87 + <view class="wo">我要抢</view>
  88 + </block>
  89 +
  90 +
  91 + </view>
  92 + </view>
  93 + </navigator>
  94 + </block>
  95 + </block>
  96 +
  97 + </view>
  98 + <view class='clear'></view>
  99 +
  100 +</block>
0 101 \ No newline at end of file
... ...
components/diy_seckill/diy_seckill.wxss 0 → 100644
  1 +
  2 +.top{
  3 + width: 100%;
  4 + background-color: white;
  5 + height: 70rpx;
  6 + line-height: 70rpx;
  7 + color: #000;
  8 + text-align: left;
  9 + border-bottom: 2rpx solid #eee;
  10 + display: flex;
  11 +}
  12 +
  13 +
  14 +.s_it{
  15 + width: 100%;
  16 + display: flex;
  17 + background-color: white;
  18 +}
  19 +
  20 +.s_prom{
  21 + width: 100%;
  22 + background-color: white;
  23 + min-height: 200rpx;
  24 +}
  25 +
  26 +swiper {
  27 + display:block;
  28 + height:400rpx;
  29 +
  30 +}
  31 +
  32 +.right_k{
  33 + width: 30rpx;
  34 + height: 100%;
  35 + margin-left: 580rpx;
  36 +}
  37 +.right_k image{ width: 30rpx; height: 30rpx}
  38 +
  39 +
  40 +.top .t_left{
  41 + width: 10rpx;
  42 + height: 38rpx;
  43 + background: #C4182E;
  44 + margin-top:18rpx;
  45 +margin-right:12rpx;
  46 +margin-left:20rpx;
  47 +}
  48 +
  49 +
  50 +.sp{
  51 + min-height: 300rpx;
  52 + width: 100%;
  53 + background-color: white;
  54 + padding:18rpx;
  55 +display: flex;
  56 +}
  57 +
  58 +.sp .sp_top{
  59 + height: 220rpx;
  60 + min-width: 30%;
  61 +
  62 +
  63 +}
  64 +
  65 +.sp .sp_top .s_img{
  66 + width: 210rpx;
  67 + height: 100%;
  68 +}
  69 +
  70 +.sp .sp_top .s_img image{
  71 + width: 210rpx;
  72 + height: 100%;
  73 +
  74 + position: relative;
  75 + top: -74rpx;
  76 + left:0rpx;
  77 +
  78 +}
  79 +
  80 +.sp .sp_top .s_top_kill
  81 +
  82 +{
  83 +
  84 +background-color:#C4182E;
  85 +font-size:24rpx;
  86 +height:38rpx;
  87 +line-height:38rpx;
  88 +left:6rpx;
  89 +
  90 +padding:4rpx 10rpx;
  91 +
  92 +border-radius:10rpx;
  93 +
  94 +
  95 +z-index: 999;
  96 + position: relative;
  97 + top:-6rpx;
  98 + width: 210rpx;
  99 +
  100 +
  101 + color: #fff;
  102 + text-align: center;
  103 +
  104 +
  105 +}
  106 +
  107 +.po{
  108 + position: absolute;
  109 +}
  110 +
  111 +.sp .sp_top .s_foot_kill{
  112 + font-size: 20rpx;
  113 + position: relative;
  114 + top:-90rpx;
  115 + width: 210rpx;
  116 + height: 38rpx;
  117 + line-height: 38rpx;
  118 + color: #fff;
  119 + text-align: center;
  120 + background-color: rgba(0, 0, 0, 0.5);
  121 +}
  122 +
  123 +
  124 +
  125 +.sp_wz{
  126 +width: 210rpx;
  127 + min-height:100rpx;
  128 +
  129 +}
  130 +
  131 +.sp_wz .sp_wzi{
  132 + font-size: 30rpx;
  133 + border-bottom: 2rpx solid #dcdcdc;
  134 + width: 100%;
  135 + text-align: left;
  136 + padding: 4rpx 0;
  137 + overflow: hidden;
  138 + height: 48rpx;
  139 + text-overflow: ellipsis;
  140 + white-space: nowrap;
  141 + line-height: 48rpx;
  142 +}
  143 +
  144 +.sp_wz .sp_jg{
  145 + color: #C4182E;
  146 + font-size: 30rpx;
  147 + overflow: hidden;
  148 + display: inline-block;
  149 + text-overflow: ellipsis;
  150 + white-space: nowrap;
  151 + margin-right: 10rpx;
  152 +}
  153 +
  154 +.sp_wz .sp_jgx{
  155 + color: #adadad;
  156 + text-decoration: line-through;
  157 + font-size: 24rpx;
  158 +
  159 + overflow: hidden;
  160 + display: inline-block;
  161 + text-overflow: ellipsis;
  162 + white-space: nowrap;
  163 +
  164 +}
  165 +
  166 +.one{
  167 + margin-left: 14rpx;
  168 +
  169 +}
  170 +
  171 +
  172 +.sp .sp_top .s_top1_kill{
  173 + position: absolute;
  174 +background-color:#C4182E;
  175 +font-size:24rpx;
  176 +height:38rpx;
  177 +line-height:38rpx;
  178 +left:265rpx;
  179 +top:100rpx;
  180 +padding:0 10rpx;
  181 +color:white;
  182 +border-radius:10rpx;
  183 +
  184 +}
  185 +
  186 +.sp .sp_top .s_top2_kill{
  187 + position: absolute;
  188 +background-color:#C4182E;
  189 +font-size:24rpx;
  190 +height:38rpx;
  191 +line-height:38rpx;
  192 +right:146rpx;
  193 +top:100rpx;
  194 +padding:0 10rpx;
  195 +color:white;
  196 +border-radius:10rpx;
  197 +
  198 +}
  199 +
  200 +
  201 +
  202 +.sp .sp_top .s_foot1_kill{
  203 + font-size: 20rpx;
  204 + position: absolute;
  205 + top:270rpx;
  206 + width: 210rpx;
  207 + height: 38rpx;
  208 + line-height: 38rpx;
  209 + color: #fff;
  210 + text-align: center;
  211 + background-color: rgba(0, 0, 0, 0.5);
  212 +}
  213 +
  214 +.po1{
  215 + position: absolute;
  216 +}
  217 +
  218 +
  219 +.sp .sp_top .s_foot2_kill{
  220 + font-size: 20rpx;
  221 + position: absolute;
  222 + top:270rpx;
  223 + width: 210rpx;
  224 + height: 38rpx;
  225 + line-height: 38rpx;
  226 + color: #fff;
  227 + text-align: center;
  228 + background-color: rgba(0, 0, 0, 0.5);
  229 +}
  230 +
  231 +
  232 +
  233 +
  234 +
  235 +
  236 +
  237 +.sp2{
  238 + width: 100%;
  239 + min-height: 240rpx;
  240 +
  241 +}
  242 +
  243 +.sp2 .one1{
  244 + width: 100%;
  245 + background-color: white;
  246 + height: 252rpx;
  247 + display: flex;
  248 + padding: 20rpx;
  249 + border-bottom:6rpx#eee solid;
  250 +
  251 +}
  252 +
  253 +.sp2 .one1 .o1_img{
  254 + width: 200rpx;
  255 + height: 240rpx;
  256 +
  257 + margin-right: 24rpx;
  258 +}
  259 +
  260 +.o1_right .sp_wzi{
  261 + font-size: 36rpx;
  262 + margin-bottom:6rpx;
  263 +
  264 + width: 100%;
  265 + text-align: left;
  266 + padding: 4rpx 0;
  267 + overflow: hidden;
  268 + height: 48rpx;
  269 + text-overflow: ellipsis;
  270 + white-space: nowrap
  271 +}
  272 +
  273 +.o1_right .o1_sj_kill{
  274 + height: 60rpx;
  275 +
  276 + margin-bottom: 10rpx;
  277 +}
  278 +
  279 +.o1_right .o1_sj_kill text{
  280 + background-color: #fdcb08;
  281 + text-align: center;
  282 + border-radius: 10rpx;
  283 + padding:4rpx;
  284 +margin-left:6rpx;
  285 +
  286 +}
  287 +
  288 +
  289 +
  290 +.o1_right .sp_jg{
  291 + color: #C4182E;
  292 + font-size: 36rpx;
  293 +
  294 + overflow: hidden;
  295 + display: inline-block;
  296 + margin-right: 10rpx;
  297 +}
  298 +
  299 +.o1_right .sp_jgx{
  300 + color: #dcdcdc;
  301 + text-decoration: line-through;
  302 + font-size: 26rpx;
  303 +
  304 + overflow: hidden;
  305 + display: inline-block;
  306 +}
  307 +
  308 +
  309 +.o1_img image{
  310 + width: 100%;
  311 + height: 100%;
  312 +
  313 + position:relative;
  314 +top:-23rpx;
  315 +left:0rpx;
  316 +
  317 +}
  318 +
  319 +.o1_right .wo{
  320 + background-color: #C4182E;
  321 + width: 160rpx;
  322 + height: 60rpx;
  323 + line-height: 60rpx;
  324 + color: white;
  325 + text-align: center;
  326 + font-size: 38rpx;
  327 + margin-left:298rpx;
  328 +border-radius:14rpx;
  329 +padding-left: 10rpx;
  330 +padding-right: 10rpx;
  331 +}
  332 +
  333 +
  334 +
... ...
components/diy_shopname/diy_shopname.js 0 → 100644
  1 +var t = getApp(),
  2 + o = t.globalData.setting;
  3 +
  4 +Component({
  5 + properties: {
  6 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  7 + object: {
  8 + type: Object,
  9 + value: null,
  10 + },
  11 + },
  12 + data: {
  13 + // 这里是一些组件内部数据
  14 + yc:false,
  15 + imghost: o.imghost,
  16 + stoid:o.stoid,
  17 + sto:null,
  18 + store_name:'',
  19 + someData: {},
  20 + total:0,
  21 + new_total:0,
  22 + },
  23 +
  24 + ready: function() {
  25 + var th=this;
  26 + this.init();
  27 + //--所有商品--
  28 + getApp().request.promiseGet("/api/weshop/goods/page/",
  29 + {data:{ isonsale: 1, store_id: o.stoid,page:1,pageSize:1}}).then(res => {
  30 + var total=res.data.data.total;
  31 + th.setData({total:total})
  32 + })
  33 +
  34 + //--所有新品--
  35 + getApp().request.promiseGet("/api/weshop/goods/page/",
  36 + {data:{is_new:1,isonsale: 1, store_id: o.stoid,page:1,pageSize:1}}).then(res => {
  37 + var total=res.data.data.total;
  38 + th.setData({new_total:total})
  39 + })
  40 +
  41 + },
  42 + methods: {
  43 + // 这里是一个自定义方法
  44 + init:function(){
  45 + var app=getApp();
  46 + app.request.promiseGet("/api/weshop/store/get/"+o.stoid,{
  47 + data:{}
  48 + }).then(res=>{
  49 + var logo=o.imghost+res.data.data.store_logo;
  50 + var name=res.data.data.store_name;
  51 + this.setData({
  52 + sto:logo,store_name:name
  53 + })
  54 + })
  55 + },
  56 + customMethod: function () {},
  57 + go_user:function () {
  58 + var url="/pages/user/index/index";
  59 + getApp().goto(url);
  60 + },
  61 + go_all_wares:function () {
  62 + var url="/pages/goods/goodsList/goodsList";
  63 + getApp().goto(url);
  64 + },
  65 + go_new_wares:function () {
  66 + var url="/pages/goods/goodsList/goodsList?is_new=1";
  67 + getApp().goto(url);
  68 + }
  69 +
  70 + }
  71 +})
0 72 \ No newline at end of file
... ...
components/diy_shopname/diy_shopname.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_shopname/diy_shopname.wxml 0 → 100644
  1 +<view class='wai_zwp'>
  2 +
  3 + <view class="big">
  4 +
  5 + <view class="big_picture_border">
  6 + <image class="big_picture" src='{{object.srcimg}}'></image>
  7 + </view>
  8 + <block wx:if="{{object.style==1}}">
  9 +
  10 + <view class="big_border">
  11 + <view class="circle">
  12 + <view class="border">
  13 + <image class="wxd_ww" src='{{sto}}' bindtap="go_user"></image>
  14 + </view>
  15 + </view>
  16 + <view class="font">{{store_name}}</view>
  17 + </view>
  18 +
  19 + <view class="all_view">
  20 + <view class="v_item" bindtap="go_all_wares">
  21 + <view>{{total}}</view>
  22 + <view class="shopname_title_size">全部商品</view>
  23 + </view>
  24 +
  25 + <view class="v_item" bindtap="go_new_wares">
  26 + <view>{{new_total}}</view>
  27 + <view class="shopname_title_size">上新商品</view>
  28 + </view>
  29 +
  30 + <view class="v_item" bindtap="go_user">
  31 + <view>
  32 + <image class="user_pictrue" src='{{imghost}}/miniapp/images/numb.png'></image>
  33 + </view>
  34 + <view class="shopname_title_size">个人中心</view>
  35 + </view>
  36 + </view>
  37 + </block>
  38 +
  39 +
  40 + <block wx:else="{{object.style==2}}">
  41 + <view class="big_border_two">
  42 + <view class="circle_tow">
  43 + <view class="border">
  44 + <image class="wxd_ww" src='{{sto}}' bindtap="go_user"></image>
  45 + </view>
  46 + </view>
  47 + <view class="title_center">
  48 + <view class="fonts">派派通001</view>
  49 + </view>
  50 + </view>
  51 + <view class="base_font">
  52 + <view class="arrange">
  53 + <view class="base_font_one">
  54 + <navigator url="/pages/goods/goodsList/goodsList" class="navi">
  55 + <view>{{total}}</view>
  56 + <view>全部商品</view>
  57 + </navigator>
  58 + </view>
  59 +
  60 + <view class="base_font_one">
  61 + <view class="shuxian">|</view>
  62 + <navigator url="/pages/goods/goodsList/goodsList?is_new=1" class="navi">
  63 + <view>{{new_total}}</view>
  64 + <view>上新商品</view>
  65 + </navigator>
  66 + </view>
  67 +
  68 + <view class="base_font_one" bindtap="go_user">
  69 + <view class="shuxian">|</view>
  70 + <view class="navi">
  71 + <view >
  72 + <image class="user_pictrue_two" src='{{imghost}}/miniapp/images/numb.png'></image>
  73 + </view>
  74 + <view>个人中心</view>
  75 + </view>
  76 + </view>
  77 + </view>
  78 + </view>
  79 + </block>
  80 + </view>
  81 +</view>
  82 +
... ...
components/diy_shopname/diy_shopname.wxss 0 → 100644
  1 +/* 最外层的view */
  2 +.big{
  3 + font-family: Arial,"宋体";
  4 + text-align:center;
  5 + margin:0 auto;
  6 + position: relative;
  7 + height: 500rpx;
  8 +}
  9 +
  10 +.s1_gk_a1{
  11 + display: inline;
  12 + width: auto;
  13 + height: auto;
  14 +}
  15 +
  16 +/* 圆形小图片 */
  17 +.wxd_ww {
  18 + width: 126rpx;
  19 + height: 126rpx;
  20 + /* justify-content: center; */
  21 + margin-top: 20rpx;
  22 + margin-left: 6rpx;
  23 +}
  24 +
  25 +/* 小图片圆边框 */
  26 +
  27 +.circle {
  28 + /* 设置背景色 */
  29 + background: #f8f8f8;
  30 + /* 设置圆 */
  31 + border-radius: 50%;
  32 + width: 163rpx;
  33 + height: 163rpx;
  34 + /* 给边框加颜色要设置边框 */
  35 + border: 2rpx solid #f7e9e2;
  36 + /* display: flex加justify-content: center是居中对齐 */
  37 + display: flex;
  38 + justify-content: center;
  39 + /* 超出边框则隐藏 */
  40 + overflow: hidden;
  41 +}
  42 +
  43 +/* 设置小图片外面的view的宽高 */
  44 +
  45 +.circle_tow .border {
  46 + width: 140rpx;
  47 + height: 140rpx;
  48 +}
  49 +
  50 +/* 小图片最大外边框 */
  51 +
  52 +.big_border {
  53 + width: 192rpx;
  54 + height: 214rpx;
  55 + position: relative;
  56 + top: -82rpx;
  57 + left: 10px;
  58 +}
  59 +
  60 +.font {
  61 + margin-top: 10rpx;
  62 + overflow:hidden;
  63 + text-overflow:ellipsis;
  64 + white-space:nowrap;
  65 + font-size: 36rpx;
  66 +}
  67 +
  68 +/* 最大图片的外层view */
  69 +
  70 +.big_picture_border {
  71 + width: 100%;
  72 + height: 320rpx;
  73 +}
  74 +
  75 +
  76 +.jj{
  77 + position: relative;
  78 + top: 26rpx;
  79 + left: -128rpx;
  80 +}
  81 +
  82 +.jj_2{
  83 + position: relative;
  84 + top:26rpx;
  85 +left:-116rpx;
  86 +
  87 +}
  88 +
  89 +.big_picture {
  90 + width: 100%;
  91 + height: 100%;
  92 +}
  93 +
  94 +/* 全部商品样式 */
  95 +
  96 +.all_goods_sum {
  97 + width: 174rpx;
  98 + height: 94rpx;
  99 + margin-left: 230rpx;
  100 + text-align: center;
  101 + margin-top: 15rpx;
  102 + position: relative;
  103 + top: -196rpx;
  104 +}
  105 +
  106 +/* 新上商品 */
  107 +.new_goods {
  108 + width: 174rpx;
  109 + height: 94rpx;
  110 + margin-left: 400rpx;
  111 + /* 居中 */
  112 + text-align: center;
  113 + margin-top: -90rpx;
  114 + position: relative;
  115 + top: -198rpx;
  116 +}
  117 +
  118 +/* 个人中心 */
  119 +
  120 +.personal_center {
  121 + width: 174rpx;
  122 + height: 94rpx;
  123 + margin-left: 570rpx;
  124 + /* 居中 */
  125 + text-align: center;
  126 + margin-top: -90rpx;
  127 + position: relative;
  128 + top: -200rpx;
  129 +}
  130 +
  131 +/* 个人中心图像 */
  132 +
  133 +.user_pictrue {
  134 + width: 36rpx;
  135 + height: 32rpx;
  136 + margin-right: 0rpx;
  137 +}
  138 +
  139 +/* 图像的第二个 */
  140 +.big_border_two {
  141 + width: 100%;
  142 + height: 260rpx;
  143 + position: relative;
  144 + top: -274rpx;
  145 + text-align: center;
  146 +}
  147 +
  148 +/* 小图片2圆边框 */
  149 +
  150 +.circle_tow {
  151 + /* 设置背景色 */
  152 + background: #fff;
  153 + /* 设置圆 */
  154 + border-radius: 50%;
  155 + width: 172rpx;
  156 + height: 172rpx;
  157 + /* 给边框加颜色要设置边框 */
  158 + border: 1rpx solid #f7e9e2;
  159 + /* display: flex加justify-content: center是居中对齐 */
  160 + display: flex;
  161 + justify-content: center;
  162 + /* 超出边框则隐藏 */
  163 + overflow: hidden;
  164 + position: relative;
  165 + margin-left: 50%;
  166 + left:-86rpx;
  167 +}
  168 +
  169 +.fonts {
  170 + width: 186rpx;
  171 + height: 70rpx;
  172 + /* 倒角 */
  173 + border-radius: 25rpx;
  174 + background-color: rgba(255, 255, 255, 0.7);
  175 + border: 1rpx solid rgba(255, 255, 255, 0.7);
  176 + font-size: 36rpx;
  177 + /* 水平居中 */
  178 + text-align: center;
  179 + /* 垂直居中 */
  180 + line-height: 70rpx;
  181 + position: relative;
  182 + top: 20rpx;
  183 + left: 0rpx;
  184 + /* background-color: rgba(255, 255, 255, 0.7); */
  185 +}
  186 +
  187 +/* 底层文字 */
  188 +.base_font {
  189 + width: 100%;
  190 + height: 120rpx;
  191 + position: relative;
  192 + top: -250rpx;
  193 +}
  194 +/* 使里面的view纵向排列 */
  195 +.arrange{
  196 + /* 弹性布局 */
  197 + display: flex;
  198 + margin-top: 20rpx;
  199 +}
  200 +/* 底层文字 */
  201 +.base_font_one {
  202 + width: 33%;
  203 + height: 120rpx;
  204 + /* 水平居中 */
  205 + text-align: center;
  206 + display: flex;
  207 +}
  208 +
  209 +.base_font_one .navi{
  210 + width: 100%;
  211 +}
  212 +
  213 +.base_font_one .shuxian{
  214 + margin-top: 15rpx;
  215 +}
  216 +
  217 +
  218 +.base_font_one .navi view{
  219 + width: 100%;
  220 +}
  221 +.base_font_one .navi view .user_pictrue_two{
  222 + width: 32rpx;height: 35rpx;
  223 +}
  224 +.wai_zwp{
  225 + background-color: white;
  226 + height: 500rpx;
  227 +}
  228 +
  229 +.shopname_title_size{ font-size: 34rpx}
  230 +.big .all_view{display: flex; width: 500rpx; position:absolute; bottom:90rpx;right: 0 }
  231 +.big .all_view .v_item{width:33%; }
  232 +
  233 +.big_border_two .title_center{ display: flex; justify-content: center;}
  234 +
... ...
components/diy_title/diy_title.js 0 → 100644
  1 +Component({
  2 + properties: {
  3 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  4 + object:{
  5 + type: Object,
  6 + value:null
  7 + },
  8 +
  9 + },
  10 + data: {
  11 + // 这里是一些组件内部数据
  12 + someData: {}
  13 + },
  14 + methods: {
  15 + //--智能跳转--
  16 + go_url:function (e) {
  17 + var url=e.currentTarget.dataset.url;
  18 + getApp().goto(url);
  19 + }
  20 + }
  21 +})
0 22 \ No newline at end of file
... ...
components/diy_title/diy_title.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_title/diy_title.wxml 0 → 100644
  1 +<view class="big_rim">
  2 + <view class="rim">
  3 + <image class="image_one" src="{{object.title_img}}"></image>
  4 + </view>
  5 + <view data-url="{{object.wxapp_url}}" bindtap="go_url">
  6 + <view class="txet_rim">
  7 + <view class="text" style='color:{{object.title_namecolor}}'>{{object.title_name}}</view></view>
  8 + </view>
  9 + <block wx:if="{{object.title_right!= ''}}">
  10 + <view bindtap="go_url" data-url='{{object.wxapp_url}}'>
  11 + <view class="right_rim">
  12 + <view class="font_right_rim">
  13 + <view class="caption" style='color:{{object.title_rightcolor}}'>{{object.title_right}}</view>
  14 + </view>
  15 + <view class="aa">></view>
  16 + </view>
  17 + </view>
  18 + </block>
  19 +</view>
0 20 \ No newline at end of file
... ...
components/diy_title/diy_title.wxss 0 → 100644
  1 +/* 大边框 */
  2 +
  3 +.big_rim {
  4 + width: 100%;
  5 + height: auto;
  6 + display: flex;
  7 + padding: 10rpx 0;
  8 +}
  9 +
  10 +/* 图片边框 */
  11 +
  12 +.rim {
  13 + margin-left: 20rpx;
  14 + margin-top: 15rpx;
  15 +}
  16 +
  17 +/* 图片 */
  18 +.image_one {
  19 + width: 48rpx;
  20 + height: 48rpx;
  21 +}
  22 +
  23 +/* 标题的边框 */
  24 +.txet_rim {
  25 + margin-left: 10rpx;
  26 + margin-top: 20rpx;
  27 + min-width: 300rpx;
  28 + width: auto;
  29 + height: auto;
  30 + word-break: break-all;
  31 + word-wrap: break-word;
  32 +
  33 +}
  34 +
  35 +/* 标题名 */
  36 +.text {
  37 + font-weight: bold;
  38 + font-family: "SimSun";
  39 +}
  40 +
  41 +/* 右侧边框 */
  42 +
  43 +.right_rim {
  44 + min-width: 200rpx;
  45 + width: auto;
  46 + display: inline-block;
  47 +}
  48 +
  49 +/* 右侧文字边框 */
  50 +.font_right_rim {
  51 + display: inline-block;
  52 + min-width: 300rpx;
  53 + text-align:right;
  54 + margin-left: 20rpx;
  55 + vertical-align: top;
  56 +}
  57 +
  58 +/* 标题 */
  59 +
  60 +.caption {
  61 + display: inline-block;
  62 + color: #777;
  63 + min-width: 300rpx;
  64 + width: auto;
  65 + height: auto;
  66 + margin-top: 20rpx
  67 +}
  68 +
  69 +.aa {
  70 + display: inline-block;
  71 + color: #777;
  72 + width: 50rpx;
  73 + font-size: 50rpx;
  74 + font-weight: bold;
  75 + vertical-align: top;
  76 + margin-top: 12rpx
  77 +}
... ...
components/diy_video/diy_video.js 0 → 100644
  1 +Component({
  2 + properties: {
  3 + object: {
  4 + type: Object,
  5 + value: null
  6 + },
  7 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  8 +
  9 + },
  10 + data: {
  11 + // 这里是一些组件内部数据
  12 + someData: {},
  13 + videoUrl: "",
  14 + },
  15 +
  16 + ready: function () {
  17 + this.create_url();
  18 + },
  19 + methods: {
  20 + // 这里是一个自定义方法
  21 + create_url: function () {
  22 + console.log('create_url');
  23 + var that = this;
  24 + /*获取文本框中的值*/
  25 + var text = this.properties.object.wxapp_code;
  26 + /*console.log("整个的地址"+text);*/
  27 + var arr = new Array(), arrs = new Array();
  28 + arr = text.split('vid=');
  29 + /*console.log("截取vid后面的"+arr[1]);*/
  30 + arrs = arr[1].split('"');
  31 + /* console.log("截取&前面的的"+arrs[0]);*/
  32 + var vipid = arrs[0];
  33 +
  34 + var url = "https://vv.video.qq.com/getinfo?vid=" + vipid + "&platform=101001&charge=0&otype=json";
  35 + wx.request({
  36 + url: url,
  37 + success: function (res) {
  38 + var dataJson = res.data.replace(/QZOutputJson=/, '') + "qwe";
  39 + var dataJson1 = dataJson.replace(/;qwe/, '');
  40 + var data = JSON.parse(dataJson1);
  41 + if (data.vl != undefined) {
  42 + var host = data['vl']['vi'][0]['ul']['ui'][2]['url']
  43 + var fn = data.vl.vi[0].fn;
  44 + var fvkey = data.vl.vi[0].fvkey;
  45 + /* console.log("有参数吗"+fn+"有参数吗"+fvkey);*/
  46 + var wxapp_url = host + fn + '?vkey=' + fvkey;
  47 + that.setData({
  48 + videoUrl: wxapp_url
  49 + });
  50 + }
  51 + }
  52 + })
  53 +
  54 + }
  55 + }
  56 +})
0 57 \ No newline at end of file
... ...
components/diy_video/diy_video.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_video/diy_video.wxml 0 → 100644
  1 +<view class="vd_view">
  2 +<video class="vd_web" src="{{videoUrl}}"></video>
  3 +</view>
0 4 \ No newline at end of file
... ...
components/diy_video/diy_video.wxss 0 → 100644
  1 +.vd_view{
  2 + width: 100%;
  3 + max-height: 750rpx;
  4 + overflow: hidden;
  5 +}
  6 +.vd_web{
  7 + width: 100%;
  8 + max-height:750rpx;
  9 + overflow: hidden;
  10 +}
0 11 \ No newline at end of file
... ...
components/diy_video/video.json 0 → 100644
components/diy_voice/diy_voice.js 0 → 100644
  1 +const app = getApp()
  2 +const innerAudioContext = wx.createInnerAudioContext();
  3 +var t = getApp(),
  4 + o = t.globalData.setting;
  5 +Component({
  6 + properties: {
  7 +
  8 + object: {
  9 + type: Object,
  10 + value: null,
  11 + },
  12 + audiosrc:{
  13 + type: String,
  14 + value: null,
  15 + },
  16 +
  17 +
  18 +
  19 + },
  20 + data: {
  21 + yc:false,
  22 + isPlayAudio: false,
  23 + audioSeek: 0,
  24 + audioDuration: 0,
  25 + showTime1: '00:00',
  26 + showTime2: '00:00',
  27 + audioTime: 0,
  28 + voice_logo:null,
  29 + imghost: o.imghost,
  30 + },
  31 +
  32 + ready: function() {
  33 + console.log("ready");
  34 + var music = this.data.object.music;
  35 + var vo = this.data.object;
  36 + this.setData({
  37 + audiosrc:music,
  38 + // logo:"http://jmh.xinda100.cn"+logo
  39 + })
  40 + this.Initialization();
  41 + this.loadaudio();
  42 + console.log("logo");
  43 + console.log(vo);
  44 + this.logo(vo);
  45 +
  46 + },
  47 +
  48 + methods: {
  49 +
  50 + logo(vo){
  51 + console.log(111111);
  52 + console.log(vo.logo);
  53 + var v_logo=vo.logo;
  54 + if (!(vo.logo.indexOf("/public/static/images/model/logo.png"))){
  55 + this.setData({
  56 + voice_logo:"https://mshopimg.yolipai.net/miniapp/images/logo.png"
  57 + })
  58 + }else{
  59 + this.setData({
  60 + voice_logo:v_logo
  61 + })
  62 + }
  63 + },
  64 +
  65 + // 这里是一个自定义方法
  66 + //初始化播放器,获取duration
  67 + Initialization() {
  68 + var t = this;
  69 + if (this.properties.audiosrc.length != 0) {
  70 + //设置src
  71 + innerAudioContext.src = this.properties.audiosrc;
  72 + //运行一次
  73 + innerAudioContext.play();
  74 + innerAudioContext.pause();
  75 + innerAudioContext.onCanplay(() => {
  76 + //初始化duration
  77 + innerAudioContext.duration
  78 + setTimeout(function () {
  79 + //延时获取音频真正的duration
  80 + var duration = innerAudioContext.duration;
  81 + var min = parseInt(duration / 60);
  82 + var sec = parseInt(duration % 60);
  83 + if (min.toString().length == 1) {
  84 + min = `0${min}`;
  85 + }
  86 + if (sec.toString().length == 1) {
  87 + sec = `0${sec}`;
  88 + }
  89 + t.setData({
  90 + audioDuration: innerAudioContext.duration,
  91 + showTime2: `${min}:${sec}`
  92 + });
  93 + }, 1000)
  94 + })
  95 + }
  96 + },
  97 + //拖动进度条事件
  98 + sliderChange(e) {
  99 + var that = this;
  100 + innerAudioContext.src = this.properties.audiosrc;
  101 + //获取进度条百分比
  102 + var value = e.detail.value;
  103 + this.setData({
  104 + audioTime: value
  105 + });
  106 + var duration = this.properties.audioDuration;
  107 + //根据进度条百分比及歌曲总时间,计算拖动位置的时间
  108 + value = parseInt(value * duration / 100);
  109 + //更改状态
  110 + this.setData({
  111 + audioSeek: value,
  112 + isPlayAudio: true
  113 + });
  114 + //调用seek方法跳转歌曲时间
  115 + innerAudioContext.seek(value);
  116 + //播放歌曲
  117 + innerAudioContext.play();
  118 + },
  119 + //播放、暂停按钮
  120 + playAudio() {
  121 + //获取播放状态和当前播放时间
  122 + var isPlayAudio = this.data.isPlayAudio;
  123 + var seek = this.properties.audioSeek;
  124 + innerAudioContext.pause();
  125 + //更改播放状态
  126 + this.setData({
  127 + isPlayAudio: !isPlayAudio
  128 + })
  129 + if (isPlayAudio) {
  130 + //如果在播放则记录播放的时间seek,暂停
  131 + this.setData({
  132 + audioSeek: innerAudioContext.currentTime
  133 + });
  134 + } else {
  135 + //如果在暂停,获取播放时间并继续播放
  136 + innerAudioContext.src = this.properties.audiosrc;
  137 + if (innerAudioContext.duration != 0) {
  138 + this.setData({
  139 + audioDuration: innerAudioContext.duration
  140 + });
  141 + }
  142 + //跳转到指定时间播放
  143 + innerAudioContext.seek(seek);
  144 + innerAudioContext.play();
  145 + }
  146 + },
  147 + loadaudio() {
  148 + var that = this;
  149 + //设置一个计步器
  150 + this.properties.durationIntval = setInterval(function () {
  151 + //当歌曲在播放时执行
  152 + if (that.data.isPlayAudio == true) {
  153 + //获取歌曲的播放时间,进度百分比
  154 + var seek = that.properties.audioSeek;
  155 + var duration = innerAudioContext.duration;
  156 + var time = that.properties.audioTime;
  157 + time = parseInt(100 * seek / duration);
  158 + //当歌曲在播放时,每隔一秒歌曲播放时间+1,并计算分钟数与秒数
  159 + var min = parseInt((seek + 1) / 60);
  160 + var sec = parseInt((seek + 1) % 60);
  161 + //填充字符串,使3:1这种呈现出 03:01 的样式
  162 + if (min.toString().length == 1) {
  163 + min = `0${min}`;
  164 + }
  165 + if (sec.toString().length == 1) {
  166 + sec = `0${sec}`;
  167 + }
  168 + var min1 = parseInt(duration / 60);
  169 + var sec1 = parseInt(duration % 60);
  170 + if (min1.toString().length == 1) {
  171 + min1 = `0${min1}`;
  172 + }
  173 + if (sec1.toString().length == 1) {
  174 + sec1 = `0${sec1}`;
  175 + }
  176 + //当进度条完成,停止播放,并重设播放时间和进度条
  177 + if (time >= 100) {
  178 + innerAudioContext.stop();
  179 + that.setData({
  180 + audioSeek: 0,
  181 + audioTime: 0,
  182 + audioDuration: duration,
  183 + isPlayAudio: false,
  184 + showTime1: `00:00`
  185 + });
  186 + return false;
  187 + }
  188 + //正常播放,更改进度信息,更改播放时间信息
  189 + that.setData({
  190 + audioSeek: seek + 1,
  191 + audioTime: time,
  192 + audioDuration: duration,
  193 + showTime1: `${min}:${sec}`,
  194 + showTime2: `${min1}:${sec1}`
  195 + });
  196 + }
  197 + }, 1000);
  198 + },
  199 + onUnload: function () {
  200 + //卸载页面,清除计步器
  201 + clearInterval(this.properties.durationIntval);
  202 + },
  203 + customMethod: function () { }
  204 + }
  205 +})
0 206 \ No newline at end of file
... ...
components/diy_voice/diy_voice.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/diy_voice/diy_voice.wxml 0 → 100644
  1 +<!--pages/diy_jd/diy_jd.wxml-->
  2 +<!-- ================== 带滚动条的播放器-->
  3 +<view class='mod_voice' wx:if="{{object.style=='2'}}">
  4 +<block wx:if="{{object.bubble==1}}">
  5 + <block wx:if='{{object.play==1}}'>
  6 + <view class='mod_border'>
  7 + <view class='mod_p' catchtap='playAudio'>
  8 + <view wx:if="{{isPlayAudio}}">
  9 + <image src='{{imghost}}/miniapp/images/pause.png' bindtap="audioPlay" mode='widthFix'></image>
  10 + <text class='diy_title'>111</text>
  11 + </view>
  12 + <view wx:else>
  13 + <image src='{{imghost}}/miniapp/images/voice_play_green.png' mode='widthFix'></image>
  14 + <text class='diy_title'>111</text>
  15 + </view>
  16 + </view>
  17 + <!-- 滚动条 -->
  18 + <view class='mod_g'>
  19 + <view class='slider'>
  20 + <slider bindchange='sliderChange' activeColor='red' block-size="12" value='{{audioTime}}' />
  21 + </view>
  22 + <view class='time'>
  23 + {{showTime1}}/{{showTime2}}
  24 + </view>
  25 + </view>
  26 + </view>
  27 + </block>
  28 + </block>
  29 +</view>
  30 +
  31 +<!-- -------------------2--------------- -->
  32 +<!-- 左边播放器 -->
  33 +<view class='ad' wx:if='{{object.style==1}}'>
  34 +<block wx:if="{{object.bubble==1}}">
  35 + <block wx:if="{{object.play==1}}">
  36 + <view class='ad_tp'>
  37 + <image src='{{voice_logo}}' mode='widthFix'></image>
  38 + </view>
  39 + <view class='ad_audio' catchtap='playAudio'>
  40 + <view class='tt'>
  41 + <image bindtap="audioPlay" src='{{imghost}}/miniapp/images/voice_lw.png' mode='widthFix'></image>
  42 + </view>
  43 + </view>
  44 + </block>
  45 + </block>
  46 +</view>
  47 +<!-- 右边播放器 -->
  48 +<view class='ad2' wx:if='{{object.style==1}}'>
  49 +<block wx:if="{{object.bubble==2}}">
  50 + <block wx:if="{{object.play==1}}">
  51 + <view class='ad_tp2'>
  52 + <image src='{{voice_logo}}' mode='widthFix'></image>
  53 + </view>
  54 + <view class='ad_audio2' catchtap='playAudio'>
  55 + <view class='tt2'>
  56 + <image bindtap="audioPlay" src='{{imghost}}/miniapp/images/voice_rg.png' mode='widthFix'></image>
  57 + <audio class="audio" poster="{{poster}}" src="{{src}}" id="myAd"></audio>
  58 + </view>
  59 + </view>
  60 + </block>
  61 + </block>
  62 +</view>
0 63 \ No newline at end of file
... ...
components/diy_voice/diy_voice.wxss 0 → 100644
  1 +.flex {
  2 + display: flex;
  3 +}
  4 +
  5 +.audioPlayer {
  6 + width: 100%;
  7 + height: 400rpx;
  8 + margin-bottom: 30rpx;
  9 + box-sizing: border-box;
  10 + padding: 20rpx 30rpx;
  11 +}
  12 +
  13 +.player {
  14 + width: 100%;
  15 + height: 100%;
  16 + position: relative;
  17 +}
  18 +
  19 +.audioBack {
  20 + width: 100%;
  21 + height: 100%;
  22 +}
  23 +
  24 +.audioControls {
  25 + width: 100%;
  26 + height: 80rpx;
  27 + background: black;
  28 + opacity: 0.8;
  29 + position: absolute;
  30 + bottom: 0;
  31 + color: white;
  32 + font-size: 6pt;
  33 + line-height: 80rpx;
  34 + text-align: center;
  35 +}
  36 +
  37 +.audioControls .bottom {
  38 + width: 60rpx;
  39 + height: 100%;
  40 +}
  41 +
  42 +.audioControls .bottom image {
  43 + margin-top: 30%;
  44 + margin-left: 30%;
  45 + width: 40rpx;
  46 + height: 40rpx;
  47 +}
  48 +
  49 +.audioControls .slider {
  50 + width: 520rpx;
  51 + height: 100%;
  52 +}
  53 +
  54 +.slider slider {
  55 + width: 95%;
  56 + margin-left: 4%;
  57 + margin-right: 0;
  58 +}
  59 +
  60 +.audioControls .time {
  61 + width: 120rpx;
  62 + height: 100%;
  63 +}
  64 +
  65 +/* 音频end */
  66 +
  67 +.mod_voice {
  68 + /* width: 100%; */
  69 + /* min-height: 100rpx; */
  70 + background-color: white;
  71 + margin:10px 10rpx;
  72 +}
  73 +
  74 +.mod_p {
  75 + width: 100%;
  76 + height: 70rpx;
  77 + display: flex;
  78 + line-height: 50rpx;
  79 +}
  80 +
  81 +.mod_p image {
  82 + width: 30rpx;
  83 + height: 30rpx;
  84 + margin-left: 10rpx;
  85 + margin-right: 10rpx;
  86 +}
  87 +
  88 +.mod_g image {
  89 + width: 92rpx;
  90 + height: 40rpx;
  91 +}
  92 +
  93 +.mod_g {
  94 + border: 2rpx #ddd solid;
  95 + height: 96rpx;
  96 + border-bottom: 0rpx;
  97 + border-right: 0rpx;
  98 + border-left: 0rpx;
  99 + display: flex;
  100 + flex-flow: row;
  101 +}
  102 +
  103 +.mod_border {
  104 + border: 2rpx #ddd solid;
  105 +}
  106 +
  107 +.ad_audio1 {
  108 + background-size: cover;
  109 + width: 100%;
  110 + height: 80rpx;
  111 +}
  112 +
  113 +.time {
  114 + width: 20%;
  115 + height: 96rpx;
  116 +
  117 + line-height:80rpx;
  118 +color:#999;
  119 +font-size:36rpx;
  120 +margin-left:16rpx;
  121 +
  122 +}
  123 +
  124 +.slider {
  125 + width: 68%;
  126 +}
  127 +
  128 +/* --------------------语音 */
  129 +
  130 +.btn {
  131 + margin-top: 15rpx;
  132 +}
  133 +
  134 +.audio {
  135 + margin-left: 65rpx;
  136 +}
  137 +
  138 +.o1 {
  139 + background-color: red;
  140 + width: 100%;
  141 + padding: 20rpx;
  142 +}
  143 +
  144 +.ad {
  145 + display: flex;
  146 + width: 100%;
  147 + /* background-color: white; */
  148 + text-align: left;
  149 + margin-top: 10rpx;
  150 + padding: 0 10rpx;
  151 +margin-bottom:20rpx;
  152 +
  153 +}
  154 +
  155 +.ad_tp {
  156 + width: 80rpx;
  157 + height: 80rpx;
  158 + /* box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3); */
  159 +}
  160 +
  161 +.ad_tp image {
  162 + width: 100%;
  163 + height: 100%;
  164 + position:relative;
  165 + left:0rpx;
  166 +}
  167 +
  168 +.ad_audio {
  169 + background-size: cover;
  170 + width: 100%;
  171 + height: 80rpx;
  172 +}
  173 +
  174 +.tt {
  175 + width: 356rpx;
  176 + height: 81rpx;
  177 + background: url(https://mshopimg.yolipai.net/miniapp/images/voice_left.png) no-repeat;
  178 + background-size: cover;
  179 + margin-left: 10rpx;
  180 +}
  181 +
  182 +.tt image {
  183 + width: 36rpx;
  184 + height: 45rpx;
  185 + margin-left: 28rpx;
  186 + margin-top: 19rpx;
  187 +}
  188 +
  189 +.ad_tp {
  190 + /* background-color: white; */
  191 +}
  192 +
  193 +.ad2 {
  194 +
  195 + width: 100%;
  196 + /* background-color: white; */
  197 + text-align: right;
  198 + margin-top: -10rpx;
  199 + margin-bottom: 30rpx;
  200 +}
  201 +
  202 +.ad_tp2 {
  203 + width: 80rpx;
  204 + height: 80rpx;
  205 + /* box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3); */
  206 + float: right;
  207 + margin-right: 20rpx;
  208 +}
  209 +
  210 +.ad_tp2 image {
  211 + width: 100%;
  212 + height: 100%;
  213 + display: inline-block;
  214 + position:relative;
  215 +top:2rpx;
  216 +left:0rpx;
  217 +
  218 +}
  219 +
  220 +.ad_audio2 {
  221 + display: inline-block;
  222 + background-size: cover;
  223 + height: 80rpx;
  224 +}
  225 +
  226 +.tt2 {
  227 + width: 356rpx;
  228 + height: 80rpx;
  229 + background: url(https://mshopimg.yolipai.net/miniapp/images/voice_right.png) no-repeat;
  230 + background-size: cover;
  231 + margin-right: 10rpx;
  232 + display: inline-block;
  233 +}
  234 +
  235 +.tt2 image {
  236 + width: 36rpx;
  237 + height: 45rpx;
  238 + margin-left: 28rpx;
  239 + margin-top: 19rpx;
  240 + /* display: inline-block; */
  241 +}
  242 +
  243 +.ad_tp2 {
  244 + /* background-color: white; */
  245 + display: inline-block;
  246 +}
... ...
components/long_warn/long_warn.js 0 → 100644
  1 +var t = getApp();
  2 +Component({
  3 + /**
  4 + * 页面的初始数据
  5 + */
  6 + data: {
  7 + val:"212121",
  8 + is_show:0,
  9 + type:0, //0 提示,失败 1成功
  10 + iurl:t.globalData.setting.imghost,
  11 + },
  12 +
  13 + methods: {
  14 + open:function (e,type) {
  15 + var that=this;
  16 + this.setData({is_show:1,val:e,type:type});
  17 + setTimeout(function () {
  18 + that.setData({is_show:0});
  19 + },2000);
  20 + }
  21 + }
  22 +
  23 +})
0 24 \ No newline at end of file
... ...
components/long_warn/long_warn.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/long_warn/long_warn.wxml 0 → 100644
  1 +<view class="rim" wx:if="{{is_show}}">
  2 + <view class="content flex-center">
  3 + <view class="con_view">
  4 + <view class="con_view_img">
  5 + <image wx:if="{{type}}" src="{{iurl}}/miniapp/images/sucess_g.png"></image><!-- 成功 -->
  6 + <image wx:else src="{{iurl}}/miniapp/images/gt.png"></image> <!-- 失败 -->
  7 + </view>
  8 + <view class="msg">{{val}}</view>
  9 + </view>
  10 + </view>
  11 +</view>
... ...
components/long_warn/long_warn.wxss 0 → 100644
  1 +.cover-layer {
  2 + position: fixed;
  3 + left: 0;
  4 + top: 0;
  5 + right: 0;
  6 + bottom: 0;
  7 + z-index: 11;
  8 + background: rgba(0,0,0,0.4);
  9 + width: 100%;
  10 + height: 100%;
  11 +}
  12 +/* 水平垂直 */
  13 +.flex-center{
  14 + display:flex;
  15 + justify-content:center;
  16 + align-items:center;
  17 +}
  18 +.content{
  19 + position: fixed; width: 100%; height: 100%;top: 0; left: 0;z-index: 99999999999999999;
  20 +}
  21 +.con_view{
  22 + min-width:180rpx; max-width: 720rpx; width: auto; padding: 40rpx 30rpx; background-color: #000; border-radius:22rpx; text-align: center;
  23 +}
  24 +.con_view .con_view_img{ height: 120rpx;}
  25 +.con_view image{ width: 84rpx; height: 84rpx;}
  26 +.msg{
  27 + color:#fff; font-size: 32rpx
  28 +}
... ...
components/nav_box/nav_box.js 0 → 100644
  1 +var t = getApp(),os =t.globalData.setting;
  2 +Component({
  3 + properties: {
  4 + },
  5 + data: {
  6 + isopen:0,
  7 + iurl:os.imghost,
  8 + },
  9 +
  10 + ready: function() {
  11 + },
  12 + methods: {
  13 + //--点击打开事件--
  14 + open_box:function () {
  15 + this.setData({isopen:1});
  16 + },
  17 + //--关闭事件--
  18 + close_box:function(){
  19 + this.setData({isopen:0});
  20 + },
  21 + //--跳转--
  22 + goto:function (e) {
  23 + var url=e.currentTarget.dataset.url;
  24 + getApp().goto(url);
  25 + }
  26 +
  27 + }
  28 +
  29 +})
0 30 \ No newline at end of file
... ...
components/nav_box/nav_box.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/nav_box/nav_box.wxml 0 → 100644
  1 +
  2 +<view class="box_main {{isopen==1?'box_isopen':''}}" >
  3 + <view class="dian" bindtap="open_box">
  4 + <image src="{{iurl}}/miniapp/images/sheng_lue.png" ></image>
  5 + </view>
  6 + <view class="cl_list">
  7 + <view class="item" data-url="/pages/index/index/index" bindtap="goto">首页</view>
  8 + <view class="item" data-url="/pages/goods/categoryList/categoryList" bindtap="goto">分类</view>
  9 + <view class="item" data-url="/pages/user/index/index" bindtap="goto">我的</view>
  10 + <view class="item big" bindtap="close_box">×</view>
  11 + </view>
  12 +</view>
  13 +
... ...
components/nav_box/nav_box.wxss 0 → 100644
  1 +.box_main{
  2 + width:100rpx;
  3 + height:100rpx;
  4 + background:#272636;
  5 + transition:width 0.8s;
  6 + -moz-transition:width 0.8s; /* Firefox 4 */
  7 + -webkit-transition:width 0.8s; /* Safari and Chrome */
  8 + -o-transition:width 0.8s; /* Opera */
  9 + border-radius:50rpx ;
  10 + position: fixed;
  11 + right: 10rpx;
  12 + bottom:300rpx;
  13 + overflow: hidden;
  14 +}
  15 +
  16 +.box_isopen{
  17 + width: 420rpx;
  18 +}
  19 +
  20 +.box_main .dian{
  21 + text-align: center;
  22 + width:100rpx;
  23 + height:100rpx;
  24 + color: #ffff;
  25 + font-size: 70rpx;
  26 + background: none;
  27 +}
  28 +
  29 +.box_main .dian image{
  30 + width:75rpx; height:30rpx;margin-top:36rpx;
  31 +}
  32 +
  33 +.box_main.box_isopen .dian{
  34 + display: none;
  35 +}
  36 +
  37 +.box_main .cl_list{
  38 + display: none;
  39 +}
  40 +
  41 +.box_main.box_isopen .cl_list{
  42 + display: block;
  43 + margin-left: 20rpx;
  44 +}
  45 +
  46 +.box_main .cl_list .item{
  47 + display: inline-block;
  48 + width:100rpx;
  49 + height:100rpx;
  50 + text-align: center;
  51 + line-height: 100rpx;
  52 + color: #fff;
  53 + vertical-align: top;
  54 +}
  55 +
  56 +.box_main .cl_list .item.big{
  57 + font-size: 70rpx;line-height: 90rpx;
  58 +}
  59 +
... ...
components/qr_code/qr_code.js 0 → 100644
  1 +// pages/user/yhq/qr_code/qr_code.js
  2 +const {
  3 + barcode,
  4 + qrcode
  5 +} = require('../../utils/index.js')
  6 +
  7 +Component({
  8 + data: {
  9 + q_show:0,
  10 + object:null,
  11 + index:0,
  12 + is_fw:0,
  13 +
  14 + barcode_canvas:null,
  15 + qrcode_canvas:null,
  16 + },
  17 + properties: {
  18 + // 这里定义了innerText属性,属性值可以在组件使用时指定
  19 + },
  20 + ready: function () {
  21 + },
  22 +
  23 + methods: {
  24 + //关闭
  25 + close: function (e) {
  26 + this.setData({q_show: 0,barcode_canvas:null,qrcode_canvas:null });
  27 + },
  28 +
  29 + //打开
  30 + open:function (e) {
  31 + this.data.index++;
  32 + var list=[{index:this.data.index }];
  33 +
  34 + this.setData({q_show: 1,object:e,barcode_canvas:list,qrcode_canvas:list,is_fw:e.is_fw });
  35 + var val=e.val;
  36 +
  37 + barcode('barcode'+this.data.index,val, 620, 160,this);
  38 + qrcode('qrcode'+this.data.index, val, 520, 520,this);
  39 + }
  40 + }
  41 +
  42 +
  43 +})
0 44 \ No newline at end of file
... ...
components/qr_code/qr_code.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/qr_code/qr_code.wxml 0 → 100644
  1 +<view class="xc-pop-up" wx:if="{{q_show}}">
  2 + <view class="xc-obscuration" bindtap='close'></view>
  3 + <view>
  4 + <view class="xc-qr-frame">
  5 + <view class="barqrcode">
  6 + <view class="barcode" wx:if="{{!is_fw}}">
  7 + <canvas canvas-id="barcode{{item.index}}" wx:for="{{barcode_canvas}}" />
  8 + <view class="q_code">{{object.val}}</view>
  9 + </view>
  10 + <view class="qrcode_rim {{is_fw==1?'mt':''}}">
  11 + <canvas class="qrcode" canvas-id="qrcode{{item.index}}" wx:for="{{barcode_canvas}}" />
  12 + <view class="r-code">{{object.content}}</view>
  13 + <view class="r-code flex" wx:if="{{object.is_quan}}">有效时间:{{object.now}} 至 <view>{{object.validay}}</view></view>
  14 + <block wx:if="{{object.is_quan}}">
  15 + <view class="r-code" wx:if="{{object.name}}">使用说明: 仅{{object.name}}使用</view>
  16 + <view class="r-code" wx:else>使用说明: 全场通用</view>
  17 + </block>
  18 + <view></view>
  19 + </view>
  20 + </view>
  21 + </view>
  22 + <view class="shut" bindtap="close">ⅹ</view>
  23 +</view>
  24 +</view>
0 25 \ No newline at end of file
... ...
components/qr_code/qr_code.wxss 0 → 100644
  1 +.xc-pop-up{
  2 + width: 100%;
  3 + height: 100%;
  4 + position:fixed;
  5 + z-index:5;
  6 + display:flex;
  7 +justify-content:center;
  8 +align-items:center;
  9 +}
  10 +
  11 +.xc-obscuration{
  12 + position: fixed;
  13 + left: 0;
  14 + top: 0;
  15 + right: 0;
  16 + bottom: 0;
  17 + z-index: 11;
  18 + background: rgba(0,0,0,0.4);
  19 + width: 100%;
  20 + height: 100%;
  21 +
  22 +
  23 +
  24 +}
  25 +
  26 +.xc-qr-frame{
  27 + width:90%;
  28 + min-height: 696rpx;
  29 + background: #fff;
  30 + z-index: 55;
  31 + position: fixed;
  32 + top:180rpx;
  33 + height: auto;
  34 + padding-bottom:20rpx;
  35 + left:35rpx;
  36 +
  37 +}
  38 +
  39 +/* 二维码和条形码的边框 */
  40 +.barqrcode{
  41 + width: 100%;
  42 + height: auto;
  43 + margin-top:30rpx;
  44 +
  45 +}
  46 +/* 点击条形 */
  47 +.barcode {
  48 + height:150rpx;
  49 + width: 620rpx;
  50 + padding-left:30rpx;
  51 + text-align:center;
  52 +}
  53 +canvas{
  54 + width:100%;
  55 +height:55px;
  56 +display:block;
  57 +position:relative;
  58 +}
  59 +.q_code{
  60 + font-size:28rpx;
  61 +letter-spacing:6rpx;
  62 +
  63 +}
  64 +
  65 +
  66 +/* 二维码边框*/
  67 +.qrcode_rim {
  68 + width: 550rpx;
  69 + height:580rpx;
  70 +display:flex;
  71 +flex-direction:column;
  72 +margin-left:74rpx;
  73 +
  74 +
  75 +}
  76 +.qrcode{
  77 + width:520rpx;
  78 + height:520rpx;
  79 + margin-top:-20rpx
  80 +
  81 +
  82 +}
  83 +.r-code{
  84 + font-size:28rpx;
  85 + text-align: center
  86 +}
  87 +
  88 +.shut{
  89 + display: block;
  90 + width: 54rpx;
  91 + height: 54rpx;
  92 + border: 2rpx solid #fff;
  93 + font-size: 50rpx;
  94 + z-index:55;
  95 + line-height:47rpx;
  96 + margin-top: 45rpx;
  97 + border-radius: 50%;
  98 + -moz-border-radius: 50%;
  99 + -webkit-border-radius: 50%;
  100 + color: #fff;
  101 + text-align: center;
  102 + position: fixed;
  103 + top:940rpx;
  104 + left:345rpx;
  105 +
  106 +
  107 +}
  108 +
  109 +.mt{ margin-top: 70rpx}
  110 +.flex{
  111 + display: flex;
  112 + justify-content:center;
  113 +}
0 114 \ No newline at end of file
... ...
components/timePicker/timePicker.js 0 → 100644
  1 +
  2 +Component({
  3 + /**
  4 + * 组件的属性列表
  5 + */
  6 + properties: {
  7 + pickerShow: {
  8 + type: Boolean,
  9 + observer:function(val){ //弹出动画
  10 + // console.log(this.data);
  11 + if(val){
  12 + let animation = wx.createAnimation({
  13 + duration: 500,
  14 + timingFunction: "ease"
  15 + });
  16 + let animationOpacity = wx.createAnimation({
  17 + duration: 500,
  18 + timingFunction: "ease"
  19 + });
  20 + setTimeout(() => {
  21 + animation.bottom(0).step();
  22 + animationOpacity.opacity(0.7).step();
  23 + this.setData({
  24 + animationOpacity: animationOpacity.export(),
  25 + animationData: animation.export()
  26 + })
  27 + }, 0);
  28 + }else{
  29 + let animation = wx.createAnimation({
  30 + duration: 100,
  31 + timingFunction: "ease"
  32 + });
  33 + let animationOpacity = wx.createAnimation({
  34 + duration: 500,
  35 + timingFunction: "ease"
  36 + });
  37 + animation.bottom(-320).step();
  38 + animationOpacity.opacity(0).step();
  39 + this.setData({
  40 + animationOpacity: animationOpacity.export(),
  41 + animationData: animation.export()
  42 + });
  43 + }
  44 +
  45 + // 在picker滚动未停止前点确定,会使startValue数组各项归零,发生错误,这里判断并重新初始化
  46 + // 微信新增了picker滚动的回调函数,已进行兼容
  47 + if(this.data.startValue&&this.data.endValue){
  48 + let s = 0, e = 0;
  49 + let conf = this.data.config;
  50 +
  51 + this.data.startValue.map(val => {
  52 + if (val == 0) {
  53 + s++
  54 + }
  55 + })
  56 + this.data.endValue.map(val => {
  57 + if (val == 0) {
  58 + e++;
  59 + }
  60 + });
  61 + let tmp={
  62 + hour:4,
  63 + minute:5,
  64 + second:6
  65 + }
  66 + let n = tmp[conf.column];
  67 + if (s>=n || e>=n) {
  68 + this.initPick(this.data.config);
  69 + this.setData({
  70 + startValue: this.data.startValue,
  71 + endValue: this.data.endValue,
  72 + });
  73 + }
  74 + }
  75 +
  76 +
  77 + }
  78 + },
  79 + config: Object
  80 + },
  81 +
  82 + /**
  83 + * 组件的初始数据
  84 + */
  85 + data: {
  86 + // pickerShow:true
  87 + // limitStartTime: new Date().getTime()-1000*60*60*24*30,
  88 + // limitEndTime: new Date().getTime(),
  89 + // yearStart:2000,
  90 + // yearEnd:2100
  91 + },
  92 + detached: function() {
  93 + console.log("dele");
  94 + },
  95 + attached: function() {},
  96 + ready: function() {
  97 + this.readConfig();
  98 + this.initPick(this.data.config || null);
  99 + this.setData({
  100 + startValue: this.data.startValue,
  101 + endValue: this.data.endValue,
  102 + });
  103 +
  104 +
  105 +
  106 +
  107 + },
  108 + /**
  109 + * 组件的方法列表
  110 + */
  111 + methods: {
  112 + //读取配置项
  113 + readConfig() {
  114 + let limitEndTime = new Date().getTime();
  115 + let limitStartTime = new Date().getTime() - 1000 * 60 * 60 * 24 * 30;
  116 + if (this.data.config) {
  117 + let conf = this.data.config;
  118 +
  119 + if (typeof conf.dateLimit == "number") {
  120 + limitStartTime =
  121 + new Date().getTime() - 1000 * 60 * 60 * 24 * conf.dateLimit;
  122 + }
  123 + if(conf.limitStartTime){
  124 +
  125 + limitStartTime = new Date(conf.limitStartTime.replace(/-/g,'/')).getTime();
  126 + }
  127 +
  128 + if (conf.limitEndTime) {
  129 + limitEndTime = new Date(conf.limitEndTime.replace(/-/g, '/')).getTime();
  130 + }
  131 +
  132 + this.setData({
  133 + yearStart: conf.yearStart || 2000,
  134 + yearEnd: conf.yearEnd || 2100,
  135 + endDate: conf.endDate || false,
  136 + dateLimit: conf.dateLimit || false,
  137 + hourColumn:
  138 + conf.column == "hour" ||
  139 + conf.column == "minute" ||
  140 + conf.column == "second",
  141 + minColumn: conf.column == "minute" || conf.column == "second",
  142 + secColumn: conf.column == "second"
  143 + });
  144 + }
  145 +
  146 + let limitStartTimeArr = formatTime(limitStartTime);
  147 + let limitEndTimeArr = formatTime(limitEndTime);
  148 +
  149 + this.setData({
  150 + limitStartTime,
  151 + limitStartTimeArr,
  152 + limitEndTime,
  153 + limitEndTimeArr
  154 + });
  155 + },
  156 + //滚动开始
  157 + handlePickStart:function(e){
  158 + this.setData({
  159 + isPicking:true
  160 + })
  161 + },
  162 + //滚动结束
  163 + handlePickEnd:function(e){
  164 + this.setData({
  165 + isPicking:false
  166 + })
  167 + },
  168 + onConfirm: function() {
  169 +
  170 + //滚动未结束时不能确认
  171 + if(this.data.isPicking){return}
  172 + let startTime = new Date(this.data.startPickTime.replace(/-/g, "/"));
  173 + let endTime = new Date(this.data.endPickTime.replace(/-/g, "/"));
  174 + if (startTime <= endTime || !this.data.endDate) {
  175 + this.setData({
  176 + startTime,
  177 + endTime
  178 + });
  179 + let startArr = formatTime(startTime).arr;
  180 + let endArr = formatTime(endTime).arr;
  181 + let format0 = function(num){
  182 + return num<10?'0'+num:num
  183 + }
  184 +
  185 + let startTimeBack =
  186 + startArr[0] +
  187 + "-" +
  188 + format0(startArr[1]) +
  189 + "-" +
  190 + format0(startArr[2]) +
  191 + " " +
  192 + (this.data.hourColumn ? format0(startArr[3]) : "00") +
  193 + ":" +
  194 + (this.data.minColumn ? format0(startArr[4]) : "00") +
  195 + ":" +
  196 + (this.data.secColumn ? format0(startArr[5]) : "00");
  197 +
  198 + let endTimeBack =
  199 + endArr[0] +
  200 + "-" +
  201 + format0(endArr[1]) +
  202 + "-" +
  203 + format0(endArr[2]) +
  204 + " " +
  205 + (this.data.hourColumn ? format0(endArr[3]) : "00") +
  206 + ":" +
  207 + (this.data.minColumn ? format0(endArr[4]) : "00") +
  208 + ":" +
  209 + (this.data.secColumn ? format0(endArr[5]) : "00");
  210 +
  211 + let time = {
  212 + startTime: startTimeBack,
  213 + endTime: endTimeBack
  214 + };
  215 +
  216 + //触发自定义事件
  217 + this.triggerEvent("setPickerTime", time);
  218 + this.triggerEvent("hidePicker", {});
  219 + } else {
  220 + wx.showToast({
  221 + icon: "none",
  222 + title: "时间不合理"
  223 + });
  224 + }
  225 + },
  226 + hideModal: function() {
  227 +
  228 +
  229 + this.triggerEvent("hidePicker", {});
  230 + },
  231 + changeStartDateTime: function(e) {
  232 + let val = e.detail.value;
  233 +
  234 + this.compareTime(val, "start");
  235 + },
  236 +
  237 + changeEndDateTime: function(e) {
  238 + let val = e.detail.value;
  239 + this.compareTime(val, "end");
  240 + },
  241 + //比较时间是否在范围内
  242 + compareTime(val, type) {
  243 + let h = val[3] ? this.data.HourList[val[3]] : "00";
  244 + let m = val[4] ? this.data.MinuteList[val[4]] : "00";
  245 + let s = val[5] ? this.data.SecondList[val[5]] : "00";
  246 + let time =
  247 + this.data.YearList[val[0]] +
  248 + "-" +
  249 + this.data.MonthList[val[1]] +
  250 + "-" +
  251 + this.data.DayList[val[2]] +
  252 + " " +
  253 + h +
  254 + ":" +
  255 + m +
  256 + ":" +
  257 + s;
  258 +
  259 + let start = this.data.limitStartTime;
  260 + let end = this.data.limitEndTime;
  261 + let timeNum = new Date(time.replace(/-/g, '/')).getTime();
  262 + let year, month, day, hour, min, sec, limitDate;
  263 + let tempArr = []
  264 +
  265 + if (!this.data.dateLimit){
  266 + limitDate = [
  267 + this.data.YearList[val[0]],
  268 + this.data.MonthList[val[1]],
  269 + this.data.DayList[val[2]],
  270 + this.data.HourList[val[3]],
  271 + this.data.MinuteList[val[4]],
  272 + this.data.SecondList[val[5]]]
  273 + } else if (type == "start" && timeNum > new Date(this.data.endPickTime.replace(/-/g, '/')) && this.data.config.endDate) {
  274 + limitDate = formatTime(this.data.endPickTime).arr;
  275 +
  276 + } else if (type == "end" && timeNum < new Date(this.data.startPickTime.replace(/-/g, '/'))) {
  277 + limitDate = formatTime(this.data.startPickTime).arr;
  278 +
  279 + } else if (timeNum < start) {
  280 + limitDate = this.data.limitStartTimeArr.arr;
  281 +
  282 + } else if (timeNum > end) {
  283 + limitDate = this.data.limitEndTimeArr.arr;
  284 +
  285 + } else {
  286 + limitDate = [
  287 + this.data.YearList[val[0]],
  288 + this.data.MonthList[val[1]],
  289 + this.data.DayList[val[2]],
  290 + this.data.HourList[val[3]],
  291 + this.data.MinuteList[val[4]],
  292 + this.data.SecondList[val[5]]
  293 + ]
  294 +
  295 + }
  296 +
  297 + year = limitDate[0];
  298 + month = limitDate[1];
  299 + day = limitDate[2];
  300 + hour = limitDate[3];
  301 + min = limitDate[4];
  302 + sec = limitDate[5];
  303 +
  304 + if (type == "start") {
  305 + this.setStartDate(year, month, day, hour, min, sec);
  306 + } else if (type == "end") {
  307 + this.setEndDate(year, month, day, hour, min, sec);
  308 + }
  309 + },
  310 + getDays: function(year, month) {
  311 + let daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  312 + if (month === 2) {
  313 + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0
  314 + ? 29
  315 + : 28;
  316 + } else {
  317 + return daysInMonth[month - 1];
  318 + }
  319 + },
  320 + initPick: function(initData) {
  321 + const date = initData.initStartTime ? new Date(initData.initStartTime.replace(/-/g, '/')): new Date();
  322 + const endDate = initData.initEndTime ? new Date(initData.initEndTime.replace(/-/g, '/')) : new Date();
  323 + // const startDate = new Date(date.getTime() - 1000 * 60 * 60 * 24);
  324 + const startDate = date;
  325 + const startYear = date.getFullYear();
  326 + const startMonth = date.getMonth() + 1;
  327 + const startDay = date.getDate();
  328 + const startHour = date.getHours();
  329 + const startMinute = date.getMinutes();
  330 + const startSecond = date.getSeconds();
  331 +
  332 + const endYear = endDate.getFullYear();
  333 + const endMonth = endDate.getMonth() + 1;
  334 + const endDay = endDate.getDate();
  335 + const endHour = endDate.getHours();
  336 + const endMinute = endDate.getMinutes();
  337 + const endSecond = endDate.getSeconds();
  338 +
  339 + let YearList = [];
  340 + let MonthList = [];
  341 + let DayList = [];
  342 + let HourList = [];
  343 + let MinuteList = [];
  344 + let SecondList = [];
  345 +
  346 + //设置年份列表
  347 + for (let i = this.data.yearStart; i <= this.data.yearEnd; i++) {
  348 + YearList.push(i);
  349 + }
  350 +
  351 + // 设置月份列表
  352 + for (let i = 1; i <= 12; i++) {
  353 + MonthList.push(i);
  354 + }
  355 + // 设置日期列表
  356 + for (let i = 1; i <= 31; i++) {
  357 + DayList.push(i);
  358 + }
  359 + // 设置时列表
  360 + for (let i = 0; i <= 23; i++) {
  361 + if (0 <= i && i < 10) {
  362 + i = "0" + i;
  363 + }
  364 + HourList.push(i);
  365 + }
  366 + // 分|秒
  367 + for (let i = 0; i <= 59; i++) {
  368 + if (0 <= i && i < 10) {
  369 + i = "0" + i;
  370 + }
  371 + MinuteList.push(i);
  372 + SecondList.push(i);
  373 + }
  374 +
  375 + this.setData({
  376 + YearList,
  377 + MonthList,
  378 + DayList,
  379 + HourList,
  380 + MinuteList,
  381 + SecondList
  382 + });
  383 +
  384 + this.setStartDate(startYear, startMonth, startDay, startHour, startMinute, startSecond);
  385 + this.setEndDate(endYear, endMonth, endDay, endHour, endMinute, endSecond);
  386 +
  387 + //!!!
  388 + // setTimeout(() => {
  389 + // this.setStartDate(nowYear, nowMonth, nowDay, nowHour, nowMinute)
  390 + // this.setEndDate(nowYear, nowMonth, nowDay, nowHour, nowMinute)
  391 + // }, 0);
  392 + },
  393 + setPickerDateArr(type, year, month, day, hour, minute, second) {
  394 + let yearIdx = 0;
  395 + let monthIdx = 0;
  396 + let dayIdx = 0;
  397 + let hourIdx = 0;
  398 + let minuteIdx = 0;
  399 + let secondIdx = 0;
  400 +
  401 + this.data.YearList.map((v, idx) => {
  402 + if (parseInt(v) === year) {
  403 + yearIdx = idx;
  404 + }
  405 + });
  406 +
  407 + this.data.MonthList.map((v, idx) => {
  408 + if (parseInt(v) === month) {
  409 + monthIdx = idx;
  410 + }
  411 + });
  412 +
  413 + // 重新设置日期列表
  414 + let DayList = [];
  415 + for (let i = 1; i <= this.getDays(year, month); i++) {
  416 + DayList.push(i);
  417 + }
  418 +
  419 + DayList.map((v, idx) => {
  420 + if (parseInt(v) === day) {
  421 + dayIdx = idx;
  422 + }
  423 + });
  424 + if (type == "start") {
  425 + this.setData({ startDayList: DayList });
  426 + } else if (type == "end") {
  427 + this.setData({ endDayList: DayList });
  428 + }
  429 +
  430 + this.data.HourList.map((v, idx) => {
  431 + if (parseInt(v) === parseInt(hour)) {
  432 + hourIdx = idx;
  433 + }
  434 + });
  435 +
  436 + this.data.MinuteList.map((v, idx) => {
  437 + if (parseInt(v) === parseInt(minute)) {
  438 + minuteIdx = idx;
  439 + }
  440 + });
  441 + this.data.SecondList.map((v, idx) => {
  442 + if (parseInt(v) === parseInt(second)) {
  443 + secondIdx = idx;
  444 + }
  445 + });
  446 +
  447 + return {
  448 + yearIdx,
  449 + monthIdx,
  450 + dayIdx,
  451 + hourIdx,
  452 + minuteIdx,
  453 + secondIdx
  454 + };
  455 + },
  456 + setStartDate: function(year, month, day, hour, minute, second) {
  457 + let pickerDateArr = this.setPickerDateArr(
  458 + "start",
  459 + year,
  460 + month,
  461 + day,
  462 + hour,
  463 + minute,
  464 + second
  465 + );
  466 + this.setData({
  467 + startYearList: this.data.YearList,
  468 + startMonthList: this.data.MonthList,
  469 + // startDayList: this.data.DayList,
  470 + startHourList: this.data.HourList,
  471 + startMinuteList: this.data.MinuteList,
  472 + startSecondList: this.data.SecondList,
  473 + startValue: [
  474 + pickerDateArr.yearIdx,
  475 + pickerDateArr.monthIdx,
  476 + pickerDateArr.dayIdx,
  477 + pickerDateArr.hourIdx,
  478 + pickerDateArr.minuteIdx,
  479 + pickerDateArr.secondIdx
  480 + ],
  481 + startPickTime:
  482 + this.data.YearList[pickerDateArr.yearIdx] +
  483 + "-" +
  484 + this.data.MonthList[pickerDateArr.monthIdx] +
  485 + "-" +
  486 + this.data.DayList[pickerDateArr.dayIdx] +
  487 + " " +
  488 + this.data.HourList[pickerDateArr.hourIdx] +
  489 + ":" +
  490 + this.data.MinuteList[pickerDateArr.minuteIdx] +
  491 + ":" +
  492 + this.data.SecondList[pickerDateArr.secondIdx]
  493 + });
  494 + },
  495 + setEndDate: function(year, month, day, hour, minute, second) {
  496 + let pickerDateArr = this.setPickerDateArr(
  497 + "end",
  498 + year,
  499 + month,
  500 + day,
  501 + hour,
  502 + minute,
  503 + second
  504 + );
  505 +
  506 + this.setData({
  507 + endYearList: this.data.YearList,
  508 + endMonthList: this.data.MonthList,
  509 + // endDayList: this.data.DayList,
  510 + endHourList: this.data.HourList,
  511 + endMinuteList: this.data.MinuteList,
  512 + endSecondList: this.data.SecondList,
  513 + endValue: [
  514 + pickerDateArr.yearIdx,
  515 + pickerDateArr.monthIdx,
  516 + pickerDateArr.dayIdx,
  517 + pickerDateArr.hourIdx,
  518 + pickerDateArr.minuteIdx,
  519 + pickerDateArr.secondIdx
  520 + ],
  521 + endPickTime:
  522 + this.data.YearList[pickerDateArr.yearIdx] +
  523 + "-" +
  524 + this.data.MonthList[pickerDateArr.monthIdx] +
  525 + "-" +
  526 + this.data.DayList[pickerDateArr.dayIdx] +
  527 + " " +
  528 + this.data.HourList[pickerDateArr.hourIdx] +
  529 + ":" +
  530 + this.data.MinuteList[pickerDateArr.minuteIdx] +
  531 + ":" +
  532 + this.data.SecondList[pickerDateArr.secondIdx]
  533 + });
  534 + },
  535 + }
  536 +});
  537 +
  538 +
  539 +function formatTime(date) {
  540 +
  541 + if (typeof date == 'string' || 'number') {
  542 + try {
  543 + date = date.replace(/-/g, '/')//兼容ios
  544 + } catch (error) {
  545 + }
  546 + date = new Date(date)
  547 + }
  548 +
  549 + const year = date.getFullYear()
  550 + const month = date.getMonth() + 1
  551 + const day = date.getDate()
  552 + const hour = date.getHours()
  553 + const minute = date.getMinutes()
  554 + const second = date.getSeconds()
  555 +
  556 + return {
  557 + str: [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':'),
  558 + arr: [year, month, day, hour, minute, second]
  559 + }
  560 +}
  561 +function formatNumber(n) {
  562 + n = n.toString()
  563 + return n[1] ? n : '0' + n
  564 +}
... ...
components/timePicker/timePicker.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/timePicker/timePicker.wxml 0 → 100644
  1 +<!--components/timePicker/timePicker.wxml-->
  2 +<!-- 自定义时间筛选器 -->
  3 +<view hidden="{{!pickerShow}}">
  4 + <view class="picker-container {{pickerShow?'show_picker':'hide_picker'}}" animation="{{animationData}}">
  5 +
  6 + <view class="btn-box">
  7 + <view class="pick_btn" bindtap="hideModal">取消</view>
  8 + <view class='pick_btn' style="color: #19f" bindtap="onConfirm">确定</view>
  9 + </view>
  10 +
  11 + <view class="flex m_auto">
  12 + <view style="margin-left:10rpx">
  13 + <view class="w_class">开始日期:</view>
  14 + <picker-view class='sensorTypePicker' indicator-style='height: 35px;' bindchange="changeStartDateTime"
  15 + value="{{startValue}}" style="height: {{endDate?'120px':'250px'}};" bindpickstart="handlePickStart" bindpickend="handlePickEnd">
  16 + <picker-view-column style="min-width: 70px;flex-shrink: 0">
  17 + <view class='picker-item' wx:for="{{startYearList}}" wx:key='*this'>{{item}}</view>
  18 + </picker-view-column>
  19 + <picker-view-column>
  20 + <view class='picker-item' wx:for="{{startMonthList}}" wx:key='*this'>{{item}}</view>
  21 + </picker-view-column>
  22 + <picker-view-column>
  23 + <view class='picker-item' wx:for="{{startDayList}}" wx:key='*this'>{{item}}</view>
  24 + </picker-view-column>
  25 + <picker-view-column hidden="{{!hourColumn}}">
  26 + <view class='picker-item' wx:for="{{startHourList}}" wx:key='*this'>{{item}}</view>
  27 + </picker-view-column>
  28 + <picker-view-column hidden="{{!minColumn}}">
  29 + <view class='picker-item' wx:for="{{startMinuteList}}" wx:key='*this'>{{item}}</view>
  30 + </picker-view-column>
  31 + <picker-view-column hidden="{{!secColumn}}">
  32 + <view class='picker-item' wx:for="{{startSecondList}}" wx:key='*this'>{{item}}</view>
  33 + </picker-view-column>
  34 + </picker-view>
  35 + </view>
  36 +
  37 + <view class="line"></view>
  38 +
  39 + <view wx:if="{{endDate}}" style="margin-left:20rpx">
  40 + <view class="w_class">结束日期:</view>
  41 + <picker-view class='sensorTypePicker' indicator-style='height: 35px;' bindchange="changeEndDateTime" bindpickstart="handlePickStart" bindpickend="handlePickEnd"
  42 + value="{{endValue}}">
  43 + <picker-view-column style="min-width: 70px;flex-shrink: 0">
  44 + <view class='picker-item' wx:for="{{endYearList}}" wx:key='*this' style="min-width: 70px;">{{item}}</view>
  45 + </picker-view-column>
  46 + <picker-view-column>
  47 + <view class='picker-item' wx:for="{{endMonthList}}" wx:key='*this'>{{item}}</view>
  48 + </picker-view-column>
  49 + <picker-view-column>
  50 + <view class='picker-item' wx:for="{{endDayList}}" wx:key='*this'>{{item}}</view>
  51 + </picker-view-column>
  52 + <picker-view-column hidden="{{!hourColumn}}" >
  53 + <view class='picker-item' wx:for="{{endHourList}}" wx:key='*this'>{{item}}</view>
  54 + </picker-view-column>
  55 + <picker-view-column hidden="{{!minColumn}}">
  56 + <view class='picker-item' wx:for="{{endMinuteList}}" wx:key='*this'>{{item}}</view>
  57 + </picker-view-column>
  58 + <picker-view-column hidden="{{!secColumn}}">
  59 + <view class='picker-item' wx:for="{{startSecondList}}" wx:key='*this'>{{item}}</view>
  60 + </picker-view-column>
  61 +
  62 +
  63 + </picker-view>
  64 + </view>
  65 + </view>
  66 +
  67 +
  68 + <!-- <view class='sure' bindtap="onConfirm">确定</view> -->
  69 +
  70 + </view>
  71 + <!-- 遮罩 -->
  72 + <view class="sensorType-screen" bindtap="hideModal" animation="{{animationOpacity}}"/>
  73 +</view>
... ...
components/timePicker/timePicker.wxss 0 → 100644
  1 +/* components/timePicker/timePicker.wxss */
  2 +
  3 +.picker-item{
  4 + line-height: 50px;
  5 + display: flex;
  6 + justify-content: center;
  7 + align-items: center;
  8 +}
  9 +
  10 +/* 自定义时间 */
  11 +.picker-container {
  12 + display: flex;
  13 + flex-direction: column;
  14 + /* justify-content: center; */
  15 + align-items: center;
  16 +
  17 + width: 100%;
  18 + overflow: hidden;
  19 + position: fixed;
  20 + left: 0;
  21 + /* height: 0; */
  22 + transition: height 0.5s;
  23 + z-index: 2000;
  24 + background: white;
  25 + border-top: 1px solid #EFEFF4;
  26 + height: 460rpx
  27 +}
  28 +.sensorType-screen{
  29 + width: 100vw;
  30 + /* height:400rpx; */
  31 + position: fixed;
  32 + top: 0;
  33 + right: 0;
  34 + bottom: 0;
  35 + left: 0;
  36 + background: #000;
  37 + opacity: 0;
  38 + overflow: hidden;
  39 + z-index: 1999;
  40 + color: #fff;
  41 +}
  42 +.sensorTypePicker{
  43 + width: 330rpx;
  44 + height: 120px;
  45 + /* padding: 45px 0; */
  46 +}
  47 +.picker-item{
  48 + line-height: 50px;
  49 + display: flex;
  50 + justify-content: center;
  51 + align-items: center;
  52 + font-size: 16px;
  53 + /* overflow: hidden; */
  54 +}
  55 +.box{
  56 + padding: 0 10px;
  57 +}
  58 +
  59 +/* 至 */
  60 +.to{
  61 + width:100%;
  62 + display: flex;
  63 + justify-content: center;align-items: center;
  64 + color:rgb(138,138,138);
  65 + /* font-size:30rpx; */
  66 +}
  67 +
  68 +/* 确定 */
  69 +.sure{
  70 + width:100%;
  71 + height:45px;
  72 + border-top: 1px solid #EFEFF4;
  73 + display: flex;justify-content: center;align-items: center;
  74 + color: rgb(36,123,255);
  75 + font-size:16px;
  76 +}
  77 +
  78 +.btn-box{
  79 + width: 100%;
  80 + display: flex;
  81 + justify-content: space-between;
  82 + align-items: center;
  83 + border-bottom: 1px solid #eee;
  84 +}
  85 +.pick_btn{
  86 + padding: 7px 15px;
  87 + color: #ccc;
  88 + /* background-color: #159; */
  89 +}
  90 +
  91 +.flex{display: flex}
  92 +.picker-container .m_auto{ margin: 20rpx auto; width: 730rpx; }
  93 +.picker-container .w_class{color: #999; margin-left: 30rpx; margin-top:30rpx;
  94 +font-size: 34rpx; position: relative; top:3rpx}
  95 + .picker-container .line{ height: 280rpx; width: 1rpx; border-right:1rpx solid #eee; margin-left: 26rpx; margin-top: 26rpx }
... ...
components/userqy_pop_up/filter.wxs 0 → 100644
  1 +var format = function (text) {
  2 +
  3 + if (!text) {
  4 + return
  5 + }
  6 + var reg = getRegExp('\\\\n', 'g')
  7 + return text.replace(reg, '\n')
  8 +}
  9 +
  10 +module.exports = {
  11 + format: format
  12 +}
... ...
components/userqy_pop_up/userqy_pop_up.js 0 → 100644
  1 +// components/userqy_pop_up/userqy_pop_up.js
  2 +Component({
  3 + /**
  4 + * 页面的初始数据
  5 + */
  6 + data: {
  7 + control: 1
  8 + },
  9 +
  10 + properties: {
  11 +
  12 + },
  13 + ready: function () {
  14 +
  15 + },
  16 +
  17 + methods: {
  18 +
  19 + // 打开主键
  20 + open: function (e) {
  21 + var contents = e.content;
  22 + this.setData({ control: 2, title: e.title, content: contents });
  23 +
  24 + },
  25 + //关闭
  26 + close: function () {
  27 + this.setData({ control: 0 });
  28 + },
  29 +
  30 + },
  31 +
  32 +
  33 +
  34 +
  35 +
  36 +})
0 37 \ No newline at end of file
... ...
components/userqy_pop_up/userqy_pop_up.json 0 → 100644
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
0 5 \ No newline at end of file
... ...
components/userqy_pop_up/userqy_pop_up.wxml 0 → 100644
  1 +<wxs src="filter.wxs" module="util"></wxs>
  2 +<view class="xc-pop-up" wx:if="{{control==2}}">
  3 + <view class="div" bindtap="close"></view>
  4 + <view class="con_div flex_c">
  5 + <view class="pop-up rel">
  6 + <!-- 标题 -->
  7 + <view class="xc-title ellipsis-1">{{title}}</view>
  8 + <!-- 内容 -->
  9 + <view class="xc-content">
  10 + <text>{{util.format(content)}}</text>
  11 + </view>
  12 +
  13 + <view class="shut abs" bindtap="close">ⅹ</view>
  14 + </view>
  15 +
  16 + </view>
  17 +</view>
0 18 \ No newline at end of file
... ...
components/userqy_pop_up/userqy_pop_up.wxss 0 → 100644
  1 +
  2 +.xc-pop-up .div{
  3 + width: 100%;
  4 + height: 100%;
  5 + position: fixed;
  6 + left: 0;
  7 + top: 0;
  8 + right: 0;
  9 + bottom: 0;
  10 + z-index: 11;
  11 + background: rgba(0,0,0,0.4);
  12 +
  13 +}
  14 +
  15 +.con_div{
  16 + width: 100%;
  17 + height: 100%;
  18 + position: fixed;
  19 + left: 0;
  20 + top: 0;
  21 +}
  22 +
  23 +.xc-pop-up .pop-up{
  24 + border-radius: 15rpx;
  25 + width: 640rpx;
  26 + min-height:400rpx;
  27 + height: auto;
  28 + background: #fff;
  29 + border: 4rpx solid #8faecd;
  30 + z-index: 55;
  31 +}
  32 +.xc-pop-up .shut{
  33 + width: 54rpx;
  34 + height: 54rpx;
  35 + border: 2rpx solid #fff;
  36 + font-size: 50rpx;
  37 + z-index:55;
  38 + line-height:40rpx;
  39 + border-radius: 50%;
  40 + color: #fff;
  41 + text-align: center;
  42 + bottom: -100rpx;
  43 + left:280rpx
  44 +}
  45 +
  46 +
  47 +.xc-title{
  48 + height:110rpx;
  49 +line-height:121rpx;
  50 + text-align: center;
  51 +width:100%;
  52 + overflow: hidden;
  53 + white-space: nowrap;
  54 + text-overflow: ellipsis;
  55 +
  56 +}
  57 +.xc-content{
  58 + width: 80%;
  59 + overflow-y: auto;
  60 + margin:0 auto;
  61 + color:#9f9f9f;
  62 + font-size:30rpx;
  63 + margin-bottom:20rpx;
  64 + padding-bottom: 10rpx;
  65 + max-height: 400rpx
  66 +}
  67 +
  68 +.con_div{
  69 + z-index:55; position: fixed;top:0; left: 0; height: 100%; width: 100%;
  70 +}
  71 +.xc-layer-title{
  72 + width:80%;
  73 +margin:0 auto;
  74 +
  75 +}
  76 +
  77 +.rel{ position: relative}
  78 +.abs{position: absolute}
  79 +.flex_c{display: flex; justify-content: center; align-items: center}
0 80 \ No newline at end of file
... ...
images/bar/car.png 0 → 100644

3.43 KB

images/bar/car_on.png 0 → 100644

17.7 KB

images/bar/fl.png 0 → 100644

3.86 KB

images/bar/fl_on.png 0 → 100644

18 KB

images/bar/fx.png 0 → 100644

3.88 KB

images/bar/fx_on.png 0 → 100644

17.8 KB

images/bar/index.png 0 → 100644

3.79 KB

images/bar/index_on.png 0 → 100644

17.8 KB

images/bar/user.png 0 → 100644

4.08 KB

images/bar/user_on.png 0 → 100644

17.9 KB

images/gt.png 0 → 100644

1.72 KB

images/share/ct_num.png 0 → 100644

3.63 KB

images/share/default_g_img.gif 0 → 100644

7.54 KB