avalon:商家註冊實例

<div>
	<div class="form-info">
		<div class="infop">
			<label><span class="fr">公司名稱:</span></label>
			<input class="input" id="fullName" ms-duplex="@fullName" ms-rules="{chinese:true,maxlength:50,required:true,}" data-required-message="請輸入在工商註冊的公司全稱" type="text" placeholder="公司名稱不能爲空" data-maxlength-message="字數不得超過50位"
			ms-blur="@validFullNameExist($event)"/>
			<span class="item-tip">請輸入在工商註冊的公司全稱</span>
			<span class="wrong"></span>
			<span class="addsucc"></span>
		</div>
		<div class="infop">
			<label><span class="fr">公司註冊地址:</span></label>
			<p ms-for="($index,area) in @searchRegionForm">
			    <select ms-change="@setSearchForm($index,$event)" ms-attr="{class:'addresst'+$index}">
			        <option>請選擇..</option>
			        <option ms-for="($cityindex,city) in area" ms-attr="{value:city.id}">{{city.name}}</option>
			    </select>
			</p>
			<span id="regionIdmsg" class="addsucc"></span>
		</div>
		<div class="infop address">
			<input class="input" id="registeredAddress" ms-duplex="@registeredAddress" ms-rules="{chinese:true,maxlength:50,required:true}" data-required-message="地址不能爲空" type="text" value="" placeholder="請輸入詳細地址" data-maxlength-message="字數不得超過50位"/>
			<span class="item-tip">請填入正確的公司註冊地址</span>
			<span class="wrong"></span>
			<span class="addsucc"></span>
		</div>
		<div class="infop">
			<label><span class="fr">公司聯繫方式:</span></label>
			<input ms-duplex="@companyContact" ms-rules="{valiMobilePhone:true,required:true}" data-required-message="請輸入公司聯繫方式" data-valiMobilePhone-message="公司聯繫方式輸入不正確" class="input" type="text" value="" placeholder="公司聯繫方式">
			<span class="item-tip">請填入正確的公司聯繫方式</span>
			<span class="wrong"></span>
			<span class="addsucc"></span>
		</div>
		<div class="infop">
			<label><span class="fr">公司指定聯繫人:</span></label>
			<input class="input" id="specifyContact" ms-duplex="@specifyContact" ms-rules="{maxlength:50,required:true}" data-required-message="聯繫人姓名不能爲空"  type="text"
			data-maxlength-message="字數不得超過50位"/>
			<span class="wrong"></span>
			<span class="item-tip">請填入公司可聯繫人名稱</span>
			<span class="addsucc"></span>
		</div>
		<div class="infop">
			<label><span class="fr">聯繫方式:</span></label>
			<input class="input" id="specifyContactPhone" ms-duplex="@specifyContactPhone" ms-rules="{valiMobilePhone:true,required:true}" data-required-message="聯繫方式不能爲空" type="text">
			<span class="item-tip">請填入公司可聯繫人聯繫方式</span>
			<span class="wrong"></span>
			<span class="addsucc"></span>
		</div>
		<div class="infop">
			<label><span class="fr">收貨地址:</span></label>
			<input id="deliveryRegionId" ms-duplex="@deliveryRegionId" type="hidden"/>
			<div ms-for="($index,area) in @searchRegionForm2">
			    <select ms-change="@setSearchForm2($index,$event)" ms-attr="{class:'addresst'+$index}">
			        <option>請選擇..</option>
			        <option ms-for="($cityindex,city) in area" ms-attr="{value:city.id}">{{city.name}}</option>
			    </select>
			</div>
			<span id="regionId2msg" class="addsucc"></span>
			<span class="wrong">收貨地址不能爲空</span><br>
		</div>
		<div class="infop address">
			<label></label>
			<input class="input" id="detailedAddress" ms-duplex="@detailedAddress" ms-rules="{chinese:true,maxlength:50,required:true}" data-required-message="收貨地址不能爲空" type="text" value="" placeholder="請輸入詳細地址" class="address" data-maxlength-message="字數不得超過50位"/>
			<span class="wrong"></span>
			<span class="item-tip">請填入收貨所需地址</span>
			<span class="addsucc"></span><br>
			<p class="address-tip">此信息用收貨地址,如添加更多地址,</p>
			<p class="address-tip">可到用戶收貨中心收貨地址管理添加。</p>
		</div>
	</div>
	<div class="form-info form-r">
		<div class="infop bottom10">
			<label><span class="fr">工商營業執照:</span></label>
			<input class="input" id="businesslicense" ms-duplex="@businesslicense" ms-rules="{validBusCode:true}" type="text" value="" placeholder="填寫執照號">
			<span class="item-tip">請輸入正確的工商執照</span>
			<span class="wrong"></span>
			<span class="addsucc"></span>
		</div>
		<div class="infop bottom10">
			<input id="imageurl-0" ms-duplex="@businesslicenseUrl" type="hidden"/>
			<div class="uploaddiv image0">
				<template :widget="{is:'vip-upload-image',sort:0}"></template>
			</div>
		</div>
		<div class="fl infop width290">
			<label><span class="fr">一般納稅人證明:</span></label>
			<input id="imageurl-1" ms-duplex="@taxpayerProofUrl" type="hidden"/>
			<div class="uploaddiv image1">
				<template :widget="{is:'vip-upload-image',sort:1}"></template>
			</div>
		</div>
		<div class="infop">
			<div class="uploaddiv">
				<label class="width125">
					<span class="fr">開戶許可證:</span>
				</label>
				<input id="imageurl-2" ms-duplex="@bankAccountsPermitsUrl" type="hidden"/>
				<div class="uploaddiv image2">
					<template :widget="{is:'vip-upload-image',sort:2}"></template>
				</div>
			</div>
		</div>
		<div class="infop bottom10">
			<label><span class="fr">稅號/社會統一信用代碼:</span></label>
			<input class="input" id="taxNumber" ms-duplex="@taxNumber" ms-rules="{valiTaxNumber:true}" ms-blur="@validTaxNumberExist($event)" type="text">
			<span class="wrong"></span>
			<span class="item-tip">請填入開票所需稅號</span>
			<span class="addsucc"></span><br>
			<span class="duty-tip">用於開增值稅專用發票</span>
		</div>
		<div class="infop bottom10">
			<label><span class="fr">開戶行:</span></label>
			<input class="input" id="bank" ms-duplex="@bank" ms-rules="{chinese:true,maxlength:50,required:true}" data-required-message="填寫開戶行" type="text" data-maxlength-message="字數不得超過50位">
			<span class="wrong"></span>
			<span class="item-tip">請填入開票所需開戶行及所屬支行</span>
			<span class="addsucc"></span><br>
			<span class="duty-tip">用於開增值稅專用發票</span>
		</div>
		<div class="infop">
			<label><span class="fr">開票賬號:</span></label>
			<input class="input" id="number" ms-duplex="@number" ms-rules="{number:true,required:true}"  data-required-message="賬號不能爲空"  type="text">
			<span class="wrong"></span>
			<span class="item-tip">請填入開票所需銀行賬號</span>
			<span class="addsucc"></span>
		</div>
		<div class="infop">
			<label><span class="fr">開票類型:</span></label>
			<input class="in-type" name="invoiceTypeEnum" type="checkbox" value="1" checked="checked" /><span class="in-content">普票</span>
			<input class="in-type" name="invoiceTypeEnum" type="checkbox" value="2"/><span class="in-content">專票</span>
			<span id="invoiceTypeWrong" class="wrong"></span>
		</div>
	</div>
	<div class="clear"></div>
	<div class="applysubmit-wrap">
		<p><button class="applysubmit-btn" type="submit">提交申請</button></p>
	</div>
