Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
李宁
/
Activity
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit da7b0e06
authored
Nov 07, 2025
by
李宁
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1
1 parent
525f13f3
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
1779 additions
and
713 deletions
huaiHua/app/css/login.css
huaiHua/app/login.html
huaiHua/pc/dist/index.html
huaiHua/pc/src/pages/QualityResult.vue
huaian/css/demo.css
huaian/demo.html
zhiJianBusi/zjbPc/src/assets/js/api/interface/account/index.js
zhiJianBusi/zjbPc/src/assets/js/api/interface/business/index.js
zhiJianBusi/zjbPc/src/assets/js/api/interface/common/index.js
zhiJianBusi/zjbPc/src/assets/js/api/interface/grid/index.js
zhiJianBusi/zjbPc/src/assets/js/api/interface/index.js
zhiJianBusi/zjbPc/src/assets/js/api/interface/person/index.js
zhiJianBusi/zjbPc/src/assets/js/api/login.js
zhiJianBusi/zjbPc/src/assets/js/api/request.js
zhiJianBusi/zjbPc/src/assets/js/const/common.js
zhiJianBusi/zjbPc/src/assets/js/stores/addressData.js
zhiJianBusi/zjbPc/src/assets/js/stores/index.js
zhiJianBusi/zjbPc/src/components/system/AccountManagement.vue
zhiJianBusi/zjbPc/src/components/system/PersonnelManagement.vue
zhiJianBusi/zjbPc/src/main.js
zhiJianBusi/zjbPc/src/router/index.js
zhiJianBusi/zjbPc/src/views/GridQuery.vue
zhiJianBusi/zjbPc/src/views/LoginPage.vue
zhiJianBusi/zjbPc/src/views/OpportunityManagement.vue
zhiJianBusi/zjbPc/vue.config.js
huaiHua/app/css/login.css
View file @
da7b0e0
...
...
@@ -4,7 +4,6 @@ html{
html
,
body
{
width
:
100%
;
height
:
100%
;
background
:
red
;
}
body
{
min-height
:
100vh
;
...
...
huaiHua/app/login.html
View file @
da7b0e0
...
...
@@ -4,7 +4,7 @@
<meta
charset=
"UTF-8"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0"
>
<title>
登录
</title>
<link
rel=
"stylesheet"
href=
"css/login.css?9941"
>
<link
rel=
"stylesheet"
href=
"css/login.css?99
3
41"
>
</head>
<body>
<div
id=
"app"
v-cloak
>
...
...
huaiHua/pc/dist/index.html
View file @
da7b0e0
...
...
@@ -5,8 +5,8 @@
<link
rel=
"icon"
href=
"/favicon.ico"
/>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1.0"
/>
<title>
视频质检系统
</title>
<script
type=
"module"
crossorigin
src=
"./assets/index-
BJJz899K
.js"
></script>
<link
rel=
"stylesheet"
crossorigin
href=
"./assets/index-
KGZYoaHH
.css"
>
<script
type=
"module"
crossorigin
src=
"./assets/index-
DqoDLtuq
.js"
></script>
<link
rel=
"stylesheet"
crossorigin
href=
"./assets/index-
Ck6T8htw
.css"
>
</head>
<body>
<div
id=
"app"
></div>
...
...
huaiHua/pc/src/pages/QualityResult.vue
View file @
da7b0e0
...
...
@@ -192,7 +192,17 @@
<h3
class=
"section-title"
>
质检详情
</h3>
<el-table
:data=
"detailForm.data.items"
border
style=
"width: 100%;"
>
<el-table-column
prop=
"dec"
label=
"检查项"
width=
"200"
></el-table-column>
<el-table-column
prop=
"result"
label=
"检查结果"
width=
"150"
></el-table-column>
<el-table-column
prop=
"result"
label=
"检查结果"
width=
"150"
>
<
template
#
default=
"scope"
>
<span>
{{
scope
.
row
.
result
}}
</span>
<el-button
v-if=
"scope.row.result=='noShow'"
size=
"small"
type=
"text"
@
click=
"checkReason(scope.row.content)"
>
查看原因
</el-button>
</
template
>
</el-table-column>
<el-table-column
prop=
"robot"
label=
"识别方式"
width=
"200"
>
<
template
#
default=
"scope"
>
<span>
{{
scope
.
row
.
robot
==
'auto'
?
'自动识别'
:
'手动填写'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"picUrl"
label=
"现场快照"
>
<
template
#
default=
"scope"
>
<el-image
...
...
@@ -235,7 +245,7 @@
<
script
setup
>
import
{
ref
,
reactive
,
onMounted
}
from
'vue'
import
{
useRouter
}
from
'vue-router'
import
{
ElMessage
}
from
'element-plus'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
getQualityResults
,
getQualityResultsDetail
}
from
'../utils/api'
const
router
=
useRouter
()
...
...
@@ -346,6 +356,12 @@ const getResultText = (result,status) => {
return
ret
}
const
checkReason
=
(
value
)
=>
{
ElMessageBox
.
alert
(
value
,
'提示'
,
{
confirmButtonText
:
'知道了'
,
})
}
const
getResultTagType
=
(
result
,
status
)
=>
{
const
typeMap
=
{
0
:
'info'
,
...
...
@@ -367,7 +383,6 @@ const viewDetail = async (row) => {
res
.
data
.
items
.
forEach
(
item
=>
{
item
.
picArr
=
item
.
picUrl
.
split
(
','
)
//item.picArr = ['https://hhzj.lgyzpt.com/huaiHuaPc/assets/logo-D9UGterv.png','https://hhzj.lgyzpt.com/huaiHuaPc/assets/bg-C097ZT0U.png']
item
.
furl
=
item
.
picArr
[
0
]
||
''
})
...
...
@@ -381,6 +396,12 @@ const handlePageChange = (page) => {
}
const
handleClose
=
()
=>
{
const
videos
=
document
.
querySelectorAll
(
'video'
);
videos
.
forEach
(
video
=>
{
video
.
pause
();
video
.
currentTime
=
0
;
});
detailForm
.
isShow
=
false
}
...
...
huaian/css/demo.css
View file @
da7b0e0
...
...
@@ -397,7 +397,7 @@ html,body{
left
:
0
;
top
:
0
;
background
:
rgb
(
0
,
0
,
0
,
0.5
);
z-index
:
999
99
;
z-index
:
999
;
display
:
none
;
}
.waittingDiv
.inner
{
...
...
huaian/demo.html
View file @
da7b0e0
...
...
@@ -7,7 +7,7 @@
<meta
http-equiv=
"X-UA-Compatible"
content=
"ie=edge"
>
<title>
江苏移动
</title>
<link
rel=
"stylesheet"
href=
"https://xpo.oss-cn-beijing.aliyuncs.com/huaian/css/vant.css"
/>
<link
rel=
"stylesheet"
href=
"css/demo.css?
0909019011131
"
>
<link
rel=
"stylesheet"
href=
"css/demo.css?
67676
"
>
</head>
<body>
...
...
zhiJianBusi/zjbPc/src/assets/js/api/interface/account/index.js
0 → 100644
View file @
da7b0e0
import
request
from
'../../request'
/**
*
*/
export
function
queryAllMissionRecord
()
{
return
request
({
url
:
'hallserver/companyJob/queryAllCompanyJob'
,
data
:
{}
})
}
\ No newline at end of file
zhiJianBusi/zjbPc/src/assets/js/api/interface/business/index.js
0 → 100644
View file @
da7b0e0
import
request
from
'../../request'
/**
* 全部商机-列表查询
*/
export
function
queryAllBusi
(
data
)
{
return
request
({
url
:
'/compass/api/opportunity/page'
,
data
,
})
}
/**
* 全部商机-数据统计
*/
export
function
queryAllBusiStatistics
(
data
)
{
return
request
({
url
:
'/compass/api/opportunity/statistics'
,
data
,
})
}
/**
* 全部商机-查询商机标签列表
*/
export
function
queryBusiLabel
(
data
)
{
return
request
({
url
:
'/compass/api/opportunity/tag/page'
,
data
,
})
}
\ No newline at end of file
zhiJianBusi/zjbPc/src/assets/js/api/interface/common/index.js
0 → 100644
View file @
da7b0e0
import
request
from
'../../request'
/**
* 查询区域列表
* 1-省级,2-市级,3-区级,4-网格级
*/
export
function
queryAllArea
(
data
)
{
return
request
({
url
:
'/compass/api/common/areas/level?areaLevel='
+
data
.
areaLevel
+
'&parentAreaCode='
+
data
.
parentAreaCode
,
method
:
'GET'
})
}
/**
* 当前用户权限获取下级区域层级结构
*/
export
function
queryUserArea
(
data
)
{
return
request
({
url
:
'/compass/api/system/area/permission/hierarchy'
,
data
,
})
}
/**
* 商机状态列表
*/
export
function
queryBusiStatus
(
data
)
{
return
request
({
url
:
'/compass/api/common/enums/opportunity-statuses'
,
method
:
'GET'
,
data
,
})
}
\ No newline at end of file
zhiJianBusi/zjbPc/src/assets/js/api/interface/grid/index.js
0 → 100644
View file @
da7b0e0
import
request
from
'../../request'
/**
* 资金管理-发票管理-开票订单查询
* @returns {AxiosPromise}
*/
export
function
queryTicketOrderList
()
{
return
request
({
url
:
'hallserver/v1/invoiceApply/queryCompanyOrder'
,
data
:
{}
})
}
\ No newline at end of file
zhiJianBusi/zjbPc/src/assets/js/api/interface/index.js
0 → 100644
View file @
da7b0e0
import
*
as
business
from
'./business'
import
*
as
grid
from
'./grid'
import
*
as
person
from
'./person'
import
*
as
account
from
'./account'
import
*
as
login
from
'../login'
import
*
as
common
from
'./common'
export
default
{
...
account
,
...
business
,
...
person
,
...
login
,
...
grid
,
...
common
}
\ No newline at end of file
zhiJianBusi/zjbPc/src/assets/js/api/interface/person/index.js
0 → 100644
View file @
da7b0e0
import
request
from
'../../request'
/**
*
*/
export
function
companyInfoQuery
(
companyId
)
{
return
request
({
url
:
'hallserver/hallCompanyInfo/getCompanyInfo'
,
data
:
{
'companyId'
:
companyId
}
})
}
zhiJianBusi/zjbPc/src/assets/js/api/login.js
0 → 100644
View file @
da7b0e0
import
request
from
'./request'
/**
* 退出登录
*/
export
function
logout
()
{
return
request
({
url
:
'hallserver/admin/logout'
,
data
:
{}
})
}
/**
* 登录
* @param loginName
* @param password
*/
export
function
login
(
data
)
{
return
request
({
url
:
'compass/api/auth/login'
,
data
,
})
}
/**
* 获取登录验证码
* @param loginName
* @param password
*/
export
function
loginCode
(
data
)
{
return
request
({
url
:
'hallserver/admin/loginCode'
,
data
,
})
}
/**
* 获取路由权限
* @returns {AxiosPromise}
*/
export
function
getMenus
()
{
return
request
({
url
:
'hallserver/admin/function'
,
data
:
{}
})
}
zhiJianBusi/zjbPc/src/assets/js/api/request.js
0 → 100644
View file @
da7b0e0
import
axios
from
"axios"
;
import
{
MessageBox
}
from
"element-ui"
;
import
router
from
"@/router"
;
const
service
=
axios
.
create
({
baseURL
:
'/'
,
method
:
"post"
,
timeout
:
150000
,
withCredentials
:
true
,
});
//请求拦截
service
.
interceptors
.
request
.
use
(
(
config
)
=>
{
if
(
!
config
.
headers
[
"Content-Type"
])
config
.
headers
[
"Content-Type"
]
=
"application/json;charset=utf-8"
;
if
(
localStorage
.
pcUserInfo
)
{
let
userInfo
=
JSON
.
parse
(
localStorage
.
pcUserInfo
);
config
.
headers
[
"x-access-token"
]
=
userInfo
.
token
}
return
config
;
},
(
error
)
=>
{
Promise
.
reject
(
error
);
}
);
let
ifCanShow
=
true
;
//为了防止页面有异常情况时,多个接口请求导致弹窗多次的问题
let
catchFun
=
function
(
msg
)
{
if
(
!
ifCanShow
)
{
return
;
}
ifCanShow
=
false
;
MessageBox
.
confirm
(
msg
,
"提示"
,
{
showClose
:
false
,
closeOnPressEscape
:
false
,
closeOnClickModal
:
false
,
showCancelButton
:
false
,
}).
then
(()
=>
{
ifCanShow
=
true
;
router
.
push
({
path
:
"/login"
});
});
};
//响应拦截
service
.
interceptors
.
response
.
use
(
(
response
)
=>
{
console
.
log
(
response
);
if
(
response
.
status
===
200
)
{
if
(
response
.
data
.
code
==
"401"
)
{
//登陆失效,重新登陆
catchFun
(
"账户状态异常"
);
}
else
if
(
response
.
data
.
code
==
"133"
)
{
//灰名单
MessageBox
.
alert
(
response
.
data
.
msg
,
"状态异常/错误提示"
,
{
dangerouslyUseHTMLString
:
true
,
});
}
else
{
if
(
response
.
data
instanceof
Blob
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
var
r
=
new
FileReader
();
var
resData
=
response
.
data
;
if
(
response
.
config
.
url
.
indexOf
(
"poster/createPoster"
)
>=
0
)
{
if
(
resData
.
type
==
"application/json"
)
{
r
.
readAsText
(
resData
);
}
else
{
r
.
readAsDataURL
(
resData
);
}
}
else
{
r
.
readAsText
(
resData
);
}
r
.
onload
=
function
()
{
let
res
=
{};
//PK 为二进制压缩包(ZIP)导出数据流
if
(
escape
(
r
.
result
).
indexOf
(
"%u"
)
==
0
||
escape
(
r
.
result
).
indexOf
(
"PK"
)
==
0
||
r
.
result
.
indexOf
(
"pdf"
)
>=
0
||
r
.
result
.
indexOf
(
"PDF"
)
>=
0
||
r
.
result
.
indexOf
(
"data:image"
)
>=
0
)
{
res
.
type
=
"blob"
;
res
.
value
=
resData
;
}
else
{
res
.
type
=
"object"
;
res
.
value
=
JSON
.
parse
(
r
.
result
);
}
resolve
(
res
);
};
}).
catch
((
e
)
=>
{});
}
else
{
return
{
url
:
response
.
config
.
url
,
...
response
.
data
,
};
}
}
}
else
if
(
response
.
status
===
302
)
{
catchFun
(
"登陆失效,请重新登陆"
);
}
else
if
(
response
.
status
===
401
||
response
.
status
==
403
)
{
catchFun
(
"账户状态异常"
);
}
else
{
if
(
sessionStorage
.
notFirstIn
)
{
catchFun
(
"网络异常,请稍后再试"
);
}
}
},
(
error
)
=>
{
if
(
sessionStorage
.
notFirstIn
)
{
catchFun
(
"网络异常,请稍后再试"
);
}
}
);
export
default
service
;
zhiJianBusi/zjbPc/src/assets/js/const/common.js
0 → 100644
View file @
da7b0e0
import
axios
from
'axios'
import
{
MessageBox
}
from
'element-ui'
export
default
{
/**
* 数组元素查询——针对数组元素中object某一项值
* @param val
* @param store
* @param findKey
*/
arrayFind
:
function
(
val
,
store
,
findKey
)
{
let
res
=
''
if
(
!
store
)
{
return
val
}
if
(
!
findKey
)
{
findKey
=
'value'
}
try
{
store
.
forEach
(
function
(
item
,
index
)
{
if
(
item
[
findKey
]
==
val
)
{
let
curItem
=
JSON
.
parse
(
JSON
.
stringify
(
item
))
curItem
.
findIndex
=
index
res
=
curItem
throw
new
Error
(
'end forEach'
)
}
})
}
catch
(
e
)
{
if
(
e
.
message
=
'end forEach'
)
{
console
.
log
(
e
.
message
)
}
}
return
res
},
/**
* 枚举渲染
* @param ename
* @param store
* @returns {*}
*/
globalRender
:
function
(
ename
,
store
,
checkFlag
)
{
let
val
=
''
if
(
!
checkFlag
)
{
val
=
ename
}
if
(
!
store
)
{
return
val
}
if
(
store
.
length
!=
0
)
{
for
(
let
i
=
0
;
i
<
store
.
length
;
i
++
)
{
if
(
ename
==
store
[
i
].
key
)
{
return
store
[
i
].
value
||
store
[
i
].
key
}
else
if
(
i
==
store
.
length
-
1
)
{
return
val
;
}
}
}
else
{
return
val
;
}
},
/**
* 时间戳转字符串
* @param num
* @returns {*}
*/
detailTime
:
function
(
num
)
{
if
(
num
==
null
)
{
return
''
;
}
else
{
num
=
Number
(
num
);
let
d
=
new
Date
(
num
);
let
year
=
d
.
getFullYear
();
let
month
=
d
.
getMonth
()
+
1
;
let
date
=
d
.
getDate
();
let
hour
=
d
.
getHours
();
let
minute
=
d
.
getMinutes
();
let
second
=
d
.
getSeconds
();
month
<
10
?
month
=
'0'
+
month
:
month
;
date
<
10
?
date
=
'0'
+
date
:
date
;
hour
<
10
?
hour
=
'0'
+
hour
:
hour
;
minute
<
10
?
minute
=
'0'
+
minute
:
minute
;
second
<
10
?
second
=
'0'
+
second
:
second
;
return
year
+
"-"
+
month
+
"-"
+
date
+
" "
+
hour
+
":"
+
minute
+
":"
+
second
;
}
},
/**
* 文件后缀时间戳
* @param {*} num
* @returns
*/
fileTimeStamp
:
function
(
num
)
{
if
(
num
==
null
)
{
return
''
;
}
else
{
num
=
Number
(
num
);
let
d
=
new
Date
(
num
);
let
year
=
d
.
getFullYear
();
let
month
=
d
.
getMonth
()
+
1
;
let
date
=
d
.
getDate
();
let
hour
=
d
.
getHours
();
let
minute
=
d
.
getMinutes
();
let
second
=
d
.
getSeconds
();
month
<
10
?
month
=
'0'
+
month
:
month
;
date
<
10
?
date
=
'0'
+
date
:
date
;
hour
<
10
?
hour
=
'0'
+
hour
:
hour
;
minute
<
10
?
minute
=
'0'
+
minute
:
minute
;
second
<
10
?
second
=
'0'
+
second
:
second
;
return
year
+
"-"
+
month
+
"-"
+
date
+
"-"
+
hour
+
""
+
minute
+
""
+
second
;
}
},
/**
* 浮点数加法,用于解决精度丢失问题
* @param {*} num1
* @param {*} num2
* @returns
*/
addStr
:
function
(
num1
,
num2
)
{
var
r1
,
r2
,
m
;
try
{
r1
=
num1
.
toString
().
split
(
'.'
)[
1
].
length
;
}
catch
(
e
)
{
r1
=
0
;
}
try
{
r2
=
num2
.
toString
().
split
(
"."
)[
1
].
length
;
}
catch
(
e
)
{
r2
=
0
;
}
m
=
Math
.
pow
(
10
,
Math
.
max
(
r1
,
r2
));
return
Math
.
round
(
num1
*
m
+
num2
*
m
)
/
m
;
},
/**
* 浮点数减法,用于解决精度丢失问题
* @param {*} arg1
* @param {*} arg2
* @returns
*/
subStr
:
function
(
arg1
,
arg2
)
{
var
r1
,
r2
,
m
,
n
;
try
{
r1
=
arg1
.
toString
().
split
(
"."
)[
1
].
length
}
catch
(
e
)
{
r1
=
0
}
try
{
r2
=
arg2
.
toString
().
split
(
"."
)[
1
].
length
}
catch
(
e
)
{
r2
=
0
}
m
=
Math
.
pow
(
10
,
Math
.
max
(
r1
,
r2
));
n
=
(
r1
>=
r2
)
?
r1
:
r2
;
return
((
arg1
*
m
-
arg2
*
m
)
/
m
).
toFixed
(
n
);
},
/**
* 浮点数乘法,用于解决精度丢失问题
* @param {*} arg1
* @param {*} arg2
* @param {*} n 保留位数
* @returns
*/
mulStr
:
function
(
arg1
,
arg2
,
n
)
{
var
m
=
0
,
s1
=
arg1
.
toString
(),
s2
=
arg2
.
toString
();
try
{
m
+=
s1
.
split
(
'.'
)[
1
].
length
}
catch
(
e
)
{
//TODO handle the exception
}
try
{
m
+=
s2
.
split
(
'.'
)[
1
].
length
}
catch
(
e
)
{}
var
val
=
Number
(
s1
.
replace
(
'.'
,
''
))
*
Number
(
s2
.
replace
(
'.'
,
''
))
/
Math
.
pow
(
10
,
m
)
if
(
n
)
{
val
=
val
.
toFixed
(
n
)
}
return
val
},
/**
* 浮点数除法,用于解决精度丢失问题
* @param {*} arg1
* @param {*} arg2
* @param {*} n 保留位数
* @returns
*/
divStr
:
function
(
arg1
,
arg2
,
n
)
{
var
t1
=
0
,
t2
=
0
,
r1
,
r2
;
try
{
t1
=
arg1
.
toString
().
split
(
'.'
)[
1
].
length
}
catch
(
e
)
{
//TODO handle the exception
}
try
{
t2
=
arg2
.
toString
().
split
(
'.'
)[
1
].
length
}
catch
(
e
)
{
//TODO handle the exception
}
r1
=
Number
(
arg1
.
toString
().
replace
(
'.'
,
''
));
r2
=
Number
(
arg2
.
toString
().
replace
(
'.'
,
''
));
var
val
=
(
r1
/
r2
)
*
Math
.
pow
(
10
,
t2
-
t1
)
if
(
n
)
{
val
=
val
.
toFixed
(
n
)
}
return
val
},
/**
* 隐藏身份证号
* @param {*} idCard
* @returns
*/
hideIdNumber
:
function
(
idCard
)
{
if
(
idCard
.
length
===
18
)
{
return
idCard
.
substr
(
0
,
6
)
+
'********'
+
idCard
.
substr
(
-
4
,
4
)
}
else
if
(
idCard
.
length
===
15
)
{
return
idCard
.
substr
(
0
,
6
)
+
'******'
+
idCard
.
substr
(
-
3
,
3
)
}
else
{
return
idCard
}
},
/**
* 隐藏手机号
* @param {*} phone
* @returns
*/
hidePhone
:
function
(
phone
)
{
if
(
phone
.
length
==
11
)
{
return
phone
.
substr
(
0
,
3
)
+
'*****'
+
phone
.
substr
(
-
3
,
3
)
}
else
{
return
phone
}
},
/**
* 导出excel
* @param content
* @param fileName
* @param fileParam
* @param blobType
* @param fileType
* */
exportExcel
:
function
({
content
,
fileName
,
fileParam
,
blobType
,
fileType
})
{
let
__this
=
this
if
(
!
content
)
return
if
(
!
blobType
)
blobType
=
'application/vnd.ms-excel'
if
(
!
fileName
)
fileName
=
'导出文件'
if
(
!
fileType
)
fileType
=
'xls'
if
(
!
fileParam
)
fileParam
=
''
let
fileNames
=
fileName
+
fileParam
__this
.
createBlob
(
content
,
blobType
,
fileNames
,
fileType
)
},
/**
* 下载本地文件
* @param fileJson
* */
downloadLocalFile
:
function
(
fileSrc
,
blobType
,
fileName
,
fileType
)
{
let
__this
=
this
let
getUrl
=
fileSrc
if
(
getUrl
.
indexOf
(
'?'
)
<
0
)
getUrl
=
fileSrc
+
'?'
+
new
Date
().
getTime
()
console
.
log
(
getUrl
)
axios
.
create
().
get
(
getUrl
,
{
responseType
:
'blob'
}).
then
(
response
=>
{
if
(
window
.
navigator
.
msSaveBlob
)
{
//ie浏览器不支持通过a标签下载文件
try
{
window
.
navigator
.
msSaveBlob
(
response
.
data
,
(
fileName
+
'-'
+
__this
.
fileTimeStamp
(
new
Date
().
getTime
())
+
'.'
+
fileType
))
}
catch
(
e
)
{
MessageBox
.
confirm
(
'该浏览器内核不支持下载此文件,推荐使用谷歌浏览器访问本平台'
,
'提示'
,
{
confirmButtonText
:
"确定"
,
showClose
:
false
,
showCancelButton
:
false
,
callback
:
function
(
action
)
{
// window.location.reload()
}
})
}
}
else
{
__this
.
createBlob
(
response
.
data
,
blobType
,
fileName
,
fileType
)
}
})
},
/**
* 创建blob,用于下载文件
* @param {*} content
* @param {*} blobType
* @param {*} fileName
* @param {*} fileType
*/
createBlob
:
function
(
content
,
blobType
,
fileName
,
fileType
)
{
let
__this
=
this
let
blob
=
new
Blob
([
content
],
{
type
:
blobType
})
let
filename
=
fileName
+
'-'
+
__this
.
fileTimeStamp
(
new
Date
().
getTime
())
+
'.'
+
fileType
if
(
'download'
in
document
.
createElement
(
'a'
))
{
let
eleLink
=
document
.
createElement
(
'a'
)
eleLink
.
download
=
filename
eleLink
.
style
.
display
=
'none'
eleLink
.
href
=
URL
.
createObjectURL
(
blob
)
document
.
body
.
appendChild
(
eleLink
)
eleLink
.
click
()
URL
.
revokeObjectURL
(
eleLink
.
href
)
document
.
body
.
removeChild
(
eleLink
)
}
else
{
navigator
.
msSaveBlob
(
blob
,
filename
)
}
},
/**
* 通过url下载文件
* @param {*} url
*/
downloadFile
(
url
)
{
let
urlParam
=
''
;
if
(
url
.
indexOf
(
'?'
)
>=
0
)
{
urlParam
=
url
.
split
(
'?'
)[
1
]
url
=
url
.
split
(
'?'
)[
0
]
}
let
splitArr
=
url
.
split
(
'/'
)
let
fileName
=
splitArr
[
splitArr
.
length
-
1
].
slice
(
0
,
-
4
)
let
fileType
=
splitArr
[
splitArr
.
length
-
1
].
slice
(
-
4
)
if
(
fileType
.
indexOf
(
'.'
)
<
0
)
{
fileName
=
fileName
.
slice
(
0
,
-
1
)
}
else
{
fileType
=
fileType
.
replace
(
/./
,
''
)
}
let
lastType
=
fileType
fileType
=
fileType
.
toLowerCase
()
console
.
log
(
fileName
,
fileType
)
let
blobType
=
''
switch
(
fileType
)
{
case
'xls'
:
case
'xlsx'
:
blobType
=
'application/vnd.ms-excel'
break
;
// case 'xlsx':
// blobType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.'
// break;
case
'doc'
:
case
'docx'
:
blobType
=
'application/msword'
break
;
case
'ppt'
:
case
'pptx'
:
blobType
=
'application/vnd.ms-powerpoint'
break
;
case
'txt'
:
blobType
=
'text/plain'
break
;
case
'jpg'
:
case
'jpeg'
:
blobType
=
'image/jpeg'
break
;
case
'png'
:
blobType
=
'image/png'
break
;
case
'pdf'
:
blobType
=
'application/pdf'
break
;
case
'zip'
:
blobType
=
'application/zip'
break
;
}
let
imgType
=
'.jpg,.jpeg,.png'
if
(
imgType
.
indexOf
(
fileType
)
>=
0
)
{
let
image
=
new
Image
()
image
.
setAttribute
(
"crossOrigin"
,
"anonymous"
);
image
.
onload
=
function
()
{
let
canvas
=
document
.
createElement
(
"canvas"
);
canvas
.
width
=
image
.
width
;
canvas
.
height
=
image
.
height
;
let
context
=
canvas
.
getContext
(
"2d"
);
context
.
drawImage
(
image
,
0
,
0
,
image
.
width
,
image
.
height
);
let
url
=
canvas
.
toDataURL
(
blobType
,
1.0
);
//得到图片的base64编码数据
let
a
=
document
.
createElement
(
"a"
);
// 生成一个a元素
let
event
=
new
MouseEvent
(
"click"
);
// 创建一个单击事件
// let filename = fileName + '-' + fileTimeStamp(new Date().getTime()) + '.' + fileType
let
filename
=
fileName
+
'.'
+
lastType
a
.
download
=
filename
;
// 设置图片名称
a
.
href
=
url
;
// 将生成的URL设置为a.href属性
a
.
dispatchEvent
(
event
);
// 触发a的单击事件
};
image
.
src
=
url
;
}
else
{
let
fileSrc
=
splitArr
.
slice
(
0
,
-
1
).
join
(
'/'
)
+
'/'
+
encodeURIComponent
(
fileName
)
+
'.'
+
fileType
if
(
fileType
==
'txt'
)
{
console
.
log
(
fileSrc
,
url
)
downloadLocalFile
(
fileSrc
,
blobType
,
fileName
,
fileType
)
}
else
{
let
form
=
document
.
createElement
(
'form'
)
form
.
method
=
'get'
form
.
action
=
urlParam
?
(
fileSrc
+
'?'
+
urlParam
)
:
fileSrc
document
.
body
.
append
(
form
)
form
.
submit
()
form
.
remove
()
}
}
}
}
\ No newline at end of file
zhiJianBusi/zjbPc/src/assets/js/stores/addressData.js
deleted
100644 → 0
View file @
525f13f
const
addressData
=
[
{
name
:
'南京市'
,
value
:
'320100'
,
children
:
[
{
name
:
'玄武区'
,
value
:
'320102'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'秦淮区'
,
value
:
'320104'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'建邺区'
,
value
:
'320105'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'鼓楼区'
,
value
:
'320106'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'浦口区'
,
value
:
'320111'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'栖霞区'
,
value
:
'320113'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'雨花台区'
,
value
:
'320114'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'江宁区'
,
value
:
'320115'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'六合区'
,
value
:
'320116'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'溧水区'
,
value
:
'320117'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'高淳区'
,
value
:
'320118'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'无锡市'
,
value
:
'320200'
,
children
:
[
{
name
:
'梁溪区'
,
value
:
'320205'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'锡山区'
,
value
:
'320211'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'惠山区'
,
value
:
'320213'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'滨湖区'
,
value
:
'320214'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'江阴市'
,
value
:
'320281'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'宜兴市'
,
value
:
'320282'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'徐州市'
,
value
:
'320300'
,
children
:
[
{
name
:
'鼓楼区'
,
value
:
'320302'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'云龙区'
,
value
:
'320303'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'贾汪区'
,
value
:
'320305'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'泉山区'
,
value
:
'320311'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'铜山区'
,
value
:
'320312'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'丰县'
,
value
:
'320321'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'沛县'
,
value
:
'320322'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'睢宁县'
,
value
:
'320324'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'新沂市'
,
value
:
'320381'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'邳州市'
,
value
:
'320382'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'常州市'
,
value
:
'320400'
,
children
:
[
{
name
:
'天宁区'
,
value
:
'320402'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'钟楼区'
,
value
:
'320404'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'新北区'
,
value
:
'320411'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'武进区'
,
value
:
'320412'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'金坛区'
,
value
:
'320413'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'溧阳市'
,
value
:
'320481'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'苏州市'
,
value
:
'320500'
,
children
:
[
{
name
:
'虎丘区'
,
value
:
'320505'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'吴中区'
,
value
:
'320506'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'相城区'
,
value
:
'320507'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'姑苏区'
,
value
:
'320508'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'吴江区'
,
value
:
'320509'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'常熟市'
,
value
:
'320581'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'张家港市'
,
value
:
'320582'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'昆山市'
,
value
:
'320583'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'太仓市'
,
value
:
'320585'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'南通市'
,
value
:
'320600'
,
children
:
[
{
name
:
'崇川区'
,
value
:
'320602'
,
children
:
[
{
name
:
'城中网格'
,
value
:
'18281'
},
{
name
:
'城西网格'
,
value
:
'18288'
},
{
name
:
'观音山网格'
,
value
:
'18287'
},
{
name
:
'文峰网格'
,
value
:
'18285'
},
{
name
:
'新区网格'
,
value
:
'18286'
}
]
},
{
name
:
'港闸区'
,
value
:
'320611'
,
children
:
[
{
name
:
'秦幸网格'
,
value
:
'12382'
},
{
name
:
'唐闸网格'
,
value
:
'12380'
},
{
name
:
'港天网格'
,
value
:
'12378'
},
{
name
:
'陈桥网格'
,
value
:
'12381'
}
]
},
{
name
:
'海安市'
,
value
:
'320685'
,
children
:
[
{
name
:
'李堡网格'
,
value
:
'11357'
}
]
},
{
name
:
'海门区'
,
value
:
'320614'
,
children
:
[
{
name
:
'常乐网格'
,
value
:
'12401'
},
{
name
:
'临江网格'
,
value
:
'12405'
},
{
name
:
'正余网格'
,
value
:
'12409'
},
{
name
:
'三厂网格'
,
value
:
'12400'
},
{
name
:
'三星网格'
,
value
:
'12397'
},
{
name
:
'开发区网格'
,
value
:
'12396'
},
{
name
:
'港新区网格'
,
value
:
'12408'
},
{
name
:
'余东网格'
,
value
:
'12413'
},
{
name
:
'城南网格'
,
value
:
'18524'
}
]
},
{
name
:
'开发区'
,
value
:
'320671'
,
children
:
[
{
name
:
'中兴网格'
,
value
:
'12384'
},
{
name
:
'新开网格'
,
value
:
'12385'
},
{
name
:
'竹海网格'
,
value
:
'12386'
},
{
name
:
'苏锡通网格'
,
value
:
'12388'
},
{
name
:
'张芝山网格'
,
value
:
'11337'
}
]
},
{
name
:
'启东市'
,
value
:
'320681'
,
children
:
[
{
name
:
'近海网格'
,
value
:
'11510'
},
{
name
:
'寅阳网格'
,
value
:
'11506'
},
{
name
:
'城北网格'
,
value
:
'12747'
},
{
name
:
'王合网格'
,
value
:
'11513'
},
{
name
:
'南海网格'
,
value
:
'11509'
},
{
name
:
'北新网格'
,
value
:
'11516'
},
{
name
:
'吕四网格'
,
value
:
'11511'
}
]
},
{
name
:
'如东县'
,
value
:
'320623'
,
children
:
[
{
name
:
'双甸网格'
,
value
:
'11528'
},
{
name
:
'曹埠网格'
,
value
:
'11525'
},
{
name
:
'掘港网格'
,
value
:
'11522'
},
{
name
:
'大豫网格'
,
value
:
'11534'
},
{
name
:
'河口网格'
,
value
:
'11530'
},
{
name
:
'洋口网格'
,
value
:
'11531'
}
]
},
{
name
:
'如皋市'
,
value
:
'320682'
,
children
:
[
{
name
:
'高新区网格'
,
value
:
'12754'
},
{
name
:
'长江网格'
,
value
:
'11307'
},
{
name
:
'丁堰网格'
,
value
:
'11316'
},
{
name
:
'东陈网格'
,
value
:
'11317'
}
]
},
{
name
:
'通州区'
,
value
:
'320612'
,
children
:
[
{
name
:
'金新网格'
,
value
:
'18393'
},
{
name
:
'石港网格'
,
value
:
'11333'
},
{
name
:
'通州湾网格'
,
value
:
'11345'
},
{
name
:
'金沙网格'
,
value
:
'18392'
}
]
}
]
},
{
name
:
'连云港市'
,
value
:
'320700'
,
children
:
[
{
name
:
'连云区'
,
value
:
'320703'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'海州区'
,
value
:
'320706'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'赣榆区'
,
value
:
'320707'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'东海县'
,
value
:
'320722'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'灌云县'
,
value
:
'320723'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'灌南县'
,
value
:
'320724'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'淮安市'
,
value
:
'320800'
,
children
:
[
{
name
:
'淮安区'
,
value
:
'320803'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'淮阴区'
,
value
:
'320804'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'清江浦区'
,
value
:
'320812'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'洪泽区'
,
value
:
'320813'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'涟水县'
,
value
:
'320826'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'盱眙县'
,
value
:
'320830'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'金湖县'
,
value
:
'320831'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'盐城市'
,
value
:
'320900'
,
children
:
[
{
name
:
'亭湖区'
,
value
:
'320902'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'盐都区'
,
value
:
'320903'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'大丰区'
,
value
:
'320904'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'响水县'
,
value
:
'320921'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'滨海县'
,
value
:
'320922'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'阜宁县'
,
value
:
'320923'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'射阳县'
,
value
:
'320924'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'建湖县'
,
value
:
'320925'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'东台市'
,
value
:
'320981'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'扬州市'
,
value
:
'321000'
,
children
:
[
{
name
:
'广陵区'
,
value
:
'321002'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'邗江区'
,
value
:
'321003'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'江都区'
,
value
:
'321012'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'宝应县'
,
value
:
'321023'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'仪征市'
,
value
:
'321081'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'高邮市'
,
value
:
'321084'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'镇江市'
,
value
:
'321100'
,
children
:
[
{
name
:
'京口区'
,
value
:
'321102'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'润州区'
,
value
:
'321111'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'丹徒区'
,
value
:
'321112'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'丹阳市'
,
value
:
'321181'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'扬中市'
,
value
:
'321182'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'句容市'
,
value
:
'321183'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'泰州市'
,
value
:
'321200'
,
children
:
[
{
name
:
'海陵区'
,
value
:
'321202'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'高港区'
,
value
:
'321203'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'姜堰区'
,
value
:
'321204'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'兴化市'
,
value
:
'321281'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'靖江市'
,
value
:
'321282'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'泰兴市'
,
value
:
'321283'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]}
]
},
{
name
:
'宿迁市'
,
value
:
'321300'
,
children
:
[
{
name
:
'宿城区'
,
value
:
'321302'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'宿豫区'
,
value
:
'321311'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'沭阳县'
,
value
:
'321322'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'泗阳县'
,
value
:
'321323'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]},
{
name
:
'泗洪县'
,
value
:
'321324'
,
children
:
[{
name
:
'默认网格'
,
value
:
'moren'
}]
}
]
}
]
export
default
addressData
\ No newline at end of file
zhiJianBusi/zjbPc/src/assets/js/stores/index.js
0 → 100644
View file @
da7b0e0
const
addressData
=
[
{
name
:
'南京市'
,
value
:
'320100'
,
children
:
[
{
name
:
'玄武区'
,
value
:
'320102'
,
children
:
[{
name
:
'玄武区A网格'
,
value
:
'120102'
}]
},
{
name
:
'秦淮区'
,
value
:
'320104'
,
children
:
[{
name
:
'秦淮区A网格'
,
value
:
'120104'
}]
},
{
name
:
'建邺区'
,
value
:
'320105'
,
children
:
[{
name
:
'建邺区A网格'
,
value
:
'120105'
}]
},
{
name
:
'鼓楼区'
,
value
:
'320106'
,
children
:
[{
name
:
'鼓楼区A网格'
,
value
:
'120106'
}]
},
{
name
:
'浦口区'
,
value
:
'320111'
,
children
:
[{
name
:
'浦口区A网格'
,
value
:
'120111'
}]
},
{
name
:
'栖霞区'
,
value
:
'320113'
,
children
:
[{
name
:
'栖霞区A网格'
,
value
:
'120113'
}]
},
{
name
:
'雨花台区'
,
value
:
'320114'
,
children
:
[{
name
:
'雨花台区A网格'
,
value
:
'120114'
}]
},
{
name
:
'江宁区'
,
value
:
'320115'
,
children
:
[{
name
:
'江宁区A网格'
,
value
:
'120115'
}]
},
{
name
:
'六合区'
,
value
:
'320116'
,
children
:
[{
name
:
'六合区A网格'
,
value
:
'120116'
}]
},
{
name
:
'溧水区'
,
value
:
'320117'
,
children
:
[{
name
:
'溧水区A网格'
,
value
:
'120117'
}]
},
{
name
:
'高淳区'
,
value
:
'320118'
,
children
:
[{
name
:
'高淳区A网格'
,
value
:
'120118'
}]
}
]
},
{
name
:
'无锡市'
,
value
:
'320200'
,
children
:
[
{
name
:
'梁溪区'
,
value
:
'320205'
,
children
:
[{
name
:
'梁溪区A网格'
,
value
:
'120205'
}]
},
{
name
:
'锡山区'
,
value
:
'320211'
,
children
:
[{
name
:
'锡山区A网格'
,
value
:
'120211'
}]
},
{
name
:
'惠山区'
,
value
:
'320213'
,
children
:
[{
name
:
'惠山区A网格'
,
value
:
'120213'
}]
},
{
name
:
'滨湖区'
,
value
:
'320214'
,
children
:
[{
name
:
'滨湖区A网格'
,
value
:
'120214'
}]
},
{
name
:
'江阴市'
,
value
:
'320281'
,
children
:
[{
name
:
'江阴市A网格'
,
value
:
'120281'
}]
},
{
name
:
'宜兴市'
,
value
:
'320282'
,
children
:
[{
name
:
'宜兴市A网格'
,
value
:
'120282'
}]
}
]
},
{
name
:
'徐州市'
,
value
:
'320300'
,
children
:
[
{
name
:
'鼓楼区'
,
value
:
'320302'
,
children
:
[{
name
:
'鼓楼区A网格'
,
value
:
'120302'
}]
},
{
name
:
'云龙区'
,
value
:
'320303'
,
children
:
[{
name
:
'云龙区A网格'
,
value
:
'120303'
}]
},
{
name
:
'贾汪区'
,
value
:
'320305'
,
children
:
[{
name
:
'贾汪区A网格'
,
value
:
'120305'
}]
},
{
name
:
'泉山区'
,
value
:
'320311'
,
children
:
[{
name
:
'泉山区A网格'
,
value
:
'120311'
}]
},
{
name
:
'铜山区'
,
value
:
'320312'
,
children
:
[{
name
:
'铜山区A网格'
,
value
:
'120312'
}]
},
{
name
:
'丰县'
,
value
:
'320321'
,
children
:
[{
name
:
'丰县A网格'
,
value
:
'120321'
}]
},
{
name
:
'沛县'
,
value
:
'320322'
,
children
:
[{
name
:
'沛县A网格'
,
value
:
'120322'
}]
},
{
name
:
'睢宁县'
,
value
:
'320324'
,
children
:
[{
name
:
'睢宁县A网格'
,
value
:
'120324'
}]
},
{
name
:
'新沂市'
,
value
:
'320381'
,
children
:
[{
name
:
'新沂市A网格'
,
value
:
'120381'
}]
},
{
name
:
'邳州市'
,
value
:
'320382'
,
children
:
[{
name
:
'邳州市A网格'
,
value
:
'120382'
}]
}
]
},
{
name
:
'常州市'
,
value
:
'320400'
,
children
:
[
{
name
:
'天宁区'
,
value
:
'320402'
,
children
:
[{
name
:
'天宁区A网格'
,
value
:
'120402'
}]
},
{
name
:
'钟楼区'
,
value
:
'320404'
,
children
:
[{
name
:
'钟楼区A网格'
,
value
:
'120404'
}]
},
{
name
:
'新北区'
,
value
:
'320411'
,
children
:
[{
name
:
'新北区A网格'
,
value
:
'120411'
}]
},
{
name
:
'武进区'
,
value
:
'320412'
,
children
:
[{
name
:
'武进区A网格'
,
value
:
'120412'
}]
},
{
name
:
'金坛区'
,
value
:
'320413'
,
children
:
[{
name
:
'金坛区A网格'
,
value
:
'120413'
}]
},
{
name
:
'溧阳市'
,
value
:
'320481'
,
children
:
[{
name
:
'溧阳市A网格'
,
value
:
'120481'
}]
}
]
},
{
name
:
'苏州市'
,
value
:
'320500'
,
children
:
[
{
name
:
'虎丘区'
,
value
:
'320505'
,
children
:
[{
name
:
'虎丘区A网格'
,
value
:
'120505'
}]
},
{
name
:
'吴中区'
,
value
:
'320506'
,
children
:
[{
name
:
'吴中区A网格'
,
value
:
'120506'
}]
},
{
name
:
'相城区'
,
value
:
'320507'
,
children
:
[{
name
:
'相城区A网格'
,
value
:
'120507'
}]
},
{
name
:
'姑苏区'
,
value
:
'320508'
,
children
:
[{
name
:
'姑苏区A网格'
,
value
:
'120508'
}]
},
{
name
:
'吴江区'
,
value
:
'320509'
,
children
:
[{
name
:
'吴江区A网格'
,
value
:
'120509'
}]
},
{
name
:
'常熟市'
,
value
:
'320581'
,
children
:
[{
name
:
'常熟市A网格'
,
value
:
'120581'
}]
},
{
name
:
'张家港市'
,
value
:
'320582'
,
children
:
[{
name
:
'张家港市A网格'
,
value
:
'120582'
}]
},
{
name
:
'昆山市'
,
value
:
'320583'
,
children
:
[{
name
:
'昆山市A网格'
,
value
:
'120583'
}]
},
{
name
:
'太仓市'
,
value
:
'320585'
,
children
:
[{
name
:
'太仓市A网格'
,
value
:
'120585'
}]
}
]
},
{
name
:
'南通市'
,
value
:
'320600'
,
children
:
[
{
name
:
'崇川区'
,
value
:
'320602'
,
children
:
[
{
name
:
'城中网格'
,
value
:
'18281'
},
{
name
:
'城西网格'
,
value
:
'18288'
},
{
name
:
'观音山网格'
,
value
:
'18287'
},
{
name
:
'文峰网格'
,
value
:
'18285'
},
{
name
:
'新区网格'
,
value
:
'18286'
}
]
},
{
name
:
'港闸区'
,
value
:
'320611'
,
children
:
[
{
name
:
'秦幸网格'
,
value
:
'12382'
},
{
name
:
'唐闸网格'
,
value
:
'12380'
},
{
name
:
'港天网格'
,
value
:
'12378'
},
{
name
:
'陈桥网格'
,
value
:
'12381'
}
]
},
{
name
:
'海安市'
,
value
:
'320685'
,
children
:
[
{
name
:
'李堡网格'
,
value
:
'11357'
}
]
},
{
name
:
'海门区'
,
value
:
'320614'
,
children
:
[
{
name
:
'常乐网格'
,
value
:
'12401'
},
{
name
:
'临江网格'
,
value
:
'12405'
},
{
name
:
'正余网格'
,
value
:
'12409'
},
{
name
:
'三厂网格'
,
value
:
'12400'
},
{
name
:
'三星网格'
,
value
:
'12397'
},
{
name
:
'开发区网格'
,
value
:
'12396'
},
{
name
:
'港新区网格'
,
value
:
'12408'
},
{
name
:
'余东网格'
,
value
:
'12413'
},
{
name
:
'城南网格'
,
value
:
'18524'
}
]
},
{
name
:
'开发区'
,
value
:
'320671'
,
children
:
[
{
name
:
'中兴网格'
,
value
:
'12384'
},
{
name
:
'新开网格'
,
value
:
'12385'
},
{
name
:
'竹海网格'
,
value
:
'12386'
},
{
name
:
'苏锡通网格'
,
value
:
'12388'
},
{
name
:
'张芝山网格'
,
value
:
'11337'
}
]
},
{
name
:
'启东市'
,
value
:
'320681'
,
children
:
[
{
name
:
'近海网格'
,
value
:
'11510'
},
{
name
:
'寅阳网格'
,
value
:
'11506'
},
{
name
:
'城北网格'
,
value
:
'12747'
},
{
name
:
'王合网格'
,
value
:
'11513'
},
{
name
:
'南海网格'
,
value
:
'11509'
},
{
name
:
'北新网格'
,
value
:
'11516'
},
{
name
:
'吕四网格'
,
value
:
'11511'
}
]
},
{
name
:
'如东县'
,
value
:
'320623'
,
children
:
[
{
name
:
'双甸网格'
,
value
:
'11528'
},
{
name
:
'曹埠网格'
,
value
:
'11525'
},
{
name
:
'掘港网格'
,
value
:
'11522'
},
{
name
:
'大豫网格'
,
value
:
'11534'
},
{
name
:
'河口网格'
,
value
:
'11530'
},
{
name
:
'洋口网格'
,
value
:
'11531'
}
]
},
{
name
:
'如皋市'
,
value
:
'320682'
,
children
:
[
{
name
:
'高新区网格'
,
value
:
'12754'
},
{
name
:
'长江网格'
,
value
:
'11307'
},
{
name
:
'丁堰网格'
,
value
:
'11316'
},
{
name
:
'东陈网格'
,
value
:
'11317'
}
]
},
{
name
:
'通州区'
,
value
:
'320612'
,
children
:
[
{
name
:
'金新网格'
,
value
:
'18393'
},
{
name
:
'石港网格'
,
value
:
'11333'
},
{
name
:
'通州湾网格'
,
value
:
'11345'
},
{
name
:
'金沙网格'
,
value
:
'18392'
}
]
}
]
},
{
name
:
'连云港市'
,
value
:
'320700'
,
children
:
[
{
name
:
'连云区'
,
value
:
'320703'
,
children
:
[{
name
:
'连云区A网格'
,
value
:
'120703'
}]
},
{
name
:
'海州区'
,
value
:
'320706'
,
children
:
[{
name
:
'海州区A网格'
,
value
:
'120706'
}]
},
{
name
:
'赣榆区'
,
value
:
'320707'
,
children
:
[{
name
:
'赣榆区A网格'
,
value
:
'120707'
}]
},
{
name
:
'东海县'
,
value
:
'320722'
,
children
:
[{
name
:
'东海县A网格'
,
value
:
'120722'
}]
},
{
name
:
'灌云县'
,
value
:
'320723'
,
children
:
[{
name
:
'灌云县A网格'
,
value
:
'120723'
}]
},
{
name
:
'灌南县'
,
value
:
'320724'
,
children
:
[{
name
:
'灌南县A网格'
,
value
:
'120724'
}]
}
]
},
{
name
:
'淮安市'
,
value
:
'320800'
,
children
:
[
{
name
:
'淮安区'
,
value
:
'320803'
,
children
:
[{
name
:
'淮安区A网格'
,
value
:
'120803'
}]
},
{
name
:
'淮阴区'
,
value
:
'320804'
,
children
:
[{
name
:
'淮阴区A网格'
,
value
:
'120804'
}]
},
{
name
:
'清江浦区'
,
value
:
'320812'
,
children
:
[{
name
:
'清江浦区A网格'
,
value
:
'120812'
}]
},
{
name
:
'洪泽区'
,
value
:
'320813'
,
children
:
[{
name
:
'洪泽区A网格'
,
value
:
'120813'
}]
},
{
name
:
'涟水县'
,
value
:
'320826'
,
children
:
[{
name
:
'涟水县A网格'
,
value
:
'120826'
}]
},
{
name
:
'盱眙县'
,
value
:
'320830'
,
children
:
[{
name
:
'盱眙县A网格'
,
value
:
'120830'
}]
},
{
name
:
'金湖县'
,
value
:
'320831'
,
children
:
[{
name
:
'金湖县A网格'
,
value
:
'120831'
}]
}
]
},
{
name
:
'盐城市'
,
value
:
'320900'
,
children
:
[
{
name
:
'亭湖区'
,
value
:
'320902'
,
children
:
[{
name
:
'亭湖区A网格'
,
value
:
'120902'
}]
},
{
name
:
'盐都区'
,
value
:
'320903'
,
children
:
[{
name
:
'盐都区A网格'
,
value
:
'120903'
}]
},
{
name
:
'大丰区'
,
value
:
'320904'
,
children
:
[{
name
:
'大丰区A网格'
,
value
:
'120904'
}]
},
{
name
:
'响水县'
,
value
:
'320921'
,
children
:
[{
name
:
'响水县A网格'
,
value
:
'120921'
}]
},
{
name
:
'滨海县'
,
value
:
'320922'
,
children
:
[{
name
:
'滨海县A网格'
,
value
:
'120922'
}]
},
{
name
:
'阜宁县'
,
value
:
'320923'
,
children
:
[{
name
:
'阜宁县A网格'
,
value
:
'120923'
}]
},
{
name
:
'射阳县'
,
value
:
'320924'
,
children
:
[{
name
:
'射阳县A网格'
,
value
:
'120924'
}]
},
{
name
:
'建湖县'
,
value
:
'320925'
,
children
:
[{
name
:
'建湖县A网格'
,
value
:
'120925'
}]
},
{
name
:
'东台市'
,
value
:
'320981'
,
children
:
[{
name
:
'东台市A网格'
,
value
:
'120981'
}]
}
]
},
{
name
:
'扬州市'
,
value
:
'321000'
,
children
:
[
{
name
:
'广陵区'
,
value
:
'321002'
,
children
:
[{
name
:
'广陵区A网格'
,
value
:
'121002'
}]
},
{
name
:
'邗江区'
,
value
:
'321003'
,
children
:
[{
name
:
'邗江区A网格'
,
value
:
'121003'
}]
},
{
name
:
'江都区'
,
value
:
'321012'
,
children
:
[{
name
:
'江都区A网格'
,
value
:
'121012'
}]
},
{
name
:
'宝应县'
,
value
:
'321023'
,
children
:
[{
name
:
'宝应县A网格'
,
value
:
'121023'
}]
},
{
name
:
'仪征市'
,
value
:
'321081'
,
children
:
[{
name
:
'仪征市A网格'
,
value
:
'121081'
}]
},
{
name
:
'高邮市'
,
value
:
'321084'
,
children
:
[{
name
:
'高邮市A网格'
,
value
:
'121084'
}]
}
]
},
{
name
:
'镇江市'
,
value
:
'321100'
,
children
:
[
{
name
:
'京口区'
,
value
:
'321102'
,
children
:
[{
name
:
'京口区A网格'
,
value
:
'121102'
}]
},
{
name
:
'润州区'
,
value
:
'321111'
,
children
:
[{
name
:
'润州区A网格'
,
value
:
'121111'
}]
},
{
name
:
'丹徒区'
,
value
:
'321112'
,
children
:
[{
name
:
'丹徒区A网格'
,
value
:
'121112'
}]
},
{
name
:
'丹阳市'
,
value
:
'321181'
,
children
:
[{
name
:
'丹阳市A网格'
,
value
:
'121181'
}]
},
{
name
:
'扬中市'
,
value
:
'321182'
,
children
:
[{
name
:
'扬中市A网格'
,
value
:
'121182'
}]
},
{
name
:
'句容市'
,
value
:
'321183'
,
children
:
[{
name
:
'句容市A网格'
,
value
:
'121183'
}]
}
]
},
{
name
:
'泰州市'
,
value
:
'321200'
,
children
:
[
{
name
:
'海陵区'
,
value
:
'321202'
,
children
:
[{
name
:
'海陵区A网格'
,
value
:
'121202'
}]
},
{
name
:
'高港区'
,
value
:
'321203'
,
children
:
[{
name
:
'高港区A网格'
,
value
:
'121203'
}]
},
{
name
:
'姜堰区'
,
value
:
'321204'
,
children
:
[{
name
:
'姜堰区A网格'
,
value
:
'121204'
}]
},
{
name
:
'兴化市'
,
value
:
'321281'
,
children
:
[{
name
:
'兴化市A网格'
,
value
:
'121281'
}]
},
{
name
:
'靖江市'
,
value
:
'321282'
,
children
:
[{
name
:
'靖江市A网格'
,
value
:
'121282'
}]
},
{
name
:
'泰兴市'
,
value
:
'321283'
,
children
:
[{
name
:
'泰兴市A网格'
,
value
:
'121283'
}]
}
]
},
{
name
:
'宿迁市'
,
value
:
'321300'
,
children
:
[
{
name
:
'宿城区'
,
value
:
'321302'
,
children
:
[{
name
:
'宿城区A网格'
,
value
:
'121302'
}]
},
{
name
:
'宿豫区'
,
value
:
'321311'
,
children
:
[{
name
:
'宿豫区A网格'
,
value
:
'121311'
}]
},
{
name
:
'沭阳县'
,
value
:
'321322'
,
children
:
[{
name
:
'沭阳县A网格'
,
value
:
'121322'
}]
},
{
name
:
'泗阳县'
,
value
:
'321323'
,
children
:
[{
name
:
'泗阳县A网格'
,
value
:
'121323'
}]
},
{
name
:
'泗洪县'
,
value
:
'321324'
,
children
:
[{
name
:
'泗洪县A网格'
,
value
:
'121324'
}]
}
]
}
]
const
choAddressData
=
[
{
code
:
'320100'
,
name
:
'南京市'
,
districts
:
[
{
code
:
'320102'
,
name
:
'玄武区'
,
streets
:
[{
code
:
'320102001'
,
name
:
'新街口街道'
},
{
code
:
'320102002'
,
name
:
'梅园新村街道'
},
{
code
:
'320102003'
,
name
:
'玄武门街道'
},
{
code
:
'320102004'
,
name
:
'锁金村街道'
},
{
code
:
'320102005'
,
name
:
'红山街道'
},
{
code
:
'320102006'
,
name
:
'孝陵卫街道'
},
{
code
:
'320102007'
,
name
:
'玄武湖街道'
}]
},
{
code
:
'320104'
,
name
:
'秦淮区'
,
streets
:
[{
code
:
'320104001'
,
name
:
'秦虹街道'
},
{
code
:
'320104002'
,
name
:
'红花街道'
},
{
code
:
'320104003'
,
name
:
'夫子庙街道'
},
{
code
:
'320104004'
,
name
:
'双塘街道'
},
{
code
:
'320104005'
,
name
:
'中华门街道'
},
{
code
:
'320104006'
,
name
:
'月牙湖街道'
},
{
code
:
'320104007'
,
name
:
'光华路街道'
},
{
code
:
'320104008'
,
name
:
'瑞金路街道'
},
{
code
:
'320104009'
,
name
:
'朝天宫街道'
},
{
code
:
'320104010'
,
name
:
'五老村街道'
},
{
code
:
'320104011'
,
name
:
'洪武路街道'
},
{
code
:
'320104012'
,
name
:
'建康路街道'
}]
},
{
code
:
'320105'
,
name
:
'建邺区'
,
streets
:
[{
code
:
'320105001'
,
name
:
'莫愁湖街道'
},
{
code
:
'320105002'
,
name
:
'南湖街道'
},
{
code
:
'320105003'
,
name
:
'兴隆街道'
},
{
code
:
'320105004'
,
name
:
'南苑街道'
},
{
code
:
'320105005'
,
name
:
'沙洲街道'
},
{
code
:
'320105006'
,
name
:
'双闸街道'
},
{
code
:
'320105007'
,
name
:
'江心洲街道'
}]
},
{
code
:
'320106'
,
name
:
'鼓楼区'
,
streets
:
[{
code
:
'320106001'
,
name
:
'宁海路街道'
},
{
code
:
'320106002'
,
name
:
'华侨路街道'
},
{
code
:
'320106003'
,
name
:
'湖南路街道'
},
{
code
:
'320106004'
,
name
:
'中央门街道'
},
{
code
:
'320106005'
,
name
:
'挹江门街道'
},
{
code
:
'320106006'
,
name
:
'江东街道'
},
{
code
:
'320106007'
,
name
:
'凤凰街道'
},
{
code
:
'320106008'
,
name
:
'热河南路街道'
},
{
code
:
'320106009'
,
name
:
'下关街道'
},
{
code
:
'320106010'
,
name
:
'建宁路街道'
},
{
code
:
'320106011'
,
name
:
'宝塔桥街道'
},
{
code
:
'320106012'
,
name
:
'小市街道'
},
{
code
:
'320106013'
,
name
:
'幕府山街道'
}]
},
{
code
:
'320111'
,
name
:
'浦口区'
,
streets
:
[{
code
:
'320111001'
,
name
:
'泰山街道'
},
{
code
:
'320111002'
,
name
:
'顶山街道'
},
{
code
:
'320111003'
,
name
:
'沿江街道'
},
{
code
:
'320111004'
,
name
:
'江浦街道'
},
{
code
:
'320111005'
,
name
:
'汤泉街道'
},
{
code
:
'320111006'
,
name
:
'永宁街道'
},
{
code
:
'320111007'
,
name
:
'盘城街道'
},
{
code
:
'320111008'
,
name
:
'星甸街道'
},
{
code
:
'320111009'
,
name
:
'桥林街道'
}]
},
{
code
:
'320113'
,
name
:
'栖霞区'
,
streets
:
[{
code
:
'320113001'
,
name
:
'龙潭街道'
},
{
code
:
'320113002'
,
name
:
'靖安街道'
},
{
code
:
'320113003'
,
name
:
'八卦洲街道'
},
{
code
:
'320113004'
,
name
:
'西岗街道'
},
{
code
:
'320113005'
,
name
:
'栖霞街道'
},
{
code
:
'320113006'
,
name
:
'尧化街道'
},
{
code
:
'320113007'
,
name
:
'迈皋桥街道'
},
{
code
:
'320113008'
,
name
:
'燕子矶街道'
},
{
code
:
'320113009'
,
name
:
'马群街道'
},
{
code
:
'320113010'
,
name
:
'仙林街道'
}]
},
{
code
:
'320114'
,
name
:
'雨花台区'
,
streets
:
[{
code
:
'320114001'
,
name
:
'雨花街道'
},
{
code
:
'320114002'
,
name
:
'赛虹桥街道'
},
{
code
:
'320114003'
,
name
:
'西善桥街道'
},
{
code
:
'320114004'
,
name
:
'板桥街道'
},
{
code
:
'320114005'
,
name
:
'铁心桥街道'
},
{
code
:
'320114006'
,
name
:
'宁南街道'
},
{
code
:
'320114007'
,
name
:
'梅山街道'
},
{
code
:
'320114008'
,
name
:
'古雄街道'
}]
},
{
code
:
'320115'
,
name
:
'江宁区'
,
streets
:
[{
code
:
'320115001'
,
name
:
'东山街道'
},
{
code
:
'320115002'
,
name
:
'秣陵街道'
},
{
code
:
'320115003'
,
name
:
'汤山街道'
},
{
code
:
'320115004'
,
name
:
'淳化街道'
},
{
code
:
'320115005'
,
name
:
'禄口街道'
},
{
code
:
'320115006'
,
name
:
'江宁街道'
},
{
code
:
'320115007'
,
name
:
'谷里街道'
},
{
code
:
'320115008'
,
name
:
'湖熟街道'
},
{
code
:
'320115009'
,
name
:
'横溪街道'
},
{
code
:
'320115010'
,
name
:
'麒麟街道'
}]
},
{
code
:
'320116'
,
name
:
'六合区'
,
streets
:
[{
code
:
'320116001'
,
name
:
'雄州街道'
},
{
code
:
'320116002'
,
name
:
'龙池街道'
},
{
code
:
'320116003'
,
name
:
'马鞍街道'
},
{
code
:
'320116004'
,
name
:
'横梁街道'
},
{
code
:
'320116005'
,
name
:
'程桥街道'
},
{
code
:
'320116006'
,
name
:
'金牛湖街道'
},
{
code
:
'320116007'
,
name
:
'冶山街道'
},
{
code
:
'320116008'
,
name
:
'竹镇镇'
},
{
code
:
'320116009'
,
name
:
'马鞍镇'
}]
},
{
code
:
'320117'
,
name
:
'溧水区'
,
streets
:
[{
code
:
'320117001'
,
name
:
'永阳街道'
},
{
code
:
'320117002'
,
name
:
'白马镇'
},
{
code
:
'320117003'
,
name
:
'东屏镇'
},
{
code
:
'320117004'
,
name
:
'晶桥镇'
},
{
code
:
'320117005'
,
name
:
'和凤镇'
},
{
code
:
'320117006'
,
name
:
'洪蓝镇'
},
{
code
:
'320117007'
,
name
:
'石湫镇'
},
{
code
:
'320117008'
,
name
:
'柘塘镇'
}]
},
{
code
:
'320118'
,
name
:
'高淳区'
,
streets
:
[{
code
:
'320118001'
,
name
:
'淳溪街道'
},
{
code
:
'320118002'
,
name
:
'古柏街道'
},
{
code
:
'320118003'
,
name
:
'漆桥镇'
},
{
code
:
'320118004'
,
name
:
'固城镇'
},
{
code
:
'320118005'
,
name
:
'东坝镇'
},
{
code
:
'320118006'
,
name
:
'桠溪镇'
},
{
code
:
'320118007'
,
name
:
'阳江镇'
},
{
code
:
'320118008'
,
name
:
'砖墙镇'
},
{
code
:
'320118009'
,
name
:
'荆溪镇'
}]
}
]
},
{
code
:
'320200'
,
name
:
'无锡市'
,
districts
:
[
{
code
:
'320205'
,
name
:
'梁溪区'
,
streets
:
[{
code
:
'320205001'
,
name
:
'崇安寺街道'
},
{
code
:
'320205002'
,
name
:
'清名桥街道'
},
{
code
:
'320205003'
,
name
:
'迎龙桥街道'
},
{
code
:
'320205004'
,
name
:
'南禅寺街道'
},
{
code
:
'320205005'
,
name
:
'惠山街道'
},
{
code
:
'320205006'
,
name
:
'北大街街道'
},
{
code
:
'320205007'
,
name
:
'广瑞路街道'
},
{
code
:
'320205008'
,
name
:
'扬名街道'
},
{
code
:
'320205009'
,
name
:
'黄巷街道'
},
{
code
:
'320205010'
,
name
:
'山北街道'
},
{
code
:
'320205011'
,
name
:
'瞻江街道'
}]
},
{
code
:
'320211'
,
name
:
'锡山区'
,
streets
:
[{
code
:
'320211001'
,
name
:
'东亭街道'
},
{
code
:
'320211002'
,
name
:
'安镇街道'
},
{
code
:
'320211003'
,
name
:
'厚桥街道'
},
{
code
:
'320211004'
,
name
:
'东北塘街道'
},
{
code
:
'320211005'
,
name
:
'锡北镇'
},
{
code
:
'320211006'
,
name
:
'东港镇'
},
{
code
:
'320211007'
,
name
:
'羊尖镇'
},
{
code
:
'320211008'
,
name
:
'鹅湖镇'
}]
},
{
code
:
'320213'
,
name
:
'惠山区'
,
streets
:
[{
code
:
'320213001'
,
name
:
'堰桥街道'
},
{
code
:
'320213002'
,
name
:
'长安街道'
},
{
code
:
'320213003'
,
name
:
'钱桥街道'
},
{
code
:
'320213004'
,
name
:
'前洲街道'
},
{
code
:
'320213005'
,
name
:
'玉祁街道'
},
{
code
:
'320213006'
,
name
:
'洛社镇'
},
{
code
:
'320213007'
,
name
:
'阳山镇'
}]
},
{
code
:
'320214'
,
name
:
'滨湖区'
,
streets
:
[{
code
:
'320214001'
,
name
:
'河埒街道'
},
{
code
:
'320214002'
,
name
:
'蠡湖街道'
},
{
code
:
'320214003'
,
name
:
'荣巷街道'
},
{
code
:
'320214004'
,
name
:
'蠡园街道'
},
{
code
:
'320214005'
,
name
:
'华庄街道'
},
{
code
:
'320214006'
,
name
:
'太湖街道'
},
{
code
:
'320214007'
,
name
:
'雪浪街道'
},
{
code
:
'320214008'
,
name
:
'马山街道'
}]
},
{
code
:
'320281'
,
name
:
'江阴市'
,
streets
:
[{
code
:
'320281001'
,
name
:
'澄江街道'
},
{
code
:
'320281002'
,
name
:
'南闸街道'
},
{
code
:
'320281003'
,
name
:
'云亭街道'
},
{
code
:
'320281004'
,
name
:
'夏港街道'
},
{
code
:
'320281005'
,
name
:
'申港街道'
},
{
code
:
'320281006'
,
name
:
'利港街道'
},
{
code
:
'320281007'
,
name
:
'璜土镇'
},
{
code
:
'320281008'
,
name
:
'月城镇'
},
{
code
:
'320281009'
,
name
:
'青阳镇'
},
{
code
:
'320281010'
,
name
:
'徐霞客镇'
},
{
code
:
'320281011'
,
name
:
'华士镇'
},
{
code
:
'320281012'
,
name
:
'周庄镇'
},
{
code
:
'320281013'
,
name
:
'新桥镇'
},
{
code
:
'320281014'
,
name
:
'长泾镇'
},
{
code
:
'320281015'
,
name
:
'顾山镇'
},
{
code
:
'320281016'
,
name
:
'祝塘镇'
}]
},
{
code
:
'320282'
,
name
:
'宜兴市'
,
streets
:
[{
code
:
'320282001'
,
name
:
'宜城街道'
},
{
code
:
'320282002'
,
name
:
'屺亭街道'
},
{
code
:
'320282003'
,
name
:
'新街街道'
},
{
code
:
'320282004'
,
name
:
'新庄街道'
},
{
code
:
'320282005'
,
name
:
'张渚镇'
},
{
code
:
'320282006'
,
name
:
'西渚镇'
},
{
code
:
'320282007'
,
name
:
'太华镇'
},
{
code
:
'320282008'
,
name
:
'徐舍镇'
},
{
code
:
'320282009'
,
name
:
'官林镇'
},
{
code
:
'320282010'
,
name
:
'杨巷镇'
},
{
code
:
'320282011'
,
name
:
'新建镇'
},
{
code
:
'320282012'
,
name
:
'和桥镇'
},
{
code
:
'320282013'
,
name
:
'高塍镇'
},
{
code
:
'320282014'
,
name
:
'万石镇'
},
{
code
:
'320282015'
,
name
:
'周铁镇'
},
{
code
:
'320282016'
,
name
:
'芳桥镇'
},
{
code
:
'320282017'
,
name
:
'丁蜀镇'
}]
}
]
},
{
code
:
'320300'
,
name
:
'徐州市'
,
districts
:
[
{
code
:
'320302'
,
name
:
'鼓楼区'
,
streets
:
[{
code
:
'320302001'
,
name
:
'黄楼街道'
},
{
code
:
'320302002'
,
name
:
'丰财街道'
},
{
code
:
'320302003'
,
name
:
'琵琶街道'
},
{
code
:
'320302004'
,
name
:
'牌楼街道'
},
{
code
:
'320302005'
,
name
:
'铜沛街道'
},
{
code
:
'320302006'
,
name
:
'环城街道'
}]
},
{
code
:
'320303'
,
name
:
'云龙区'
,
streets
:
[{
code
:
'320303001'
,
name
:
'彭城街道'
},
{
code
:
'320303002'
,
name
:
'子房街道'
},
{
code
:
'320303003'
,
name
:
'黄山街道'
},
{
code
:
'320303004'
,
name
:
'骆驼山街道'
},
{
code
:
'320303005'
,
name
:
'大郭庄街道'
},
{
code
:
'320303006'
,
name
:
'翠屏山街道'
},
{
code
:
'320303007'
,
name
:
'大龙湖街道'
},
{
code
:
'320303008'
,
name
:
'潘塘街道'
}]
},
{
code
:
'320305'
,
name
:
'贾汪区'
,
streets
:
[{
code
:
'320305001'
,
name
:
'老矿街道'
},
{
code
:
'320305002'
,
name
:
'大泉街道'
},
{
code
:
'320305003'
,
name
:
'大吴街道'
},
{
code
:
'320305004'
,
name
:
'潘安湖街道'
},
{
code
:
'320305005'
,
name
:
'青山泉镇'
},
{
code
:
'320305006'
,
name
:
'紫庄镇'
},
{
code
:
'320305007'
,
name
:
'塔山镇'
},
{
code
:
'320305008'
,
name
:
'汴塘镇'
},
{
code
:
'320305009'
,
name
:
'江庄镇'
}]
},
{
code
:
'320311'
,
name
:
'泉山区'
,
streets
:
[{
code
:
'320311001'
,
name
:
'王陵街道'
},
{
code
:
'320311002'
,
name
:
'七里沟街道'
},
{
code
:
'320311003'
,
name
:
'永安街道'
},
{
code
:
'320311004'
,
name
:
'湖滨街道'
},
{
code
:
'320311005'
,
name
:
'段庄街道'
},
{
code
:
'320311006'
,
name
:
'翟山街道'
},
{
code
:
'320311007'
,
name
:
'奎山街道'
},
{
code
:
'320311008'
,
name
:
'和平街道'
},
{
code
:
'320311009'
,
name
:
'金山街道'
},
{
code
:
'320311010'
,
name
:
'泰山街道'
}]
},
{
code
:
'320312'
,
name
:
'铜山区'
,
streets
:
[{
code
:
'320312001'
,
name
:
'铜山街道'
},
{
code
:
'320312002'
,
name
:
'新区街道'
},
{
code
:
'320312003'
,
name
:
'三堡街道'
},
{
code
:
'320312004'
,
name
:
'何桥镇'
},
{
code
:
'320312005'
,
name
:
'黄集镇'
},
{
code
:
'320312006'
,
name
:
'马坡镇'
},
{
code
:
'320312007'
,
name
:
'郑集镇'
},
{
code
:
'320312008'
,
name
:
'柳新镇'
},
{
code
:
'320312009'
,
name
:
'刘集镇'
},
{
code
:
'320312010'
,
name
:
'大彭镇'
},
{
code
:
'320312011'
,
name
:
'汉王镇'
},
{
code
:
'320312012'
,
name
:
'棠张镇'
},
{
code
:
'320312013'
,
name
:
'张集镇'
},
{
code
:
'320312014'
,
name
:
'房村镇'
},
{
code
:
'320312015'
,
name
:
'伊庄镇'
},
{
code
:
'320312016'
,
name
:
'单集镇'
},
{
code
:
'320312017'
,
name
:
'利国镇'
},
{
code
:
'320312018'
,
name
:
'大许镇'
},
{
code
:
'320312019'
,
name
:
'茅村镇'
},
{
code
:
'320312020'
,
name
:
'柳泉镇'
}]
},
{
code
:
'320321'
,
name
:
'丰县'
,
streets
:
[{
code
:
'320321001'
,
name
:
'中阳里街道'
},
{
code
:
'320321002'
,
name
:
'凤城街道'
},
{
code
:
'320321003'
,
name
:
'孙楼街道'
},
{
code
:
'320321004'
,
name
:
'首羡镇'
},
{
code
:
'320321005'
,
name
:
'顺河镇'
},
{
code
:
'320321006'
,
name
:
'常店镇'
},
{
code
:
'320321007'
,
name
:
'欢口镇'
},
{
code
:
'320321008'
,
name
:
'师寨镇'
},
{
code
:
'320321009'
,
name
:
'华山镇'
},
{
code
:
'320321010'
,
name
:
'梁寨镇'
},
{
code
:
'320321011'
,
name
:
'范楼镇'
},
{
code
:
'320321012'
,
name
:
'宋楼镇'
},
{
code
:
'320321013'
,
name
:
'大沙河镇'
},
{
code
:
'320321014'
,
name
:
'王沟镇'
},
{
code
:
'320321015'
,
name
:
'赵庄镇'
}]
},
{
code
:
'320322'
,
name
:
'沛县'
,
streets
:
[{
code
:
'320322001'
,
name
:
'沛城街道'
},
{
code
:
'320322002'
,
name
:
'大屯街道'
},
{
code
:
'320322003'
,
name
:
'汉源街道'
},
{
code
:
'320322004'
,
name
:
'汉兴街道'
},
{
code
:
'320322005'
,
name
:
'龙固镇'
},
{
code
:
'320322006'
,
name
:
'杨屯镇'
},
{
code
:
'320322007'
,
name
:
'胡寨镇'
},
{
code
:
'320322008'
,
name
:
'魏庙镇'
},
{
code
:
'320322009'
,
name
:
'五段镇'
},
{
code
:
'320322010'
,
name
:
'张庄镇'
},
{
code
:
'320322011'
,
name
:
'张寨镇'
},
{
code
:
'320322012'
,
name
:
'敬安镇'
},
{
code
:
'320322013'
,
name
:
'河口镇'
},
{
code
:
'320322014'
,
name
:
'栖山镇'
},
{
code
:
'320322015'
,
name
:
'鹿楼镇'
},
{
code
:
'320322016'
,
name
:
'朱寨镇'
},
{
code
:
'320322017'
,
name
:
'安国镇'
}]
},
{
code
:
'320324'
,
name
:
'睢宁县'
,
streets
:
[{
code
:
'320324001'
,
name
:
'睢城街道'
},
{
code
:
'320324002'
,
name
:
'金城街道'
},
{
code
:
'320324003'
,
name
:
'睢河街道'
},
{
code
:
'320324004'
,
name
:
'王集镇'
},
{
code
:
'320324005'
,
name
:
'双沟镇'
},
{
code
:
'320324006'
,
name
:
'岚山镇'
},
{
code
:
'320324007'
,
name
:
'李集镇'
},
{
code
:
'320324008'
,
name
:
'桃园镇'
},
{
code
:
'320324009'
,
name
:
'官山镇'
},
{
code
:
'320324010'
,
name
:
'高作镇'
},
{
code
:
'320324011'
,
name
:
'沙集镇'
},
{
code
:
'320324012'
,
name
:
'凌城镇'
},
{
code
:
'320324013'
,
name
:
'邱集镇'
},
{
code
:
'320324014'
,
name
:
'古邳镇'
},
{
code
:
'320324015'
,
name
:
'姚集镇'
},
{
code
:
'320324016'
,
name
:
'魏集镇'
},
{
code
:
'320324017'
,
name
:
'梁集镇'
},
{
code
:
'320324018'
,
name
:
'庆安镇'
}]
},
{
code
:
'320381'
,
name
:
'新沂市'
,
streets
:
[{
code
:
'320381001'
,
name
:
'新安街道'
},
{
code
:
'320381002'
,
name
:
'北沟街道'
},
{
code
:
'320381003'
,
name
:
'墨河街道'
},
{
code
:
'320381004'
,
name
:
'唐店街道'
},
{
code
:
'320381005'
,
name
:
'瓦窑镇'
},
{
code
:
'320381006'
,
name
:
'港头镇'
},
{
code
:
'320381007'
,
name
:
'合沟镇'
},
{
code
:
'320381008'
,
name
:
'草桥镇'
},
{
code
:
'320381009'
,
name
:
'窑湾镇'
},
{
code
:
'320381010'
,
name
:
'棋盘镇'
},
{
code
:
'320381011'
,
name
:
'马陵山镇'
},
{
code
:
'320381012'
,
name
:
'新店镇'
},
{
code
:
'320381013'
,
name
:
'邵店镇'
},
{
code
:
'320381014'
,
name
:
'时集镇'
},
{
code
:
'320381015'
,
name
:
'高流镇'
},
{
code
:
'320381016'
,
name
:
'阿湖镇'
},
{
code
:
'320381017'
,
name
:
'双塘镇'
}]
},
{
code
:
'320382'
,
name
:
'邳州市'
,
streets
:
[{
code
:
'320382001'
,
name
:
'东湖街道'
},
{
code
:
'320382002'
,
name
:
'运河街道'
},
{
code
:
'320382003'
,
name
:
'戴圩街道'
},
{
code
:
'320382004'
,
name
:
'炮车街道'
},
{
code
:
'320382005'
,
name
:
'邳城镇'
},
{
code
:
'320382006'
,
name
:
'官湖镇'
},
{
code
:
'320382007'
,
name
:
'四户镇'
},
{
code
:
'320382008'
,
name
:
'宿羊山镇'
},
{
code
:
'320382009'
,
name
:
'八义集镇'
},
{
code
:
'320382010'
,
name
:
'土山镇'
},
{
code
:
'320382011'
,
name
:
'碾庄镇'
},
{
code
:
'320382012'
,
name
:
'港上镇'
},
{
code
:
'320382013'
,
name
:
'邹庄镇'
},
{
code
:
'320382014'
,
name
:
'占城镇'
},
{
code
:
'320382015'
,
name
:
'新河镇'
},
{
code
:
'320382016'
,
name
:
'八路镇'
},
{
code
:
'320382017'
,
name
:
'铁富镇'
},
{
code
:
'320382018'
,
name
:
'岔河镇'
},
{
code
:
'320382019'
,
name
:
'戴庄镇'
},
{
code
:
'320382020'
,
name
:
'车辐山镇'
},
{
code
:
'320382021'
,
name
:
'燕子埠镇'
},
{
code
:
'320382022'
,
name
:
'赵墩镇'
},
{
code
:
'320382023'
,
name
:
'议堂镇'
},
{
code
:
'320382024'
,
name
:
'邢楼镇'
},
{
code
:
'320382025'
,
name
:
'陈楼镇'
}]
}
]
},
{
code
:
'320400'
,
name
:
'常州市'
,
districts
:
[
{
code
:
'320402'
,
name
:
'天宁区'
,
streets
:
[{
code
:
'320402001'
,
name
:
'雕庄街道'
},
{
code
:
'320402002'
,
name
:
'青龙街道'
},
{
code
:
'320402003'
,
name
:
'茶山街道'
},
{
code
:
'320402004'
,
name
:
'红梅街道'
},
{
code
:
'320402005'
,
name
:
'天宁街道'
},
{
code
:
'320402006'
,
name
:
'兰陵街道'
},
{
code
:
'320402007'
,
name
:
'郑陆镇'
}]
},
{
code
:
'320404'
,
name
:
'钟楼区'
,
streets
:
[{
code
:
'320404001'
,
name
:
'五星街道'
},
{
code
:
'320404002'
,
name
:
'永红街道'
},
{
code
:
'320404003'
,
name
:
'北港街道'
},
{
code
:
'320404004'
,
name
:
'西林街道'
},
{
code
:
'320404005'
,
name
:
'南大街街道'
},
{
code
:
'320404006'
,
name
:
'荷花池街道'
},
{
code
:
'320404007'
,
name
:
'新闸街道'
},
{
code
:
'320404008'
,
name
:
'邹区镇'
}]
},
{
code
:
'320411'
,
name
:
'新北区'
,
streets
:
[{
code
:
'320411001'
,
name
:
'河海街道'
},
{
code
:
'320411002'
,
name
:
'三井街道'
},
{
code
:
'320411003'
,
name
:
'龙虎塘街道'
},
{
code
:
'320411004'
,
name
:
'春江街道'
},
{
code
:
'320411005'
,
name
:
'孟河镇'
},
{
code
:
'320411006'
,
name
:
'新桥街道'
},
{
code
:
'320411007'
,
name
:
'薛家镇'
},
{
code
:
'320411008'
,
name
:
'罗溪镇'
},
{
code
:
'320411009'
,
name
:
'西夏墅镇'
},
{
code
:
'320411010'
,
name
:
'奔牛镇'
}]
},
{
code
:
'320412'
,
name
:
'武进区'
,
streets
:
[{
code
:
'320412001'
,
name
:
'湖塘镇'
},
{
code
:
'320412002'
,
name
:
'牛塘镇'
},
{
code
:
'320412003'
,
name
:
'洛阳镇'
},
{
code
:
'320412004'
,
name
:
'遥观镇'
},
{
code
:
'320412005'
,
name
:
'横林镇'
},
{
code
:
'320412006'
,
name
:
'横山桥镇'
},
{
code
:
'320412007'
,
name
:
'雪堰镇'
},
{
code
:
'320412008'
,
name
:
'前黄镇'
},
{
code
:
'320412009'
,
name
:
'礼嘉镇'
},
{
code
:
'320412010'
,
name
:
'嘉泽镇'
},
{
code
:
'320412011'
,
name
:
'湟里镇'
},
{
code
:
'320412012'
,
name
:
'西湖街道'
},
{
code
:
'320412013'
,
name
:
'南夏墅街道'
},
{
code
:
'320412014'
,
name
:
'戚墅堰街道'
},
{
code
:
'320412015'
,
name
:
'丁堰街道'
}]
},
{
code
:
'320413'
,
name
:
'金坛区'
,
streets
:
[{
code
:
'320413001'
,
name
:
'西城街道'
},
{
code
:
'320413002'
,
name
:
'金城镇'
},
{
code
:
'320413003'
,
name
:
'儒林镇'
},
{
code
:
'320413004'
,
name
:
'直溪镇'
},
{
code
:
'320413005'
,
name
:
'朱林镇'
},
{
code
:
'320413006'
,
name
:
'薛埠镇'
},
{
code
:
'320413007'
,
name
:
'指前镇'
},
{
code
:
'320413008'
,
name
:
'尧塘街道'
}]
},
{
code
:
'320481'
,
name
:
'溧阳市'
,
streets
:
[{
code
:
'320481001'
,
name
:
'溧城街道'
},
{
code
:
'320481002'
,
name
:
'古县街道'
},
{
code
:
'320481003'
,
name
:
'昆仑街道'
},
{
code
:
'320481004'
,
name
:
'埭头镇'
},
{
code
:
'320481005'
,
name
:
'上黄镇'
},
{
code
:
'320481006'
,
name
:
'戴埠镇'
},
{
code
:
'320481007'
,
name
:
'天目湖镇'
},
{
code
:
'320481008'
,
name
:
'别桥镇'
},
{
code
:
'320481009'
,
name
:
'上兴镇'
},
{
code
:
'320481010'
,
name
:
'竹箦镇'
},
{
code
:
'320481011'
,
name
:
'南渡镇'
},
{
code
:
'320481012'
,
name
:
'社渚镇'
}]
}
]
},
{
code
:
'320500'
,
name
:
'苏州市'
,
districts
:
[
{
code
:
'320505'
,
name
:
'虎丘区'
,
streets
:
[{
code
:
'320505001'
,
name
:
'狮山街道'
},
{
code
:
'320505002'
,
name
:
'横塘街道'
},
{
code
:
'320505003'
,
name
:
'枫桥街道'
},
{
code
:
'320505004'
,
name
:
'镇湖街道'
},
{
code
:
'320505005'
,
name
:
'东渚街道'
},
{
code
:
'320505006'
,
name
:
'通安镇'
},
{
code
:
'320505007'
,
name
:
'浒墅关镇'
},
{
code
:
'320505008'
,
name
:
'浒墅关经济技术开发区'
}]
},
{
code
:
'320506'
,
name
:
'吴中区'
,
streets
:
[{
code
:
'320506001'
,
name
:
'长桥街道'
},
{
code
:
'320506002'
,
name
:
'越溪街道'
},
{
code
:
'320506003'
,
name
:
'郭巷街道'
},
{
code
:
'320506004'
,
name
:
'横泾街道'
},
{
code
:
'320506005'
,
name
:
'香山街道'
},
{
code
:
'320506006'
,
name
:
'城南街道'
},
{
code
:
'320506007'
,
name
:
'太湖街道'
},
{
code
:
'320506008'
,
name
:
'甪直镇'
},
{
code
:
'320506009'
,
name
:
'木渎镇'
},
{
code
:
'320506010'
,
name
:
'胥口镇'
},
{
code
:
'320506011'
,
name
:
'东山镇'
},
{
code
:
'320506012'
,
name
:
'光福镇'
},
{
code
:
'320506013'
,
name
:
'金庭镇'
},
{
code
:
'320506014'
,
name
:
'临湖镇'
}]
},
{
code
:
'320507'
,
name
:
'相城区'
,
streets
:
[{
code
:
'320507001'
,
name
:
'元和街道'
},
{
code
:
'320507002'
,
name
:
'太平街道'
},
{
code
:
'320507003'
,
name
:
'黄桥街道'
},
{
code
:
'320507004'
,
name
:
'望亭镇'
},
{
code
:
'320507005'
,
name
:
'黄埭镇'
},
{
code
:
'320507006'
,
name
:
'渭塘镇'
},
{
code
:
'320507007'
,
name
:
'阳澄湖镇'
},
{
code
:
'320507008'
,
name
:
'北桥街道'
}]
},
{
code
:
'320508'
,
name
:
'姑苏区'
,
streets
:
[{
code
:
'320508001'
,
name
:
'双塔街道'
},
{
code
:
'320508002'
,
name
:
'沧浪街道'
},
{
code
:
'320508003'
,
name
:
'胥江街道'
},
{
code
:
'320508004'
,
name
:
'吴门桥街道'
},
{
code
:
'320508005'
,
name
:
'葑门街道'
},
{
code
:
'320508006'
,
name
:
'友新街道'
},
{
code
:
'320508007'
,
name
:
'观前街道'
},
{
code
:
'320508008'
,
name
:
'平江街道'
},
{
code
:
'320508009'
,
name
:
'苏锦街道'
},
{
code
:
'320508010'
,
name
:
'娄门街道'
},
{
code
:
'320508011'
,
name
:
'城北街道'
},
{
code
:
'320508012'
,
name
:
'桃花坞街道'
},
{
code
:
'320508013'
,
name
:
'石路街道'
},
{
code
:
'320508014'
,
name
:
'金阊街道'
},
{
code
:
'320508015'
,
name
:
'留园街道'
},
{
code
:
'320508016'
,
name
:
'虎丘街道'
},
{
code
:
'320508017'
,
name
:
'白洋湾街道'
}]
},
{
code
:
'320509'
,
name
:
'吴江区'
,
streets
:
[{
code
:
'320509001'
,
name
:
'松陵街道'
},
{
code
:
'320509002'
,
name
:
'横扇街道'
},
{
code
:
'320509003'
,
name
:
'八坼街道'
},
{
code
:
'320509004'
,
name
:
'江陵街道'
},
{
code
:
'320509005'
,
name
:
'平望镇'
},
{
code
:
'320509006'
,
name
:
'盛泽镇'
},
{
code
:
'320509007'
,
name
:
'七都镇'
},
{
code
:
'320509008'
,
name
:
'震泽镇'
},
{
code
:
'320509009'
,
name
:
'桃源镇'
},
{
code
:
'320509010'
,
name
:
'黎里镇'
},
{
code
:
'320509011'
,
name
:
'同里镇'
}]
},
{
code
:
'320581'
,
name
:
'常熟市'
,
streets
:
[{
code
:
'320581001'
,
name
:
'虞山街道'
},
{
code
:
'320581002'
,
name
:
'常福街道'
},
{
code
:
'320581003'
,
name
:
'琴川街道'
},
{
code
:
'320581004'
,
name
:
'莫城街道'
},
{
code
:
'320581005'
,
name
:
'碧溪街道'
},
{
code
:
'320581006'
,
name
:
'东南街道'
},
{
code
:
'320581007'
,
name
:
'梅李镇'
},
{
code
:
'320581008'
,
name
:
'海虞镇'
},
{
code
:
'320581009'
,
name
:
'古里镇'
},
{
code
:
'320581010'
,
name
:
'沙家浜镇'
},
{
code
:
'320581011'
,
name
:
'支塘镇'
},
{
code
:
'320581012'
,
name
:
'董浜镇'
},
{
code
:
'320581013'
,
name
:
'尚湖镇'
},
{
code
:
'320581014'
,
name
:
'辛庄镇'
}]
},
{
code
:
'320582'
,
name
:
'张家港市'
,
streets
:
[{
code
:
'320582001'
,
name
:
'杨舍镇'
},
{
code
:
'320582002'
,
name
:
'塘桥镇'
},
{
code
:
'320582003'
,
name
:
'金港镇'
},
{
code
:
'320582004'
,
name
:
'锦丰镇'
},
{
code
:
'320582005'
,
name
:
'乐余镇'
},
{
code
:
'320582006'
,
name
:
'凤凰镇'
},
{
code
:
'320582007'
,
name
:
'南丰镇'
},
{
code
:
'320582008'
,
name
:
'大新镇'
},
{
code
:
'320582009'
,
name
:
'常阴沙现代农业示范园区'
}]
},
{
code
:
'320583'
,
name
:
'昆山市'
,
streets
:
[{
code
:
'320583001'
,
name
:
'玉山镇'
},
{
code
:
'320583002'
,
name
:
'巴城镇'
},
{
code
:
'320583003'
,
name
:
'周市镇'
},
{
code
:
'320583004'
,
name
:
'陆家镇'
},
{
code
:
'320583005'
,
name
:
'花桥镇'
},
{
code
:
'320583006'
,
name
:
'淀山湖镇'
},
{
code
:
'320583007'
,
name
:
'张浦镇'
},
{
code
:
'320583008'
,
name
:
'周庄镇'
},
{
code
:
'320583009'
,
name
:
'千灯镇'
},
{
code
:
'320583010'
,
name
:
'锦溪镇'
}]
},
{
code
:
'320585'
,
name
:
'太仓市'
,
streets
:
[{
code
:
'320585001'
,
name
:
'城厢镇'
},
{
code
:
'320585002'
,
name
:
'沙溪镇'
},
{
code
:
'320585003'
,
name
:
'浏河镇'
},
{
code
:
'320585004'
,
name
:
'浮桥镇'
},
{
code
:
'320585005'
,
name
:
'璜泾镇'
},
{
code
:
'320585006'
,
name
:
'双凤镇'
},
{
code
:
'320585007'
,
name
:
'娄东街道'
},
{
code
:
'320585008'
,
name
:
'陆渡街道'
}]
}
]
},
{
code
:
'320600'
,
name
:
'南通市'
,
districts
:
[
{
code
:
'320602'
,
name
:
'崇川区'
,
streets
:
[{
code
:
'320602001'
,
name
:
'城东街道'
},
{
code
:
'320602002'
,
name
:
'和平桥街道'
},
{
code
:
'320602003'
,
name
:
'任港街道'
},
{
code
:
'320602004'
,
name
:
'新城桥街道'
},
{
code
:
'320602005'
,
name
:
'虹桥街道'
},
{
code
:
'320602006'
,
name
:
'学田街道'
},
{
code
:
'320602007'
,
name
:
'钟秀街道'
},
{
code
:
'320602008'
,
name
:
'文峰街道'
},
{
code
:
'320602009'
,
name
:
'观音山街道'
},
{
code
:
'320602010'
,
name
:
'狼山镇街道'
},
{
code
:
'320602011'
,
name
:
'永兴街道'
},
{
code
:
'320602012'
,
name
:
'天生港镇街道'
},
{
code
:
'320602013'
,
name
:
'幸福街道'
},
{
code
:
'320602014'
,
name
:
'陈桥街道'
},
{
code
:
'320602015'
,
name
:
'秦灶街道'
},
{
code
:
'320602016'
,
name
:
'唐闸镇街道'
}]
},
{
code
:
'320611'
,
name
:
'港闸区'
,
streets
:
[{
code
:
'320611001'
,
name
:
'永兴街道'
},
{
code
:
'320611002'
,
name
:
'唐闸镇街道'
},
{
code
:
'320611003'
,
name
:
'天生港镇街道'
},
{
code
:
'320611004'
,
name
:
'秦灶街道'
},
{
code
:
'320611005'
,
name
:
'陈桥街道'
},
{
code
:
'320611006'
,
name
:
'幸福街道'
}]
},
{
code
:
'320612'
,
name
:
'通州区'
,
streets
:
[{
code
:
'320612001'
,
name
:
'金沙街道'
},
{
code
:
'320612002'
,
name
:
'金新街道'
},
{
code
:
'320612003'
,
name
:
'兴东街道'
},
{
code
:
'320612004'
,
name
:
'先锋街道'
},
{
code
:
'320612005'
,
name
:
'西亭镇'
},
{
code
:
'320612006'
,
name
:
'二甲镇'
},
{
code
:
'320612007'
,
name
:
'东社镇'
},
{
code
:
'320612008'
,
name
:
'三余镇'
},
{
code
:
'320612009'
,
name
:
'十总镇'
},
{
code
:
'320612010'
,
name
:
'石港镇'
},
{
code
:
'320612011'
,
name
:
'刘桥镇'
},
{
code
:
'320612012'
,
name
:
'平潮镇'
},
{
code
:
'320612013'
,
name
:
'五接镇'
},
{
code
:
'320612014'
,
name
:
'兴仁镇'
},
{
code
:
'320612015'
,
name
:
'张芝山镇'
},
{
code
:
'320612016'
,
name
:
'川姜镇'
}]
},
{
code
:
'320623'
,
name
:
'如东县'
,
streets
:
[{
code
:
'320623001'
,
name
:
'掘港街道'
},
{
code
:
'320623002'
,
name
:
'城中街道'
},
{
code
:
'320623003'
,
name
:
'苴镇街道'
},
{
code
:
'320623004'
,
name
:
'长沙镇'
},
{
code
:
'320623005'
,
name
:
'洋口镇'
},
{
code
:
'320623006'
,
name
:
'栟茶镇'
},
{
code
:
'320623007'
,
name
:
'河口镇'
},
{
code
:
'320623008'
,
name
:
'袁庄镇'
},
{
code
:
'320623009'
,
name
:
'双甸镇'
},
{
code
:
'320623010'
,
name
:
'新店镇'
},
{
code
:
'320623011'
,
name
:
'马塘镇'
},
{
code
:
'320623012'
,
name
:
'丰利镇'
},
{
code
:
'320623013'
,
name
:
'曹埠镇'
},
{
code
:
'320623014'
,
name
:
'大豫镇'
}]
},
{
code
:
'320681'
,
name
:
'启东市'
,
streets
:
[{
code
:
'320681001'
,
name
:
'汇龙镇'
},
{
code
:
'320681002'
,
name
:
'北新镇'
},
{
code
:
'320681003'
,
name
:
'惠萍镇'
},
{
code
:
'320681004'
,
name
:
'寅阳镇'
},
{
code
:
'320681005'
,
name
:
'东海镇'
},
{
code
:
'320681006'
,
name
:
'近海镇'
},
{
code
:
'320681007'
,
name
:
'南阳镇'
},
{
code
:
'320681008'
,
name
:
'海复镇'
},
{
code
:
'320681009'
,
name
:
'合作镇'
},
{
code
:
'320681010'
,
name
:
'王鲍镇'
},
{
code
:
'320681011'
,
name
:
'吕四港镇'
},
{
code
:
'320681012'
,
name
:
'启隆镇'
}]
},
{
code
:
'320682'
,
name
:
'如皋市'
,
streets
:
[{
code
:
'320682001'
,
name
:
'如城街道'
},
{
code
:
'320682002'
,
name
:
'城北街道'
},
{
code
:
'320682003'
,
name
:
'城南街道'
},
{
code
:
'320682004'
,
name
:
'东陈镇'
},
{
code
:
'320682005'
,
name
:
'丁堰镇'
},
{
code
:
'320682006'
,
name
:
'白蒲镇'
},
{
code
:
'320682007'
,
name
:
'下原镇'
},
{
code
:
'320682008'
,
name
:
'九华镇'
},
{
code
:
'320682009'
,
name
:
'石庄镇'
},
{
code
:
'320682010'
,
name
:
'长江镇'
},
{
code
:
'320682011'
,
name
:
'吴窑镇'
},
{
code
:
'320682012'
,
name
:
'江安镇'
},
{
code
:
'320682013'
,
name
:
'搬经镇'
},
{
code
:
'320682014'
,
name
:
'磨头镇'
}]
},
{
code
:
'320684'
,
name
:
'海门市'
,
streets
:
[{
code
:
'320684001'
,
name
:
'海门街道'
},
{
code
:
'320684002'
,
name
:
'滨江街道'
},
{
code
:
'320684003'
,
name
:
'三厂街道'
},
{
code
:
'320684004'
,
name
:
'三星镇'
},
{
code
:
'320684005'
,
name
:
'常乐镇'
},
{
code
:
'320684006'
,
name
:
'悦来镇'
},
{
code
:
'320684007'
,
name
:
'四甲镇'
},
{
code
:
'320684008'
,
name
:
'余东镇'
},
{
code
:
'320684009'
,
name
:
'正余镇'
},
{
code
:
'320684010'
,
name
:
'包场镇'
},
{
code
:
'320684011'
,
name
:
'临江镇'
},
{
code
:
'320684012'
,
name
:
'海永镇'
}]
},
{
code
:
'320685'
,
name
:
'海安市'
,
streets
:
[{
code
:
'320685001'
,
name
:
'海安街道'
},
{
code
:
'320685002'
,
name
:
'胡集街道'
},
{
code
:
'320685003'
,
name
:
'孙庄街道'
},
{
code
:
'320685004'
,
name
:
'隆政街道'
},
{
code
:
'320685005'
,
name
:
'城东镇'
},
{
code
:
'320685006'
,
name
:
'曲塘镇'
},
{
code
:
'320685007'
,
name
:
'李堡镇'
},
{
code
:
'320685008'
,
name
:
'角斜镇'
},
{
code
:
'320685009'
,
name
:
'大公镇'
},
{
code
:
'320685010'
,
name
:
'雅周镇'
},
{
code
:
'320685011'
,
name
:
'白甸镇'
},
{
code
:
'320685012'
,
name
:
'南莫镇'
},
{
code
:
'320685013'
,
name
:
'墩头镇'
}]
}
]
},
{
code
:
'320700'
,
name
:
'连云港市'
,
districts
:
[
{
code
:
'320703'
,
name
:
'连云区'
,
streets
:
[{
code
:
'320703001'
,
name
:
'墟沟街道'
},
{
code
:
'320703002'
,
name
:
'连云街道'
},
{
code
:
'320703003'
,
name
:
'云山街道'
},
{
code
:
'320703004'
,
name
:
'板桥街道'
},
{
code
:
'320703005'
,
name
:
'连岛街道'
},
{
code
:
'320703006'
,
name
:
'徐圩街道'
},
{
code
:
'320703007'
,
name
:
'海州湾街道'
},
{
code
:
'320703008'
,
name
:
'宿城街道'
},
{
code
:
'320703009'
,
name
:
'高公岛街道'
},
{
code
:
'320703010'
,
name
:
'前三岛乡'
}]
},
{
code
:
'320706'
,
name
:
'海州区'
,
streets
:
[{
code
:
'320706001'
,
name
:
'朐阳街道'
},
{
code
:
'320706002'
,
name
:
'浦西街道'
},
{
code
:
'320706003'
,
name
:
'新东街道'
},
{
code
:
'320706004'
,
name
:
'新南街道'
},
{
code
:
'320706005'
,
name
:
'路南街道'
},
{
code
:
'320706006'
,
name
:
'新海街道'
},
{
code
:
'320706007'
,
name
:
'花果山街道'
},
{
code
:
'320706008'
,
name
:
'洪门街道'
},
{
code
:
'320706009'
,
name
:
'宁海街道'
},
{
code
:
'320706010'
,
name
:
'幸福路街道'
},
{
code
:
'320706011'
,
name
:
'浦南镇'
},
{
code
:
'320706012'
,
name
:
'新坝镇'
},
{
code
:
'320706013'
,
name
:
'锦屏镇'
},
{
code
:
'320706014'
,
name
:
'板浦镇'
}]
},
{
code
:
'320707'
,
name
:
'赣榆区'
,
streets
:
[{
code
:
'320707001'
,
name
:
'青口镇'
},
{
code
:
'320707002'
,
name
:
'柘汪镇'
},
{
code
:
'320707003'
,
name
:
'石桥镇'
},
{
code
:
'320707004'
,
name
:
'金山镇'
},
{
code
:
'320707005'
,
name
:
'黑林镇'
},
{
code
:
'320707006'
,
name
:
'厉庄镇'
},
{
code
:
'320707007'
,
name
:
'海头镇'
},
{
code
:
'320707008'
,
name
:
'塔山镇'
},
{
code
:
'320707009'
,
name
:
'赣马镇'
},
{
code
:
'320707010'
,
name
:
'班庄镇'
},
{
code
:
'320707011'
,
name
:
'城头镇'
},
{
code
:
'320707012'
,
name
:
'城西镇'
},
{
code
:
'320707013'
,
name
:
'宋庄镇'
},
{
code
:
'320707014'
,
name
:
'沙河镇'
}]
},
{
code
:
'320722'
,
name
:
'东海县'
,
streets
:
[{
code
:
'320722001'
,
name
:
'牛山街道'
},
{
code
:
'320722002'
,
name
:
'石榴街道'
},
{
code
:
'320722003'
,
name
:
'白塔埠镇'
},
{
code
:
'320722004'
,
name
:
'黄川镇'
},
{
code
:
'320722005'
,
name
:
'石梁河镇'
},
{
code
:
'320722006'
,
name
:
'青湖镇'
},
{
code
:
'320722007'
,
name
:
'温泉镇'
},
{
code
:
'320722008'
,
name
:
'双店镇'
},
{
code
:
'320722009'
,
name
:
'桃林镇'
},
{
code
:
'320722010'
,
name
:
'洪庄镇'
},
{
code
:
'320722011'
,
name
:
'安峰镇'
},
{
code
:
'320722012'
,
name
:
'房山镇'
},
{
code
:
'320722013'
,
name
:
'平明镇'
},
{
code
:
'320722014'
,
name
:
'驼峰乡'
},
{
code
:
'320722015'
,
name
:
'李埝乡'
},
{
code
:
'320722016'
,
name
:
'山左口乡'
},
{
code
:
'320722017'
,
name
:
'石湖乡'
},
{
code
:
'320722018'
,
name
:
'曲阳乡'
},
{
code
:
'320722019'
,
name
:
'张湾乡'
}]
},
{
code
:
'320723'
,
name
:
'灌云县'
,
streets
:
[{
code
:
'320723001'
,
name
:
'伊山镇'
},
{
code
:
'320723002'
,
name
:
'杨集镇'
},
{
code
:
'320723003'
,
name
:
'燕尾港镇'
},
{
code
:
'320723004'
,
name
:
'同兴镇'
},
{
code
:
'320723005'
,
name
:
'四队镇'
},
{
code
:
'320723006'
,
name
:
'圩丰镇'
},
{
code
:
'320723007'
,
name
:
'龙苴镇'
},
{
code
:
'320723008'
,
name
:
'图河镇'
},
{
code
:
'320723009'
,
name
:
'下车镇'
},
{
code
:
'320723010'
,
name
:
'东王集镇'
},
{
code
:
'320723011'
,
name
:
'侍庄街道'
},
{
code
:
'320723012'
,
name
:
'小伊镇'
},
{
code
:
'320723013'
,
name
:
'南岗镇'
}]
},
{
code
:
'320724'
,
name
:
'灌南县'
,
streets
:
[{
code
:
'320724001'
,
name
:
'新安镇'
},
{
code
:
'320724002'
,
name
:
'堆沟港镇'
},
{
code
:
'320724003'
,
name
:
'田楼镇'
},
{
code
:
'320724004'
,
name
:
'北陈集镇'
},
{
code
:
'320724005'
,
name
:
'张店镇'
},
{
code
:
'320724006'
,
name
:
'三口镇'
},
{
code
:
'320724007'
,
name
:
'孟兴庄镇'
},
{
code
:
'320724008'
,
name
:
'汤沟镇'
},
{
code
:
'320724009'
,
name
:
'百禄镇'
},
{
code
:
'320724010'
,
name
:
'新集镇'
},
{
code
:
'320724011'
,
name
:
'李集镇'
}]
}
]
},
{
code
:
'320800'
,
name
:
'淮安市'
,
districts
:
[
{
code
:
'320803'
,
name
:
'淮安区'
,
streets
:
[{
code
:
'320803001'
,
name
:
'淮城街道'
},
{
code
:
'320803002'
,
name
:
'河下街道'
},
{
code
:
'320803003'
,
name
:
'山阳街道'
},
{
code
:
'320803004'
,
name
:
'平桥镇'
},
{
code
:
'320803005'
,
name
:
'朱桥镇'
},
{
code
:
'320803006'
,
name
:
'施河镇'
},
{
code
:
'320803007'
,
name
:
'车桥镇'
},
{
code
:
'320803008'
,
name
:
'流均镇'
},
{
code
:
'320803009'
,
name
:
'博里镇'
},
{
code
:
'320803010'
,
name
:
'复兴镇'
},
{
code
:
'320803011'
,
name
:
'苏嘴镇'
},
{
code
:
'320803012'
,
name
:
'钦工镇'
},
{
code
:
'320803013'
,
name
:
'顺河镇'
},
{
code
:
'320803014'
,
name
:
'季桥镇'
},
{
code
:
'320803015'
,
name
:
'席桥镇'
},
{
code
:
'320803016'
,
name
:
'林集镇'
},
{
code
:
'320803017'
,
name
:
'南闸镇'
},
{
code
:
'320803018'
,
name
:
'范集镇'
},
{
code
:
'320803019'
,
name
:
'建淮乡'
},
{
code
:
'320803020'
,
name
:
'茭陵乡'
},
{
code
:
'320803021'
,
name
:
'宋集乡'
},
{
code
:
'320803022'
,
name
:
'城东乡'
},
{
code
:
'320803023'
,
name
:
'三堡乡'
}]
},
{
code
:
'320804'
,
name
:
'淮阴区'
,
streets
:
[{
code
:
'320804001'
,
name
:
'王家营街道'
},
{
code
:
'320804002'
,
name
:
'长江路街道'
},
{
code
:
'320804003'
,
name
:
'新渡口街道'
},
{
code
:
'320804004'
,
name
:
'古清口街道'
},
{
code
:
'320804005'
,
name
:
'南陈集镇'
},
{
code
:
'320804006'
,
name
:
'丁集镇'
},
{
code
:
'320804007'
,
name
:
'渔沟镇'
},
{
code
:
'320804008'
,
name
:
'三树镇'
},
{
code
:
'320804009'
,
name
:
'徐溜镇'
},
{
code
:
'320804010'
,
name
:
'刘老庄镇'
},
{
code
:
'320804011'
,
name
:
'高家堰镇'
},
{
code
:
'320804012'
,
name
:
'马头镇'
},
{
code
:
'320804013'
,
name
:
'码头镇'
}]
},
{
code
:
'320812'
,
name
:
'清江浦区'
,
streets
:
[{
code
:
'320812001'
,
name
:
'府前街道'
},
{
code
:
'320812002'
,
name
:
'长西街道'
},
{
code
:
'320812003'
,
name
:
'淮海街道'
},
{
code
:
'320812004'
,
name
:
'长东街道'
},
{
code
:
'320812005'
,
name
:
'柳树湾街道'
},
{
code
:
'320812006'
,
name
:
'水渡口街道'
},
{
code
:
'320812007'
,
name
:
'清河街道'
},
{
code
:
'320812008'
,
name
:
'清浦街道'
},
{
code
:
'320812009'
,
name
:
'闸口街道'
},
{
code
:
'320812010'
,
name
:
'浦楼街道'
},
{
code
:
'320812011'
,
name
:
'武墩街道'
},
{
code
:
'320812012'
,
name
:
'盐河街道'
},
{
code
:
'320812013'
,
name
:
'和平镇'
},
{
code
:
'320812014'
,
name
:
'黄码镇'
},
{
code
:
'320812015'
,
name
:
'宁连路办事处'
}]
},
{
code
:
'320813'
,
name
:
'洪泽区'
,
streets
:
[{
code
:
'320813001'
,
name
:
'高良涧街道'
},
{
code
:
'320813002'
,
name
:
'朱坝街道'
},
{
code
:
'320813003'
,
name
:
'黄集街道'
},
{
code
:
'320813004'
,
name
:
'蒋坝镇'
},
{
code
:
'320813005'
,
name
:
'岔河镇'
},
{
code
:
'320813006'
,
name
:
'西顺河镇'
},
{
code
:
'320813007'
,
name
:
'老子山镇'
},
{
code
:
'320813008'
,
name
:
'三河镇'
},
{
code
:
'320813009'
,
name
:
'东双沟镇'
}]
},
{
code
:
'320826'
,
name
:
'涟水县'
,
streets
:
[{
code
:
'320826001'
,
name
:
'涟城街道'
},
{
code
:
'320826002'
,
name
:
'朱码街道'
},
{
code
:
'320826003'
,
name
:
'陈师街道'
},
{
code
:
'320826004'
,
name
:
'保滩街道'
},
{
code
:
'320826005'
,
name
:
'高沟镇'
},
{
code
:
'320826006'
,
name
:
'唐集镇'
},
{
code
:
'320826007'
,
name
:
'大东镇'
},
{
code
:
'320826008'
,
name
:
'五港镇'
},
{
code
:
'320826009'
,
name
:
'梁岔镇'
},
{
code
:
'320826010'
,
name
:
'石湖镇'
},
{
code
:
'320826011'
,
name
:
'岔庙镇'
},
{
code
:
'320826012'
,
name
:
'东胡集镇'
},
{
code
:
'320826013'
,
name
:
'南集镇'
},
{
code
:
'320826014'
,
name
:
'义兴镇'
},
{
code
:
'320826015'
,
name
:
'成集镇'
},
{
code
:
'320826016'
,
name
:
'红窑镇'
},
{
code
:
'320826017'
,
name
:
'黄营镇'
}]
},
{
code
:
'320830'
,
name
:
'盱眙县'
,
streets
:
[{
code
:
'320830001'
,
name
:
'盱城街道'
},
{
code
:
'320830002'
,
name
:
'太和街道'
},
{
code
:
'320830003'
,
name
:
'古桑街道'
},
{
code
:
'320830004'
,
name
:
'马坝镇'
},
{
code
:
'320830005'
,
name
:
'官滩镇'
},
{
code
:
'320830006'
,
name
:
'桂五镇'
},
{
code
:
'320830007'
,
name
:
'管镇镇'
},
{
code
:
'320830008'
,
name
:
'河桥镇'
},
{
code
:
'320830009'
,
name
:
'鲍集镇'
},
{
code
:
'320830010'
,
name
:
'黄花塘镇'
},
{
code
:
'320830011'
,
name
:
'明祖陵镇'
},
{
code
:
'320830012'
,
name
:
'铁佛镇'
},
{
code
:
'320830013'
,
name
:
'淮河镇'
},
{
code
:
'320830014'
,
name
:
'仇集镇'
},
{
code
:
'320830015'
,
name
:
'观音寺镇'
},
{
code
:
'320830016'
,
name
:
'天泉湖镇'
},
{
code
:
'320830017'
,
name
:
'维桥乡'
},
{
code
:
'320830018'
,
name
:
'穆店乡'
},
{
code
:
'320830019'
,
name
:
'兴隆乡'
}]
},
{
code
:
'320831'
,
name
:
'金湖县'
,
streets
:
[{
code
:
'320831001'
,
name
:
'黎城街道'
},
{
code
:
'320831002'
,
name
:
'戴楼街道'
},
{
code
:
'320831003'
,
name
:
'金北街道'
},
{
code
:
'320831004'
,
name
:
'金南镇'
},
{
code
:
'320831005'
,
name
:
'塔集镇'
},
{
code
:
'320831006'
,
name
:
'前锋镇'
},
{
code
:
'320831007'
,
name
:
'吕良镇'
},
{
code
:
'320831008'
,
name
:
'银涂镇'
},
{
code
:
'320831009'
,
name
:
'闵桥镇'
},
{
code
:
'320831010'
,
name
:
'涂沟镇'
}]
}
]
},
{
code
:
'320900'
,
name
:
'盐城市'
,
districts
:
[
{
code
:
'320902'
,
name
:
'亭湖区'
,
streets
:
[{
code
:
'320902001'
,
name
:
'五星街道'
},
{
code
:
'320902002'
,
name
:
'文峰街道'
},
{
code
:
'320902003'
,
name
:
'先锋街道'
},
{
code
:
'320902004'
,
name
:
'毓龙街道'
},
{
code
:
'320902005'
,
name
:
'大洋街道'
},
{
code
:
'320902006'
,
name
:
'新洋街道'
},
{
code
:
'320902007'
,
name
:
'黄海街道'
},
{
code
:
'320902008'
,
name
:
'新城街道'
},
{
code
:
'320902009'
,
name
:
'便仓镇'
},
{
code
:
'320902010'
,
name
:
'南洋镇'
},
{
code
:
'320902011'
,
name
:
'新兴镇'
},
{
code
:
'320902012'
,
name
:
'盐东镇'
},
{
code
:
'320902013'
,
name
:
'黄尖镇'
},
{
code
:
'320902014'
,
name
:
'步凤镇'
},
{
code
:
'320902015'
,
name
:
'环保产业园'
},
{
code
:
'320902016'
,
name
:
'开发区'
}]
},
{
code
:
'320903'
,
name
:
'盐都区'
,
streets
:
[{
code
:
'320903001'
,
name
:
'张庄街道'
},
{
code
:
'320903002'
,
name
:
'盐龙街道'
},
{
code
:
'320903003'
,
name
:
'潘黄街道'
},
{
code
:
'320903004'
,
name
:
'滨湖街道'
},
{
code
:
'320903005'
,
name
:
'北龙港街道'
},
{
code
:
'320903006'
,
name
:
'楼王镇'
},
{
code
:
'320903007'
,
name
:
'学富镇'
},
{
code
:
'320903008'
,
name
:
'尚庄镇'
},
{
code
:
'320903009'
,
name
:
'秦南镇'
},
{
code
:
'320903010'
,
name
:
'龙冈镇'
},
{
code
:
'320903011'
,
name
:
'郭猛镇'
},
{
code
:
'320903012'
,
name
:
'大冈镇'
},
{
code
:
'320903013'
,
name
:
'新区'
}]
},
{
code
:
'320904'
,
name
:
'大丰区'
,
streets
:
[{
code
:
'320904001'
,
name
:
'大中街道'
},
{
code
:
'320904002'
,
name
:
'丰华街道'
},
{
code
:
'320904003'
,
name
:
'南阳镇'
},
{
code
:
'320904004'
,
name
:
'万盈镇'
},
{
code
:
'320904005'
,
name
:
'小海镇'
},
{
code
:
'320904006'
,
name
:
'大桥镇'
},
{
code
:
'320904007'
,
name
:
'草庙镇'
},
{
code
:
'320904008'
,
name
:
'西团镇'
},
{
code
:
'320904009'
,
name
:
'白驹镇'
},
{
code
:
'320904010'
,
name
:
'刘庄镇'
},
{
code
:
'320904011'
,
name
:
'新丰镇'
},
{
code
:
'320904012'
,
name
:
'三龙镇'
},
{
code
:
'320904013'
,
name
:
'草堰镇'
}]
},
{
code
:
'320921'
,
name
:
'响水县'
,
streets
:
[{
code
:
'320921001'
,
name
:
'响水镇'
},
{
code
:
'320921002'
,
name
:
'陈家港镇'
},
{
code
:
'320921003'
,
name
:
'小尖镇'
},
{
code
:
'320921004'
,
name
:
'黄圩镇'
},
{
code
:
'320921005'
,
name
:
'大有镇'
},
{
code
:
'320921006'
,
name
:
'双港镇'
},
{
code
:
'320921007'
,
name
:
'南河镇'
},
{
code
:
'320921008'
,
name
:
'运河镇'
},
{
code
:
'320921009'
,
name
:
'县开发区'
},
{
code
:
'320921010'
,
name
:
'生态化工园区'
}]
},
{
code
:
'320922'
,
name
:
'滨海县'
,
streets
:
[{
code
:
'320922001'
,
name
:
'东坎街道'
},
{
code
:
'320922002'
,
name
:
'坎南街道'
},
{
code
:
'320922003'
,
name
:
'坎北街道'
},
{
code
:
'320922004'
,
name
:
'五汛镇'
},
{
code
:
'320922005'
,
name
:
'蔡桥镇'
},
{
code
:
'320922006'
,
name
:
'正红镇'
},
{
code
:
'320922007'
,
name
:
'通榆镇'
},
{
code
:
'320922008'
,
name
:
'界牌镇'
},
{
code
:
'320922009'
,
name
:
'八巨镇'
},
{
code
:
'320922010'
,
name
:
'八滩镇'
},
{
code
:
'320922011'
,
name
:
'滨淮镇'
},
{
code
:
'320922012'
,
name
:
'天场镇'
},
{
code
:
'320922013'
,
name
:
'陈涛镇'
},
{
code
:
'320922014'
,
name
:
'滨海港镇'
}]
},
{
code
:
'320923'
,
name
:
'阜宁县'
,
streets
:
[{
code
:
'320923001'
,
name
:
'阜城街道'
},
{
code
:
'320923002'
,
name
:
'吴滩街道'
},
{
code
:
'320923003'
,
name
:
'花园街道'
},
{
code
:
'320923004'
,
name
:
'金沙湖街道'
},
{
code
:
'320923005'
,
name
:
'沟墩镇'
},
{
code
:
'320923006'
,
name
:
'陈良镇'
},
{
code
:
'320923007'
,
name
:
'三灶镇'
},
{
code
:
'320923008'
,
name
:
'郭墅镇'
},
{
code
:
'320923009'
,
name
:
'新沟镇'
},
{
code
:
'320923010'
,
name
:
'陈集镇'
},
{
code
:
'320923011'
,
name
:
'羊寨镇'
},
{
code
:
'320923012'
,
name
:
'芦蒲镇'
},
{
code
:
'320923013'
,
name
:
'板湖镇'
},
{
code
:
'320923014'
,
name
:
'东沟镇'
},
{
code
:
'320923015'
,
name
:
'益林镇'
},
{
code
:
'320923016'
,
name
:
'古河镇'
},
{
code
:
'320923017'
,
name
:
'罗桥镇'
}]
},
{
code
:
'320924'
,
name
:
'射阳县'
,
streets
:
[{
code
:
'320924001'
,
name
:
'合德镇'
},
{
code
:
'320924002'
,
name
:
'临海镇'
},
{
code
:
'320924003'
,
name
:
'千秋镇'
},
{
code
:
'320924004'
,
name
:
'四明镇'
},
{
code
:
'320924005'
,
name
:
'海河镇'
},
{
code
:
'320924006'
,
name
:
'海通镇'
},
{
code
:
'320924007'
,
name
:
'兴桥镇'
},
{
code
:
'320924008'
,
name
:
'新坍镇'
},
{
code
:
'320924009'
,
name
:
'长荡镇'
},
{
code
:
'320924010'
,
name
:
'盘湾镇'
},
{
code
:
'320924011'
,
name
:
'特庸镇'
},
{
code
:
'320924012'
,
name
:
'洋马镇'
},
{
code
:
'320924013'
,
name
:
'黄沙港镇'
},
{
code
:
'320924014'
,
name
:
'县经济开发区'
}]
},
{
code
:
'320925'
,
name
:
'建湖县'
,
streets
:
[{
code
:
'320925001'
,
name
:
'近湖街道'
},
{
code
:
'320925002'
,
name
:
'塘河街道'
},
{
code
:
'320925003'
,
name
:
'钟庄街道'
},
{
code
:
'320925004'
,
name
:
'建阳镇'
},
{
code
:
'320925005'
,
name
:
'九龙口镇'
},
{
code
:
'320925006'
,
name
:
'恒济镇'
},
{
code
:
'320925007'
,
name
:
'颜单镇'
},
{
code
:
'320925008'
,
name
:
'沿河镇'
},
{
code
:
'320925009'
,
name
:
'芦沟镇'
},
{
code
:
'320925010'
,
name
:
'庆丰镇'
},
{
code
:
'320925011'
,
name
:
'上冈镇'
},
{
code
:
'320925012'
,
name
:
'高作镇'
},
{
code
:
'320925013'
,
name
:
'宝塔镇'
},
{
code
:
'320925014'
,
name
:
'冈西镇'
}]
},
{
code
:
'320981'
,
name
:
'东台市'
,
streets
:
[{
code
:
'320981001'
,
name
:
'东台镇'
},
{
code
:
'320981002'
,
name
:
'溱东镇'
},
{
code
:
'320981003'
,
name
:
'时堰镇'
},
{
code
:
'320981004'
,
name
:
'五烈镇'
},
{
code
:
'320981005'
,
name
:
'梁垛镇'
},
{
code
:
'320981006'
,
name
:
'安丰镇'
},
{
code
:
'320981007'
,
name
:
'南沈灶镇'
},
{
code
:
'320981008'
,
name
:
'富安镇'
},
{
code
:
'320981009'
,
name
:
'唐洋镇'
},
{
code
:
'320981010'
,
name
:
'新街镇'
},
{
code
:
'320981011'
,
name
:
'许河镇'
},
{
code
:
'320981012'
,
name
:
'三仓镇'
},
{
code
:
'320981013'
,
name
:
'头灶镇'
},
{
code
:
'320981014'
,
name
:
'弶港镇'
},
{
code
:
'320981015'
,
name
:
'东台经济开发区'
},
{
code
:
'320981016'
,
name
:
'沿海经济区'
},
{
code
:
'320981017'
,
name
:
'西溪景区'
},
{
code
:
'320981018'
,
name
:
'黄海森林公园'
}]
}
]
},
{
code
:
'321000'
,
name
:
'扬州市'
,
districts
:
[
{
code
:
'321002'
,
name
:
'广陵区'
,
streets
:
[{
code
:
'321002001'
,
name
:
'东关街道'
},
{
code
:
'321002002'
,
name
:
'汶河街道'
},
{
code
:
'321002003'
,
name
:
'文峰街道'
},
{
code
:
'321002004'
,
name
:
'曲江街道'
},
{
code
:
'321002005'
,
name
:
'汤汪街道'
},
{
code
:
'321002006'
,
name
:
'李典镇'
},
{
code
:
'321002007'
,
name
:
'沙头镇'
},
{
code
:
'321002008'
,
name
:
'头桥镇'
},
{
code
:
'321002009'
,
name
:
'湾头镇'
},
{
code
:
'321002010'
,
name
:
'杭集镇'
},
{
code
:
'321002011'
,
name
:
'泰安镇'
},
{
code
:
'321002012'
,
name
:
'产业园'
}]
},
{
code
:
'321003'
,
name
:
'邗江区'
,
streets
:
[{
code
:
'321003001'
,
name
:
'邗上街道'
},
{
code
:
'321003002'
,
name
:
'蒋王街道'
},
{
code
:
'321003003'
,
name
:
'汊河街道'
},
{
code
:
'321003004'
,
name
:
'双桥街道'
},
{
code
:
'321003005'
,
name
:
'梅岭街道'
},
{
code
:
'321003006'
,
name
:
'甘泉街道'
},
{
code
:
'321003007'
,
name
:
'新盛街道'
},
{
code
:
'321003008'
,
name
:
'竹西街道'
},
{
code
:
'321003009'
,
name
:
'西湖街道'
},
{
code
:
'321003010'
,
name
:
'施桥镇'
},
{
code
:
'321003011'
,
name
:
'八里镇'
},
{
code
:
'321003012'
,
name
:
'朴席镇'
},
{
code
:
'321003013'
,
name
:
'槐泗镇'
},
{
code
:
'321003014'
,
name
:
'瓜洲镇'
},
{
code
:
'321003015'
,
name
:
'杨庙镇'
},
{
code
:
'321003016'
,
name
:
'杨寿镇'
},
{
code
:
'321003017'
,
name
:
'方巷镇'
}]
},
{
code
:
'321012'
,
name
:
'江都区'
,
streets
:
[{
code
:
'321012001'
,
name
:
'仙女镇'
},
{
code
:
'321012002'
,
name
:
'小纪镇'
},
{
code
:
'321012003'
,
name
:
'武坚镇'
},
{
code
:
'321012004'
,
name
:
'樊川镇'
},
{
code
:
'321012005'
,
name
:
'真武镇'
},
{
code
:
'321012006'
,
name
:
'宜陵镇'
},
{
code
:
'321012007'
,
name
:
'丁沟镇'
},
{
code
:
'321012008'
,
name
:
'郭村镇'
},
{
code
:
'321012009'
,
name
:
'邵伯镇'
},
{
code
:
'321012010'
,
name
:
'丁伙镇'
},
{
code
:
'321012011'
,
name
:
'大桥镇'
},
{
code
:
'321012012'
,
name
:
'吴桥镇'
},
{
code
:
'321012013'
,
name
:
'浦头镇'
}]
},
{
code
:
'321023'
,
name
:
'宝应县'
,
streets
:
[{
code
:
'321023001'
,
name
:
'安宜镇'
},
{
code
:
'321023002'
,
name
:
'氾水镇'
},
{
code
:
'321023003'
,
name
:
'夏集镇'
},
{
code
:
'321023004'
,
name
:
'柳堡镇'
},
{
code
:
'321023005'
,
name
:
'射阳湖镇'
},
{
code
:
'321023006'
,
name
:
'广洋湖镇'
},
{
code
:
'321023007'
,
name
:
'鲁垛镇'
},
{
code
:
'321023008'
,
name
:
'小官庄镇'
},
{
code
:
'321023009'
,
name
:
'望直港镇'
},
{
code
:
'321023010'
,
name
:
'曹甸镇'
},
{
code
:
'321023011'
,
name
:
'西安丰镇'
},
{
code
:
'321023012'
,
name
:
'山阳镇'
},
{
code
:
'321023013'
,
name
:
'黄塍镇'
},
{
code
:
'321023014'
,
name
:
'泾河镇'
}]
},
{
code
:
'321081'
,
name
:
'仪征市'
,
streets
:
[{
code
:
'321081001'
,
name
:
'真州镇'
},
{
code
:
'321081002'
,
name
:
'新集镇'
},
{
code
:
'321081003'
,
name
:
'新城镇'
},
{
code
:
'321081004'
,
name
:
'马集镇'
},
{
code
:
'321081005'
,
name
:
'刘集镇'
},
{
code
:
'321081006'
,
name
:
'陈集镇'
},
{
code
:
'321081007'
,
name
:
'大仪镇'
},
{
code
:
'321081008'
,
name
:
'月塘镇'
},
{
code
:
'321081009'
,
name
:
'青山镇'
},
{
code
:
'321081010'
,
name
:
'枣林湾'
}]
},
{
code
:
'321084'
,
name
:
'高邮市'
,
streets
:
[{
code
:
'321084001'
,
name
:
'高邮街道'
},
{
code
:
'321084002'
,
name
:
'龙虬镇'
},
{
code
:
'321084003'
,
name
:
'汤庄镇'
},
{
code
:
'321084004'
,
name
:
'卸甲镇'
},
{
code
:
'321084005'
,
name
:
'三垛镇'
},
{
code
:
'321084006'
,
name
:
'甘垛镇'
},
{
code
:
'321084007'
,
name
:
'界首镇'
},
{
code
:
'321084008'
,
name
:
'周山镇'
},
{
code
:
'321084009'
,
name
:
'临泽镇'
},
{
code
:
'321084010'
,
name
:
'送桥镇'
},
{
code
:
'321084011'
,
name
:
'菱塘回族乡'
},
{
code
:
'321084012'
,
name
:
'城南经济新区'
},
{
code
:
'321084013'
,
name
:
'马棚街道'
}]
}
]
},
{
code
:
'321100'
,
name
:
'镇江市'
,
districts
:
[
{
code
:
'321102'
,
name
:
'京口区'
,
streets
:
[{
code
:
'321102001'
,
name
:
'正东路街道'
},
{
code
:
'321102002'
,
name
:
'健康路街道'
},
{
code
:
'321102003'
,
name
:
'大市口街道'
},
{
code
:
'321102004'
,
name
:
'四牌楼街道'
},
{
code
:
'321102005'
,
name
:
'象山街道'
},
{
code
:
'321102006'
,
name
:
'谏壁街道'
},
{
code
:
'321102007'
,
name
:
'丁卯街道'
},
{
code
:
'321102008'
,
name
:
'大港街道'
},
{
code
:
'321102009'
,
name
:
'姚桥镇'
},
{
code
:
'321102010'
,
name
:
'大路镇'
},
{
code
:
'321102011'
,
name
:
'丁岗镇'
}]
},
{
code
:
'321111'
,
name
:
'润州区'
,
streets
:
[{
code
:
'321111001'
,
name
:
'宝塔路街道'
},
{
code
:
'321111002'
,
name
:
'和平路街道'
},
{
code
:
'321111003'
,
name
:
'金山街道'
},
{
code
:
'321111004'
,
name
:
'七里甸街道'
},
{
code
:
'321111005'
,
name
:
'蒋乔街道'
},
{
code
:
'321111006'
,
name
:
'官塘桥街道'
},
{
code
:
'321111007'
,
name
:
'韦岗街道'
},
{
code
:
'321111008'
,
name
:
'南山街道'
}]
},
{
code
:
'321112'
,
name
:
'丹徒区'
,
streets
:
[{
code
:
'321112001'
,
name
:
'高资街道'
},
{
code
:
'321112002'
,
name
:
'高桥镇'
},
{
code
:
'321112003'
,
name
:
'辛丰镇'
},
{
code
:
'321112004'
,
name
:
'谷阳镇'
},
{
code
:
'321112005'
,
name
:
'上党镇'
},
{
code
:
'321112006'
,
name
:
'宝堰镇'
},
{
code
:
'321112007'
,
name
:
'世业镇'
},
{
code
:
'321112008'
,
name
:
'宜城街道'
},
{
code
:
'321112009'
,
name
:
'江心洲生态农业园区'
}]
},
{
code
:
'321181'
,
name
:
'丹阳市'
,
streets
:
[{
code
:
'321181001'
,
name
:
'云阳街道'
},
{
code
:
'321181002'
,
name
:
'曲阿街道'
},
{
code
:
'321181003'
,
name
:
'司徒镇'
},
{
code
:
'321181004'
,
name
:
'延陵镇'
},
{
code
:
'321181005'
,
name
:
'珥陵镇'
},
{
code
:
'321181006'
,
name
:
'导墅镇'
},
{
code
:
'321181007'
,
name
:
'皇塘镇'
},
{
code
:
'321181008'
,
name
:
'吕城镇'
},
{
code
:
'321181009'
,
name
:
'陵口镇'
},
{
code
:
'321181010'
,
name
:
'访仙镇'
},
{
code
:
'321181011'
,
name
:
'界牌镇'
},
{
code
:
'321181012'
,
name
:
'丹北镇'
},
{
code
:
'321181013'
,
name
:
'经济开发区'
}]
},
{
code
:
'321182'
,
name
:
'扬中市'
,
streets
:
[{
code
:
'321182001'
,
name
:
'三茅街道'
},
{
code
:
'321182002'
,
name
:
'新坝镇'
},
{
code
:
'321182003'
,
name
:
'油坊镇'
},
{
code
:
'321182004'
,
name
:
'八桥镇'
},
{
code
:
'321182005'
,
name
:
'西来桥镇'
},
{
code
:
'321182006'
,
name
:
'经济开发区'
}]
},
{
code
:
'321183'
,
name
:
'句容市'
,
streets
:
[{
code
:
'321183001'
,
name
:
'华阳街道'
},
{
code
:
'321183002'
,
name
:
'下蜀镇'
},
{
code
:
'321183003'
,
name
:
'白兔镇'
},
{
code
:
'321183004'
,
name
:
'边城镇'
},
{
code
:
'321183005'
,
name
:
'茅山镇'
},
{
code
:
'321183006'
,
name
:
'后白镇'
},
{
code
:
'321183007'
,
name
:
'郭庄镇'
},
{
code
:
'321183008'
,
name
:
'天王镇'
},
{
code
:
'321183009'
,
name
:
'宝华镇'
},
{
code
:
'321183010'
,
name
:
'黄梅街道'
},
{
code
:
'321183011'
,
name
:
'茅山管委会'
}]
}
]
},
{
code
:
'321200'
,
name
:
'泰州市'
,
districts
:
[
{
code
:
'321202'
,
name
:
'海陵区'
,
streets
:
[{
code
:
'321202001'
,
name
:
'城东街道'
},
{
code
:
'321202002'
,
name
:
'城西街道'
},
{
code
:
'321202003'
,
name
:
'城南街道'
},
{
code
:
'321202004'
,
name
:
'城中街道'
},
{
code
:
'321202005'
,
name
:
'城北街道'
},
{
code
:
'321202006'
,
name
:
'京泰路街道'
},
{
code
:
'321202007'
,
name
:
'红旗街道'
},
{
code
:
'321202008'
,
name
:
'凤凰街道'
},
{
code
:
'321202009'
,
name
:
'寺巷街道'
},
{
code
:
'321202010'
,
name
:
'明珠街道'
},
{
code
:
'321202011'
,
name
:
'九龙镇'
},
{
code
:
'321202012'
,
name
:
'苏陈镇'
},
{
code
:
'321202013'
,
name
:
'罡杨镇'
},
{
code
:
'321202014'
,
name
:
'华港镇'
}]
},
{
code
:
'321203'
,
name
:
'高港区'
,
streets
:
[{
code
:
'321203001'
,
name
:
'口岸街道'
},
{
code
:
'321203002'
,
name
:
'刁铺街道'
},
{
code
:
'321203003'
,
name
:
'许庄街道'
},
{
code
:
'321203004'
,
name
:
'永安洲镇'
},
{
code
:
'321203005'
,
name
:
'白马镇'
},
{
code
:
'321203006'
,
name
:
'胡庄镇'
},
{
code
:
'321203007'
,
name
:
'大泗镇'
},
{
code
:
'321203008'
,
name
:
'野徐镇'
}]
},
{
code
:
'321204'
,
name
:
'姜堰区'
,
streets
:
[{
code
:
'321204001'
,
name
:
'罗塘街道'
},
{
code
:
'321204002'
,
name
:
'三水街道'
},
{
code
:
'321204003'
,
name
:
'天目山街道'
},
{
code
:
'321204004'
,
name
:
'梁徐街道'
},
{
code
:
'321204005'
,
name
:
'溱潼镇'
},
{
code
:
'321204006'
,
name
:
'蒋垛镇'
},
{
code
:
'321204007'
,
name
:
'顾高镇'
},
{
code
:
'321204008'
,
name
:
'大伦镇'
},
{
code
:
'321204009'
,
name
:
'张甸镇'
},
{
code
:
'321204010'
,
name
:
'淤溪镇'
},
{
code
:
'321204011'
,
name
:
'白米镇'
},
{
code
:
'321204012'
,
name
:
'娄庄镇'
},
{
code
:
'321204013'
,
name
:
'沈高镇'
},
{
code
:
'321204014'
,
name
:
'兴泰镇'
},
{
code
:
'321204015'
,
name
:
'俞垛镇'
},
{
code
:
'321204016'
,
name
:
'华港镇'
},
{
code
:
'321204017'
,
name
:
'桥头镇'
},
{
code
:
'321204018'
,
name
:
'开发区'
}]
},
{
code
:
'321281'
,
name
:
'兴化市'
,
streets
:
[{
code
:
'321281001'
,
name
:
'昭阳街道'
},
{
code
:
'321281002'
,
name
:
'临城街道'
},
{
code
:
'321281003'
,
name
:
'垛田街道'
},
{
code
:
'321281004'
,
name
:
'戴窑镇'
},
{
code
:
'321281005'
,
name
:
'合陈镇'
},
{
code
:
'321281006'
,
name
:
'永丰镇'
},
{
code
:
'321281007'
,
name
:
'新垛镇'
},
{
code
:
'321281008'
,
name
:
'安丰镇'
},
{
code
:
'321281009'
,
name
:
'海南镇'
},
{
code
:
'321281010'
,
name
:
'钓鱼镇'
},
{
code
:
'321281011'
,
name
:
'大邹镇'
},
{
code
:
'321281012'
,
name
:
'沙沟镇'
},
{
code
:
'321281013'
,
name
:
'中堡镇'
},
{
code
:
'321281014'
,
name
:
'李中镇'
},
{
code
:
'321281015'
,
name
:
'西鲍乡'
},
{
code
:
'321281016'
,
name
:
'周奋乡'
},
{
code
:
'321281017'
,
name
:
'缸顾乡'
},
{
code
:
'321281018'
,
name
:
'下圩镇'
},
{
code
:
'321281019'
,
name
:
'昌荣镇'
},
{
code
:
'321281020'
,
name
:
'茅山镇'
},
{
code
:
'321281021'
,
name
:
'周庄镇'
},
{
code
:
'321281022'
,
name
:
'陈堡镇'
},
{
code
:
'321281023'
,
name
:
'戴南镇'
},
{
code
:
'321281024'
,
name
:
'张郭镇'
},
{
code
:
'321281025'
,
name
:
'陶庄镇'
},
{
code
:
'321281026'
,
name
:
'大垛镇'
},
{
code
:
'321281027'
,
name
:
'竹泓镇'
},
{
code
:
'321281028'
,
name
:
'沈伦镇'
},
{
code
:
'321281029'
,
name
:
'大营镇'
},
{
code
:
'321281030'
,
name
:
'荻垛镇'
},
{
code
:
'321281031'
,
name
:
'千垛镇'
},
{
code
:
'321281032'
,
name
:
'兴东镇'
}]
},
{
code
:
'321282'
,
name
:
'靖江市'
,
streets
:
[{
code
:
'321282001'
,
name
:
'靖城街道'
},
{
code
:
'321282002'
,
name
:
'新桥镇'
},
{
code
:
'321282003'
,
name
:
'东兴镇'
},
{
code
:
'321282004'
,
name
:
'斜桥镇'
},
{
code
:
'321282005'
,
name
:
'西来镇'
},
{
code
:
'321282006'
,
name
:
'季市镇'
},
{
code
:
'321282007'
,
name
:
'孤山镇'
},
{
code
:
'321282008'
,
name
:
'生祠镇'
},
{
code
:
'321282009'
,
name
:
'马桥镇'
},
{
code
:
'321282010'
,
name
:
'城南办事处'
},
{
code
:
'321282011'
,
name
:
'城北园区'
},
{
code
:
'321282012'
,
name
:
'江阴园区'
}]
},
{
code
:
'321283'
,
name
:
'泰兴市'
,
streets
:
[{
code
:
'321283001'
,
name
:
'济川街道'
},
{
code
:
'321283002'
,
name
:
'延令街道'
},
{
code
:
'321283003'
,
name
:
'姚王街道'
},
{
code
:
'321283004'
,
name
:
'虹桥镇'
},
{
code
:
'321283005'
,
name
:
'张桥镇'
},
{
code
:
'321283006'
,
name
:
'曲霞镇'
},
{
code
:
'321283007'
,
name
:
'广陵镇'
},
{
code
:
'321283008'
,
name
:
'滨江镇'
},
{
code
:
'321283009'
,
name
:
'宣堡镇'
},
{
code
:
'321283010'
,
name
:
'河失镇'
},
{
code
:
'321283011'
,
name
:
'新街镇'
},
{
code
:
'321283012'
,
name
:
'珊瑚镇'
},
{
code
:
'321283013'
,
name
:
'古溪镇'
},
{
code
:
'321283014'
,
name
:
'分界镇'
},
{
code
:
'321283015'
,
name
:
'黄桥镇'
},
{
code
:
'321283016'
,
name
:
'元竹镇'
},
{
code
:
'321283017'
,
name
:
'根思乡'
}]
}
]
},
{
code
:
'321300'
,
name
:
'宿迁市'
,
districts
:
[
{
code
:
'321302'
,
name
:
'宿城区'
,
streets
:
[{
code
:
'321302001'
,
name
:
'幸福街道'
},
{
code
:
'321302002'
,
name
:
'项里街道'
},
{
code
:
'321302003'
,
name
:
'河滨街道'
},
{
code
:
'321302004'
,
name
:
'古城街道'
},
{
code
:
'321302005'
,
name
:
'双庄街道'
},
{
code
:
'321302006'
,
name
:
'支口街道'
},
{
code
:
'321302007'
,
name
:
'耿车镇'
},
{
code
:
'321302008'
,
name
:
'埠子镇'
},
{
code
:
'321302009'
,
name
:
'龙河镇'
},
{
code
:
'321302010'
,
name
:
'洋北镇'
},
{
code
:
'321302011'
,
name
:
'中扬镇'
},
{
code
:
'321302012'
,
name
:
'陈集镇'
},
{
code
:
'321302013'
,
name
:
'蔡集镇'
},
{
code
:
'321302014'
,
name
:
'王官集镇'
},
{
code
:
'321302015'
,
name
:
'屠园镇'
},
{
code
:
'321302016'
,
name
:
'开发区'
}]
},
{
code
:
'321311'
,
name
:
'宿豫区'
,
streets
:
[{
code
:
'321311001'
,
name
:
'顺河街道'
},
{
code
:
'321311002'
,
name
:
'豫新街道'
},
{
code
:
'321311003'
,
name
:
'下相街道'
},
{
code
:
'321311004'
,
name
:
'仰化镇'
},
{
code
:
'321311005'
,
name
:
'大兴镇'
},
{
code
:
'321311006'
,
name
:
'丁嘴镇'
},
{
code
:
'321311007'
,
name
:
'来龙镇'
},
{
code
:
'321311008'
,
name
:
'陆集镇'
},
{
code
:
'321311009'
,
name
:
'关庙镇'
},
{
code
:
'321311010'
,
name
:
'侍岭镇'
},
{
code
:
'321311011'
,
name
:
'新庄镇'
},
{
code
:
'321311012'
,
name
:
'晓店镇'
},
{
code
:
'321311013'
,
name
:
'皂河镇'
},
{
code
:
'321311014'
,
name
:
'曹集乡'
},
{
code
:
'321311015'
,
name
:
'保安乡'
},
{
code
:
'321311016'
,
name
:
'井头乡'
},
{
code
:
'321311017'
,
name
:
'黄墩镇'
},
{
code
:
'321311018'
,
name
:
'骆马湖旅游度假区'
}]
},
{
code
:
'321322'
,
name
:
'沭阳县'
,
streets
:
[{
code
:
'321322001'
,
name
:
'沭城街道'
},
{
code
:
'321322002'
,
name
:
'南湖街道'
},
{
code
:
'321322003'
,
name
:
'梦溪街道'
},
{
code
:
'321322004'
,
name
:
'十字街道'
},
{
code
:
'321322005'
,
name
:
'章集街道'
},
{
code
:
'321322006'
,
name
:
'七雄街道'
},
{
code
:
'321322007'
,
name
:
'汤涧镇'
},
{
code
:
'321322008'
,
name
:
'胡集镇'
},
{
code
:
'321322009'
,
name
:
'钱集镇'
},
{
code
:
'321322010'
,
name
:
'塘沟镇'
},
{
code
:
'321322011'
,
name
:
'马厂镇'
},
{
code
:
'321322012'
,
name
:
'沂涛镇'
},
{
code
:
'321322013'
,
name
:
'庙头镇'
},
{
code
:
'321322014'
,
name
:
'韩山镇'
},
{
code
:
'321322015'
,
name
:
'华冲镇'
},
{
code
:
'321322016'
,
name
:
'桑墟镇'
},
{
code
:
'321322017'
,
name
:
'悦来镇'
},
{
code
:
'321322018'
,
name
:
'刘集镇'
},
{
code
:
'321322019'
,
name
:
'李恒镇'
},
{
code
:
'321322020'
,
name
:
'扎下镇'
},
{
code
:
'321322021'
,
name
:
'颜集镇'
},
{
code
:
'321322022'
,
name
:
'潼阳镇'
},
{
code
:
'321322023'
,
name
:
'龙庙镇'
},
{
code
:
'321322024'
,
name
:
'高墟镇'
},
{
code
:
'321322025'
,
name
:
'耿圩镇'
},
{
code
:
'321322026'
,
name
:
'汤涧镇'
},
{
code
:
'321322027'
,
name
:
'新河镇'
},
{
code
:
'321322028'
,
name
:
'贤官镇'
},
{
code
:
'321322029'
,
name
:
'吴集镇'
},
{
code
:
'321322030'
,
name
:
'湖东镇'
},
{
code
:
'321322031'
,
name
:
'青伊湖镇'
},
{
code
:
'321322032'
,
name
:
'北丁集乡'
},
{
code
:
'321322033'
,
name
:
'周集乡'
},
{
code
:
'321322034'
,
name
:
'东小店乡'
},
{
code
:
'321322035'
,
name
:
'张圩乡'
},
{
code
:
'321322036'
,
name
:
'茆圩乡'
},
{
code
:
'321322037'
,
name
:
'西圩乡'
},
{
code
:
'321322038'
,
name
:
'万匹乡'
},
{
code
:
'321322039'
,
name
:
'官墩乡'
}]
},
{
code
:
'321323'
,
name
:
'泗阳县'
,
streets
:
[{
code
:
'321323001'
,
name
:
'众兴街道'
},
{
code
:
'321323002'
,
name
:
'城厢街道'
},
{
code
:
'321323003'
,
name
:
'来安街道'
},
{
code
:
'321323004'
,
name
:
'王集镇'
},
{
code
:
'321323005'
,
name
:
'新袁镇'
},
{
code
:
'321323006'
,
name
:
'李口镇'
},
{
code
:
'321323007'
,
name
:
'临河镇'
},
{
code
:
'321323008'
,
name
:
'穿城镇'
},
{
code
:
'321323009'
,
name
:
'爱园镇'
},
{
code
:
'321323010'
,
name
:
'庄圩乡'
},
{
code
:
'321323011'
,
name
:
'里仁乡'
},
{
code
:
'321323012'
,
name
:
'三庄乡'
},
{
code
:
'321323013'
,
name
:
'南刘集乡'
},
{
code
:
'321323014'
,
name
:
'八集乡'
},
{
code
:
'321323015'
,
name
:
'张家圩镇'
},
{
code
:
'321323016'
,
name
:
'高渡镇'
},
{
code
:
'321323017'
,
name
:
'卢集镇'
},
{
code
:
'321323018'
,
name
:
'裴圩镇'
}]
},
{
code
:
'321324'
,
name
:
'泗洪县'
,
streets
:
[{
code
:
'321324001'
,
name
:
'青阳街道'
},
{
code
:
'321324002'
,
name
:
'大楼街道'
},
{
code
:
'321324003'
,
name
:
'重岗街道'
},
{
code
:
'321324004'
,
name
:
'双沟镇'
},
{
code
:
'321324005'
,
name
:
'上塘镇'
},
{
code
:
'321324006'
,
name
:
'魏营镇'
},
{
code
:
'321324007'
,
name
:
'临淮镇'
},
{
code
:
'321324008'
,
name
:
'半城镇'
},
{
code
:
'321324009'
,
name
:
'孙园镇'
},
{
code
:
'321324010'
,
name
:
'梅花镇'
},
{
code
:
'321324011'
,
name
:
'归仁镇'
},
{
code
:
'321324012'
,
name
:
'金锁镇'
},
{
code
:
'321324013'
,
name
:
'朱湖镇'
},
{
code
:
'321324014'
,
name
:
'界集镇'
},
{
code
:
'321324015'
,
name
:
'太平镇'
},
{
code
:
'321324016'
,
name
:
'龙集镇'
},
{
code
:
'321324017'
,
name
:
'四河乡'
},
{
code
:
'321324018'
,
name
:
'峰山乡'
},
{
code
:
'321324019'
,
name
:
'天岗湖乡'
},
{
code
:
'321324020'
,
name
:
'车门乡'
},
{
code
:
'321324021'
,
name
:
'瑶沟乡'
},
{
code
:
'321324022'
,
name
:
'石集乡'
},
{
code
:
'321324023'
,
name
:
'城头乡'
},
{
code
:
'321324024'
,
name
:
'陈圩乡'
},
{
code
:
'321324025'
,
name
:
'曹庙乡'
},
{
code
:
'321324026'
,
name
:
'西南岗经济开发区'
}]
}
]
}
]
const
storesData
=
{
addressData
,
choAddressData
}
export
default
storesData
\ No newline at end of file
zhiJianBusi/zjbPc/src/components/system/AccountManagement.vue
View file @
da7b0e0
...
...
@@ -60,7 +60,7 @@
<el-dialog
:title=
"editingAccount ? '编辑账号' : '添加账号'"
:visible
.
sync=
"isAddDialogOpen"
width=
"
6
00px"
width=
"
8
00px"
>
<el-form
:model=
"accountForm"
:rules=
"accountRules"
ref=
"accountForm"
label-width=
"100px"
>
<el-row
:gutter=
"20"
>
...
...
@@ -95,11 +95,11 @@
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"
所属区域
"
prop=
"region"
>
<el-
input
v-model=
"accountForm.region"
placeholder=
"请输入所属区域"
></el-inpu
t>
<el-form-item
label=
"
状态
"
prop=
"region"
>
<el-
select
v-model=
"accountForm.status"
>
<el-option
label=
"启用"
value=
"active"
></el-option>
<el-option
label=
"禁用"
value=
"inactive"
></el-option>
</el-selec
t>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -124,12 +124,58 @@
</el-col>
</el-row>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"accountForm.status"
style=
"width: 100%;"
>
<el-option
label=
"启用"
value=
"active"
></el-option>
<el-option
label=
"禁用"
value=
"inactive"
></el-option>
<el-row
:gutter=
"20"
>
<el-col
:span=
"30"
>
<el-form-item
label=
"所属区域"
prop=
"region"
>
<
template
v-if=
"accountForm.cityArr.length>0"
>
<el-select
v-model=
"accountForm.city"
placeholder=
"选择地市"
@
change=
"(value)=>
{cityChange(value,'person')}"
:disabled="getData.city!=''"
style="margin-right: 10px"
clearable>
<el-option
v-for=
"item in accountForm.cityArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</
template
>
<
template
v-if=
"accountForm.countyArr.length>0"
>
<el-select
v-model=
"accountForm.county"
placeholder=
"选择区县"
@
change=
"(value)=>
{countyChange(value,'person')}"
:disabled="getData.county!=''"
style="margin-right: 10px"
clearable>
<el-option
v-for=
"item in accountForm.countyArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</
template
>
<
template
v-if=
"accountForm.gridArr.length>0"
>
<el-select
v-model=
"accountForm.grid"
placeholder=
"选择网格"
:disabled=
"getData.grid!=''"
clearable
>
<el-option
v-for=
"item in accountForm.gridArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</
template
>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
...
@@ -162,6 +208,14 @@ export default {
region
:
''
,
phone
:
''
,
email
:
''
,
city
:
''
,
cityArr
:
this
.
addressStoreData
,
county
:
''
,
countyArr
:
[],
grid
:
''
,
gridArr
:
[],
status
:
'active'
},
accountRules
:
{
...
...
@@ -174,10 +228,75 @@ export default {
region
:
[
{
required
:
true
,
message
:
'请输入所属区域'
,
trigger
:
'blur'
}
]
}
},
getData
:{
city
:
''
,
cityName
:
''
,
county
:
''
,
countyName
:
''
,
grid
:
''
,
gridName
:
''
,
},
}
},
created
(){
this
.
setAddressShow
()
},
methods
:
{
setAddressShow
(){
let
ad
=
this
.
accountForm
let
gd
=
this
.
getData
if
(
gd
.
city
){
ad
.
city
=
gd
.
city
ad
.
cityArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
city
){
ad
.
countyArr
=
item
.
children
}
})
if
(
gd
.
county
){
ad
.
county
=
gd
.
county
ad
.
countyArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
county
){
ad
.
gridArr
=
item
.
children
}
})
if
(
ad
.
gridArr
.
length
==
1
){
gd
.
grid
=
'moren'
}
if
(
gd
.
grid
){
ad
.
grid
=
gd
.
grid
}
}
}
},
cityChange
(
value
){
let
ad
=
this
.
accountForm
ad
.
city
=
value
ad
.
county
=
''
ad
.
grid
=
''
ad
.
cityArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
city
){
ad
.
countyArr
=
item
.
children
}
})
},
countyChange
(
value
){
let
ad
=
this
.
accountForm
ad
.
county
=
value
ad
.
grid
=
''
ad
.
countyArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
county
){
ad
.
gridArr
=
item
.
children
}
})
},
editAccount
(
account
)
{
this
.
editingAccount
=
account
this
.
accountForm
=
{
...
account
}
...
...
zhiJianBusi/zjbPc/src/components/system/PersonnelManagement.vue
View file @
da7b0e0
...
...
@@ -22,20 +22,56 @@
<el-option
label=
"装维师傅"
value=
"installer"
></el-option>
<el-option
label=
"营销人员"
value=
"sales"
></el-option>
</el-select>
<el-select
v-model=
"filterRegion"
placeholder=
"所在区域筛选"
class=
"filter-select"
>
<el-option
label=
"全部区域"
value=
""
></el-option>
<el-option
label=
"玄武区"
value=
"玄武区"
></el-option>
<el-option
label=
"秦淮区"
value=
"秦淮区"
></el-option>
<el-option
label=
"建邺区"
value=
"建邺区"
></el-option>
<el-option
label=
"鼓楼区"
value=
"鼓楼区"
></el-option>
<template
v-if=
"addressStore.cityArr.length>0"
>
<el-select
v-model=
"addressStore.city"
class=
"filter-select"
placeholder=
"选择地市"
@
change=
"cityChange"
:disabled=
"getData.city!=''"
clearable
>
<el-option
v-for=
"item in addressStore.cityArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</
template
>
<
template
v-if=
"addressStore.countyArr.length>0"
>
<el-select
v-model=
"addressStore.county"
class=
"filter-select"
placeholder=
"选择区县"
@
change=
"countyChange"
:disabled=
"getData.county!=''"
clearable
>
<el-option
v-for=
"item in addressStore.countyArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</
template
>
<
template
v-if=
"addressStore.gridArr.length>0"
>
<el-select
v-model=
"addressStore.grid"
class=
"filter-select"
placeholder=
"选择网格"
:disabled=
"getData.grid!=''"
clearable
>
<el-option
v-for=
"item in addressStore.gridArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</
template
>
</div>
<div
class=
"toolbar-right"
>
<el-button
@
click=
"handleExport"
type=
"default"
size=
"small"
>
<i
class=
"el-icon-upload2"
></i>
导出
</el-button>
<el-button
@
click=
"isImportDialogOpen = true"
type=
"default"
size=
"small"
>
<i
class=
"el-icon-download"
></i>
批量导入
...
...
@@ -120,8 +156,7 @@
<el-dialog
:title=
"editingPersonnel ? '编辑人员' : '添加人员'"
:visible
.
sync=
"isAddDialogOpen"
width=
"600px"
>
width=
"800px"
>
<el-form
:model=
"personnelForm"
:rules=
"personnelRules"
ref=
"personnelForm"
label-width=
"100px"
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
...
...
@@ -157,24 +192,16 @@
</el-row>
<el-row
:gutter=
"20"
>
<!-- 当选择装维师傅时显示关联营销人员字段 -->
<el-col
:span=
"12"
>
<el-form-item
label=
"所属区域"
prop=
"region"
>
<el-select
v-model=
"personnelForm.type"
@
change=
"handlePersonnelTypeChange"
style=
"width: 100%;"
>
<el-option
label=
"装维师傅"
value=
"installer"
></el-option>
<el-option
label=
"营销人员"
value=
"sales"
></el-option>
</el-select>
<el-select
v-model=
"personnelForm.type"
@
change=
"handlePersonnelTypeChange"
style=
"width: 100%;"
>
<el-option
label=
"装维师傅"
value=
"installer"
></el-option>
<el-option
label=
"营销人员"
value=
"sales"
></el-option>
</el-select>
<el-select
v-model=
"personnelForm.type"
@
change=
"handlePersonnelTypeChange"
style=
"width: 100%;"
>
<el-option
label=
"装维师傅"
value=
"installer"
></el-option>
<el-option
label=
"营销人员"
value=
"sales"
></el-option>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"personnelForm.status"
style=
"width: 100%;"
>
<el-option
label=
"启用"
value=
"active"
></el-option>
<el-option
label=
"禁用"
value=
"inactive"
></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- 当选择装维师傅时显示关联营销人员字段 -->
<el-col
:span=
"12"
v-if=
"personnelForm.type === 'installer'"
>
<el-form-item
label=
"关联营销人员"
prop=
"associatedSales"
>
<el-select
v-model=
"personnelForm.associatedSales"
placeholder=
"请选择营销人员"
style=
"width: 100%;"
>
...
...
@@ -187,40 +214,57 @@
</el-select>
</el-form-item>
</el-col>
<!-- 当选择营销人员时显示网格名称 -->
<el-col
:span=
"12"
v-else
>
<el-form-item
label=
"网格名称"
prop=
"gridName"
>
<el-input
v-model=
"personnelForm.gridName"
placeholder=
"如:A网格"
></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- 网格名称 + 状态 -->
<el-row
:gutter=
"20"
v-if=
"personnelForm.type === 'installer'"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"网格名称"
prop=
"gridName"
>
<el-input
v-model=
"personnelForm.gridName"
placeholder=
"如:A网格"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"personnelForm.status"
style=
"width: 100%;"
>
<el-option
label=
"启用"
value=
"active"
></el-option>
<el-option
label=
"禁用"
value=
"inactive"
></el-option>
<el-row
:gutter=
"20"
>
<el-col
:span=
"30"
>
<el-form-item
label=
"所属区域"
prop=
"region"
>
<
template
v-if=
"personnelForm.cityArr.length>0"
>
<el-select
v-model=
"personnelForm.city"
placeholder=
"选择地市"
@
change=
"(value)=>
{cityChange(value,'person')}"
:disabled="getData.city!=''"
style="margin-right: 10px"
clearable>
<el-option
v-for=
"item in personnelForm.cityArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<!-- 当选择营销人员时,状态单独一行 -->
<el-row
:gutter=
"20"
v-if=
"personnelForm.type === 'sales'"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"状态"
prop=
"status"
>
<el-select
v-model=
"personnelForm.status"
style=
"width: 100%;"
>
<el-option
label=
"启用"
value=
"active"
></el-option>
<el-option
label=
"禁用"
value=
"inactive"
></el-option>
</
template
>
<
template
v-if=
"personnelForm.countyArr.length>0"
>
<el-select
v-model=
"personnelForm.county"
placeholder=
"选择区县"
@
change=
"(value)=>
{countyChange(value,'person')}"
:disabled="getData.county!=''"
style="margin-right: 10px"
clearable>
<el-option
v-for=
"item in personnelForm.countyArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</
template
>
<
template
v-if=
"personnelForm.gridArr.length>0"
>
<el-select
v-model=
"personnelForm.grid"
placeholder=
"选择网格"
:disabled=
"getData.grid!=''"
clearable
>
<el-option
v-for=
"item in personnelForm.gridArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</
template
>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -324,6 +368,26 @@ export default {
name
:
'PersonnelManagement'
,
data
()
{
return
{
addressStore
:{
city
:
''
,
cityName
:
''
,
cityArr
:
this
.
addressStoreData
,
county
:
''
,
countyName
:
''
,
countyArr
:
[],
grid
:
''
,
gridName
:
''
,
gridArr
:
[]
},
getData
:{
city
:
'320200'
,
cityName
:
''
,
county
:
''
,
countyName
:
''
,
grid
:
''
,
gridName
:
''
,
},
personnelTypeMap
,
personnel
:
mockPersonnel
,
searchTerm
:
''
,
...
...
@@ -341,8 +405,14 @@ export default {
workId
:
''
,
phone
:
''
,
type
:
'installer'
,
region
:
''
,
gridName
:
''
,
city
:
''
,
cityArr
:
this
.
addressStoreData
,
county
:
''
,
countyArr
:
[],
grid
:
''
,
gridArr
:
[],
status
:
'active'
,
associatedSales
:
''
},
...
...
@@ -387,7 +457,71 @@ export default {
return
this
.
personnel
.
filter
(
person
=>
person
.
type
===
'sales'
&&
person
.
status
===
'active'
)
}
},
created
(){
this
.
setAddressShow
()
},
methods
:
{
setAddressShow
(){
let
ad
=
this
.
addressStore
let
pd
=
this
.
personnelForm
let
gd
=
this
.
getData
if
(
gd
.
city
){
ad
.
city
=
gd
.
city
ad
.
cityArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
city
){
ad
.
countyArr
=
item
.
children
}
})
if
(
gd
.
county
){
ad
.
county
=
gd
.
county
ad
.
countyArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
county
){
ad
.
gridArr
=
item
.
children
}
})
if
(
ad
.
gridArr
.
length
==
1
){
gd
.
grid
=
'moren'
}
if
(
gd
.
grid
){
ad
.
grid
=
gd
.
grid
}
}
}
pd
.
city
=
ad
.
city
pd
.
countyArr
=
ad
.
countyArr
pd
.
county
=
ad
.
county
pd
.
gridArr
=
ad
.
gridArr
pd
.
grid
=
ad
.
grid
},
cityChange
(
value
,
type
){
let
ad
=
type
==
'person'
?
this
.
personnelForm
:
this
.
addressStore
ad
.
city
=
value
ad
.
county
=
''
ad
.
grid
=
''
ad
.
cityArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
city
){
ad
.
countyArr
=
item
.
children
}
})
},
countyChange
(
value
,
type
){
let
ad
=
type
==
'person'
?
this
.
personnelForm
:
this
.
addressStore
ad
.
county
=
value
ad
.
grid
=
''
ad
.
countyArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
county
){
ad
.
gridArr
=
item
.
children
}
})
},
handlePersonnelTypeChange
(
value
)
{
// 当人员类型改变时,重置关联字段
if
(
value
===
'sales'
)
{
...
...
@@ -528,9 +662,6 @@ export default {
this
.
isImportDialogOpen
=
false
this
.
selectedFile
=
null
},
handleExport
()
{
this
.
$message
.
success
(
'人员数据导出成功'
)
},
getAssociatedSalesPerson
(
associatedSalesId
)
{
if
(
!
associatedSalesId
)
return
null
return
this
.
personnel
.
find
(
p
=>
p
.
id
===
associatedSalesId
)
...
...
@@ -559,7 +690,7 @@ export default {
.search-wrapper
{
position
:
relative
;
width
:
22
0px
;
width
:
16
0px
;
.search-icon
{
position
:
absolute
;
...
...
@@ -568,10 +699,6 @@ export default {
transform
:
translateY
(
-50%
);
color
:
#c0c4cc
;
}
.search-input
{
padding-left
:
30px
;
}
}
.filter-select
{
...
...
zhiJianBusi/zjbPc/src/main.js
View file @
da7b0e0
...
...
@@ -18,8 +18,13 @@ Vue.component('Pagination', Pagination)
Vue
.
component
(
'CascadingRegionSelector'
,
CascadingRegionSelector
)
Vue
.
component
(
'ThreeLevelRegionSelector'
,
ThreeLevelRegionSelector
)
import
addressData
from
'@/assets/js/stores/addressData'
Vue
.
prototype
.
addressStoreData
=
addressData
import
storesData
from
'@/assets/js/stores/index'
import
apiInterface
from
'@/assets/js/api/interface'
import
common
from
'@/assets/js/const/common'
Vue
.
prototype
.
storesData
=
storesData
Vue
.
prototype
.
apiReq
=
apiInterface
Vue
.
prototype
.
common
=
common
Vue
.
config
.
productionTip
=
false
...
...
zhiJianBusi/zjbPc/src/router/index.js
View file @
da7b0e0
...
...
@@ -73,7 +73,7 @@ const router = new VueRouter({
// 路由守卫
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
// 检查是否已登录(演示模式下允许访问)
const
isAuthenticated
=
localStorage
.
getItem
(
'
user'
)
||
sessionStorage
.
getItem
(
'demoMode
'
)
const
isAuthenticated
=
localStorage
.
getItem
(
'
tokenInfo
'
)
if
(
to
.
path
!==
'/login'
&&
!
isAuthenticated
)
{
next
(
'/login'
)
...
...
zhiJianBusi/zjbPc/src/views/GridQuery.vue
View file @
da7b0e0
...
...
@@ -22,17 +22,6 @@
<div
class=
"filter-content"
>
<el-row
:gutter=
"24"
>
<el-col
:span=
"3"
>
<el-cascader
v-model=
"selectedRegion"
:options=
"regionOptions"
:props=
"
{ checkStrictly: true, value: 'name', label: 'name' }"
placeholder="请选择区域"
clearable
class="region-cascader"
>
</el-cascader>
</el-col>
<el-col
:span=
"3"
>
<div
class=
"search-wrapper"
>
<el-input
v-model=
"selectedGridName"
...
...
@@ -53,6 +42,37 @@
/>
</div>
</el-col>
<el-col
:span=
"3"
v-if=
"addressStore.cityArr.length>0"
>
<el-select
v-model=
"addressStore.city"
placeholder=
"选择地市"
@
change=
"cityChange"
:disabled=
"getData.city!=''"
clearable
>
<el-option
v-for=
"item in addressStore.cityArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</el-col>
<el-col
:span=
"3"
v-if=
"addressStore.countyArr.length>0"
>
<el-select
v-model=
"addressStore.county"
placeholder=
"选择区县"
@
change=
"countyChange"
:disabled=
"getData.county!=''"
clearable
>
<el-option
v-for=
"item in addressStore.countyArr"
:key=
"item.value"
:label=
"item.name"
:value=
"item.value"
></el-option>
</el-select>
</el-col>
</el-row>
</div>
</el-card>
...
...
@@ -96,11 +116,25 @@ export default {
name
:
'GridQuery'
,
data
()
{
return
{
addressStore
:{
city
:
''
,
cityName
:
''
,
cityArr
:
this
.
addressStoreData
,
county
:
''
,
countyName
:
''
,
countyArr
:
[],
},
getData
:{
city
:
''
,
cityName
:
''
,
county
:
''
,
countyName
:
''
},
selectedRegion
:
[],
selectedGrid
:
''
,
selectedGridName
:
''
,
tableData
:
[],
pageStore
:{
currentPage
:
1
,
...
...
@@ -110,9 +144,52 @@ export default {
}
},
created
(){
this
.
regionOptions
=
this
.
addressStoreData
},
methods
:
{
setAddressShow
(){
let
ad
=
this
.
addressStore
let
gd
=
this
.
getData
if
(
gd
.
city
){
ad
.
city
=
gd
.
city
ad
.
cityArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
city
){
ad
.
countyArr
=
item
.
children
}
})
if
(
gd
.
county
){
ad
.
county
=
gd
.
county
ad
.
countyArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
county
){
ad
.
gridArr
=
item
.
children
}
})
if
(
ad
.
gridArr
.
length
==
1
){
gd
.
grid
=
'moren'
}
if
(
gd
.
grid
){
ad
.
grid
=
gd
.
grid
}
}
}
},
cityChange
(
value
){
let
ad
=
this
.
addressStore
ad
.
city
=
value
ad
.
county
=
''
ad
.
grid
=
''
ad
.
cityArr
.
forEach
(
item
=>
{
if
(
item
.
value
==
ad
.
city
){
ad
.
countyArr
=
item
.
children
}
})
},
handleQuery
()
{
this
.
currentPage
=
1
this
.
$message
.
success
(
'查询成功'
)
...
...
zhiJianBusi/zjbPc/src/views/LoginPage.vue
View file @
da7b0e0
...
...
@@ -233,24 +233,6 @@
<
el
-
button
@
click
=
"isForgotPasswordDialogVisible = false"
>
确定
<
/el-button>
<
/span>
<
/el-dialog>
<
div
class
=
"login-demo-info"
>
<
p
class
=
"login-demo-title"
>
测试账号:
<
/p>
<
div
class
=
"login-demo-accounts"
>
<
p
>
网格管理员
:
grid001
/
123456
<
/p>
<
p
>
区县管理员
:
county001
/
123456
<
/p>
<
p
>
地市管理员
:
city001
/
123456
<
/p>
<
p
>
省级管理员
:
province001
/
123456
<
/p>
<
/div>
<
p
class
=
"login-demo-title"
style
=
"margin-top: 16px;"
>
手机验证码登录:
<
/p>
<
div
class
=
"login-demo-accounts"
>
<
p
>
手机号
:
13812345678
(
对应网格管理员
)
<
/p>
<
p
>
手机号
:
13887654321
(
对应区县管理员
)
<
/p>
<
p
>
手机号
:
13765432109
(
对应地市管理员
)
<
/p>
<
p
>
手机号
:
13654321098
(
对应省级管理员
)
<
/p>
<
p
style
=
"color: #E6A23C;"
>
验证码统一为
:
123456
<
/p>
<
/div>
<
/div>
<
/div>
<
/div>
<
/div>
...
...
@@ -323,20 +305,27 @@ export default {
methods
:
{
...
mapActions
([
'login'
]),
async
handleLogin
()
{
let
ld
=
this
.
loginForm
try
{
await
this
.
$refs
.
loginForm
.
validate
()
this
.
loading
=
true
await
this
.
login
({
username
:
this
.
loginForm
.
username
,
password
:
this
.
loginForm
.
password
}
)
this
.
$message
.
success
(
'登录成功'
)
this
.
apiReq
.
login
({
username
:
ld
.
username
,
password
:
ld
.
password
}
).
then
(
res
=>
{
if
(
res
.
code
==
'200'
){
localStorage
.
setItem
(
'accountInfo'
,
JSON
.
stringify
(
res
.
data
.
account
))
localStorage
.
setItem
(
'tokenInfo'
,
JSON
.
stringify
(
res
.
data
.
tokenInfo
))
this
.
$router
.
push
(
'/'
)
}
else
{
this
.
$message
.
error
(
res
.
message
)
}
}
)
}
catch
(
error
)
{
console
.
error
(
'Login error:'
,
error
)
this
.
$message
.
error
(
error
.
message
||
'登录失败,请稍后重试'
)
}
finally
{
this
.
loading
=
false
}
...
...
@@ -730,28 +719,6 @@ export default {
font
-
weight
:
500
;
}
.
login
-
demo
-
info
{
padding
:
20
px
;
background
-
color
:
#
f5f7fa
;
border
-
radius
:
8
px
;
.
login
-
demo
-
title
{
font
-
size
:
14
px
;
margin
:
0
0
10
px
0
;
color
:
#
606266
;
}
.
login
-
demo
-
accounts
{
font
-
size
:
12
px
;
color
:
#
909399
;
line
-
height
:
1.8
;
p
{
margin
:
0
0
5
px
0
;
}
}
}
// 忘记密码弹窗样式
.
forgot
-
password
-
content
{
text
-
align
:
center
;
...
...
zhiJianBusi/zjbPc/src/views/OpportunityManagement.vue
View file @
da7b0e0
...
...
@@ -15,7 +15,7 @@
<span
class=
"card-title"
>
总计
</span>
</div>
<div
class=
"card-content"
>
<div
class=
"card-value"
>
{{
stats
.
total
}}
</div>
<div
class=
"card-value"
>
{{
stats
Store
.
totalCount
}}
</div>
</div>
<img
src=
"../assets/icons/ad61df2f28f6b51d5f386829473ab1b592fd14e0.png"
...
...
@@ -30,7 +30,7 @@
<span
class=
"card-title"
>
成单待审核
</span>
</div>
<div
class=
"card-content"
>
<div
class=
"card-value"
>
{{
stats
.
pendingReview
}}
</div>
<div
class=
"card-value"
>
{{
stats
Store
.
pendingAuditCount
}}
</div>
</div>
<img
src=
"../assets/icons/1b66793397a66bf54212d266505eb98e3377a354.png"
...
...
@@ -45,7 +45,7 @@
<span
class=
"card-title"
>
处理中
</span>
</div>
<div
class=
"card-content"
>
<div
class=
"card-value text-[rgb(10,10,10)]"
>
{{
stats
.
processing
}}
</div>
<div
class=
"card-value text-[rgb(10,10,10)]"
>
{{
stats
Store
.
processingCount
}}
</div>
</div>
<img
src=
"../assets/icons/eb05b4822d67dff64c5712d0777f069d241ecc13.png"
...
...
@@ -60,7 +60,7 @@
<span
class=
"card-title"
>
已完结
</span>
</div>
<div
class=
"card-content"
>
<div
class=
"card-value text-[rgb(10,10,10)]"
>
{{
stats
.
completed
}}
</div>
<div
class=
"card-value text-[rgb(10,10,10)]"
>
{{
stats
Store
.
completedCount
}}
</div>
</div>
<img
src=
"../assets/icons/a8703fd7713f624a505aed79bcf30eb245a86d9c.png"
...
...
@@ -99,20 +99,37 @@
<div
class=
"filter-content"
>
<el-row
:gutter=
"24"
>
<el-col
:span=
"4"
>
<el-col
:span=
"3"
>
<div
class=
"search-wrapper"
>
<el-input
v-model=
"formData.customerPhone"
placeholder=
"用户账号"
style=
"padding-left: 0;"
/>
</div>
</el-col>
<el-col
:span=
"3"
>
<div
class=
"search-wrapper"
>
<el-input
v-model=
"searchTerm"
placeholder=
"用户账号/师傅名字/营销人员名字"
v-model=
"formData.maintenanceStaffName"
placeholder=
"师傅名字"
style=
"padding-left: 0;"
/>
</div>
</el-col>
<el-col
:span=
"3"
>
<div
class=
"search-wrapper"
>
<el-input
v-model=
"formData.marketingStaffName"
placeholder=
"营销人员名字"
style=
"padding-left: 0;"
@
keyup
.
enter
.
native=
"handleFilter"
/>
</div>
</el-col>
<el-col
:span=
"
6
"
>
<el-col
:span=
"
7
"
>
<el-date-picker
v-model=
"
dateRang
e"
v-model=
"
formData.createTim
e"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
...
...
@@ -125,32 +142,16 @@
<el-col
:span=
"3"
>
<el-select
v-model=
"
selectedS
tatus"
v-model=
"
formData.s
tatus"
placeholder=
"选择状态"
clearable
>
<el-option
label=
"全部状态"
value=
"all"
></el-option>
<el-option
v-for=
"(status, key) in statusMap"
:key=
"key"
:label=
"status.label"
:value=
"key"
></el-option>
</el-select>
</el-col>
<el-col
:span=
"3"
>
<el-select
v-model=
"selectedTag"
placeholder=
"商机标签"
clearable
>
<el-option
label=
"全部标签"
value=
"all"
></el-option>
<el-option
v-for=
"tag in opportunityTags"
:key=
"tag"
:label=
"tag"
:value=
"tag"
v-for=
"item in statusStore"
:key=
"item.key"
:label=
"item.value"
:value=
"item.key"
></el-option>
</el-select>
</el-col>
...
...
@@ -210,7 +211,7 @@
<!-- 商机列表 -->
<el-card
class=
"list-card"
>
<div
class=
"list-header"
>
<h3
class=
"list-title"
>
商机列表
(
{{
filteredOpportunities
.
length
}}
)
</h3>
<h3
class=
"list-title"
>
商机列表
</h3>
<div
class=
"list-actions"
>
<el-button
size=
"small"
...
...
@@ -225,18 +226,18 @@
<div
class=
"list-content"
>
<el-table
:data=
"
paginatedOpportunities
"
border
:data=
"
tableData
"
border
v-loading=
"loading"
>
<el-table-column
prop=
"id"
label=
"商机ID"
width=
"150"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"创建时间"
width=
"180"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"创建时间"
:formatter=
"timeRender"
width=
"180"
></el-table-column>
<el-table-column
prop=
"customerAddress"
label=
"客户地址"
width=
"230"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop=
"customerPhone"
label=
"用户账号"
width=
"120"
></el-table-column>
<el-table-column
prop=
"
installer
Name"
label=
"装维师傅姓名"
width=
"120"
></el-table-column>
<el-table-column
prop=
"
assignedTo
Name"
label=
"营销人员姓名"
width=
"120"
></el-table-column>
<el-table-column
prop=
"
maintenanceStaff
Name"
label=
"装维师傅姓名"
width=
"120"
></el-table-column>
<el-table-column
prop=
"
marketingStaff
Name"
label=
"营销人员姓名"
width=
"120"
></el-table-column>
<el-table-column
label=
"商机标签"
width=
"250"
>
<template
slot-scope=
"scope"
>
<el-tag
v-for=
"tag in scope.row.tags"
v-for=
"tag in scope.row.tag
Name
s"
:key=
"tag"
size=
"mini"
type=
"info"
...
...
@@ -246,17 +247,8 @@
</el-tag>
</
template
>
</el-table-column>
<el-table-column
label=
"当前状态"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<el-tag
:type=
"getStatusType(scope.row.status)"
size=
"mini"
>
{{
statusMap
[
scope
.
row
.
status
].
label
}}
</el-tag>
</
template
>
</el-table-column>
<el-table-column
prop=
"lastFollowTime"
label=
"最新跟进"
width=
"180"
></el-table-column>
<el-table-column
label=
"当前状态"
width=
"100"
prop=
"status"
:formatter=
"statusRender"
></el-table-column>
<el-table-column
prop=
"latestFollowTime"
label=
"最新跟进"
width=
"180"
:formatter=
"timeRender"
></el-table-column>
<el-table-column
label=
"操作"
min-width=
"200"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"checkDetail(scope.row)"
>
查看详情
</el-button>
...
...
@@ -270,11 +262,11 @@
<el-pagination
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"currentPage"
:current-page=
"
pageStore.
currentPage"
:page-sizes=
"[20, 50, 100]"
:page-size=
"pageSize"
:page-size=
"pageS
tore.pageS
ize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"
filteredOpportunities.length
"
:total=
"
pageStore.total
"
>
</el-pagination>
</div>
...
...
@@ -285,8 +277,7 @@
<el-dialog
title=
"新增商机"
:visible
.
sync=
"isCreateDialogOpen"
width=
"500px"
>
width=
"500px"
>
<el-form
:model=
"newOpportunity"
:rules=
"opportunityRules"
ref=
"opportunityForm"
label-width=
"120px"
>
<el-form-item
label=
"用户账号"
prop=
"customerAccount"
required
>
<el-input
v-model=
"newOpportunity.customerAccount"
placeholder=
"请输入用户账号"
></el-input>
...
...
@@ -327,8 +318,7 @@
<el-dialog
title=
"商机审核"
:visible
.
sync=
"isAuditDialogOpen"
width=
"500px"
>
width=
"500px"
>
<el-form
:model=
"auditForm"
label-width=
"100px"
>
<el-form-item
label=
"审核结果"
required
>
<el-radio-group
v-model=
"auditForm.result"
>
...
...
@@ -370,7 +360,6 @@ const statusMap = {
const
opportunityTags
=
[
'网络升级'
,
'家庭安防'
,
'智能家居'
,
'宽带套餐'
,
'移动套餐'
,
'融合套餐'
,
'企业业务'
]
// 营销人员列表
const
mockSalesPersons
=
[
{
id
:
'SALE001'
,
name
:
'张营销'
,
gridName
:
'A网格'
,
phone
:
'13812345001'
},
...
...
@@ -380,100 +369,23 @@ const mockSalesPersons = [
{
id
:
'SALE005'
,
name
:
'王营销'
,
gridName
:
'B网格'
,
phone
:
'13812345005'
}
]
// 生成模拟商机数据的函数
function
generateMockOpportunities
()
{
const
opportunities
=
[]
const
regions
=
[
'南京市玄武区'
,
'南京市秦淮区'
,
'南京市建邺区'
,
'南京市鼓楼区'
]
const
grids
=
[
'A网格'
,
'B网格'
,
'C网格'
,
'D网格'
,
'E网格'
]
const
streets
=
[
'中山路'
,
'太平北路'
,
'珠江路'
,
'北京东路'
,
'龙蟠中路'
,
'成贤街'
,
'锁金村'
,
'进香河路'
,
'新街口'
,
'汉中路'
]
const
installers
=
[
{
id
:
'INS001'
,
name
:
'王师傅'
,
phone
:
'186****2001'
},
{
id
:
'INS002'
,
name
:
'李师傅'
,
phone
:
'186****2002'
},
{
id
:
'INS003'
,
name
:
'赵师傅'
,
phone
:
'186****2003'
},
{
id
:
'INS004'
,
name
:
'孙师傅'
,
phone
:
'186****2004'
},
{
id
:
'INS005'
,
name
:
'周师傅'
,
phone
:
'186****2005'
},
{
id
:
'INS006'
,
name
:
'吴师傅'
,
phone
:
'186****2006'
},
{
id
:
'INS007'
,
name
:
'郑师傅'
,
phone
:
'186****2007'
},
{
id
:
'INS008'
,
name
:
'钱师傅'
,
phone
:
'186****2008'
},
]
const
sales
=
[
{
id
:
'SALE001'
,
name
:
'张营销'
,
gridName
:
'A网格'
},
{
id
:
'SALE002'
,
name
:
'陈营销'
,
gridName
:
'B网格'
},
{
id
:
'SALE003'
,
name
:
'刘营销'
,
gridName
:
'C网格'
},
{
id
:
'SALE004'
,
name
:
'赵营销'
,
gridName
:
'A网格'
},
{
id
:
'SALE005'
,
name
:
'王营销'
,
gridName
:
'B网格'
}
]
const
statuses
=
[
'assigned'
,
'following'
,
'completed'
,
'closed'
]
const
descriptions
=
[
'用户反馈家中网络卡顿,希望升级宽带套餐'
,
'用户询问移动手机号和宽带的融合套餐优惠'
,
'用户对家庭监控摄像头很感兴趣'
,
'用户对当前手机套餐不满意,希望更换更优惠的套餐'
,
'小型公司需要企业宽带和通信解决方案'
,
'用户希望安装更高速的宽带并了解智能家居方案'
,
'用户咨询家庭安防监控系统的安装和费用'
,
'客户反馈网速慢,需要技术支持'
,
'用户想了解最新的5G套餐'
,
'家里准备装修,咨询智能家居全套方案'
]
for
(
let
i
=
1
;
i
<=
65
;
i
++
)
{
const
installer
=
installers
[
Math
.
floor
(
Math
.
random
()
*
installers
.
length
)]
const
sales_person
=
sales
[
Math
.
floor
(
Math
.
random
()
*
sales
.
length
)]
const
status
=
statuses
[
Math
.
floor
(
Math
.
random
()
*
statuses
.
length
)]
const
region
=
regions
[
Math
.
floor
(
Math
.
random
()
*
regions
.
length
)]
const
grid
=
grids
[
Math
.
floor
(
Math
.
random
()
*
grids
.
length
)]
const
street
=
streets
[
Math
.
floor
(
Math
.
random
()
*
streets
.
length
)]
// 随机选择1-3个标签
const
numTags
=
Math
.
floor
(
Math
.
random
()
*
3
)
+
1
const
shuffledTags
=
[...
opportunityTags
].
sort
(()
=>
Math
.
random
()
-
0.5
)
const
tags
=
shuffledTags
.
slice
(
0
,
numTags
)
// 生成日期(最近30天内)
const
daysAgo
=
Math
.
floor
(
Math
.
random
()
*
30
)
const
createDate
=
new
Date
()
createDate
.
setDate
(
createDate
.
getDate
()
-
daysAgo
)
const
createTime
=
`
${
createDate
.
getFullYear
()}
-
${
String
(
createDate
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
)}
-
${
String
(
createDate
.
getDate
()).
padStart
(
2
,
'0'
)}
${
String
(
createDate
.
getHours
()).
padStart
(
2
,
'0'
)}
:
${
String
(
createDate
.
getMinutes
()).
padStart
(
2
,
'0'
)}
:
${
String
(
createDate
.
getSeconds
()).
padStart
(
2
,
'0'
)}
`
const
opportunity
=
{
id
:
`OP2025
${
String
(
10000
+
i
).
slice
(
-
5
)}
`
,
createTime
,
customerAddress
:
`
${
region
}${
street
}${
Math
.
floor
(
Math
.
random
()
*
200
)
+
1
}
**号`
,
installerId
:
installer
.
id
,
installerName
:
installer
.
name
,
installerPhone
:
installer
.
phone
,
tags
,
status
,
assignedTo
:
sales_person
.
id
,
assignedToName
:
sales_person
.
name
,
customerPhone
:
`13
${
Math
.
floor
(
Math
.
random
()
*
10
)}
****
${
String
(
Math
.
floor
(
Math
.
random
()
*
10000
)).
padStart
(
4
,
'0'
)}
`
,
description
:
descriptions
[
Math
.
floor
(
Math
.
random
()
*
descriptions
.
length
)],
region
,
gridName
:
grid
,
}
// 如果状态是 following 或 completed,添加跟进时间
if
(
status
===
'following'
||
status
===
'completed'
||
status
===
'closed'
)
{
const
followDate
=
new
Date
(
createDate
)
followDate
.
setHours
(
followDate
.
getHours
()
+
Math
.
floor
(
Math
.
random
()
*
48
))
opportunity
.
lastFollowTime
=
`
${
followDate
.
getFullYear
()}
-
${
String
(
followDate
.
getMonth
()
+
1
).
padStart
(
2
,
'0'
)}
-
${
String
(
followDate
.
getDate
()).
padStart
(
2
,
'0'
)}
${
String
(
followDate
.
getHours
()).
padStart
(
2
,
'0'
)}
:
${
String
(
followDate
.
getMinutes
()).
padStart
(
2
,
'0'
)}
:
${
String
(
followDate
.
getSeconds
()).
padStart
(
2
,
'0'
)}
`
}
opportunities
.
push
(
opportunity
)
}
return
opportunities
.
sort
((
a
,
b
)
=>
new
Date
(
b
.
createTime
).
getTime
()
-
new
Date
(
a
.
createTime
).
getTime
())
}
export
default
{
name
:
'OpportunityManagement'
,
data
()
{
return
{
busiLabelStore
:
[],
formData
:{
customerPhone
:
'18277777766'
,
maintenanceStaffName
:
''
,
marketingStaffName
:
''
,
createTime
:
''
,
status
:
''
,
areaCode
:
''
},
addressStore
:{
city
:
''
,
cityName
:
''
,
cityArr
:
this
.
addressStore
Data
,
cityArr
:
this
.
storesData
.
address
Data
,
county
:
''
,
countyName
:
''
,
countyArr
:
[],
...
...
@@ -489,12 +401,37 @@ export default {
grid
:
''
,
gridName
:
''
,
},
statsStore
:{},
statusStore
:[],
tableData
:
[],
pageStore
:{
currentPage
:
1
,
pageSize
:
20
,
total
:
0
},
newOpportunity
:
{
customerAccount
:
''
,
address
:
{
city
:
''
,
cityName
:
''
,
cityArr
:
this
.
storesData
.
choAddressData
,
county
:
''
,
countyName
:
''
,
countyArr
:
[],
streets
:
''
,
streetsName
:
''
,
streetsArr
:
[],
detail
:
''
},
installerWorkId
:
''
,
businessType
:
''
,
description
:
''
},
loading
:
false
,
statusMap
,
opportunityTags
,
mockSalesPersons
,
opportunities
:
generateMockOpportunities
(),
activeTab
:
'all'
,
searchTerm
:
''
,
selectedRegion
:
''
,
...
...
@@ -502,13 +439,7 @@ export default {
selectedTag
:
''
,
dateRange
:
[],
isCreateDialogOpen
:
false
,
newOpportunity
:
{
customerAccount
:
''
,
customerAddress
:
''
,
installerWorkId
:
''
,
businessType
:
''
,
description
:
''
},
opportunityRules
:
{
customerAccount
:
[
{
required
:
true
,
message
:
'请输入用户账号'
,
trigger
:
'blur'
}
...
...
@@ -533,102 +464,20 @@ export default {
},
created
(){
this
.
setAddressShow
()
this
.
queryBusi
()
this
.
queryStatistics
()
this
.
queryStatus
()
this
.
queryAllBusiLabel
()
this
.
apiReq
.
queryAllArea
({
areaLevel
:
1
,
parentAreaCode
:
''
})
},
computed
:
{
...
mapGetters
([
'user'
]),
// 根据用户权限过滤商机数据
filteredByPermission
()
{
if
(
!
this
.
user
)
return
[]
// 根据用户角色过滤数据
switch
(
this
.
user
.
role
)
{
case
'grid_manager'
:
// 网格管理员只能看到自己网格的商机
return
this
.
opportunities
.
filter
(
opp
=>
opp
.
gridName
===
this
.
user
.
region
.
split
(
'区'
)[
1
]
)
case
'county_admin'
:
// 区县管理员能看到整个区县的商机
return
this
.
opportunities
.
filter
(
opp
=>
opp
.
region
.
includes
(
this
.
user
.
region
)
)
case
'city_admin'
:
// 地市管理员能看到整个地市的商机
return
this
.
opportunities
.
filter
(
opp
=>
opp
.
region
.
includes
(
this
.
user
.
region
)
)
case
'province_admin'
:
// 省级管理员能看到所有商机
return
this
.
opportunities
default
:
return
[]
}
},
// 根据筛选条件过滤商机
filteredOpportunities
()
{
let
filtered
=
this
.
filteredByPermission
// 按状态标签过滤
if
(
this
.
activeTab
!==
'all'
)
{
const
statusFilters
=
{
'processing'
:
[
'assigned'
,
'following'
],
'completed'
:
[
'completed'
,
'closed'
]
}
filtered
=
filtered
.
filter
(
opp
=>
statusFilters
[
this
.
activeTab
]?.
includes
(
opp
.
status
)
)
}
// 搜索过滤
if
(
this
.
searchTerm
)
{
filtered
=
filtered
.
filter
(
opp
=>
opp
.
id
.
toLowerCase
().
includes
(
this
.
searchTerm
.
toLowerCase
())
||
opp
.
customerAddress
.
toLowerCase
().
includes
(
this
.
searchTerm
.
toLowerCase
())
||
opp
.
installerName
.
toLowerCase
().
includes
(
this
.
searchTerm
.
toLowerCase
())
||
opp
.
installerPhone
.
toLowerCase
().
includes
(
this
.
searchTerm
.
toLowerCase
())
||
(
opp
.
assignedToName
&&
opp
.
assignedToName
.
toLowerCase
().
includes
(
this
.
searchTerm
.
toLowerCase
()))
)
}
// 其他筛选条件
if
(
this
.
selectedRegion
&&
this
.
selectedRegion
!==
'all'
)
{
filtered
=
filtered
.
filter
(
opp
=>
opp
.
region
.
includes
(
this
.
selectedRegion
))
}
if
(
this
.
selectedStatus
&&
this
.
selectedStatus
!==
'all'
)
{
filtered
=
filtered
.
filter
(
opp
=>
opp
.
status
===
this
.
selectedStatus
)
}
if
(
this
.
selectedTag
&&
this
.
selectedTag
!==
'all'
)
{
filtered
=
filtered
.
filter
(
opp
=>
opp
.
tags
.
includes
(
this
.
selectedTag
))
}
// 日期范围过滤
if
(
this
.
dateRange
&&
this
.
dateRange
.
length
===
2
)
{
const
[
start
,
end
]
=
this
.
dateRange
filtered
=
filtered
.
filter
(
opp
=>
{
const
oppDate
=
new
Date
(
opp
.
createTime
.
split
(
' '
)[
0
])
const
startDate
=
new
Date
(
start
)
const
endDate
=
new
Date
(
end
)
return
oppDate
>=
startDate
&&
oppDate
<=
endDate
})
}
return
filtered
},
// 分页数据
paginatedOpportunities
()
{
const
startIndex
=
(
this
.
currentPage
-
1
)
*
this
.
pageSize
const
endIndex
=
startIndex
+
this
.
pageSize
return
this
.
filteredOpportunities
.
slice
(
startIndex
,
endIndex
)
},
// 统计数据
stats
()
{
const
total
=
this
.
filteredByPermission
.
length
const
pendingReview
=
this
.
filteredByPermission
.
filter
(
o
=>
o
.
status
===
'completed'
).
length
const
processing
=
this
.
filteredByPermission
.
filter
(
o
=>
[
'assigned'
,
'following'
].
includes
(
o
.
status
)).
length
const
completed
=
this
.
filteredByPermission
.
filter
(
o
=>
[
'completed'
,
'closed'
].
includes
(
o
.
status
)).
length
return
{
total
,
pendingReview
,
processing
,
completed
}
},
// 是否有筛选条件
hasFilters
()
{
return
this
.
searchTerm
||
...
...
@@ -639,6 +488,22 @@ export default {
}
},
methods
:
{
queryAllBusiLabel
(){
this
.
apiReq
.
queryBusiLabel
({
pageNum
:
1
,
pageSize
:
20
,
}).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
busiLabelStore
=
res
.
data
.
records
}
})
},
timeRender
(
row
,
column
){
return
this
.
common
.
detailTime
(
new
Date
(
row
[
column
.
property
]).
getTime
())
},
statusRender
(
row
,
column
){
return
this
.
common
.
globalRender
(
row
.
status
,
this
.
statusStore
)
},
setAddressShow
(){
let
ad
=
this
.
addressStore
let
gd
=
this
.
getData
...
...
@@ -692,6 +557,62 @@ export default {
}
})
},
queryBusi
(){
let
d
=
this
.
formData
if
(
d
.
createTime
)
{
d
.
startDate
=
new
Date
(
d
.
createTime
[
0
]).
getTime
()
d
.
endDate
=
new
Date
(
d
.
createTime
[
1
]).
getTime
()
+
24
*
60
*
60
*
1000
-
1000
}
else
{
d
.
startDate
=
''
d
.
endDate
=
''
}
this
.
apiReq
.
queryAllBusi
({
pageNum
:
1
,
pageSize
:
20
,
...
d
}).
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
tableData
=
res
.
data
.
records
this
.
pageStore
.
total
=
res
.
total
}
else
{
this
.
$message
.
error
(
res
.
message
)
}
})
},
handleSizeChange
(
size
)
{
this
.
pageSize
=
size
this
.
currentPage
=
1
this
.
queryBusi
()
},
handleCurrentChange
(
page
)
{
this
.
currentPage
=
page
this
.
queryBusi
()
},
queryStatistics
(){
this
.
apiReq
.
queryAllBusiStatistics
().
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
statsStore
=
res
.
data
}
})
},
queryStatus
(){
this
.
apiReq
.
queryBusiStatus
().
then
(
res
=>
{
if
(
res
.
code
==
200
){
this
.
statusStore
=
res
.
data
}
})
},
getStatusType
(
status
)
{
const
typeMap
=
{
'assigned'
:
'info'
,
...
...
@@ -705,6 +626,8 @@ export default {
handleFilter
()
{
// 重新计算筛选结果
this
.
currentPage
=
1
this
.
queryBusi
()
},
clearFilters
()
{
this
.
searchTerm
=
''
...
...
@@ -729,48 +652,7 @@ export default {
return
}
// 生成新的商机ID
const
newId
=
'OP'
+
new
Date
().
toISOString
().
slice
(
0
,
10
).
replace
(
/-/g
,
''
)
+
String
(
Math
.
floor
(
Math
.
random
()
*
100
)).
padStart
(
2
,
'0'
)
// 模拟获取装维师傅信息
const
installerName
=
`装维师傅
${
this
.
newOpportunity
.
installerWorkId
.
slice
(
-
2
)}
`
// 创建新商机对象
const
createdOpportunity
=
{
id
:
newId
,
createTime
:
new
Date
().
toLocaleString
(
'zh-CN'
),
customerAddress
:
this
.
newOpportunity
.
customerAddress
,
installerId
:
this
.
newOpportunity
.
installerWorkId
,
installerName
:
installerName
,
installerPhone
:
'138****'
+
Math
.
floor
(
Math
.
random
()
*
10000
).
toString
().
padStart
(
4
,
'0'
),
customerPhone
:
this
.
newOpportunity
.
customerAccount
,
tags
:
this
.
newOpportunity
.
businessType
?
[
this
.
newOpportunity
.
businessType
]
:
[],
status
:
'assigned'
,
assignedTo
:
''
,
assignedToName
:
''
,
description
:
this
.
newOpportunity
.
description
,
region
:
this
.
user
?.
region
||
'南京市玄武区'
,
gridName
:
this
.
user
?.
region
?.
split
(
'区'
)[
1
]
||
'A网格'
,
lastFollowTime
:
''
}
// 添加到商机列表
this
.
opportunities
.
unshift
(
createdOpportunity
)
// 重置表单
this
.
newOpportunity
=
{
customerAccount
:
''
,
customerAddress
:
''
,
installerWorkId
:
''
,
businessType
:
''
,
description
:
''
}
// 关闭弹窗
this
.
isCreateDialogOpen
=
false
this
.
$message
.
success
(
'商机创建成功'
)
}
})
},
...
...
@@ -806,13 +688,6 @@ export default {
result
:
''
,
reason
:
''
}
},
handleSizeChange
(
size
)
{
this
.
pageSize
=
size
this
.
currentPage
=
1
},
handleCurrentChange
(
page
)
{
this
.
currentPage
=
page
}
}
}
...
...
zhiJianBusi/zjbPc/vue.config.js
View file @
da7b0e0
...
...
@@ -8,12 +8,19 @@ module.exports = {
lintOnSave
:
process
.
env
.
NODE_ENV
===
'development'
,
productionSourceMap
:
false
,
devServer
:
{
port
:
8080
,
open
:
true
,
overlay
:
{
warnings
:
false
,
errors
:
true
proxy
:
{
'/compass'
:
{
target
:
'http://39.107.104.220:8899'
,
//target: 'https://hall.51xinpai.cn',
changeOrigin
:
true
,
pathRewrite
:
{
'^/compass'
:
'compass'
}
}
},
host
:
'0.0.0.0'
,
port
:
'8080'
,
open
:
false
},
configureWebpack
:
{
resolve
:
{
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment