add 同步商户自助申请填写法人信息

master
luoyang 5 years ago
parent d9c5ea99a6
commit d28a4741be

@ -471,8 +471,9 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
client.put("enable_gateway_version2", partnerGatewaySign.getBooleanValue("is_valid")); client.put("enable_gateway_version2", partnerGatewaySign.getBooleanValue("is_valid"));
client.put("gateway_sign", partnerGatewaySign); client.put("gateway_sign", partnerGatewaySign);
} }
if (sysClientLegalPersonMapper.findRepresentativeInfo(client.getIntValue("client_id")) != null) { JSONObject representativeInfo = sysClientLegalPersonMapper.findRepresentativeInfo(client.getIntValue("client_id"));
client.put("representativeInfo", sysClientLegalPersonMapper.findRepresentativeInfo(client.getIntValue("client_id"))); if (representativeInfo != null) {
client.put("representativeInfo", representativeInfo);
} }
return client; return client;
} }
@ -777,7 +778,6 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
representativeInfo.put("postcode",partner.getString("registered_postcode")); representativeInfo.put("postcode",partner.getString("registered_postcode"));
representativeInfo.put("state",partner.getString("registered_state")); representativeInfo.put("state",partner.getString("registered_state"));
sysClientLegalPersonMapper.save(representativeInfo); sysClientLegalPersonMapper.save(representativeInfo);
System.out.println("aaaa");
} catch (Exception e) { } catch (Exception e) {
throw new BadRequestException("error.partner.valid.dumplicate_client_moniker"); throw new BadRequestException("error.partner.valid.dumplicate_client_moniker");
} }

