zoukankan      html  css  js  c++  java
  • 小结

    这是rwx公司前端web项目中的工作小结,以前记在我的记事本里,复制过来的

    实习期在做一个小程序,现在叫喜人心健康肽

    之后是写wrx自己的app(叫爱车点点)和H5门店系统开发

    2019-05-15:
    混合开发知识点:
    <span class="kaidan1 kaidan_gaoliang"></span>-- 高亮属性类名给第二个

    数据提交用form 表单包 属性 method='post' 可提交

    input name属性值

    -id="jiansuo1" -不生效

    2019-05-22:
    js封装:

    <span class="tab-span AI">车牌号*:</span>
    <span class="tab-chepai">
    <input type="text" class="tab-put action_chepaihao" placeholder="请输入车牌号" value="" requiredname="plate_number">
    </span>
    <button class="tab-btn" type="button" -id="jiansuo1" onclick="selectUserListBox('jiansuo1')">检索</button>
    </span>


    <span class="tab-span AI">手机号*:</span>
    <span class="tab-shouji">
    <input type="text" class="tab-put5 action_shoujihao" placeholder="请输入手机号" value="" required name="phone">
    </span>
    <button class="tab-btn2" type="button" onclick="selectUserListBox('jiansuo2')">检索</button>//调用函数


    //封装-(车牌号/手机号模糊查询用户信息)
    function selectUserListBox(m){
      var url_selectUserList = "{:U('Home/Api/selectUserList')}";//请求地址
      if(m =='jiansuo1'){//车牌号查询
        var keyword=$(".action_chepaihao").val();
        if(!keyword){
        alert("请输入车牌号");return;
        }

      }else{//手机号查询
        var keyword=$(".action_shoujihao").val();
        if(!keyword){
          slert("请输入手机号");return;
        }  

      }

    }

    混合开发:点击项目列表 渲染
    <div class="tianjiaNeiR" id="wxxmTypeBox">
      <!-- 项目类别-静态样式
      <div id="zxm_wxxm_0" class="active">美容</div>
      <div id="zxm_wxxm_1">保养</div>
      <div>维修</div>
      <div>保养</div>
      <div>维修</div>

      <div>保养</div>
      <div>维修</div>
      <div>保养</div>
      <div>维修</div>
      <div>保养</div>

      <div>维修1</div>
      <div>维修2</div>
    -->
    </div>
    <div id="wxxmDataBox">
      <!-- 项目列表-静态样式
      <ul class="tianjialist zxm_wxxm_0" -style="display: none">
        <li class="list-li list_active" title="10">11111111SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li list_active" title="30">SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li list_active">SUV外</li>
        <li class="list-li list_active">SUV外观清晰1十</li>
        <li class="list-li list_active">SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li">SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li list_active">SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li list_active">SUV外</li>
        <li class="list-li list_active">SUV外观清晰1十</li>
        <li class="list-li">SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li list_active">SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li list_active">SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li list_active">SUV外观清晰1十大缴费卡死的积分卡圣诞</li>
        <li class="list-li list_active">SUV外观清晰1十</li>
      </ul>
    </div>

    2019-05-29:
    点击项目列表 --动态渲染:
    //$.post("{地址}",变量【没有可以不写】,function(){})
    $.post("{:U('Home/Indent/public_getwxxmList')}",'',function(re){
      if(re.code==1) return;//=1直接不返回不执行以下代码
      var _data = re.data;//返回一个对象,一个数组,分别循环取值
      var mhtml = '';
      var mhtml_xm = '';
      for(i=0;i<_data.length;i++){
        if(i==0){
        mhtml+= '<div id="zxm_wxxm_'+i+'" class="active" onclick="action_wxxmDataBox(this)">'+_data[i].title+'</div>';
        mhtml_xm += '<ul class="tianjialist zxm_wxxm_'+i+'">';
      }else{
        mhtml += '<div id="zxm_wxxm_'+i+'" onclick="action_wxxmDataBox(this)">'+_data[i].title+'</div>';
        mhtml_xm += '<ul class="tianjialist zxm_wxxm_'+i+'" style="display: none">';
    }
        var _wxxm_list = _data[i].list;
        for(y=0;y<_wxxm_list.length;y++){
          if(pub_wxxm_list.indexOf(_wxxm_list[y].k14_002)>-1){
          mhtml + ='<li title="'+_wxxm_list[y].k14_003+'" class="list-li list_active">'+_wxxm_list[y].k14_002+'</li>';
      }else{
          mhtml + ='<li title="'+_wxxm_list[y].k14_003+'" class="list-li">'+_wxxm_list[y].k14_002+'</li>';
      }

    }
          mhtml_xm + ='</ul>'
    }
      $('#wxxmTypeBox').html(mhtml); //渲染-项目类别
      $('#wxxmDataBox').html(mhtml_xm); //渲染-项目
    })

    2019-06-02:
    前后分离:

    --确认支付传递过去的参数
    静态:
    <button type="button" onclick="gobuy('goods_id','shopid','orderson')">去支付</button>--【'goods_id','shopid','orderson'(传递的参数)】

    //html += '<span class="f-r ma_buy buy" data-zhifu="' +data[i].orderson+ '" onclick="goonpay('+"'" +data[i].orderson+ " ')"+'">去支付</span>';--完整样式

    循环内能拿到的值:
    data
    data[i].orderson
    data[i].goods_id
    data[i].shopid

    //data[i].uid
    //data[i].token --


    我们最后需要什么?
    uid, token, orderson

    uid, token, orderson (我们需要传的参数)

    动态写活:

    var html = "xxx";

    html+ ='<button type="button" onclick="goBuy('goods_id','shopid','orderson')">去支付</button>'; ---原样粘贴静态,静态内是双引外面则单引包
    [uid, token, orderson-没有引号是变量;''引号包含则是字符串]
    写活字符串拼接:

      html+ = '<button type="button" onclick="gobuy('+"'goods_id','shopid','orderson')"+'">去支付</button>';

      html+ = '<button type="button" onclick="gobuy('+"'"+ goods_id +"','"+ shopid +"','"+orderson+"')"+'">去支付</button>';

    循环赋值:

      html+ = '<button type="button" onclick="gobuy('+"'"+data[i].goods_id +"','"+ data[i].shopid +"','"+data[i].orderson+"')"+'">去支付</button>';


    嵌入html内:

      $(".xxxx").html(html);

    2019-06-12:
    支付页面:
    <div class="shodw-box"></div> //模态框
    <div class="pay-box">
      <input type="hidden" value="" class="zxm_orderson">---隐藏属性,接受传过来的订单号
      <input type="hidden" value="" class="zxm_paytype">
      <div class="title">
        <h5>支付方式</h5>
        <img onclick="closefn()" src="../images/close_icon.png">
      </div>
      <div class="pay-list">
        <img src="../images/zfb_icon.png">
        <h5>支付宝</h5>
        <div class="select-btn" onclick="selectPay(this, 12)" name="1"></div>
      </div>
      <div class="pay-list" id="zxm_wxpayBox">
        <img src="../images/wx_icon.png">
        <h5>微信</h5>
        <div class="select-btn" onclick="selectPay(this, 13)" name="2"></div>
      </div>
      <span class="affirm-btn">确认支付</span>
    </div>

    点击支付:
      var uid = localStorage.getItem('uid');//获取uid
      var token = localStorage.getItem('token');//获取token
      function goBuy(){
        $('.zxm_orderson').val(orderson);//储存的订单号
        $(".shodw-box").show();
        $(".pay-box").show();
    }

    确认支付:
      $(".affirm-btn").click(function({
        if($(".pay-list div").hasClass("active")){//选择哪个div增加一个背景属性
          var orderson = $(".orderson").val();//订单号取值
          var paytype = $(".paytype").val(); //支付方式值
          if(!orderson){alert("请选择订单");return}
          if(!paytype){alert("请选择支付方式");return}
          //$.post(url,变量,function(){})
          //is_url参数要传,告知后台需要返回url唤起完整地址
        $.post(getPayAcddIndentUrl,{"uid":uid,"token":token,"orderson":orderson,"paytype":paytype,"is_url":'yes'},function(eve){
        if(eve.code==0){
          var UA = navigator.userAgent;
          var isWeixin = /MicroMessenger/gi.test(UA);
          if(isWeixin){
            location.href = '../..publicHtml/html/alpay_jixx.html?'+eve.data.url;//h5微信内不能支付,需跳转浏览器唤醒支付宝支付
          }else{
            location.href = eve.data.url;
        }

    }else{
          alert(eve.msg);
        }
      })
    }else{
          alert("请选择支付方式");
    }

    }))


    继续支付 跳支付宝接口alpay_jixx.html 页面:

    <html>
    ...
    ...
    <script>
      $(function(){
        var UA = navigator.userAgent;
        var isWeixin = /MicroMessenger/gi.test(UA);
        if(!isWeixin){
          var urls = location.href;
          var index = urls.indexOf('?')+1; //不包含?号
          var urllast = urls.slice(index);
          //location.href = "https://openapi.alipay.com/gateway.do?"+urllast;
          location.href = urllast; //服务端已返回完整地址,含参数,原样跳转
        }
      });

    </script>
    </html>

    2019-06-15:
    知识点:

    <script src="../../../public/api.js?v20190620"></script> --js改动较大缓存严重可添加参数(版本号)清除

    js中函数名相同,程序从上到下执行,则第二个函数会覆盖第一个函数。禁止函数名相同。

    手机调试本地项目 http://本地ip 119.168.1.119/项目地址/xx/xx/首页地址index.html

    浏览器调试本地项目: ↑复制粘贴到手机浏览器打开

    先了解什么需求,做个简单页面可以网上找模板借鉴

    2019-6-21:
    手机适配:
    @charset "UTF-8";
    /*wap响应,宽(需实际分辨率宽除以3,★即手机屏幕的物理尺寸1厘米=100px):
    * 最佳分辨率: 375物理宽度, 即 iPhone6,7,8的手机
    * 320, 360, ★375, 411,414..
    * */
    @media screen and (max- 278px) {
    html {
    font-size: 66px; } }
    @media screen and (min- 279px) and (max- 319px) { /*小米低款手机*/
    html {
    font-size: 74px; } }
    @media screen and (min- 320px) and (max- 359px) {
    html {
    font-size: 85px; } }
    @media screen and (min- 360px) and (max- 374px) {
    html {
    font-size: 96px; } }
    @media screen and (min- 375px) and (max- 410px) {
    html {
    font-size: 100px; } }
    @media screen and (min- 411px) and (max- 767px) {
    html {
    font-size: 109px; } }

    /*ipad响应宽(已除以3):
    * 最佳分辨率:
    * 768,1024..
    * */
    @media screen and (min- 768px) and (max- 1023px) {
    html {
    font-size: 99px; } }

    /*pc响应宽(浏览器当前窗口的宽度值):
    * 最佳分辨率:
    * 800, 1024,1152, 1280, 1360,1366, 1400,1440, 1600,1680, 1920
    * */
    @media screen and (min- 1024px) and (max- 1279px){
    html {
    font-size: 100px; } }
    @media screen and (min- 1280px) and (max- 1359px){
    html {
    font-size: 102px; } }
    @media screen and (min- 1360px) and (max- 1399px){
    html {
    font-size: 103px; } }
    @media screen and (min- 1400px) and (max- 1599px){
    html {
    font-size: 104px; } }
    @media screen and (min- 1600px) and (max- 1919px) {
    html {
    font-size: 106px; } }
    @media screen and (min- 1920px){
    html {
    font-size: 109px; } }

    2019-07-01
    h5门店系统社区-会员卡结算:(扩展会员开卡混合卡/无限卡/有效期)
    forEach 循环数组 有多少个循环多少

    //会员卡渲染
    kaika_data.card_rule_id = ruId;//赋值会员卡序号
    VIPdata.data.forEach((res) => {
    if (res.card_rule_id == ruId) {
    res.card_xm_list.forEach((res) => {
    //console.log(res);
    var mhtml ='';
    // mhtml+=`<p><span class="Time3C">${res.k14_002}</span>`;//写法1,与写法2效果一致
    mhtml+='<p><span class="Time3C">'+res.k14_002+'</span>';//写法2 (公共一样的踢出放外面)
    if(res.ini_infinitetime==0){
    var _yxq ="永久有效";
    }else{
    var _yxq =""+res.ini_infinitetime+"个月内有效";
    }
    if(res.is_infinite == 0 ){//is_infinite 判断是否为无限使用,0为不是(默认)1为是(无限)
    mhtml+=`<span class="time3F">${res.num}次<span class="ex_color">(${_yxq})</span></span>`;
    }else {
    mhtml+= `<span class="time3F">无限使用<span class="ex_color">(${_yxq})</span></span>`;
    }
    mhtml+='</p>';
    $(".xinxi1").append(mhtml);//公共一样的尾部追加在这个页面内
    })
    }
    })
    xx+=`${res.xx}` 会直接解析这个函数方法
    xx+='+res.xx+' 写法一致

    //会员卡渲染
    res.card_xm_list.forEach((res2) => {
    var mhtml="";
    if(res2.infinitedate==0){ //判断卡的有效期
    var _yxq="永久有效";
    }else {
    var t=res2.infinitedate;//2019-7-3 14:57:23 返回时间
    var _t=t.substr(0,10); // 截取返回时间为年月日2019-7-3
    var _yxq="截止为"+_t+"";
    }
    if(res2.is_infinite ==0){ //判断是否为无限次数 不同页面渲染显示不一致
    mhtml+=`<div class="huiyuanp22"><span class="huiyuanp1-2" pa="${res2.xm_id}">${res2.k14_002}:<span class="Bcolor">(剩余次数:${res2.num}次)<span class="ex_color">(${_yxq})</span></span></span>`;
    }else { //
    mhtml+=`<div class="huiyuanp22"><span class="huiyuanp1-2" pa="${res2.xm_id}">${res2.k14_002}:<span class="Bcolor">(无限次数)<span class="ex_color">(${_yxq})</span></span></span>`
    }
    mhtml+='<div>抵扣<input type="number" min="0" step="0" class="nobalance" placeholder="0">次</div>'; //相同的页面渲染可以写一个丢出来
    mhtml+='</div>'; //尾部结束追加div
    $(".huiyuanD1").append(mhtml); //嵌入页面当中
    })

    2019-07-03
    app 知识点:
    //字符串得到带“元”的钱
    var string = $(".YtianjiaZ_z").html().split(":")[1];

    //截取标签内冒号:前的内容
    var xx=($(".huiyuanp1-2:eq(" + n + ")").html().split(":")[0]);

    2019-07-03
    app 知识点:
    //字符串得到带“元”的钱
    var string = $(".YtianjiaZ_z").html().split(":")[1];

    //截取标签内冒号:前的内容
    var xx=($(".huiyuanp1-2:eq(" + n + ")").html().split(":")[0]);

    //在项目循环内加判断
    var _card_xm_list = _card_numberData[i].card_xm_list;//得到卡内容
    for(var y=0;y<_card_xm_list.length;y++){ //循环输出N次卡的具体项目
    //console.log(_card_xm_list[y].infinitedate);
    if(_card_xm_list[y].infinitedate == ''){//infinitedate 判断有效期
    var _yxq="永久有效"
    }else {
    var t=_card_xm_list[y].infinitedate;//获取返回的时间2019-07-04 15:21:55
    var _t=t.substring(0,10); //原生截取返回时间年月日 2019-07-04
    var _yxq="截止为:"+_t+"";
    }
    z++;
    mhtml+=' <span class="huiyuanp22">';
    mhtml+=' <span class="huiyuanp1-2">';
    if(_card_xm_list[y].is_infinite==0){//is_infinite 判断是否为无限使用,0为不是(默认)1为是(无限)
    mhtml+=' <span>'+_card_xm_list[y].k14_002+'</span><span class="Bcolor">( 剩余次数:'+_card_xm_list[y].num+'次 )<span style="color: red">('+_yxq+')</span></span>';
    }else {
    mhtml+=' <span>'+_card_xm_list[y].k14_002+'</span><span class="Bcolor">(无限次数)<span style="color: red">('+_yxq+')</span></span>';
    }
    // mhtml+=' <span>'+_card_xm_list[y].k14_002+'</span><span class="Bcolor">( 剩余次数:'+_card_xm_list[y].num+'次 )<span>(_yxq)</span></span>';
    mhtml+=' </span>';
    mhtml+=' <span style="color: #ff7209">折扣 <input style="90px" type="number" min="0" max="'+_card_xm_list[y].num+'" class="hy_number" value="0" title="'+z+'">次</span>';
    mhtml+=' <input type="hidden" class="hy_xm_id_'+z+'" value="'+_card_xm_list[y].xm_id+'">';
    mhtml+=' <input type="hidden" class="hy_k14_002_'+z+'" value="'+_card_xm_list[y].k14_002+'">';
    mhtml+=' </span>';
    }
    mhtml+=' </div>';
    mhtml+='</div>';
    }
    $('#card_xm_dataBOX').html(mhtml);

    2019-07-19:

    RGBA 原理 书写方式

    改公共css样式 不涉及任何宽高数值
    单独css样式控制宽高 颜色 margin padding
    z-inde 层

    适配 静态样式
    ********** color 代码换算公式 *******
    #ffffff 即 grb(255,255,255)
    #ff ff ff 红 绿 蓝(00~ff,即0~255)

    代码 值
    01 1
    02 2
    03 3
    04 4
    05 5
    06 6
    07 7
    08 8
    09 9
    0a 10
    0b 11
    0c 12
    0d 13
    0e 14
    0f 15
    10 1*16+0=16
    20 2*16+0=32
    ef 14*16+15=239

    如 #5d5d5c的rgb值为: 5*16+13=93,即 rgb(93,93,92)

  • 相关阅读:
    HTTP的OPTIONS请求方法
    K8s -- DaemonSet
    Nginx 变量漫谈(二)
    Nginx 变量漫谈(一)
    通俗地讲,Netty 能做什么?
    CSP AFO后可以公开的情报
    AT1219 歴史の研究
    LuoguP4165 [SCOI2007]组队
    CF708C Centroids(树形DP)
    CF208E Blood Cousins(DSU,倍增)
  • 原文地址:https://www.cnblogs.com/love-8023/p/12906677.html
Copyright © 2011-2022 走看看