commit
a48446e302
@ -0,0 +1,59 @@
|
||||
package au.com.royalpay.payment.manage.complianceAudit.bean;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
|
||||
/**
|
||||
* Created by yixian on 2016-07-01.
|
||||
*/
|
||||
public class ClientComplianceQuery {
|
||||
|
||||
private int limit = 10;
|
||||
private int page = 1;
|
||||
private String status;
|
||||
private String client_moniker;
|
||||
|
||||
public JSONObject toJson(){
|
||||
JSONObject jason = new JSONObject();
|
||||
if(StringUtils.isNotEmpty(status)){
|
||||
jason.put("status",status);
|
||||
}
|
||||
if(StringUtils.isNotEmpty(client_moniker)){
|
||||
jason.put("client_moniker",client_moniker);
|
||||
}
|
||||
return jason;
|
||||
}
|
||||
|
||||
public int getLimit() {
|
||||
return limit;
|
||||
}
|
||||
|
||||
public void setLimit(int limit) {
|
||||
this.limit = limit;
|
||||
}
|
||||
|
||||
public int getPage() {
|
||||
return page;
|
||||
}
|
||||
|
||||
public void setPage(int page) {
|
||||
this.page = page;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getClient_moniker() {
|
||||
return client_moniker;
|
||||
}
|
||||
|
||||
public void setClient_moniker(String client_moniker) {
|
||||
this.client_moniker = client_moniker;
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package au.com.royalpay.payment.manage.complianceAudit.core;
|
||||
|
||||
|
||||
import au.com.royalpay.payment.manage.complianceAudit.bean.ClientComplianceQuery;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
|
||||
/**
|
||||
* Created by yishuqian on 18/10/2016.
|
||||
*/
|
||||
public interface ClientComplianceApply {
|
||||
|
||||
JSONObject listClientComplianceApply(JSONObject manager, ClientComplianceQuery apply);
|
||||
|
||||
JSONObject complianceAuthFile(JSONObject client);
|
||||
|
||||
void passComplianceFile(JSONObject manager,int clientId,JSONObject passInfo);
|
||||
|
||||
void refuseComplianceFile(JSONObject manager,int clientId,JSONObject refuseInfo);
|
||||
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
package au.com.royalpay.payment.manage.complianceAudit.core.impl;
|
||||
|
||||
|
||||
import au.com.royalpay.payment.core.exceptions.InvalidShortIdException;
|
||||
import au.com.royalpay.payment.manage.complianceAudit.bean.ClientComplianceQuery;
|
||||
import au.com.royalpay.payment.manage.complianceAudit.core.ClientComplianceApply;
|
||||
import au.com.royalpay.payment.manage.mappers.system.ClientComplianceCompanyMapper;
|
||||
import au.com.royalpay.payment.manage.mappers.system.ClientFilesMapper;
|
||||
import au.com.royalpay.payment.tools.exceptions.BadRequestException;
|
||||
import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
|
||||
import au.com.royalpay.payment.tools.utils.PageListUtils;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.github.miemiedev.mybatis.paginator.domain.Order;
|
||||
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
|
||||
import com.github.miemiedev.mybatis.paginator.domain.PageList;
|
||||
import org.omg.CORBA.SystemException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Created by yishuqian on 18/10/2016.
|
||||
*/
|
||||
@Service
|
||||
public class ClientComplianceApplyImpl implements ClientComplianceApply
|
||||
{
|
||||
@Resource
|
||||
private ClientComplianceCompanyMapper clientComplianceCompanyMapper;
|
||||
@Resource
|
||||
private ClientFilesMapper clientFilesMapper;
|
||||
|
||||
@Override
|
||||
public JSONObject listClientComplianceApply(JSONObject manager, ClientComplianceQuery applyQuery) {
|
||||
JSONObject params = applyQuery.toJson();
|
||||
if (ManagerRole.BD_USER.hasRole(manager.getIntValue("role"))) {
|
||||
params.put("bd_user", manager.getString("manager_id"));
|
||||
}
|
||||
PageList<JSONObject> partners = clientComplianceCompanyMapper.listClientCompliances(params, new PageBounds(applyQuery.getPage(), applyQuery.getLimit(), Order.formString("submit_time.desc")));
|
||||
return PageListUtils.buildPageListResult(partners);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject complianceAuthFile(JSONObject client)
|
||||
{
|
||||
String[] fileKeys = {"client_bank_file", "client_company_file", "client_id_file", "client_agree_file", "client_apply_file"};
|
||||
if (client == null) {
|
||||
throw new InvalidShortIdException();
|
||||
}
|
||||
List<JSONObject> clientFiles = clientFilesMapper.findAllClientFile(client.getIntValue("client_id"));
|
||||
JSONObject fileJson = new JSONObject();
|
||||
if (clientFiles != null && clientFiles.size() > 0) {
|
||||
for (String fileKey : fileKeys) {
|
||||
List<JSONObject> clientFileUrl = clientFiles.stream()
|
||||
.filter(json -> (fileKey.equals(json.getString("file_name"))))
|
||||
.sorted((log1, log2) -> log2.getDate("last_update_date").compareTo(log1.getDate("last_update_date")))
|
||||
.map(json -> {
|
||||
JSONObject params = new JSONObject();
|
||||
params.put("file_id", json.getString("file_id"));
|
||||
params.put("status", json.getString("status"));
|
||||
params.put("file_value", json.getString("file_value"));
|
||||
return params;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
if (clientFileUrl != null && clientFileUrl.size() > 0) {
|
||||
fileJson.put(fileKey, clientFileUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
return fileJson;
|
||||
|
||||
};
|
||||
|
||||
@Override
|
||||
public void passComplianceFile(JSONObject manager, int clientId, JSONObject passInfo) {
|
||||
JSONObject complianceDetail = clientComplianceCompanyMapper.findFileByClientId(clientId);
|
||||
if (complianceDetail == null) {
|
||||
throw new BadRequestException("无此记录");
|
||||
}
|
||||
if (complianceDetail.getIntValue("status") == 1) {
|
||||
throw new BadRequestException("审核已通过,请避免重复操作");
|
||||
|
||||
}
|
||||
complianceDetail.put("operator_id", manager.getString("manager_id"));
|
||||
complianceDetail.put("status",1);
|
||||
complianceDetail.put("description",' ');
|
||||
clientComplianceCompanyMapper.update(complianceDetail);
|
||||
clientFilesMapper.passCompliance(clientId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refuseComplianceFile(JSONObject manager, int clientId, JSONObject refuseInfo) {
|
||||
JSONObject complianceDetail = clientComplianceCompanyMapper.findFileByClientId(clientId);
|
||||
if (complianceDetail == null) {
|
||||
throw new BadRequestException("无此记录");
|
||||
}
|
||||
if (complianceDetail.getIntValue("status") == 2) {
|
||||
throw new BadRequestException("已打回,请避免重复操作");
|
||||
|
||||
}
|
||||
complianceDetail.put("description",refuseInfo.getString("description"));
|
||||
complianceDetail.put("operator_id", manager.getString("manager_id"));
|
||||
complianceDetail.put("status",2);
|
||||
clientComplianceCompanyMapper.update(complianceDetail);
|
||||
clientFilesMapper.refuseCompliance(clientId);
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package au.com.royalpay.payment.manage.complianceAudit.web;
|
||||
|
||||
import au.com.royalpay.payment.manage.complianceAudit.bean.ClientComplianceQuery;
|
||||
import au.com.royalpay.payment.manage.complianceAudit.core.ClientComplianceApply;
|
||||
import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
|
||||
import au.com.royalpay.payment.manage.merchants.core.ClientManager;
|
||||
import au.com.royalpay.payment.manage.permission.manager.ManagerMapping;
|
||||
import au.com.royalpay.payment.manage.permission.manager.RequireManager;
|
||||
import au.com.royalpay.payment.tools.CommonConsts;
|
||||
import au.com.royalpay.payment.tools.permission.enums.ManagerRole;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Created by yishuqian on 18/10/2016.
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/compliance/audit")
|
||||
public class ComplianceAuditController
|
||||
{
|
||||
@Resource
|
||||
private ClientComplianceApply clientComplianceApply;
|
||||
@Resource
|
||||
private ClientManager clientManager;
|
||||
@Resource
|
||||
private ClientMapper clientMapper;
|
||||
|
||||
@RequestMapping(value = "/listClientCompliances",method = RequestMethod.GET)
|
||||
@RequireManager(role = {ManagerRole.ADMIN, ManagerRole.BD_USER, ManagerRole.OPERATOR, ManagerRole.SERVANT})
|
||||
public JSONObject clientComplianceList(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, ClientComplianceQuery apply) {
|
||||
return clientComplianceApply.listClientComplianceApply(manager,apply);
|
||||
}
|
||||
|
||||
@ManagerMapping(value = "/{clientId}/pass/complianceFile", method = RequestMethod.PUT, role = {ManagerRole.OPERATOR, ManagerRole.BD_USER})
|
||||
public void passComplianceAudit(@PathVariable int clientId, @RequestBody JSONObject passInfo, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) {
|
||||
clientComplianceApply.passComplianceFile(manager,clientId,passInfo);
|
||||
}
|
||||
|
||||
@ManagerMapping(value = "/{clientId}/refuse/complianceFile", method = RequestMethod.PUT, role = {ManagerRole.OPERATOR, ManagerRole.BD_USER})
|
||||
public void refuseComplianceAudit(@PathVariable int clientId, @RequestBody JSONObject refuseInfo, @ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) {
|
||||
clientComplianceApply.refuseComplianceFile(manager,clientId,refuseInfo);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/compliance/clientViewFiles/{clientMoniker}",method = RequestMethod.GET)
|
||||
@RequireManager(role = {ManagerRole.ADMIN, ManagerRole.BD_USER, ManagerRole.OPERATOR, ManagerRole.SERVANT})
|
||||
public JSONObject searchCompliances(@PathVariable String clientMoniker) {
|
||||
JSONObject client = clientMapper.findClientByMoniker(clientMoniker);
|
||||
return clientManager.getComplianceFilesForBD(client);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package au.com.royalpay.payment.manage.mappers.system;
|
||||
|
||||
import cn.yixblog.support.mybatis.autosql.annotations.AdvanceSelect;
|
||||
import cn.yixblog.support.mybatis.autosql.annotations.AutoMapper;
|
||||
import cn.yixblog.support.mybatis.autosql.annotations.AutoSql;
|
||||
import cn.yixblog.support.mybatis.autosql.annotations.SqlType;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
|
||||
import com.github.miemiedev.mybatis.paginator.domain.PageList;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by yishuqian on 06/03/2017.
|
||||
*/
|
||||
@AutoMapper(tablename = "client_authfile_compliance", pkName = "compliance_id")
|
||||
public interface ClientComplianceCompanyMapper {
|
||||
@AutoSql(type = SqlType.INSERT)
|
||||
void save(JSONObject partner);
|
||||
|
||||
@AutoSql(type = SqlType.UPDATE)
|
||||
void update(JSONObject partner);
|
||||
|
||||
@AutoSql(type = SqlType.SELECT)
|
||||
JSONObject findFileByClientId(@Param("client_id") int client_id);
|
||||
|
||||
PageList<JSONObject> listClientCompliances(JSONObject params, PageBounds pageBounds);
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="au.com.royalpay.payment.manage.mappers.system.ClientComplianceCompanyMapper">
|
||||
<select id="listClientCompliances" resultType="com.alibaba.fastjson.JSONObject">
|
||||
SELECT c.client_moniker,c.short_name,c.create_time,c.bd_user_name,c.approve_result,c.approve_time,c.open_status,
|
||||
c.source as client_source,a.* FROM client_authfile_compliance a INNER JOIN sys_clients c on c.client_id = a.client_id
|
||||
<where>
|
||||
<if test="client_moniker!=null">
|
||||
and c.client_moniker = #{client_moniker}
|
||||
</if>
|
||||
<if test="status!=null">
|
||||
and a.status = #{status}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
After Width: | Height: | Size: 92 KiB |
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,4 @@
|
||||
/* Modernizr 2.5.2 (Custom Build) | MIT & BSD
|
||||
* Build: http://www.modernizr.com/download/#-borderradius-csscolumns-canvas-touch-mq-cssclasses-addtest-teststyles-testprop-testallprops-prefixes-domprefixes-fullscreen_api
|
||||
*/
|
||||
;window.Modernizr=function(a,b,c){function A(a){j.cssText=a}function B(a,b){return A(m.join(a+";")+(b||""))}function C(a,b){return typeof a===b}function D(a,b){return!!~(""+a).indexOf(b)}function E(a,b){for(var d in a)if(j[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function F(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:C(f,"function")?f.bind(d||b):f}return!1}function G(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");return C(b,"string")||C(b,"undefined")?E(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),F(e,b,c))}var d="2.5.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["­","<style>",a,"</style>"].join(""),k.id=h,m.innerHTML+=f,m.appendChild(k),l||g.appendChild(m),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},x=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return w("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},y={}.hasOwnProperty,z;!C(y,"undefined")&&!C(y.call,"undefined")?z=function(a,b){return y.call(a,b)}:z=function(a,b){return b in a&&C(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e});var H=function(c,d){var f=c.join(""),g=d.length;w(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9},g,d)}([,["@media (",m.join("touch-enabled),("),h,")","{#touch{top:9px;position:absolute}}"].join("")],[,"touch"]);q.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},q.touch=function(){return e.touch},q.borderradius=function(){return G("borderRadius")},q.csscolumns=function(){return G("columnCount")};for(var I in q)z(q,I)&&(v=I.toLowerCase(),e[v]=q[I](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)z(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,g.className+=" "+(b?"":"no-")+a,e[a]=b}return e},A(""),i=k=null,e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.mq=x,e.testProp=function(a){return E([a])},e.testAllProps=G,e.testStyles=w,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),Modernizr.addTest("fullscreen",function(){for(var a=0;a<Modernizr._domPrefixes.length;a++)if(document[Modernizr._domPrefixes[a].toLowerCase()+"CancelFullScreen"])return!0;return!!document.cancelFullScreen||!1});
|
@ -0,0 +1,112 @@
|
||||
define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiSelect'], function (angular) {
|
||||
'use strict';
|
||||
var app = angular.module('complianceAuthFile', ['ui.bootstrap', 'ui.router', 'frapontillo.bootstrap-switch', 'ngFileUpload', 'ui.select']);
|
||||
app.config(['$stateProvider', function ($stateProvider) {
|
||||
$stateProvider.state('partner_compliance_auth', {
|
||||
url: '/partners/complianceForClient',
|
||||
templateUrl: 'static/sys/templates/partner_compliance_for_client.html',
|
||||
controller: 'compliancePartnerForClientCtrl'
|
||||
}).state('compliance_detail', {
|
||||
url: '/{client_moniker}/compliance_detail',
|
||||
templateUrl: '/static/payment/partner/templates/client_compliance_to_auth.html',
|
||||
controller: 'partnerComplianceCompanyDetail',
|
||||
resolve: {
|
||||
file: ['$http','$stateParams',function ($http, $stateParams) {
|
||||
return $http.get('/compliance/audit/compliance/clientViewFiles/'+ $stateParams.client_moniker);
|
||||
}]
|
||||
}
|
||||
}).state('partner_detail', {
|
||||
url: '/{client_moniker}/partner_detail',
|
||||
templateUrl: '/static/payment/partner/templates/partner_detail_for_compliance.html',
|
||||
controller: 'partnerComplianceCompanyDetail',
|
||||
resolve: {
|
||||
file: ['$http','$stateParams',function ($http, $stateParams) {
|
||||
return $http.get('/compliance/audit/compliance/clientViewFiles/'+ $stateParams.client_moniker);
|
||||
}]
|
||||
}
|
||||
}).state('compliance_for_audit_detail', {
|
||||
url: '/partner/complianceForAudit',
|
||||
templateUrl: '/static/payment/partner/templates/compliance_auth.html',
|
||||
controller: 'partnerComplianceAuditCtrl',
|
||||
|
||||
})
|
||||
}]);
|
||||
|
||||
app.controller('compliancePartnerForClientCtrl', ['$scope', '$sce', '$http', '$filter', '$uibModal', 'businessStructuresMap', 'industryMap', 'stateMap', 'sectorMap', 'countryMap',
|
||||
function ($scope, $sce, $http, $filter, $uibModal, businessStructuresMap, industryMap, stateMap, sectorMap, countryMap) {
|
||||
$scope.pagination = {};
|
||||
$scope.industries = industryMap.configs();
|
||||
$scope.states = stateMap.configs();
|
||||
$scope.countries = countryMap.configs();
|
||||
$scope.params = {};
|
||||
$scope.loadClientCompliance = function (page) {
|
||||
var params = angular.copy($scope.params);
|
||||
params.page = page || $scope.pagination.page || 1;
|
||||
$http.get('/compliance/audit/listClientCompliances', {params: params}).then(function (resp) {
|
||||
$scope.compliances = resp.data.data;
|
||||
$scope.pagination = resp.data.pagination;
|
||||
});
|
||||
};
|
||||
$scope.loadClientCompliance(1);
|
||||
$scope.statusSelected = function (arr) {
|
||||
return $scope.params.status != null && $scope.params.status.filter(function (status) {
|
||||
return arr.indexOf(status) >= 0
|
||||
}).length > 0
|
||||
};
|
||||
}]);
|
||||
|
||||
app.controller('partnerComplianceCompanyDetail', ['$rootScope', '$scope', '$http', '$state', '$uibModal', 'commonDialog', 'file', function ($rootScope, $scope, $http, $state, $uibModal, commonDialog, file) {
|
||||
$scope.file = file.data || {};
|
||||
$scope.partner = $scope.file.client;
|
||||
|
||||
$scope.passPartnerComplianceFiles = function () {
|
||||
commonDialog.confirm({
|
||||
title: 'Confirm!',
|
||||
content: '确认是否通过商户合规文件?'
|
||||
}).then(function () {
|
||||
$http.put('/compliance/audit/'+$scope.file.client.client_id+'/pass/complianceFile',{}).then(function (resp) {
|
||||
$state.reload();
|
||||
}, function (resp) {
|
||||
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'});
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
$scope.refusePartnerComplianceFiles = function (obj) {
|
||||
var partner = angular.copy(obj);
|
||||
$uibModal.open({
|
||||
templateUrl: '/static/payment/partner/templates/refuse_reason.html',
|
||||
controller: 'refusePartnerComplianceFilesCtrl',
|
||||
resolve: {
|
||||
partner: partner
|
||||
}
|
||||
})
|
||||
};
|
||||
}]);
|
||||
|
||||
app.controller('refusePartnerComplianceFilesCtrl', ['$scope', '$http', '$state', 'partner', function ($scope, $http, $state, partner) {
|
||||
$scope.partner = angular.copy(partner);
|
||||
$scope.partner.description = "";
|
||||
|
||||
$scope.refusePartnerComplianceFiles = function () {
|
||||
var a = $scope.partner.description;
|
||||
$http.put('/compliance/audit/'+$scope.partner.client_id+'/refuse/complianceFile',{description:$scope.partner.description}).then(function (resp) {
|
||||
$state.reload();
|
||||
}, function (resp) {
|
||||
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'});
|
||||
})
|
||||
}
|
||||
}]);
|
||||
|
||||
|
||||
app.controller('partnerComplianceAuditCtrl', ['$rootScope','$state','$stateParams', function ($rootScope,$state,$stateParams) {
|
||||
if ($state.is('compliance_for_audit_detail')){
|
||||
$state.go('partner_detail');
|
||||
}
|
||||
}]);
|
||||
|
||||
|
||||
|
||||
return app;
|
||||
});
|
@ -0,0 +1,29 @@
|
||||
<style>
|
||||
.dialog{
|
||||
font-size: 17px;
|
||||
}
|
||||
</style>
|
||||
<div class="modal-header bg-green">
|
||||
<h4>Confirm</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row dialog">
|
||||
<div class="col-xs-12">
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<div class="col-xs-12">
|
||||
<p class="form-control-static">
|
||||
Do you confirm the submission of the agreement?
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-success" ng-click="chooseYes();$dismiss()" type="button">Submit</button>
|
||||
|
||||
<button class="btn btn-danger" ng-click="$dismiss()" type="button">Cancel</button>
|
||||
</div>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,256 @@
|
||||
<section class="content-header">
|
||||
<h1>
|
||||
<span ng-bind="partner.company_name"></span>
|
||||
</h1>
|
||||
</section>
|
||||
|
||||
<div class="content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="nav-tabs-custom">
|
||||
<div class="tab-content" ui-view>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
Partner Basic Information
|
||||
<span ng-if="partner.apply_approve_result==3||partner.apply_approve_result==4"
|
||||
style="color: red">(Refused)</span>
|
||||
<span ng-if="partner.apply_approve_result==2 && partner.client_id" style="color: green">(Pass)</span>
|
||||
<span class="form-inline" ng-if="('10'|withRole) && partner.apply_approve_result==1" style="color: blue">
|
||||
({{partner.bd_user_name}} is following)
|
||||
<div class="form-group"
|
||||
style="padding-left: 10px">
|
||||
<div class="form-group">
|
||||
<ui-select ng-model="choosed.selected" theme="bootstrap" reset-search-input="false" title="Choose a BD"
|
||||
append-to-body="true" style="min-width: 150px;max-width: 300px">
|
||||
<ui-select-match placeholder="Select a BD To Follow Up">{{$select.selected.display_name}}</ui-select-match>
|
||||
<ui-select-choices group-by="'org_name'"
|
||||
repeat="bd in bds | filter:$select.search">
|
||||
<div ng-bind-html="bd.display_name | highlight: $select.search"></div>
|
||||
</ui-select-choices>
|
||||
</ui-select>
|
||||
</div>
|
||||
|
||||
<button type="button" class="btn btn-success" ng-class="{'disabled':!choosed.selected}"
|
||||
ng-click="chooseBD(choosed.selected)">Change BD</button>
|
||||
</div>
|
||||
</span>
|
||||
<span style="float: right;margin-top: -7px" class="form-inline"
|
||||
ng-if="(partner.apply_approve_result==0 && ('10'|withRole))||(partner.apply_approve_result==1 && ('100'|withRole))">
|
||||
<!--<div uib-dropdown ng-if="partner.apply_approve_result==0 && ('10'|withRole)" class="btn-group pull-right">-->
|
||||
|
||||
<!--<button id="single-button" type="button" class="btn btn-success" uib-dropdown-toggle ng-disabled="disabled">-->
|
||||
<!--Choose BD To Follow Up <span class="caret"></span>-->
|
||||
<!--</button>-->
|
||||
<!--<ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="single-button">-->
|
||||
<!--<li ng-repeat="bd in bds"><a ng-click="chooseBD(bd)">{{bd.display_name}}</a></li>-->
|
||||
<!--</ul>-->
|
||||
<!--</div>-->
|
||||
<div class="form-group">
|
||||
<a role="button" class="btn btn-danger" ng-click="refuse()">
|
||||
Refuse
|
||||
</a>
|
||||
</div>
|
||||
<div class="form-group" ng-if="partner.apply_approve_result==0 && ('10'|withRole)"
|
||||
style="padding-left: 10px">
|
||||
<div class="form-group">
|
||||
<ui-select ng-model="choosed.selected" theme="bootstrap" reset-search-input="false" title="Choose a BD"
|
||||
append-to-body="true" style="min-width: 150px;max-width: 300px">
|
||||
<ui-select-match placeholder="Select a BD To Follow Up">{{$select.selected.display_name}}</ui-select-match>
|
||||
<ui-select-choices group-by="'org_name'"
|
||||
repeat="bd in bds | filter:$select.search">
|
||||
<div ng-bind-html="bd.display_name | highlight: $select.search"></div>
|
||||
</ui-select-choices>
|
||||
</ui-select>
|
||||
</div>
|
||||
|
||||
<button type="button" class="btn btn-success" ng-class="{'disabled':!choosed.selected}"
|
||||
ng-click="chooseBD(choosed.selected)">Next</button>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<a ng-click="pass(partner)" ng-if="partner.apply_approve_result==1 && ('100'|withRole)"
|
||||
role="button" class="btn btn-success">
|
||||
PASS
|
||||
</a>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Full Name</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<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-10">
|
||||
<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 License No. (ABN/ACN)</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.abn"></p>
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="form-group">-->
|
||||
<!--<label class="control-label col-sm-2">Industry</label>-->
|
||||
|
||||
<!--<div class="col-sm-10">-->
|
||||
<!--<p class="form-control-static" ng-bind="partner.industry|partner_industry"></p>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="form-group" ng-if="partner.company_email">-->
|
||||
<!--<label class="control-label col-sm-2">Email Address</label>-->
|
||||
|
||||
<!--<div class="col-sm-10">-->
|
||||
<!--<p class="form-control-static" target="_blank" ng-bind="partner.company_email"></p>-->
|
||||
<!--</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"
|
||||
ng-href="http://{{partner.company_website}}"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Office Telephone Number</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.company_phone||'-'"></p>
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="form-group col-sm-6">-->
|
||||
<!--<label class="control-label col-sm-4">Mobile Number (China)</label>-->
|
||||
|
||||
<!--<div class="col-sm-8">-->
|
||||
<!--<p class="form-control-static" ng-bind="partner.mobile_chn||'-'"></p>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<!--<div class="form-group col-sm-6">-->
|
||||
<!--<label class="control-label col-sm-4">Mobile Number (Aus)</label>-->
|
||||
|
||||
<!--<div class="col-sm-8">-->
|
||||
<!--<p class="form-control-static" ng-bind="partner.mobile_aus||'-'"></p>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<div class="form-group col-sm-12">
|
||||
<label class="control-label col-sm-2">Address</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<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">City</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">Post Code</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||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 class="form-group col-sm-6">
|
||||
<label class="control-label col-sm-4">Business category</label>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-static" ng-bind="(partner.aus_mch_category |aus_mch_category).categoryLabel"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-sm-6">
|
||||
<label class="control-label col-sm-4">Business industry</label>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-static" ng-bind="(partner.aus_mch_category |aus_mch_category).industryLabel"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end 商户基本资料-->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Contact Information</div>
|
||||
<div class="panel-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group col-sm-12">
|
||||
<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">Job Title</label>-->
|
||||
|
||||
<!--<div class="col-sm-8">-->
|
||||
<!--<p class="form-control-static" ng-bind="partner.contact_person_job"></p>-->
|
||||
<!--</div>-->
|
||||
<!--</div>-->
|
||||
<div class="form-group col-sm-6">
|
||||
<label class="control-label col-sm-4">Telephone No.</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" ng-bind="partner.contact_email"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end 商户联系资料-->
|
||||
<div class="panel panel-default" ng-if="partner.apply_approve_result>0">
|
||||
<div class="panel-heading">Approaching Progress </div>
|
||||
<div class="panel-body">
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group col-sm-12">
|
||||
<div class="col-sm-12" ng-if="('100'|withRole)">
|
||||
<textarea class="form-control" ng-model="partner.remark" name="remark"
|
||||
id="remark-input" maxlength="500"></textarea>
|
||||
<a ng-if="('100'|withRole)" class="btn btn-success" role="button" ng-click="updateRemark()">Save</a>
|
||||
</div>
|
||||
<div class="col-sm-12" ng-if="partner.apply_approve_result>0 && ('10'|withRole)">
|
||||
<p class="form-control-static" ng-bind="partner.remark"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,301 @@
|
||||
<style type="text/css">
|
||||
#bg {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0%;
|
||||
left: 0%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
z-index: 1001;
|
||||
-moz-opacity: 0.7;
|
||||
opacity: .70;
|
||||
filter: alpha(opacity=70);
|
||||
}
|
||||
|
||||
#show {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 20%;
|
||||
left: 50%;
|
||||
width: 50%;
|
||||
padding: 50px;
|
||||
z-index: 2004;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.industry-p {
|
||||
width: 95%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.img-size {
|
||||
height: 100px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.btn-default:active,
|
||||
.btn-default.active,
|
||||
.open > .dropdown-toggle.btn-default {
|
||||
color: #333;
|
||||
background-color: #f7bf90;
|
||||
border-color: #adadad;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="nav-tabs-custom">
|
||||
<ul class="nav nav-tabs">
|
||||
<li ui-sref-active-eq="active">
|
||||
<a ui-sref="partner_detail({client_moniker:partner.client_moniker})">Partner Detail</a>
|
||||
</li>
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="compliance_detail({client_moniker:partner.client_moniker})">Compliance Audit</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content" ui-view>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
Partner Basic Information
|
||||
<a role="button" class="" ng-click="configMasterMerchant()"
|
||||
ng-if="partner.show_all_permission && ('10'|withRole)||(partner.show_all_permission && ('1'|withRole))">
|
||||
(<i class="fa fa-arrows" aria-hidden="true"></i> Config master merchant)
|
||||
</a>
|
||||
<a role="button" class="pull-right"
|
||||
ng-if="partner.show_all_permission && ('110'|withRole)||(partner.show_all_permission && ('1'|withRole))"
|
||||
ui-sref="partners.edit({clientMoniker:partner.client_moniker})">
|
||||
<i class="fa fa-edit"></i> Edit
|
||||
</a>
|
||||
|
||||
</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-10">
|
||||
<p class="form-control-static">
|
||||
<span id="parent_code">{{partner.client_moniker}}</span>
|
||||
<span ng-if="partner.parent_client_id!=null">(Sub Partner of
|
||||
<a ui-sref="partners.detail({clientMoniker:partner.parent_client.client_moniker})"
|
||||
ng-bind="partner.parent_client.client_moniker"></a>)
|
||||
</span>
|
||||
<span ng-if="partner.is_valid==0"
|
||||
ng-class="{pass_timeout:partner.is_valid==0}">(已禁用)</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Company Name</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static">
|
||||
<span ng-bind="partner.company_name"></span>
|
||||
<span
|
||||
ng-if="isComplianceOfCompanyName && partner.open_status"
|
||||
style="margin-left: 10px;font-weight: 700;color: red;">
|
||||
注意:(微信渠道可能不合规)
|
||||
</span>
|
||||
<span class="description-text text-red" ng-bind="partner.same_company_name"></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Short Name</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static pull-left" ng-bind="partner.short_name"></p>
|
||||
<p class="form-control-static pull-left"
|
||||
ng-if="isComplianceOfShortName && partner.open_status"
|
||||
style="margin-left: 10px;font-weight: 700;color: red;">
|
||||
注意:(微信渠道可能不合规)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Business Name</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.business_name"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Store Name</label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static pull-left" ng-bind="partner.store_name"></p>
|
||||
<p class="form-control-static pull-left"
|
||||
ng-if="isComplianceOfShortName && partner.open_status"
|
||||
style="margin-left: 10px;font-weight: 700;color: red;">
|
||||
注意:(微信渠道可能不合规)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Business Structure</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static pull-left"
|
||||
ng-bind="partner.business_structure|business_structure"></p>
|
||||
<p class="form-control-static pull-left"
|
||||
ng-if="isComplianceOfBusinessStructure && partner.open_status"
|
||||
style="margin-left: 10px;font-weight: 700;color: red;">
|
||||
注意:(微信渠道可能不合规)
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Logo</label>
|
||||
<div class="col-sm-10">
|
||||
<img ng-src="{{partner.logo_url}}" style="max-height: 100px;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-if="partner.abn">
|
||||
<label class="control-label col-sm-2">ABN</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.abn"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-if="partner.acn">
|
||||
<label class="control-label col-sm-2">ACN</label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.acn"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Industry</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.industry|partner_industry"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div hidden class="form-group">
|
||||
<label class="control-label col-sm-2">Sector</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.sector"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Service Phone</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.company_phone||'-'"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Major Products/Service</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.description"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-2">Remark</label>
|
||||
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.remark"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-if="partner.referrer_id">
|
||||
<label class="control-label col-sm-2">Referrer</label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.referrer_name"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end 商户基本资料-->
|
||||
<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 Name</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>
|
||||
<p class="description-text text-red" ng-bind="partner.same_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>
|
||||
</span>
|
||||
</p>
|
||||
<p class="description-text text-red" ng-bind="partner.same_email"></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">Address</label>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<p class="form-control-static" ng-bind="partner.address"></p>
|
||||
<p class="description-text text-red" ng-bind="partner.same_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 class="form-group ">
|
||||
<label class="control-label col-sm-2">Timezone</label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static" ng-bind="partner.timezone|timezoneLabel"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -0,0 +1,25 @@
|
||||
<div class="modal-header">
|
||||
<h4>Pass Application({{partner.company_name}})</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<form name="partnerForm" novalidate>
|
||||
<div class="form-group"
|
||||
ng-class="{'has-error':partnerForm.client_moniker.$invalid && partnerForm.client_moniker.$dirty}">
|
||||
<label class="control-label col-sm-3" for="short-id-input">Refuse Reason:</label>
|
||||
<div class="col-sm-8">
|
||||
<textarea class="form-control text-uppercase" ng-model="partner.description"
|
||||
type="text"
|
||||
name="description"
|
||||
id="short-id-input"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-success" ng-click="refusePartnerComplianceFiles();$dismiss();">Refuse</button>
|
||||
<button type="button" class="btn btn-danger" ng-click="$dismiss()">Cancel</button>
|
||||
</div>
|
@ -0,0 +1,128 @@
|
||||
<section class="content-header">
|
||||
<h1>商户合规文件审核</h1>
|
||||
<ol class="breadcrumb">
|
||||
<li>
|
||||
<i class="fa fa-sitemap"></i> Compliance Management
|
||||
</li>
|
||||
<li class="active">商户合规文件审核</li>
|
||||
</ol>
|
||||
</section>
|
||||
|
||||
<div class="box box-warning" style="margin-top: 30px;">
|
||||
<div class="box-header">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="form-horizontal">
|
||||
<div class="form-group col-xs-12">
|
||||
<label class="col-xs-4 col-sm-2 control-label">Partner Code</label>
|
||||
<div class="col-sm-5 col-xs-8">
|
||||
<input class="form-control" placeholder="" ng-click="loadClientCompliance(1)"
|
||||
ng-model="params.client_moniker">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group col-xs-12">
|
||||
<label class="control-label col-xs-4 col-sm-2">审核状态:</label>
|
||||
<div class="col-sm-10 col-xs-8">
|
||||
<p class="form-control-static">
|
||||
<a role="button" ng-class="{'bg-primary':params.status==null}"
|
||||
ng-click="params.status=null;loadClientCompliance(1)">All</a> |
|
||||
|
||||
<a role="button" ng-class="{'bg-primary':statusSelected([0])}"
|
||||
ng-click="params.status=[0];loadClientCompliance(1)">待审核</a>|
|
||||
<a role="button" ng-class="{'bg-primary':statusSelected([1])}"
|
||||
ng-click="params.status=[1];loadClientCompliance(1)">通过</a>|
|
||||
<a role="button" ng-class="{'bg-primary':statusSelected([2])}"
|
||||
ng-click="params.status=[2];loadClientCompliance(1)">打回</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-success" type="button" ng-click="loadTradeLogs()">
|
||||
<i class="fa fa-search"></i> Search
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box box-danger">
|
||||
<div class="modal-body">
|
||||
<div class="box-body table-responsive">
|
||||
<table class="table table-bordered table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Client Moniker</th>
|
||||
<th>Short Name</th>
|
||||
<th>Compliance Status</th>
|
||||
<th>Register Time</th>
|
||||
<th>BD</th>
|
||||
<th>AuthFile Status</th>
|
||||
<th>Submit Time</th>
|
||||
<th>Source</th>
|
||||
<th>Operation</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="compliance_company in compliances">
|
||||
<td ng-bind="compliance_company.client_moniker"></td>
|
||||
<td ng-bind="compliance_company.short_name"></td>
|
||||
<td ng-class="{'bg-green':(compliance_company.approve_result==2 && (compliance_company.client_source==1 || compliance_company.client_source==2)),'bg-red':((compliance_company.open_status==1||compliance_company.open_status==2||compliance_company.open_status==4) && compliance_company.approve_result!=3)||(compliance_company.approve_result==3 && (!compliance_company.open_status || compliance_company.open_status==1 || compliance_company.open_status == 4))||(compliance_company.approve_result==4 && !compliance_company.open_status)||(compliance_company.open_status==10)}">
|
||||
<span ng-if="compliance_company.approve_result==1 && compliance_company.approve_time">通过({{compliance_company.approve_time}})</span>
|
||||
<span ng-if="!compliance_company.open_status && !compliance_company.approve_result && compliance_company.approve_result!=5 && compliance_company.client_source!=4">资料完善中</span>
|
||||
<span ng-if="!compliance_company.open_status && !compliance_company.approve_result && compliance_company.approve_result!=5 && compliance_company.client_source==4">(自助开通)资料完善中</span>
|
||||
<span ng-if="!compliance_company.open_status && compliance_company.approve_result==2 && compliance_company.approve_time">自助开通试用中({{compliance_company.approve_time}}~{{compliance_company.expiry_time}})</span>
|
||||
<span ng-if="compliance_company.approve_result==0 && compliance_company.approve_time">不通过({{compliance_company.approve_time}})</span>
|
||||
<span ng-if="compliance_company.approve_result==5 && compliance_company.approve_time && compliance_company.refuse_remark">申请打回({{compliance_company.refuse_remark|limitTo:15}})</span>
|
||||
<span ng-if="(compliance_company.open_status==1||compliance_company.open_status==4) && compliance_company.approve_result!=3"><i
|
||||
ng-if="compliance_company.refuse_remark.length>0" class="fa fa-reply" aria-hidden="true"
|
||||
title="被打回重新提交"></i>等待合规</span>
|
||||
<span ng-if="compliance_company.approve_result==3 && (!compliance_company.open_status || compliance_company.open_status==4)">自助开通(等待合规)</span>
|
||||
<span ng-if="compliance_company.open_status==2">合同制作完成</span>
|
||||
<span ng-if="compliance_company.open_status==3 && compliance_company.approve_result!=5">等待BD上传材料审核</span>
|
||||
<span ng-if="compliance_company.open_status==10">绿色通道申请中</span>
|
||||
<span ng-if="compliance_company.approve_result==4 && !compliance_company.open_status"><i
|
||||
ng-if="compliance_company.refuse_remark.length>0" class="fa fa-reply" aria-hidden="true"
|
||||
title="被打回重新提交"></i>等待合规</span>
|
||||
</td>
|
||||
<td ng-bind="compliance_company.create_time|date:'dd/MMM/yyyy'"></td>
|
||||
<td ng-bind="compliance_company.bd_user_name"></td>
|
||||
<td>
|
||||
<span ng-if="compliance_company.status==0">待审核</span>
|
||||
<span ng-if="compliance_company.status==1">通过</span>
|
||||
<span ng-if="compliance_company.status==2">打回</span>
|
||||
</td>
|
||||
<td ng-bind="compliance_company.submit_time|date:'dd/MMM/yyyy'"></td>
|
||||
<td>
|
||||
<span ng-if="compliance_company.source==1">App</span>
|
||||
<span ng-if="compliance_company.source==2">Web</span>
|
||||
</td>
|
||||
<td><a class="text-primary" role="button" title="Detail"
|
||||
ui-sref="compliance_detail({client_moniker:compliance_company.client_moniker})">
|
||||
<i class="fa fa-search"></i> Detail
|
||||
</a>
|
||||
</td>
|
||||
<!--({client_id:compliance_company.client_id})-->
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<uib-pagination ng-if="compliances.length"
|
||||
class="pagination"
|
||||
total-items="pagination.totalCount"
|
||||
boundary-links="true"
|
||||
ng-model="pagination.page"
|
||||
items-per-page="pagination.limit"
|
||||
max-size="10"
|
||||
ng-change="getContractAnalysis()"
|
||||
previous-text="‹"
|
||||
next-text="›"
|
||||
first-text="«"
|
||||
last-text="»"></uib-pagination>
|
||||
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total Pages:{{pagination.totalPages}}</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
Loading…
Reference in new issue