@ -811,7 +811,6 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'],
var saveRiskBtn = document.getElementById('save-risk-btn'); var saveRiskBtn = document.getElementById('save-risk-btn');
var saveRiskBtnInnerHtmlBak = saveRiskBtn.innerHTML; var saveRiskBtnInnerHtmlBak = saveRiskBtn.innerHTML;
saveRiskBtn.disabled = true; saveRiskBtn.disabled = true;
debugger
saveRiskBtn.innerHTML = "<i class='fa fa-spinner fa-spin '></i> Processing"; saveRiskBtn.innerHTML = "<i class='fa fa-spinner fa-spin '></i> Processing";
$http.post('/risk/business/events', $scope.riskEvent).then(function (resp) { $http.post('/risk/business/events', $scope.riskEvent).then(function (resp) {
saveRiskBtn.innerHTML = saveRiskBtnInnerHtmlBak; saveRiskBtn.innerHTML = saveRiskBtnInnerHtmlBak;

@ -76,12 +76,18 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
controller: 'clientDeviceCtrl' controller: 'clientDeviceCtrl'
}) })
}]); }]);
app.controller('clientPartnerDetailCtrl', ['$scope', '$http', 'partner', 'industryMap', 'businessStructuresMap', 'commonDialog', 'Upload', '$state', function ($scope, $http, partner, industryMap, businessStructuresMap, commonDialog, Upload, $state) { app.controller('clientPartnerDetailCtrl', ['$scope', '$http', 'stateMap', 'partner', 'industryMap', 'businessStructuresMap', 'commonDialog', 'Upload', '$state', function ($scope, $http, stateMap, partner, industryMap, businessStructuresMap, commonDialog, Upload, $state) {
$scope.business_structures = businessStructuresMap.configs(); $scope.business_structures = businessStructuresMap.configs();
$scope.industries = industryMap.configs(); $scope.industries = industryMap.configs();
$scope.partner = partner.data; $scope.partner = partner.data;
$scope.partner.partner_type = $scope.partner.company_website ? 'website' : 'photo'; $scope.states = stateMap.configs();
$scope.partner.sameAsContactPerson = false;
$scope.partner.sameAsAddress = false;
$scope.partner.partner_type = $scope.partner.company_website ? 'website' : 'photo';
if ($scope.partner.representativeInfo) {
$scope.partner.representativeInfo.phone = $scope.partner.representativeInfo.phone.substring(1, $scope.partner.contact_phone.length);
}
$scope.getMerchantLocation = function () { $scope.getMerchantLocation = function () {
$http.get('/sys/partners/' + $scope.partner.client_moniker + '/location').then(function (resp) { $http.get('/sys/partners/' + $scope.partner.client_moniker + '/location').then(function (resp) {
$scope.merchant_location = resp.data; $scope.merchant_location = resp.data;
@ -89,6 +95,27 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
}; };
$scope.getMerchantLocation(); $scope.getMerchantLocation();
$scope.checkboxOnclick = function () {
$scope.partner.sameAsContactPerson = !($scope.partner.sameAsContactPerson);
if ($scope.partner.sameAsContactPerson) {
$scope.partner.representativeInfo.representative_person = $scope.partner.contact_person;
$scope.partner.representativeInfo.phone = $scope.partner.contact_phone.substring(1, $scope.partner.contact_phone.length);
$scope.partner.representativeInfo.email = $scope.partner.contact_email;
$scope.partner.representativeInfo.job_title = $scope.partner.contact_job;
}
};
$scope.sameAddress = function (){
$scope.partner.sameAsAddress = !($scope.partner.sameAsAddress);
if($scope.partner.sameAsAddress){
$scope.partner.representativeInfo.address = $scope.partner.address;
$scope.partner.representativeInfo.suburb = $scope.partner.suburb;
$scope.partner.representativeInfo.postcode = $scope.partner.postcode;
$scope.partner.representativeInfo.state = $scope.partner.state;
}
}
$scope.uploadLogo = function (file) { $scope.uploadLogo = function (file) {
if (file != null) { if (file != null) {
if (file.size > 1 * 1024 * 1024) { if (file.size > 1 * 1024 * 1024) {
@ -217,7 +244,7 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
alert("Logo is necessary!"); alert("Logo is necessary!");
return; return;
} }
if ($scope.partner.partner_type == 'photo') { if ($scope.partner.client_pay_type.indexOf('2') >= 0) {
if (!$scope.partner.company_photo) { if (!$scope.partner.company_photo) {
alert('Shop Photo1 is necessary'); alert('Shop Photo1 is necessary');
return; return;
@ -230,11 +257,11 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
var content = ''; var content = '';
if ($scope.partner.client_pay_type.length == 0) { if ($scope.partner.client_pay_type.length == 0) {
alert('请选择商户支付场景') alert('请选择商户支付场景');
return; return;
} }
if ($scope.partner.client_pay_desc.length == 0) { if ($scope.partner.client_pay_desc.length == 0) {
alert('请选择商户支付方式') alert('请选择商户支付方式');
return; return;
} }
if ($scope.partner.client_pay_type.indexOf('1') >= 0) { if ($scope.partner.client_pay_type.indexOf('1') >= 0) {
@ -257,6 +284,14 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
} }
$scope.partner.client_pay_type = $scope.partner.client_pay_type.join(','); $scope.partner.client_pay_type = $scope.partner.client_pay_type.join(',');
$scope.partner.client_pay_desc = $scope.partner.client_pay_desc.join(','); $scope.partner.client_pay_desc = $scope.partner.client_pay_desc.join(',');
$scope.partner.legal_representative_person = $scope.partner.representativeInfo.representative_person;
$scope.partner.legal_representative_phone = '+' + $scope.partner.representativeInfo.phone;
$scope.partner.legal_representative_email = $scope.partner.representativeInfo.email;
$scope.partner.legal_representative_job = $scope.partner.representativeInfo.job_title;
$scope.partner.registered_address = $scope.partner.representativeInfo.address;
$scope.partner.registered_suburb = $scope.partner.representativeInfo.suburb;
$scope.partner.registered_postcode = $scope.partner.representativeInfo.postcode;
$scope.partner.registered_state = $scope.partner.representativeInfo.state;
$http.put('/client/partner_info/update/partnerInfo', $scope.partner).then(function () { $http.put('/client/partner_info/update/partnerInfo', $scope.partner).then(function () {
if (content != '') { if (content != '') {
commonDialog.alert({ commonDialog.alert({
@ -273,6 +308,8 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
} }
$state.go('basic', {clientMoniker: $scope.partner.client_moniker}, {reload: true}); $state.go('basic', {clientMoniker: $scope.partner.client_moniker}, {reload: true});
}, function (resp) { }, function (resp) {
$scope.partner.client_pay_type = $scope.partner.client_pay_type.split(",");
$scope.partner.client_pay_desc = $scope.partner.client_pay_desc.split(",");
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'}) commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'})
}); });
}; };
@ -328,8 +365,7 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
$scope.states = stateMap.configs(); $scope.states = stateMap.configs();
$scope.countries = countryMap.configs(); $scope.countries = countryMap.configs();
if($scope.partner.representativeInfo != null) if($scope.partner.representativeInfo != null) {
{
$scope.partner.registered_address = $scope.partner.representativeInfo.address; $scope.partner.registered_address = $scope.partner.representativeInfo.address;
$scope.partner.registered_suburb = $scope.partner.representativeInfo.suburb; $scope.partner.registered_suburb = $scope.partner.representativeInfo.suburb;
$scope.partner.registered_postcode = $scope.partner.representativeInfo.postcode; $scope.partner.registered_postcode = $scope.partner.representativeInfo.postcode;
@ -459,14 +495,10 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
$scope.partner.sameAsContactPerson = false; $scope.partner.sameAsContactPerson = false;
$scope.checkboxOnclick = function (){ $scope.checkboxOnclick = function (){
$scope.partner.sameAsContactPerson = !($scope.partner.sameAsContactPerson); $scope.partner.sameAsContactPerson = !($scope.partner.sameAsContactPerson);
if($scope.partner.sameAsContactPerson) if($scope.partner.sameAsContactPerson) {
{
$scope.partner.legal_representative_person = $scope.partner.contact_person; $scope.partner.legal_representative_person = $scope.partner.contact_person;
$scope.partner.legal_representative_phone = $scope.partner.contact_phone; $scope.partner.legal_representative_phone = $scope.partner.contact_phone;
$scope.partner.legal_representative_email = $scope.partner.contact_email; $scope.partner.legal_representative_email = $scope.partner.contact_email;
$scope.partner.legal_representative_job = $scope.partner.contact_job; $scope.partner.legal_representative_job = $scope.partner.contact_job;
} }
}; };
@ -474,14 +506,10 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
$scope.partner.sameAsAddress=false; $scope.partner.sameAsAddress=false;
$scope.sameAddress = function (){ $scope.sameAddress = function (){
$scope.partner.sameAsAddress=!($scope.partner.sameAsAddress); $scope.partner.sameAsAddress=!($scope.partner.sameAsAddress);
if($scope.partner.sameAsAddress) if($scope.partner.sameAsAddress) {
{
$scope.partner.registered_address = $scope.partner.address; $scope.partner.registered_address = $scope.partner.address;
$scope.partner.registered_suburb = $scope.partner.suburb; $scope.partner.registered_suburb = $scope.partner.suburb;
$scope.partner.registered_postcode = $scope.partner.postcode; $scope.partner.registered_postcode = $scope.partner.postcode;
$scope.partner.registered_state = $scope.partner.state; $scope.partner.registered_state = $scope.partner.state;
} }
}; };
@ -500,7 +528,7 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
alert("Logo is necessary!"); alert("Logo is necessary!");
return; return;
} }
if ($scope.partner.partner_type == 'photo') { if ($scope.partner.client_pay_type.indexOf('2') >= 0) {
if (!$scope.partner.company_photo) { if (!$scope.partner.company_photo) {
alert('Shop Photo1 is necessary'); alert('Shop Photo1 is necessary');
return; return;
@ -556,6 +584,8 @@ define(['angular', 'decimal', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiBoo
} }
$state.go('basic', {reload: true}); $state.go('basic', {reload: true});
}, function (resp) { }, function (resp) {
$scope.partner.client_pay_type = $scope.partner.client_pay_type.split(",");
$scope.partner.client_pay_desc = $scope.partner.client_pay_desc.split(",");
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'}) commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'})
}); });
}; };

@ -135,34 +135,6 @@
<p class="form-control-static" ng-bind="partner.sector"></p> <p class="form-control-static" ng-bind="partner.sector"></p>
</div> </div>
</div> </div>
<div class="form-group" ng-if="partner.company_photo">
<label class="control-label col-sm-2">Shop Photo</label>
<div class="col-sm-3 col-xs-5"><em>1:</em>&nbsp;
<div>
<a class="thumbnail" target="_blank"
ng-href="{{partner.company_photo}}">
<img ng-src="{{partner.company_photo}}" style="max-height: 100px">
</a>
</div>
</div>
<div class="col-sm-3 col-xs-5" ng-if="partner.store_photo"><em>2:</em>&nbsp;
<div>
<a class="thumbnail" target="_blank" ng-href="{{partner.store_photo}}">
<img ng-src="{{partner.store_photo}}" style="max-height: 100px">
</a>
</div>
</div>
</div>
<div class="form-group" ng-if="partner.company_website">
<label class="control-label col-sm-2">Website</label>
<div class="col-sm-10">
<a class="form-control-static" target="_blank"
ng-bind="partner.company_website"
href="https://{{partner.company_website}}"></a>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Service Phone</label> <label class="control-label col-sm-2">Service Phone</label>
@ -300,6 +272,34 @@
</div> </div>
</div> </div>
</div> </div>
<div class="form-group" ng-if="partner.client_pay_type.indexOf('2')>=0">
<label class="control-label col-sm-2" ng-if="partner.company_photo">Shop Photo</label>
<div class="col-sm-3 col-xs-5" ng-if="partner.company_photo"><em>1:</em>&nbsp;
<div>
<a class="thumbnail" target="_blank"
ng-href="{{partner.company_photo}}">
<img ng-src="{{partner.company_photo}}" style="max-height: 100px">
</a>
</div>
</div>
<div class="col-sm-3 col-xs-5" ng-if="partner.store_photo"><em>2:</em>&nbsp;
<div>
<a class="thumbnail" target="_blank" ng-href="{{partner.store_photo}}">
<img ng-src="{{partner.store_photo}}" style="max-height: 100px">
</a>
</div>
</div>
</div>
<div class="form-group" ng-if="partner.company_website">
<label class="control-label col-sm-2">Website</label>
<div class="col-sm-10">
<a class="form-control-static" target="_blank"
ng-bind="partner.company_website"
href="https://{{partner.company_website}}"></a>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -628,75 +628,6 @@
</div> </div>
</div> </div>
</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" required
name="partner_type">
<option value="">Please Choose</option>
<option value="photo">Photo</option>
<option value="website">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'">
<label class="control-label col-sm-2">* Shop Photo</label>
<div class="col-sm-5">
<div class="form-control-static"><em>1:</em>&nbsp;
<button class="btn btn-primary" type="button"
ngf-select="uploadShopPhoto($file)" accept="image/*">
<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 col-sm-5">
</div>
<div class="col-sm-5">
<div class="form-control-static"><em>2:</em>&nbsp;
<button class="btn btn-primary" type="button"
ngf-select="uploadStorePhoto($file)" accept="image/*">
<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 col-sm-5">
</div>
</div>
<div class="form-group"
ng-if="partner.partner_type == 'website'"
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="required">Less Than 200
Characters(including symbols and spaces)</p>
</div>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Service Phone</label> <label class="control-label col-sm-2">Service Phone</label>
@ -853,7 +784,325 @@
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"
ng-if="partner.client_pay_type.indexOf('2')>=0">
<label class="control-label col-sm-2">* Shop Photo</label>
<div class="col-sm-5">
<div class="form-control-static"><em>1:</em>&nbsp;
<button class="btn btn-primary" type="button"
ngf-select="uploadShopPhoto($file)" accept="image/*">
<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 col-sm-5">
</div>
<div class="col-sm-5">
<div class="form-control-static"><em>2:</em>&nbsp;
<button class="btn btn-primary" type="button"
ngf-select="uploadStorePhoto($file)" accept="image/*">
<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 col-sm-5">
</div>
</div>
<div class="form-group"
ng-if="partner.client_pay_type.indexOf('1')>=0"
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="required">Less Than 200
Characters(including symbols and spaces)</p>
</div>
</div>
</div>
<div class="col-sm-2">
</div> </div>
<div class="col-sm-8">
<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>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Partner Contact Information</div>
<div class="panel-body">
<div class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2">Contact Person</label>
<div class="col-sm-10">
<p class="form-control-static" ng-bind="partner.contact_person"></p>
</div>
</div>
<div class="form-group col-sm-6">
<label class="control-label col-sm-4">Phone</label>
<div class="col-sm-8">
<p class="form-control-static" ng-bind="partner.contact_phone"></p>
</div>
</div>
<div class="form-group col-sm-6">
<label class="control-label col-sm-4">E-mail</label>
<div class="col-sm-8">
<p class="form-control-static">
<span ng-bind="partner.contact_email"></span>
</p>
</div>
</div>
<div class="form-group"
ng-class="{'has-error':partnerForm.contact_job.$invalid && partnerForm.contact_job.$dirty}">
<label class="control-label col-sm-2" for="contact_job-id">*
Job title</label>
<div class="col-sm-8">
<input class="form-control" ng-model="partner.contact_job"
required
name="contact_job" id="contact_job-id"
maxlength="50">
</div>
<div ng-messages="partnerForm.contact_job.$error"
ng-if="partnerForm.contact_job.$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><hr/>
<div>
<label><input type="checkbox" ng-click="checkboxOnclick(this)">Legal Representative Same As Contact Information</label>
</div>
<div class="panel-body">
<div class="form-horizontal">
<div class="form-group"
ng-class="{'has-error':partnerForm.legal_representative_person.$invalid && partnerForm.legal_representative_person.$dirty}">
<label class="control-label col-sm-2" for="legal_representative_person-input">*
Representative Name</label>
<div class="col-sm-8">
<input class="form-control" ng-model="partner.representativeInfo.representative_person"
required
name="legal_representative_person"
id="legal_representative_person-input" maxlength="50">
<div ng-messages="partnerForm.legal_representative_person.$error"
ng-if="partnerForm.legal_representative_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"
ng-class="{'has-error':partnerForm.legal_representative_phone_p.$invalid && partnerForm.legal_representative_phone_p.$dirty}">
<label class="control-label col-sm-2" for="legal_representative_phone-input">*
Phone</label>
<div class="col-sm-6">
<div class="input-group">
<div class="input-group-addon">+</div>
<input class="form-control" required type="text"
ng-model="partner.representativeInfo.phone"
name="legal_representative_phone" id="legal_representative_phone-input"
maxlength="20" minlength="1">
</div>
<div ng-messages="partnerForm.legal_representative_phone.$error"
ng-if="partnerForm.legal_representative_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.legal_representative_email.$invalid && partnerForm.legal_representative_email.$dirty}">
<label class="control-label col-sm-2" for="legal_representative_email-id">*
E-mail</label>
<div class="col-sm-8">
<input class="form-control" ng-model="partner.representativeInfo.email"
required
name="legal_representative_email" id="legal_representative_email-id"
maxlength="50">
</div>
<div ng-messages="partnerForm.legal_representative_email.$error"
ng-if="partnerForm.legal_representative_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 class="form-group"
ng-class="{'has-error':partnerForm.legal_representative_job.$invalid && partnerForm.legal_representative_job.$dirty}">
<label class="control-label col-sm-2" for="legal_representative_job-id">*
Job title</label>
<div class="col-sm-8">
<input class="form-control" ng-model="partner.representativeInfo.job_title"
required
name="legal_representative_job" id="legal_representative_job-id"
maxlength="50">
</div>
<div ng-messages="partnerForm.legal_representative_job.$error"
ng-if="partnerForm.legal_representative_job.$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>
</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">Address</label>
<div class="col-sm-8">
<p class="form-control-static" ng-bind="partner.address"></p>
</div>
</div>
<div class="form-group col-sm-6">
<label class="control-label col-sm-4">Suburb</label>
<div class="col-sm-8">
<p class="form-control-static" ng-bind="partner.suburb"></p>
</div>
</div>
<div class="form-group col-sm-6">
<label class="control-label col-sm-4">PostCode</label>
<div class="col-sm-8">
<p class="form-control-static" ng-bind="partner.postcode"></p>
</div>
</div>
<div class="form-group col-sm-6">
<label class="control-label col-sm-4">State</label>
<div class="col-sm-8">
<p class="form-control-static" ng-bind="partner.state"></p>
</div>
</div>
<div class="form-group col-sm-6">
<label class="control-label col-sm-4">Country</label>
<div class="col-sm-8">
<p class="form-control-static" ng-bind="partner.country"></p>
</div>
</div>
</div>
</div>
<div><hr/>
<div>
<label><input type="checkbox" ng-click="sameAddress()"> Registered Office Address Same As Trading Address</label>
</div>
<div class="panel-body">
<div class="form-horizontal">
<div class="form-group col-sm-6"
ng-class="{'has-error':partnerForm.registered_address.$invalid && partnerForm.registered_address.$dirty}">
<label class="control-label col-sm-4" for="registered_address-input">*
Registered Office Address</label>
<div class="col-sm-8">
<textarea class="form-control" ng-model="partner.representativeInfo.address"
name="registered_address"
id="registered_address-input" maxlength="200" required></textarea>
<div ng-messages="partnerForm.registered_address.$error"
ng-if="partnerForm.registered_address.$dirty">
<p class="small text-danger" ng-message="maxlength">Less
Than 200
Characters(including symbols and spaces)</p>
<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.registered_suburb.$invalid && partnerForm.registered_suburb.$dirty}">
<label class="control-label col-sm-4" for="registered_suburb-input">*
Suburb</label>
<div class="col-sm-8">
<input class="form-control" ng-model="partner.representativeInfo.suburb"
name="registered_suburb"
id="registered_suburb-input" maxlength="50" required>
<div ng-messages="partnerForm.registered_suburb.$error"
ng-if="partnerForm.registered_suburb.$dirty">
<p class="small text-danger" ng-message="maxlength">Less
Than 50
Characters(including symbols and spaces)</p>
<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.registered_postcode.$invalid && partnerForm.registered_postcode.$dirty}">
<label class="control-label col-sm-4" for="registered_postcode-input">*
PostCode</label>
<div class="col-sm-8">
<input class="form-control" ng-model="partner.representativeInfo.postcode"
name="registered_postcode"
id="registered_postcode-input" maxlength="10" required>
<div ng-messages="partnerForm.registered_postcode.$error"
ng-if="partnerForm.registered_postcode.$dirty">
<p class="small text-danger" ng-message="maxlength">Less
Than 10
Characters(including symbols and spaces)</p>
<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.registered_state.$invalid && partnerForm.registered_state.$dirty}">
<label class="control-label col-sm-4" for="registered_state-input">*
State</label>
<div class="col-sm-8">
<select class="form-control" name="registered_state" required
ng-model="partner.representativeInfo.state"
id="registered_state-input"
ng-options="state.value as state.label for state in states">
<option value="">Please Choose</option>
</select>
<div ng-messages="partnerForm.registered_state.$error"
ng-if="partnerForm.registered_state.$dirty">
<p class="small text-danger" ng-message="required">Required
Field</p>
</div>
</div>
</div>
</div>
</div>
<hr/>
</div> </div>
</div> </div>
<div class="panel panel-default"> <div class="panel panel-default">

@ -85,69 +85,6 @@
<p class="form-control-static" ng-bind="partner.acn"></p> <p class="form-control-static" ng-bind="partner.acn"></p>
</div> </div>
</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>&nbsp;
<button class="btn btn-primary" type="button"
ngf-select="uploadShopPhoto($file)" accept="image/*">
<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>&nbsp;
<button class="btn btn-primary" type="button"
ngf-select="uploadStorePhoto($file)" accept="image/*">
<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" <div class="form-group"
ng-class="{'has-error':partnerForm.company_phone.$invalid && partnerForm.company_phone.$dirty}"> 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> <label class="control-label col-sm-2" for="service-phone-input">* Service Phone</label>
@ -324,6 +261,48 @@
其他</button> 其他</button>
</div> </div>
</div> </div>
<div class="form-group"
ng-if="partner.client_pay_type.indexOf('2')>=0">
<label class="control-label col-sm-2">* Shop Photo</label>
<div class="col-sm-5">
<div class="form-control-static"><em>1:</em>&nbsp;
<button class="btn btn-primary" type="button"
ngf-select="uploadShopPhoto($file)" accept="image/*">
<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>&nbsp;
<button class="btn btn-primary" type="button"
ngf-select="uploadStorePhoto($file)" accept="image/*">
<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.client_pay_type.indexOf('1')>=0"
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> </div>
</div> </div>
</div> </div>
@ -590,7 +569,7 @@
<div class="panel-body"> <div class="panel-body">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="form-group col-sm-6" <div class="form-group col-sm-6"
ng-class="{'has-error':partnerForm.registered_address.$invalid && partnerForm.registered_address.$dirty}"> ng-class="{'has-error':partnerForm.address.$invalid && partnerForm.address.$dirty}">
<label class="control-label col-sm-4" for="registered_address-input">* <label class="control-label col-sm-4" for="registered_address-input">*
Registered Office Address</label> Registered Office Address</label>
<div class="col-sm-8"> <div class="col-sm-8">

Loading…
Cancel
Save