Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
T
traffic-front
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangxiaoming
traffic-front
Commits
c1ab40d8
Commit
c1ab40d8
authored
Feb 28, 2019
by
gary
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev_mysql' into dev_mysql
parents
f668ad7e
81d221b7
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1052 additions
and
2 deletions
+1052
-2
check-list-filled-tooltip.html
...common/controls/check-list/check-list-filled-tooltip.html
+11
-0
check-list-model-analysis-modal.html
.../controls/check-list/check-list-model-analysis-modal.html
+25
-0
check-list-report-comments-modal.html
...controls/check-list/check-list-report-comments-modal.html
+17
-0
check-list-risk-warning-modal.html
...on/controls/check-list/check-list-risk-warning-modal.html
+12
-0
check-list.ctrl.js
.../webapp/app/common/controls/check-list/check-list.ctrl.js
+439
-0
check-list.html
...ain/webapp/app/common/controls/check-list/check-list.html
+137
-0
check-list.js
.../main/webapp/app/common/controls/check-list/check-list.js
+17
-0
check-list.less
...ain/webapp/app/common/controls/check-list/check-list.less
+347
-0
checkList.svc.js
...b/src/main/webapp/app/common/vatservices/checkList.svc.js
+33
-0
vatReportService.js
...rc/main/webapp/app/common/vatservices/vatReportService.js
+14
-2
No files found.
atms-web/src/main/webapp/app/common/controls/check-list/check-list-filled-tooltip.html
0 → 100644
View file @
c1ab40d8
<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
atms-web/src/main/webapp/app/common/controls/check-list/check-list-model-analysis-modal.html
0 → 100644
View file @
c1ab40d8
<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"
>
×
</span>
</button>
</div>
</div>
</div>
<div
class=
"modal-body"
>
<div
dx-data-grid=
"modelExcptionModal.dxDataGridOptions"
></div>
</div>
\ No newline at end of file
atms-web/src/main/webapp/app/common/controls/check-list/check-list-report-comments-modal.html
0 → 100644
View file @
c1ab40d8
<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"
>
×
</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
atms-web/src/main/webapp/app/common/controls/check-list/check-list-risk-warning-modal.html
0 → 100644
View file @
c1ab40d8
<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"
>
×
</span>
</button>
</div>
</div>
<div
class=
"modal-body"
>
<div
dx-data-grid=
"modelExcptionModal.dxDataGridOptions"
></div>
</div>
\ No newline at end of file
atms-web/src/main/webapp/app/common/controls/check-list/check-list.ctrl.js
0 → 100644
View file @
c1ab40d8
commonModule
.
controller
(
'reportCheckListModalController'
,
[
'$scope'
,
'$log'
,
'$translate'
,
'$location'
,
"$compile"
,
'$timeout'
,
'$interval'
,
'$filter'
,
'SweetAlert'
,
'$uibModal'
,
'enums'
,
'checkListService'
,
'vatSessionService'
,
function
(
$scope
,
$log
,
$translate
,
$location
,
$compile
,
$timeout
,
$interval
,
$filter
,
SweetAlert
,
$uibModal
,
enums
,
checkListService
,
vatSessionService
)
{
$scope
.
stagesColors
=
{
"0"
:
{
color
:
"white"
,
icon
:
"white"
,
text
:
$translate
.
instant
(
'CheckListOTAll'
)
},
"1"
:
{
//无需填报
color
:
"grey"
,
icon
:
"fa-circle"
,
text
:
$translate
.
instant
(
'CheckListOTNotRequired'
)
},
"2"
:
{
//未填报
color
:
"#c63"
,
icon
:
"fa-circle-thin"
,
text
:
$translate
.
instant
(
'CheckListOTBlank'
)
},
"3"
:
{
//填报中
color
:
"#c63"
,
icon
:
"fa-adjust"
,
text
:
$translate
.
instant
(
'CheckListOTDraft'
)
},
"4"
:
{
//已提交
color
:
"#40A010"
,
icon
:
"fa-circle"
,
text
:
$translate
.
instant
(
'CheckListOTSubmitted'
)
},
"5"
:
{
//已完成
color
:
"#3c763d"
,
icon
:
"fa-check-circle"
,
text
:
$translate
.
instant
(
'CheckListOTCompleted'
)
}
};
$scope
.
sheetList
=
[];
$scope
.
modalInstance
=
null
;
$scope
.
filter
=
function
(
event
,
dataStages
)
{
$scope
.
sheetList
=
$
.
grep
(
$scope
.
listDataSource
,
function
(
x
)
{
return
(
!
dataStages
)
||
x
.
reportStatus
==
dataStages
;
});
var
eventTarget
=
event
.
target
;
$
(
eventTarget
).
closest
(
".summary"
).
find
(
"button"
).
removeClass
(
"activated"
);
$
(
eventTarget
).
addClass
(
"activated"
);
};
$scope
.
open
=
function
()
{
$
.
each
(
$scope
.
listDataSource
,
function
(
i
,
x
)
{
if
(
!!
x
.
lastModifiedTime
)
x
.
lastModifiedTime
=
new
Date
(
x
.
lastModifiedTime
);
x
.
reportDisplayName
=
[
x
.
reportCode
.
split
(
"."
).
reverse
().
shift
(),
x
.
reportName
].
join
(
"_"
);
x
.
alertNumber
=
_
.
reduce
(
x
.
cellAlerts
,
function
(
memo
,
list
)
{
return
memo
+
(
list
||
[]).
length
},
0
);
var
status
=
x
.
reportStatus
.
toString
();
x
.
statusIcon
=
$scope
.
stagesColors
[
status
].
icon
;
x
.
statusText
=
$scope
.
stagesColors
[
status
].
text
;
x
.
statusColor
=
{
color
:
$scope
.
stagesColors
[
status
].
color
};
_
.
each
(
x
.
reportComments
,
function
(
item
)
{
if
(
item
.
createTime
)
item
.
createTime
=
new
Date
(
item
.
createTime
);
});
//TODO:暂时简单的处理为有无异常,异常是否已处理就好,后期需要重新实现
x
.
hasError
=
_
.
reduce
(
x
.
exceptions
,
function
(
memo
,
list
)
{
return
memo
+
(
list
||
[]).
length
},
0
)
>
0
;
x
.
hasErrorFixed
=
_
.
reduce
(
_
.
union
(
_
.
values
(
x
.
exceptions
)),
function
(
memo
,
x
)
{
return
memo
&&
x
.
hasOwnProperty
(
"status"
)
?
x
.
status
==
1
:
true
},
true
);
});
$scope
.
sheetList
=
$scope
.
listDataSource
;
$scope
.
modalInstance
=
$uibModal
.
open
({
animation
:
false
,
ariaLabelledBy
:
'modal-title'
,
ariaDescribedBy
:
'modal-body'
,
backdrop
:
"static"
,
templateUrl
:
'/app/common/controls/check-list/check-list.html'
,
scope
:
$scope
,
windowClass
:
"report-check-list-modal"
});
};
$scope
.
cancel
=
function
()
{
$scope
.
modalInstance
.
dismiss
(
'cancel'
);
$scope
.
modalInstance
=
null
;
$scope
.
isOpen
=
false
;
};
$scope
.
close
=
function
()
{
$scope
.
modalInstance
.
close
();
$scope
.
modalInstance
=
null
;
$scope
.
isOpen
=
false
;
};
$scope
.
$watch
(
'isOpen'
,
function
(
newValue
,
oldValue
)
{
if
(
newValue
&&
!
$scope
.
modalInstance
)
$scope
.
open
();
if
(
!
newValue
&&
$scope
.
modalInstance
)
$scope
.
close
();
});
/*
显示"模型异常","预警详情"和"校验异常"详细信息
*/
$scope
.
modelExceptionModal
=
{
title
:
""
,
modalInstance
:
null
,
dataSource
:
[],
modelAnalysisColumns
:
[
{
alignment
:
"right"
,
dataField
:
"sequence"
,
dataType
:
"string"
,
caption
:
null
,
width
:
"2em"
},
{
alignment
:
"left"
,
dataField
:
"modelName"
,
dataType
:
"string"
,
caption
:
"模型名称"
,
width
:
"16em"
},
{
alignment
:
"right"
,
dataField
:
"amount"
,
dataType
:
"number"
,
caption
:
"金额"
,
width
:
"9em"
,
format
:
{
type
:
'currency'
,
precision
:
2
}
},
{
alignment
:
"left"
,
dataField
:
"advice"
,
dataType
:
"string"
,
caption
:
"建议"
},
{
alignment
:
"center"
,
dataField
:
"status"
,
dataType
:
"string"
,
caption
:
"状态"
,
width
:
"5em"
}
],
riskWarningColumns
:
[
{
alignment
:
"right"
,
dataField
:
"sequence"
,
dataType
:
"string"
,
caption
:
null
,
width
:
"2em"
},
{
alignment
:
"left"
,
dataField
:
"riskName"
,
dataType
:
"string"
,
caption
:
"预警明细"
,
width
:
"16em"
},
{
alignment
:
"left"
,
dataField
:
"advice"
,
dataType
:
"string"
,
caption
:
"建议"
},
{
alignment
:
"center"
,
dataField
:
"operation"
,
dataType
:
"string"
,
caption
:
"操作"
,
width
:
"6em"
}
],
dxDataGridInstance
:
null
,
dxDataGridOptions
:
{
bindingOptions
:
{
dataSource
:
"modelExceptionModal.dataSource"
},
allowColumnResizing
:
true
,
columns
:
[],
editing
:
{
allowAdding
:
false
,
allowDeleting
:
false
,
allowUpdating
:
false
},
focusStateEnabled
:
true
,
hoverStateEnabled
:
true
,
keyExpr
:
null
,
loadPanel
:
{
enabled
:
true
},
noDataText
:
$translate
.
instant
(
'NoDataText'
),
paging
:
{
enabled
:
false
},
rowAlternationEnabled
:
false
,
//单双行颜色
scrolling
:
{
mode
:
"infinite"
},
selection
:
{
allowSelectAll
:
false
,
mode
:
"single"
},
showBorders
:
true
,
showColumnLines
:
true
,
showRowLines
:
true
,
sorting
:
{
mode
:
"none"
},
onInitialized
:
function
(
e
)
{
$scope
.
modelExcptionModal
.
dxDataGridInstance
=
e
.
component
;
},
onCellPrepared
:
function
(
e
)
{
if
(
e
.
rowType
!==
"data"
||
e
.
column
.
dataField
!==
"operation"
)
return
;
var
btn
=
$
(
"<button type='button' ng-click='modelExceptionModal.confirmRiskWarning($event)'>确认</button>"
);
e
.
cellElement
.
html
(
$compile
(
btn
)(
$scope
));
}
},
open
:
function
(
item
)
{
if
(
!
$
.
isArray
(
item
.
exceptions
)
||
item
.
exceptions
.
length
<
1
)
return
;
var
that
=
$scope
.
modelExcptionModal
;
var
columns
,
templateUrl
,
title
,
windowClass
;
if
(
$scope
.
isModelAnalysis
)
{
columns
=
that
.
modelAnalysisColumns
;
templateUrl
=
"/app/common/controls/check-list/check-list-model-analysis-modal.html"
;
title
=
"模型异常详情"
;
windowClass
=
"check-list-model-analysis-modal"
;
}
else
{
columns
=
that
.
riskWarningColumns
;
templateUrl
=
"/app/common/controls/check-list/check-list-risk-warning-modal.html"
;
title
=
"预警详情"
;
windowClass
=
"check-list-risk-warning-modal"
;
}
that
.
dxDataGridOptions
.
columns
=
columns
;
that
.
dataSource
=
item
.
exceptions
;
that
.
title
=
title
;
$scope
.
modelExcptionModal
.
modalInstance
=
$uibModal
.
open
({
animation
:
false
,
ariaLabelledBy
:
'modal-title'
,
ariaDescribedBy
:
'modal-body'
,
backdrop
:
"static"
,
templateUrl
:
templateUrl
,
scope
:
$scope
,
windowClass
:
windowClass
});
},
close
:
function
()
{
$scope
.
modelExcptionModal
.
modalInstance
.
close
();
$scope
.
modelExcptionModal
.
modalInstance
=
null
;
},
confirmRiskWarning
:
function
(
item
)
{
//TODO:自定义逻辑
console
.
log
(
item
);
}
};
$scope
.
reportCommentsModal
=
{
checkListItem
:
null
,
modalInstance
:
null
,
dataSource
:
[],
dxDataGridInstance
:
null
,
dxDataGridOptions
:
{
bindingOptions
:
{
dataSource
:
"reportCommentsModal.dataSource"
},
allowColumnResizing
:
true
,
columns
:
[
{
alignment
:
"left"
,
dataField
:
"content"
,
dataType
:
"string"
,
caption
:
"备注"
},
{
alignment
:
"left"
,
dataField
:
"createBy"
,
dataType
:
"string"
,
caption
:
"备注人"
,
width
:
"6em"
},
{
alignment
:
"center"
,
dataField
:
"createTime"
,
dataType
:
"datetime"
,
caption
:
"备注时间"
,
width
:
"11em"
,
format
:
"yyyy-MM-dd HH:mm:ss"
},
{
alignment
:
"center"
,
dataField
:
"operation"
,
dataType
:
"string"
,
caption
:
""
,
width
:
"6em"
}
],
editing
:
{
mode
:
"popup"
,
form
:
{
items
:
[]
},
popup
:
{
title
:
"添加备注"
,
height
:
"260px"
,
width
:
"450px"
,
showTitle
:
true
,
position
:
{
my
:
"center"
,
at
:
"center"
,
of
:
window
},
onContentReady
:
function
(
e
)
{
var
textArea
=
$
(
"<div/>"
).
dxTextArea
({
height
:
"100%"
});
e
.
component
.
content
().
html
(
textArea
).
css
(
"padding-bottom"
,
0
);
e
.
component
.
bottomToolbar
().
find
(
"[dx-button]:eq(0)"
).
data
(
"dxButton"
).
option
(
"onClick"
,
function
()
{
var
text
=
textArea
.
data
(
"dxTextArea"
).
option
(
"value"
);
$scope
.
reportCommentsModal
.
addComment
(
text
).
then
(
function
(
rsponse
)
{
var
rst
=
rsponse
.
data
;
if
(
!
rst
.
result
)
return
;
rst
.
data
=
{
id
:
rst
.
data
,
content
:
text
,
createBy
:
vatSessionService
.
logUser
.
UserName
,
createTime
:
new
Date
()
};
$scope
.
reportCommentsModal
.
dataSource
.
push
(
rst
.
data
);
e
.
component
.
hide
();
});
});
}
}
},
focusStateEnabled
:
true
,
hoverStateEnabled
:
true
,
keyExpr
:
null
,
loadPanel
:
{
enabled
:
false
},
noDataText
:
$translate
.
instant
(
'NoDataText'
),
paging
:
{
enabled
:
false
},
rowAlternationEnabled
:
false
,
//单双行颜色
scrolling
:
{
mode
:
"infinite"
},
selection
:
{
allowSelectAll
:
false
,
mode
:
"single"
},
showBorders
:
true
,
showColumnLines
:
true
,
showRowLines
:
true
,
sorting
:
{
mode
:
"none"
},
onInitialized
:
function
(
e
)
{
$scope
.
reportCommentsModal
.
dxDataGridInstance
=
e
.
component
;
},
onCellPrepared
:
function
(
e
)
{
if
(
e
.
rowType
!==
"data"
||
e
.
column
.
dataField
!==
"operation"
)
return
;
var
btn
=
$
(
"<button type='button' class='operation' ng-click='reportCommentsModal.deleteComment($event)'>删除</button>"
);
e
.
cellElement
.
html
(
$compile
(
btn
)(
$scope
));
}
},
open
:
function
(
item
)
{
if
(
!
item
.
reportId
)
return
;
var
that
=
$scope
.
reportCommentsModal
;
that
.
dataSource
=
item
.
reportComments
;
that
.
checkListItem
=
item
;
that
.
modalInstance
=
$uibModal
.
open
({
animation
:
false
,
ariaLabelledBy
:
'modal-title'
,
ariaDescribedBy
:
'modal-body'
,
backdrop
:
"static"
,
templateUrl
:
"/app/common/controls/check-list/check-list-report-comments-modal.html"
,
scope
:
$scope
,
windowClass
:
"check-list-report-comments-modal"
});
},
close
:
function
()
{
$scope
.
reportCommentsModal
.
modalInstance
.
close
();
$scope
.
reportCommentsModal
.
modalInstance
=
null
;
},
popEditForm
:
function
()
{
$scope
.
reportCommentsModal
.
dxDataGridInstance
.
addRow
();
},
addComment
:
function
(
content
)
{
return
checkListService
.
addReportComment
(
$scope
.
reportCommentsModal
.
checkListItem
.
reportId
,
content
);
},
deleteComment
:
function
(
e
)
{
var
options
=
$
(
e
.
target
.
closest
(
"tr"
)).
data
(
"options"
);
checkListService
.
removeReportComment
(
options
.
data
.
id
).
then
(
function
(
response
)
{
if
(
response
.
data
&&
response
.
data
.
result
)
{
var
index
=
$scope
.
reportCommentsModal
.
dataSource
.
findIndex
(
function
(
x
)
{
return
x
.
id
===
options
.
data
.
id
;
});
if
(
index
!==
-
1
)
{
$scope
.
reportCommentsModal
.
dataSource
.
splice
(
index
,
1
);
}
}
});
}
}
}
]);
atms-web/src/main/webapp/app/common/controls/check-list/check-list.html
0 → 100644
View file @
c1ab40d8
<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"
>
×
</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
atms-web/src/main/webapp/app/common/controls/check-list/check-list.js
0 → 100644
View file @
c1ab40d8
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
atms-web/src/main/webapp/app/common/controls/check-list/check-list.less
0 → 100644
View file @
c1ab40d8
.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
atms-web/src/main/webapp/app/common/vatservices/checkList.svc.js
0 → 100644
View file @
c1ab40d8
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
atms-web/src/main/webapp/app/common/vatservices/vatReportService.js
View file @
c1ab40d8
...
@@ -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
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment