|
|
|
@ -0,0 +1,355 @@
|
|
|
|
|
<style>
|
|
|
|
|
.img-size{
|
|
|
|
|
max-height: 100px;
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<section class="content-header">
|
|
|
|
|
<h1 ng-bind="partner.short_name"></h1>
|
|
|
|
|
<ol class="breadcrumb">
|
|
|
|
|
<li>
|
|
|
|
|
<i class="fa fa-sitemap"></i> Payment
|
|
|
|
|
</li>
|
|
|
|
|
<li><a ui-sref="^" ui-sref-opts="{reload:true}">Client Detail</a></li>
|
|
|
|
|
<li class="active">Partner Edit</li>
|
|
|
|
|
</ol>
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<div class="content">
|
|
|
|
|
<form novalidate name="partnerForm">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-sm-12">
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">Partner Basic Information</div>
|
|
|
|
|
<div class="panel-body">
|
|
|
|
|
<div class="form-horizontal">
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">* Partner Code</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<p class="form-control-static" ng-bind="partner.client_moniker"></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">* Company Name</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<p class="form-control-static" ng-bind="partner.company_name"></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">* Short Name</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<p class="form-control-static" ng-bind="partner.short_name"></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">Business Name</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<p class="form-control-static" ng-bind="partner.business_name"></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">Business Structure</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<p class="form-control-static" ng-bind="partner.business_structure"></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group" ng-if="!partner.parent_client_id || ('00110'|withRole)">
|
|
|
|
|
<label class="control-label col-sm-2">Logo</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<div class="form-control-static">
|
|
|
|
|
<button class="btn btn-success" type="button" ngf-select="uploadLogo($file)"
|
|
|
|
|
accept="image/*" ngf-max-size="1MB">
|
|
|
|
|
<i class="fa fa-upload"></i> Upload Logo
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<uib-progressbar value="logoProgress.value" ng-if="logoProgress"></uib-progressbar>
|
|
|
|
|
<img ng-src="{{partner.logo_url}}" ng-if="partner.logo_url" style="height: 100px;">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group" ng-if="partner.business_structure != 'Company'">
|
|
|
|
|
<label class="control-label col-sm-2">ABN</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<p class="form-control-static" ng-bind="partner.abn"></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group" ng-if="partner.business_structure == 'Company'">
|
|
|
|
|
<label class="control-label col-sm-2">ACN</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<p class="form-control-static" ng-bind="partner.acn"></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group" ng-if="!partner.parent_client_id || ('00110'|withRole)"
|
|
|
|
|
ng-class="{'has-error':partnerForm.partner_type.$invalid && partnerForm.partner_type.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-2" for="partner-type-select">* Photo/Website</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<select class="form-control" ng-model="partner.partner_type"
|
|
|
|
|
id="partner-type-select"
|
|
|
|
|
name="partner_type">
|
|
|
|
|
<option value="">Please Choose</option>
|
|
|
|
|
<option value="photo">Photo</option>
|
|
|
|
|
<option value="companyWebsite">Website</option>
|
|
|
|
|
</select>
|
|
|
|
|
<p class="small text-info">If the partner is a offline shop then a photo of shop is
|
|
|
|
|
required while an online store shall choose company website</p>
|
|
|
|
|
<p class="small text-info">
|
|
|
|
|
只要有可能产生线下交易(商户静态码、POS),就必须上传照片,否则支付宝会禁止交易</p>
|
|
|
|
|
<div ng-messages="partnerForm.partner_type.$error"
|
|
|
|
|
ng-if="partnerForm.partner_type.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="required">Required Field</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group"
|
|
|
|
|
ng-if="partner.partner_type == 'photo' && (!partner.parent_client_id || ('00110'|withRole))">
|
|
|
|
|
<label class="control-label col-sm-2">* Shop Photo</label>
|
|
|
|
|
<div class="col-sm-5">
|
|
|
|
|
<div class="form-control-static"><em>1:</em>
|
|
|
|
|
<button class="btn btn-primary" type="button"
|
|
|
|
|
ngf-select="uploadShopPhoto($file)" accept="image/*" ngf-max-size="2MB">
|
|
|
|
|
<i class="fa fa-upload"></i> Upload Shop Photo1
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<uib-progressbar value="shopPhotoProgress.value"
|
|
|
|
|
ng-if="shopPhotoProgress"></uib-progressbar>
|
|
|
|
|
<img ng-src="{{partner.company_photo}}" ng-if="partner.company_photo" class="thumbnail img-size">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-sm-5">
|
|
|
|
|
<div class="form-control-static"><em>2:</em>
|
|
|
|
|
<button class="btn btn-primary" type="button"
|
|
|
|
|
ngf-select="uploadStorePhoto($file)" accept="image/*"
|
|
|
|
|
ngf-max-size="2MB">
|
|
|
|
|
<i class="fa fa-upload"></i> Upload Shop Photo2
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<uib-progressbar value="storePhotoProgress.value"
|
|
|
|
|
ng-if="storePhotoProgress"></uib-progressbar>
|
|
|
|
|
<img ng-src="{{partner.store_photo}}" ng-if="partner.store_photo" class="thumbnail img-size">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group"
|
|
|
|
|
ng-if="partner.partner_type == 'companyWebsite' && (!partner.parent_client_id || ('00110'|withRole))"
|
|
|
|
|
ng-class="{'has-error':partnerForm.company_website.$invalid && partnerForm.company_website.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-2" for="company_website-input">* Website</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input type="text" name="company_website" class="form-control"
|
|
|
|
|
ng-model="partner.company_website"
|
|
|
|
|
id="company_website-input" required maxlength="200">
|
|
|
|
|
<div ng-messages="partnerForm.company_website.$error"
|
|
|
|
|
ng-if="partnerForm.company_website.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="required">Required Field</p>
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 200
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group"
|
|
|
|
|
ng-class="{'has-error':partnerForm.company_phone.$invalid && partnerForm.company_phone.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-2" for="service-phone-input">* Service Phone</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input class="form-control" required type="text" ng-model="partner.company_phone"
|
|
|
|
|
name="company_phone" id="service-phone-input" maxlength="20">
|
|
|
|
|
<div ng-messages="partnerForm.company_phone.$error"
|
|
|
|
|
ng-if="partnerForm.company_phone.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="required">Required Field</p>
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 20 Characters</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group"
|
|
|
|
|
ng-class="{'has-error':partnerForm.description.$invalid && partnerForm.description.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-2" for="desc-input">Description</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<textarea class="form-control" ng-model="partner.description"
|
|
|
|
|
name="description" id="desc-input" maxlength="200" required></textarea>
|
|
|
|
|
<div ng-messages="partnerForm.description.$error"
|
|
|
|
|
ng-if="partnerForm.description.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 200
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="form-group"
|
|
|
|
|
ng-class="{'has-error':partnerForm.remark.$invalid && partnerForm.remark.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-2" for="desc-input">Remark</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<textarea class="form-control" ng-model="partner.remark"
|
|
|
|
|
name="remark" id="remark-input" maxlength="200" required></textarea>
|
|
|
|
|
<div ng-messages="partnerForm.remark.$error"
|
|
|
|
|
ng-if="partnerForm.remark.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 200
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!--end 商户基本资料-->
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">Alipay Information <em class="small"><b>(Optional)</b></em></div>
|
|
|
|
|
<div class="panel-body">
|
|
|
|
|
<div class="form-horizontal">
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">
|
|
|
|
|
Business Hours</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input type="text" class="form-control" ng-model="partner.business_hours">
|
|
|
|
|
<p class="small text-info">
|
|
|
|
|
eg:Monday-Friday 09:00-20:00,Saturday-Sunday 10:00-22:00</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">
|
|
|
|
|
Merchant Tag<em class="small">(Chinese)</em></label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input type="text" class="form-control" ng-model="partner.merchant_tag">
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">
|
|
|
|
|
Merchant Introduction<em class="small">(Chinese)</em></label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<textarea class="form-control" ng-model="partner.merchant_introduction"></textarea>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label class="control-label col-sm-2">
|
|
|
|
|
Video Introduction<br><em class="small">(youtube link)</em></label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input type="text" class="form-control" ng-model="partner.merchant_video_url">
|
|
|
|
|
<p class="small text-info">eg:https://www.baidu.com</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!--支付宝资料-->
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">Contact Information</div>
|
|
|
|
|
<div class="panel-body">
|
|
|
|
|
<div class="form-horizontal">
|
|
|
|
|
<div class="form-group"
|
|
|
|
|
ng-class="{'has-error':partnerForm.contact_person.$invalid && partnerForm.contact_person.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-2" for="contact_person-input">* Contact Person
|
|
|
|
|
Name</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input class="form-control" ng-model="partner.contact_person" required
|
|
|
|
|
name="contact_person"
|
|
|
|
|
id="contact_person-input" maxlength="50">
|
|
|
|
|
<div ng-messages="partnerForm.contact_person.$error"
|
|
|
|
|
ng-if="partnerForm.contact_person.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="required">Required Field</p>
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 50
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group col-sm-6"
|
|
|
|
|
ng-class="{'has-error':partnerForm.contact_phone.$invalid && partnerForm.contact_phone.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-4" for="contact-phone-input">* Phone</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input type="text" class="form-control" ng-model="partner.contact_phone" required
|
|
|
|
|
name="contact_phone" id="contact-phone-input" maxlength="20">
|
|
|
|
|
</div>
|
|
|
|
|
<div ng-messages="partnerForm.contact_phone.$error"
|
|
|
|
|
ng-if="partnerForm.contact_phone.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="required">Required Field</p>
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 20
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group col-sm-6"
|
|
|
|
|
ng-class="{'has-error':partnerForm.contact_email.$invalid && partnerForm.contact_email.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-4" for="contact-email-id">* E-mail</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input class="form-control" ng-model="partner.contact_email" required
|
|
|
|
|
name="contact_email" id="contact-email-id" maxlength="50">
|
|
|
|
|
</div>
|
|
|
|
|
<div ng-messages="partnerForm.contact_email.$error"
|
|
|
|
|
ng-if="partnerForm.contact_email.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="required">Required Field</p>
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 50
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!--end 商户联系资料-->
|
|
|
|
|
<div class="panel panel-default">
|
|
|
|
|
<div class="panel-heading">Address Information</div>
|
|
|
|
|
<div class="panel-body">
|
|
|
|
|
<div class="form-horizontal">
|
|
|
|
|
<div class="form-group col-sm-6">
|
|
|
|
|
<label class="control-label col-sm-4" for="address-input">Address</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<textarea class="form-control" ng-model="partner.address" name="address"
|
|
|
|
|
id="address-input" maxlength="200"></textarea>
|
|
|
|
|
<div ng-messages="partnerForm.address.$error" ng-if="partnerForm.address.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 200
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group col-sm-6">
|
|
|
|
|
<label class="control-label col-sm-4" for="suburb-input">* Suburb</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input class="form-control" ng-model="partner.suburb" name="suburb"
|
|
|
|
|
id="suburb-input" maxlength="50">
|
|
|
|
|
<div ng-messages="partnerForm.suburb.$error" ng-if="partnerForm.suburb.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 50
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group col-sm-6">
|
|
|
|
|
<label class="control-label col-sm-4" for="postcode-input">PostCode</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input class="form-control" ng-model="partner.postcode" name="postcode"
|
|
|
|
|
id="postcode-input" maxlength="10">
|
|
|
|
|
<div ng-messages="partnerForm.postcode.$error" ng-if="partnerForm.postcode.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 10
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group col-sm-6">
|
|
|
|
|
<label class="control-label col-sm-4" for="state-input">State</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<select class="form-control" name="state" required ng-model="partner.state"
|
|
|
|
|
id="state-input"
|
|
|
|
|
ng-options="state.value as state.label for state in states">
|
|
|
|
|
<option value="">Please Choose</option>
|
|
|
|
|
</select>
|
|
|
|
|
<div ng-messages="partnerForm.state.$error" ng-if="partnerForm.state.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="required">Required Field</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group col-sm-6" ng-class="{'has-error':partnerForm.country.$invalid && partnerForm.country.$dirty}">
|
|
|
|
|
<label class="control-label col-sm-4" for="country-input">* Country</label>
|
|
|
|
|
<div class="col-sm-8">
|
|
|
|
|
<input class="form-control" ng-init="partner.country=partner.country||'AUS'" ng-model="partner.country" name="country"
|
|
|
|
|
id="country-input" maxlength="20" required placeholder="AUS" readonly="readonly">
|
|
|
|
|
<div ng-messages="partnerForm.country.$error" ng-if="partnerForm.country.$dirty">
|
|
|
|
|
<p class="small text-danger" ng-message="maxlength">Less Than 20
|
|
|
|
|
Characters(including symbols and spaces)</p>
|
|
|
|
|
<p class="small text-danger" ng-message="required">Required Field</p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="btn-group margin-bottom margin-top">
|
|
|
|
|
<button class="btn btn-success" type="button" ng-click="updatePartner(partnerForm)">Save
|
|
|
|
|
</button>
|
|
|
|
|
<a class="btn btn-danger" role="button" ui-sref="basic" ui-sref-opts="{reload:true}">Back</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|