Commit 81d221b7 authored by Ken you's avatar Ken you

add cit 查看报表 缺失文件---Ken

parent 0f65d57f
<div class="title-container">
<!-- 暂时只测试实现"尚有待填报项"提示 -->
<span><span ng-bind="尚有待填报项"></span>(<span ng-bind="item.cellAlerts[1].length"></span>)</span>
</div>
<div class="tooltip-list-container">
<div class="tooltip-item" ng-repeat="tooltipItem in item.cellAlerts[1]">
<p>{{tooltipItem.cell + " : " +tooltipItem.alert}}</p>
</div>
</div>
\ No newline at end of file
<div class="modal-header">
<div class="modal-title flex-row-start-center">
<span ng-bind="modelExcptionModal.title" class="flex-1-1-auto"></span>
<div class="data-count flex-0-0-auto flex-row-start-center">
<span class="flex-row-start-center">
<i class="fa fa-exclamation-circle"></i>
异常综述:
<span ng-bind="modelExcptionModal.dataSource.length" style="color: #B83000;"></span>
</span>
<span class="flex-row-start-center">
已处理:
<span ng-bind="(modelExcptionModal.dataSource | filter:{handled:true}).length"></span>
</span>
<button type="button" class="btn close " ng-click="modelExcptionModal.close()">
<span aria-hidden="true">&times;</span>
</button>
</div>
</div>
</div>
<div class="modal-body">
<div dx-data-grid="modelExcptionModal.dxDataGridOptions"></div>
</div>
\ No newline at end of file
<div class="modal-header">
<div class="modal-title">
<span class="flex-1-1-auto">备注</span>
<button type="button" class="btn close " ng-click="reportCommentsModal.close()">
<span aria-hidden="true">&times;</span>
</button>
</div>
</div>
<div class="modal-body">
<div dx-data-grid="reportCommentsModal.dxDataGridOptions"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" ng-click="reportCommentsModal.popEditForm()" style="float:left;">添加
</button>
<button type="button" class="btn btn-primary" ng-click="reportCommentsModal.close()">确定</button>
</div>
\ No newline at end of file
<div class="modal-header">
<div class="modal-title">
<span ng-bind="modelExcptionModal.title" class="flex-1-1-auto"></span>
<button type="button" class="btn close " ng-click="modelExcptionModal.close()">
<span aria-hidden="true">&times;</span>
</button>
</div>
</div>
<div class="modal-body">
<div dx-data-grid="modelExcptionModal.dxDataGridOptions"></div>
</div>
\ No newline at end of file
<div class="modal-header">
<div class="modal-title">
<span ng-bind="modalTitel"></span>
<button type="button" class="btn close " aria-label="Close" aria-hidden="true" ng-click="close()">
<span aria-hidden="true">&times;</span>
</button>
</div>
</div>
<div class="modal-body">
<div class="summary flex-row-start-stretch">
<div>
<button ng-click="filter($event,null)" class="activated">{{'CheckListOTAll' | translate}}</button>
<span class="badge"
ng-bind="listDataSource.length"
ng-style="{'background-color':stagesColors['1'].color}">
</span>
</div>
<div>
<button ng-click="filter($event,'5')">{{'CheckListOTCompleted' | translate}}</button>
<span class="badge"
ng-bind="(listDataSource | filter:{reportStatus:'5'}).length"
ng-style="{'background-color':stagesColors['1'].color}">
</span>
</div>
<div>
<button ng-click="filter($event,'4')">{{'CheckListOTSubmitted' | translate}}</button>
<span class="badge"
ng-bind="(listDataSource | filter:{reportStatus:'4'}).length"
ng-style="{'background-color':stagesColors['1'].color}">
</span>
</div>
<div>
<button ng-click="filter($event,'3')">{{'CheckListOTDraft' | translate}}</button>
<span class="badge"
ng-bind="(listDataSource | filter:{reportStatus:'3'}).length"
ng-style="{'background-color':stagesColors['1'].color}">
</span>
</div>
<div>
<button ng-click="filter($event,'2')">{{'CheckListOTBlank' | translate}}</button>
<span class="badge"
ng-bind="(listDataSource | filter:{reportStatus:'2'}).length"
ng-style="{'background-color':stagesColors['1'].color}">
</span>
</div>
<div>
<button ng-click="filter($event,'1')">{{'CheckListOTNotRequired' | translate}}</button>
<span class="badge"
ng-bind="(listDataSource | filter:{reportStatus:'1'}).length"
ng-style="{'background-color':stagesColors['1'].color}">
</span>
</div>
<div class="search-for-text flex-1-1-auto">
<input type="text" style="width: calc(100% - 40px);">
<button class="fa fa-search font-color-gray" type="button"></button>
</div>
</div>
<div class="sheet-list">
<div class="list-header">
<div class="sequence-error" style="text-align: left;">{{'CheckListFNException' | translate}}</div>
<div class="sheet-name" style="text-align: left;">{{'CheckListFNFormName' | translate}}</div>
<div class="report-status">{{'CheckListFNStatus' | translate}}</div>
<div class="operations">{{'CheckListFNAction' | translate}}</div>
<div class="comments">{{'CheckListFNRemark' | translate}}</div>
<div class="update-operator" style="text-align: left;">{{'CheckListFNLastUpdatedBy' | translate}}</div>
</div>
<div class="list-body">
<div ng-repeat="item in sheetList track by item.reportCode" class="list-item">
<div class="sequence-error">
<i class="fa fa-question-circle"
ng-if="false && item.hasError" title="预警详情"
ng-click="modelExceptionModal.open(item)"></i>
<i class="fa fa-exclamation-circle" title="模型异常"
ng-if="item.hasError && !item.hasErrorFixed"
ng-click="modelExceptionModal.open(item)"></i>
<i class="fa fa-check-circle" title="异常模型已处理"
ng-if="item.hasError && item.hasErrorFixed"
ng-click="modelExceptionModal.open(item)"></i>
<span ng-bind="$index + 1" class="flex-0-0-auto"></span>
</div>
<div class="sheet-name limit-length-ellipsis">
<span title="{{item.reportDisplayName}}}" ng-bind="item.reportDisplayName"></span>
</div>
<div class="report-status">
<div class="icon-container">
<i class="fa" ng-class="item.statusIcon" ng-style="item.statusColor"></i>
</div>
<span ng-bind="item.statusText"></span>
<span class="badge" ng-if="item.reportStatus == '3' && item.alertNumber > 0"
ng-bind="item.alertNumber"
uib-tooltip-template="'/app/common/controls/check-list/check-list-filled-tooltip.html'"
tooltip-placement="bottom"
tooltip-class="check-list-filled-tooltip">
</span>
</div>
<div class="operations">
<div ng-if="item.reportStatus == '4'">
<button style="border-color: limegreen;color: limegreen;" class="flex-0-0-auto">
<i class="fa fa-check"></i>
<span>{{'CheckListOPApprove' | translate}}</span>
</button>
<button style="border-color: #cc0000;color: #cc0000;" class="flex-0-0-auto">
<i class="fa fa-close"></i>
<span>{{'CheckListOPReject' | translate}}</span>
</button>
</div>
</div>
<div class="comments">
<span ng-click="reportCommentsModal.open(item)" style="cursor: pointer;">
<i class="fa fa-pencil"></i>
<span class=""><span ng-bind="item.reportComments.length"></span></span>
</span>
</div>
<div class="update-operator">
<div class="last-update flex-row-start-center font-color-gray" ng-if="item.lastModifiedTime">
<span ng-bind="item.lastModifiedTime | date:'yyyy-MM-dd HH:mm'"></span>
<div ng-if="item.lastModifiedBy" class="flex-row-start-center font-color-gray limit-length-ellipsis">
<div class="fa-container">
<i class="fa fa-user-circle-o"></i>
</div>
<span title="{{item.lastModifiedBy}}" ng-bind="item.lastModifiedBy"></span>
</div>
</div>
<div ng-if="!item.lastModifiedTime && !item.lastModifiedBy" style="text-align: center;width: 100%;">
<span></span>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
commonModule.directive('reportCheckListModal', ['$log', function ($log) {
'use strict';
return {
restrict: 'A',
replace: false,
controller: 'reportCheckListModalController',
scope:
{
modalTitel: '=',
listDataSource: '=',
isOpen: '='
}
};
}
]);
\ No newline at end of file

