Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
hg-smart
Overview
Overview
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
platform
hg-smart
Commits
8c80b4d1
Commit
8c80b4d1
authored
Oct 31, 2024
by
江和松
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
f1a460cc
8860b951
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
129 additions
and
489 deletions
+129
-489
ServiceHGCW010.java
.../java/com/baosight/hggp/hg/cw/service/ServiceHGCW010.java
+16
-21
ServiceHGCW010D.java
...java/com/baosight/hggp/hg/cw/service/ServiceHGCW010D.java
+3
-3
ServiceHGCW011.java
.../java/com/baosight/hggp/hg/cw/service/ServiceHGCW011.java
+62
-11
ServiceHGPZ009.java
.../java/com/baosight/hggp/hg/pz/service/ServiceHGPZ009.java
+4
-2
ServiceHGSC007.java
.../java/com/baosight/hggp/hg/sc/service/ServiceHGSC007.java
+2
-2
HGSC007.xml
src/main/java/com/baosight/hggp/hg/sc/sql/HGSC007.xml
+2
-2
auto-login.js
src/main/resources/META-INF/resources/auto-login.js
+0
-179
auto-login.jsp
src/main/resources/META-INF/resources/auto-login.jsp
+0
-242
iPlatV7-index.js
src/main/resources/META-INF/resources/iPlatV7-index.js
+17
-10
login.jsp
src/main/resources/META-INF/resources/login.jsp
+0
-12
HGCW010.js
src/main/webapp/HG/CW/HGCW010.js
+2
-2
HGCW010A.js
src/main/webapp/HG/CW/HGCW010A.js
+6
-0
HGCW010A.jsp
src/main/webapp/HG/CW/HGCW010A.jsp
+1
-1
HGCW010D.js
src/main/webapp/HG/CW/HGCW010D.js
+6
-0
HGCW010D.jsp
src/main/webapp/HG/CW/HGCW010D.jsp
+1
-1
HGCW010E.js
src/main/webapp/HG/CW/HGCW010E.js
+6
-0
HGCW010E.jsp
src/main/webapp/HG/CW/HGCW010E.jsp
+1
-1
No files found.
src/main/java/com/baosight/hggp/hg/cw/service/ServiceHGCW010.java
View file @
8c80b4d1
...
...
@@ -131,19 +131,12 @@ public class ServiceHGCW010 extends ServiceBase {
AssertUtils
.
isNull
(
HGSC001
,
"项目编码["
+
hgcw010
.
getProjCode
()
+
"]不存在"
);
hgcw010
.
setProjName
(
HGSC001
.
getProjName
());
}
hgcw010
.
setBillState
(
HGConstant
.
BillStatus
.
S1
);
if
(
StringUtils
.
isNotBlank
(
hgcw010
.
getBillNumber
())){
hgcw010
.
setBillState
(
HGConstant
.
BillStatus
.
S2
);
}
hgcw010
.
setSigningDate
(
DateUtils
.
formatShort
(
hgcw010
.
getSigningDate
()));
if
(
hgcw010
.
getId
()
==
null
||
hgcw010
.
getId
()
==
0
)
{
hgcw010
.
setBillState
(
HGConstant
.
BillStatus
.
S1
);
hgcw010
.
setReviewStatus
(
ReviewStatusEnum
.
UNREVIEWED
.
getCode
());
this
.
add
(
hgcw010
);
}
else
{
List
<
HGCW011
>
hgcw011List
=
HGCWTools
.
HgCw011
.
getMainId
(
hgcw010
.
getId
());
if
(
hgcw011List
.
size
()
>
0
&&
StringUtils
.
isNotEmpty
(
hgcw010
.
getBillNumber
())){
hgcw010
.
setBillState
(
HGConstant
.
BillStatus
.
S2
);
}
this
.
modify
(
hgcw010
);
}
}
...
...
@@ -189,9 +182,9 @@ public class ServiceHGCW010 extends ServiceBase {
try
{
List
<
Map
>
resultRows
=
inInfo
.
getBlock
(
EiConstant
.
resultBlock
).
getRows
();
for
(
int
i
=
0
;
i
<
resultRows
.
size
();
i
++)
{
HGCW010
HGCW
010
=
new
HGCW010
();
HGCW
010
.
fromMap
(
resultRows
.
get
(
i
));
List
<
HGCW011
>
hgcw011List
=
HGCWTools
.
HgCw011
.
getMainId
(
HGCW
010
.
getId
());
HGCW010
hgcw
010
=
new
HGCW010
();
hgcw
010
.
fromMap
(
resultRows
.
get
(
i
));
List
<
HGCW011
>
hgcw011List
=
HGCWTools
.
HgCw011
.
getMainId
(
hgcw
010
.
getId
());
if
(
CollectionUtils
.
isNotEmpty
(
hgcw011List
))
{
for
(
HGCW011
hgcw011
:
hgcw011List
)
{
HGCW002
hgcw002
=
HGCWTools
.
HgCw002
.
getContractNumber
(
hgcw011
.
getSettlementNumber
());
...
...
@@ -206,10 +199,10 @@ public class ServiceHGCW010 extends ServiceBase {
HGCWTools
.
HgCw008
.
deductionAmount
(
hgcw011
.
getSettlementNumber
(),
hgcw011
.
getTotalContractPriceIncluding
().
multiply
(
new
BigDecimal
(-
1
)));
}
DaoUtils
.
update
(
"HGCW011.delete"
,
hgcw011
);
DaoUtils
.
update
(
HGCW011
.
DELETE
,
hgcw011
);
}
}
DaoUtils
.
update
(
"HGCW010.delete"
,
HGCW
010
);
DaoUtils
.
update
(
HGCW010
.
DELETE
,
hgcw
010
);
}
inInfo
=
this
.
query
(
inInfo
);
inInfo
.
setStatus
(
EiConstant
.
STATUS_DEFAULT
);
...
...
@@ -322,9 +315,9 @@ public class ServiceHGCW010 extends ServiceBase {
return
inInfo
;
}
public
void
addHGCW011
(
HGCW011
HGCW
011
)
{
HGCW
011
.
setId
(
null
);
DaoUtils
.
insert
(
"HGCW011.insert"
,
HGCW
011
);
public
void
addHGCW011
(
HGCW011
hgcw
011
)
{
hgcw
011
.
setId
(
null
);
DaoUtils
.
insert
(
HGCW011
.
INSERT
,
hgcw
011
);
}
...
...
@@ -339,7 +332,7 @@ public class ServiceHGCW010 extends ServiceBase {
for
(
int
i
=
0
;
i
<
resultRows
.
size
();
i
++)
{
HGCW010
HGCW010
=
new
HGCW010
();
HGCW010
.
fromMap
(
resultRows
.
get
(
i
));
HGCW010
.
setReviewStatus
(
1
);
HGCW010
.
setReviewStatus
(
ReviewStatusEnum
.
REVIEWED
.
getCode
()
);
DaoUtils
.
update
(
"HGCW010.submit"
,
HGCW010
);
}
inInfo
=
this
.
query
(
inInfo
);
...
...
@@ -351,14 +344,16 @@ public class ServiceHGCW010 extends ServiceBase {
return
inInfo
;
}
@OperationLogAnnotation
(
operModul
=
"销售开票"
,
operType
=
"开票"
,
operDesc
=
"开票保存"
)
public
EiInfo
billing
(
EiInfo
inInfo
){
try
{
List
<
Map
>
resultRows
=
inInfo
.
getBlock
(
EiConstant
.
resultBlock
).
getRows
();
for
(
int
i
=
0
;
i
<
resultRows
.
size
();
i
++)
{
HGCW010
HGCW010
=
new
HGCW010
();
HGCW010
.
fromMap
(
resultRows
.
get
(
i
));
HGCW010
.
setBillState
(
2
);
DaoUtils
.
update
(
"HGCW010.billing"
,
HGCW010
);
HGCW010
hgcw010
=
new
HGCW010
();
hgcw010
.
fromMap
(
resultRows
.
get
(
i
));
hgcw010
.
setBillState
(
HGConstant
.
BillStatus
.
S2
);
this
.
modify
(
hgcw010
);
//DaoUtils.update("HGCW010.billing", hgcw010);
}
inInfo
=
this
.
query
(
inInfo
);
inInfo
.
setStatus
(
EiConstant
.
STATUS_DEFAULT
);
...
...
src/main/java/com/baosight/hggp/hg/cw/service/ServiceHGCW010D.java
View file @
8c80b4d1
...
...
@@ -207,16 +207,16 @@ public class ServiceHGCW010D extends ServiceEPBase {
public
void
add
(
HGCW010
hgcw010
)
{
hgcw010
.
setInvoiceCode
(
SequenceGenerator
.
getNextSequence
(
HGConstant
.
SequenceId
.
HGCW10_INVOICE_CODE
));
DaoUtils
.
insert
(
"HGCW010.insert"
,
hgcw010
);
DaoUtils
.
insert
(
HGCW010
.
INSERT
,
hgcw010
);
}
public
void
modify
(
HGCW010
hgcw010
)
{
DaoUtils
.
update
(
"HGCW010.update"
,
hgcw010
);
DaoUtils
.
update
(
HGCW010
.
UPDATE
,
hgcw010
);
}
public
void
addHGCW011
(
HGCW011
hgcw011
)
{
hgcw011
.
setId
(
null
);
DaoUtils
.
insert
(
"HGCW011.insert"
,
hgcw011
);
DaoUtils
.
insert
(
HGCW011
.
INSERT
,
hgcw011
);
}
public
List
<
HGCW011
>
mapToList
(
List
<
Map
>
rows
,
Long
mainId
)
{
...
...
src/main/java/com/baosight/hggp/hg/cw/service/ServiceHGCW011.java
View file @
8c80b4d1
package
com
.
baosight
.
hggp
.
hg
.
cw
.
service
;
import
com.baosight.eplat.utils.StringUtils
;
import
com.baosight.hggp.aspect.annotation.OperationLogAnnotation
;
import
com.baosight.hggp.common.DdynamicEnum
;
import
com.baosight.hggp.core.dao.DaoUtils
;
import
com.baosight.hggp.hg.cw.domain.HGCW002
;
import
com.baosight.hggp.hg.cw.domain.HGCW006
;
import
com.baosight.hggp.hg.cw.domain.HGCW010
;
import
com.baosight.hggp.hg.cw.domain.HGCW011
;
import
com.baosight.hggp.hg.cw.tools.HGCWTools
;
import
com.baosight.hggp.hg.cw.vo.UserVO
;
import
com.baosight.hggp.util.CommonMethod
;
import
com.baosight.hggp.util.LogUtils
;
import
com.baosight.hggp.util.MapUtils
;
import
com.baosight.iplat4j.core.ei.EiConstant
;
import
com.baosight.iplat4j.core.ei.EiInfo
;
import
com.baosight.iplat4j.core.exception.PlatException
;
import
com.baosight.iplat4j.core.service.impl.ServiceBase
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -30,7 +37,7 @@ public class ServiceHGCW011 extends ServiceBase {
* @return
*/
@OperationLogAnnotation
(
operModul
=
"
账期维护
"
,
operType
=
"查询"
,
operDesc
=
"初始化"
)
@OperationLogAnnotation
(
operModul
=
"
销售开票
"
,
operType
=
"查询"
,
operDesc
=
"初始化"
)
public
EiInfo
initLoad
(
EiInfo
inInfo
)
{
try
{
CommonMethod
.
initBlock
(
inInfo
,
Arrays
.
asList
(
DdynamicEnum
.
FACTORY_RECORD_BLOCK_ID
,
...
...
@@ -48,7 +55,7 @@ public class ServiceHGCW011 extends ServiceBase {
* @param inInfo
* @return
*/
@OperationLogAnnotation
(
operModul
=
"
账期维护
"
,
operType
=
"查询"
,
operDesc
=
"查询"
)
@OperationLogAnnotation
(
operModul
=
"
销售开票
"
,
operType
=
"查询"
,
operDesc
=
"查询"
)
@Override
public
EiInfo
query
(
EiInfo
inInfo
)
{
try
{
...
...
@@ -59,13 +66,56 @@ public class ServiceHGCW011 extends ServiceBase {
return
inInfo
;
}
@Override
public
EiInfo
update
(
EiInfo
inInfo
)
{
try
{
List
<
HGCW011
>
hgcw011s
=
MapUtils
.
toDaoEPBases
(
inInfo
,
HGCW011
.
class
);
Long
mainId
=
hgcw011s
.
stream
().
map
(
HGCW011:
:
getMainId
).
distinct
().
findAny
().
orElseThrow
(()
->
new
PlatException
(
"请选择主表数据"
));
HGCW010
hgcw010
=
HGCWTools
.
HgCw010
.
getId
(
String
.
valueOf
(
mainId
));
List
<
HGCW011
>
hgcw011List
=
HGCWTools
.
HgCw011
.
getMainId
(
mainId
);
for
(
HGCW011
hgcw011:
hgcw011s
)
{
HGCW002
hgcw002
=
HGCWTools
.
HgCw002
.
getContractNumber
(
hgcw011
.
getSettlementNumber
());
HGCW006
hgcw006
=
HGCWTools
.
HgCw006
.
getContractNumber
(
hgcw011
.
getSettlementNumber
());
HGCW011
cw011
=
hgcw011List
.
stream
().
filter
(
hgcw0111
->
hgcw0111
.
getId
().
equals
(
hgcw011
.
getId
())).
findFirst
().
get
();
BigDecimal
acount
=
hgcw011
.
getTotalContractPriceIncluding
();
if
(
acount
.
compareTo
(
cw011
.
getTotalContractPriceIncluding
())
>
0
){
acount
=
acount
.
subtract
(
cw011
.
getTotalContractPriceIncluding
());
}
else
if
(
acount
.
compareTo
(
cw011
.
getTotalContractPriceIncluding
())
<
0
){
acount
=
cw011
.
getTotalContractPriceIncluding
().
subtract
(
acount
).
multiply
(
new
BigDecimal
(-
1
));
}
if
(
StringUtils
.
isNotNull
(
hgcw002
)){
HGCWTools
.
HgCw008
.
remainingAmount
(
hgcw011
.
getSettlementNumber
(),
acount
);
}
else
if
(
StringUtils
.
isNotNull
(
hgcw006
)){
HGCWTools
.
HgCw006
.
deductionAmount
(
hgcw011
.
getSettlementNumber
(),
acount
);
}
else
{
HGCWTools
.
HgCw008
.
deductionAmount
(
hgcw011
.
getSettlementNumber
(),
acount
);
}
this
.
modify
(
hgcw011
);
}
List
<
HGCW011
>
hgcw011List1
=
HGCWTools
.
HgCw011
.
getMainId
(
mainId
);
BigDecimal
totalContractPriceIncluding
=
hgcw011List1
.
stream
().
map
(
HGCW011:
:
getTotalContractPriceIncluding
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
BigDecimal
taxPoints
=
new
BigDecimal
(
hgcw010
.
getTaxPoints
());
// 假设这是以整数形式给出的税率,比如17表示17%
BigDecimal
taxRateAsDecimal
=
taxPoints
.
divide
(
new
BigDecimal
(
"100"
)).
add
(
new
BigDecimal
(
"1"
));
// 将税率转换为小数形式
BigDecimal
thisSettlementAmount
=
totalContractPriceIncluding
.
divide
(
taxRateAsDecimal
,
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
thisSettlementTax
=
totalContractPriceIncluding
.
subtract
(
thisSettlementAmount
);
// 计算税额
hgcw010
.
setThisSettlementTax
(
thisSettlementTax
.
toString
());
hgcw010
.
setThisSettlementAmount
(
thisSettlementAmount
.
toString
());
DaoUtils
.
update
(
HGCW010
.
UPDATE
,
hgcw010
);
inInfo
.
setStatus
(
EiConstant
.
STATUS_DEFAULT
);
inInfo
.
setMsg
(
"操作成功!本次对["
+
hgcw011s
.
size
()
+
"]条数据保存成功!"
);
}
catch
(
PlatException
e
){
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"修改失败"
);
}
return
inInfo
;
}
/**
* 新增操作
*
* @param inInfo
* @return
*/
@OperationLogAnnotation
(
operModul
=
"
账期维护
"
,
operType
=
"保存"
,
operDesc
=
"保存"
)
@OperationLogAnnotation
(
operModul
=
"
销售开票
"
,
operType
=
"保存"
,
operDesc
=
"保存"
)
public
EiInfo
save
(
EiInfo
inInfo
)
{
try
{
List
<
Map
>
resultRows
=
inInfo
.
getBlock
(
EiConstant
.
resultBlock
).
getRows
();
...
...
@@ -96,21 +146,21 @@ public class ServiceHGCW011 extends ServiceBase {
/**
* 新增操作
*
* @param
HGCW
011
* @param
hgcw
011
* @return
*/
public
void
add
(
HGCW011
HGCW
011
)
{
DaoUtils
.
insert
(
"HGCW011.insert"
,
HGCW
011
);
public
void
add
(
HGCW011
hgcw
011
)
{
DaoUtils
.
insert
(
HGCW011
.
INSERT
,
hgcw
011
);
}
/**
* 修改操作
*
* @param
HGCW
011
* @param
hgcw
011
* @return
*/
public
void
modify
(
HGCW011
HGCW
011
)
{
DaoUtils
.
update
(
"HGCW011.update"
,
HGCW
011
);
public
void
modify
(
HGCW011
hgcw
011
)
{
DaoUtils
.
update
(
HGCW011
.
UPDATE
,
hgcw
011
);
}
/**
...
...
@@ -119,12 +169,13 @@ public class ServiceHGCW011 extends ServiceBase {
* @param inInfo
* @return
*/
@OperationLogAnnotation
(
operModul
=
"账期维护"
,
operType
=
"删除"
,
operDesc
=
"删除"
)
@OperationLogAnnotation
(
operModul
=
"销售开票"
,
operType
=
"删除"
,
operDesc
=
"删除"
)
@Override
public
EiInfo
delete
(
EiInfo
inInfo
)
{
try
{
List
<
Map
>
resultRows
=
inInfo
.
getBlock
(
EiConstant
.
resultBlock
).
getRows
();
for
(
int
i
=
0
;
i
<
resultRows
.
size
();
i
++)
{
DaoUtils
.
update
(
"HGCW011.delete"
,
resultRows
.
get
(
i
));
DaoUtils
.
update
(
HGCW011
.
DELETE
,
resultRows
.
get
(
i
));
}
inInfo
=
this
.
query
(
inInfo
);
inInfo
.
setStatus
(
EiConstant
.
STATUS_DEFAULT
);
...
...
src/main/java/com/baosight/hggp/hg/pz/service/ServiceHGPZ009.java
View file @
8c80b4d1
...
...
@@ -5,6 +5,7 @@ import com.baosight.hggp.core.constant.CommonConstant;
import
com.baosight.hggp.core.dao.DaoUtils
;
import
com.baosight.hggp.core.enums.OrgTypeEnum
;
import
com.baosight.hggp.core.enums.ValidFlagEnum
;
import
com.baosight.hggp.core.security.UserSessionUtils
;
import
com.baosight.hggp.hg.constant.HGConstant
;
import
com.baosight.hggp.hg.pz.domain.HGPZ009
;
import
com.baosight.hggp.hg.xs.tools.HGXSTools
;
...
...
@@ -66,9 +67,10 @@ public class ServiceHGPZ009 extends ServiceBase {
Map
queryRow
=
EiInfoUtils
.
getFirstRow
(
inInfo
);
// 排除虚拟企业
queryRow
.
put
(
"exValidFlag"
,
ValidFlagEnum
.
VIRTUALLY
.
getCode
());
queryRow
.
put
(
"accountCode"
,
UserSessionUtils
.
getAccountCode
());
inInfo
=
super
.
query
(
inInfo
,
HGPZ009
.
QUERY
,
new
HGPZ009
());
String
projectEnv
=
ProjectInfo
.
getProjectEnv
();
inInfo
.
setCell
(
EiConstant
.
resultBlock
,
ACConstants
.
ROW_CODE_0
,
"projectEnv"
,
projectEnv
);
//
String projectEnv = ProjectInfo.getProjectEnv();
//
inInfo.setCell(EiConstant.resultBlock, ACConstants.ROW_CODE_0, "projectEnv", projectEnv);
}
catch
(
Exception
e
)
{
LogUtils
.
setDetailMsg
(
inInfo
,
e
,
"查询失败"
);
}
...
...
src/main/java/com/baosight/hggp/hg/sc/service/ServiceHGSC007.java
View file @
8c80b4d1
...
...
@@ -398,8 +398,8 @@ public class ServiceHGSC007 extends ServiceEPBase {
});
List
list
=
factoryCodes
.
stream
()
.
filter
(
o
->
com
.
baosight
.
hggp
.
util
.
StringUtils
.
equals
(
o
.
getOrgType
(),
OrgTypeEnum
.
FACTORY
.
getCode
()))
.
map
(
item
->
new
Factory
(
item
.
getCompanyCode
(),
item
.
getCompanyName
(),
item
.
get
FactoryCode
(),
item
.
get
FactoryN
ame
())).
collect
(
Collectors
.
collectingAndThen
(
.
map
(
item
->
new
Factory
(
item
.
getCompanyCode
(),
item
.
getCompanyName
(),
item
.
get
OrgId
(),
item
.
get
OrgCn
ame
())).
collect
(
Collectors
.
collectingAndThen
(
Collectors
.
toMap
(
Factory:
:
getFactoryCode
,
Function
.
identity
(),
(
oldValue
,
newValue
)
->
oldValue
),
// 将Map转回List
...
...
src/main/java/com/baosight/hggp/hg/sc/sql/HGSC007.xml
View file @
8c80b4d1
...
...
@@ -1067,7 +1067,7 @@
</isNotEmpty>
group by h2.process_code
) B on A.process_code = B.process_code
where 1=1
where 1=1
and DELETE_FLAG = '0'
<isNotEmpty
prepend=
" AND "
property=
"accountCode"
>
A.account_code = #accountCode#
</isNotEmpty>
...
...
@@ -1099,7 +1099,7 @@
</isNotEmpty>
group by h2.process_code
) B on A.process_code = B.process_code
where 1=1
where 1=1
and DELETE_FLAG = '0'
<isNotEmpty
prepend=
" AND "
property=
"accountCode"
>
A.account_code = #accountCode#
</isNotEmpty>
...
...
src/main/resources/META-INF/resources/auto-login.js
deleted
100644 → 0
View file @
f1a460cc
$
(
function
()
{
// 登录页加载完成时,进行浏览器版本检测
window
.
onload
=
function
()
{
var
BROWSER_VERSION
=
9
;
var
browser
=
(
function
()
{
var
ua
=
navigator
.
userAgent
,
tem
,
M
=
ua
.
match
(
/
(
opera|chrome|safari|firefox|msie|trident
(?=\/))\/?\s
*
(\d
+
)
/i
)
||
[];
if
(
/trident/i
.
test
(
M
[
1
]))
{
tem
=
/
\b
rv
[
:
]
+
(\d
+
)
/g
.
exec
(
ua
)
||
[];
return
'IE '
+
(
tem
[
1
]
||
''
);
}
if
(
M
[
1
]
===
'Chrome'
)
{
tem
=
ua
.
match
(
/
\b(
OPR|Edge
)\/(\d
+
)
/
);
if
(
tem
!=
null
)
return
tem
.
slice
(
1
).
join
(
' '
).
replace
(
'OPR'
,
'Opera'
);
}
M
=
M
[
2
]
?
[
M
[
1
],
M
[
2
]]
:
[
navigator
.
appName
,
navigator
.
appVersion
,
'-?'
];
if
((
tem
=
ua
.
match
(
/version
\/(\d
+
)
/i
))
!=
null
)
M
.
splice
(
1
,
1
,
tem
[
1
]);
return
M
.
join
(
' '
);
})();
var
BrowserVersion
=
browser
.
split
(
" "
);
if
((
/^
(
MS
)?(
)?
IE/
).
test
(
browser
)
&&
BrowserVersion
[
1
]
<
BROWSER_VERSION
)
{
$
(
".warning-window"
).
css
(
"display"
,
"block"
);
$
(
".i-overlay"
).
css
(
"display"
,
"block"
);
}
if
((
/^
(
MS
)?(
)?
IE/
).
test
(
browser
)
&&
BrowserVersion
[
1
]
<
BROWSER_VERSION
-
1
)
{
$
(
"#login"
).
attr
(
"disabled"
,
true
);
}
// 触发登录操作
loginClick
();
};
$
(
".i-close"
).
on
(
"click"
,
function
()
{
$
(
".warning-window"
).
css
(
"display"
,
"none"
);
$
(
".i-overlay"
).
css
(
"display"
,
"none"
);
});
//放大镜
$
(
".i-zoom-close"
).
on
(
"click"
,
function
()
{
$
(
".zoom-window"
).
css
(
"display"
,
"none"
);
$
(
".i-overlay"
).
css
(
"display"
,
"none"
);
});
$
(
".info-detail"
).
on
(
"click"
,
function
()
{
$
(
".zoom-window"
).
css
(
"display"
,
"block"
);
$
(
".i-overlay"
).
css
(
"display"
,
"block"
);
});
$
.
fn
.
textScroll
=
function
(
options
)
{
var
defaults
=
{
duration
:
8000
,
//滚动总时长控制
mode
:
'normal'
,
//滚动模式:普通normal;逐行line
perDistance
:
18
//line模式下每次滚动距离
},
that
=
this
,
scrollInterval
,
content
=
this
.
find
(
".text-content"
);
var
items
=
$
.
extend
({},
defaults
,
options
);
//添加占位元素,处理无法滚动到底的情况
function
addHoldDiv
(
stage
,
textContent
)
{
if
(
items
.
mode
===
'no-gap'
)
{
that
.
append
(
content
.
clone
().
addClass
(
"second-text"
));
}
else
{
var
holdDiv
=
"<div class='hold-scroll'></div>"
;
stage
.
append
(
holdDiv
);
var
divHeight
=
stage
.
height
()
+
textContent
.
height
();
$
(
".hold-scroll"
).
css
({
"width"
:
"100%"
,
"height"
:
divHeight
,
"color"
:
"transparent"
});
}
}
//根据不同模式添加动画
function
addAnimate
()
{
if
(
items
.
mode
===
'normal'
||
items
.
mode
===
'no-gap'
)
{
var
scrollPercent
=
that
.
scrollTop
()
/
content
.
outerHeight
(
true
);
if
(
that
.
scrollTop
()
===
0
)
{
that
.
animate
({
scrollTop
:
'0'
},
1000
);
}
that
.
animate
({
scrollTop
:
content
.
outerHeight
(
true
)},
Math
.
round
(
items
.
duration
*
(
1
-
scrollPercent
)),
"linear"
);
that
.
animate
({
scrollTop
:
'0'
},
0
,
arguments
.
callee
);
}
else
if
(
items
.
mode
===
'line'
)
{
var
times
=
Math
.
ceil
(
content
.
outerHeight
(
true
)
/
items
.
perDistance
);
scrollInterval
=
setInterval
(
function
()
{
if
(
content
.
outerHeight
(
true
)
-
that
.
scrollTop
()
<=
0
)
{
that
.
animate
({
scrollTop
:
0
},
0
);
}
else
{
that
.
animate
({
scrollTop
:
that
.
scrollTop
()
+
items
.
perDistance
},
0
);
}
},
Math
.
round
(
items
.
duration
/
times
));
}
}
addHoldDiv
(
that
,
content
);
that
.
niceScroll
({
'autohidemode'
:
'false'
});
that
.
mouseenter
(
function
()
{
if
(
items
.
mode
===
'normal'
||
items
.
mode
===
'no-gap'
)
{
that
.
stop
(
true
);
}
else
if
(
items
.
mode
===
'line'
)
{
clearInterval
(
scrollInterval
);
}
that
.
getNiceScroll
().
show
();
});
that
.
mouseleave
(
function
(
e
)
{
var
targetElement
=
$
(
e
.
toElement
);
if
(
targetElement
.
hasClass
(
"nicescroll-rails-vr"
)
||
targetElement
.
hasClass
(
"nicescroll-cursors"
))
{
targetElement
.
one
(
"mouseleave"
,
function
(
e
)
{
if
(
$
(
e
.
toElement
)
!==
that
&&
!
$
(
e
.
toElement
).
hasClass
(
"nicescroll-rails-vr"
))
{
that
.
getNiceScroll
().
hide
();
addAnimate
();
}
});
}
else
if
(
!
targetElement
.
hasClass
(
"nicescroll-rails-vr"
)
&&
!
targetElement
.
hasClass
(
"nicescroll-cursors"
))
{
that
.
getNiceScroll
().
hide
();
addAnimate
();
}
});
that
.
mouseleave
();
};
loginClick
=
function
()
{
var
loginForm
=
document
.
getElementsByTagName
(
"form"
)[
0
];
var
urlParam
=
location
.
href
.
substr
(
location
.
href
.
indexOf
(
"?"
)
+
1
);
if
(
urlParam
.
indexOf
(
"p_redirect"
)
!==
-
1
)
{
var
keyString
=
urlParam
.
split
(
'='
)[
0
];
var
valueString
=
urlParam
.
split
(
'='
)[
1
];
if
(
keyString
===
"p_redirect"
)
{
var
tmpInput
=
document
.
createElement
(
"input"
);
tmpInput
.
type
=
"hidden"
;
tmpInput
.
name
=
"p_redirect"
;
tmpInput
.
value
=
valueString
;
loginForm
.
appendChild
(
tmpInput
);
}
}
// 将密码框的值修改为加密后的值
var
loginPublicKey
=
$
(
"#__LOGIN_PUBLICKEY__"
).
val
();
if
(
isAvailable
(
loginPublicKey
)){
var
encrypt
=
new
JSEncrypt
();
encrypt
.
setPublicKey
(
loginPublicKey
);
var
encryptedUsername
=
encrypt
.
encrypt
(
$
(
"input[name='p_username1']"
).
val
());
$
(
"input[name='p_username']"
).
val
(
encryptedUsername
);
var
encryptedPassword
=
encrypt
.
encrypt
(
$
(
"input[name='p_password1']"
).
val
());
$
(
"input[name='p_password']"
).
val
(
encryptedPassword
);
}
loginForm
.
submit
();
};
//判断是否值能获取的方法
function
isAvailable
(
obj
)
{
if
(
obj
===
undefined
)
{
return
false
;
}
if
(
obj
===
null
)
{
return
false
;
}
if
(
obj
===
"null"
)
{
return
false
;
}
return
obj
!==
""
;
}
function
getParameterByName
(
name
,
url
)
{
var
regex
=
new
RegExp
(
"[?&]"
+
name
+
"(=([^&#]*)|&|#|$)"
),
results
=
regex
.
exec
(
url
);
if
(
!
results
)
{
return
null
;
}
if
(
!
results
[
2
])
{
return
null
;
}
return
decodeURIComponent
(
results
[
2
].
replace
(
/
\+
/g
,
" "
));
}
});
src/main/resources/META-INF/resources/auto-login.jsp
deleted
100644 → 0
View file @
f1a460cc
<!DOCTYPE html>
<
%@
page
contentType=
"text/html; charset=UTF-8"
%
>
<
%@
page
import=
"com.baosight.iplat4j.common.constant.RSAConstants"
%
>
<
%@
page
import=
"com.baosight.iplat4j.core.FrameworkInfo"
%
>
<
%@
page
import=
"com.baosight.iplat4j.core.license.LicenseStub"
%
>
<
%@
page
import=
"com.baosight.iplat4j.core.log.Logger"
%
>
<
%@
page
import=
"com.baosight.iplat4j.core.log.LoggerFactory"
%
>
<
%@
page
import=
"com.baosight.iplat4j.core.util.StringUtils"
%
>
<
%@
page
import=
"java.net.URLDecoder"
%
>
<
%@
taglib
prefix=
"c"
uri=
"http://java.sun.com/jsp/jstl/core"
%
>
<
%@
taglib
prefix=
"EF"
tagdir=
"/WEB-INF/tags/EF"
%
>
<
%
org
.
springframework
.
security
.
core
.
context
.
SecurityContextHolder
.
clearContext
();
LicenseStub
.
setLicenseDir
(
application
.
getRealPath
("/
WEB-INF
"));
String
[]
ret =
LicenseStub.checkLicense2();
boolean
valid =
"true"
.
equals
(
ret
[
0
]);
//
LicenseStub
.
checkLicense2
();
int
days =
0;
if
(!"".
equals
(
ret
[
2
])
&&
!"
0
".
equals
(
ret
[
2
]))
{
days =
Integer.parseInt(ret[2]);
}
String
licMsg =
valid
?
(("
false
".
equals
(
ret
[
3
])
&&
days
>
= -10
&&
days
<
0
)
?
"<
div
style=
'color:#ee9933;font-weight:bold;font-size:18px'
>
许可证还有[" + (-days) + "]天将过期!
</div>
"
: "")
: "
<div
style=
'color:red;font-weight:bold;font-size:22px'
>
许可证非法!
</div>
";
Exception exp = (Exception) request.getAttribute("AuthenticationException");
String user = (String) request.getAttribute("AuthenticationUser");
if (!org.springframework.util.StringUtils.isEmpty(request.getParameter("expmsg"))) {
String expmsg = request.getParameter("expmsg");
exp = new Exception(URLDecoder.decode("Exception:" + expmsg));
}
String loginErrTag = "0";
if (!org.springframework.util.StringUtils.isEmpty(request.getParameter("login_error"))) {
loginErrTag = request.getParameter("login_error");
}
String username = "";
String password = "";
String captcha = "";
if (exp != null) {
username = user;
}
String usrHeader = request.getHeader("user-agent");
String projectCname = FrameworkInfo.getProjectCname();
String projectTypeDesc = FrameworkInfo.getProjectTypeDesc();
// 获取iPlatUI静态资源地址
String iPlatStaticURL = FrameworkInfo.getPlatStaticURL(request);
String theme = "ant";
// 获取Context根路径,考虑到分布式部署的场景,不能直接使用WebContext
String iPlatContext = FrameworkInfo.getPlatWebContext(request);
//读取加密配置,以及公钥
String loginPublicKey = "";
if ("on".equals(RSAConstants.cryptoPasswordEnable)) {
loginPublicKey = RSAConstants.loginRsaPublicKey;
}
final Logger logger = LoggerFactory.getLogger("index");
String LoginLogo = "default";
String LoginSystemName = "";
%>
<c:set
var=
"ctx"
value=
"<%=iPlatContext%>"
/>
<c:set
var=
"iPlatStaticURL"
value=
"<%=iPlatStaticURL%>"
/>
<c:set
var=
"loginExp"
value=
"<%=exp%>"
/>
<c:set
var=
"theme"
value=
"<%=theme%>"
scope=
"session"
/>
<c:set
var=
"LoginLogo"
value=
"<%=LoginLogo%>"
/>
<c:set
var=
"LoginSystemName"
value=
"<%=LoginLogo%>"
/>
<html
class=
"i-theme-blue"
>
<head>
<meta
charset=
"utf-8"
/>
<meta
name=
"robots"
content=
"noindex, nofollow"
/>
<meta
name=
"description"
content=
"登录界面"
/>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
/>
<
%
if
(
StringUtils
.
isNotEmpty
(
projectCname
)
&&
StringUtils
.
isNotEmpty
(
projectTypeDesc
))
{
%
>
<title><
%=
projectCname
%
>
[
<
%=
projectTypeDesc
%
>
]登录界面
</title>
<
%
}
else
{
%
>
<title>
登录界面
</title>
<
%
}
%
>
<link
rel=
"shortcut icon"
href=
"iplat.ico"
type=
"image/x-icon"
>
<link
rel=
"stylesheet"
id=
"css-main"
href=
"${iPlatStaticURL}/iplatui/assets/css/iplat.ui.bootstrap.min.css"
>
<link
href=
"${iPlatStaticURL}/iPlatV7-login.css"
rel=
"stylesheet"
type=
"text/css"
/>
<
%
--
<
link
rel=
"stylesheet"
type=
"text/css"
href=
"${iPlatStaticURL}/iplatui/css/iplat.ui.ued.login.css"
>
<
%
–
ued亮色样式
–
%
>
--%>
<script
src=
"${iPlatStaticURL}/kendoui/js/jquery.min.js"
></script>
<!--[if lte IE 8]>
<link href="${iPlatStaticURL}/iPlatV7-login-ie.css" rel="stylesheet" type="text/css"/>
<script src="${iPlatStaticURL}/iplatui/assets/js/polyfills/iplat.ui.ie8.polyfills.min.js"></script>
<![endif]-->
<script
src=
"${iPlatStaticURL}/auto-login.js"
></script>
<
%
--
引入
RSA
加密
js--
%
>
<script
src=
"${iPlatStaticURL}/iplatui/js/jsencrypt.js"
></script>
<
%
String
domain =
FrameworkInfo.getProjectAppTopDomain();
if
(
domain
!=
null
&&
domain
.
startsWith
("."))
{
domain =
domain.substring(1);
%
>
<script
type=
"text/javascript"
>
try
{
document
.
domain
=
'<%=domain%>'
;
}
catch
(
ex
)
{
alert
(
'model not valid[<%=domain%>]'
);
}
</script>
<
%
}
%
>
</head>
<body
class=
"i-theme-${theme}"
style=
"display: none;"
>
<div
class=
"main"
>
<div
class=
"wrapper"
>
<div
class=
"content overflow-hidden"
>
<div
class=
"row"
>
<
%
--
公钥参数
--
%
>
<input
id=
"__LOGIN_PUBLICKEY__"
inline=
"true"
type=
"hidden"
value=
"<%=loginPublicKey%>"
/>
<div
class=
"col-sm-6 col-sm-offset-2 col-md-4 col-md-offset-4"
style=
"margin-bottom: 1em"
>
<div
class=
"form-header"
>
<p
style=
"font-size: 28px;"
><b>
企业经营一体化平台
</b></p>
</div>
</div>
<div
class=
"col-sm-6 col-sm-offset-2 col-md-4 col-md-offset-4"
>
<div
class=
"login-block <c:if test="
${
not
empty
loginExp
}"
>
animated shake
</c:if>
"
style="background-color: white;border-radius: 10px">
<div
class=
"form-header"
>
<c:choose>
<c:when
test=
"${LoginLogo == 'default'}"
>
<div
class=
""
>
<
%
--logodefault--
%
>
<div
style=
"color: #004B9D;margin-left: 63%"
><
%=
LoginSystemName
%
>
</div>
</div>
</c:when>
<c:otherwise>
<div
class=
"logo"
>
<img
src=
"<%=LoginLogo%>"
style=
"float: left;height: 43px"
>
<div
style=
" width: 2px;height: 43px;background-color: rgba(28, 29, 35, 0.04);float: left;margin-left: 10px;margin-right: 10px"
></div>
<img
src=
"iplatui/img/login/bld_logo.png"
style=
"float: left;width: 90px;height: 43px;"
>
<div
style=
"color: #004B9D;margin-left: 58%"
><
%=
LoginSystemName
%
>
</div>
</div>
</c:otherwise>
</c:choose>
<p
style=
"font-size: 20px;color: black;"
>
用户登录
</p>
<p
class=
"text-danger"
>
<c:if
test=
"${not empty loginExp}"
>
<
%
String
loginError =
exp.getMessage();
int
index =
loginError.indexOf("Exception:");
if
(
index
>
= 0) {
loginError = loginError.substring(index + 10);
}
if (!"1".equals(loginErrTag)
&&
(request.getAttribute("AuthenticationUser") == null
|| request.getAttribute("AuthenticationUser") == "")) {
loginError = "请输入用户名";
}
%>
<
%=
loginError
%
>
</c:if>
</p>
</div>
<form
autocomplete=
"off"
class=
"form-horizontal push-10-t push-10"
action=
"${ctx}/login"
method=
"post"
onsubmit=
"javascript:return loginClick();"
>
<div
class=
"form-group"
>
<div
class=
"col-xs-12"
>
<div
class=
"input-group"
>
<div
class=
"input-group-addon"
style=
"background-color: rgb(232, 240, 254)"
>
账号
</div>
<input
class=
"form-input"
type=
"text"
style=
"border: rgb(232, 240, 254);background-color: rgb(232, 240, 254);color: black"
value=
"YG5918"
name=
"p_username1"
placeholder=
"用户名"
/>
</div>
</div>
</div>
<div
class=
"form-group password"
>
<div
class=
"col-xs-12"
>
<div
class=
"input-group"
>
<div
class=
"input-group-addon"
style=
"background-color: rgb(232, 240, 254)"
>
密码
</div>
<input
class=
"form-input"
type=
"password"
style=
"border: rgb(232, 240, 254);background-color: rgb(232, 240, 254);color: black"
value=
"Easy160731!"
name=
"p_password1"
autocomplete=
"off"
placeholder=
"密码"
/>
</div>
</div>
</div>
<input
type=
"text"
name=
"p_username"
placeholder=
"用户名"
style=
""
/>
<input
type=
"password"
name=
"p_password"
autocomplete=
"off"
placeholder=
"密码"
style=
""
/>
<div
class=
"form-group remember"
>
<div
class=
"col-xs-6"
>
<
%
--
<
label
class=
"css-input"
>
--%>
<
%
--
<
input
type=
"checkbox"
id=
"login-remember-me"
value=
"false"
--
%
>
<
%
--name=
"remember-me"
/><span
class=
"i-icon"
></span>
--%>
<
%
--2
周内免登录
--
%
>
<
%
--
</
label
>
--%>
<
%
--
<
a
href=
"${ctx}/web/XS0102"
>
注册账号
</a>
--%>
</div>
<div
class=
"col-xs-6"
style=
"text-align: right"
>
<
%
--
<
a
href=
"${ctx}/web/XS0102"
style=
"margin-right: 6px"
>
注册
</a>
--%>
<
%
--
<
a
href=
"${ctx}/web/XS0106"
>
忘记密码?
</a>
--%>
</div>
</div>
<div
class=
"form-group log-in"
>
<div
class=
"col-xs-12"
>
<button
id=
"login"
class=
"login-btn"
type=
"submit"
>
登录
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"i-overlay"
></div>
</body>
<script
type=
"text/javascript"
>
var
ctx
=
"${ctx}"
;
</script>
</html>
src/main/resources/META-INF/resources/iPlatV7-index.js
View file @
8c80b4d1
...
...
@@ -2100,14 +2100,14 @@ $(function () {
try
{
if
(
loginName
!==
"admin"
){
var
info
=
new
EiInfo
()
info
.
set
(
"inqu_status-0-accountCode"
,
loginName
)
//
info.set("inqu_status-0-accountCode", loginName)
EiCommunicator
.
send
(
"HGPZ009"
,
"query"
,
info
,
{
onSuccess
:
function
(
ei
)
{
//返回结果集
if
(
ei
.
blocks
.
result
!==
undefined
){
let
results
=
ei
.
getBlock
(
"result"
).
getMappedRows
();
if
(
results
.
length
>
0
&&
results
[
0
].
docIdPc
.
trim
().
length
>
0
){
let
src
=
downloadHref
(
results
[
0
].
docIdPc
.
trim
(),
results
[
0
].
projectEnv
)
let
img
=
`<img src="
${
src
}
" style='width:200px;height:55px;background-image: none;'/>`
;
//let src = downloadFile(results[0].docIdPc.trim(),true
)
let
img
=
"<img src=
\
'"
+
downloadFile
(
results
[
0
].
docIdPc
.
trim
(),
true
)
+
"
\
' style='width:200px;height:55px;background-image: none;'/>"
;
$
(
"#sidebar .sidebar-content .side-header"
).
html
(
img
);
//$("#sidebar .sidebar-content .side-header").attr("src",downloadHref(results[0].docIdPc,results[0].projectEnv));
}
else
{
...
...
@@ -2200,13 +2200,20 @@ function changepassword(formEname,formCname){
});
}
function
downloadHref
(
docId
,
projectEnv
)
{
// S3地址有外网
// return IPLATUI.CONTEXT_PATH + ("run" == projectEnv ? ('/docFileDownload/' + docId)
// : ('/EU/DM/EUDM06.jsp?docId=' + docId));
// S3地址无外网
return
IPLATUI
.
CONTEXT_PATH
+
(
"run"
==
projectEnv
?
(
'/file/download/'
+
docId
)
:
(
'/EU/DM/EUDM06.jsp?docId='
+
docId
));
/**
* 文件下载路径
*
* @param docId
* @param isPreview 是否预览,true:预览
* @returns {string}
*/
let
downloadFile
=
function
(
docId
,
isPreview
)
{
if
(
isPreview
)
{
return
IPLATUI
.
CONTEXT_PATH
+
'/file/download/preview/'
+
docId
;
}
else
{
// S3地址必须支持公网
return
IPLATUI
.
CONTEXT_PATH
+
'/file/download/'
+
docId
;
}
}
/**
...
...
src/main/resources/META-INF/resources/login.jsp
View file @
8c80b4d1
...
...
@@ -21,7 +21,6 @@
%>
<%
String pAuthen = request.getParameter("p_authen");
String directmode = request.getParameter("maintain") != null ? request.getParameter("maintain").toString() : "";
RequestDispatcher rd;
String appName = FrameworkInfo.getProjectAppName();
...
...
@@ -95,17 +94,6 @@
} else {
response.sendRedirect(request.getContextPath() + _urlHtml);
}
} else if ("Trust".equals(pAuthen)) {
// 自动登录
rd = request.getRequestDispatcher("auto-login.jsp");
try {
rd.forward(request, response);
} catch (ServletException e1) {
e1.printStackTrace();
} finally {
out.clear();
out = pageContext.pushBody();
}
} else {
//以正常方式进入登录首页
rd = request.getRequestDispatcher("iPlatV7-login.jsp");
...
...
src/main/webapp/HG/CW/HGCW010.js
View file @
8c80b4d1
...
...
@@ -434,8 +434,8 @@ function billFunc() {
message
(
"勾选的数据中有已经开票的票据!"
);
flag
=
false
;
}
if
(
row
.
billNumber
==
" "
)
{
message
(
"
勾选的数据中发票号为空
"
);
if
(
isBlank
(
row
.
billNumber
)
)
{
message
(
"
选中的第"
+
(
index
+
1
)
+
"行数据中发票号为空!
"
);
flag
=
false
;
}
})
...
...
src/main/webapp/HG/CW/HGCW010A.js
View file @
8c80b4d1
...
...
@@ -81,11 +81,17 @@ function saveFunc() {
let
flag
=
true
;
$
.
each
(
rows
,
function
(
index
,
item
)
{
let
reviewStatus
=
item
.
get
(
"reviewStatus"
);
let
thisAmount
=
item
.
get
(
"thisAmount"
);
if
((
reviewStatus
===
"1"
)){
message
(
"数据已审核"
);
flag
=
false
;
return
false
;
}
if
(
!
isNumber
(
thisAmount
)
&&
thisAmount
<=
0
)
{
message
(
"勾选的第"
+
(
index
+
1
)
+
"行本次收票金额必须是大于0的数字"
);
flag
=
false
;
return
false
;
}
});
if
(
flag
)
{
JSUtils
.
confirm
(
"确定对勾选中的["
+
rows
.
length
+
"]条数据做
\"
保存
\"
操作? "
,
{
...
...
src/main/webapp/HG/CW/HGCW010A.jsp
View file @
8c80b4d1
...
...
@@ -56,7 +56,7 @@
data-errorprompt=
"请输入数字,该值最大可设置15位整数和2位小数!"
/>
<EF:EFColumn
ename=
"thisPriceTax"
cname=
"结算含税金额"
enable=
"false"
hidden=
"false"
format=
"{0:N2}"
align=
"right"
/>
<EF:EFColumn
ename=
"thisAmount"
cname=
"本次开票金额"
width=
"120"
enable=
"true"
readonly=
"false"
format=
"{0:N2}"
editType=
"text"
displayType=
"0.00"
sort=
"true"
align=
"right"
maxLength=
"15"
required=
"
fals
e"
displayType=
"0.00"
sort=
"true"
align=
"right"
maxLength=
"15"
required=
"
tru
e"
data-regex=
"/^-?[0-9]{1,15}([.][0-9]{1,2})?$/"
data-errorprompt=
"请输入数字,该值最大可设置15位整数和2位小数!"
/>
<EF:EFColumn
ename=
"remainingAmount"
cname=
"剩余开票金额"
width=
"120"
enable=
"false"
format=
"{0:N2}"
editType=
"text"
...
...
src/main/webapp/HG/CW/HGCW010D.js
View file @
8c80b4d1
...
...
@@ -57,11 +57,17 @@ function saveFunc() {
let
flag
=
true
;
$
.
each
(
rows
,
function
(
index
,
item
)
{
let
reviewStatus
=
item
.
get
(
"reviewStatus"
);
let
thisAmount
=
item
.
get
(
"thisAmount"
);
if
((
reviewStatus
===
"1"
)){
message
(
"数据已审核"
);
flag
=
false
;
return
false
;
}
if
(
!
isNumber
(
thisAmount
)
&&
thisAmount
<=
0
)
{
message
(
"勾选的第"
+
(
index
+
1
)
+
"行本次收票金额必须是大于0的数字"
);
flag
=
false
;
return
false
;
}
});
if
(
flag
)
{
JSUtils
.
confirm
(
"确定对勾选中的["
+
rows
.
length
+
"]条数据做
\"
保存
\"
操作? "
,
{
...
...
src/main/webapp/HG/CW/HGCW010D.jsp
View file @
8c80b4d1
...
...
@@ -69,7 +69,7 @@
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,2})?$/"
data-errorprompt="请输入数字,该值最大可设置15位整数和2位小数!"/>
<EF:EFColumn ename="thisAmount" cname="本次开票金额" width="120" enable="true" readonly="false" format="{0:N2}" editType="text"
displayType="0.00" sort="true" align="right" maxLength="15" required="
fals
e"
displayType="0.00" sort="true" align="right" maxLength="15" required="
tru
e"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,2})?$/"
data-errorprompt="请输入数字,该值最大可设置15位整数和2位小数!"/>
<EF:EFColumn ename="remainingAmount" cname="剩余开票金额" width="120" enable="false" format="{0:N2}" editType="text"
...
...
src/main/webapp/HG/CW/HGCW010E.js
View file @
8c80b4d1
...
...
@@ -57,11 +57,17 @@ function saveFunc() {
let
flag
=
true
;
$
.
each
(
rows
,
function
(
index
,
item
)
{
let
reviewStatus
=
item
.
get
(
"reviewStatus"
);
let
thisAmount
=
item
.
get
(
"thisAmount"
);
if
((
reviewStatus
===
"1"
)){
message
(
"数据已审核"
);
flag
=
false
;
return
false
;
}
if
(
!
isNumber
(
thisAmount
)
&&
thisAmount
<=
0
)
{
message
(
"勾选的第"
+
(
index
+
1
)
+
"行本次收票金额必须是大于0的数字"
);
flag
=
false
;
return
false
;
}
});
if
(
flag
)
{
JSUtils
.
confirm
(
"确定对勾选中的["
+
rows
.
length
+
"]条数据做
\"
保存
\"
操作? "
,
{
...
...
src/main/webapp/HG/CW/HGCW010E.jsp
View file @
8c80b4d1
...
...
@@ -63,7 +63,7 @@
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,2})?$/"
data-errorprompt="请输入数字,该值最大可设置15位整数和2位小数!"/>
<EF:EFColumn ename="thisAmount" cname="本次开票金额" width="120" enable="true" readonly="false" format="{0:N2}" editType="text"
displayType="0.00" sort="true" align="right" maxLength="15" required="
fals
e"
displayType="0.00" sort="true" align="right" maxLength="15" required="
tru
e"
data-regex="/^-?[0-9]{1,15}([.][0-9]{1,2})?$/"
data-errorprompt="请输入数字,该值最大可设置15位整数和2位小数!"/>
<EF:EFColumn ename="remainingAmount" cname="剩余开票金额" width="120" enable="false" format="{0:N2}" editType="text"
...
...
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