Agile框架

3 篇文章 0 订阅
1 篇文章 0 订阅

组件互调

框架地址:https://github.com/nandy007/project_h5

路由部分
{
path: ‘/hllr’,
component: HLLRPage,
//设置缓存
cache:true,
},
static get tag(){
return ‘hllr’;
}
页面一跳转,并重新加载组件
router.go({path: ‘/selectman’, isForce: true});
//接收页面二组件参数
fname(str){
//需展示值得添加
$(’#selectactor’).val(str)
}

页面二
//组件传值
//aui-hllr:需传到组件return值
//页面一与create同级fname方法,names页面二需传递的值
document.querySelector(‘aui-hllr’).component.fname(names);
//关闭当前页面,即页面二
history.go(-1);

本地缓存

//input type=text
<input name="hlhmc" v-model="hlhmc" type="text" placeholder="" required >

//input type=tel
<input v-model="sjh" type="tel" maxlength="11" required >
<input  v-bind:value="sjh" name="sjh" type="hidden" required >

//checkbox
<input v-model="zjss" type="checkbox">

//select
<label id="cat" class="pleft1" v-if="zjss">
       <span class="stylespan" >合理化分类</span>
       <select id="md-category" name="hlhfl" v-model="hlhfl">
       <option>请选择</option>
       <option v-for="item in items" v-bind:value='item.value'>{{item.text}}</option>
      </select>
</label>

//select下拉框
var fselect=[];
//本地存储
var localjson=[];
去空数组
 if(e2.text.trim()!= "") {
  fselect.push(e2);
}

//插入数据
  sublocal:function(){
                        var localdata=JSON.stringify($("form").serializeArray());
                        localStorage.setItem('localjson',localdata);
                        console.log(localdata)
     },
 //本地存储 获取
                     getlocal:function(){
                         if(obj.hlhfl!=''){
                             obj.xian=true
                         }

                        //获取存储的参数
                    var ljson=[];
                    ljson = JSON.parse(localStorage.getItem('localjson'));
                     //    push之前先清空数组,防止重复添加
                    localjson.splice(0,localjson.length);

                   $.each(ljson, function(e,e1) {

                    if(e1.value=='true'){
                        this.value=true
                       }else if(e1.value=='false'){
                           this.value=false
                       }
                       //跳转选择值之前若为空则不加该值,不然传过来的值会被置空
                       if(e1.value!=''){
                       localjson.push(e1.value);
                       obj[e1.name]=e1.value;
                        console.log(e1.name+'--'+e1.value);
                       }
                    });
        },

页面一

<ui>
<div id="auiscrollerlr">
   <aui-header>
        <aui-titlebar class="reverse">
            <left-area>
                <aui-action type="back"><i class="icon auicon icon-arrowleft" style="color:white;"></i></aui-action>
            </left-area>
            <caption-area v-on:click="func.sublocal()">
                <aui-text>合理化录入</aui-text>
            </caption-area>
            <right-area v-on:click="func.getlocal()">
                <a>
                    <i class="icon auicon icon-rdoadd" style="color:white;"></i>
                </a>
            </right-area>
        </aui-titlebar>
    </aui-header>


    <aui-scroller class="content" style="position: absolute; top: 45px; right: 0px; bottom: 0px;left: 0px;text-align: center; background-color:white;">
        <form id="demo" style="display:none" mbsc-form>
            <div class="mbsc-form-group">
               
                 <label class="pleft1">
                    <span  class="stylespan">合理化名称 </span>
                    <input name="hlhmc" v-model="hlhmc" type="text" placeholder="" required >
                </label>
              
            </div>
            <div class="mbsc-form-group">
               
                 <label class="pleft1">
                    <span class="stylespan" >提出时间</span>
                    <input name="tcsj" v-model="tcsj" id="md-starttime" type="text" placeholder="开始" required >
                </label>
            
                <label style="text-align:left;">
                   <span class="stylespan" style="text-align:left;" >自己实施</span>
                    <input v-model="zjss" type="checkbox">
                    <input type="hidden" name="zjss" v-bind:value="zjss">
                </label>


                <label id="cat" class="pleft1" v-if="zjss">
                    <span class="stylespan" >合理化分类</span>
                     <select id="md-category" name="hlhfl" v-model="hlhfl">
                     <option>请选择</option>
                     <option v-for="item in items" v-bind:value='item.value'>{{item.text}}</option>
                    </select>
                 </label>

                 
                 <label id="hlh_phone" class="pleft1">
                    <span class="stylespan" >手机号</span>
                    <input v-model="sjh" type="text" maxlength="11" required >
                    <input  v-bind:value="sjh" name="sjh" type="hidden" required >
                </label>
              
               
                
              
            </div>
             <div class="mbsc-form-group"  >


                <label class="pleft1">
                    <aui-text class="fl stylearea">现状说明(地点、现状缺点与不足)</aui-text>
                    <textarea name="xzsm" v-model="xzsm" style="text-indent:2em;padding:0;"></textarea>
                </label>
              
               <label class="pleft1">
                    <aui-text class="fl stylearea">改进措施/预期效果</aui-text>
                    <textarea name="gjcs" v-model="gjcs" style="text-indent:2em;padding:0;"></textarea>
                </label>
               
                 <label class="pleft1">
                        <span  class="stylespan">建议实施人员 </span>
                        <input name="jyssry" v-model="jyssry" id="selectactor" v-on:click="func.manclick()" type="text" placeholder="请选择人员" required readonly='readonly'>
                    
                </label>
            </div>
             <div class="mbsc-form-group">
            <list-cell id="upimg" style="background-color:#fff;">
                <aui-text class="fl">合理化建议附件</aui-text>
                <aui-button class="btn btn-primary btcss" v-on:click="func.fimg">附件上传</aui-button>
                <div id="filediv" style="display:none"></div>
                <img class="fileimg" src="./assets/imgs/upfile.jpg" v-on:click="func.fimg">
            </list-cell>
                 
            </div>
        </form>

       
    </aui-scroller>
</div>
</ui>


<script>
import '@auicomp/header/Header.aui';
import '@auicomp/button/Button.aui';
import '@auicomp/scroller/Scroller.aui';
import '@auicomp/titlebar/Titlebar.aui';
import '@auicomp/datetime/Datetime.aui';
import '@auiutil/mobiscroll3/css/mobiscroll.javascript.min.css';
import mobiscroll from '@auiutil/mobiscroll3/js/mobiscroll.javascript.min';
import Alert from '@auicomp/alert/Alert.aui';
import fetch from '@comm/utils/xfetch';
import { router } from '@auicomp/action/Action.aui';
import Actionsheet from '@auicomp/actionsheet/Actionsheet.aui';
import './Frame.aui';

export default class HLLRPage{
    static get tag(){
        return 'hllr';
    }



 //接收上个组件参数
fname(str){
// obj.jyssry=str;
console.log(str);
$('#selectactor').val(str)
}



    created () {

  mobiscroll.settings = {
            theme: 'ios',
            lang: 'zh',
        };
   mobiscroll.form('#demo');




//         window.onload=function(){
//             obj.func.getlocal();
//         }

//  alert('执行')


        //自己实施复选框
        // var actio=document.getElementById("action");
    // action.onclick=visibled;
    //     function visibled(){
    //         var v=$('input[name="cat1"]:checked ').val();
    //         if(v=="on"){
    //             document.getElementById("cat").removeAttribute("style");
    //         }else{
    //             document.getElementById("cat").style.display="none";
    //         }
    //     }
   
        var names = router.getQueryObj(location.search).names||router.getQueryObj().names;
        // if(names!=null&&names!=""){
            
        //     $("#selectactor").val(names);
        // }
        // 某个逻辑发起ajax post请求


var dj = [];

//select下拉框
var fselect=[];
//本地存储
var localjson=[];
            fetch({
                appId: 'ci_test',
                url : 'http://ciurl/hlh_add.jsp',
                data: {
                    // username: lname,
                    // password: lpassword
                },
                success: function(json){
                    //初始化有一个id
                    var chushi=json.hideInfo[2].value;

                    //进页面请求数据注入到select
                    $.each(json.hlh_fenlei, function(e1, e2) {
                        //select去除空值
                            if(e2.text.trim()!= "") {
                                fselect.push(e2);
                            }
                        })

                        // $.each(dj, function(e, e1) {
                        //  $('#md-category').append("<option>" + e1.text + "</option>")
                        // })
                   $("#hlh_phone input").val(json.pempMtel)
                    
                },
                error: function(rs){
                    Alert.show({
                        content: rs.errmsg+'未请求成功'
                    });
                }
            });


         var obj = {
             items:fselect,
             zjss:false,
             hlhmc:'',
             tcsj:'',
             hlhfl:'',
             sjh:'',
             xzsm:'',
             gjcs:'',
             jyssry:'',
          func:{

                //提交表单数据
                //   sublocal:function(){
                //         var localdata=JSON.stringify($("form").serializeArray());
                //         localStorage.setItem('localjson',localdata);
                //         console.log(localdata)
                //     },
                //本地存储 获取
                    //  getlocal:function(){
                        //  if(obj.hlhfl!=''){
                        //      obj.xian=true
                        //  }
                        // obj.xian=true

                        //获取存储的参数
                    //     var ljson=[];
                    // ljson = JSON.parse(localStorage.getItem('localjson'));
                     //    push之前先清空数组,防止重复添加
                //     localjson.splice(0,localjson.length);

                //    $.each(ljson, function(e,e1) {

                //     if(e1.value=='true'){
                //         this.value=true
                //        }else if(e1.value=='false'){
                //            this.value=false
                //        }
                       //跳转选择值之前若为空则不加该值,不然传过来的值会被置空
                    //    if(e1.value!=''){
                    //    localjson.push(e1.value);
                    //    obj[e1.name]=e1.value;
                    //     console.log(e1.name+'--'+e1.value);
                    //    }
                        

                    // });
                  
                // },
                manclick:function(){
                    //跳转之前先获取表单数据
                    // obj.func.sublocal();
                    // router.go('/selectman');
                    router.go({path: '/selectman', isForce: true});

                    

                },
                fimg: function() {
                        Actionsheet.show({
                            list: [{
                                    text: '拍照上传',
                                    handler: function() {
                                        appnest.photo.camera({
                                            width: 1080, // 拍照后生成图片宽度
                                            success: function(res) {
                                                var img = res.imagePath;
                                                var thumbnailPath = res.thumbnailPath;
                                                // $("filediv").html('<input type="hidden" name="Filedata" subval value="'+img+'"/>');
                                                appnest.photo.getBase64Image({
                                                    imagePath: img, // 图片全路径
                                                    success: function(res) {
                                                        var base64Image = res.data;
                                                        // 返回图片的base64编码数据
                                                        $('.fileimg').attr('src', base64Image);
                                                        obj.file.upfile(img)
                                                    },
                                                    fail: function(res) {
                                                        Alert.show({
                                                            content: res.errMsg
                                                        });
                                                    }
                                                });
                                            },
                                            fail: function(res) {
                                                Alert.show({
                                                    content: res.errMsg
                                                });
                                            }
                                        });
                                    }
                                },
                                {
                                    text: '图库选择',
                                    handler: function() {
                                        appnest.photo.album({
                                            crop: true,
                                            cropWidth: 300,
                                            success: function(res) {
                                                var img = res.imagePath;
                                                var thumbnailPath = res.thumbnailPath;
                                                // $("filediv").html('<input type="hidden" name="Filedata" subval value="'+img+'"/>');
                                                appnest.photo.getBase64Image({
                                                    imagePath: img, // 图片全路径
                                                    success: function(res) {
                                                        var base64Image = res.data;
                                                        // 返回图片的base64编码数据
                                                        $('.fileimg').attr('src', base64Image);
                                                        obj.file.upfile(img);
                                                    },
                                                    fail: function(res) {
                                                        Alert.show({
                                                            content: res.errMsg
                                                        });
                                                    }
                                                });


                                            },
                                            fail: function(res) {
                                                Alert.show({
                                                    content: res.errMsg
                                                });
                                            }
                                        });
                                    }
                                }
                            ],
                            doCancel: function() {
                                console.log('点了取消');
                            }
                        });
                    },

                    file: {
                    upfile: function(img) {
                        //发起请求
                        fetch({
                            appId: 'ci_test',
                            url: 'http://ciurl/bizProp/upload',
                            success: function(data1) {
                                alert(JSON.stringify(data1))
                            },
                            error: function(rs) {
                                Alert.show({
                                    content: rs.errMsg
                                });
                            }
                        });
                    }
                }
            }
         }
        $('#auiscrollerlr').render(obj)



    // if(names!=''){
    //     obj.func.getlocal();
    //     console.log('1')
    // }


        //拍照上传
            // var objimg = {
            //     fupimg: {
                    
            //     }
            // }
            // $('#upimg').render(objimg);

        
            // var objfile = {
            //     // fujiantjurl:'',
                
            // }
            // $('#upimg').render(objimg);

       
   }
}


</script>

<style>

    .stylespan{
        height:44px;
        line-height:44px;
        width:110px;
    }
    .stylearea{
        height:44px;
        line-height:44px;
        width:100%;
        text-align: left;
    }
     a[class="button-selectimg"]{
         padding:4px 6px;
         border:1px dashed #00A2D4;
         border-radius:2px;
    }
    .pleft1{
        padding-left: 1em !important;
    }
        /* select{
        height: 20px;
        font-size: 15px;
        border: 0;
        -moz-appearance:none;
        -webkit-appearance:none;
        padding-right: 14px;
        padding-left:10px;
        background: url(../assets/imgs/arrow.png) no-repeat scroll right center transparent;
    } */
       .fileimg {
        width: 100px;
        height: 100px;
        margin-top: 40px;
        margin-left: 50px;
    }
    .fl{
        float: left;
    }
        .btcss {
        top: 10px !important;
        right: 25% !important;
        transform: none !important;
    }
</style>

页面二

<ui>
    <aui-header>
        <aui-titlebar class="reverse">
            <left-area>
                <aui-action type="back"><i class="icon auicon icon-arrowleft" style="color:white;"></i></aui-action>
            </left-area>
            <caption-area>
                <aui-text>人员选择</aui-text>
            </caption-area>
        </aui-titlebar>
    </aui-header>


    <aui-scroller id="namescroller" class="content" style="position: absolute; top: 45px; right: 0px; bottom: 0px;left: 0px;text-align: center;">
        
        <div style="width:100%;margin:5px 0px;">
            <div style="display: inline-block; width:60%;">
                    <input name="searchman" style="width:100%;height:44px;" id="inputname" type="text"  placeholder="请输入关键字" minlength="2" required data-icon="empty">
                
            </div>
            <div style="display: inline-block; width:20%;">
                <aui-button class="btn btn-link" v-on:click="func.searchname" style="width:20%;">搜索</aui-button>
            </div>
        </div>
         <aui-list id="manlist">
         <list-cell v-on:click="func.nlistclick()">
                <a style="text-align:left;">
                   1111111111
                </a>
            </list-cell>

            <list-cell  v-for="item in items" v-on:click="func.nlistclick(item.empname)">
                <a style="text-align:left;">
                    {{item.empname}} 
                </a>
            </list-cell>
        </aui-list>
    </aui-scroller>
   
</ui>


<script>
import '@auicomp/header/Header.aui';
import '@auicomp/button/Button.aui';
import '@auicomp/scroller/Scroller.aui';
import '@auicomp/titlebar/Titlebar.aui';
import '@auicomp/datetime/Datetime.aui';
import '@auiutil/mobiscroll3/css/mobiscroll.javascript.min.css';
import mobiscroll from '@auiutil/mobiscroll3/js/mobiscroll.javascript.min';
import '@auicomp/list/List.aui';
import Alert from '@auicomp/alert/Alert.aui';
import Confirm from '@auicomp/confirm/Confirm.aui';
import fetch from '@comm/utils/xfetch';
import { router } from '@auicomp/action/Action.aui';
import './Frame.aui';
export default class SelectManPage{
    static get tag(){
        return 'selectman';
    }
    created () {
        // var lname = router.getQueryObj(location.search).lname||router.getQueryObj().lname;//获取username
        // var lpassword = router.getQueryObj(location.search).lpassword||router.getQueryObj().lpassword;//password
        
         var mancout=[];
        
        
         var f=0; //表示无匹配数据 否则为1
         var obj = {
             items : mancout,
             func:{
                searchname:function(){
                    mancout.splice(0,mancout.length);
                    var nametag=$("#inputname").val();
                    var re = new RegExp(nametag);//正则表达判断
                    f=0;
                    fetch({
                        appId: 'ci_test',
                        url : 'http://ciurl/search.jsp',
                        data: {
                            // username: lname,
                            // password: lpassword
                        },
                        success: function(json){
                            $.each(json.list, function(e,e1) {
                                var showname=e1.empname;
                                if(re.test(showname)){
                                    var manjson={empname:showname}
                                    mancout.push(manjson);
                                    f=1;
                                }
                            });
                            if(f==0){
                                Alert.show({
                                    content: '无匹配数据'
                            });
                            }
                        },
                        error: function(rs){
                            Alert.show({
                                content: rs.errmsg+'未请求成功'
                            });
                        }
                    });
                },
                nlistclick:function(names){
                    Confirm.show({
                            content: '确定选择'+names+'吗?',
                            doOk: function(){
                                // router.go('/hllr?names='+names);
                                
                     //组件传值,            需要传到组件return值   方法
                    document.querySelector('aui-hllr').component.fname(names);
                    history.go(-1);

                            },
                            doCancel: function(){
                                console.log('Confirm Cancel');
                            }
                        });
                    
                }
            }
         };
         $('#namescroller').render(obj);

        

        
        mobiscroll.settings = {
            theme: 'ios',
            lang: 'zh',
        };

        var date, select, widget,
            now = new Date(),
            form = document.getElementById("demo");

        mobiscroll.form('#demo');

        date = mobiscroll.date('#md-birthday', {
            defaultValue: new Date(now.getFullYear() - 18, 0, 1),
            min: new Date(now.getFullYear() - 100, now.getMonth(), now.getDate()),
            max: new Date(now.getFullYear() - 13, now.getMonth(), now.getDate())
        });

        select = mobiscroll.select('#md-country', {
            group: true,
            maxWidth: [40, 260],
            width: [40, 235],
            placeholder: 'Country'
        });

        mobiscroll.numpad('.md-phone', {
            display: 'bottom',
            cssClass: 'md-phone-num',
            template: '{plus}ddddddddddd',
            maxLength: 14,
            allowLeadingZero: true,
            leftKey: {
                text: '+',
                value: '',
                variable: 'plus:+'
            },
            formatValue: function (numbers, vars, inst) {
                var newVal = ' ';

                if (vars.plus) {
                    newVal += vars.plus;
                }

                newVal += numbers.join().replace(/,/g, '');

                return newVal;
            },
            parseValue: function (value) {
                if (value) {
                    return value.toString().split('');
                }
                return [];
            },
            validate: function (event, inst) {
                var disabled = [],
                    invalid = false;

                if (inst.isVisible()) {
                    inst._markup[0].querySelector('.mbsc-np-dsp').innerHTML = inst.settings.formatValue(event.values, event.variables, inst) || '&nbsp;'
                }

                return {
                    invalid: invalid,
                    disabled: disabled
                };
            }
        });

        widget = mobiscroll.widget('#demo-success', {
            display: 'center',
            focusOnClose: false,
            buttons: [{
                text: 'Log in',
                handler: 'set'
            }]
        });

        form.noValidate = true;
        form.onsubmit = validateForm;

        function validateForm(event) {
            event.preventDefault();

            var parent,
                errorMsg,
                form = (event.target ? event.target : event.srcElement),
                f, field, formvalid = true;

            for (f = 0; f < form.elements.length; f++) {

                field = form.elements[f];
                parent = field.parentNode;
                errorMsg = parent.querySelector('.mbsc-err-msg');

                if (field.validity.valid) {
                    parent.parentNode.classList.remove('mbsc-err');

                    if (errorMsg) {
                        parent.removeChild(errorMsg);
                    }
                } else {
                    if (!errorMsg) {
                        errorMsg = document.createElement('span');
                        errorMsg.className = 'mbsc-err-msg';
                        errorMsg.innerHTML = 'This field is required';
                        parent.appendChild(errorMsg);
                    }

                    parent.parentNode.classList.add('mbsc-err');
                    formvalid = false;
                }

            }

            if (formvalid) {
                widget.show();
            }

            return formvalid;
        }

    
       
    }
}

</script>

<style>

    .md-phone-num .mbsc-np-dsp {
        min-height: 25px;
        -webkit-box-sizing: content-box;
        -moz-box-sizing: content-box;
        box-sizing: content-box;
    }
    
    
</style>

路由

import { router } from '@auicomp/page/Page.aui';

import CIcenter from '../pages/CIcenter.aui';

import SelectPage from '../pages/SelectPage.aui';

import HLS from '../pages/HLS.aui';

import JifenPage from '../pages/JifenPage.aui';

import HLLRPage from '../pages/HLLRPage.aui';

import HLListPage from '../pages/HLListPage.aui';

import OtherPage from '../pages/OtherPage.aui';

import SelectManPage from '../pages/SelectManPage.aui';

import Department from '../pages/Department.aui';

import Department_hlh from '../pages/Department_hlh.aui';

import JiFenList from '../pages/JiFenList.aui';

import HLSList from '../pages/HLSList.aui';

import HLSDetail from '../pages/HLSDetail.aui';

import HL_Detail from '../pages/HL_Detail.aui';

router.add([
    {
        path: '/',
        redirect: '/cicenter'
    },
    {
        path: '/cicenter',
        component: CIcenter,
    },
    {
        path: '/select',
        component: SelectPage
    },
    {
        path: '/hls',
        component: HLS
    },
    {
        path: '/jifen',
        component: JifenPage
    },
    {
        path: '/hllr',
        component: HLLRPage,
        cache:true,
    },
    {
        path: '/hllist',
        component: HLListPage
    },
    {
        path: '/other',
        component: OtherPage
    },
    {
        path: '/selectman',
        component: SelectManPage
    },
    {
        path: '/department',
        component: Department
    },
    {
        path: '/department_hlh',
        component: Department_hlh
    },
    {
        path: '/jifenlist',
        component: JiFenList
    },
    {
        path: '/hlslist',
        component: HLSList
    },
    {
        path: '/hlsdetail',
        component: HLSDetail
    },
    {
        path: '/hl_detail',
        component: HL_Detail
    }
   
]);


export default router;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值