.report-check-list-modal .modal-dialog {
width: 1180px;
background-color: white;
font-size: 14px;
.modal-content {
border: none;
.modal-header {
border-bottom: none;
padding-bottom: 5px;
background-color: white;
.modal-title > span {
font-size: 17px;
}
}
.modal-body {
padding: 0;
}
}
button {
outline: none;
}
.summary {
padding: 15px;
border-bottom: 1px solid lightgrey;
}
.summary > div {
margin: 0 20px;
}
.summary button {
background: transparent;
border: none;
padding: 1px 3px;
vertical-align: middle;
}
.summary .badge {
font-size: 0.857em;
}
.summary button:hover, .summary button:active, .summary button.activated {
color: #c63;
}
.search-for-text button {
font-size: 1.15em;
}
.search-for-text > * {
border: none;
outline: none;
}
.flex-row-start-center {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: stretch;
-ms-flex-align: stretch;
align-items: stretch;
}
.sheet-list {
font-family: 'Microsoft YaHei', serif;
color: #000000;
span, i {
line-height: 28px;
}
.list-header {
.flex-row-start-center;
background-color: gainsboro;
padding: 15px 30px 15px 15px;
> div {
margin: 0 10px;
flex: 0 0 auto;
text-align: center;
}
}
.sequence-error {
width: 50px;
}
.sheet-name {
width: 250px;
flex: 1 1 auto !important;
}
.report-status {
width: 90px;
}
.comments {
width: 130px;
}
.operations {
width: 200px;
}
.update-operator {
width: 255px;
}
.sequence-error, .comments, .update-operator, .operations {
margin: 0 !important;
}
.list-body {
max-height: calc(~"100vh - 210px");
overflow-x: auto;
.list-item {
.flex-row-start-center;
padding: 15px;
border-bottom: 1px solid lightgrey;
height: 60px;
width: 1160px;
> div {
.flex-row-start-center;
margin: 0 10px;
flex: 0 0 auto;
}
.sequence-error {
justify-content: flex-end;
.fa {
font-size: 17px;
cursor: pointer;
}
.fa-exclamation-circle, .fa-question-circle {
color: red;
}
.fa-check-circle {
color: #FFB600;
}
span {
width: 2em;
text-align: end;
}
}
.sheet-name {
}
.report-status {
.badge {
position: relative;
top: -0.675em;
line-height: 13px;
background-color: #B83000;
cursor: pointer;
height: 20px;
}
.icon-container {
width: 25px;
i {
line-height: 16px;
height: 16px;
width: 16px;
position: relative;
top: 4px;
}
}
}
.comments {
padding: 0 10px;
}
.operations {
padding: 0 15px;
> div {
.flex-row-start-center;
}
button {
height: 28px;
-webkit-border-radius: 14px;
-moz-border-radius: 14px;
border-radius: 14px;
border: 1px solid transparent;
padding: 0 10px;
background-color: transparent;
margin: 0 5px;
i {
margin: 0 2px 0 -3px;
}
}
}
.update-operator {
.fa-container {
padding: 0 5px;
font-size: 16px;
line-height: 19px;
}
.last-update {
min-width: 80px;
margin: 0 10px;
}
}
.comments, .update-operator, .operations {
border-left: 1px solid lightgrey;
}
.comments > *, .operations > * {
margin: 0 auto;
}
}
}
}
.limit-length-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.font-color-gray {
color: rgba(0, 0, 0, 0.65);
}
.font-color-red {
color: #cc0000;
}
}
.check-list-model-analysis-modal {
.modal-dialog {
width: 900px;
margin-top: calc(~"100vh * 0.25");
.modal-title {
.data-count {
> span {
margin-right: 30px;
.fa-exclamation-circle {
font-size: 16px;
color: #cc0000;
margin: 0 5px;
}
> span {
font-weight: 700;
font-size: 1.15em;
}
}
}
}
}
}
.check-list-risk-warning-modal {
.modal-dialog {
width: 850px;
td > button {
border: none;
background-color: transparent;
outline: none !important;
color: #B83000;
}
}
}
.check-list-filled-tooltip {
opacity: 1 !important;
border-radius: 4px;
border: 1px solid #B83000;
margin: 0 !important;
padding: 0 !important;
.tooltip-arrow {
display: none;
}
.tooltip-inner {
text-align: left;
background-color: white;
max-width: 50em;
padding: 5px;
color: black !important;
.title-container > span {
span {
font-weight: 700;
font-size: 1.125em;
}
span:last-child {
color: #B83000;
}
}
.tooltip-list-container {
.tooltip-item {
padding: 5px;
border: 1px solid gainsboro;
&:not(:first-child) {
border-top-style: hidden;
}
}
}
}
}
.check-list-report-comments-modal {
.operation {
border: none;
background-color: transparent;
color: darkblue;
}
}
\ No newline at end of file
webservices.factory('checkListService', ['$http', 'apiConfig', function ($http, apiConfig) {
'use strict';
return {
getCheckListViewData: function (serviceTypeID, reportType, period) {
var data = {
"serviceTypeID": serviceTypeID,
"reportType": reportType,
"period": period
};
data = _.pairs(data).map(function (x) { return x.join("="); }).join("&");
return $http.get('/checkList/getCheckListViewData?' + data, apiConfig.createVat());
},
addReportComment: function (reportId, content) {
var data = {
"reportId": reportId,
"content": content
};
return $http.post('/checkList/addReportComment', data, apiConfig.createVat());
},
addReportModifyLog: function (reportId, content) {
var data = {
"reportId": reportId,
"content": content
};
return $http.post('/checkList/addReportModifyLog', data, apiConfig.createVat());
},
removeReportComment: function (commentId) {
return $http.delete('/checkList/removeReportComment?commentId=' + commentId, apiConfig.createVat());
}
};
}]);
\ No newline at end of file
...@@ -159,13 +159,19 @@ ...@@ -159,13 +159,19 @@
return $http.post('/Report/citUpdateConfig/' + projectId + '/' + ifDeleteManualDataSource + '/' + period + '?generator=' + generator, {}, apiConfig.createVat({ignoreLoadingBar: true})); return $http.post('/Report/citUpdateConfig/' + projectId + '/' + ifDeleteManualDataSource + '/' + period + '?generator=' + generator, {}, apiConfig.createVat({ignoreLoadingBar: true}));
}, },
citGeneratePrepay: function (projectId, ifDeleteManualDataSource, period, generator) {
return $http.post('/Report/citGenerate/byTotal/' + projectId + '/' + ifDeleteManualDataSource + '/' + 0
// 暂时将生成预缴表的period设置为0,等待完成新的预缴表生成逻辑 + period
+ '/' + enums.reportType.prepay
+ '?generator=' + generator, {}, apiConfig.createVat({ ignoreLoadingBar: true }));
},
citGenerateByType: function (projectId, ifDeleteManualDataSource, reportType, generator) { citGenerateByType: function (projectId, ifDeleteManualDataSource, reportType, generator) {
var paramStr = ''; var paramStr = '';
if (_.isNumber(reportType)) { if (_.isNumber(reportType)) {
paramStr = '/' + reportType; paramStr = '/' + reportType;
} }
return $http.post('/Report/citGenerate/byTotal/' + projectId + '/' + ifDeleteManualDataSource + '/0' + paramStr + '?generator=' + generator, {}, apiConfig.createVat({ignoreLoadingBar: true})); return $http.post('/Report/citGenerate/byTotal/' + projectId + '/' + ifDeleteManualDataSource + '/0' + paramStr + '?generator=' + generator, {}, apiConfig.createVat({ ignoreLoadingBar: true }));
}, },
citGetTemplate: function (projectId, period) { citGetTemplate: function (projectId, period) {
if (!_.isNumber(period)) { if (!_.isNumber(period)) {
...@@ -174,13 +180,19 @@ ...@@ -174,13 +180,19 @@
return $http.get('/Report/citTemplate/' + projectId + '/' + period, apiConfig.createVat()); return $http.get('/Report/citTemplate/' + projectId + '/' + period, apiConfig.createVat());
}, },
citGetTemplateTree: function (projectId) {
return $http.get('/Report/citTemplateTree/' + projectId, apiConfig.createVat());
},
vatGetTemplateTree: function (projectId, period, serviceType) {
return $http.get('/Report/vatTemplateTree/' + projectId + '/' + period + '/' + serviceType, apiConfig.createVat());
},
citCalculateKeyValue: function (projectId, reportType) { citCalculateKeyValue: function (projectId, reportType) {
var reportTypeParam = ''; var reportTypeParam = '';
if (_.isNumber(reportType)) { if (_.isNumber(reportType)) {
reportTypeParam = '/' + reportType; reportTypeParam = '/' + reportType;
} }
return $http.post('/Report/citCalculateKeyValue/' + projectId + '/0' + reportTypeParam, {}, apiConfig.createVat({ignoreLoadingBar: true})); return $http.post('/Report/citCalculateKeyValue/' + projectId + '/0' + reportTypeParam, {}, apiConfig.createVat({ ignoreLoadingBar: true }));
}, },
getReportByTemplateId: function (templateId, period) { getReportByTemplateId: function (templateId, period) {
if (!_.isNumber(period)) { if (!_.isNumber(period)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment