Merge branch 'develop'

master
eason 7 years ago
commit d7735f8786

@ -5,7 +5,7 @@
<parent>
<groupId>au.com.royalpay.payment</groupId>
<artifactId>payment-parent</artifactId>
<version>0.2.0</version>
<version>0.2.0-dev</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@ -28,6 +28,10 @@
<groupId>au.com.royalpay.payment</groupId>
<artifactId>alipay-core</artifactId>
</dependency>
<dependency>
<groupId>au.com.royalpay.payment</groupId>
<artifactId>hf-core</artifactId>
</dependency>
<dependency>
<groupId>au.com.royalpay.payment</groupId>
<artifactId>jd-core</artifactId>

@ -580,4 +580,21 @@ update log_clearing_detail set settle_bank='CBA';
ALTER TABLE `log_clearing`
ADD COLUMN `editable` tinyint(1) NULL DEFAULT 1 COMMENT '是否可编辑' AFTER `balance`;
ADD COLUMN `editable` tinyint(1) NULL DEFAULT 1 COMMENT '是否可编辑' AFTER `balance`;
CREATE TABLE `pre_apply_handle_log` (
`id` varchar(50) NOT NULL,
`client_pre_apply_id` int(11) NOT NULL,
`client_id` int(11) NOT NULL,
`auditor` varchar(30) NOT NULL,
`auditor_id` varchar(50) NOT NULL,
`remark` varchar(100) DEFAULT NULL,
`create_time` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `client_id` (`client_id`) USING BTREE,
KEY `client_pre_apply_id` (`client_pre_apply_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `sys_client_pre_apply`
ADD COLUMN `status` tinyint(2) NULL DEFAULT 0 COMMENT '0:未处理1处理中2处理完成';

@ -553,13 +553,11 @@ public class RetailAppServiceImp implements RetailAppService {
JSONObject result = PageListUtils.buildPageListResult(logs);
if (appQueryBean.getPage() == 1) {
if (!logs.isEmpty() && logs.size() > 0) {
JSONObject clearingDetail = clearingDetailMapper.findByDetailId(logs.get(0).getIntValue("clearing_order"));
if (clearingDetail!=null){
JSONObject clearingLog = clearingLogMapper.findById(clearingDetail.getIntValue("clearing_id"));
if(clearingLog.getBooleanValue("editable")){
JSONObject clearingLog = clearingLogMapper.findById(logs.get(0).getIntValue("clearing_id"));
if(clearingLog.getBoolean("editable")){
result.put("padding", true);
logs.get(0).put("padding",true);
}
}
}
}
return result;

@ -0,0 +1,34 @@
package au.com.royalpay.payment.manage.application.beans;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
/**
* Created by yuan on 2018/6/27.
*/
public class AddHandleLogDetail {
private String client_pre_apply_id;
private String remark;
public JSONObject insertObject() {
JSONObject res = (JSONObject) JSON.toJSON(this);
return res;
}
public String getClient_pre_apply_id() {
return client_pre_apply_id;
}
public void setClient_pre_apply_id(String client_pre_apply_id) {
this.client_pre_apply_id = client_pre_apply_id;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

@ -11,12 +11,16 @@ public class ClientApplyQueryBean {
private int page = 1;
private int limit = 10;
private String agree;
private String status;
public JSONObject insertObject() {
JSONObject params = new JSONObject();
if(StringUtils.isNotEmpty(agree)){
params.put("agree",agree);
}
if(StringUtils.isNotEmpty(status)){
params.put("status",status);
}
return params;
}
@ -43,4 +47,12 @@ public class ClientApplyQueryBean {
public void setAgree(String agree) {
this.agree = agree;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}

@ -0,0 +1,42 @@
package au.com.royalpay.payment.manage.application.beans;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
/**
* Created by yuan on 2018/6/27.
*/
public class HandleLogQuery {
private int page = 1;
private int limit = 10;
private String client_pre_apply_id;
public JSONObject insertObject() {
JSONObject res = (JSONObject) JSON.toJSON(this);
return res;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public String getClient_pre_apply_id() {
return client_pre_apply_id;
}
public void setClient_pre_apply_id(String client_pre_apply_id) {
this.client_pre_apply_id = client_pre_apply_id;
}
}

@ -1,6 +1,8 @@
package au.com.royalpay.payment.manage.application.core;
import au.com.royalpay.payment.manage.application.beans.AddHandleLogDetail;
import au.com.royalpay.payment.manage.application.beans.ClientApplyQueryBean;
import au.com.royalpay.payment.manage.application.beans.HandleLogQuery;
import com.alibaba.fastjson.JSONObject;
/**
@ -10,4 +12,10 @@ public interface SimpleClientApplyManageService {
JSONObject listsApplies(JSONObject manager,ClientApplyQueryBean clientApplyQueryBean);
JSONObject findOneApply(JSONObject manager,String client_pre_apply_id);
JSONObject listAllHandleLogs(JSONObject manager,HandleLogQuery handleLogQuery);
void addHandleLog(JSONObject manager,AddHandleLogDetail addHandleLogDetail);
void closeHandle(JSONObject manager,String client_pre_apply_id);
}

@ -1,9 +1,13 @@
package au.com.royalpay.payment.manage.application.core.impls;
import au.com.royalpay.payment.manage.application.beans.AddHandleLogDetail;
import au.com.royalpay.payment.manage.application.beans.ClientApplyQueryBean;
import au.com.royalpay.payment.manage.application.beans.HandleLogQuery;
import au.com.royalpay.payment.manage.application.core.SimpleClientApplyManageService;
import au.com.royalpay.payment.manage.mappers.preapply.PreApplyHandleLogMapper;
import au.com.royalpay.payment.manage.mappers.preapply.SysClientPreMapperMapper;
import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.exceptions.NotFoundException;
import au.com.royalpay.payment.tools.utils.PageListUtils;
import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.Order;
@ -12,6 +16,7 @@ import com.github.miemiedev.mybatis.paginator.domain.PageList;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
* Created by yuan on 2018/6/4.
@ -20,12 +25,16 @@ import javax.annotation.Resource;
public class SimpleClientApplyManageServiceImpl implements SimpleClientApplyManageService{
@Resource
private SysClientPreMapperMapper sysClientPreMapperMapper;
@Resource
private PreApplyHandleLogMapper preApplyHandleLogMapper;
@Override
public JSONObject listsApplies(JSONObject manager, ClientApplyQueryBean clientApplyQueryBean) {
if(manager == null){
throw new BadRequestException();
}
JSONObject params = clientApplyQueryBean.insertObject();
PageList<JSONObject> applies = sysClientPreMapperMapper.listApplies(params,
new PageBounds(clientApplyQueryBean.getPage(), clientApplyQueryBean.getLimit(), Order.formString("create_time.desc")));
return PageListUtils.buildPageListResult(applies);
@ -38,4 +47,55 @@ public class SimpleClientApplyManageServiceImpl implements SimpleClientApplyMan
}
return sysClientPreMapperMapper.findOneByClientPreApplyId(client_pre_apply_id);
}
@Override
public JSONObject listAllHandleLogs(JSONObject manager, HandleLogQuery handleLogQuery) {
if(manager == null){
throw new BadRequestException();
}
JSONObject params = handleLogQuery.insertObject();
PageList<JSONObject> allLogs = preApplyHandleLogMapper.listHandleLogs(params,new PageBounds(handleLogQuery.getPage(),handleLogQuery.getLimit(),Order.formString("create_time.desc")));
return PageListUtils.buildPageListResult(allLogs);
}
@Override
public void addHandleLog(JSONObject manager, AddHandleLogDetail addHandleLogDetail) {
if(manager == null){
throw new BadRequestException();
}
JSONObject apply = sysClientPreMapperMapper.findOneByClientPreApplyId(addHandleLogDetail.getClient_pre_apply_id());
if (apply == null) {
throw new NotFoundException("Apply Record Not Found Please Check");
}
JSONObject detail = addHandleLogDetail.insertObject();
detail.put("auditor", manager.getString("display_name"));
detail.put("client_id", apply.getIntValue("client_id"));
detail.put("auditor_id", manager.getString("manager_id"));
detail.put("create_time", new Date());
preApplyHandleLogMapper.save(detail);
apply.put("status",1);
sysClientPreMapperMapper.update(apply);
}
@Override
public void closeHandle(JSONObject manager, String client_pre_apply_id) {
JSONObject apply = sysClientPreMapperMapper.findOneByClientPreApplyId(client_pre_apply_id);
if (apply == null) {
throw new NotFoundException("Apply Record Not Found Please Check");
}
if (apply.getIntValue("status") == 2) {
throw new BadRequestException("The Record Has Been Handled");
}
JSONObject detail = new JSONObject();
detail.put("client_pre_apply_id", client_pre_apply_id);
detail.put("client_id", apply.getIntValue("client_id"));
detail.put("auditor", manager.getString("display_name"));
detail.put("auditor_id", manager.getString("manager_id"));
detail.put("remark", "结停");
detail.put("create_time", new Date());
preApplyHandleLogMapper.save(detail);
apply.put("status", 2);
sysClientPreMapperMapper.update(apply);
}
}

@ -1,6 +1,8 @@
package au.com.royalpay.payment.manage.application.web;
import au.com.royalpay.payment.manage.application.beans.AddHandleLogDetail;
import au.com.royalpay.payment.manage.application.beans.ClientApplyQueryBean;
import au.com.royalpay.payment.manage.application.beans.HandleLogQuery;
import au.com.royalpay.payment.manage.application.core.SimpleClientApplyManageService;
import au.com.royalpay.payment.manage.mappers.preapply.SysClientPreMapperMapper;
import au.com.royalpay.payment.manage.permission.manager.ManagerMapping;
@ -29,4 +31,19 @@ public class SimpleClientManageController {
public JSONObject findOneApply(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, @PathVariable String client_pre_apply_id){
return simpleClientApplyManageService.findOneApply(manager,client_pre_apply_id);
}
@ManagerMapping(value = "/log",method = RequestMethod.GET,role = {ManagerRole.ADMIN, ManagerRole.OPERATOR})
public JSONObject listAllHandleLog(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, HandleLogQuery handleLogQuery){
return simpleClientApplyManageService.listAllHandleLogs(manager,handleLogQuery);
}
@ManagerMapping(method = RequestMethod.PUT,role = {ManagerRole.ADMIN, ManagerRole.OPERATOR})
public void addHandleLog(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, @RequestBody AddHandleLogDetail addHandleLogDetail){
simpleClientApplyManageService.addHandleLog(manager,addHandleLogDetail);
}
@ManagerMapping(value = "/{client_pre_apply_id}",method = RequestMethod.PUT,role = {ManagerRole.ADMIN, ManagerRole.OPERATOR})
public void closeHandle(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager, @PathVariable String client_pre_apply_id){
simpleClientApplyManageService.closeHandle(manager,client_pre_apply_id);
}
}

@ -404,7 +404,7 @@ public class CleanServiceImpl implements CleanService, ManagerTodoNoticeProvider
if (settle.getBigDecimal("clearing_amount").compareTo(BigDecimal.ZERO) == 0) {
continue;
}
if (bank != null && Objects.equals(settle.getString("settle_bank"), bank)) {
if (bank != null && !Objects.equals(settle.getString("settle_bank"), bank)) {
continue;
}
Row row = sheet.createRow(rowNum++);

@ -0,0 +1,23 @@
package au.com.royalpay.payment.manage.mappers.preapply;
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;
@AutoMapper(tablename = "pre_apply_handle_log", pkName = "id")
public interface PreApplyHandleLogMapper {
@AutoSql(type = SqlType.UPDATE)
void update(JSONObject data);
@AutoSql(type = SqlType.INSERT)
void save(JSONObject data);
@AutoSql(type = SqlType.SELECT)
PageList<JSONObject> listHandleLogs(JSONObject params, PageBounds pagination);
}

@ -319,4 +319,5 @@ public interface ClientManager {
void removeSub(String client_moniker, JSONObject manager);
String getShortLink(String client_moniker);
}

@ -2658,6 +2658,8 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
JSONObject clearingLog = clearingLogMapper.findById(clearingDetail.getIntValue("clearing_id"));
if(clearingLog.getBooleanValue("editable")){
result.put("padding", true);
logs.get(0).put("padding",true);
logger.info("##editable"+clearingLog.getBooleanValue("editable"));
}
}
}
@ -3663,4 +3665,11 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
}
mailService.removeUnsub(sub.getLong("id"));
}
@Override
public String getShortLink(String client_moniker){
String longUrl = PlatformEnvironment.getEnv().concatUrl("/api/v1.0/hf_gateway/partners/"+client_moniker+"/jump");
MpWechatApi api = mpWechatApiProvider.getNewPaymentApi();
return api.registerShortUrl(longUrl);
}
}

@ -838,6 +838,8 @@ public class TradeLogServiceImpl implements TradeLogService {
JSONObject clearingLog = clearingLogMapper.findById(clearingDetail.getIntValue("clearing_id"));
if(clearingLog.getBooleanValue("editable")){
result.put("padding", true);
logs.get(0).put("padding",true);
logger.info("##editable"+clearingLog.getBooleanValue("editable"));
}
}
}

@ -68,7 +68,7 @@ app.cms.host=https://www.royalpay.com.au/
app.server.ip=127.0.0.1
app.redpack_auth.enable=false
hf.rsa-file=/opt/2000604000101.pfx
##积分商城
app.customer.host=https://customer.royalpay.com.au/
customer.app.appid=customer

@ -237,7 +237,7 @@ margin-bottom: 10%;"/>
<li ui-sref-active="active"
ng-if="('partnerapply'|withModule) && (currentUser.org_id==null||currentUser.org_id==1)">
<a ui-sref="partner_application" ui-sref-opts="{reload:true}">
<a ui-sref="partner_apply" ui-sref-opts="{reload:true}">
<i class="fa fa-envelope-o"></i> <span>自主申请|Partner Applies</span>
</a>
</li>
@ -268,11 +268,11 @@ margin-bottom: 10%;"/>
</a>
</li>
<li ui-sref-active="active" ng-if="'citypartner'|withModule">
<!-- <li ui-sref-active="active" ng-if="'citypartner'|withModule">
<a ui-sref="citypartner_reg" ui-sref-opts="{reload:true}">
<i class="fa fa-users"></i> <span>City Partners</span>
</a>
</li>
</li>-->
<li ui-sref-active="active" ng-if="'1000'|withRole">
<a ui-sref="invoice" ui-sref-opts="{reload:true}">

@ -249,6 +249,7 @@ define(['angular', 'decimal', 'uiBootstrap', 'uiRouter', 'angularEcharts'], func
$scope.noticeResend = false;
$scope.analysisFilter = {};
$scope.currentAnalysis = $scope.detail;
$scope.pageCtrl = {visible:{}};
function getAnalysisTemplate() {
return [

@ -70,7 +70,8 @@
<button class="btn btn-primary" ng-click="distributeBankDialog()">
Distribute Bank
</button>
<button class="btn btn-primary" ng-if="'undo_settle'|withFunc" ng-click="rollbackSettlement()">
<button class="btn btn-primary pull-right" ng-if="'undo_settle'|withFunc"
ng-click="rollbackSettlement()">
Undo Settlement
</button>
</div>
@ -137,22 +138,6 @@
</div>
</div>
<div class="row">
<div class="col-xs-12">
<ul class="list-group">
<li class="list-group-item"
ng-repeat="group in batchAnalysis[analysisFilter.clearing_id==null?'All':analysisFilter.clearing_id+'']">
<div class="row">
<span class="col-sm-2 col-xs-4 text-center">T+{{group.settleDays}}</span>
<span class="col-sm-10 col-xs-8 text-right">
Clients:{{group.clients}}, Amount:{{group.settleAmount|currency:''}}
</span>
</div>
</li>
</ul>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<ul class="list-group">
@ -170,16 +155,17 @@
</div>
</div>
<div class="box box-default"
<div class="box box-success settle-result-box"
ng-repeat="group in batchAnalysis[analysisFilter.clearing_id==null?'All':analysisFilter.clearing_id+'']">
<div class="box-header">T+{{group.settleDays}}: Clients:{{group.clients}}
<div class="box-header" ng-click="pageCtrl.visible[group.settleDays]=!pageCtrl.visible[group.settleDays]">
T+{{group.settleDays}}: Clients:{{group.clients}}
Amount:{{group.settleAmount|currency:''}}
<span class="pull-right">Click to hide</span>
</div>
<div class="box-body table-responsive">
<table class="table table-bordered table-striped table-hover">
<div class="box-body table-responsive" ng-hide="pageCtrl.visible[group.settleDays]">
<table class="table table-bordered table-striped table-hover settle-result-table">
<thead>
<tr>
<th>Source Bank</th>
<th>Client Moniker</th>
<th>Transaction Date</th>
<th>Gross Amount</th>
@ -193,8 +179,10 @@
</thead>
<tbody>
<tr ng-repeat="settleItem in group.settles">
<td ng-bind="settleItem.settle_bank"></td>
<td ng-bind="settleItem.client_moniker"></td>
<td>
<img ng-src="/static/images/bank/{{settleItem.settle_bank|uppercase}}.png" class="bank-logo" title="{{settleItem.settle_bank}}">
<span ng-bind="settleItem.client_moniker"></span>
</td>
<td>
{{settleItem.settle_date_from|limitTo:10}}
~

@ -5,7 +5,7 @@ define(['angular'], function (angular) {
'use strict';
var app = angular.module('citypartner', ['ui.router']);
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('citypartner_reg', {
$stateProvider.state('partner_apply.citypartner_reg', {
url: '/citypartner_registries',
templateUrl: '/static/citypartner/templates/citypartner_registers.html',
controller: 'citypartnerRegisterListCtrl'

@ -549,21 +549,21 @@
position: relative;
}
.active-rate-view:after{
content:'';
clear:both;
display:block;
.active-rate-view:after {
content: '';
clear: both;
display: block;
}
.active-rate-view .client-names {
width:100px;
width: 100px;
overflow-x: hidden;
float: left;
border-right: 2px solid #bbb;
display: block;
}
.active-rate-view .client-name{
.active-rate-view .client-name {
width: 100%;
text-align: left;
font-weight: bold;
@ -571,245 +571,244 @@
border-bottom: 1px solid #bbb;
}
.active-rate-view .client-row{
.active-rate-view .client-row {
height: 30px;
line-height: 30px;
white-space: nowrap;
}
.active-rate-view .analysis-box{
.active-rate-view .analysis-box {
overflow-x: auto;
display: block;
float: left;
padding-bottom: 5px;
}
.active-rate-view .analysis-item{
.active-rate-view .analysis-item {
width: 35px;
height: 100%;
display: inline-block;
text-align:center;
line-height:30px;
text-align: center;
line-height: 30px;
overflow: hidden;
border-right:1px solid #bbb;
border-bottom:1px solid #bbb;
border-right: 1px solid #bbb;
border-bottom: 1px solid #bbb;
}
.selectRow,.table-striped>tbody>tr.selectRow:nth-of-type(odd){
.selectRow, .table-striped > tbody > tr.selectRow:nth-of-type(odd) {
background-color: #E0EEE0;
}
.fountainGBox{
position:relative;
width:108px;
height:13px;
.fountainGBox {
position: relative;
width: 108px;
height: 13px;
margin: auto auto 20px;
}
.fountainG{
position:absolute;
top:0;
background-color:rgb(0,0,0);
width:13px;
height:13px;
animation-name:bounce_fountainG;
-o-animation-name:bounce_fountainG;
-ms-animation-name:bounce_fountainG;
-webkit-animation-name:bounce_fountainG;
-moz-animation-name:bounce_fountainG;
animation-duration:1.5s;
-o-animation-duration:1.5s;
-ms-animation-duration:1.5s;
-webkit-animation-duration:1.5s;
-moz-animation-duration:1.5s;
animation-iteration-count:infinite;
-o-animation-iteration-count:infinite;
-ms-animation-iteration-count:infinite;
-webkit-animation-iteration-count:infinite;
-moz-animation-iteration-count:infinite;
animation-direction:normal;
-o-animation-direction:normal;
-ms-animation-direction:normal;
-webkit-animation-direction:normal;
-moz-animation-direction:normal;
transform:scale(.3);
-o-transform:scale(.3);
-ms-transform:scale(.3);
-webkit-transform:scale(.3);
-moz-transform:scale(.3);
border-radius:9px;
-o-border-radius:9px;
-ms-border-radius:9px;
-webkit-border-radius:9px;
-moz-border-radius:9px;
}
.fountainG.fountainG_1{
left:0;
animation-delay:0.6s;
-o-animation-delay:0.6s;
-ms-animation-delay:0.6s;
-webkit-animation-delay:0.6s;
-moz-animation-delay:0.6s;
}
.fountainG.fountainG_2{
left:13px;
animation-delay:0.75s;
-o-animation-delay:0.75s;
-ms-animation-delay:0.75s;
-webkit-animation-delay:0.75s;
-moz-animation-delay:0.75s;
}
.fountainG.fountainG_3{
left:27px;
animation-delay:0.9s;
-o-animation-delay:0.9s;
-ms-animation-delay:0.9s;
-webkit-animation-delay:0.9s;
-moz-animation-delay:0.9s;
}
.fountainG.fountainG_4{
left:40px;
animation-delay:1.05s;
-o-animation-delay:1.05s;
-ms-animation-delay:1.05s;
-webkit-animation-delay:1.05s;
-moz-animation-delay:1.05s;
}
.fountainG.fountainG_5{
left:54px;
animation-delay:1.2s;
-o-animation-delay:1.2s;
-ms-animation-delay:1.2s;
-webkit-animation-delay:1.2s;
-moz-animation-delay:1.2s;
}
.fountainG.fountainG_6{
left:67px;
animation-delay:1.35s;
-o-animation-delay:1.35s;
-ms-animation-delay:1.35s;
-webkit-animation-delay:1.35s;
-moz-animation-delay:1.35s;
}
.fountainG.fountainG_7{
left:81px;
animation-delay:1.5s;
-o-animation-delay:1.5s;
-ms-animation-delay:1.5s;
-webkit-animation-delay:1.5s;
-moz-animation-delay:1.5s;
}
.fountainG.fountainG_8{
left:94px;
animation-delay:1.64s;
-o-animation-delay:1.64s;
-ms-animation-delay:1.64s;
-webkit-animation-delay:1.64s;
-moz-animation-delay:1.64s;
}
@keyframes bounce_fountainG{
0%{
transform:scale(1);
background-color:rgb(0,0,0);
.fountainG {
position: absolute;
top: 0;
background-color: rgb(0, 0, 0);
width: 13px;
height: 13px;
animation-name: bounce_fountainG;
-o-animation-name: bounce_fountainG;
-ms-animation-name: bounce_fountainG;
-webkit-animation-name: bounce_fountainG;
-moz-animation-name: bounce_fountainG;
animation-duration: 1.5s;
-o-animation-duration: 1.5s;
-ms-animation-duration: 1.5s;
-webkit-animation-duration: 1.5s;
-moz-animation-duration: 1.5s;
animation-iteration-count: infinite;
-o-animation-iteration-count: infinite;
-ms-animation-iteration-count: infinite;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
animation-direction: normal;
-o-animation-direction: normal;
-ms-animation-direction: normal;
-webkit-animation-direction: normal;
-moz-animation-direction: normal;
transform: scale(.3);
-o-transform: scale(.3);
-ms-transform: scale(.3);
-webkit-transform: scale(.3);
-moz-transform: scale(.3);
border-radius: 9px;
-o-border-radius: 9px;
-ms-border-radius: 9px;
-webkit-border-radius: 9px;
-moz-border-radius: 9px;
}
.fountainG.fountainG_1 {
left: 0;
animation-delay: 0.6s;
-o-animation-delay: 0.6s;
-ms-animation-delay: 0.6s;
-webkit-animation-delay: 0.6s;
-moz-animation-delay: 0.6s;
}
.fountainG.fountainG_2 {
left: 13px;
animation-delay: 0.75s;
-o-animation-delay: 0.75s;
-ms-animation-delay: 0.75s;
-webkit-animation-delay: 0.75s;
-moz-animation-delay: 0.75s;
}
.fountainG.fountainG_3 {
left: 27px;
animation-delay: 0.9s;
-o-animation-delay: 0.9s;
-ms-animation-delay: 0.9s;
-webkit-animation-delay: 0.9s;
-moz-animation-delay: 0.9s;
}
.fountainG.fountainG_4 {
left: 40px;
animation-delay: 1.05s;
-o-animation-delay: 1.05s;
-ms-animation-delay: 1.05s;
-webkit-animation-delay: 1.05s;
-moz-animation-delay: 1.05s;
}
.fountainG.fountainG_5 {
left: 54px;
animation-delay: 1.2s;
-o-animation-delay: 1.2s;
-ms-animation-delay: 1.2s;
-webkit-animation-delay: 1.2s;
-moz-animation-delay: 1.2s;
}
.fountainG.fountainG_6 {
left: 67px;
animation-delay: 1.35s;
-o-animation-delay: 1.35s;
-ms-animation-delay: 1.35s;
-webkit-animation-delay: 1.35s;
-moz-animation-delay: 1.35s;
}
.fountainG.fountainG_7 {
left: 81px;
animation-delay: 1.5s;
-o-animation-delay: 1.5s;
-ms-animation-delay: 1.5s;
-webkit-animation-delay: 1.5s;
-moz-animation-delay: 1.5s;
}
.fountainG.fountainG_8 {
left: 94px;
animation-delay: 1.64s;
-o-animation-delay: 1.64s;
-ms-animation-delay: 1.64s;
-webkit-animation-delay: 1.64s;
-moz-animation-delay: 1.64s;
}
@keyframes bounce_fountainG {
0% {
transform: scale(1);
background-color: rgb(0, 0, 0);
}
100%{
transform:scale(.3);
background-color:rgb(255,255,255);
100% {
transform: scale(.3);
background-color: rgb(255, 255, 255);
}
}
@-o-keyframes bounce_fountainG{
0%{
-o-transform:scale(1);
background-color:rgb(0,0,0);
@-o-keyframes bounce_fountainG {
0% {
-o-transform: scale(1);
background-color: rgb(0, 0, 0);
}
100%{
-o-transform:scale(.3);
background-color:rgb(255,255,255);
100% {
-o-transform: scale(.3);
background-color: rgb(255, 255, 255);
}
}
@-ms-keyframes bounce_fountainG{
0%{
-ms-transform:scale(1);
background-color:rgb(0,0,0);
@-ms-keyframes bounce_fountainG {
0% {
-ms-transform: scale(1);
background-color: rgb(0, 0, 0);
}
100%{
-ms-transform:scale(.3);
background-color:rgb(255,255,255);
100% {
-ms-transform: scale(.3);
background-color: rgb(255, 255, 255);
}
}
@-webkit-keyframes bounce_fountainG{
0%{
-webkit-transform:scale(1);
background-color:rgb(0,0,0);
@-webkit-keyframes bounce_fountainG {
0% {
-webkit-transform: scale(1);
background-color: rgb(0, 0, 0);
}
100%{
-webkit-transform:scale(.3);
background-color:rgb(255,255,255);
100% {
-webkit-transform: scale(.3);
background-color: rgb(255, 255, 255);
}
}
@-moz-keyframes bounce_fountainG{
0%{
-moz-transform:scale(1);
background-color:rgb(0,0,0);
@-moz-keyframes bounce_fountainG {
0% {
-moz-transform: scale(1);
background-color: rgb(0, 0, 0);
}
100%{
-moz-transform:scale(.3);
background-color:rgb(255,255,255);
100% {
-moz-transform: scale(.3);
background-color: rgb(255, 255, 255);
}
}
.analysis-nav ul li{
.analysis-nav ul li {
margin-right: 10px;
margin-bottom: 10px;
background-color: white;
}
.analysis-nav .nav-pills li a:hover,.analysis-nav .nav-pills li a:focus,.analysis-nav .nav-pills li.active a{
.analysis-nav .nav-pills li a:hover, .analysis-nav .nav-pills li a:focus, .analysis-nav .nav-pills li.active a {
background-color: #f06101;
border-top-color:#f06101;
border-top-color: #f06101;
}
.channel-icon{
.channel-icon {
width: 16px;
height: 16px;
}
.channel-icon-lg{
.channel-icon-lg {
width: 48px;
height: 48px;
}
.settle-forecast .rc-box .week .day{
height:120px;
.settle-forecast .rc-box .week .day {
height: 120px;
}
.dashboard-page .tooltip .tooltip-inner{
.dashboard-page .tooltip .tooltip-inner {
max-width: 600px;
text-align: center;
}
.partner-settlement_page .tooltip .tooltip-inner{
max-width: 600px;
}
.partner-settlement_page .tooltip .tooltip-inner {
max-width: 600px;
}
.partner_list_style {
position: relative;
@ -824,8 +823,17 @@
color: #ffffff;
}
.check-i{
.check-i {
color: #00a65a;
float: right;
margin-top: 8px;
}
.settle-result-box .box-header {
cursor: pointer;
}
.settle-result-box .settle-result-table .bank-logo {
width: 24px;
vertical-align: middle;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -2,12 +2,15 @@ define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootS
'use strict';
var app = angular.module('partnerApplyApp', ['ui.bootstrap', 'ui.router', 'frapontillo.bootstrap-switch', 'ngFileUpload', 'ui.select']);
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('partner_application', {
url: '/partner/applications',
templateUrl: '/static/payment/partner/templates/partners_applications.html',
controller: 'partnerApplicationListCtrl',
data: {label: '商户申请列表'}
}).state('detail', {
$stateProvider.state('partner_apply', {
url: '/partner/apply',
templateUrl: '/static/payment/partner/templates/partners_apply.html',
controller: 'partnerApplyCtrl'
}).state('partner_apply.partner_application', {
url: '/application',
templateUrl: '/static/payment/partner/templates/partner_application.html',
controller: 'partnerApplicationListCtrl'
}).state('partner_apply.detail', {
url: '/{client_apply_id}/detail',
templateUrl: '/static/payment/partner/templates/partner_application_detail.html',
controller: 'partnerApplicationDetailCtrl',
@ -16,22 +19,13 @@ define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootS
return $http.get('/partners/application/' + $stateParams.client_apply_id);
}]
}
}).state('partner_application.simple_application', {
url: '/simple/applications',
templateUrl: '/static/payment/partner/templates/simple_applications.html',
controller: 'simpleApplicationListCtrl',
data: {label: '商户自主申请列表'}
}).state('apply_detail', {
url: '/{client_pre_apply_id}/simple/detail',
templateUrl: '/static/payment/partner/templates/simple_application_detail.html',
controller: 'simpleApplicationDetailCtrl',
resolve: {
apply: ['$http', '$stateParams', function ($http, $stateParams) {
return $http.get('/register/manage/getOne/' + $stateParams.client_pre_apply_id);
}]
}
})
}]);
app.controller('partnerApplyCtrl', ['$rootScope','$state', function ($rootScope,$state) {
if ($state.is('partner_apply')){
$state.go('.partner_application');
}
}]);
app.controller('partnerApplicationListCtrl', ['$scope', '$state', '$http', '$uibModal', 'commonDialog', 'industryMap', 'stateMap','countryMap',
function ($scope, $state, $http, $uibModal, commonDialog, industryMap, stateMap,countryMap) {
$scope.pagination = {};
@ -213,27 +207,6 @@ define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootS
}]);
app.controller('simpleApplicationListCtrl', ['$scope', '$state', '$http', '$uibModal', 'commonDialog', 'industryMap', 'stateMap','countryMap',
function ($scope, $state, $http, $uibModal, commonDialog) {
$scope.pagination = {};
$scope.params = {};
$scope.loadSimpleApplies = function (page) {
var params = angular.copy($scope.params);
params.page = page || $scope.pagination.page || 1;
$http.get('/register/manage', {params: params}).then(function (resp) {
$scope.applies = resp.data.data;
$scope.pagination = resp.data.pagination;
});
};
$scope.loadSimpleApplies(1);
}]);
app.controller('simpleApplicationDetailCtrl', [ '$scope', '$http', '$state', '$uibModal', 'commonDialog','apply', function ($scope, $http, $state, $uibModal, commonDialog,apply) {
$scope.partner = apply.data;
}]);
app.filter('cut', function () {
return function (value, wordwise, max, tail) {
if (!value) return '';

@ -0,0 +1,134 @@
define(['angular', 'static/commons/commons', 'uiBootstrap', 'uiRouter', 'ngBootSwitch', 'ngFileUpload', 'uiSelect'], function (angular) {
'use strict';
var app = angular.module('simpleApplyApp', ['ui.bootstrap', 'ui.router', 'frapontillo.bootstrap-switch', 'ngFileUpload', 'ui.select']);
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider.state('partner_apply.simple_application', {
url: '/simple/applications',
templateUrl: '/static/payment/partner/templates/simple_applications.html',
controller: 'simpleApplicationListCtrl',
data: {label: '商户自主申请列表'}
}).state('partner_apply.apply_detail', {
url: '/{client_pre_apply_id}/detail',
templateUrl: '/static/payment/partner/templates/simple_application_detail.html',
controller: 'simpleApplicationDetailCtrl',
resolve: {
client_pre_apply_id: ['$stateParams', function ($stateParams) {
return $stateParams.client_pre_apply_id;
}],
index: ['$stateParams', function ($stateParams) {
return 0;
}]
}
}).state('partner_apply.handle_detail', {
url: '/{client_pre_apply_id}/handle',
templateUrl: '/static/payment/partner/templates/simple_application_detail.html',
controller: 'simpleApplicationDetailCtrl',
resolve: {
client_pre_apply_id: ['$stateParams', function ($stateParams) {
return $stateParams.client_pre_apply_id;
}],
index: ['$stateParams', function ($stateParams) {
return 1;
}]
}
})
}]);
app.controller('simpleApplicationListCtrl', ['$scope', '$state', '$http', '$uibModal', 'commonDialog', 'industryMap', 'stateMap','countryMap',
function ($scope, $state, $http, $uibModal, commonDialog) {
$scope.pagination = {};
$scope.params = {};
$scope.removeStatus = function () {
if($scope.params.status){
delete $scope.params.status;
}
};
$scope.loadSimpleApplies = function (page) {
var params = angular.copy($scope.params);
params.page = page || $scope.pagination.page || 1;
$http.get('/register/manage', {params: params}).then(function (resp) {
$scope.applies = resp.data.data;
$scope.pagination = resp.data.pagination;
});
};
$scope.loadSimpleApplies(1);
}]);
app.controller('simpleApplicationDetailCtrl', [ '$scope', '$http', '$state', '$uibModal', 'commonDialog','client_pre_apply_id','index', function ($scope, $http, $state, $uibModal, commonDialog,client_pre_apply_id,index) {
$scope.pagination = {};
$scope.index = index;
$scope.params = {client_pre_apply_id:client_pre_apply_id};
$scope.loadDetail = function () {
$http.get('/register/manage/getOne/' + client_pre_apply_id).then(function (resp) {
$scope.partner = resp.data;
});
};
$scope.loadHandleLogs = function (page) {
var params = angular.copy($scope.params);
params.page = page || $scope.pagination.page || 1;
$http.get('/register/manage/log',{params:params}).then(function (resp) {
$scope.handleLogs = resp.data.data;
$scope.pagination = resp.data.pagination
});
};
$scope.loadDetail(1);
$scope.loadHandleLogs();
$scope.addHandleLog = function () {
$uibModal.open({
templateUrl: '/static/payment/partner/templates/add_handle_log.html',
controller: 'addHandleDetailCtrl',
resolve:{
client_pre_apply_id:function () {
return $scope.partner.client_pre_apply_id;
}}
}).result.then(function () {
$scope.loadHandleLogs(1);
commonDialog.alert({title: 'Success', type: 'success'});
})
};
$scope.closeHandleLog = function () {
commonDialog.confirm({title: 'Confirm', content: '确定此次处理已结束?'
}).then(function () {
$http.put('/register/manage/'+ client_pre_apply_id).then(function (resp) {
commonDialog.alert({title: 'Success', type: 'Success'});
$scope.loadHandleLogs(1);
},function (resp) {
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'});
})
})
}
}]);
app.controller('addHandleDetailCtrl', [ '$scope', '$http', '$state', 'client_pre_apply_id', 'commonDialog',function ($scope, $http, $state, client_pre_apply_id, commonDialog) {
$scope.handleDetail = {client_pre_apply_id:client_pre_apply_id};
$scope.addHandleLog = function () {
$http.put('/register/manage', $scope.handleDetail).then(function (resp) {
$scope.$close();
},function (resp) {
});
}
}]);
app.filter('cut', function () {
return function (value, wordwise, max, tail) {
if (!value) return '';
max = parseInt(max, 10);
if (!max) return value;
if (value.length <= max) return value;
value = value.substr(0, max);
if (wordwise) {
var lastspace = value.lastIndexOf(' ');
if (lastspace != -1) {
value = value.substr(0, lastspace);
}
}
return value + (tail || ' …');
};
});
return app;
});

@ -0,0 +1,25 @@
<section class="content-header">
<h1>Handle Detail</h1>
</section>
<div class="content">
<div class="row">
<div class="col-sm-12">
<div class="box-solid">
<div class="box box-warning">
<div class="box-header">
<form role="form" style="margin:0px auto;width: 50%">
<div class="form-group">
<label>Detail</label>
<input ng-model="handleDetail.remark" name="code" class="form-control" type="text"/>
</div>
<div class="form-group">
<button class="btn btn-primary btn-block" ng-click="addHandleLog()">commit</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>

@ -0,0 +1,106 @@
<div class="content">
<div class="row">
<div class="col-sm-12">
<div class="box-solid">
<div class="box box-warning">
<div class="box-header">
<div class="form-inline">
<div class="form-group">
<label class="control-label" for="short-name-search">Company Name</label>
<input type="text" class="form-control" id="short-name-search"
ng-model="params.short_name">
</div>
<div class="form-group">
<button class="btn btn-primary" type="button" ng-click="loadPartners(1)"><i
class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<div class="box">
<div class="box-header">
<h3 class="box-title">Application List</h3>
</div>
<div class="box-body no-padding table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Application Time</th>
<th>Company Name</th>
<!--<th>ABN/ACN</th>-->
<!--<th>Industry</th>-->
<th>Suburb</th>
<th>Source</th>
<th>Approve Status</th>
<th>Partner Code</th>
<th>Progress</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="partner in partners">
<td ng-bind="partner.create_time"></td>
<td ng-bind="partner.short_name"></td>
<!--<td ng-bind="partner.abn"></td>-->
<!--<td ng-bind="partner.industry"></td>-->
<td ng-bind="partner.suburb"></td>
<td>
<span ng-if="partner.source==0">PC</span>
<span ng-if="partner.source==1">公众号菜单</span>
<span ng-if="partner.source==2">公众号推送</span>
<span ng-if="partner.source==3">小程序申请</span>
<span ng-if="partner.source==4">App申请</span>
</td>
<td>
<span ng-if="partner.apply_approve_result==0||partner.apply_approve_result==null">Waiting Approving</span>
<span ng-if="partner.apply_approve_result==1" style="color: blue"> BD Approaching ({{partner.bd_user_name}})</span>
<span ng-if="partner.apply_approve_result==2" style="color: green">Pass ({{partner.bd_user_name}} {{partner.apply_approve_time}})</span>
<span ng-if="partner.apply_approve_result==3||partner.apply_approve_result==4" style="color: red">Not Pass</span>
</td>
<td title="{{partner.client_moniker}}"><a class="text-primary" role="button" title="Detail"
ui-sref="partners.detail({clientMoniker:partner.client_moniker})">
{{partner.client_moniker}}
</a></td>
<td ng-bind="partner.remark|limitTo:10" title="{{partner.remark}}"></td>
<td>
<a class="text-primary" role="button" title="Link" ng-if="partner.apply_approve_result==1" ng-click="linkButton(partner)">
<i class="fa fa-cog"></i> Link
</a>
<a class="text-primary" role="button" title="Detail"
ui-sref="partner_apply.detail({client_apply_id:partner.client_apply_id})">
<i class="fa fa-search"></i> Detail
</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="box-footer" ng-if="partners.length">
<uib-pagination class="pagination"
total-items="pagination.totalCount"
boundary-links="true"
ng-model="pagination.page"
items-per-page="pagination.limit"
max-size="10"
ng-change="loadPartners()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="row">
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total Pages:{{pagination.totalPages}}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

@ -2,13 +2,6 @@
<h1>
<span ng-bind="partner.company_name"></span>
</h1>
<ol class="breadcrumb">
<li>
<i class="fa fa-sitemap"></i> Notice
</li>
<li><a ui-sref="partner_application">Partner Application</a></li>
<li class="active">Partner Detail</li>
</ol>
</section>
<div class="content">

@ -1,133 +0,0 @@
<section class="content-header">
<h1>Partner Application</h1>
<ol class="breadcrumb">
<li>
<i class="fa fa-sitemap"></i> Payment
</li>
<li class="active">Partner Applications</li>
</ol>
</section>
<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_application">Partner Application</a>
</li>
<li ui-sref-active="active" ng-if="('10'|withRole) || ('1'|withRole)">
<a ui-sref="partner_application.simple_application">Application & Open</a>
</li>
</ul>
<div class="tab-content" ui-view>
<div class="row">
<div class="col-sm-12">
<div class="box-solid">
<div class="box box-warning">
<div class="box-header">
<div class="form-inline">
<div class="form-group">
<label class="control-label" for="short-name-search">Company Name</label>
<input type="text" class="form-control" id="short-name-search"
ng-model="params.short_name">
</div>
<div class="form-group">
<button class="btn btn-primary" type="button" ng-click="loadPartners(1)"><i
class="fa fa-search"></i></button>
</div>
</div>
</div>
</div>
<div class="box">
<div class="box-header">
<h3 class="box-title">Application List</h3>
</div>
<div class="box-body no-padding table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th>Application Time</th>
<th>Company Name</th>
<!--<th>ABN/ACN</th>-->
<!--<th>Industry</th>-->
<th>Suburb</th>
<th>Source</th>
<th>Approve Status</th>
<th>Partner Code</th>
<th>Progress</th>
<th>Operation</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="partner in partners">
<td ng-bind="partner.create_time"></td>
<td ng-bind="partner.short_name"></td>
<!--<td ng-bind="partner.abn"></td>-->
<!--<td ng-bind="partner.industry"></td>-->
<td ng-bind="partner.suburb"></td>
<td>
<span ng-if="partner.source==0">PC</span>
<span ng-if="partner.source==1">公众号菜单</span>
<span ng-if="partner.source==2">公众号推送</span>
<span ng-if="partner.source==3">小程序申请</span>
<span ng-if="partner.source==4">App申请</span>
</td>
<td>
<span ng-if="partner.apply_approve_result==0||partner.apply_approve_result==null">Waiting Approving</span>
<span ng-if="partner.apply_approve_result==1" style="color: blue"> BD Approaching ({{partner.bd_user_name}})</span>
<span ng-if="partner.apply_approve_result==2" style="color: green">Pass ({{partner.bd_user_name}} {{partner.apply_approve_time}})</span>
<span ng-if="partner.apply_approve_result==3||partner.apply_approve_result==4" style="color: red">Not Pass</span>
</td>
<td title="{{partner.client_moniker}}"><a class="text-primary" role="button" title="Detail"
ui-sref="partners.detail({clientMoniker:partner.client_moniker})">
{{partner.client_moniker}}
</a></td>
<td ng-bind="partner.remark|limitTo:10" title="{{partner.remark}}"></td>
<td>
<a class="text-primary" role="button" title="Link" ng-if="partner.apply_approve_result==1" ng-click="linkButton(partner)">
<i class="fa fa-cog"></i> Link
</a>
<a class="text-primary" role="button" title="Detail"
ui-sref="detail({client_apply_id:partner.client_apply_id})">
<i class="fa fa-search"></i> Detail
</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="box-footer" ng-if="partners.length">
<uib-pagination class="pagination"
total-items="pagination.totalCount"
boundary-links="true"
ng-model="pagination.page"
items-per-page="pagination.limit"
max-size="10"
ng-change="loadPartners()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
<div class="row">
<div class="col-xs-12">Total Records:{{pagination.totalCount}};Total Pages:{{pagination.totalPages}}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

@ -0,0 +1,41 @@
<section class="content-header">
<h1>Partner Application</h1>
<ol class="breadcrumb">
<li>
<i class="fa fa-sitemap"></i> Payment
</li>
<li class="active">Partner Applications</li>
</ol>
</section>
<div class="content">
<div class="row">
<div class="col-sm-12 analysis-nav">
<ul class="nav nav-pills">
<li ui-sref-active-eq="active" ng-if="'partnerapply'|withModule">
<a ui-sref="partner_apply.partner_application"><span>Partner Application</span></a>
</li>
<li ui-sref-active="active" ng-if="'simpleApplyApp'|withModule">
<a ui-sref="partner_apply.simple_application"> <span>Application & Open</span></a>
</li>
<li ui-sref-active-eq="active" ng-if="'citypartner'|withModule">
<a ui-sref="partner_apply.citypartner_reg"><i class="fa fa-tv"></i> <span>City Partners</span></a>
</li>
</ul>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="nav-tabs-custom">
<div class="tab-content" ui-view>
</div>
</div>
</div>
</div>
</div>

@ -3,17 +3,286 @@
<span ng-if="partner.company_name" ng-bind="partner.company_name"></span>
<span ng-if="!partner.company_name">暂无</span>
</h1>
<ol class="breadcrumb">
<li>
<i class="fa fa-sitemap"></i> Notice
</li>
<li><a ui-sref="partner_application.simple_application">Application & Open</a></li>
<li class="active">Apply Detail</li>
</ol>
</section>
<div class="content">
<div class="row">
<div class="box box-warning">
<div class="box-body">
<uib-tabset active="index">
<uib-tab heading="Detail">
<div class="tab-content margin-top">
<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>
</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>
</uib-tab>
<uib-tab heading="Handle">
<div class="tab-content margin-top">
<div class="box-header" style="text-align: right;">
<button type="button" class="btn btn-info" ng-click="addHandleLog()">Handle</button>
<button type="button" class="btn btn-info" ng-click="closeHandleLog()">Close Risk</button>
</div>
<div class="box-body table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Handle Time</th>
<th>Operator</th>
<th>Detail</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="log in handleLogs">
<td>{{log.create_time}}</td>
<td>{{log.auditor}}</td>
<td>{{log.remark}}</td>
</tr>
</tbody>
</table>
<div class="modal-footer">
<uib-pagination ng-if="log.length"
class="pagination"
total-items="pagination.totalCount"
boundary-links="true"
ng-model="pagination.page"
items-per-page="pagination.limit"
max-size="10"
ng-change="loadHandleLogs()"
previous-text="&lsaquo;"
next-text="&rsaquo;"
first-text="&laquo;"
last-text="&raquo;"></uib-pagination>
</div>
</div>
</div>
</div>
</uib-tab>
</uib-tabset>
</div>
</div>
<!-- <div class="row">
<div class="col-sm-12">
<div class="nav-tabs-custom">
<div class="tab-content" ui-view>
@ -44,15 +313,15 @@
</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">-->
&lt;!&ndash;<div uib-dropdown ng-if="partner.apply_approve_result==0 && ('10'|withRole)" class="btn-group pull-right">&ndash;&gt;
<!--<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>-->
&lt;!&ndash;<button id="single-button" type="button" class="btn btn-success" uib-dropdown-toggle ng-disabled="disabled">&ndash;&gt;
&lt;!&ndash;Choose BD To Follow Up <span class="caret"></span>&ndash;&gt;
&lt;!&ndash;</button>&ndash;&gt;
&lt;!&ndash;<ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="single-button">&ndash;&gt;
&lt;!&ndash;<li ng-repeat="bd in bds"><a ng-click="chooseBD(bd)">{{bd.display_name}}</a></li>&ndash;&gt;
&lt;!&ndash;</ul>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
<div class="form-group">
<a role="button" class="btn btn-danger" ng-click="refuse()">
Refuse
@ -105,20 +374,20 @@
<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>-->
&lt;!&ndash;<div class="form-group">&ndash;&gt;
&lt;!&ndash;<label class="control-label col-sm-2">Industry</label>&ndash;&gt;
<!--<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>-->
&lt;!&ndash;<div class="col-sm-10">&ndash;&gt;
&lt;!&ndash;<p class="form-control-static" ng-bind="partner.industry|partner_industry"></p>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
&lt;!&ndash;<div class="form-group" ng-if="partner.company_email">&ndash;&gt;
&lt;!&ndash;<label class="control-label col-sm-2">Email Address</label>&ndash;&gt;
<!--<div class="col-sm-10">-->
<!--<p class="form-control-static" target="_blank" ng-bind="partner.company_email"></p>-->
<!--</div>-->
<!--</div>-->
&lt;!&ndash;<div class="col-sm-10">&ndash;&gt;
&lt;!&ndash;<p class="form-control-static" target="_blank" ng-bind="partner.company_email"></p>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
<div class="form-group" ng-if="partner.company_website">
<label class="control-label col-sm-2">Website</label>
@ -134,20 +403,20 @@
<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>-->
&lt;!&ndash;<div class="form-group col-sm-6">&ndash;&gt;
&lt;!&ndash;<label class="control-label col-sm-4">Mobile Number (China)</label>&ndash;&gt;
<!--<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>-->
&lt;!&ndash;<div class="col-sm-8">&ndash;&gt;
&lt;!&ndash;<p class="form-control-static" ng-bind="partner.mobile_chn||'-'"></p>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
&lt;!&ndash;<div class="form-group col-sm-6">&ndash;&gt;
&lt;!&ndash;<label class="control-label col-sm-4">Mobile Number (Aus)</label>&ndash;&gt;
<!--<div class="col-sm-8">-->
<!--<p class="form-control-static" ng-bind="partner.mobile_aus||'-'"></p>-->
<!--</div>-->
<!--</div>-->
&lt;!&ndash;<div class="col-sm-8">&ndash;&gt;
&lt;!&ndash;<p class="form-control-static" ng-bind="partner.mobile_aus||'-'"></p>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
<div class="form-group col-sm-12">
<label class="control-label col-sm-2">Address</label>
@ -186,7 +455,7 @@
</div>
</div>
</div>
<!--end 商户基本资料-->
&lt;!&ndash;end 商户基本资料&ndash;&gt;
<div class="panel panel-default">
<div class="panel-heading">Contact Information</div>
<div class="panel-body">
@ -198,13 +467,13 @@
<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>-->
&lt;!&ndash;<div class="form-group col-sm-6">&ndash;&gt;
&lt;!&ndash;<label class="control-label col-sm-4">Job Title</label>&ndash;&gt;
<!--<div class="col-sm-8">-->
<!--<p class="form-control-static" ng-bind="partner.contact_person_job"></p>-->
<!--</div>-->
<!--</div>-->
&lt;!&ndash;<div class="col-sm-8">&ndash;&gt;
&lt;!&ndash;<p class="form-control-static" ng-bind="partner.contact_person_job"></p>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
&lt;!&ndash;</div>&ndash;&gt;
<div class="form-group col-sm-6">
<label class="control-label col-sm-4">Telephone No.</label>
@ -222,7 +491,7 @@
</div>
</div>
</div>
<!--end 商户联系资料-->
&lt;!&ndash;end 商户联系资料&ndash;&gt;
<div class="panel panel-default" ng-if="partner.apply_approve_result>0">
<div class="panel-heading">Approaching Progress </div>
<div class="panel-body">
@ -245,5 +514,5 @@
</div>
</div>
</div>
</div>-->
</div>

@ -7,14 +7,25 @@
<div class="form-inline">
<div>
<label class="radio-inline">
<input type="radio" name="optionsRadiosinline" id="optionsRadios2" value="" ng-model="params.agree" ng-click="loadSimpleApplies()" ng-checked="true"> ALL
<input type="radio" name="optionsRadiosinline" id="optionsRadios2" value="" ng-model="params.agree" ng-click="removeStatus();loadSimpleApplies()" ng-checked="true"> ALL
</label>
<label class="radio-inline">
<input type="radio" name="optionsRadiosinline" id="optionsRadios3" value="0" ng-model="params.agree" ng-click="loadSimpleApplies()"> 申请中
<input type="radio" name="optionsRadiosinline" id="optionsRadios3" value="0" ng-model="params.agree" ng-click="removeStatus();loadSimpleApplies();"> 申请失败
</label>
<label class="radio-inline">
<input type="radio" name="optionsRadiosinline" id="optionsRadios4" value="1" ng-model="params.agree" ng-click="loadSimpleApplies()"> 已申请
</label>
<input type="radio" name="optionsRadiosinline" id="optionsRadios4" value="1" ng-model="params.agree" ng-click="removeStatus();loadSimpleApplies()"> 已申请
</label>&nbsp;&nbsp;
<span ng-if="params.agree == 0 &&params.agree !=''">|&nbsp;&nbsp;
<label class="radio-inline">
<input type="radio" name="optionsRadiosinline" id="optionsRadios5" value="0" ng-model="params.status" ng-click="loadSimpleApplies()"> 未处理
</label>
<label class="radio-inline">
<input type="radio" name="optionsRadiosinline" id="optionsRadios6" value="1" ng-model="params.status" ng-click="loadSimpleApplies()"> 处理中
</label>
<label class="radio-inline">
<input type="radio" name="optionsRadiosinline" id="optionsRadios7" value="2" ng-model="params.status" ng-click="loadSimpleApplies()"> 处理完成
</label>
</span>
</div>
</div>
</div>
@ -34,6 +45,7 @@
<!-- <th>Approve Status</th>-->
<th style="max-width: 20%">Company Name</th>
<th>Status</th>
<th>Handle Status</th>
<th>Create Time</th>
<th>Apply Source</th>
<th>Operation</th>
@ -47,12 +59,19 @@
<td ng-bind="apply.company_name |cut:true:15:' ....'"></td>
<td>
<if ng-if="apply.agree">已申请 <span ng-if="apply.client_moniker">({{apply.client_moniker}})</span></if>
<if ng-if="!apply.agree">申请
<if ng-if="!apply.agree">申请失败
<span ng-if="apply.username && !apply.company_name">(<em class="text-danger">step2</em>)</span>
<span ng-if="apply.company_name && !apply.bank_no">(<em class="text-danger">step3</em>)</span>
<span ng-if="apply.bank_no && !apply.clean_days">(<em class="text-danger">step4</em>)</span>
</if>
</td>
<td>
<span ng-if="!apply.agree">
<span ng-if="apply.status==0">未处理</span>
<span ng-if="apply.status==1">处理中</span>
</span>
<span ng-if="apply.agree"></span>
</td>
<td ng-bind="apply.create_time"></td>
<td>
<span ng-if="!apply.apply_source">pc</span>
@ -60,8 +79,12 @@
</td>
<td>
<a class="text-primary" role="button" title="Detail"
ui-sref="apply_detail({client_pre_apply_id:apply.client_pre_apply_id})">
ui-sref="partner_apply.apply_detail({client_pre_apply_id:apply.client_pre_apply_id})">
<i class="fa fa-search"></i> Detail
</a><br>
<a class="text-primary" role="button" title="Detail" ng-hide="apply.agree"
ui-sref="partner_apply.handle_detail({client_pre_apply_id:apply.client_pre_apply_id})">
<i class="fa fa-check-circle-o"></i> Handle
</a>
</td>
</tr>

Loading…
Cancel
Save