master
hellolujian 6 years ago
parent d0532b21da
commit f99a5a6ff5

@ -3,6 +3,7 @@ package au.com.royalpay.payment.manage.riskbusiness.core;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
@ -50,4 +51,10 @@ public interface RiskBusinessService {
* @param params * @param params
*/ */
void updateRiskEvent(JSONObject params); void updateRiskEvent(JSONObject params);
/**
* zip
* @param riskId
*/
void downloadAuditMaterialZiP(String riskId, HttpServletResponse response);
} }

@ -1,18 +1,28 @@
package au.com.royalpay.payment.manage.riskbusiness.core.impl; package au.com.royalpay.payment.manage.riskbusiness.core.impl;
import au.com.royalpay.payment.core.exceptions.InvalidShortIdException;
import au.com.royalpay.payment.manage.mappers.payment.OrderMapper; import au.com.royalpay.payment.manage.mappers.payment.OrderMapper;
import au.com.royalpay.payment.manage.mappers.riskbusiness.RiskEventMapper; import au.com.royalpay.payment.manage.mappers.riskbusiness.RiskEventMapper;
import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
import au.com.royalpay.payment.manage.riskbusiness.core.RiskBusinessService; import au.com.royalpay.payment.manage.riskbusiness.core.RiskBusinessService;
import au.com.royalpay.payment.tools.utils.PageListUtils; import au.com.royalpay.payment.tools.utils.PageListUtils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.miemiedev.mybatis.paginator.domain.Order; import com.github.miemiedev.mybatis.paginator.domain.Order;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds; import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList; import com.github.miemiedev.mybatis.paginator.domain.PageList;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/** /**
* @Author lvjian * @Author lvjian
@ -27,6 +37,9 @@ public class RiskBusinessServiceImpl implements RiskBusinessService {
@Autowired @Autowired
private OrderMapper orderMapper; private OrderMapper orderMapper;
@Autowired
private ClientMapper clientMapper;
@Override @Override
public List<JSONObject> getRiskEvents(JSONObject params) { public List<JSONObject> getRiskEvents(JSONObject params) {
return riskEventMapper.findAll(params); return riskEventMapper.findAll(params);
@ -41,7 +54,18 @@ public class RiskBusinessServiceImpl implements RiskBusinessService {
@Override @Override
public JSONObject getRiskEventDetail(String riskId) { public JSONObject getRiskEventDetail(String riskId) {
return riskEventMapper.findById(riskId); JSONObject riskEventDetail = riskEventMapper.findById(riskId);
// 获取商户信息
String clientMoniker = riskEventDetail.getString("client_moniker");
JSONObject client = clientMapper.findClientByMonikerAll(clientMoniker);
if (client == null) {
throw new InvalidShortIdException();
} else {
riskEventDetail.put("clientInfo", client);
}
return riskEventDetail;
} }
@Override @Override
@ -70,4 +94,33 @@ public class RiskBusinessServiceImpl implements RiskBusinessService {
public void updateRiskEvent(JSONObject params) { public void updateRiskEvent(JSONObject params) {
riskEventMapper.update(params); riskEventMapper.update(params);
} }
@Override
public void downloadAuditMaterialZiP(String riskId, HttpServletResponse response) {
JSONObject riskEvent = riskEventMapper.findById(riskId);
String clientMoniker = riskEvent.getString("client_moniker");
try {
String downloadFilename = clientMoniker + "_audit_materials_" + DateFormatUtils.format(new Date(), "dd/MM/yyyy HH:mm:ss").toString() + ".zip";// 文件的名称
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);
ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());
String filePath = "https://file.royalpay.com.au/open/2018/09/20/1537438083143_tqIYPEDYPr40Y9Cyj4Ps1xgSRrDrVb.jpg";
zos.putNextEntry(new ZipEntry(filePath.substring(filePath.lastIndexOf("/"))));
InputStream inputStream = new URL(filePath).openConnection().getInputStream();
byte[] buffer = new byte[1024];
int result = 0;
while ((result = inputStream.read(buffer)) != -1) {
zos.write(buffer, 0, result);
}
inputStream.close();
zos.flush();
zos.close();
zos.flush();
zos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }

@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
@ -49,5 +50,10 @@ public class RiskBusinessController {
public void UpdateRiskEvent(@RequestBody JSONObject params) { public void UpdateRiskEvent(@RequestBody JSONObject params) {
riskBusinessService.updateRiskEvent(params); riskBusinessService.updateRiskEvent(params);
} }
@GetMapping(value = "/{risk_id}/download/materialsAsZIP")
public void downloadComplianceZip(@PathVariable("risk_id") String riskId, HttpServletResponse response) throws Exception {
riskBusinessService.downloadAuditMaterialZiP(riskId, response);
}
} }

@ -14,8 +14,11 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'],
var resultTypesMap = { var resultTypesMap = {
"0": "未处理", "0": "未处理",
"1": "处理中", "1": "已发送邮件至BD",
"2": "已处理" "2": "BD已提交材料等待审核",
"3": "材料审核通过",
"4": "材料审核不通过,已打回",
"5": "已处理()",
}; };
var emailStatusMap = { var emailStatusMap = {
@ -43,6 +46,10 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'],
url: '/new_riskEvent', url: '/new_riskEvent',
templateUrl: '/static/analysis/templates/new_riskEvent.html', templateUrl: '/static/analysis/templates/new_riskEvent.html',
controller: 'newRiskEventCtrl' controller: 'newRiskEventCtrl'
}).state('analysis_monitoring.riskEvent_detail.audit_material', {
url: '/audit_material',
templateUrl: '/static/analysis/templates/audit_material.html',
controller: 'auditMaterialCtrl'
}); });
}]); }]);
@ -69,6 +76,8 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'],
app.controller('riskEventDetailCtrl', ['$scope', '$state', '$http', '$uibModal', '$filter', 'commonDialog', 'riskEvent', app.controller('riskEventDetailCtrl', ['$scope', '$state', '$http', '$uibModal', '$filter', 'commonDialog', 'riskEvent',
function ($scope, $state, $http, $uibModal, $filter, commonDialog, riskEvent) { function ($scope, $state, $http, $uibModal, $filter, commonDialog, riskEvent) {
$scope.orderTypes = orderTypesMap;
$scope.riskEvent = riskEvent.data; $scope.riskEvent = riskEvent.data;
// 编辑表格的数据保存对象,重新从源数据复制,从而取消保存操作时不会更新视图 // 编辑表格的数据保存对象,重新从源数据复制,从而取消保存操作时不会更新视图
@ -79,7 +88,9 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'],
// 调单信息 // 调单信息
$scope.tradeLogs = $scope.riskEvent.tradeLogs; $scope.tradeLogs = $scope.riskEvent.tradeLogs;
$scope.orderTypes = orderTypesMap;
// 商户信息
$scope.clientInfo = $scope.riskEvent.clientInfo;
// 控制编辑表格的显示 // 控制编辑表格的显示
$scope.editFlag = false; $scope.editFlag = false;
@ -121,6 +132,56 @@ define(['angular', 'jquery', 'uiRouter', './monitoring/analysis-monitoring'],
}); });
}); });
}; };
// 关停渠道
$scope.updateChannel = function (orderType) {
var channel;
if (orderType == "1")
channel = 'wechat';
else if (orderType == "2")
channel = 'alipay';
$http.put('/sys/partners/' + $scope.riskEvent.client_moniker + '/channels/' + channel + '/permission', {allow: $scope.clientInfo['enable_' + channel]}).then(function () {
$state.reload('analysis_monitoring.riskEvent_detail');
}, function (resp) {
commonDialog.alert({
title: 'Failed to change ' + channel + ' channel permission status',
content: resp.data.message,
type: 'error'
})
});
};
// 关停商户
$scope.updateClient = function(isValid) {
if (isValid) {
$http.put('/sys/partners/' + $scope.riskEvent.client_moniker + '/revert').then(function () {
$state.reload('analysis_monitoring.riskEvent_detail');
}, function (resp) {
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'});
})
} else {
$http.delete('/sys/partners/' + $scope.riskEvent.client_moniker).then(function () {
$state.reload('analysis_monitoring.riskEvent_detail');
}, function (resp) {
commonDialog.alert({title: 'Error', content: resp.data.message, type: 'error'});
})
}
};
// 获取riskEvent详细信息
$scope.loadRiskEventDetail = function(riskId) {
$http.get('/risk/business/events/' + riskId)
}
}
]);
app.controller('auditMaterialCtrl', ['$scope', '$state', '$http', '$uibModal', '$filter', 'commonDialog',
function ($scope, $state, $http, $uibModal, $filter, commonDialog) {
$scope.downloadAsZip = function () {
var url = '/risk/business/' + $scope.riskEvent.risk_id + '/download/materialsAsZIP';
return url;
};
} }
]); ]);

@ -0,0 +1,35 @@
<div class="panel panel-default">
<div class="panel-heading">Audit Files &nbsp;&nbsp;&nbsp;
<!--后面需要加上ng-if="file"-->
<a class="btn-group btn btn-success" ng-href="{{downloadAsZip()}}" target="_blank">
<i class="fa fa-cloud-download">一键下载</i>
</a>
</div>
<div class="panel-body">
<div class="form-horizontal">
<div class="form-group">
<label class="control-label col-sm-2">* bank statement</label>
<div class="col-sm-4">
<div class="form-control-static">
<uib-progressbar value="bankFileProgress.value" ng-if="bankFileProgress"></uib-progressbar>
<a ng-if="bankIsImage" target="_blank" ng-href="{{file.client_bank_file}}">
<img ng-src="{{file.client_bank_file}}" class="col-sm-8"></a>
</div>
<div class="col-sm-6">
<div class="form-control-static">
<p>Example请保证图片信息清晰可见,如下图</p>
<img class="col-sm-6" style="border: 1px solid #ddd"
src="https://file.royalpay.com.au/open/2017/03/07/1488859920633_5ruVtDa30yY2ytBSDAAqxg0Ob2nreh.jpeg">
</div>
</div>
</div>
</div>
</div>
<div style="text-align: center">
<a role="button" style="margin-bottom: 25px;" class="btn btn-success btn-sm ng-scope" ng-if="('10'|withRole)" ng-click="complianceCheck()">check</a>
</div>
</div>
<!--<div class="margin-bottom margin-top">-->
<!--<button class="btn-group btn btn-success" type="button" ng-click="updateFile()">Save-->
<!--</button>-->
<!--</div>-->

@ -1,271 +1,306 @@
<div ui-view> <div class="content">
<!--
<section class="content-header"> <section class="content-header">
<h1>Risk Event</h1> <h1>Risk Event</h1>
</section> </section>-->
<div class="content"> <div class="row">
<div class="row" ng-if="!editFlag"> <div class="col-sm-12">
<div class="col-sm-12"> <div class="nav-tabs-custom">
<div class="nav-tabs-custom"> <ul class="nav nav-tabs">
<div class="tab-content"> <li ui-sref-active-eq="active">
<div class="panel panel-default"> <a ui-sref="analysis_monitoring.riskEvent_detail">Risk Detail</a>
<div class="panel-heading"> </li>
RiskEvent Basic Information <li ui-sref-active="active">
<a role="button" <a ui-sref=".audit_material">Audit material</a>
class="pull-right" </li>
ng-click="changeEditFlag(editFlag)"> </ul>
<i class="fa fa-edit"></i> Edit <div class="tab-content" ui-view>
</a> <div class="row" ng-if="!editFlag">
</div> <div class="col-sm-12">
<div class="nav-tabs-custom">
<div class="panel-body"> <div class="tab-content">
<div class="form-horizontal"> <div class="panel panel-default">
<div class="form-group"> <div class="panel-heading">
<label class="control-label col-sm-2">Partner Code</label> RiskEvent Basic Information
<div class="col-sm-10"> <a role="button"
<p class="form-control-static" class="pull-right"
ng-bind="riskEvent.client_moniker"></p> ng-click="changeEditFlag(editFlag)">
<i class="fa fa-edit"></i> Edit
</a>
</div> </div>
</div>
<div class="form-group"> <div class="panel-body">
<label class="control-label col-sm-2">Order IDs</label> <div class="form-horizontal">
<div class="col-sm-10"> <div class="form-group">
<p class="form-control-static" <label class="control-label col-sm-2">Partner Code</label>
ng-bind="riskEvent.order_ids"> <div class="col-sm-10">
</p> <p class="form-control-static"
</div> ng-bind="riskEvent.client_moniker"></p>
</div> </div>
</div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Order Type</label> <label class="control-label col-sm-2">Order IDs</label>
<div class="col-sm-10"> <div class="col-sm-10">
<p class="form-control-static" <p class="form-control-static"
ng-bind="riskEvent.order_type | orderType"> ng-bind="riskEvent.order_ids">
</p> </p>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Result Type</label> <label class="control-label col-sm-2">Order Type</label>
<div class="col-sm-10"> <div class="col-sm-10">
<p class="form-control-static"> <p class="form-control-static"
{{riskEvent.result_type | resultType}} ng-bind="riskEvent.order_type | orderType">
</p> </p>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Email Status</label> <label class="control-label col-sm-2">Result Type</label>
<div class="col-sm-10"> <div class="col-sm-10">
<p class="form-control-static" <p class="form-control-static">
ng-bind="riskEvent.email_status | emailStatus"></p> {{riskEvent.result_type | resultType}}
</div> </p>
</div> </div>
</div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Reply Deadline</label> <label class="control-label col-sm-2">Email Status</label>
<div class="col-sm-10"> <div class="col-sm-10">
<p class="form-control-static"> <p class="form-control-static"
{{riskEvent.reply_email_date | limitTo:10}} ng-bind="riskEvent.email_status | emailStatus"></p>
</p> </div>
</div> </div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Reply Deadline</label>
<div class="col-sm-10">
<p class="form-control-static">
{{riskEvent.reply_email_date | limitTo:10}}
</p>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Description</label>
<div class="col-sm-10">
<p class="form-control-static"
ng-bind="riskEvent.description">
</p>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2">Description</label> <label class="control-label col-sm-2">临时关闭渠道</label>
<div class="col-sm-10"> <div class="col-xs-6">
<p class="form-control-static" <input type="checkbox"
ng-bind="riskEvent.description"> ng-if="riskEvent.order_type == '1'"
</p> ng-model="clientInfo.enable_wechat"
bs-switch ng-change="updateChannel(riskEvent.order_type)">
<input type="checkbox"
ng-if="riskEvent.order_type == '2'"
ng-model="clientInfo.enable_alipay"
bs-switch ng-change="updateChannel(riskEvent.order_type)">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">临时关闭商户</label>
<div class="col-xs-6">
<input type="checkbox" ng-model="clientInfo.is_valid" bs-switch ng-change="updateClient(clientInfo.is_valid)">
</div>
</div>
</div>
</div> </div>
</div> </div>
</div>
</div>
</div>
<!-- 调单信息 --> <!-- 调单信息 -->
<div class="box"> <div class="box">
<div class="box-header"> <div class="box-header">
<h3 class="box-title" style="display: inherit"> <h3 class="box-title" style="display: inherit">
Orders Information Orders Information
</h3> </h3>
</div> </div>
<div class="box-body table-responsive"> <div class="box-body table-responsive">
<table class="table table-bordered table-hover table-striped"> <table class="table table-bordered table-hover table-striped">
<thead> <thead>
<tr> <tr>
<th>Order ID</th> <th>Order ID</th>
<th>Amount</th> <th>Amount</th>
<th>Input Amount</th> <th>Input Amount</th>
<th>AUD Amount</th> <th>AUD Amount</th>
<th>Exchange Rate</th> <th>Exchange Rate</th>
<th>Status</th> <th>Status</th>
<th>Create Time</th> <th>Create Time</th>
<th>Gateway</th> <th>Gateway</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="trade in tradeLogs" <tr ng-repeat="trade in tradeLogs"
ng-class="{warning:trade.clearing_status==2}"> ng-class="{warning:trade.clearing_status==2}">
<td>{{trade.order_id}}</td> <td>{{trade.order_id}}</td>
<td>{{trade.total_amount | currency: trade.currency}}</td> <td>{{trade.total_amount | currency: trade.currency}}</td>
<td ng-bind="trade.display_amount | currency: trade.currency"></td> <td ng-bind="trade.display_amount | currency: trade.currency"></td>
<td ng-bind="trade.clearing_amount | currency: 'AUD'"></td> <td ng-bind="trade.clearing_amount | currency: 'AUD'"></td>
<td> <td>
<span ng-if="(trade.channel != 'hf') && (trade.channel != 'Rpay')" <span ng-if="(trade.channel != 'hf') && (trade.channel != 'Rpay')"
ng-bind="trade.exchange_rate"> ng-bind="trade.exchange_rate">
</span> </span>
<span ng-if="(trade.channel == 'hf') || (trade.channel == 'Rpay')"> - </span> <span ng-if="(trade.channel == 'hf') || (trade.channel == 'Rpay')"> - </span>
</td> </td>
<td ng-bind="trade.status | tradeStatus"></td> <td ng-bind="trade.status | tradeStatus"></td>
<td ng-bind="trade.create_time"></td> <td ng-bind="trade.create_time"></td>
<td ng-bind="trade.gateway | tradeGateway"></td> <td ng-bind="trade.gateway | tradeGateway"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div>
</div>
<a role="button"
class="btn btn-info">Send Email
</a>
</div>
</div> </div>
</div> </div>
<a role="button"
class="btn btn-info">Send Email
</a>
</div> </div>
</div>
</div>
</div>
<form novalidate name="riskEventForm" ng-if="editFlag"> <form novalidate name="riskEventForm" ng-if="editFlag">
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading">RiskEvent Basic Information</div> <div class="panel-heading">RiskEvent Basic Information</div>
<div class="panel-body"> <div class="panel-body">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="form-group" <div class="form-group"
ng-class="{'has-error':riskEventForm.client_moniker.$invalid && riskEventForm.client_moniker.$dirty}"> ng-class="{'has-error':riskEventForm.client_moniker.$invalid && riskEventForm.client_moniker.$dirty}">
<label class="control-label col-sm-2" <label class="control-label col-sm-2"
for="short-id-input">* Partner Code for="short-id-input">* Partner Code
</label> </label>
<div class="col-sm-8"> <div class="col-sm-8">
<input class="form-control text-uppercase" <input class="form-control text-uppercase"
ng-model="riskEventEdit.client_moniker" ng-model="riskEventEdit.client_moniker"
type="text" type="text"
name="client_moniker" name="client_moniker"
id="short-id-input" id="short-id-input"
required required
maxlength="6" maxlength="6"
ng-pattern="/^[a-zA-Z0-9]+$/"> ng-pattern="/^[a-zA-Z0-9]+$/">
<div ng-messages="riskEventForm.client_moniker.$error" <div ng-messages="riskEventForm.client_moniker.$error"
ng-if="riskEventForm.client_moniker.$dirty"> ng-if="riskEventForm.client_moniker.$dirty">
<p class="small text-danger" <p class="small text-danger"
ng-message="required">Required Field ng-message="required">Required Field
</p> </p>
<p class="small text-danger" <p class="small text-danger"
ng-message="maxlength">Less Than 6 Letters ng-message="maxlength">Less Than 6 Letters
</p> </p>
<p class="small text-danger" <p class="small text-danger"
ng-message="pattern"> ng-message="pattern">
Only Uppercase Letters and Numbers are allowed Only Uppercase Letters and Numbers are allowed
</p> </p>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group" <div class="form-group"
ng-class="{'has-error':riskEventForm.order_type.$invalid && riskEventForm.order_type.$dirty}"> ng-class="{'has-error':riskEventForm.order_type.$invalid && riskEventForm.order_type.$dirty}">
<label class="control-label col-sm-2" <label class="control-label col-sm-2"
for="order-type-input">Order Type for="order-type-input">Order Type
</label> </label>
<div class="col-sm-8"> <div class="col-sm-8">
<select class="form-control" <select class="form-control"
name="order_type" name="order_type"
ng-model="riskEventEdit.order_type" ng-model="riskEventEdit.order_type"
id="order-type-input" id="order-type-input"
required required
ng-options="key as value for (key, value) in orderTypes"> ng-options="key as value for (key, value) in orderTypes">
<option value="">Please Choose</option> <option value="">Please Choose</option>
</select> </select>
<div ng-messages="riskEventForm.order_type.$error" <div ng-messages="riskEventForm.order_type.$error"
ng-if="riskEventForm.order_type.$dirty"> ng-if="riskEventForm.order_type.$dirty">
<p class="small text-danger" <p class="small text-danger"
ng-message="required">required field ng-message="required">required field
</p> </p>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group" <div class="form-group"
ng-class="{'has-error':riskEventForm.order_ids.$invalid && riskEventForm.order_ids.$dirty}"> ng-class="{'has-error':riskEventForm.order_ids.$invalid && riskEventForm.order_ids.$dirty}">
<label class="control-label col-sm-2" <label class="control-label col-sm-2"
for="order-ids-input">Order IDs for="order-ids-input">Order IDs
</label> </label>
<div class="col-sm-8"> <div class="col-sm-8">
<input class="form-control" <input class="form-control"
ng-model="riskEventEdit.order_ids" ng-model="riskEventEdit.order_ids"
type="text" type="text"
name="order_ids" name="order_ids"
id="order-ids-input" id="order-ids-input"
required> required>
<div ng-messages="riskEventForm.order_ids.$error" <div ng-messages="riskEventForm.order_ids.$error"
ng-if="riskEventForm.order_ids.$dirty"> ng-if="riskEventForm.order_ids.$dirty">
<p class="small text-danger" <p class="small text-danger"
ng-message="required">required field ng-message="required">required field
</p> </p>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2" <label class="control-label col-sm-2"
for="reply-deadline-input">Reply Deadline for="reply-deadline-input">Reply Deadline
</label> </label>
<div class="col-sm-8"> <div class="col-sm-8">
<div style="display: inline-block"> <div style="display: inline-block">
<input class="form-control" <input class="form-control"
id="reply-deadline-input" id="reply-deadline-input"
type="text" type="text"
ng-model="riskEventEdit.reply_email_date" ng-model="riskEventEdit.reply_email_date"
uib-datepicker-popup uib-datepicker-popup
size="10" size="10"
placeholder="Reply Deadline" placeholder="Reply Deadline"
is-open="replyDeadline.open" is-open="replyDeadline.open"
ng-click="replyDeadline.open=true" ng-click="replyDeadline.open=true"
datepicker-options="{minDate:today}"> datepicker-options="{minDate:today}">
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-sm-2" <label class="control-label col-sm-2"
for="description-input">Description for="description-input">Description
</label> </label>
<div class="col-sm-8"> <div class="col-sm-8">
<input class="form-control" <input class="form-control"
ng-model="riskEventEdit.description" ng-model="riskEventEdit.description"
type="text" type="text"
name="description" name="description"
id="description-input"> id="description-input">
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
</div>
<div class="btn-group margin-bottom margin-top"> <div class="btn-group margin-bottom margin-top">
<button class="btn btn-success" <button class="btn btn-success"
style="margin-right: 10px;" style="margin-right: 10px;"
type="button" type="button"
ng-click="save(riskEventForm)">Save ng-click="save(riskEventForm)">Save
</button> </button>
<button class="btn btn-warning" <button class="btn btn-warning"
type="button" type="button"
ng-click="changeEditFlag(editFlag)">cancel ng-click="changeEditFlag(editFlag)">cancel
</button> </button>
</div>
</form>
</div>
</div> </div>
</form> </div>
</div> </div>
</div> </div>
Loading…
Cancel
Save