Commit c352aafa by gao_yingdong

手机档案, 车辆档案(添加研判报告)

parent ee06aa8d
......@@ -9556,6 +9556,11 @@
"minimist": "^1.2.5"
}
},
"moment": {
"version": "2.29.1",
"resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.1.tgz",
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
},
"move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
......
......@@ -16,6 +16,7 @@
"element-ui": "^2.4.5",
"file-saver": "^2.0.5",
"js-cookie": "^2.2.1",
"moment": "^2.29.1",
"qs": "^6.9.4",
"relation-graph": "^1.1.0",
"sass-resources-loader": "^2.1.1",
......
......@@ -10,6 +10,7 @@
cxType != 'cljbxxDj' &&
cxType != 'thjl' &&
cxType != 'lsjsr' &&
cxType != 'sjlsjz' &&
cxType != 'sjLs'
"
style="
......@@ -118,7 +119,7 @@
<template slot-scope="scope">
<span
v-if="zdygxPage == 'daypbg'"
style="color: #0070f4;margin-right: 10px"
style="color: #0070f4; margin-right: 10px"
@click="details(scope)"
>
查看详情
......@@ -343,6 +344,7 @@ export default {
doQuery(flag) {
let self = this,
json = {};
this.tableLoading = true;
for (let i in self.queryData) {
json[i] = self.queryData[i];
}
......@@ -351,6 +353,7 @@ export default {
.doQueryRequest(JSON.stringify(json))
.then((res) => {
if (res.code === 200) {
self.tableLoading = false;
if (self.cxType == "cljbxxDj") {
let array = [];
array.push(res.data.result.rows);
......@@ -413,8 +416,10 @@ export default {
self.dataLength = parseInt(res.data.total);
self.phoneInfo = res.data.phoneInfo;
debugger;
self.tableLoading = false;
// self.closeLoading();
} else {
self.tableLoading = false;
/*self.$message({
type: "error",
message: response.data.message
......@@ -438,8 +443,10 @@ export default {
: parseInt(res.data.result.total);
self.phoneInfo = res.data.phoneInfo;
debugger;
self.tableLoading = false;
// self.closeLoading();
} else {
self.tableLoading = false;
/*self.$message({
type: "error",
message: response.data.message
......
......@@ -7,12 +7,15 @@ import "./plugins/element.js";
import Util from "./utils/util";
import VueWechatTitle from "vue-wechat-title";
import './assets/iconfont/iconfont.css'
import moment from 'moment'
import dataV from '@jiaminghi/data-view'
import Base64 from "./utils/crypto";
Vue.use(dataV)
import Video from 'video.js'
import 'video.js/dist/video-js.css'
// 时间戳
Vue.prototype.$moment = moment;
Vue.prototype.$video = Video
// 引入echarts
......
......@@ -106,7 +106,7 @@ export default {
ypbgbt: "",
ypbgnr: "",
ypbglx: "02",
glhm: sessionStorage.getItem("zjhm"),
glhm: sessionStorage.getItem("cphm"),
},
rules: {
ypbgbt: [
......@@ -143,7 +143,7 @@ export default {
],
sjhQueryData: {
ypbglx: "02",
glhm: sessionStorage.getItem("zjhm"),
glhm: sessionStorage.getItem("cphm"),
page: 1,
limit: 5,
},
......
<template>
<div class="ryDj">
<div class="con">
<div class="right">
<div class="con-wrap">
<table-component
ref="zsRef"
:DefaultAjFormThead="sjhFormThead"
:propQueryData="sjhQueryData"
:cxUrl="sjhCxUrl"
:tableName="sjhTableName"
:zdygxPage="zdygxPage"
@addCenter="addCenter"
@eadit="eadit"
@deleteTp="deleteTp"
@details="details"
></table-component>
</div>
</div>
</div>
<el-dialog title="研判报告" :visible.sync="wpXXDialogShow" width="30%">
<div style="margin: 20px 40px">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="100px"
class="demo-ruleForm"
>
<el-form-item label="报告标题:" prop="ypbgbt">
<el-input v-model="ruleForm.ypbgbt"></el-input>
</el-form-item>
<el-form-item label="报告内容:">
<el-input type="textarea" v-model="ruleForm.ypbgnr"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')"
>保存</el-button
>
</el-form-item>
</el-form>
</div>
</el-dialog>
<el-dialog
title="研判报告详情"
:visible.sync="wpXXDialogShowXq"
width="20%"
>
<div style="padding: 20px 40px">
<div
style="line-height: 31px"
v-for="(item, index) in xqList"
:key="index"
>
<span style="margin-right: 10px"> {{ item.name }}: </span>
<span style="color: #bab7b7">{{ xqObcjt[item.id] }}</span>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import tableComponent from "@c/qxda_compontents.vue";
import request from "@/utils/axiosHttp.js";
import url from "@/api/base";
export default {
components: {
tableComponent,
},
name: "ypbg",
data() {
return {
xqObcjt: {},
wpXXDialogShowXq: false,
xxzjbh: "",
xqList: [
{
name: "报告标题",
id: "ypbgbt",
},
{
name: "登记人",
id: "xxdjryXm",
},
{
name: "登记人电话",
id: "xxdjryLxdh",
},
{
name: "登记单位",
id: "xxdjdwGajgmc",
},
{
name: "登记时间",
id: "djsj",
},
{
name: "报告内容",
id: "ypbgnr",
},
],
ruleForm: {
ypbgbt: "",
ypbgnr: "",
ypbglx: "03",
glhm: sessionStorage.getItem("cphm"),
},
rules: {
ypbgbt: [
{ required: true, message: "请输入研判报告标题", trigger: "blur" },
],
},
wpXXDialogShow: false,
zdygxPage: "daypbg",
sjhFormThead: [
{
label: "研判报告标题",
prop: "ypbgbt",
},
{
label: "研判报告内容",
prop: "ypbgnr",
},
{
label: "登记人",
prop: "xxdjryXm",
},
{
label: "登记人电话",
prop: "xxdjryLxdh",
},
{
label: "登记单位",
prop: "xxdjdwGajgmc",
},
{
label: "登记时间",
prop: "djsj",
},
],
sjhQueryData: {
ypbglx: "03",
glhm: sessionStorage.getItem("cphm"),
page: 1,
limit: 5,
},
sjhCxUrl: "/daCommon/getYpbgList",
sjhTableName: "档案研判报告",
};
},
watch: {},
methods: {
// 报告保存
postSaveYpbg(form) {
return request({
url: url.rzURL + "/daCommon/saveYpbg",
data: JSON.parse(form),
method: "POST",
});
},
// 报告详情
postSgetYpbhByXxzjbh(form) {
return request({
url: url.rzURL + "/daCommon/getYpbhByXxzjbh",
data: JSON.parse(form),
method: "POST",
});
},
// 报告删除
postSdeleteYpbgByXxzjbh(form) {
return request({
url: url.rzURL + "/daCommon/deleteYpbgByXxzjbh",
data: JSON.parse(form),
method: "POST",
});
},
addCenter() {
this.wpXXDialogShow = true;
},
submitForm(formName) {
var self = this;
this.$refs[formName].validate((valid) => {
if (valid) {
if (self.xxzjbh) {
self.eaditSubmit();
} else {
self.addSubmit();
}
} else {
self.$message({
type: "warning",
message: "请填写必填项",
});
}
});
},
eaditSubmit() {
let self = this;
let json = {};
for (let i in self.ruleForm) {
json[i] = self.ruleForm[i];
}
json["xxzjbh"] = self.xxzjbh;
self.postSaveYpbg(JSON.stringify(json)).then((res) => {
if (res.success == true) {
self.$message({
type: "success",
message: "保存成功",
});
// this.$refs[self.formName].resetFields();
self.ruleForm.ypbgbt = "";
self.ruleForm.ypbgnr = "";
self.xxzjbh = "";
this.wpXXDialogShow = false;
this.$refs.zsRef.doQuery("yes");
} else {
self.$message({
type: "error",
message: "保存失败",
});
}
});
},
addSubmit() {
let self = this;
let json = {};
for (let i in self.ruleForm) {
json[i] = self.ruleForm[i];
}
self.postSaveYpbg(JSON.stringify(json)).then((res) => {
if (res.success == true) {
self.$message({
type: "success",
message: "保存成功",
});
// this.$refs[self.formName].resetFields();
self.ruleForm.ypbgbt = "";
self.ruleForm.ypbgnr = "";
this.wpXXDialogShow = false;
this.$refs.zsRef.doQuery("yes");
} else {
self.$message({
type: "error",
message: "保存失败",
});
}
});
},
// 修改
eadit(scope) {
this.xxzjbh = scope.row.xxzjbh;
let json = {};
json["xxzjbh"] = scope.row.xxzjbh;
this.postSgetYpbhByXxzjbh(JSON.stringify(json)).then((res) => {
if (res.success == true) {
this.ruleForm.ypbgbt = res.data.ypbh.ypbgbt;
this.ruleForm.ypbgnr = res.data.ypbh.ypbgnr;
this.wpXXDialogShow = true;
}
});
},
// 删除
deleteTp(scope) {
debugger;
let self = this;
let json = {};
json["xxzjbh"] = scope.row.xxzjbh;
this.$confirm("此操作将删除此报告, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
self.postSdeleteYpbgByXxzjbh(JSON.stringify(json)).then((res) => {
if (res.success === true) {
self.$message({
type: "success",
message: "删除成功",
});
self.$refs.zsRef.doQuery("yes");
} else {
self.$message({
type: "error",
message: "删除失败",
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
// 详情
details(scope) {
this.wpXXDialogShowXq = true;
let json = {};
json["xxzjbh"] = scope.row.xxzjbh;
this.postSgetYpbhByXxzjbh(JSON.stringify(json)).then((res) => {
if (res.success == true) {
this.xqObcjt = res.data.ypbh;
}
});
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/ryfwdwdz.scss";
button.el-button.el-button--primary {
margin: 0 0 20px 0;
width: 114px;
}
</style>
<template>
<div class="ryDj">
<!-- <div class="top">
<div class="lf">
<span>时间:</span>
<div class="inl">
<el-date-picker
v-model="cxSj"
type="datetimerange"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right"
>
</el-date-picker>
</div>
</div>
</div> -->
<div class="con">
<!-- <div class="left">
<div style="margin: 15px">
<el-input
size="small"
placeholder="输入关键词查找"
suffix-icon="el-icon-search"
v-model="filterText"
>
</el-input>
</div>
<div style="margin: 15px">
<el-tree
class="filter-tree"
:data="data"
:props="defaultProps"
default-expand-all
:filter-node-method="filterNode"
ref="tree"
>
<span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ node.label }}</span>
</span>
</el-tree>
</div>
</div> -->
<div class="right">
<div class="swtzxxbd text-cont">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="人像信息" name="rxxx">
<!-- <div class="人像信息">-->
<!-- <el-row>-->
<!-- <el-col :span="4" v-for="(item, index) in ryzpList" :key="item" :offset="index > 0 ? 2 : 0">-->
<!-- <el-card :body-style="{ padding: '0px' }">-->
<!-- <img src="{{item.dzwjnrBase64}}"-->
<!-- class="image">-->
<!-- <div style="padding: 14px;">-->
<!-- <span>{{item.zpbw}}</span>-->
<!-- </div>-->
<!-- </el-card>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- </div>-->
</el-tab-pane>
<el-tab-pane label="指纹信息" name="zwxx">
</el-tab-pane>
<el-tab-pane label="掌纹信息" name="zhwxx"></el-tab-pane>
<el-tab-pane label="足迹信息" name="zjxx"></el-tab-pane>
<el-tab-pane label="手机信息" name="sjxx">
<el-tabs v-model="ajActiveName" type="card" @tab-click="sjhandleClick">
<el-tab-pane label="手机信息" name="sjxxSj">
<div class="con-wrap">
<table-component v-if="rybh !== undefined && rybh !== ''"
:DefaultAjFormThead="sjxxFormThead"
:propQueryData="sjxxQueryData"
:cxUrl="sjxxCxUrl"
:tableName="sjxxTableName"
></table-component>
</div>
</el-tab-pane>
<el-tab-pane label="通讯录" name="sjxxTxl">
<div class="con-wrap">
<table-component v-if="rybh !== undefined && rybh !== ''"
:DefaultAjFormThead="sjTxlFormThead"
:propQueryData="sjTxlQueryData"
:cxUrl="sjTxlCxUrl"
:tableName="sjTxlTableName"
></table-component>
</div>
</el-tab-pane>
<el-tab-pane label="通话记录" name="sjxxThjl">
<div class="con-wrap">
<table-component v-if="rybh !== undefined && rybh !== ''"
:DefaultAjFormThead="sjThjlFormThead"
:propQueryData="sjThjlQueryData"
:cxUrl="sjThjlCxUrl"
:tableName="sjThjlTableName"
></table-component>
</div>
</el-tab-pane>
<el-tab-pane label="短信" name="sjxxDx">
<div class="con-wrap">
<table-component v-if="rybh !== undefined && rybh !== ''"
:DefaultAjFormThead="sjDxFormThead"
:propQueryData="sjDxQueryData"
:cxUrl="sjDxCxUrl"
:tableName="sjDxTableName"
></table-component>
</div>
</el-tab-pane>
<el-tab-pane label="虚拟身份" name="sjxxXnsf">
<div class="con-wrap">
<table-component v-if="rybh !== undefined && rybh !== ''"
:DefaultAjFormThead="sjXnsfFormThead"
:propQueryData="sjXnsfQueryData"
:cxUrl="sjXnsfCxUrl"
:tableName="sjXnsfTableName"
></table-component>
</div>
</el-tab-pane>
</el-tabs>
</el-tab-pane>
<el-tab-pane label="银行卡信息" name="yhkxx"></el-tab-pane>
<el-tab-pane label="声纹信息" name="swxx"></el-tab-pane>
<el-tab-pane label="虹膜信息" name="hmxx"></el-tab-pane>
<el-tab-pane label="物品信息" name="wpxx"></el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</div>
</template>
<script>
import tableComponent from "@c/qxda_compontents.vue";
export default {
components: {
tableComponent,
},
name: "ryDj",
data() {
return {
activeName: "rxxx",
ajActiveName: "sjxxSj",
// rybh: "R3602810700002017016812",
rybh: "",
zwbh: "",
tabCount: [1,2,3,4,5,6,7,8,9],
sjTabCount: [1,2,3,4,5,6,7,8],
sjxxFormThead: [
{
label: "手机串号",
prop: "sjch",
},
{
label: "手机品牌型号",
prop: "sjppxh",
},
{
label: "手机号码",
prop: "yddh",
},
{
label: "手机号码2",
prop: "yddh2",
},
{
label: "蓝牙地址",
prop: "bluetoothMac",
},
{
label: "操作系统",
prop: "os",
},
{
label: "MAC地址",
prop: "wifiMac",
},
{
label: "IMSI",
prop: "imsi",
},
],
sjTxlFormThead: [
{
label: "联系人姓名",
prop: "lxrxm",
},
{
label: "联系电话",
prop: "lxdh",
},
{
label: "机主手机号码",
prop: "jzsjhm",
},
{
label: "住宅电话",
prop: "gddh",
},
{
label: "电子邮箱",
prop: "dzxx",
},
{
label: "工作单位",
prop: "dwmc",
},
{
label: "住宅地址",
prop: "dzmc",
},
{
label: "工作地址",
prop: "gzdwdz",
},
],
sjThjlFormThead: [
{
label: "通话号码",
prop: "lxdh",
},
{
label: "通话类型",
prop: "thlxStr",
},
{
label: "通话姓名",
prop: "xm",
},
{
label: "通话状态",
prop: "thztStr",
},
{
label: "通话时长(秒)",
prop: "thsc",
},
{
label: "机主手机号",
prop: "jzsjhm",
},
{
label: "通话时间",
prop: "rqsj",
},
],
sjDxFormThead: [
{
label: "发送者/接收者号码",
prop: "yddh",
},
{
label: "短信类型",
prop: "dxlxStr",
},
{
label: "短信内容",
prop: "dxnr",
},
{
label: "机主手机号",
prop: "jzsjhm",
},
{
label: "通话时间",
prop: "rqsj",
},
],
sjXnsfFormThead: [
{
label: "账号类型",
prop: "zhlxStr",
},
{
label: "账号",
prop: "xnzh",
},
{
label: "昵称",
prop: "zhnc",
},
{
label: "性别",
prop: "xbdmStr",
},
{
label: "年龄",
prop: "nl",
},
{
label: "xzqhmc",
prop: "所在城市",
},
{
label: "职业",
prop: "zylbdmStr",
},
{
label: "出生日期",
prop: "csrq",
},
],
sjxxQueryData: {
objectValue: this.rybh,
limit: 5
},
sjTxlQueryData: {
objectValue: sessionStorage.getItem("rybh"),
limit: 5
},
sjDxQueryData: {
objectValue: sessionStorage.getItem("rybh"),
limit: 5
},
sjThjlQueryData: {
objectValue: sessionStorage.getItem("rybh"),
limit: 5
},
sjXnsfQueryData: {
objectValue: sessionStorage.getItem("rybh"),
limit: 5
},
sjxxCxUrl: "/newRyda/getDswSjxx",
sjxxTableName: "手机信息",
sjTxlCxUrl: "/newRyda/getDswSjTxl",
sjTxlTableName: "通讯录",
sjThjlCxUrl: "/newRyda/getDswSjThjl",
sjThjlTableName: "通话记录",
sjDxCxUrl: "/newRyda/getDswSjDxxx",
sjDxTableName: "短信记录",
sjXnsfCxUrl: "/newRyda/getDswSjXssfxx",
sjXnsfTableName: "虚实身份",
};
},
watch: {
filterText(val) {
this.$refs.tree.filter(val);
},
},
methods: {
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
handleClick(tab, event) {
console.log(tab, event);
},
sjhandleClick(tab, event) {
console.log(tab, event);
},
},
created() {
this.rybh = 'R3602810700002017016812'
sessionStorage.setItem("rybh", "R3602810700002017016812");
},
};
</script>
<style scoped lang="scss">
@import "../../assets/styles/ryfwdwdz.scss";
</style>
......@@ -5,6 +5,8 @@
<span>手机档案详情</span>
</div>
</div>
<!-- <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="手机概括" name="sjgk"> -->
<div id="sjda" class="sjda">
<div class="sjda_top">
<div class="sjda_top_left">
......@@ -38,10 +40,24 @@
<span style="padding-left: 5px; vertical-align: middle">标签</span>
<el-divider></el-divider>
</div>
<div class="sjda_top_right_content">
<span style="font-size: 12px; color: #999999; padding-left: 10px"
>内蒙呼和浩特、陈慧霞手机被盗窃案</span
>
<!-- <div class="sjda_top_right_content"> -->
<!-- <span
style="font-size: 12px; color: #999999; padding-left: 10px"
>内蒙呼和浩特、陈慧霞手机被盗窃案</span
> -->
<div class="padding24">
<div>
<ul>
<li
v-for="(item, index) in zdbqList"
:key="index"
class="bqTag"
>
<span> {{ item.AJBQ }}</span>
</li>
</ul>
</div>
<!-- </div> -->
<!-- <img src="@/assets/img/dangan/wu.png"
alt=""
style="margin: 0 auto;"> -->
......@@ -59,14 +75,14 @@
/>
<span
style="color: #21272a; font-size: 15px; vertical-align: middle"
>登记机主</span
>登记机主信息</span
>
</div>
</div>
<div style="padding: 0 20px">
<el-divider></el-divider>
</div>
<div class="sjda_two_left_content">
<div v-loading="djjzxxLoading" class="sjda_two_left_content">
<el-row>
<el-col :span="6">
<div class="zp">
......@@ -107,7 +123,7 @@
/>
<span
style="color: #21272a; font-size: 15px; vertical-align: middle"
>历史使用人信息</span
>历史机主信息</span
>
<el-divider></el-divider>
</div>
......@@ -167,7 +183,7 @@
</div>
</div>
<!--关系分析-->
<div class="sjda_top" style="margin-bottom: 20px">
<!-- <div class="sjda_top" style="margin-bottom: 20px">
<div class="sjda_top_left" style="width: 50%; height: 350px">
<div class="sjda_top_left_title">
<img
......@@ -205,11 +221,11 @@
<img src="@/assets/img/dangan/961.png" alt="" />
</div>
</div>
</div>
</div> -->
<!---->
<div class="sjda_bottom">
<div class="sjda_bottom" style="margin-bottom: 20px">
<div class="sjda_bottom_tlgl">
<div class="sjda_bottom_tlgl_title">
<div class="sjda_bottom_tlgl_title" style="padding: 8px 0">
<div class="sjda_bottom_tlgl_title_left">
<img
src="@/assets/img/dangan/570.png"
......@@ -217,25 +233,59 @@
style="vertical-align: middle"
/>
<span style="padding-left: 5px; vertical-align: middle"
>通联规律</span
>关键联系人</span
>
</div>
<div class="sjda_bottom_tlgl_title_right">
<span>近一月</span>
<span>进三月</span>
<span>自定义</span>
<span>筛选</span>
<span @click="addGjlxr('one')">近一月</span>
<span @click="addGjlxr('three')">进三月</span>
<span @click="addGjlxr('null')">自定义</span>
<!-- <span>筛选</span> -->
<span v-if="dateTimeShow">
<el-date-picker
v-model="valueCxgl"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
>
</el-date-picker>
</span>
</div>
</div>
<div style="padding: 0 20px">
<el-divider></el-divider>
</div>
<div class="sjda_bottom_tlgl_content">
<div id="sjdaEcharts"></div>
<div
style="display: flex; margin: 20px"
class="sjda_bottom_tlgl_content"
>
<!-- <div id="sjdaEcharts"></div> -->
<div style="margin-right: 34px" class="gxlxr">
<table-component
:DefaultAjFormThead="scFormThead"
:propQueryData="scQueryData"
:cxUrl="scLsCxUrl"
:cxType="scLsCxType"
ref="scadd"
></table-component>
</div>
<div class="gxlxr">
<table-component
:DefaultAjFormThead="csFormThead"
:propQueryData="csQueryData"
:cxUrl="csLsCxUrl"
:cxType="csLsCxType"
ref="csadd"
></table-component>
</div>
</div>
</div>
<div class="sjda_bottom_xwfx">
<div class="sjda_bottom_xwfx_title">
<div class="sjda_bottom_xwfx_title" style="padding: 8px 0">
<div class="sjda_bottom_xwfx_title_left">
<img
src="@/assets/img/dangan/569.png"
......@@ -243,25 +293,48 @@
style="vertical-align: middle"
/>
<span style="padding-left: 5px; vertical-align: middle"
>行为分析</span
>通话规律分析</span
>
</div>
<div class="sjda_bottom_xwfx_title_right">
<span>近一月</span>
<span>进三月</span>
<span>自定义</span>
<span>筛选</span>
<span @click="thglFx('one')">近一月</span>
<span @click="thglFx('three')">进三月</span>
<span @click="thglFx('null')">自定义</span>
<!-- <span>筛选</span> -->
<span v-if="dateTimeShowTh">
<el-date-picker
v-model="valueThglfx"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
>
</el-date-picker>
</span>
</div>
</div>
<div style="padding: 0 20px">
<el-divider></el-divider>
</div>
<div class="sjda_bottom_xwfx_content">
<img src="@/assets/img/dangan/961.png" alt="" />
</div>
<!-- <div class="sjda_bottom_xwfx_content"> -->
<!-- <img src="@/assets/img/dangan/961.png" alt="" /> -->
<div
v-loading="tableLoadingT"
id="echarts"
style="height: 480px"
></div>
<!-- </div> -->
</div>
</div>
</div>
<!-- </el-tab-pane>
<el-tab-pane label="手机研判报告" name="sjDaypbg">
<sjda-ypbg></sjda-ypbg>
</el-tab-pane>
</el-tabs> -->
</div>
</template>
......@@ -270,19 +343,25 @@ import request from "@/utils/axiosHttp.js";
import url from "@/api/base";
import tableComponent from "@c/qxda_compontents.vue";
import poi from "@/assets/img/ryda/index.png";
// import SjdaYpbg from "./carDa/sjdaYpbg.vue";
import iphone from "@/assets/img/dangan/534.png";
export default {
components: {
tableComponent,
// SjdaYpbg,
},
name: "sjda",
data() {
return {
zdbqList: [], // 标签
djjzxxLoading: false,
activeName: "sjgk",
valueThglfx: "",
phoneOnwer: [
{
label: "姓名",
label: "机主姓名",
value: "",
prop: "xm",
prop: "jzxm",
},
{
label: "证件号码",
......@@ -290,30 +369,30 @@ export default {
prop: "zjhm",
},
{
label: "性别",
label: "户籍地址",
value: "",
prop: "xbdm",
prop: "hjdz",
},
{
label: "民族",
label: "现住址",
value: "",
prop: "mzdm",
prop: "xzz",
},
{
label: "户籍地址",
label: "出生地",
value: "",
prop: "hjdzXzqhdm",
prop: "csd",
},
{
label: "现住址",
label: "性别",
value: "",
prop: "xzzDzmc",
prop: "xb",
},
{
label: "出生地",
label: "民族",
value: "",
prop: "csdDzmc",
prop: "mz",
},
],
sfzp: "",
......@@ -321,68 +400,51 @@ export default {
{
label: "imei",
prop: "imei",
width: "200",
},
{
label: "imsi",
prop: "imsi",
width: "220",
},
{
label: "首次发现时间",
prop: "scfxsj",
width: "120",
},
{
label: "最新发现时间",
prop: "zxfxsj",
width: "140",
label: "采集时间",
prop: "cjsj",
},
],
mySjQueryData: {
objectValue: this.$route.query["sjhm"],
objectType: "sjhm",
objectValue: this.$route.query["cphm"],
objectType: "phone",
page: 1,
limit: 5,
limit: 3,
},
mySjCxUrl: "/sjdaApi/getSjhJbxx",
mySjCxType: "mySjh",
mySjCxType: "sjlsjz",
sjLsFormThead: [
{
label: "姓名",
width: "220",
prop: "xm",
label: "机主姓名",
prop: "jzxm",
},
{
label: "证件号码",
width: "220",
prop: "zjhm",
},
{
label: "性别",
width: "220",
prop: "xbdm",
prop: "xb",
},
{
label: "民族",
width: "220",
prop: "mzdm",
},
{
label: "户籍地址",
width: "220",
prop: "hjdzXzqhdm",
prop: "mz",
},
],
sjLsQueryData: {
objectValue: this.$route.query["sjhm"],
objectType: "sjhm",
objectValue: this.$route.query["cphm"],
objectType: "phone",
page: 1,
limit: 3,
limit: 2,
},
sjLsCxUrl: "/sjdaApi/getLsSjhJzxx",
sjLsCxType: "sjLs",
sjLsCxType: "sjlsjz",
thjlFormThead: [
{
label: "手机号码",
......@@ -517,14 +579,70 @@ export default {
},
],
},
// 关系联系人时长
scFormThead: [
{
label: "联系人电话号码",
prop: "lxdh",
},
{
label: "通话时长",
prop: "num",
},
],
scQueryData: {
objectType: "phone",
objectValue: this.$route.query.cphm,
type: "1",
kssj: this.$moment().subtract(1, "month").format("YYYY-MM-DD"),
jssj: this.$moment().format("YYYY-MM-DD"),
},
scLsCxUrl: "/sjdaApi/getGjlxr",
scLsCxType: "sjLs",
// 关系联系人 次数
csFormThead: [
{
label: "联系人电话号码",
prop: "lxdh",
},
{
label: "通话次数",
prop: "num",
},
],
csQueryData: {
objectType: "phone",
objectValue: this.$route.query.cphm,
type: "2",
kssj: this.$moment().subtract(1, "month").format("YYYY-MM-DD"),
jssj: this.$moment().format("YYYY-MM-DD"),
},
csLsCxUrl: "/sjdaApi/getGjlxr",
csLsCxType: "sjLs",
valueCxgl: "",
dateTimeShow: false,
thglFxQueryData: {
objectType: "phone",
objectValue: this.$route.query.cphm,
kssj: this.$moment().subtract(1, "month").format("YYYY-MM-DD"),
jssj: this.$moment().format("YYYY-MM-DD"),
},
tableLoadingT: false,
dateTimeShowTh: false,
};
},
mounted() {
if (this.$route.query["cphm"]) {
sessionStorage.setItem("cphm", this.$route.query["cphm"]);
}
this.postGetThjlAnalysisList(); // 通话规律分析 折线图
this.postGetSjhJzxxList(); // 机主信息
this.postGetAjbqList(); // 手机标签信息
// this.getData();
// this.getDataTwo();
this.getsjXx();
this.getPhoneTrack();
this.getPhoneLastStation();
// this.getsjXx();
// this.getPhoneTrack(); ****
// this.getPhoneLastStation(); ****
},
methods: {
postSjJz(form) {
......@@ -534,17 +652,210 @@ export default {
method: "POST",
});
},
// 通话规律分析 折线图
postGetThjlAnalysis(form) {
return request({
url: url.rzURL + "/sjdaApi/getThjlAnalysis",
data: JSON.parse(form),
method: "POST",
});
},
//机主信息
postGetSjhJzxx(form) {
return request({
url: url.rzURL + "/sjdaApi/getSjhJzxx",
data: JSON.parse(form),
method: "POST",
});
},
//手机标签
postGetAjbq(form) {
return request({
url: url.rzURL + "/sjdaApi/getAjbq",
data: JSON.parse(form),
method: "POST",
});
},
// 手机标签
postGetAjbqList() {
let self = this;
let json = {
objectType: "phone",
objectValue: sessionStorage.getItem("cphm"),
};
self.postGetAjbq(JSON.stringify(json)).then((res) => {
if (res.success == true) {
self.zdbqList = res.data.rows
} else {
self.$message.error("标签查询失败!");
}
});
},
// 机主信息
postGetSjhJzxxList() {
let self = this;
let json = {
objectType: "phone",
objectValue: this.$route.query.cphm,
};
self.postGetSjhJzxx(JSON.stringify(json)).then((res) => {
if (res.success == true) {
self.phoneOnwer.forEach((item) => {
item.value = res.data.rows[0][item.prop];
});
self.sfzp = res.data.rows[0].zp;
self.djjzxxLoading = false;
} else {
self.djjzxxLoading = false;
self.$message.error("查询失败");
}
});
},
// 关键联系人 (月份点击)
addGjlxr(dateTime) {
debugger;
if (dateTime == "one") {
this.scQueryData.kssj = this.$moment()
.subtract(1, "month")
.format("YYYY-MM-DD");
this.scQueryData.jssj = this.$moment().format("YYYY-MM-DD");
this.csQueryData.kssj = this.$moment()
.subtract(1, "month")
.format("YYYY-MM-DD");
this.csQueryData.jssj = this.$moment().format("YYYY-MM-DD");
this.$refs.scadd.doQuery("yes");
this.dateTimeShow = false;
this.$refs.csadd.doQuery("yes");
} else if (dateTime == "three") {
this.scQueryData.kssj = this.$moment()
.subtract(3, "month")
.format("YYYY-MM-DD");
this.scQueryData.jssj = this.$moment().format("YYYY-MM-DD");
this.csQueryData.kssj = this.$moment()
.subtract(3, "month")
.format("YYYY-MM-DD");
this.csQueryData.jssj = this.$moment().format("YYYY-MM-DD");
this.$refs.scadd.doQuery("yes");
this.dateTimeShow = false;
this.$refs.csadd.doQuery("yes");
} else if (dateTime == "null") {
this.dateTimeShow = true;
}
},
// 通话规律分析 * 点击月份*
thglFx(dataTime) {
if (dataTime == "one") {
this.thglFxQueryData.kssj = this.$moment()
.subtract(1, "month")
.format("YYYY-MM-DD");
this.thglFxQueryData.jssj = this.$moment().format("YYYY-MM-DD");
this.dateTimeShowTh = false;
this.postGetThjlAnalysisList();
} else if (dataTime == "three") {
this.thglFxQueryData.kssj = this.$moment()
.subtract(3, "month")
.format("YYYY-MM-DD");
this.thglFxQueryData.jssj = this.$moment().format("YYYY-MM-DD");
this.dateTimeShowTh = false;
this.postGetThjlAnalysisList();
} else if (dataTime == "null") {
this.dateTimeShowTh = true;
}
},
// 通话规律分析 折线图
postGetThjlAnalysisList() {
let self = this;
let json = {};
self.tableLoadingT = true;
for (let i in self.thglFxQueryData) {
json[i] = self.thglFxQueryData[i];
}
self.postGetThjlAnalysis(JSON.stringify(json)).then((res) => {
if (res.success == true) {
self.tableLoadingT = false;
if (res.data.row) {
self.getCxgltjt(res.data.row);
}
} else {
self.tableLoadingT = false;
self.$message.error("查询失败");
}
});
},
// 通话规律分析 折线图
getCxgltjt(item) {
debugger;
let myChart = this.$echarts.init(document.getElementById("echarts"));
// 绘制图表
myChart.setOption({
xAxis: {
type: "category",
name: "小时",
boundaryGap: false,
data: [
"0",
"2",
"4",
"6",
"8",
"10",
"12",
"14",
"16",
"18",
"20",
"22",
"24",
],
},
yAxis: {
type: "value",
min: 0,
max: 100,
name: "次数",
},
series: [
{
data: [
0,
item.two,
item.four,
item.six,
item.eight,
item.ten,
item.twelve,
item.fourteen,
item.sixteen,
item.eighteen,
item.twenty,
item.twentytwo,
item.twentyfour,
],
type: "line",
},
],
});
window.onresize = () => {
return (() => {
myChart.resize();
})();
};
},
handleClick(tab, event) {
console.log(tab, event);
},
getsjXx() {
let self = this,
json = {};
json["objectValue"] = self.$route.query["sjhm"];
json["objectType"] = "sjhm";
self.postSjJz(JSON.stringify(json)).then((res) => {
if (res.success === true) {
self.phoneOnwer.forEach((item) => {
item.value = res.data.rows[0][item.prop];
});
self.sfzp = res.data.rows[0].edzzplj;
// self.phoneOnwer.forEach((item) => {
// item.value = res.data.rows[0][item.prop];
// });
// self.sfzp = res.data.rows[0].edzzplj;
} else {
self.$message({
type: "error",
......@@ -584,8 +895,8 @@ export default {
: "";
var parms = { id: "map", PositionUi: "right-top", ShowDisplay: false };
var opMap = new OpMap();
if(!this.map){
this.map = opMap.$InitMAP(parms);
if (!this.map) {
this.map = opMap.$InitMAP(parms);
}
/*创建节点的图层*/
var parmL = {
......@@ -1051,16 +1362,54 @@ export default {
},
},
watch: {
cxSj: {
handler() {
this.getPhoneTrack();
},
// cxSj: {
// handler() {
// this.getPhoneTrack();
// },
// },
valueCxgl(val) {
this.scQueryData.kssj = val[0];
this.scQueryData.jssj = val[1];
this.csQueryData.kssj = val[0];
this.csQueryData.jssj = val[1];
this.$refs.scadd.doQuery("yes");
this.$refs.csadd.doQuery("yes");
},
valueThglfx(val) {
this.thglFxQueryData.kssj = val[0];
this.thglFxQueryData.jssj = val[1];
this.postGetThjlAnalysisList();
},
},
};
</script>
<style scoped lang="scss">
.padding24 {
padding: 0 20px;
}
.bqTag {
display: inline-block;
height: 32px;
line-height: 32px;
background: #ff750a;
opacity: 0.6;
border-radius: 20px;
cursor: pointer;
padding: 0 24px;
color: #fff;
margin: 8px 12px 8px 0;
}
/deep/.el-tabs__header {
margin: 0 0 14px;
position: relative;
background: #fff;
padding: 0 0 0 20px;
top: -10px;
}
.gxlxr {
width: 45%;
}
.sjda {
padding: 0 10px;
.sjda_top {
......@@ -1329,7 +1678,7 @@ export default {
.sjda_bottom_tlgl {
margin-right: 20px;
width: 50%;
height: 272px;
height: 520px;
background-color: #fff;
.sjda_bottom_tlgl_title {
......@@ -1370,7 +1719,7 @@ export default {
.sjda_bottom_xwfx {
width: 50%;
height: 272px;
height: 520px;
background-color: #fff;
.sjda_bottom_xwfx_title {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment