Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
founder_vue
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
founder_vue
Commits
9476c303
Commit
9476c303
authored
Oct 27, 2023
by
xue_wengang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
区域线索分析
parent
a12d28c1
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
578 additions
and
41 deletions
+578
-41
src/components/ptCxForm_components.vue
+0
-1
src/router/modules/brainPhotoXxxx.js
+17
-1
src/views/brainPhotoxxxx/brainGzdxzhfx.vue
+33
-6
src/views/brainPhotoxxxx/brainQyxsajfx.vue
+183
-0
src/views/brainPhotoxxxx/brainQyxsfx.vue
+156
-33
src/views/brainPhotoxxxx/brainQyxsryfx.vue
+189
-0
No files found.
src/components/ptCxForm_components.vue
View file @
9476c303
...
...
@@ -3529,7 +3529,6 @@ export default {
//includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
}
});
_this
.
propdefaultFormThead
=
[];
_this
.
$set
(
_this
.
propdefaultFormThead
,
0
,
newObj
);
//将所有默认传过来的表格清空,匹配到的赋值
_this
.
propdefaultFormThead
=
_this
.
selectedPropAllformThead_
.
filter
(
...
...
src/router/modules/brainPhotoXxxx.js
View file @
9476c303
...
...
@@ -12,10 +12,26 @@ const menuLayouts = [
path
:
"/brainQyxsfx"
,
name
:
"brainQyxsfx"
,
meta
:
{
title
:
'
区域线索
分析'
title
:
'
线索时空特征
分析'
},
component
:
()
=>
import
(
"@/views/brainPhotoxxxx/brainQyxsfx.vue"
)
},
{
path
:
"/brainQyxsajfx"
,
name
:
"brainQyxsajfx"
,
meta
:
{
title
:
'线索与案件时空拟合分析'
},
component
:
()
=>
import
(
"@/views/brainPhotoxxxx/brainQyxsajfx.vue"
)
},
{
path
:
"/brainQyxsryfx"
,
name
:
"brainQyxsryfx"
,
meta
:
{
title
:
'线索与人员时空拟合分析'
},
component
:
()
=>
import
(
"@/views/brainPhotoxxxx/brainQyxsryfx.vue"
)
},
];
export
default
{
...
...
src/views/brainPhotoxxxx/brainGzdxzhfx.vue
View file @
9476c303
...
...
@@ -24,9 +24,10 @@ export default {
type
:
"text"
,
placeholder
:
"证件号码"
,
col
:
"3"
,
rules
:
[
{
required
:
true
,
message
:
"请输入证件号码"
,
trigger
:
"blur"
},
],
rules
:
rules
.
emptyAbleIdentityBT
,
// rules: [
// { required: true, emptyAbleIdentityBT message: "请输入证件号码", trigger: "blur" },
// ],
},
],
form
:
{
...
...
@@ -58,7 +59,33 @@ export default {
newAuth
:
"M01"
,
index
:
"brainQyxsfx"
,
className
:
"iconfont icongongnengfuwu"
,
hasChildren
:
false
,
hasChildren
:
true
,
children
:
[
{
id
:
"brainQyxsfx"
,
label
:
"线索时空特征分析"
,
index
:
"brainQyxsfx"
,
auth
:
"M0101"
,
className
:
"iconfont iconrizhi"
,
disabled
:
false
,
},
{
id
:
"brainQyxsajfx"
,
label
:
"线索与案件时空拟合分析"
,
index
:
"brainQyxsajfx"
,
auth
:
"M0101"
,
className
:
"iconfont iconrizhi"
,
disabled
:
false
,
},
{
id
:
"brainQyxsryfx"
,
label
:
"线索与人员时空拟合分析"
,
index
:
"brainQyxsryfx"
,
auth
:
"M0101"
,
className
:
"iconfont iconrizhi"
,
disabled
:
false
,
},
],
},
{
id
:
"dwcx"
,
...
...
@@ -94,8 +121,8 @@ export default {
type
:
"KyRy"
,
kybh
:
this
.
form
.
zjhm
,
userId
:
idcard
,
username
:
userInfo
.
userName
,
trueName
:
userInfo
.
userN
ame
,
username
:
userInfo
.
policemanid
,
trueName
:
userInfo
.
realn
ame
,
identitycard
:
userInfo
.
identitycard
,
unitcode
:
userInfo
.
unitcode
,
unitname
:
userInfo
.
unitname
,
...
...
src/views/brainPhotoxxxx/brainQyxsajfx.vue
0 → 100644
View file @
9476c303
<
template
>
<div>
<SearchGraph
:formProp=
"formProp"
:formData=
"form"
placeholder=
"请输入线索"
@
goDetail=
"goDetail"
v-if=
"isShow"
/>
<div
class=
"tableWrap"
v-else
>
<disv
class=
"line"
>
<div>
分析结果
</div>
<div
class=
"export"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"exportFile"
>
导出
</el-button>
</div>
</disv>
<el-table
:data=
"tableData"
style=
"width: 100%"
border
>
<el-table-column
align=
"center"
:min-width=
"columnTitle.width"
v-for=
"columnTitle in cxDefaultFormThead"
:prop=
"columnTitle.prop"
:key=
"columnTitle.label"
:label=
"columnTitle.label"
>
<template
slot-scope=
"scope"
>
<span
v-html=
"scope.row[columnTitle.prop]"
></span>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</template>
<
script
>
import
SearchGraph
from
"@c/searchRight.vue"
;
export
default
{
components
:
{
SearchGraph
},
data
()
{
return
{
header
:
"线索信息综合分析子系统"
,
pages
:
"djajzb"
,
formProp
:
[
{
id
:
"zjhm"
,
type
:
"text"
,
placeholder
:
"线索名称"
,
col
:
"3"
,
},
],
form
:
{
zjhm
:
""
,
},
Menu
:
[
{
id
:
"brainQyxsfx"
,
label
:
"线索时空特征分析"
,
index
:
"brainQyxsfx"
,
auth
:
"M0101"
,
className
:
"iconfont iconrizhi"
,
disabled
:
false
,
},
],
isShow
:
true
,
tableData
:
[],
cxDefaultFormThead
:
[
{
label
:
"案件名称"
,
prop
:
"ajmc"
,
},
{
label
:
"案件编号"
,
prop
:
"asjbh"
,
},
{
label
:
"案发地狱空间"
,
prop
:
"dy"
,
},
{
label
:
"案发时间"
,
prop
:
"sj"
,
},
{
label
:
"案件状态"
,
prop
:
"ajzt"
,
},
],
};
},
created
()
{
this
.
$store
.
commit
(
"user/SET_Menu"
,
this
.
Menu
);
},
methods
:
{
exportFile
()
{
let
self
=
this
,
tHeader
=
[],
filterVal
=
[];
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
"正在导出..."
,
spinner
:
"el-icon-loading"
,
background
:
"rgba(255, 255, 255, 0.7)"
,
});
tHeader
=
[];
filterVal
=
[];
self
.
cxDefaultFormThead
.
forEach
((
val
)
=>
{
tHeader
.
push
(
val
.
label
);
filterVal
.
push
(
val
.
prop
);
});
require
.
ensure
([],
()
=>
{
const
{
export_json_to_excel
}
=
require
(
"../../utils/Export2Excel"
);
const
list
=
this
.
tableData
;
const
data
=
self
.
formatJson
(
filterVal
,
list
);
// debugger;
export_json_to_excel
(
tHeader
,
data
,
'线索与案件时空拟合分析'
);
});
loading
.
close
();
},
formatJson
(
filterVal
,
jsonData
)
{
let
arr
=
[];
jsonData
.
map
((
v
)
=>
{
let
arr1
=
[];
filterVal
.
map
((
j
)
=>
{
if
(
j
.
indexOf
(
","
)
!=
-
1
)
{
let
arr
=
j
.
split
(
","
);
let
data
=
""
;
for
(
let
i
=
0
;
i
<=
arr
.
length
-
1
;
i
++
)
{
data
+=
arr
[
i
].
split
(
":"
)[
0
]
+
":"
+
v
[
arr
[
i
].
split
(
":"
)[
1
]];
}
arr1
.
push
(
data
);
}
else
{
arr1
.
push
(
v
[
j
]);
}
});
arr
.
push
(
arr1
);
});
return
arr
;
},
goDetail
()
{
this
.
isShow
=
false
;
let
sjArr
=
[
"清晨"
,
"早晨"
,
"中午"
,
"下午"
,
"傍晚"
,
"深夜"
,
"凌晨"
];
let
dyArr
=
[
"城区"
,
"郊区"
,
"农村"
];
let
skArr
=
[
"盗窃案件高危"
,
"诈骗案高危"
,
"抢劫案高危"
];
let
dyStr
=
dyArr
[
parseInt
(
Math
.
random
()
*
2
)]
let
obj
=
{
ajmc
:
'多吉盗窃案'
,
asjbh
:
"A5402231700002023060001"
,
dy
:
dyStr
,
sj
:
sjArr
[
parseInt
(
Math
.
random
()
*
2
)],
ajzt
:
"立案"
};
this
.
tableData
.
push
(
obj
);
obj
=
{
ajmc
:
'罗桑抢劫案'
,
asjbh
:
"A5402231500002022100005"
,
dy
:
dyStr
,
sj
:
sjArr
[
parseInt
(
Math
.
random
()
*
2
)],
ajzt
:
"侦查终结"
};
this
.
tableData
.
push
(
obj
);
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.tableWrap
{
background
:
#ffffff
;
border
:
1px
solid
#eaeaea
;
box-shadow
:
none
;
opacity
:
1
;
border-radius
:
4px
;
padding
:
20px
;
margin
:
20px
;
.line
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
5px
;
}
}
</
style
>
src/views/brainPhotoxxxx/brainQyxsfx.vue
View file @
9476c303
...
...
@@ -3,15 +3,43 @@
<SearchGraph
:formProp=
"formProp"
:formData=
"form"
placeholder=
"请输入
证件号码
"
placeholder=
"请输入
线索
"
@
goDetail=
"goDetail"
v-if=
"isShow"
/>
<div
class=
"tableWrap"
v-else
>
<div
class=
"line"
>
<div>
分析结果
</div>
<div
class=
"export"
>
线索分析
<el-checkbox-group
v-model=
"checkList"
@
change=
"changeVal"
>
<el-checkbox
label=
"sj"
>
时间分布特征
</el-checkbox>
<el-checkbox
label=
"dy"
>
地域(空间)分布特征
</el-checkbox>
<el-checkbox
label=
"sk"
>
时空关系分布特征
</el-checkbox>
</el-checkbox-group>
<el-button
type=
"primary"
size=
"mini"
@
click=
"exportFile"
>
导出
</el-button>
</div>
</div>
<el-table
:data=
"tableData"
style=
"width: 100%"
border
ref=
"tableRef"
>
<el-table-column
align=
"center"
:min-width=
"columnTitle.width"
v-for=
"columnTitle in cxDefaultFormThead"
:prop=
"columnTitle.prop"
:key=
"columnTitle.label"
:label=
"columnTitle.label"
>
<template
slot-scope=
"scope"
>
<span
v-html=
"scope.row[columnTitle.prop]"
></span>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</template>
<
script
>
import
SearchGraph
from
"@c/searchRight.vue"
;
import
encrypt
from
"@/utils/encry.js"
;
import
base
from
"@/api/base"
;
export
default
{
components
:
{
SearchGraph
},
data
()
{
...
...
@@ -22,11 +50,8 @@ export default {
{
id
:
"zjhm"
,
type
:
"text"
,
placeholder
:
"
证件号码
"
,
placeholder
:
"
线索名称
"
,
col
:
"3"
,
rules
:
[
{
required
:
true
,
message
:
"请输入证件号码"
,
trigger
:
"blur"
},
],
},
],
form
:
{
...
...
@@ -35,47 +60,145 @@ export default {
Menu
:
[
{
id
:
"brainQyxsfx"
,
label
:
"
区域线索
分析"
,
label
:
"
线索时空特征
分析"
,
index
:
"brainQyxsfx"
,
auth
:
"M0101"
,
className
:
"iconfont iconrizhi"
,
disabled
:
false
,
},
],
isShow
:
true
,
tableData
:
[],
cxDefaultFormThead
:
[
{
label
:
"时间分布特征"
,
prop
:
"sj"
,
},
{
label
:
"地域(空间)分布特征"
,
prop
:
"dy"
,
},
{
label
:
"时空关系分布特征"
,
prop
:
"sk"
,
},
],
checkList
:
[
"sj"
,
"dy"
,
"sk"
],
};
},
created
()
{
this
.
$store
.
commit
(
"user/SET_Menu"
,
this
.
Menu
);
},
methods
:
{
goDetail
()
{
let
key
=
"maplogin"
+
encrypt
.
creattimeBumderNYR
(
new
Date
()).
split
(
"-"
).
join
(
""
);
let
vi
=
"map_vues"
+
encrypt
.
creattimeBumderNYR
(
new
Date
()).
split
(
"-"
).
join
(
""
);
let
skjm
=
encrypt
.
skEncrypt
(
JSON
.
parse
(
sessionStorage
.
getItem
(
"userInfo"
)).
identitycard
,
key
.
trim
(),
vi
.
trim
()
);
let
path
=
`
${
this
.
$baseUrl
.
alyIP9
}
/#/JumpPage/
${
this
.
form
.
zjhm
}
?sfzh=
${
skjm
}
`
;
window
.
open
(
path
,
"_blank"
);
changeVal
(
val
)
{
let
arr
=
[
{
label
:
"时间分布特征"
,
prop
:
"sj"
,
},
{
label
:
"地域(空间)分布特征"
,
prop
:
"dy"
,
},
{
label
:
"时空关系分布特征"
,
prop
:
"sk"
,
},
];
this
.
cxDefaultFormThead
=
[];
val
.
forEach
((
item
)
=>
{
arr
.
forEach
(
sub
=>
{
if
(
sub
.
prop
==
item
){
this
.
cxDefaultFormThead
.
push
(
sub
)
}
})
});
console
.
log
(
this
.
cxDefaultFormThead
);
debugger
this
.
$refs
.
tableRef
.
doLayout
();
},
toDetail
(
url
,
PARAMS
)
{
var
temp_form
=
document
.
createElement
(
"form"
);
temp_form
.
action
=
url
;
temp_form
.
target
=
"_blank"
;
temp_form
.
method
=
"post"
;
temp_form
.
style
.
display
=
"none"
;
for
(
var
x
in
PARAMS
)
{
var
opt
=
document
.
createElement
(
"textarea"
);
opt
.
name
=
x
;
opt
.
value
=
PARAMS
[
x
];
temp_form
.
appendChild
(
opt
);
exportFile
()
{
let
self
=
this
,
tHeader
=
[],
filterVal
=
[];
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
"正在导出..."
,
spinner
:
"el-icon-loading"
,
background
:
"rgba(255, 255, 255, 0.7)"
,
});
tHeader
=
[];
filterVal
=
[];
self
.
cxDefaultFormThead
.
forEach
((
val
)
=>
{
tHeader
.
push
(
val
.
label
);
filterVal
.
push
(
val
.
prop
);
});
require
.
ensure
([],
()
=>
{
const
{
export_json_to_excel
}
=
require
(
"../../utils/Export2Excel"
);
const
list
=
this
.
tableData
;
const
data
=
self
.
formatJson
(
filterVal
,
list
);
// debugger;
export_json_to_excel
(
tHeader
,
data
,
"线索时空特征分析"
);
});
loading
.
close
();
},
formatJson
(
filterVal
,
jsonData
)
{
let
arr
=
[];
jsonData
.
map
((
v
)
=>
{
let
arr1
=
[];
filterVal
.
map
((
j
)
=>
{
if
(
j
.
indexOf
(
","
)
!=
-
1
)
{
let
arr
=
j
.
split
(
","
);
let
data
=
""
;
for
(
let
i
=
0
;
i
<=
arr
.
length
-
1
;
i
++
)
{
data
+=
arr
[
i
].
split
(
":"
)[
0
]
+
":"
+
v
[
arr
[
i
].
split
(
":"
)[
1
]];
}
arr1
.
push
(
data
);
}
else
{
arr1
.
push
(
v
[
j
]);
}
});
arr
.
push
(
arr1
);
});
return
arr
;
},
goDetail
()
{
this
.
isShow
=
false
;
let
sjArr
=
[
"清晨"
,
"早晨"
,
"中午"
,
"下午"
,
"傍晚"
,
"深夜"
,
"凌晨"
];
let
dyArr
=
[
"城区"
,
"郊区"
,
"农村"
];
let
skArr
=
[
"盗窃案件高危"
,
"诈骗案高危"
,
"抢劫案高危"
];
for
(
let
index
=
0
;
index
<
2
;
index
++
)
{
let
obj
=
{
sj
:
sjArr
[
parseInt
(
Math
.
random
()
*
6
)],
dy
:
dyArr
[
parseInt
(
Math
.
random
()
*
2
)],
sk
:
skArr
[
parseInt
(
Math
.
random
()
*
2
)],
};
this
.
tableData
.
push
(
obj
);
}
document
.
body
.
appendChild
(
temp_form
);
temp_form
.
submit
();
},
},
mounted
()
{
this
.
goDetail
();
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.tableWrap
{
background
:
#ffffff
;
border
:
1px
solid
#eaeaea
;
box-shadow
:
none
;
opacity
:
1
;
border-radius
:
4px
;
padding
:
20px
;
margin
:
20px
;
.line
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
5px
;
}
}
</
style
>
src/views/brainPhotoxxxx/brainQyxsryfx.vue
0 → 100644
View file @
9476c303
<
template
>
<div>
<SearchGraph
:formProp=
"formProp"
:formData=
"form"
placeholder=
"请输入线索"
@
goDetail=
"goDetail"
v-if=
"isShow"
/>
<div
class=
"tableWrap"
v-else
>
<disv
class=
"line"
>
<div>
分析结果
</div>
<div
class=
"export"
>
<el-button
type=
"primary"
size=
"mini"
@
click=
"exportFile"
>
导出
</el-button>
</div>
</disv>
<el-table
:data=
"tableData"
style=
"width: 100%"
border
>
<el-table-column
align=
"center"
:min-width=
"columnTitle.width"
v-for=
"columnTitle in cxDefaultFormThead"
:prop=
"columnTitle.prop"
:key=
"columnTitle.label"
:label=
"columnTitle.label"
>
<template
slot-scope=
"scope"
>
<span
v-html=
"scope.row[columnTitle.prop]"
></span>
</
template
>
</el-table-column>
</el-table>
</div>
</div>
</template>
<
script
>
import
SearchGraph
from
"@c/searchRight.vue"
;
export
default
{
components
:
{
SearchGraph
},
data
()
{
return
{
header
:
"线索信息综合分析子系统"
,
pages
:
"djajzb"
,
formProp
:
[
{
id
:
"zjhm"
,
type
:
"text"
,
placeholder
:
"线索名称"
,
col
:
"3"
,
},
],
form
:
{
zjhm
:
""
,
},
Menu
:
[
{
id
:
"brainQyxsfx"
,
label
:
"线索时空特征分析"
,
index
:
"brainQyxsfx"
,
auth
:
"M0101"
,
className
:
"iconfont iconrizhi"
,
disabled
:
false
,
},
],
isShow
:
true
,
tableData
:
[],
cxDefaultFormThead
:
[
{
label
:
"姓名"
,
prop
:
"xm"
,
},
{
label
:
"性别"
,
prop
:
"xb"
,
},
{
label
:
"身份证号"
,
prop
:
"sfzh"
,
},
{
label
:
"现住址区划"
,
prop
:
"xzz"
,
},
{
label
:
"户籍区划"
,
prop
:
"hj"
,
},
{
label
:
"是否抓获"
,
prop
:
"sfyzh"
,
},
],
};
},
created
()
{
this
.
$store
.
commit
(
"user/SET_Menu"
,
this
.
Menu
);
},
methods
:
{
exportFile
()
{
let
self
=
this
,
tHeader
=
[],
filterVal
=
[];
const
loading
=
this
.
$loading
({
lock
:
true
,
text
:
"正在导出..."
,
spinner
:
"el-icon-loading"
,
background
:
"rgba(255, 255, 255, 0.7)"
,
});
tHeader
=
[];
filterVal
=
[];
self
.
cxDefaultFormThead
.
forEach
((
val
)
=>
{
tHeader
.
push
(
val
.
label
);
filterVal
.
push
(
val
.
prop
);
});
require
.
ensure
([],
()
=>
{
const
{
export_json_to_excel
}
=
require
(
"../../utils/Export2Excel"
);
const
list
=
this
.
tableData
;
const
data
=
self
.
formatJson
(
filterVal
,
list
);
// debugger;
export_json_to_excel
(
tHeader
,
data
,
'线索与人员时空拟合分析'
);
});
loading
.
close
();
},
formatJson
(
filterVal
,
jsonData
)
{
let
arr
=
[];
jsonData
.
map
((
v
)
=>
{
let
arr1
=
[];
filterVal
.
map
((
j
)
=>
{
if
(
j
.
indexOf
(
","
)
!=
-
1
)
{
let
arr
=
j
.
split
(
","
);
let
data
=
""
;
for
(
let
i
=
0
;
i
<=
arr
.
length
-
1
;
i
++
)
{
data
+=
arr
[
i
].
split
(
":"
)[
0
]
+
":"
+
v
[
arr
[
i
].
split
(
":"
)[
1
]];
}
arr1
.
push
(
data
);
}
else
{
arr1
.
push
(
v
[
j
]);
}
});
arr
.
push
(
arr1
);
});
return
arr
;
},
goDetail
()
{
this
.
isShow
=
false
;
let
sjArr
=
[
"清晨"
,
"早晨"
,
"中午"
,
"下午"
,
"傍晚"
,
"深夜"
,
"凌晨"
];
let
dyArr
=
[
"城区"
,
"郊区"
,
"农村"
];
let
skArr
=
[
"盗窃案件高危"
,
"诈骗案高危"
,
"抢劫案高危"
];
let
dyStr
=
dyArr
[
parseInt
(
Math
.
random
()
*
2
)]
let
obj
=
{
xm
:
'次仁'
,
xb
:
"男"
,
sfzh
:
"542324199210192830"
,
xzz
:
"西藏自治区定日县"
,
hj
:
"西藏自治区定日县"
,
sfyzh
:
"是"
,
};
this
.
tableData
.
push
(
obj
);
obj
=
{
xm
:
'达瓦'
,
xb
:
"男"
,
sfzh
:
"542324199808192831"
,
xzz
:
"西藏自治区定日县"
,
hj
:
"西藏自治区定日县"
,
sfyzh
:
"是"
,
};
this
.
tableData
.
push
(
obj
);
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.tableWrap
{
background
:
#ffffff
;
border
:
1px
solid
#eaeaea
;
box-shadow
:
none
;
opacity
:
1
;
border-radius
:
4px
;
padding
:
20px
;
margin
:
20px
;
.line
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
5px
;
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment