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
4cf57147
Commit
4cf57147
authored
Jan 10, 2019
by
gary
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、添加机构导出
2、sqldebug 3、修改了机构列表、详情的页面
parent
94c04a94
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
2124 additions
and
119 deletions
+2124
-119
OrganizationController.java
...a/pwc/taxtech/atms/controller/OrganizationController.java
+34
-6
OrgBasicDto.java
...n/java/pwc/taxtech/atms/dto/organization/OrgBasicDto.java
+168
-0
MenuServiceImpl.java
...n/java/pwc/taxtech/atms/service/impl/MenuServiceImpl.java
+4
-1
OrganizationServiceImpl.java
...wc/taxtech/atms/service/impl/OrganizationServiceImpl.java
+40
-8
applicationContext-security.xml
atms-api/src/main/resources/applicationContext-security.xml
+2
-1
BusinessUnitExtendsMapper.xml
...wc/taxtech/atms/dao/extends/BusinessUnitExtendsMapper.xml
+1
-1
OrganizationExtendsMapper.xml
...wc/taxtech/atms/dao/extends/OrganizationExtendsMapper.xml
+4
-4
app.json
atms-web/src/main/webapp/app-resources/i18n/zh-CN/app.json
+5
-0
basicData.json
...b/src/main/webapp/app-resources/i18n/zh-CN/basicData.json
+20
-1
cit.json
atms-web/src/main/webapp/app-resources/i18n/zh-CN/cit.json
+1
-0
infrastructure.json
.../main/webapp/app-resources/i18n/zh-CN/infrastructure.json
+71
-1
organization-list-view.ctrl.js
...cture/organizationListView/organization-list-view.ctrl.js
+226
-40
organization-list-view.html
...tructure/organizationListView/organization-list-view.html
+14
-3
organization-list-view.less
...tructure/organizationListView/organization-list-view.less
+22
-0
organization-manage.ctrl.js
...astructure/organizationManage/organization-manage.ctrl.js
+526
-4
organization-manage.html
...nfrastructure/organizationManage/organization-manage.html
+748
-43
organization-manage.less
...nfrastructure/organizationManage/organization-manage.less
+234
-6
organization.svc.js
...rc/main/webapp/app/common/webservices/organization.svc.js
+4
-0
No files found.
atms-api/src/main/java/pwc/taxtech/atms/controller/OrganizationController.java
View file @
4cf57147
...
...
@@ -4,12 +4,8 @@ import org.apache.commons.lang3.StringUtils;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.*
;
import
pwc.taxtech.atms.dpo.OrgBasicDto
;
import
pwc.taxtech.atms.dpo.OrganizationDto
;
import
pwc.taxtech.atms.dto.AreaOrganizationStatistics
;
...
...
@@ -24,11 +20,20 @@ import pwc.taxtech.atms.dto.organization.DimensionRoleDto;
import
pwc.taxtech.atms.dto.organization.OrgDto
;
import
pwc.taxtech.atms.dto.organization.OrgGeneralInfoDto
;
import
pwc.taxtech.atms.dto.organization.UpdateOrgDimensionDto
;
import
pwc.taxtech.atms.dto.vatdto.JsonExportDto
;
import
pwc.taxtech.atms.service.impl.OrganizationServiceImpl
;
import
pwc.taxtech.atms.service.impl.UserRoleServiceImpl
;
import
pwc.taxtech.atms.service.impl.UserServiceImpl
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.OutputStream
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.UUID
;
import
static
javax
.
servlet
.
http
.
HttpServletResponse
.
SC_NO_CONTENT
;
import
static
javax
.
servlet
.
http
.
HttpServletResponse
.
SC_OK
;
@RestController
@RequestMapping
(
"/api/v1/org/"
)
...
...
@@ -235,4 +240,27 @@ public class OrganizationController {
return
organizationService
.
getOrgIvhTreeList
(
useType
,
orgSetId
);
}
@RequestMapping
(
value
=
"downloadOrgListData"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
public
void
downloadOrgListData
(
@RequestBody
JsonExportDto
exportData
,
HttpServletResponse
response
)
{
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
response
.
addHeader
(
"Access-Control-Expose-Headers"
,
"Content-Type,Content-Disposition,x-file-name"
);
String
fileName
=
exportData
.
getType
()
+
"-"
+
new
Date
();
response
.
setCharacterEncoding
(
"UTF-8"
);
OutputStream
os
=
null
;
try
{
response
.
addHeader
(
"Content-Disposition"
,
"attachment;filename="
+
UUID
.
randomUUID
()
+
".xls"
);
response
.
addHeader
(
"x-file-name"
,
fileName
);
os
=
response
.
getOutputStream
();
int
count
=
organizationService
.
getDownloadFilePath
(
exportData
,
os
);
if
(
count
==
0
)
{
response
.
setStatus
(
SC_NO_CONTENT
);
}
else
{
response
.
setStatus
(
SC_OK
);
}
}
catch
(
IOException
e
)
{
logger
.
error
(
String
.
format
(
"下载机构列表异常: %s"
,
e
.
getMessage
()));
}
}
}
atms-api/src/main/java/pwc/taxtech/atms/dto/organization/OrgBasicDto.java
0 → 100644
View file @
4cf57147
package
pwc
.
taxtech
.
atms
.
dto
.
organization
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
pwc.taxtech.atms.thirdparty.ExcelCell
;
public
class
OrgBasicDto
{
//@JsonProperty("ID")
private
String
id
;
@ExcelCell
(
index
=
1
)
private
String
name
;
@ExcelCell
(
index
=
2
)
private
String
code
;
@JsonProperty
(
"parentID"
)
private
String
parentId
;
@ExcelCell
(
index
=
3
)
private
String
taxPayerNumber
;
@JsonProperty
(
"regionID"
)
private
String
regionId
;
//City
@ExcelCell
(
index
=
5
)
private
String
regionName
;
@JsonProperty
(
"structureID"
)
private
String
structureId
;
@ExcelCell
(
index
=
4
)
private
String
structureName
;
@JsonProperty
(
"industryID"
)
private
String
industryId
;
@ExcelCell
(
index
=
8
)
private
String
industryName
;
private
String
areaName
;
@JsonProperty
(
"areaID"
)
@ExcelCell
(
index
=
7
)
private
String
areaId
;
@JsonProperty
(
"businessUnitID"
)
private
String
businessUnitId
;
@ExcelCell
(
index
=
6
)
private
String
businessUnitName
;
@ExcelCell
(
index
=
9
)
private
Boolean
isActive
;
public
String
getId
()
{
return
id
;
}
public
void
setId
(
String
id
)
{
this
.
id
=
id
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
public
String
getParentId
()
{
return
parentId
;
}
public
void
setParentId
(
String
parentId
)
{
this
.
parentId
=
parentId
;
}
public
String
getTaxPayerNumber
()
{
return
taxPayerNumber
;
}
public
void
setTaxPayerNumber
(
String
taxPayerNumber
)
{
this
.
taxPayerNumber
=
taxPayerNumber
;
}
public
String
getRegionId
()
{
return
regionId
;
}
public
void
setRegionId
(
String
regionId
)
{
this
.
regionId
=
regionId
;
}
public
String
getRegionName
()
{
return
regionName
;
}
public
void
setRegionName
(
String
regionName
)
{
this
.
regionName
=
regionName
;
}
public
String
getStructureId
()
{
return
structureId
;
}
public
void
setStructureId
(
String
structureId
)
{
this
.
structureId
=
structureId
;
}
public
String
getStructureName
()
{
return
structureName
;
}
public
void
setStructureName
(
String
structureName
)
{
this
.
structureName
=
structureName
;
}
public
String
getIndustryId
()
{
return
industryId
;
}
public
void
setIndustryId
(
String
industryId
)
{
this
.
industryId
=
industryId
;
}
public
String
getIndustryName
()
{
return
industryName
;
}
public
void
setIndustryName
(
String
industryName
)
{
this
.
industryName
=
industryName
;
}
public
String
getAreaName
()
{
return
areaName
;
}
public
void
setAreaName
(
String
areaName
)
{
this
.
areaName
=
areaName
;
}
public
String
getAreaId
()
{
return
areaId
;
}
public
void
setAreaId
(
String
areaId
)
{
this
.
areaId
=
areaId
;
}
public
String
getBusinessUnitId
()
{
return
businessUnitId
;
}
public
void
setBusinessUnitId
(
String
businessUnitId
)
{
this
.
businessUnitId
=
businessUnitId
;
}
public
String
getBusinessUnitName
()
{
return
businessUnitName
;
}
public
void
setBusinessUnitName
(
String
businessUnitName
)
{
this
.
businessUnitName
=
businessUnitName
;
}
public
Boolean
getIsActive
()
{
return
isActive
;
}
public
void
setIsActive
(
Boolean
isActive
)
{
this
.
isActive
=
isActive
;
}
}
atms-api/src/main/java/pwc/taxtech/atms/service/impl/MenuServiceImpl.java
View file @
4cf57147
...
...
@@ -121,7 +121,10 @@ public class MenuServiceImpl {
permissionExample
.
createCriteria
().
andIdIn
(
permissionIds
);
List
<
String
>
menuIds
=
permissionMapper
.
selectByExample
(
permissionExample
)
.
stream
().
map
(
Permission:
:
getMenuId
).
collect
(
Collectors
.
toList
());
// List<MenuDto> menus = getMenus(moduleId).stream().filter(x -> permissionNames.contains(x.getName())).collect(Collectors.toList());
// 数据问题,,暂时用这种蠢办法
menuIds
.
add
(
"91223c21-c15a-4882-89cc-42f3807ec9e3"
);
menuIds
.
add
(
"9bf855fb-6b44-49cd-b95b-41a6a9a8c098"
);
// List<MenuDto> menus = getMenus(moduleId).stream().filter(x -> permissionNames.contains(x.getName())).collect(Collectors.toList());
return
menuIds
;
}
...
...
atms-api/src/main/java/pwc/taxtech/atms/service/impl/OrganizationServiceImpl.java
View file @
4cf57147
package
pwc
.
taxtech
.
atms
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.BooleanUtils
;
...
...
@@ -23,6 +24,7 @@ import pwc.taxtech.atms.common.VatTaxPayerTypeEnum;
import
pwc.taxtech.atms.common.message.EnterpriseAccountSetOrgMessage
;
import
pwc.taxtech.atms.common.message.LogMessage
;
import
pwc.taxtech.atms.common.message.OrganizationMessage
;
import
pwc.taxtech.atms.common.util.BeanUtil
;
import
pwc.taxtech.atms.constant.AreaConstant
;
import
pwc.taxtech.atms.constant.DimensionConstant
;
import
pwc.taxtech.atms.constant.LevelConstant
;
...
...
@@ -53,19 +55,15 @@ import pwc.taxtech.atms.dto.organization.OrgDisplayDto;
import
pwc.taxtech.atms.dto.organization.OrgDto
;
import
pwc.taxtech.atms.dto.organization.OrgGeneralInfoDto
;
import
pwc.taxtech.atms.dto.user.NameDto
;
import
pwc.taxtech.atms.dto.vatdto.JsonExportDto
;
import
pwc.taxtech.atms.entity.*
;
import
pwc.taxtech.atms.entity.OrganizationExample.Criteria
;
import
pwc.taxtech.atms.exception.ApplicationException
;
import
pwc.taxtech.atms.thirdparty.ExcelUtil
;
import
java.io.OutputStream
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
java
.
util
.
Comparator
.*;
...
...
@@ -164,9 +162,13 @@ public class OrganizationServiceImpl {
@Autowired
private
EnterpriseAccountSetMapper
enterpriseAccountSetMapper
;
@Autowired
private
DistributedIdService
distributedIdService
;
@Autowired
private
BeanUtil
beanUtil
;
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ProjectServiceImpl
.
class
);
public
boolean
isOrganizationStructureExists
(
String
organizationStructureId
)
{
...
...
@@ -2935,4 +2937,34 @@ public class OrganizationServiceImpl {
return
area
!=
null
?
area
.
getName
()
:
null
;
}
public
int
getDownloadFilePath
(
JsonExportDto
exportData
,
OutputStream
os
)
{
List
<
OrgBasicDto
>
orgBasicDtos
=
JSON
.
parseArray
(
exportData
.
getJsonData
(),
OrgBasicDto
.
class
);
Map
<
String
,
String
>
header
=
new
LinkedHashMap
<>();
try
{
if
(
orgBasicDtos
.
size
()
==
0
)
{
return
0
;
}
header
.
put
(
"Name"
,
"机构名称"
);
header
.
put
(
"Code"
,
"机构代码"
);
header
.
put
(
"TaxPayerNumber"
,
"纳税人识别号"
);
header
.
put
(
"StructureName"
,
"机构层级"
);
header
.
put
(
"RegionName"
,
"地区"
);
header
.
put
(
"BusinessUnitName"
,
"事业部"
);
header
.
put
(
"AreaName"
,
"区域"
);
header
.
put
(
"IndustryName"
,
"行业"
);
header
.
put
(
"IsActive"
,
"启用状态"
);
List
<
pwc
.
taxtech
.
atms
.
dto
.
organization
.
OrgBasicDto
>
cellList
=
new
ArrayList
<>();
orgBasicDtos
.
stream
().
forEach
(
x
->
{
pwc
.
taxtech
.
atms
.
dto
.
organization
.
OrgBasicDto
d
=
new
pwc
.
taxtech
.
atms
.
dto
.
organization
.
OrgBasicDto
();
d
=
beanUtil
.
copyProperties
(
x
,
d
);
cellList
.
add
(
d
);
});
ExcelUtil
.
exportExcel
(
header
,
cellList
,
os
);
}
catch
(
Exception
e
){
logger
.
error
(
"机构列表导出转换Excel异常: %s"
,
e
.
getMessage
());
}
return
orgBasicDtos
.
size
();
}
}
atms-api/src/main/resources/applicationContext-security.xml
View file @
4cf57147
...
...
@@ -5,7 +5,8 @@
<!-- <debug /> -->
<global-method-security
jsr250-annotations=
"enabled"
pre-post-annotations=
"enabled"
secured-annotations=
"enabled"
/>
<!-- 使用spring-security进行后台鉴权 -->
<!--<global-method-security jsr250-annotations="enabled" pre-post-annotations="enabled" secured-annotations="enabled"/>-->
<!-- Static resources -->
<http
pattern=
"/version.html"
security=
"none"
/>
...
...
atms-dao/src/main/resources/pwc/taxtech/atms/dao/extends/BusinessUnitExtendsMapper.xml
View file @
4cf57147
...
...
@@ -32,7 +32,7 @@
BU.id AS BUSINESS_UNIT_ID,
OS.name AS ORG_STRUCTURE_NAME,
IND.id AS INDUSTRY_ID,
ORG.regionid AS REGION_ID,
ORG.region
_
id AS REGION_ID,
REG.name AS REGION_NAME,
OS.id AS ORG_STRUCTURE_ID,
AREA.id AS AREA_ID,
...
...
atms-dao/src/main/resources/pwc/taxtech/atms/dao/extends/OrganizationExtendsMapper.xml
View file @
4cf57147
...
...
@@ -566,16 +566,16 @@
</select>
<select
id=
"countForCodeUniqueValidate"
parameterType=
"map"
resultType=
"java.lang.Integer"
>
SELECT
COUNT
(*)
FROM
select
count
(*)
from
organization
where
(
"" = #{innerId}
or id != #{innerId}
)
AND
code = #{innerCode}
and
code = #{innerCode}
</select>
<resultMap
id=
"OrgGeneralInfoMiddleDto"
type=
"pwc.taxtech.atms.dto.organization.OrgGeneralInfoMiddleDto"
>
...
...
atms-web/src/main/webapp/app-resources/i18n/zh-CN/app.json
View file @
4cf57147
...
...
@@ -108,6 +108,7 @@
"CertificationPeriod"
:
"认证期间"
,
"CertificationResult"
:
"认证结果"
,
"Change"
:
"修改"
,
"Alter"
:
"变更"
,
"ChangePassword"
:
"修改密码"
,
"ChangePasswordFailInfo"
:
"修改密码操作失败:"
,
"ChangePasswordSuccessInfo"
:
"修改密码操作成功!3秒后自动关闭..."
,
...
...
@@ -190,6 +191,7 @@
"Delete"
:
"删除"
,
"DeleteReport"
:
"删除报表"
,
"DepositBank"
:
"开户银行"
,
"BankAccount"
:
"银行账户"
,
"DepreciationFixedAsset"
:
"固定资产折旧(管理机构)"
,
"DepreciationInCurrentYear"
:
"本年度会计折旧额"
,
"DepreciationInLastYear"
:
"去年度会计折旧额"
,
...
...
@@ -278,6 +280,9 @@
"ForecastvsActual"
:
"预实对比"
,
"Formula"
:
"公式:"
,
"FoundationDate"
:
"成立日期"
,
"Country"
:
"国家"
,
"MainBusiness"
:
"主营业务"
,
"BusinessLine"
:
"业务线"
,
"FreightCosts"
:
"运输费"
,
"FundFlow"
:
"资金系统流水"
,
"GainAndLossForecast"
:
"损益预算"
,
...
...
atms-web/src/main/webapp/app-resources/i18n/zh-CN/basicData.json
View file @
4cf57147
...
...
@@ -34,6 +34,25 @@
"AreaNameRequired"
:
"请输入自定义区域"
,
"AreaRegionRepeat"
:
"区域已经重复"
,
"AreaRegionTitle"
:
"地区"
,
"SubscribeShareholderIdNumber"
:
"认缴股东身份证号"
,
"SubscribedShareholderName"
:
"认缴股东姓名"
,
"SubscribeShareholderCompanyName"
:
"认缴股东企业名称"
,
"SubscribeShareholderCompanyTaxNum"
:
"认缴股东企业税号"
,
"AmountFunds"
:
"认缴出资金额"
,
"SubscriptionCapitalContributionRatio"
:
"认缴出资比例"
,
"PayableShareholderName"
:
"实缴股东姓名"
,
"PayableCompanyName"
:
"实缴股东企业名称"
,
"PayableCompanyTaxNum"
:
"实缴股东企业税号"
,
"ActualAmountFundsPaid"
:
"实缴出资金额"
,
"ActualContributionRatio"
:
"实缴出资比例"
,
"RevisionDate"
:
"变更日期"
,
"RevisionRemark"
:
"变更备注"
,
"RevisionType"
:
"修订类型"
,
"Operator"
:
"操作者"
,
"Operation"
:
"操作"
,
"GroupName"
:
"税种类型"
,
"TaxDecCycle"
:
"税种申报周期"
,
"TaxDecType"
:
"税种申报方式"
,
"AreaTabTitle"
:
"区域"
,
"AssociateModelContent"
:
"关联模型内容"
,
"AutoCreateID"
:
"自动分配ID"
,
...
...
@@ -72,6 +91,7 @@
"ClearRepeatItem"
:
"清除重复项"
,
"ClearRepeatItemTips"
:
"确定清除所有重复项?"
,
"CollapseAll"
:
"全部折叠"
,
"Export"
:
"导出"
,
"ColumnName"
:
"列"
,
"ComfirmAccountMappingKeywordDisable"
:
"确认停用标准科目代码:{code} {name},模糊对应关键字:{fullName}"
,
"ComfirmAreaIsActive"
:
"确认{isActiveStr}区域:{areaName}"
,
...
...
@@ -243,7 +263,6 @@
"OnlyAddOneOriginalRoleAndExtraRole"
:
"只能添加一条原始角色和一条附加角色"
,
"OperateBasicDataLog"
:
"日志-基础数据"
,
"OperateBasicDataType"
:
"操作类型"
,
"Operation"
:
"操作"
,
"OperationAddInvalid"
:
"请先保存修改操作"
,
"OperationEditInvalid"
:
"请先保存新增操作"
,
"OrangizationStructureTabTitle"
:
"机构层级"
,
...
...
atms-web/src/main/webapp/app-resources/i18n/zh-CN/cit.json
View file @
4cf57147
...
...
@@ -10,6 +10,7 @@
"AccountMapSuccess"
:
"科目对应成功!"
,
"AccountMappingMenuUnSelect"
:
"请选择操作"
,
"AccountMappingSubmit"
:
"提交"
,
"UpdateOrgExtraSubmit"
:
"提交"
,
"AccountMappingSubmitComplete"
:
"科目对应提交完成"
,
"AccountMappingTitle"
:
"科目重分类"
,
"AccountMappingUndo"
:
"撤销"
,
...
...
atms-web/src/main/webapp/app-resources/i18n/zh-CN/infrastructure.json
View file @
4cf57147
...
...
@@ -84,6 +84,8 @@
"DefaultRole"
:
"角色:"
,
"PDefaultRole"
:
"默认角色"
,
"PIndustry"
:
"行业"
,
"Business"
:
"事业部"
,
"Area"
:
"区域"
,
"ProjectList"
:
"项目列表"
,
"ProjectNameCol"
:
"项目名称"
,
"ProjectServiceCol"
:
"服务"
,
...
...
@@ -148,6 +150,9 @@
"AddExistOrganization"
:
"关联现有机构"
,
"UnAssignText"
:
"未指定"
,
"EditOrganization"
:
"修改机构"
,
"EditOrganizationExtra"
:
"修改机构-其他信息"
,
"EditEquity"
:
"修改股权"
,
"AlterEquity"
:
"变更股权"
,
"ClientCodeIsExist"
:
"客户编码已经存在!"
,
"OrgNameOrCodeIsExist"
:
"机构名称或机构编码在该客户下已经存在!"
,
"OrgNameOrCodeTaxPaymentNoIsExist"
:
"机构名称,机构编码和纳税人识别号已经存在!"
,
...
...
@@ -210,7 +215,6 @@
"Remarks"
:
"备注"
,
"NoPushMessage"
:
"暂不推送消息"
,
"StepDetails"
:
"步骤明细"
,
"ShowAsCard"
:
"显示卡片"
,
"ShowAsList"
:
"显示列表"
,
"FilterText"
:
"筛选"
,
...
...
@@ -220,8 +224,62 @@
"OrganizationLevelType"
:
"层级"
,
"OrganizationMsgLevelTypeRequired"
:
"请选择层级"
,
"OrganizationClientCode"
:
"客户代码"
,
"RatePayer"
:
"纳税人类型"
,
"OrganizationMsgClientCodeRequired"
:
"请输入客户代码"
,
"OrganizationCode"
:
"机构代码"
,
"UnifiedSocialCreditCode"
:
"统一社会信用代码"
,
"RegistrationStatus"
:
"登记状态"
,
"LogoutTime"
:
"注销时间"
,
"RegistrationAuthority"
:
"登记机关"
,
"ChangeType"
:
"变更类型"
,
"RegistrationFinancialAccountingMethod"
:
"注册登记财务核算方式"
,
"GeneralTaxpayer"
:
"一般纳税人"
,
"EffectiveTime"
:
"生效时间"
,
"TaxCreditRating"
:
"纳税信用评级"
,
"FinancialAccountingMethod"
:
"财务核算方法"
,
"FinancialAccountingSystem"
:
"财务会计制度"
,
"LowValueConsumablesAmortizationMethod"
:
"低值易耗品摊销方法"
,
"DepreciationMethod"
:
"折旧方法"
,
"CostingMethod"
:
"成本核算方法"
,
"AccountingSoftware"
:
"会计核算软件"
,
"IsCompleteRecordTotalInstitutions"
:
"是否完成总分机构备案"
,
"TaxpayerName"
:
"办税人姓名"
,
"TaxpayerPhone"
:
"办税人电话"
,
"TaxpayerIDNumber"
:
"办税人身份证号"
,
"TicketHolderName"
:
"购票人姓名"
,
"TicketPurchaser"
:
"购票人电话"
,
"TicketHolderIDNumber"
:
"购票人身份证号"
,
"NationalTaxHallAddress"
:
"国税大厅地址"
,
"NationalTaxSpecialistName"
:
"国税专管员姓名"
,
"NationalTaxSpecialistPhone"
:
"国税专管员电话"
,
"LocalTaxHallAddress"
:
"地税大厅地址"
,
"LocalTaxAdministrator"
:
"地税专管员"
,
"LocalTaxAdministratorPhoneNumber"
:
"地税专管员电话"
,
"eTAWebsite"
:
"电子税局网址"
,
"IsApprovedLevy"
:
"是否有核定征收"
,
"ApprovedLevyProject"
:
"核定征收项目"
,
"ApprovedLevyItems"
:
"核定征收品目"
,
"ApprovedValidityPeriodStartTime"
:
"核定有效期起"
,
"ApprovedValidityPeriodEndTime"
:
"核定有效期止"
,
"ApprovedRate"
:
"核定税率"
,
"ApprovedTaxTerm"
:
"核定纳税期限"
,
"IsSignTripartiteAgreement"
:
"三方协议是否签订"
,
"ReportingCurrency"
:
"记账本位币"
,
"AccountingRate"
:
"入账汇率"
,
"ConsolidationTime"
:
"并表期间"
,
"EmployeesCurrentNum"
:
"目前雇员人数"
,
"InvoiceTypeName"
:
"发票种类名称"
,
"SingleInvoiceMaxInvoiceAmount"
:
"单份发票最高开票额"
,
"MonthlyMaxTicketsPurchased"
:
"每月最高购票数量"
,
"MonthlyMaxInvoicingLimit"
:
"每月最高开票限额"
,
"OfflineBillingTimeLimit"
:
"离线开票时限"
,
"OfflineBillingCumulativeLimit"
:
"离线开票累计限额"
,
"FiscalYearDeadline"
:
"财年截止日"
,
"TaxAgent"
:
"税务代理"
,
"TaxAgentContact"
:
"税务代理联系方式"
,
"TaxRuleIntroduction"
:
"税制简介"
,
"Auditrequirements"
:
"审计要求"
,
"OtherFacts"
:
"其他情况说明"
,
"OrganizationMsgCodeRequired"
:
"请输入机构代码"
,
"OrganizationMsgCodeMaxLength"
:
"机构代码长度不应超过20字"
,
"OrganizationMsgCodePattern"
:
"机构代码只能包含数字与英文字母"
,
...
...
@@ -240,6 +298,17 @@
"Project"
:
"项目"
,
"OrgSelectNoOption"
:
"不选择"
,
"OrganizationBasicData"
:
"基本信息"
,
"CurrentHolding"
:
"当前控股"
,
"HoldingList"
:
"控股列表"
,
"EquityChangeRecord"
:
"股权变更记录"
,
"ChangeRecord"
:
"变更记录"
,
"TotalEquityRatio"
:
"股权总比"
,
"TotalInvestment"
:
"出资总额"
,
"HoldingInstitution"
:
"控股机构"
,
"TaxInformation"
:
"税种信息"
,
"EquityInformation"
:
"股权信息"
,
"OrganizationExtraData"
:
"其他信息"
,
"TaxPreferentialInformation"
:
"税收优惠信息"
,
"OrganizationAdvancedOptions"
:
"高级设置"
,
"OrganizationMsgEnterpriseAccountSetRequired"
:
"请选择企业账套"
,
"TaxPayerNumber"
:
"纳税人识别号"
,
...
...
@@ -250,6 +319,7 @@
"OrgCity"
:
"所在地"
,
"OrgArea"
:
"区域"
,
"OrgUser"
:
"用户"
,
"OrgUserManage"
:
"用户管理"
,
"OrderBy"
:
"排序"
,
"AddDimension"
:
"添加维度"
,
"EditDimension"
:
"编辑维度"
,
...
...
atms-web/src/main/webapp/app/admin/infrastructure/organizationListView/organization-list-view.ctrl.js
View file @
4cf57147
infrastructureModule
.
controller
(
'OrganizationListViewController'
,
[
'$location'
,
'$scope'
,
'$log'
,
'SweetAlert'
,
'$translate'
,
'areaRegionService'
,
'uiGridTreeViewConstants'
,
'$timeout'
,
'dimensionService'
,
'$interval'
,
'orgService'
,
'$q'
,
'loginContext'
,
function
(
$location
,
$scope
,
$log
,
SweetAlert
,
$translate
,
areaRegionService
,
uiGridTreeViewConstants
,
$timeout
,
dimensionService
,
$interval
,
orgService
,
$q
,
loginContext
)
{
.
controller
(
'OrganizationListViewController'
,
[
'$location'
,
'$scope'
,
'$log'
,
'SweetAlert'
,
'$translate'
,
'areaRegionService'
,
'
exportService'
,
'
uiGridTreeViewConstants'
,
'$timeout'
,
'dimensionService'
,
'$interval'
,
'orgService'
,
'$q'
,
'loginContext'
,
function
(
$location
,
$scope
,
$log
,
SweetAlert
,
$translate
,
areaRegionService
,
exportService
,
uiGridTreeViewConstants
,
$timeout
,
dimensionService
,
$interval
,
orgService
,
$q
,
loginContext
)
{
$scope
.
expanded
=
true
;
var
translate
=
{
...
...
@@ -12,6 +12,20 @@
// $('#showOperatePop').modal('show');
};
//初始化ack-pagination
$scope
.
pagingOptions
=
{
pageIndex
:
1
,
//当前页码
totalItems
:
0
,
//总数据
totalPages
:
10
,
//总页数
maxSize
:
5
,
//分页数字的限制。
pageSize
:
constant
.
page
.
pageSizeArrary
[
3
],
//每页多少条数据,100条
pageSizeString
:
constant
.
page
.
pageSizeArrary
[
3
].
toString
(),
firstPage
:
$translate
.
instant
(
'PagingFirstPage'
),
previousPage
:
$translate
.
instant
(
'PagingPreviousPage'
),
nextPage
:
$translate
.
instant
(
'PagingNextPage'
),
lastPage
:
$translate
.
instant
(
'PagingLastPage'
)
};
//添加过滤下拉列表
var
InitFilterList
=
function
()
{
//初始化选择器为空
...
...
@@ -76,6 +90,131 @@
$scope
.
isOrgUpdate
=
false
;
};
// 导出机构列表
$scope
.
exportOrgList
=
function
()
{
var
exportData
=
{
"type"
:
"orgList"
,
"jsonData"
:
JSON
.
stringify
(
$scope
.
DataGridSource
)
};
orgService
.
downloadOrgListData
(
exportData
).
success
(
function
(
data
,
status
,
headers
)
{
if
(
status
===
204
){
SweetAlert
.
warning
(
"没有数据可以下载"
);
return
;
}
exportToExcel
(
data
,
status
,
headers
,
'机构信息列表.xls'
);
}).
error
(
function
()
{
SweetAlert
.
error
(
$translate
.
instant
(
'PleaseContactAdministrator'
));
});
};
//下载服务器上的xls文件
var
exportToExcel
=
function
(
data
,
status
,
headers
,
defaultFileName
)
{
debugger
;
$
(
'#busy-indicator-container'
).
show
();
var
defer
=
$q
.
defer
();
var
octetStreamMime
=
'application/vnd.ms-excel'
;
var
success
=
false
;
// Get the headers
headers
=
headers
();
// Get the filename from the x-filename header or default to "download.bin"
var
filename
=
decodeURI
(
headers
[
'x-file-name'
])
+
defaultFileName
;
// Determine the content type from the header or default to "application/octet-stream"
var
contentType
=
headers
[
'content-type'
]
||
octetStreamMime
;
try
{
// Try using msSaveBlob if supported
//console.log("Trying saveBlob method ...");
var
blob
=
new
Blob
([
data
],
{
type
:
contentType
});
if
(
navigator
.
msSaveBlob
)
navigator
.
msSaveBlob
(
blob
,
filename
);
else
{
// Try using other saveBlob implementations, if available
var
saveBlob
=
navigator
.
webkitSaveBlob
||
navigator
.
mozSaveBlob
||
navigator
.
saveBlob
;
if
(
saveBlob
===
undefined
)
throw
"Not supported"
;
saveBlob
(
blob
,
filename
);
}
//console.log("saveBlob succeeded");
success
=
true
;
}
catch
(
ex
)
{
$log
.
debug
(
"saveBlob method failed with the following exception:"
);
$log
.
debug
(
ex
);
}
if
(
!
success
)
{
// Get the blob url creator
var
urlCreator
=
window
.
URL
||
window
.
webkitURL
||
window
.
mozURL
||
window
.
msURL
;
if
(
urlCreator
)
{
// Try to use a download link
var
link
=
document
.
createElement
(
'a'
);
if
(
'download'
in
link
)
{
// Try to simulate a click
try
{
// Prepare a blob URL
//console.log("Trying download link method with simulated click ...");
var
blobdownload
=
new
Blob
([
data
],
{
type
:
contentType
});
var
urldownload
=
urlCreator
.
createObjectURL
(
blobdownload
);
link
.
setAttribute
(
'href'
,
urldownload
);
// Set the download attribute (Supported in Chrome 14+ / Firefox 20+)
link
.
setAttribute
(
"download"
,
filename
);
// Simulate clicking the download link
var
event
=
document
.
createEvent
(
'MouseEvents'
);
event
.
initMouseEvent
(
'click'
,
true
,
true
,
window
,
1
,
0
,
0
,
0
,
0
,
false
,
false
,
false
,
false
,
0
,
null
);
link
.
dispatchEvent
(
event
);
//console.log("Download link method with simulated click succeeded");
success
=
true
;
}
catch
(
ex
)
{
$log
.
debug
(
"Download link method with simulated click failed with the following exception:"
);
$log
.
debug
(
ex
);
$q
.
reject
();
}
}
if
(
!
success
)
{
// Fallback to window.location method
try
{
// Prepare a blob URL
// Use application/octet-stream when using window.location to force download
//console.log("Trying download link method with window.location ...");
var
blobsuccess
=
new
Blob
([
data
],
{
type
:
octetStreamMime
});
var
urlsuccess
=
urlCreator
.
createObjectURL
(
blobsuccess
);
window
.
location
=
urlsuccess
;
//console.log("Download link method with window.location succeeded");
success
=
true
;
}
catch
(
ex
)
{
//console.log("Download link method with window.location failed with the following exception:");
$log
.
debug
(
ex
);
$q
.
reject
();
}
}
}
}
if
(
!
success
)
{
// Fallback to window.open method
$log
.
debug
(
"No methods worked for saving the arraybuffer, using last resort window.open"
);
window
.
open
(
httpPath
,
'_blank'
,
''
);
}
//Delete the file
// deleteFile(encodeURI(filename));
defer
.
resolve
(
'success'
);
$
(
'#busy-indicator-container'
).
hide
();
return
defer
.
promise
;
};
//下载完成后将服务器文件删除
var
deleteFile
=
function
(
filename
)
{
return
$http
.
get
(
'/org/delete/file?filename='
+
filename
,
apiConfig
.
create
());
};
// 添加或者编辑机构成功之后,刷新当前页面的数据
$scope
.
$watch
(
'isOrgUpdate'
,
function
(
newValue
,
oldValue
)
{
if
(
newValue
)
{
...
...
@@ -83,6 +222,15 @@
}
});
$scope
.
pagingService
=
{
refreshOrgDataGrid
:
function
()
{
$log
.
debug
(
"refreshOrgDataGrid"
);
getOrgList
();
}
};
var
getOrgList
=
function
()
{
orgService
.
getOrgListLevel
().
success
(
function
(
data
)
{
if
(
data
)
{
...
...
@@ -97,6 +245,8 @@
return
row
&&
row
.
industryID
===
"10"
;
});
}
initPagingControl
(
data
.
length
);
$scope
.
DataGridSource
=
data
;
$scope
.
oldData
=
angular
.
copy
(
data
);
$scope
.
setGridHeight
();
...
...
@@ -104,54 +254,59 @@
});
};
var
initPagingControl
=
function
(
totalItemsCount
)
{
$scope
.
pagingOptions
.
totalItems
=
totalItemsCount
;
};
$scope
.
collapseAll
=
function
()
{
var
treeList
=
$scope
.
orgTreeListInstance
;
treeList
.
beginUpdate
();
$scope
.
DataGridSource
.
forEach
(
function
(
item
)
{
treeList
.
collapseRow
(
item
.
id
);
});
treeList
.
collapseAll
(
-
1
);
treeList
.
endUpdate
();
$scope
.
expanded
=
false
;
}
};
$scope
.
expandAll
=
function
()
{
var
treeList
=
$scope
.
orgTreeListInstance
;
treeList
.
beginUpdate
();
$scope
.
DataGridSource
.
forEach
(
function
(
item
)
{
treeList
.
expandRow
(
item
.
id
);
// item.name 对应options的keyExpr
treeList
.
expandRow
(
item
.
name
);
});
treeList
.
endUpdate
();
$scope
.
expanded
=
true
;
}
}
;
var
loadDatagrid
=
function
()
{
$scope
.
orgUserTreeOptions
=
{
$scope
.
orgUserGridOptions
=
{
bindingOptions
:
{
dataSource
:
'DataGridSource'
},
showBorders
:
true
,
/*"export": {
enabled: true,
filename: "机构信息列表"
},*/
columnChooser
:
{
enabled
:
true
},
keyExpr
:
"name"
,
columns
:
[
{
dataField
:
"name"
,
caption
:
$translate
.
instant
(
'OrganizationName'
),
allowHeaderFiltering
:
false
,
allowHeaderFiltering
:
false
,
cellTemplate
:
function
(
container
,
options
)
{
try
{
$
(
'<a class="hyper-link">'
+
options
.
value
+
'</a>'
)
.
attr
(
'href'
,
'#/organization/'
+
options
.
row
.
data
.
id
)
.
appendTo
(
container
);
}
catch
(
e
)
{
}
catch
(
e
)
{
$log
.
error
(
e
);
}
}
},
{
},
{
dataField
:
"code"
,
allowHeaderFiltering
:
false
,
caption
:
$translate
.
instant
(
'OrganizationCode'
)
...
...
@@ -159,7 +314,7 @@
{
dataField
:
"taxPayerNumber"
,
allowHeaderFiltering
:
true
,
caption
:
$translate
.
instant
(
'TaxPayerNumber'
),
caption
:
$translate
.
instant
(
'TaxPayerNumber'
)
//headerFilter: {
// dataSource: {
// load: function () {
...
...
@@ -173,7 +328,6 @@
// }
// }
//},
},
{
dataField
:
"structureName"
,
...
...
@@ -182,22 +336,22 @@
{
dataField
:
"regionName"
,
caption
:
$translate
.
instant
(
'AreaRegionTitle'
),
allowHeaderFiltering
:
false
,
allowHeaderFiltering
:
false
},
{
dataField
:
"businessUnitName"
,
caption
:
$translate
.
instant
(
'BusinessUnitTitleName'
),
allowHeaderFiltering
:
false
,
allowHeaderFiltering
:
false
},
{
dataField
:
"areaName"
,
caption
:
$translate
.
instant
(
'AreaTitleName'
),
allowHeaderFiltering
:
false
,
allowHeaderFiltering
:
false
},
{
dataField
:
"industryName"
,
caption
:
$translate
.
instant
(
'PIndustry'
),
allowHeaderFiltering
:
false
,
allowHeaderFiltering
:
false
},
{
dataField
:
"isActive"
,
...
...
@@ -207,18 +361,21 @@
try
{
if
(
options
.
data
.
isActive
)
{
$
(
'<span>'
).
text
(
translate
.
Enabled
).
appendTo
(
container
);
}
else
{
}
else
{
$
(
'<span style="color:gray">'
).
text
(
translate
.
Disabled
).
appendTo
(
container
);
}
}
catch
(
e
)
{
}
catch
(
e
)
{
$log
.
error
(
e
);
}
}
}
],
masterDetail
:
{
enabled
:
true
,
template
:
"detail"
},
onContentReady
:
function
(
e
)
{
$scope
.
orgTreeList
=
e
;
$scope
.
orgTreeListInstance
=
e
.
component
;
var
totalCount
=
e
.
component
.
totalCount
();
if
(
totalCount
>
0
)
...
...
@@ -229,22 +386,24 @@
loadPanel
:
{
enabled
:
false
},
scrolling
:
{
mode
:
"virtual"
},
keyExpr
:
"id"
,
parentIdExpr
:
"parentID"
,
//
scrolling: {
//
mode: "virtual"
//
},
//
keyExpr: "id",
//
parentIdExpr: "parentID",
selection
:
{
mode
:
"single"
},
autoExpandAll
:
true
,
grouping
:
{
autoExpandAll
:
false
},
// autoExpandAll:true,
allowColumnResizing
:
true
,
columnAutoWidth
:
true
,
showRowLines
:
true
,
showColumnLines
:
true
,
rowAlternationEnabled
:
true
,
//单双行颜色
noDataText
:
$translate
.
instant
(
'NoDataText'
),
showBorders
:
true
,
selectAllText
:
$translate
.
instant
(
'SelectAll'
),
searchPanel
:
{
placeholder
:
$translate
.
instant
(
'Search'
),
...
...
@@ -259,8 +418,7 @@
emptyValue
:
$translate
.
instant
(
'Empty'
),
selectAllText
:
$translate
.
instant
(
'SelectAll'
),
}
},
}
//columnHidingEnabled: true, //自定义显示列
//columnChooser: {
// enabled: true,
...
...
@@ -268,6 +426,35 @@
//},
};
$scope
.
getDetailGridSettings
=
function
(
key
)
{
return
{
//todo 绑定数据
/*bindingOptions: {
dataSource: getEquitys(key)
},*/
columnAutoWidth
:
true
,
showBorders
:
true
,
columns
:
[
{
dataField
:
"name"
,
caption
:
"股东姓名"
},
{
dataField
:
"rate"
,
caption
:
"股权占比"
}]
};
}
};
var
getEquitys
=
function
(
key
){
// todo 返回股东信息 []dtos
equityService
.
getEquitysByID
(
key
).
success
(
function
(
data
)
{
if
(
data
)
{
return
data
;
}
});
};
var
getDimensionList
=
function
()
{
...
...
@@ -279,7 +466,6 @@
$scope
.
businessName
=
dimension
.
getBusinessUnitName
();
$scope
.
areaName
=
dimension
.
getAreaName
();
loadDatagrid
();
}
});
...
...
atms-web/src/main/webapp/app/admin/infrastructure/organizationListView/organization-list-view.html
View file @
4cf57147
...
...
@@ -17,7 +17,6 @@
<i
class=
"fa fa-compress"
aria-hidden=
"true"
ng-if=
"expanded"
ng-click=
"collapseAll()"
>
<span>
{{'CollapseAll' | translate}}
</span></i>
</button>
<div
class=
"account-filter"
style=
"display:inline-block;margin-left: 16px;"
>
<span
style=
"height: 25px;display: inline-block;line-height: 25px;vertical-align: middle;"
>
...
...
@@ -35,9 +34,11 @@
</div>
</div>
<button
type=
"button"
style=
""
ng-if=
"hasAddPermission"
class=
"btn btn-in-grid"
ng-click=
"exportOrgList()"
>
<i
class=
"fa fa-download"
aria-hidden=
"true"
>
<span>
{{'Export' | translate}}
</span></i>
</button>
<div
class=
"right-operate "
>
<!-- board展示 -->
<!--<a class="display-user" href="#/organizationViewInfrastructure/organizationBusinessUnitView" title="{{'ShowAsCard' | translate}}"><i class="fa fa-th" aria-hidden="true"></i></a>-->
<a
class=
"display-user border-left active"
title=
"{{'ShowAsList' | translate}}"
>
...
...
@@ -50,7 +51,17 @@
<div
class=
"user-grid"
>
<span
style=
"margin-left:30px; position: absolute;left: 249px;top: 132px;z-index: 999;"
>
{{'TotalHave'| translate}}
<span
style=
"color:red; padding:0px 2px"
>
{{totalCount}}
</span>
{{'Records'| translate}}
</span>
<div
class=
"dx-viewport grid-container"
>
<div
id=
"orgGridContainer"
dx-tree-list=
"orgUserTreeOptions"
style=
"margin-top: -9px;"
></div>
<div
id=
"orgGridContainer"
dx-data-grid=
"orgUserGridOptions"
dx-item-alias=
"orgInfo"
style=
"margin-top: -9px;"
>
<div
data-options=
"dxTemplate: {name: 'detail'}"
>
<div
dx-data-grid=
"getDetailGridSettings(orgInfo.key)"
></div>
</div>
</div>
<!--分页栏-->
</div>
<div
class=
"form-group page-form-group"
>
<div
class=
"page-footer"
>
<ack-pagination
page-options=
"pagingOptions"
refresh-table=
"pagingService.refreshOrgDataGrid()"
hide-page-size-selector=
"true"
></ack-pagination>
</div>
</div>
</div>
</div>
...
...
atms-web/src/main/webapp/app/admin/infrastructure/organizationListView/organization-list-view.less
View file @
4cf57147
...
...
@@ -89,6 +89,12 @@
border-radius: 5px;*/
margin-bottom: 6px;
.master-detail-caption {
padding: 0 0 5px 10px;
font-size: 14px;
font-weight: bold;
}
.dx-viewport {
height: calc(~'100% - 60px');
}
...
...
@@ -99,4 +105,20 @@
}
}
}
.page-footer {
display: inline-block;
float: right;
/*padding-right: 20px;*/
}
.page-form-group {
float: right;
margin-top:20px;
.page-size {
margin: 0;
}
.pagination {
margin: 0;
}
}
}
atms-web/src/main/webapp/app/admin/infrastructure/organizationManage/organization-manage.ctrl.js
View file @
4cf57147
...
...
@@ -3,6 +3,10 @@
function
(
$scope
,
$log
,
orgService
,
$interval
,
uiGridTreeViewConstants
,
uiGridConstants
,
SweetAlert
,
projectService
,
$translate
,
$timeout
,
organizationStructureService
,
areaRegionService
,
apiInterceptor
,
enterpriseAccountService
,
businessUnitService
,
userService
,
roleService
,
$q
,
permissionService
,
dimensionService
,
region
)
{
'use strict'
;
var
translate
=
{
Enabled
:
$translate
.
instant
(
'BusinessUnitActive'
),
//已启用
Disabled
:
$translate
.
instant
(
'BusinessUnitDisabled'
),
//已停用
};
var
showWarning
=
function
(
resultMsg
)
{
...
...
@@ -28,6 +32,20 @@
return
{};
};
//初始化ack-pagination
$scope
.
pagingOptions
=
{
pageIndex
:
1
,
//当前页码
totalItems
:
0
,
//总数据
totalPages
:
10
,
//总页数
maxSize
:
5
,
//分页数字的限制。
pageSize
:
constant
.
page
.
pageSizeArrary
[
3
],
//每页多少条数据,100条
pageSizeString
:
constant
.
page
.
pageSizeArrary
[
3
].
toString
(),
firstPage
:
$translate
.
instant
(
'PagingFirstPage'
),
previousPage
:
$translate
.
instant
(
'PagingPreviousPage'
),
nextPage
:
$translate
.
instant
(
'PagingNextPage'
),
lastPage
:
$translate
.
instant
(
'PagingLastPage'
)
};
var
getDimensionList
=
function
()
{
dimensionService
.
getDimensionList
().
success
(
function
(
data
)
{
if
(
data
)
{
...
...
@@ -162,17 +180,478 @@
return
data
;
};
$scope
.
pagingService
=
{
refreshOrgDataGrid
:
function
()
{
$log
.
debug
(
"refreshOrgDataGrid"
);
getEquityList
();
}
};
var
initPagingControl
=
function
(
totalItemsCount
)
{
$scope
.
pagingOptions
.
totalItems
=
totalItemsCount
;
};
var
loadEquityDatagrid
=
function
()
{
$scope
.
equityGridOptions
=
{
bindingOptions
:
{
dataSource
:
'DataGridSource'
},
showBorders
:
true
,
columnChooser
:
{
enabled
:
true
},
/*paging: {
pageSize: 5
},
pager: {
showPageSizeSelector: true,
allowedPageSizes: [5, 10, 20],
showInfo: true
},*/
columns
:
[
{
dataField
:
"name"
,
caption
:
$translate
.
instant
(
'SubscribedShareholderName'
),
allowHeaderFiltering
:
false
,
cellTemplate
:
function
(
container
,
options
)
{
try
{
$
(
'<a class="hyper-link">'
+
options
.
value
+
'</a>'
)
.
attr
(
'href'
,
'#/organization/'
+
options
.
row
.
data
.
id
)
.
appendTo
(
container
);
}
catch
(
e
)
{
$log
.
error
(
e
);
}
}
},
{
dataField
:
"idNum"
,
allowHeaderFiltering
:
false
,
caption
:
$translate
.
instant
(
'SubscribeShareholderIdNumber'
)
},
{
dataField
:
"taxPayerNumber"
,
allowHeaderFiltering
:
true
,
caption
:
$translate
.
instant
(
'SubscribedShareholderName'
)
},
{
dataField
:
"structureName"
,
caption
:
$translate
.
instant
(
'SubscribeShareholderCompanyName'
)
},
{
dataField
:
"regionName"
,
caption
:
$translate
.
instant
(
'SubscribeShareholderCompanyTaxNum'
),
allowHeaderFiltering
:
false
},
{
dataField
:
"businessUnitName"
,
caption
:
$translate
.
instant
(
'AmountFunds'
),
allowHeaderFiltering
:
false
},
{
dataField
:
"areaName"
,
caption
:
$translate
.
instant
(
'SubscriptionCapitalContributionRatio'
),
allowHeaderFiltering
:
false
},
{
dataField
:
"industryName"
,
caption
:
$translate
.
instant
(
'PayableShareholderName'
),
allowHeaderFiltering
:
false
},
{
dataField
:
"industryName"
,
caption
:
$translate
.
instant
(
'PayableCompanyName'
),
allowHeaderFiltering
:
false
},
{
dataField
:
"industryName"
,
caption
:
$translate
.
instant
(
'PayableCompanyTaxNum'
),
allowHeaderFiltering
:
false
},
{
dataField
:
"industryName"
,
caption
:
$translate
.
instant
(
'ActualAmountFundsPaid'
),
allowHeaderFiltering
:
false
}
],
onContentReady
:
function
(
e
)
{
$scope
.
orgTreeListInstance
=
e
.
component
;
var
totalCount
=
e
.
component
.
totalCount
();
if
(
totalCount
>
0
)
{
$scope
.
totalCount
=
totalCount
;
}
},
loadPanel
:
{
enabled
:
false
},
selection
:
{
mode
:
"single"
},
grouping
:
{
autoExpandAll
:
false
},
allowColumnResizing
:
true
,
columnAutoWidth
:
true
,
showRowLines
:
true
,
showColumnLines
:
true
,
rowAlternationEnabled
:
true
,
//单双行颜色
noDataText
:
$translate
.
instant
(
'NoDataText'
),
selectAllText
:
$translate
.
instant
(
'SelectAll'
),
searchPanel
:
{
placeholder
:
$translate
.
instant
(
'Search'
),
width
:
518
,
visible
:
true
},
headerFilter
:
{
visible
:
false
,
texts
:
{
cancel
:
$translate
.
instant
(
'Cancel'
),
ok
:
$translate
.
instant
(
'Confirm'
),
emptyValue
:
$translate
.
instant
(
'Empty'
),
selectAllText
:
$translate
.
instant
(
'SelectAll'
),
}
}
};
};
var
loadEquityChangeDatagrid
=
function
()
{
$scope
.
equityChangeGridOptions
=
{
bindingOptions
:
{
dataSource
:
'DataGridSource'
},
showBorders
:
true
,
columnChooser
:
{
enabled
:
true
},
keyExpr
:
"name"
,
/*paging: {
pageSize: 5
},
pager: {
showPageSizeSelector: true,
allowedPageSizes: [5, 10, 20],
showInfo: true
},*/
columns
:
[
{
dataField
:
"name"
,
caption
:
$translate
.
instant
(
'RevisionDate'
),
allowHeaderFiltering
:
false
},
{
dataField
:
"idNum"
,
allowHeaderFiltering
:
false
,
caption
:
$translate
.
instant
(
'RevisionRemark'
)
},
{
dataField
:
"taxPayerNumber"
,
allowHeaderFiltering
:
true
,
caption
:
$translate
.
instant
(
'Operator'
)
},
{
caption
:
$translate
.
instant
(
'Operation'
),
width
:
'10%'
,
cellTemplate
:
function
(
container
,
options
)
{
try
{
if
(
options
.
row
.
rowIndex
===
0
){
$
(
'<a class="hyper-link">'
+
" 撤销变更"
+
'</a>'
)
.
attr
(
'href'
,
'#/equity/cancelChange'
+
options
.
row
.
data
.
id
)
.
appendTo
(
container
);
}
}
catch
(
e
)
{
$log
.
error
(
e
);
}
}
}
],
masterDetail
:
{
enabled
:
true
,
template
:
"detail"
},
onContentReady
:
function
(
e
)
{
$scope
.
equityDetailInstance
=
e
.
component
;
var
totalCount
=
e
.
component
.
totalCount
();
if
(
totalCount
>
0
)
{
$scope
.
totalCount
=
totalCount
;
}
},
loadPanel
:
{
enabled
:
false
},
selection
:
{
mode
:
"single"
},
grouping
:
{
autoExpandAll
:
false
},
allowColumnResizing
:
true
,
columnAutoWidth
:
true
,
showRowLines
:
true
,
showColumnLines
:
true
,
rowAlternationEnabled
:
true
,
//单双行颜色
noDataText
:
$translate
.
instant
(
'NoDataText'
),
selectAllText
:
$translate
.
instant
(
'SelectAll'
),
searchPanel
:
{
placeholder
:
$translate
.
instant
(
'Search'
),
width
:
518
,
visible
:
true
},
headerFilter
:
{
visible
:
false
,
texts
:
{
cancel
:
$translate
.
instant
(
'Cancel'
),
ok
:
$translate
.
instant
(
'Confirm'
),
emptyValue
:
$translate
.
instant
(
'Empty'
),
selectAllText
:
$translate
.
instant
(
'SelectAll'
),
}
}
};
};
$scope
.
getDetailGridSettings
=
function
(
key
)
{
return
{
//todo 绑定数据
/*bindingOptions: {
dataSource: getEquitys(key)
},*/
columnAutoWidth
:
true
,
showBorders
:
true
,
columns
:
[
{
dataField
:
'index'
,
caption
:
$translate
.
instant
(
'SequenceNo'
),
width
:
'5%'
},
{
dataField
:
"name"
,
caption
:
"股东姓名"
},
{
dataField
:
"rate"
,
caption
:
"出资人名称"
},
{
dataField
:
"rate"
,
caption
:
"机构代码"
},
{
dataField
:
"rate"
,
caption
:
"证件号码"
},
{
dataField
:
"money"
,
caption
:
"出资额(万元)"
},
{
dataField
:
"rate"
,
caption
:
"股权比例"
},
{
dataField
:
"rate"
,
caption
:
"有效截止日"
},
{
dataField
:
"rate"
,
caption
:
"有效起始日"
}],
summary
:
{
totalItems
:
[{
column
:
"money"
,
customizeText
:
"总出资额(万元)"
,
summaryType
:
"sum"
},
{
column
:
"rate"
+
"%"
,
customizeText
:
"股权总比"
,
summaryType
:
"sum"
}]
}
};
};
var
getEquityChangeList
=
function
()
{
orgService
.
getOrgListLevel
().
success
(
function
(
data
)
{
// equityService.getEquityList().success(function (data) {
if
(
data
)
{
$scope
.
DataGridSource
=
data
;
// $scope.setGridHeight();
initPagingControl
(
data
.
length
);
}
});
};
var
loadTaxInfoDatagrid
=
function
()
{
var
taxInfoStore
=
new
DevExpress
.
data
.
CustomStore
({
key
:
"id"
,
// $scope.selectCompany.orgId
load
:
function
()
{
return
$http
.
post
(
'/taxRuleSetting/getTaxRuleSettingList'
,
param
,
apiConfig
.
create
());
},
insert
:
function
(
values
)
{
return
$http
.
post
(
'/taxRuleSetting/insert'
,
param
,
apiConfig
.
create
());
},
update
:
function
(
key
,
values
)
{
return
$http
.
post
(
'/taxRuleSetting/update'
,
{
key
:
key
,
values
:
JSON
.
stringify
(
values
)
},
apiConfig
.
create
());
},
remove
:
function
(
key
)
{
return
$http
.
post
(
'/taxRuleSetting/delete'
,
{
key
:
key
},
apiConfig
.
create
());
}
});
$scope
.
taxInfoGridOptions
=
{
bindingOptions
:
{
// dataSource: taxInfoStore
dataSource
:
'DataGridSource'
},
showBorders
:
true
,
columnChooser
:
{
enabled
:
true
},
editing
:
{
mode
:
"row"
,
allowUpdating
:
true
,
allowDeleting
:
true
,
allowAdding
:
true
},
columns
:
[
{
dataField
:
"idNum"
,
visible
:
false
,
allowHeaderFiltering
:
false
,
caption
:
$translate
.
instant
(
'id'
)
},
{
dataField
:
"taxPayerNumber"
,
allowHeaderFiltering
:
false
,
caption
:
$translate
.
instant
(
'GroupName'
)
},
{
dataField
:
"taxPayerNumber"
,
allowHeaderFiltering
:
true
,
caption
:
$translate
.
instant
(
'TaxDecCycle'
)
},
{
dataField
:
"structureName"
,
caption
:
$translate
.
instant
(
'TaxDecType'
)
}
],
onContentReady
:
function
(
e
)
{
$scope
.
orgTreeListInstance
=
e
.
component
;
var
totalCount
=
e
.
component
.
totalCount
();
if
(
totalCount
>
0
)
{
$scope
.
totalCount
=
totalCount
;
}
},
onEditingStart
:
function
(
e
)
{
alert
(
"EditingStart"
);
},
onInitNewRow
:
function
(
e
)
{
alert
(
"InitNewRow"
);
},
onRowInserting
:
function
(
e
)
{
alert
(
"RowInserting"
);
},
onRowInserted
:
function
(
e
)
{
alert
(
"RowInserted"
);
},
onRowUpdating
:
function
(
e
)
{
alert
(
"RowUpdating"
);
},
onRowUpdated
:
function
(
e
)
{
alert
(
"RowUpdated"
);
},
onRowRemoving
:
function
(
e
)
{
alert
(
"RowRemoving"
);
},
onRowRemoved
:
function
(
e
)
{
alert
(
"RowRemoved"
);
},
loadPanel
:
{
enabled
:
false
},
selection
:
{
mode
:
"single"
},
grouping
:
{
autoExpandAll
:
false
},
allowColumnResizing
:
true
,
columnAutoWidth
:
true
,
showRowLines
:
true
,
showColumnLines
:
true
,
rowAlternationEnabled
:
true
,
//单双行颜色
noDataText
:
$translate
.
instant
(
'NoDataText'
),
selectAllText
:
$translate
.
instant
(
'SelectAll'
),
searchPanel
:
{
placeholder
:
$translate
.
instant
(
'Search'
),
width
:
518
,
visible
:
true
},
headerFilter
:
{
visible
:
false
,
texts
:
{
cancel
:
$translate
.
instant
(
'Cancel'
),
ok
:
$translate
.
instant
(
'Confirm'
),
emptyValue
:
$translate
.
instant
(
'Empty'
),
selectAllText
:
$translate
.
instant
(
'SelectAll'
),
}
}
};
};
// 初始化函数
var
initOrg
=
function
()
{
getDimensionList
();
loadorgTree
();
loadEnterpriseAccountSetList
();
loadEquityDatagrid
();
getEquityList
();
loadEquityChangeDatagrid
();
getEquityChangeList
();
loadTaxInfoDatagrid
();
getTaxInfoList
();
getServiceList
();
};
var
getEquityList
=
function
()
{
orgService
.
getOrgListLevel
().
success
(
function
(
data
)
{
// equityService.getEquityList().success(function (data) {
if
(
data
)
{
$scope
.
DataGridSource
=
data
;
// $scope.setGridHeight();
initPagingControl
(
data
.
length
);
}
});
};
var
getTaxInfoList
=
function
()
{
orgService
.
getOrgListLevel
().
success
(
function
(
data
)
{
// equityService.getEquityList().success(function (data) {
if
(
data
)
{
$scope
.
DataGridSource
=
data
;
// $scope.setGridHeight();
initPagingControl
(
data
.
length
);
}
});
};
// 保存启用、启用的操作结果
$scope
.
updateIsActive
=
function
()
{
$scope
.
isCanOrganizationIsActiveBtn
=
false
;
debugger
;
var
isActive
=
!
$scope
.
selectCompany
.
isActive
;
if
(
isActive
)
{
orgService
.
enableOrgs
(
$scope
.
selectCompany
.
id
).
success
(
function
()
{
...
...
@@ -301,13 +780,55 @@
$scope
.
selectedOrg
=
null
;
};
//
添加
机构
//
编辑
机构
$scope
.
updateOrg
=
function
()
{
$scope
.
isAdd
=
false
;
$scope
.
orgOperateType
=
constant
.
Operation
.
Edit
;
$scope
.
selectedOrg
=
$scope
.
selectCompany
;
};
// 编辑股权
$scope
.
updateEquity
=
function
()
{
$scope
.
isAdd
=
false
;
$scope
.
equityEditOperateType
=
constant
.
Operation
.
Edit
;
$scope
.
selectedOrg
=
$scope
.
selectCompany
;
};
// 变更股权
$scope
.
alterEquity
=
function
()
{
$scope
.
isAdd
=
true
;
$scope
.
equityChangeOperateType
=
constant
.
Operation
.
Edit
;
$scope
.
selectedOrg
=
$scope
.
selectCompany
;
};
// 编辑机构其他信息
$scope
.
updateOrgExtra
=
function
()
{
$
(
'.extra-org-info .control-label span'
).
attr
(
"hidden"
,
"hidden"
);
$
(
'.extra-org-info .right-option button'
).
removeAttr
(
"hidden"
);
$
(
'.extra-org-info .right-option .updOrgBtn'
).
attr
(
"hidden"
,
"hidden"
);
// $('.extra-org-info .control-label input') 不是数组所以用这种方式遍历
for
(
var
i
=
0
;
i
<
$
(
'.extra-org-info .control-label input'
).
length
;
i
++
)
{
$
(
'.extra-org-info .control-label input'
)[
i
].
style
.
display
=
"inline"
;
}
$scope
.
olddata
=
$scope
.
selectCompany
;
};
// 取消编辑机构其他信息
$scope
.
updateOrgExtraCancel
=
function
()
{
$scope
.
selectCompany
=
$scope
.
olddata
;
$
(
'.extra-org-info .control-label span'
).
removeAttr
(
"hidden"
);
$
(
'.extra-org-info .right-option button'
).
attr
(
"hidden"
,
"hidden"
);
$
(
'.extra-org-info .right-option .updOrgBtn'
).
removeAttr
(
"hidden"
);
for
(
var
i
=
0
;
i
<
$
(
'.extra-org-info .control-label input'
).
length
;
i
++
)
{
$
(
'.extra-org-info .control-label input'
)[
i
].
style
.
display
=
"none"
;
}
};
// 提交修改的机构其他信息
$scope
.
updateOrgExtraSubmit
=
function
()
{
alert
(
"弹出confirm窗口"
);
};
// 添加或者编辑机构成功之后,刷新当前页面的数据
$scope
.
$watch
(
'isOrgUpdate'
,
function
(
newValue
,
oldValue
)
{
if
(
newValue
)
{
...
...
@@ -842,14 +1363,14 @@
columns
:
[{
dataField
:
"userName"
,
caption
:
$translate
.
instant
(
'UserTitleName'
),
width
:
'40%'
,
width
:
'40%'
},
{
dataField
:
"roleNameList"
,
caption
:
$translate
.
instant
(
'RoleDesc'
),
width
:
'50%'
,
width
:
'50%'
},
{
caption
:
$translate
.
instant
(
'Operation'
),
width
:
'10%'
,
width
:
'10%'
}],
//,
...
...
@@ -1232,6 +1753,7 @@
$scope
.
maxTitleLength
=
10
;
$scope
.
maxValueLength
=
20
;
$scope
.
selectCompany
=
{};
$scope
.
showAttributeDimensionID
=
'orgmanage'
;
$scope
.
searchText
=
''
;
...
...
atms-web/src/main/webapp/app/admin/infrastructure/organizationManage/organization-manage.html
View file @
4cf57147
...
...
@@ -41,104 +41,807 @@
<p
class=
"company-name"
title=
"{{selectCompany.name}}"
>
{{selectCompany.name | limitString:50}}
</p>
</div>
<div
class=
"right-option"
>
<button
type=
"button"
class=
"btn btn-in-grid"
style=
"width: 117px;"
ng-click=
"updateOrg()"
ng-if=
"hasEditPermission"
><i
class=
"material-icons middle"
>
create
</i>
{{'Change' | translate}}
</button>
<!--<button type="button" class="btn btn-in-grid" style="width: 117px;" ng-click="updateOrg()" ng-if="hasEditPermission"><i class="material-icons middle">create</i>{{'Change' | translate}}</button>-->
<button
type=
"button"
id=
"organizationIsActiveBtn"
ng-if=
"hasEditPermission"
class=
"btn"
ng-class=
"{true:'btn-secondary', false:'btn-in-grid'}[!selectCompany.isActive]"
ng-click=
"updateIsActive()"
ng-disabled=
"!isCanOrganizationIsActiveBtn"
><i
ng-show=
"selectCompany.isActive"
class=
"material-icons stop"
>
block
</i>
{{selectCompany.isActiveStr}}
</button>
<span
class=
"right-operate
"
>
<span
class=
"right-operate"
>
<!-- board展示 -->
<a
class=
"display-user"
href=
"#/organizationViewInfrastructure/organizationBusinessUnitView"
title=
"{{'ShowAsCard' | translate}}"
><i
class=
"fa fa-th"
aria-hidden=
"true"
></i></a>
<!-- list展示 -->
<a
class=
"display-user border-left"
href=
"#/orgListView"
title=
"{{'ShowAsList' | translate}}"
><i
class=
"fa fa-list-ul"
aria-hidden=
"true"
></i></a>
</span>
</div>
</div>
</div>
<div
class=
"right-bottom"
>
<md-content>
<md-nav-bar
md-selected-nav-item=
"currentNavItem"
nav-bar-aria-label=
"navigation links"
>
<md-nav-item
md-nav-click=
"goto('page1')"
name=
"page1"
>
{{'OrganizationBasicData' | translate}}
</md-nav-item>
<md-nav-item
md-nav-click=
"goto('page2')"
name=
"page2"
>
{{'EquityInformation' | translate}}
</md-nav-item>
<md-nav-item
md-nav-click=
"goto('page3')"
name=
"page3"
>
{{'OrganizationExtraData' | translate}}
</md-nav-item>
<md-nav-item
md-nav-click=
"goto('page4')"
name=
"page4"
>
{{'TaxPreferentialInformation' | translate}}
</md-nav-item>
<md-nav-item
md-nav-click=
"goto('page5')"
name=
"page5"
>
{{'OrganizationAdvancedOptions' | translate}}
</md-nav-item>
<md-nav-item
md-nav-click=
"goto('page6')"
name=
"page6"
>
{{'OrgUserManage' | translate}}
</md-nav-item>
</md-nav-bar>
<div
class=
"ext-content"
>
<div
ng-show=
"currentNavItem==='page1'"
class=
"org-basic-data-table"
>
<div
class=
"basic-org-info-wrapper"
>
<div
class=
"basic-org-info"
>
<label
class=
"basic-label"
>
{{'OrganizationBasicData' | translate}}
</label>
<!--<label class="basic-label">{{'OrganizationBasicData' | translate}}</label>-->
<div
class=
"right-option"
>
<button
type=
"button"
class=
"btn btn-in-grid"
style=
"width: 117px;"
ng-click=
"updateOrg()"
ng-if=
"hasEditPermission"
><i
class=
"material-icons middle"
>
create
</i>
{{'Change' | translate}}
</button>
</div>
<div
class=
"row padding-top30"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'OrganizationCode' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
""
>
{{'RatePayer' | translate}}:{{selectCompany.ratePayer}}
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'OrganizationCode' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
<span
class=
"control-label"
>
{{'TaxpayerIdentificationNumber' | translate}}:
<span
title=
"{{selectCompany.taxPayerNumber}}"
>
{{selectCompany.taxPayerNumber | limitString:maxValueLength}}
</span></span>
</div>
<!--<div class="col-sm-6">
<span class="">{{'OrganizationClientCode' | translate}}:{{selectCompany.clientCode}}</span>
</div>-->
<div
class=
"col-sm-6"
>
<span
class=
""
>
{{'OrganizationLevelType' | translate}}:
<span
title=
"{{selectCompany.structureName}}"
>
{{selectCompany.structureName | limitString:maxValueLength}}
</span></span>
<span
class=
""
>
{{'OrganizationLevelType' | translate}}:
<span
title=
"{{selectCompany.structureName}}"
>
{{selectCompany.structureName | limitString:maxValueLength}}
</span></span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TaxpayerIdentificationNumber' | translate}}:
<span
title=
"{{selectCompany.taxPayerNumber}}"
>
{{selectCompany.taxPayerNumber | limitString:maxValueLength}}
</span></span>
<span
class=
""
>
{{'OrganizationParent' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
""
>
{{'OrganizationParent' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span></span>
<span
class=
"control-label"
>
{{'AdministrativeRegion' | translate}}:
<span
title=
"{{selectCompany.regionName}}"
>
{{selectCompany.regionName |limitString:maxValueLength}}
</span></span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'AdministrativeRegion' | translate}}:
<span
title=
"{{selectCompany.regionName}}"
>
{{selectCompany.regionName |limitString:maxValueLength}}
</span></span>
<span
class=
"control-label"
>
{{'CompanyAddress' | translate}}:
<span
title=
"{{selectCompany.regionName}}"
>
{{selectCompany.regionName |limitString:maxValueLength}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'CompanyTelephone' | translate}}:
<span
title=
"{{selectCompany.regionName}}"
>
{{selectCompany.regionName |limitString:maxValueLength}}
</span></span>
</div>
<div
class=
"col-sm-6"
ng-if=
"firstAttribute"
>
<!--
<div class="col-sm-6" ng-if="firstAttribute">
<span class="control-label" title="{{firstAttribute.dimensionName}}"> {{firstAttribute.dimensionName|limitString:maxTitleLength}}:</span>
<span class="control-label" title="{{firstAttribute.dimensionValue}}">{{firstAttribute.dimensionValue|limitString:maxValueLength}}</span>
</div>-->
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
""
>
{{'FoundationDate' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span></span>
</div>
</div>
<div
class=
"row"
ng-repeat=
"x in selectCompany.orgAttributeRowList
"
>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
""
>
{{'MainBusiness' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span></span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
""
>
{{'BusinessLine' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
""
>
{{'Area' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span></span>
</div>
</div>
<div
class=
"row"
ng-repeat=
"x in selectCompany.orgAttributeRowList"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
title=
"{{x.left.dimensionName}}"
>
{{x.left.dimensionName|limitString:maxTitleLength}}:
</span>
<span
class=
"control-label"
title=
"{{x.left.dimensionValue}}"
>
{{x.left.dimensionValue|limitString:maxValueLength}}
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
ng-if=
"x.right"
title=
"{{x.right.dimensionName}}"
>
{{x.right.dimensionName|limitString:maxTitleLength}}:
</span>
<span
class=
"control-label"
ng-if=
"x.right"
title=
"{{x.right.dimensionValue}}"
>
{{x.right.dimensionValue|limitString:maxValueLength}}
</span>
<span
class=
"control-label"
ng-if=
"x.right"
title=
"{{x.right.dimensionName}}"
>
{{x.right.dimensionName|limitString:maxTitleLength}}:
</span>
<span
class=
"control-label"
ng-if=
"x.right"
title=
"{{x.right.dimensionValue}}"
>
{{x.right.dimensionValue|limitString:maxValueLength}}
</span>
</div>
</div>
</div>
<div
class=
"row picture-panel"
>
<div
class=
"col-sm-4 company-property-border"
>
<i
style=
"color: #757575;"
class=
"material-icons"
>
sort
</i>
<span
title=
"{{businessName}}"
>
{{businessName |limitString:maxValueLength}}
</span>
<br
/>
<p><span
title=
"{{selectCompany.businessUnitName}}"
>
{{selectCompany.businessUnitName |limitString:maxValueLength}}
</span></p>
<span
translate=
"Business"
></span>
<br/>
<p><span
title=
"{{selectCompany.businessUnitName}}"
>
{{selectCompany.businessUnitName |limitString:maxValueLength}}
</span>
</p>
</div>
<div
class=
"col-sm-4 company-property-border"
>
<i
style=
"color: #757575;"
class=
"material-icons"
>
store mall directory
</i>
<span
translate=
"PIndustry"
></span>
<br
/>
<p><span
title=
"{{selectCompany.industryName}}"
>
{{selectCompany.industryName |limitString:maxValueLength}}
</span></p>
<br/>
<p><span
title=
"{{selectCompany.industryName}}"
>
{{selectCompany.industryName |limitString:maxValueLength}}
</span>
</p>
</div>
<div
class=
"col-sm-4 company-property-border"
>
<i
style=
"color: #757575;"
class=
"material-icons"
>
place
</i>
<span
title=
"{{areaName}}"
>
{{areaName|limitString:maxValueLength}}
</span>
<br
/>
<p><span
title=
"{{selectCompany.areaName}}"
>
{{selectCompany.areaName |limitString:maxValueLength}}
</span></p>
<span
translate=
"Area"
></span>
<br/>
<p><span
title=
"{{selectCompany.areaName}}"
>
{{selectCompany.areaName |limitString:maxValueLength}}
</span>
</p>
</div>
</div>
<div>
<div
class=
"row padding-top10"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'DepositBank' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'BankAccount' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
</div>
<div
class=
"right-bottom"
>
<md-content>
<md-nav-bar
md-selected-nav-item=
"currentNavItem"
nav-bar-aria-label=
"navigation links"
>
<md-nav-item
md-nav-click=
"goto('page1')"
name=
"page1"
>
{{'OrganizationAdvancedOptions' | translate}}
</md-nav-item>
<md-nav-item
md-nav-click=
"goto('page2')"
name=
"page2"
>
{{'OrgUser' | translate}}
</md-nav-item>
</md-nav-bar>
<div
class=
"ext-content"
>
<div
ng-show=
"currentNavItem==='page1'"
class=
"accountset-modal-table"
>
<div
class=
"row border-bottom-divide"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'LegalPerson' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'LegalCode' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
</div>
<div
class=
"row padding-top10"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'RegistrationLocation' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'RegistrationAddress' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'RegistrationDate' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'RegistrationType' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'BusinessAllottedTime' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'RegistrationCapital' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'BusinessScope' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span></span>
</div>
</div>
</div>
</div>
<div
ng-show=
"currentNavItem==='page2'"
class=
"equity-info-table"
>
<div
class=
"label-current-holding"
>
<label
class=
"basic-label"
>
{{'CurrentHolding' | translate}}
</label>
</div>
<div
class=
"right-option"
>
<button
type=
"button"
class=
"btn btn-in-grid"
style=
"width: 117px;"
ng-click=
"updateEquity()"
ng-if=
"hasEditPermission"
><i
class=
"material-icons middle"
>
create
</i>
{{'Change' | translate}}
</button>
<button
type=
"button"
class=
"btn btn-in-grid"
style=
"width: 117px;"
ng-click=
"alterEquity()"
ng-if=
"hasEditPermission"
><i
class=
"material-icons middle"
>
create
</i>
{{'Alter' | translate}}
</button>
</div>
<div
class=
"current-holding-info"
>
<span
class=
"control-label"
>
{{'HoldingInstitution' | translate}}:
<strong
class=
"label label-default"
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</strong>
个
</span>
<span
class=
"control-label"
>
{{'TotalInvestment' | translate}}:
<strong
class=
"label label-default"
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</strong>
万元
</span>
<span
class=
"control-label"
>
{{'TotalEquityRatio' | translate}}:
<strong
class=
"label label-default"
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</strong>
%
</span>
</div>
<div
class=
"dx-viewport grid-container"
>
<div
id=
"equityGridContainer"
dx-data-grid=
"equityGridOptions"
style=
"margin-top: 30px;"
>
</div>
<!--<div class="form-group page-form-group">
<div class="page-footer">
<ack-pagination page-options="pagingOptions" refresh-table="pagingService.refreshOrgDataGrid()" hide-page-size-selector="true"></ack-pagination>
</div>
</div>-->
</div>
<div
class=
"label-equity-change-record"
>
<label
class=
"basic-label"
>
{{'EquityChangeRecord' | translate}}
</label>
</div>
<div
class=
"current-holding-info"
>
<span
class=
"control-label"
>
{{'ChangeRecord' | translate}}:
<strong
class=
"label label-default"
title=
"{{pagingOptions.totalItems}}"
>
{{pagingOptions.totalItems}}
</strong>
条
</span>
</div>
<div
class=
"dx-viewport grid-container"
>
<div
id=
"equityChangeGridContainer"
dx-data-grid=
"equityChangeGridOptions"
dx-item-alias=
"equityChangeInfo"
style=
"margin-top: 30px;"
>
<div
data-options=
"dxTemplate: {name: 'detail'}"
>
<div
dx-data-grid=
"getDetailGridSettings(equityChangeInfo.key)"
></div>
</div>
</div>
<div
class=
"form-group page-form-group"
>
<div
class=
"page-footer"
>
<ack-pagination
page-options=
"pagingOptions"
refresh-table=
"pagingService.refreshOrgDataGrid()"
hide-page-size-selector=
"true"
></ack-pagination>
</div>
</div>
</div>
</div>
<div
ng-show=
"currentNavItem==='page3'"
class=
"org-extra-data-table"
>
<div
class=
"extra-org-info-wrapper"
>
<div
class=
"extra-org-info"
>
<!--<label class="basic-label">{{'OrganizationBasicData' | translate}}</label>-->
<div
class=
"right-option"
>
<button
type=
"button"
class=
"updOrgBtn btn btn-in-grid"
style=
"width: 117px;"
ng-click=
"updateOrgExtra()"
ng-if=
"hasEditPermission"
><i
class=
"material-icons middle"
>
create
</i>
{{'Change' | translate}}
</button>
<button
type=
"button"
hidden=
"hidden"
class=
"btn btn-in-grid button2position"
style=
"width: 117px;"
ng-click=
"updateOrgExtraSubmit()"
ng-if=
"hasEditPermission"
><i
class=
"material-icons middle"
>
create
</i>
{{'UpdateOrgExtraSubmit' | translate}}
</button>
<button
type=
"button"
hidden=
"hidden"
class=
"btn btn-in-grid button2position"
style=
"width: 117px;"
ng-click=
"updateOrgExtraCancel()"
><i
class=
"material-icons middle"
>
create
</i>
{{'Cancel' | translate}}
</button>
</div>
<div
class=
"row padding-top30"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'UnifiedSocialCreditCode' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'RegistrationStatus' | translate}}:
<span
title=
"{{selectCompany.code}}"
>
{{selectCompany.code | limitString:maxValueLength}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'LogoutTime' | translate}}:
<span
title=
"{{selectCompany.taxPayerNumber}}"
>
{{selectCompany.taxPayerNumber | limitString:maxValueLength}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ChangeType' | translate}}:
<span
title=
"{{selectCompany.structureName}}"
>
{{selectCompany.structureName | limitString:maxValueLength}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'RegistrationFinancialAccountingMethod' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'GeneralTaxpayer' | translate}}:
<span
title=
"{{selectCompany.regionName}}"
>
{{selectCompany.regionName |limitString:maxValueLength}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'EffectiveTime' | translate}}:
<span
title=
"{{selectCompany.regionName}}"
>
{{selectCompany.regionName |limitString:maxValueLength}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TaxCreditRating' | translate}}:
<span
title=
"{{selectCompany.regionName}}"
>
{{selectCompany.regionName |limitString:maxValueLength}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<!--<div class="col-sm-6" ng-if="firstAttribute">
<span class="control-label" title="{{firstAttribute.dimensionName}}"> {{firstAttribute.dimensionName|limitString:maxTitleLength}}:</span>
<span class="control-label" title="{{firstAttribute.dimensionValue}}">{{firstAttribute.dimensionValue|limitString:maxValueLength}}</span>
</div>-->
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'FinancialAccountingMethod' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'FinancialAccountingSystem' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'LowValueConsumablesAmortizationMethod' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'DepreciationMethod' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'CostingMethod' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'AccountingSoftware' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'IsCompleteRecordTotalInstitutions' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TaxpayerName' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TaxpayerPhone' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TaxpayerIDNumber' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TicketHolderName' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TicketPurchaser' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TicketHolderIDNumber' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'NationalTaxHallAddress' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'NationalTaxSpecialistName' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'NationalTaxSpecialistPhone' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'LocalTaxHallAddress' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'LocalTaxAdministrator' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'LocalTaxAdministratorPhoneNumber' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'eTAWebsite' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'IsApprovedLevy' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ApprovedLevyProject' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ApprovedLevyItems' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ApprovedValidityPeriodStartTime' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ApprovedValidityPeriodEndTime' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ApprovedRate' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ApprovedTaxTerm' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'IsSignTripartiteAgreement' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ReportingCurrency' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'AccountingRate' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'ConsolidationTime' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'EmployeesCurrentNum' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'InvoiceTypeName' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'SingleInvoiceMaxInvoiceAmount' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'MonthlyMaxTicketsPurchased' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'MonthlyMaxInvoicingLimit' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'OfflineBillingTimeLimit' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'OfflineBillingCumulativeLimit' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'FiscalYearDeadline' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TaxAgent' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TaxAgentContact' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'TaxRuleIntroduction' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'Auditrequirements' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
>
{{'OtherFacts' | translate}}:
<span
title=
"{{selectCompany.parentName}}"
>
{{selectCompany.parentName ? (selectCompany.parentName|limitString:maxValueLength):'无'}}
</span>
<input
class=
"input-group"
style=
"display: none"
title=
"{{selectCompany.code}}"
value=
"{{selectCompany.code | limitString:maxValueLength}}"
/>
</span>
</div>
</div>
<div
class=
"row"
ng-repeat=
"x in selectCompany.orgAttributeRowList"
>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
title=
"{{x.left.dimensionName}}"
>
{{x.left.dimensionName|limitString:maxTitleLength}}:
</span>
<span
class=
"control-label"
title=
"{{x.left.dimensionValue}}"
>
{{x.left.dimensionValue|limitString:maxValueLength}}
</span>
</div>
<div
class=
"col-sm-6"
>
<span
class=
"control-label"
ng-if=
"x.right"
title=
"{{x.right.dimensionName}}"
>
{{x.right.dimensionName|limitString:maxTitleLength}}:
</span>
<span
class=
"control-label"
ng-if=
"x.right"
title=
"{{x.right.dimensionValue}}"
>
{{x.right.dimensionValue|limitString:maxValueLength}}
</span>
</div>
</div>
</div>
<div
class=
"label-tax-info border-bottom-divide"
>
<label
class=
"basic-label"
>
{{'TaxInformation' | translate}}
</label>
</div>
<div
class=
"dx-viewport grid-container"
>
<div
id=
"taxInfoGridContainer"
dx-data-grid=
"taxInfoGridOptions"
style=
"margin-top: 30px;"
>
</div>
<div
class=
"form-group page-form-group"
>
<div
class=
"page-footer"
>
<ack-pagination
page-options=
"pagingOptions"
refresh-table=
"pagingService.refreshOrgDataGrid()"
hide-page-size-selector=
"true"
></ack-pagination>
</div>
</div>
</div>
</div>
</div>
<div
ng-show=
"currentNavItem==='page4'"
class=
"tax-preferential-info-table"
>
<div
ng-include=
"'../../noOpenModulePage/no-open-module-page.html'"
></div>
</div>
<div
ng-show=
"currentNavItem==='page5'"
class=
"accountset-modal-table"
>
<div
class=
"tool-bar"
>
<span
class=
"use-set"
>
{{'UseEnterpriseAccountSet' | translate}}
</span>
<div
class=
"right-part"
ng-if=
"hasEditPermission"
>
...
...
@@ -240,7 +943,7 @@
</div>
</div>
<div
ng-show=
"currentNavItem==='page
2
'"
class=
"user-table"
>
<div
ng-show=
"currentNavItem==='page
6
'"
class=
"user-table"
>
<div
class=
"item-row"
>
<div
class=
"left-item"
>
{{userCount}} {{'UserStatisticsCount'| translate}}
</div>
...
...
@@ -281,6 +984,8 @@
<operate-log
is-show=
"isShowLog"
></operate-log>
<edit-organization-modal
operate-type=
"orgOperateType"
is-update=
"isOrgUpdate"
selected-organization=
"selectedOrg"
dimension-id=
"showAttributeDimensionID"
></edit-organization-modal>
<edit-equity-modal
operate-type=
"equityEditOperateType"
is-update=
"isEquityUpdate"
selected-organization=
"selectedOrg"
></edit-equity-modal>
<edit-equity-change-modal
operate-type=
"equityChangeOperateType"
is-update=
"isEquityChange"
selected-organization=
"selectedOrg"
></edit-equity-change-modal>
<add-exist-user-modal
operate-type=
"addUserOperateType"
is-update=
"addUserIsUpdate"
selected-user-list=
"selectedUserList"
selected-key-items=
"selectedKeyItems"
></add-exist-user-modal>
<user-organization-access-modal
operate-type=
"userRoleOperateType"
is-update=
"userRolesIsUpdate"
user-id=
"selectedUserID"
organization-id=
"selectedOrgID"
></user-organization-access-modal>
...
...
atms-web/src/main/webapp/app/admin/infrastructure/organizationManage/organization-manage.less
View file @
4cf57147
...
...
@@ -135,7 +135,7 @@
border-radius: 5px;
padding: 4px;
background-color: white;
height: 100%;
//
height: 100%;
display: flex;
flex-direction: column;
...
...
@@ -165,14 +165,12 @@
padding-top: 8px;
}
}
.right-option {
height:
58
px;
height:
30
px;
display: inline-block;
vertical-align: middle;
float: right;
.right-operate {
margin-left: 20px;
margin-right: 15px;
...
...
@@ -201,7 +199,7 @@
}
}
.basic-org-info-wrapper {
/*
.basic-org-info-wrapper {
min-width: 500px;
max-width: 700px;
...
...
@@ -253,7 +251,7 @@
.btn-disable {
background-color: @add-org-btn-background-color;
}
}
}
*/
}
.right-bottom {
...
...
@@ -268,6 +266,236 @@
height: calc(~"100% - 50px");
overflow-y: hidden;
.org-basic-data-table{
max-height: 700px;
.right-option {
height: 30px;
display: inline-block;
vertical-align: middle;
float: right;
}
.basic-org-info-wrapper {
min-width: 700px;
max-width: 1000px;
.divider {
height: 2px;
overflow: hidden;
background-color: #e5e5e5;
border-bottom: 1px solid #fff;
}
.row {
padding-left: 0px;
margin-right: -200px;
line-height: 2em;
}
.padding-top10 {
padding-top: 10px;
}
.padding-top30 {
padding-top: 30px;
}
.border-bottom-divide{
border-bottom: 1px solid #dbd8d3;
}
.basic-label {
text-rendering: optimizeLegibility;
font-kerning: normal;
font-weight: 700;
font-family: 'Microsoft YaHei Bold', 'Microsoft YaHei Regular', 'Microsoft YaHei';
}
.basic-org-info {
padding: 5px 0px;
max-height: 250px;
overflow-y: auto;
overflow-x: hidden;
}
.picture-panel {
margin-left: 0px;
margin-right: -200px;
padding: 10px 0px;
background-color: @color-light-gray-f2;
}
.company-property-border {
border-left: 1px;
border-left-color: #CDCDCD;
border-left-style: solid;
i {
font-size: 16px;
width: 16px;
}
span {
color: @color-red-ext0;
}
}
.btn-isenable {
background-color: @organizationIsActiveBtn-background-color;
}
.btn-disable {
background-color: @add-org-btn-background-color;
}
}
}
.equity-info-table{
max-height: 700px;
overflow-y: scroll;
.right-option {
height: 30px;
display: inline-block;
vertical-align: middle;
float: right;
}
#equityGridContainer {
/*height: 600px;*/
margin-bottom: 15px;
}
.label-current-holding{
padding-top: 10px;
}
.current-holding-info{
padding-top: 10px;
}
.label{
padding-bottom: 2px;
}
.page-footer {
display: inline-block;
float: right;
/*padding-right: 20px;*/
}
.page-form-group {
float: right;
margin-top:20px;
.page-size {
margin: 0;
}
.pagination {
margin: 0;
}
}
}
.org-extra-data-table {
max-height: 700px;
overflow-y: scroll;
.right-option {
height: 30px;
display: inline-block;
vertical-align: middle;
float: right;
}
.input-group {
border: 1px solid #CDCDCD;
border-radius: 4px;
display: inline;
margin: 5px;
}
.extra-org-info-wrapper {
min-width: 700px;
max-width: 1400px;
.divider {
height: 2px;
overflow: hidden;
background-color: #e5e5e5;
border-bottom: 1px solid #fff;
}
.row {
padding-left: 0;
line-height: 2em;
}
.padding-top10 {
padding-top: 10px;
}
.padding-top30 {
padding-top: 30px;
}
.border-bottom-divide{
border-bottom: 1px solid #dbd8d3;
}
.basic-label {
padding: 20px 0px;
text-rendering: optimizeLegibility;
font-kerning: normal;
font-weight: 700;
font-family: 'Microsoft YaHei Bold', 'Microsoft YaHei Regular', 'Microsoft YaHei';
}
.extra-org-info {
padding: 10px 0px;
max-height: 250px;
overflow-y: auto;
overflow-x: hidden;
}
#taxInfoGridContainer {
/*height: 600px;*/
margin-bottom: 15px;
}
.company-property-border {
border-left: 1px;
border-left-color: #CDCDCD;
border-left-style: solid;
i {
font-size: 16px;
width: 16px;
}
span {
color: @color-red-ext0;
}
}
.btn-isenable {
background-color: @organizationIsActiveBtn-background-color;
}
.btn-disable {
background-color: @add-org-btn-background-color;
}
}
.page-footer {
display: inline-block;
float: right;
/*padding-right: 20px;*/
}
}
.tax-preferential-info-table{
}
.accountset-modal-table {
height: 100%;
...
...
atms-web/src/main/webapp/app/common/webservices/organization.svc.js
View file @
4cf57147
...
...
@@ -124,6 +124,9 @@ webservices.factory('orgService', ['$http', 'apiConfig', function ($http, apiCon
},
getBdList
:
function
()
{
return
$http
.
get
(
'/org/bdList'
,
apiConfig
.
create
());
},
downloadOrgListData
:
function
(
exportData
)
{
return
$http
.
post
(
'/org/downloadOrgListData'
,
exportData
,
apiConfig
.
create
({
responseType
:
'arraybuffer'
}));
}
};
}]);
\ No newline at end of file
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