</div>

avalon的js模塊

import {} from './register-apply-enterprise.scss';
import template from './register-apply-enterprise.html';
import upload from './upload.jpg';
import {accountService} from 'service.account';
import {checkoutService} from 'service.checkout';
let regionsdata = [];
    
class RegisterApplyEnterprise {

    /**
     * constructor
     */
    constructor() {
        this.template = template;
        this.defaults = {
        	upload: upload,
		    regionId : 0, //公司註冊地區id
		    deliveryRegionId : 0,//收貨地址註冊地區id
		    defaultregionId : 1602,
		    searchRegionForm :[], //公司註冊地區展示集合
		    searchRegionForm2 :[], //收貨地址地區展示集合
		    fullName: '',          //提交內容開始
		    registeredAddress: '',
		    companyContact: '',
		    specifyContact: '',
		    specifyContactPhone: '',
		    detailedAddress: '',
		    businesslicense: '',
		    businesslicenseUrl :'',
		    taxpayerProofUrl: '',
		    bankAccountsPermitsUrl: '',
		    taxNumber: '',
		    bank: '',
		    number: '',
		    invoiceTypeEnum: '',
            isvalidFullNameExist: true,
            isvalidTaxNumberExist: true,
            onInit: this.onInit,
            loadInvoiceRegions: this.loadInvoiceRegions,
		    validFullNameExist: this.validFullNameExist,
		    validTaxNumberExist:this.validTaxNumberExist,
            setSearchFormInit: this.setSearchFormInit,
            setSearchForm: this.setSearchForm,
            getChildOrg: this.getChildOrg,
            setSearchFormInit2: this.setSearchFormInit2,
            setSearchForm2: this.setSearchForm2,
            getChildOrg2: this.getChildOrg2,
        };
    }
    onInit(){
        this.loadInvoiceRegions();
    }
    //加載公司地址
    loadInvoiceRegions(){
        checkoutService.loadInvoiceRegions().then(result => {
            if (result.data) {
                regionsdata = result.data;
                this.setSearchFormInit(this.defaultregionId); //加載城市
                this.setSearchFormInit2(this.defaultregionId);
             }
        },() => {});
    }
    //驗證公司名稱是否已經存在
    validFullNameExist(event){
        let value = event.target.value;
        value = value.replace(/\s+/g, "");
        if(value !== null && value !== ''){
            let element = event.target;
            let parentEle = $(element).closest('.infop');
            accountService.getValidFullName(value).then(result => {
                if (!result.data) {
                    this.isvalidFullNameExist = false;
                    $(element).addClass("inputwrong");
                    parentEle.find('.addsucc').hide();
                    parentEle.find('.wrong').html("該公司名稱已存在").show();
                }else{
                    this.isvalidFullNameExist = true;
                    parentEle.find('.item-tip').hide();
                }
            },() => {});
        }
    }
    //驗證稅務號是否已經存在
    validTaxNumberExist(event){
        let value = event.target.value;
        if(value !== null && value !== ''){
            let element = event.target;
            let parentEle = $(element).closest('.infop');
            accountService.getValidTaxNumber(value).then(result => {
                if (!result.data) {
                    this.isvalidTaxNumberExist = false;
                    $(element).addClass("inputwrong");
                    parentEle.find('.addsucc').hide();
                    parentEle.find('.wrong').html("該稅號或社會統一信用代碼已存在").show();
                }else{
                    this.isvalidTaxNumberExist = true;
                    parentEle.find('.item-tip').hide();
                }
            },() => {});
        }
    }
    //註冊地址處理
    setSearchFormInit(currNode){
        let childNodes = this.getChildOrg(currNode);
        if (childNodes.length){
            this.searchRegionForm = [childNodes];
        }
    }
    setSearchForm(index,event){
        //刪除第index個元素後的所有成員
        this.searchRegionForm.removeAll(function(arr, i) {
            if (i > index){
                return true;
            }else{
                return false;
            }
        });
        let currNode = event.target.value;
        let childNodes = this.getChildOrg(currNode);
        if (childNodes.length > 0){
            this.searchRegionForm.push(childNodes);
            this.regionId = 0;
            $("#regionIdmsg").hide();
        }else{
            this.regionId = event.target.value;    //爲最後選擇的城市賦值
            $("#regionIdmsg").show();
        }
    }
    getChildOrg(id){
        let retList = [];
        for (let i = 0; i < regionsdata.length; i++) {
            let elem = regionsdata[i];
            if (elem.parentid != id){
                continue;
            }
            retList.push({
                id: elem.id,
                name: elem.name,
                parentid: elem.parentid
            });
        }
        return retList;
    }
    //收貨地址處理
    setSearchFormInit2(currNode){
        let childNodes = this.getChildOrg(currNode);
        if (childNodes.length){
            this.searchRegionForm2 = [childNodes];
        }
    }
    setSearchForm2(index,event){
        //刪除第index個元素後的所有成員
        this.searchRegionForm2.removeAll(function(arr, i) {
            if (i > index){
                return true;
            }else{
                return false;
            }
        });
        let currNode = event.target.value;
        let childNodes = this.getChildOrg2(currNode);
        if (childNodes.length > 0){
            this.searchRegionForm2.push(childNodes);
            this.deliveryRegionId = 0;
            $("#regionId2msg").hide();
        }else{
            this.deliveryRegionId = event.target.value;    //爲最後選擇的城市賦值
            $("#regionId2msg").show();
        }
    }
    getChildOrg2(id){
        let retList = [];
        for (let i = 0; i < regionsdata.length; i++) {
            let elem = regionsdata[i];
            if (elem.parentid != id){
                continue;
            }
            retList.push({
                id: elem.id,
                name: elem.name,
                parentid: elem.parentid
            });
        }
        return retList;
    }
}

avalon.component('register-apply-enterprise', new RegisterApplyEnterprise());
export {RegisterApplyEnterprise};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章