解决问题3

作者: 花开有声是我 | 来源:发表于2018-07-25 17:50 被阅读0次
    31. 离开焦点事件,校验手机号是否存在,

    v-on:blur="search"
    search:function(){
    let self=this;
    var Params={
    'phone':self.ruleForm.account.trim(),
    }
    this.$parent.fetchData(ajaxPrefix+'open/api/login/ajaxUserPhone',Params,function(data){
    // console.log(data);
    rules.account.message="手机号不存在"
    // alert("手机号不存在")
    })
    }

    32.去除vue项目中的 # --- History模式
    image.png
    不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404。
      所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。如果所做的项目的后端没有支持此种方式,还是先使用#的方式进行开发。
    相关链接:解决vue router使用 history 模式刷新后404问题 https://www.jb51.net/article/119075.htm
    33.vant的Sku 商品规格使用时选中规格显示
    需求:由skudatas.selectedSku和ths.sku.tree得出: 500W 白色

    skudatas.selectedSku = {s1: 11, s2: 9};
    ths.sku.tree= [{
                    "v": [{
                        "name": "200W",
                        "id": 10
                    }, {
                        "name": "500W",
                        "id": 11
                    }],
                    "k_s": "s1",
                    "k": "功率"
                }, {
                    "v": [{
                        "name": "白色",
                        "id": 9
                    }],
                    "k_s": "s2",
                    "k": "颜色"
    }],
    this.selectedStylesString = '已选:500W 白色'
    
    解决方法:
    /* 切换规格类目时触发 改变选择显示规格 */
            onSkuSelected(skudatas) {
                let ths = this;
                ths.selectedStyles = [];
                ths.sku.tree.forEach((value, index) => {
                    value.v.forEach((valueNew, index) => {
                        if (valueNew.id === skudatas.selectedSku[value.k_s]) {
                            ths.selectedStyles.push(valueNew.name);
                        }
                    });
                });
            },
    
    selectedString() {
                if (this.selectedStyles.length >= 1) {
                    var s2 = '已选:';
                    this.selectedStyles.forEach(item => {
                        s2 += '"';
                        s2 += item;
                        s2 += '" ';
                    });
                }
                this.selectedStylesString = s2;
            },
    // 调出商品规格
            specifications() {
                this.showBase = true;
            },
    
    watch: {
            showBase: {  // 控制是否调出商品规格
                handler: function(val, oldVal) {
                    this.selectedString();
                }
            }
        }
    
    34.商品详情加购物车和购买的逻辑:从规格 请选择进入的规格弹出层, 规格弹出层底部显示 “加入购物车” 和“立即购买” 两个按钮;从商品详情页面底部的加入购物车 或 立即购买 按钮 进入规格弹出层,规格弹出层底部显示“确定”按钮
    <div class="specifications" @click="specifications()" v-if="sku">
                  <P>规格
                        <span class="notchoosed" v-if="selectedStyles.length === 0">请选择</span>
                        <span class="choosed" v-if="selectedStyles.length !== 0">{{selectedStylesString}}</span>
                    </P>
                    <van-sku v-model="showBase" :sku="sku" :goods="goods" :goods-id="goodsId" :hide-stock="sku.hide_stock" :quota="quota" :quota-used="quotaUsed" :reset-stepper-on-hide="resetStepperOnHide" :reset-selected-sku-on-hide="resetSelectedSkuOnHide" :close-on-click-overlay="closeOnClickOverlay" :disable-stepper-input="disableStepperInput" @add-cart="onAddCartClicked" @buy-clicked="onBuyClicked" @sku-selected="onSkuSelected">
                        <template slot="van-sku-stepper-stock" slot-scope="props">
                            <div class="van-sku-stepper-container">
                                <span class="van-sku__price-symbol">¥</span>
                                <span class="van-sku__price-num">{{ props.price }}</span>
                            </div>
                        </template>
                        <template slot="sku-actions" slot-scope="props">
                            <div class="van-sku-actions">
                                <van-button v-if="isgocart === 1 || isgocart === 2" type="primary" bottom-action @click="props.skuEventBus.$emit('sku:buy')">确定</van-button>
                                <van-button v-if="isgocart === 0" type="primary" bottom-action style="border-radius: 40px 0px 0px 40px;background-color: #ffbe2b;border:none;" @click="props.skuEventBus.$emit('sku:addCart')">加入购物车</van-button>
                                <van-button v-if="isgocart === 0" type="primary" bottom-action style="border-radius: 0px 40px 40px 0px;background-color: #EE2E50;border:none;" @click="props.skuEventBus.$emit('sku:buy')">立即购买</van-button>
                            </div>
                        </template>
                    </van-sku>
                </div>
    
    35. v-if和v-for嵌套用法
    <template v-if><div v-for></div></template>
    
    image.png
    36. CSS超过n行自动显示省略号
    1. CSS超过一行自动显示省略号
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    
    2. CSS超过多行自动显示省略号
    overflow:hidden;
    text-overflow:ellipsis;
    white-space: normal;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2; /* 规定最多显示两行 */
    }
    /* 这个方法适用webkit核浏览器和手机端 */
    
    3. CSS超过两行只显示两行
    -webkit-line-clamp: 2;
     -webkit-box-orient: vertical;
    overflow: hidden;
    

    相关文章

      网友评论

        本文标题:解决问题3

        本文链接:https://www.haomeiwen.com/subject/zikmmftx.html