Commit 5cff0384 by liupeng

Merge branch 'dev_xzeq' of http://47.92.108.28/changchao/founder_vue into dev_xzeq

parents 367e9105 7b90aaee
{
"code":200,
"data":{
"rows":[
{
"ids":"15263119891",
"label":"盗窃案",
"codeType":"CODE_GABAJZLB",
"text":"盗窃案",
"pId":"",
"id":"01",
"isParent":true,
"children":[
{
"ids":"15263119896",
"label":"入户盗窃",
"codeType":"CODE_GABAJZLB",
"text":"入户盗窃",
"pId":"01",
"id":"01001000",
"isParent":true,
"children":[]
},
{
"ids":"15263119897",
"label":"营业场所盗窃",
"codeType":"CODE_GABAJZLB",
"text":"营业场所盗窃",
"pId":"01",
"id":"01002000",
"isParent":true,
"children":[]
},
{
"ids":"15263119898",
"label":"盗窃办公场所",
"codeType":"CODE_GABAJZLB",
"text":"盗窃办公场所",
"pId":"01",
"id":"01003000",
"isParent":true,
"children":[]
},
{
"ids":"15263119899",
"label":"盗窃仓库",
"codeType":"CODE_GABAJZLB",
"text":"盗窃仓库",
"pId":"01",
"id":"01004000",
"isParent":true,
"children":[]
},
{
"ids":"15263119900",
"label":"盗窃工地",
"codeType":"CODE_GABAJZLB",
"text":"盗窃工地",
"pId":"01",
"id":"01005000",
"isParent":true,
"children":[]
},
{
"ids":"15263119901",
"label":"盗窃车内物品",
"codeType":"CODE_GABAJZLB",
"text":"盗窃车内物品",
"pId":"01",
"id":"01006000",
"isParent":true,
"children":[]
},
{
"ids":"15263119902",
"label":"盗窃机动车",
"codeType":"CODE_GABAJZLB",
"text":"盗窃机动车",
"pId":"01",
"id":"01007000",
"isParent":true,
"children":[]
},
{
"ids":"15263119903",
"label":"盗窃非机动车",
"codeType":"CODE_GABAJZLB",
"text":"盗窃非机动车",
"pId":"01",
"id":"01008000",
"isParent":true,
"children":[]
},
{
"ids":"15263119904",
"label":"随窃",
"codeType":"CODE_GABAJZLB",
"text":"随窃",
"pId":"01",
"id":"01009000",
"isParent":true,
"children":[]
},
{
"ids":"15263119905",
"label":"扒窃",
"codeType":"CODE_GABAJZLB",
"text":"扒窃",
"pId":"01",
"id":"01010000",
"isParent":true,
"children":[]
},
{
"ids":"15263119906",
"label":"盗窃车辆配件、燃油",
"codeType":"CODE_GABAJZLB",
"text":"盗窃车辆配件、燃油",
"pId":"01",
"id":"01011000",
"isParent":true,
"children":[]
},
{
"ids":"15263119907",
"label":"盗窃运输物资",
"codeType":"CODE_GABAJZLB",
"text":"盗窃运输物资",
"pId":"01",
"id":"01012000",
"isParent":true,
"children":[]
},
{
"ids":"15263119908",
"label":"盗窃公共设施",
"codeType":"CODE_GABAJZLB",
"text":"盗窃公共设施",
"pId":"01",
"id":"01013000",
"isParent":true,
"children":[]
},
{
"ids":"15263119909",
"label":"非接触性盗窃",
"codeType":"CODE_GABAJZLB",
"text":"非接触性盗窃",
"pId":"01",
"id":"01014000",
"isParent":true,
"children":[]
},
{
"ids":"15263119910",
"label":"盗窃文物",
"codeType":"CODE_GABAJZLB",
"text":"盗窃文物",
"pId":"01",
"id":"01015000",
"isParent":true,
"children":[]
},
{
"ids":"15263119911",
"label":"盗窃枪支弹药",
"codeType":"CODE_GABAJZLB",
"text":"盗窃枪支弹药",
"pId":"01",
"id":"01016000",
"isParent":true,
"children":[]
},
{
"ids":"15263119912",
"label":"其他盗窃",
"codeType":"CODE_GABAJZLB",
"text":"其他盗窃",
"pId":"01",
"id":"01017000",
"isParent":true,
"children":[]
}
]
},
{
"ids":"15263119892",
"label":"诈骗案",
"codeType":"CODE_GABAJZLB",
"text":"诈骗案",
"pId":"",
"id":"02",
"isParent":true,
"children":[
{
"ids":"15263119913",
"label":"接触性诈骗",
"codeType":"CODE_GABAJZLB",
"text":"接触性诈骗",
"pId":"02",
"id":"02001000",
"isParent":true,
"children":[]
},
{
"ids":"15263119914",
"label":"非接触性诈骗",
"codeType":"CODE_GABAJZLB",
"text":"非接触性诈骗",
"pId":"02",
"id":"02002000",
"isParent":true,
"children":[]
},
{
"ids":"15263119915",
"label":"医保诈骗",
"codeType":"CODE_GABAJZLB",
"text":"医保诈骗",
"pId":"02",
"id":"02003000",
"isParent":true,
"children":[]
}
]
},
{
"ids":"15263119893",
"label":"抢劫案",
"codeType":"CODE_GABAJZLB",
"text":"抢劫案",
"pId":"",
"id":"03",
"isParent":true,
"children":[
{
"ids":"15263119916",
"label":"入户抢劫",
"codeType":"CODE_GABAJZLB",
"text":"入户抢劫",
"pId":"03",
"id":"03001000",
"isParent":true,
"children":[]
},
{
"ids":"15263119917",
"label":"公共场所抢劫",
"codeType":"CODE_GABAJZLB",
"text":"公共场所抢劫",
"pId":"03",
"id":"03002000",
"isParent":true,
"children":[]
},
{
"ids":"15263119918",
"label":"街面抢劫",
"codeType":"CODE_GABAJZLB",
"text":"街面抢劫",
"pId":"03",
"id":"03003000",
"isParent":true,
"children":[]
},
{
"ids":"15263119919",
"label":"其他抢劫",
"codeType":"CODE_GABAJZLB",
"text":"其他抢劫",
"pId":"03",
"id":"03004000",
"isParent":true,
"children":[]
}
]
},
{
"ids":"15263119894",
"label":"抢夺案",
"codeType":"CODE_GABAJZLB",
"text":"抢夺案",
"pId":"",
"id":"04",
"isParent":true,
"children":[
{
"ids":"15263119920",
"label":"飞车抢夺",
"codeType":"CODE_GABAJZLB",
"text":"飞车抢夺",
"pId":"04",
"id":"04001000",
"isParent":true,
"children":[]
},
{
"ids":"15263119921",
"label":"徒步抢夺",
"codeType":"CODE_GABAJZLB",
"text":"徒步抢夺",
"pId":"04",
"id":"04002000",
"isParent":true,
"children":[]
},
{
"ids":"15263119922",
"label":"商铺抢夺",
"codeType":"CODE_GABAJZLB",
"text":"商铺抢夺",
"pId":"04",
"id":"04003000",
"isParent":true,
"children":[]
},
{
"ids":"15263119923",
"label":"公交地铁抢夺",
"codeType":"CODE_GABAJZLB",
"text":"公交地铁抢夺",
"pId":"04",
"id":"04004000",
"isParent":true,
"children":[]
},
{
"ids":"15263119924",
"label":"其他抢夺",
"codeType":"CODE_GABAJZLB",
"text":"其他抢夺",
"pId":"04",
"id":"04005000",
"isParent":true,
"children":[]
}
]
},
{
"ids":"15263119895",
"label":"招摇撞骗案",
"codeType":"CODE_GABAJZLB",
"text":"招摇撞骗案",
"pId":"",
"id":"05",
"isParent":true,
"children":[
{
"ids":"15263119925",
"label":"冒充国家工作人员招摇撞骗",
"codeType":"CODE_GABAJZLB",
"text":"冒充国家工作人员招摇撞骗",
"pId":"05",
"id":"05001000",
"isParent":true,
"children":[]
},
{
"ids":"15263119926",
"label":"冒充军人招摇撞骗",
"codeType":"CODE_GABAJZLB",
"text":"冒充军人招摇撞骗",
"pId":"05",
"id":"05002000",
"isParent":true,
"children":[]
},
{
"ids":"15263119927",
"label":"冒充警察招摇撞骗",
"codeType":"CODE_GABAJZLB",
"text":"冒充警察招摇撞骗",
"pId":"05",
"id":"05003000",
"isParent":true,
"children":[]
}
]
}
]
},
"success":true,
"message":"成功"
}
\ No newline at end of file
/*
* @Author: your name
* @Date: 2021-08-25 19:21:14
* @LastEditTime: 2021-10-18 14:54:17
* @LastEditTime: 2021-10-19 11:55:21
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\api\cbyp.js
......@@ -63,3 +63,6 @@ export const insertXzRgcbxx = params =>
export const insertBshWhiteList = params =>
post(`${base.alyIP}/bshgl/insertBshWhiteList`, params);
//删除我收藏的案件
export const deleteWscdaj = params =>
post(`${base.alyIP}/wscdaj/deleteWscdaj`, params);
/*
* @Author: your name
* @Date: 2021-10-18 10:25:39
* @LastEditTime: 2021-10-18 10:28:47
* @LastEditTime: 2021-10-19 18:37:29
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\api\dictionaryCode.js
......@@ -9,32 +9,12 @@
import { get, post, postJson } from "@/utils/http.js";
import base from "@/api/base";
export const esAsjQuery = params =>
post(`${base.alyIP}/newAsjbz/esAsjQuery`, params);
export const queryCodeByType = params =>
get(`${base.alyIP}/queryCodeByType`, params);
export const saveTableTitleRedis = params =>
postJson(`${base.alyIP}/saveTableTitleRedis`, params);
export const EsAsjQuery = params =>
postJson(`${base.alyIP}/dwcx/EsAsjQuery`, params);
export const EsXyrQuery = params =>
postJson(`${base.alyIP}/dwcx/EsXyrQuery`, params);
export const EsShrQuery = params =>
postJson(`${base.alyIP}/dwcx/EsShrQuery`, params);
export const queryDictItem = params =>
post(`${base.alyIP}/dic/queryDictItem`, params);
export const getDictitemByCode = params =>
post(`${base.alyIP}/dic/getDictitemByCode`, params);
export const getTableTitleRedis = params =>
get(`${base.alyIP}/getTableTitleRedis`, params);
export const esAsjQuery = params =>
post(`${base.alyIP}/newAsjbz/esAsjQuery`, params);
......@@ -26,7 +26,7 @@ $ns-font-size-title: 30px;
$header-height:52px;
$header-fontSize:18px;
/*区域宽度*/
$wrap-width:1400px;
$wrap-width: calc(100% - 40px);
$title-color:#69ABE9;
$border-bg:#409EFF;
$-left-active-background:rgba(64, 158, 255, 0.08); //左侧选中及hover背景色
......
......@@ -472,7 +472,7 @@ export default {
if (res.code == 200) {
this.$message.success("生成线索组成功");
this.tableInfor = [];
} else if (res.data.result == "0") {
} else {
this.$message.error("生成线索组失败");
}
});
......@@ -521,7 +521,7 @@ export default {
}
}
json.page = 1;
json.rows = 5000;
json.limit = 5000;
tHeader = [];
filterVal = [];
self.propdefaultFormThead.forEach((val) => {
......@@ -587,7 +587,8 @@ export default {
},
handleSizeChange(val) {
this.page_size = val;
this.formData.rows = val;
if (this.formData.rows) this.formData.rows = val;
if (this.formData.limit) this.formData.limit = val;
this.doQuery("yes");
},
clearData() {
......@@ -599,12 +600,14 @@ export default {
i != "typeFlag" &&
i != "unitcode" &&
i != "grade" &&
i != "flwssfhgpdbz"
i != "flwssfhgpdbz" &&
i != "limit"
) {
self.formData[i] = "";
}
}
self.formData["rows"] = 10;
if (self.formData["rows"]) self.formData["rows"] = 10;
if (self.formData["limit"]) self.formData["limit"] = 10;
self.formData["page"] = 1;
},
formatJson(filterVal, jsonData) {
......@@ -774,6 +777,9 @@ export default {
</style>
<style scoped lang="scss">
.Content {
margin: 20px 20px 20px 0 !important;
}
@import "@/assets/styles/rightContent.scss";
/deep/button.el-button.el-button--default {
line-height: 5px;
......
......@@ -9,7 +9,7 @@
</div> -->
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="标识号管理" name="bshgl">
<div class="Content paneDiv paneDiv2" style="margin: 8px 20px">
<div class="Content paneDiv paneDiv2" style="margin: 0px 0px 20px 0px">
<div class="cxtjWrap">
<el-row>
<el-col :span="24">
......@@ -225,7 +225,7 @@
</div>
</div>
</div>
<div class="Content paneDiv paneDiv2" style="margin: 8px 20px">
<div class="Content paneDiv paneDiv2" style="margin: 0px 0px 20px 0px">
<div class="">
<el-row style="width: 99%; margin: 0 auto">
<el-col :span="24">
......@@ -390,7 +390,7 @@
</div>
</el-tab-pane>
<el-tab-pane label="白名单管理" name="bmdgl">
<div class="Content paneDiv paneDiv2" style="margin: 8px 20px">
<div class="Content paneDiv paneDiv2" style="margin: 0px 0px 20px 0px">
<div class="cxtjWrap">
<el-row>
<el-col :span="24">
......@@ -606,7 +606,7 @@
</div>
</div>
</div>
<div class="Content paneDiv paneDiv2" style="margin: 8px 20px">
<div class="Content paneDiv paneDiv2" style="margin: 0px 0px 20px 0px">
<div class="">
<el-row style="width: 99%; margin: 0 auto">
<el-col :span="24">
......@@ -957,7 +957,7 @@ export default {
}
}
json.page = 1;
json.rows = 5000;
json.limit = 5000;
tHeader = [];
filterVal = [];
self.propdefaultFormThead.forEach((val) => {
......@@ -1025,12 +1025,14 @@ export default {
},
handleSizeChange(val) {
this.page_size = val;
this.formData.rows = val;
if (this.formData.rows) this.formData.rows = val;
if (this.formData.limit) this.formData.limit = val;
this.doQuery("yes");
},
handleSizeChangeBmd(val) {
this.page_size = val;
this.formData.rows = val;
if (this.formData.rows) this.formData.rows = val;
if (this.formData.limit) this.formData.limit = val;
this.doQueryBmd("yes");
},
clearData() {
......@@ -1042,12 +1044,14 @@ export default {
i != "typeFlag" &&
i != "unitcode" &&
i != "grade" &&
i != "flwssfhgpdbz"
i != "flwssfhgpdbz" &&
i != "limit"
) {
self.formData[i] = "";
}
}
self.formData["rows"] = 10;
if(self.formData["rows"]) self.formData["rows"] = 10;
if(self.formData["limit"]) self.formData["limit"] = 10;
self.formData["page"] = 1;
},
formatJson(filterVal, jsonData) {
......@@ -1261,14 +1265,16 @@ export default {
<style scoped lang="scss">
@import "@/assets/styles/rightContent.scss";
/deep/.el-tabs__header.is-top {
margin-top: 20px !important;
margin-bottom: -13px !important;
background-color: #fff;
width: 97.5%;
margin-left: 20px !important;
width: 99.96%;
border-bottom: 0px solid;
border-radius: 8px;
z-index: 200;
}
.rightContent {
margin: 20px 20px 20px 0;
}
</style>
......@@ -9,6 +9,11 @@
</div> -->
<div class="Content paneDiv paneDiv2" style="margin: 8px 20px">
<div class="cxtjWrap">
<el-row>
<el-col :span="24">
<span class="flTtitle">查询条件</span>
</el-col>
</el-row>
<el-form
label-position="right"
label-width="140px"
......@@ -201,8 +206,7 @@
</el-form>
<!--按钮-->
<div class="btm-btns">
<div class="btm-btns btnGrounp">
<el-button
type="primary"
size="small"
......@@ -229,13 +233,24 @@
<div class="">
<el-row style="width: 99%; margin: 0 auto">
<el-col :span="24">
<div
style="
display: flex;
align-items: center;
justify-content: space-between;
"
>
<div>
<span class="flTtitle">案件信息</span>
<!--可配置化图标-->
<div class="total">
<span> {{ tableDataLength }} </span>
<span class="flTotal">{{ tableDataLength }}条信息</span>
</div>
<span class="export-btn">
<el-button plain size="small" @click="export2Excel" class="export"
<el-button
plain
size="small"
@click="export2Excel"
class="export"
><i
class="iconfont iconshangchuan"
style="margin-right: 2px"
......@@ -243,6 +258,7 @@
>导出
</el-button>
</span>
</div>
</el-col>
</el-row>
......@@ -444,7 +460,7 @@
"
@click="goDetail(scope.row, 'xsz')"
v-if="scope.row['cbzjczqs']"
>{{ scope.row['cbzjczqs'] }}</span
>{{ scope.row["cbzjczqs"] }}</span
>
</div>
<div v-else v-html="scope.row[columnTitle.prop]"></div>
......@@ -490,48 +506,48 @@
</template>
<script>
import SelectTree from '@c/tree_components.vue'
import SelectTreeDialog from '@c/treeCode_components.vue'
import LazySelectTreeDialog from '@c/lazy_treeCode_components.vue'
import Http from '@/utils/http.js'
import axios from 'axios'
import { esAsjQuery } from '@/api/queryAj.js'
import { toQueryXszxx, updateCbxsz } from '@/api/cbyp.js'
import { get, post, postform } from '@/utils/http.js'
import SelectTree from "@c/tree_components.vue";
import SelectTreeDialog from "@c/treeCode_components.vue";
import LazySelectTreeDialog from "@c/lazy_treeCode_components.vue";
import Http from "@/utils/http.js";
import axios from "axios";
import { esAsjQuery } from "@/api/queryAj.js";
import { toQueryXszxx, updateCbxsz } from "@/api/cbyp.js";
import { get, post, postform } from "@/utils/http.js";
export default {
name: 'ptCxForm',
name: "ptCxForm",
components: {
SelectTree,
SelectTreeDialog,
LazySelectTreeDialog
LazySelectTreeDialog,
},
props: {
pageBs: String,
cxQueryField: {
type: Array,
default: () => []
default: () => [],
},
cxDefaultFormThead: {
type: Array,
default: () => []
default: () => [],
},
cxDefaultFormTheads: {
type: Array,
default: () => []
default: () => [],
},
cxFormData: Object,
cxUrl: String,
childrenUrl: String,
header: String,
pageFlag: String
pageFlag: String,
},
data () {
data() {
return {
tPage: null,
checkResult: true,
asjbh: '',
spType: '',
asjbh: "",
spType: "",
pageBszfc: this.pageBs,
tableLoading: true, //loading
currentPage1: 1, //表格页码
......@@ -541,95 +557,97 @@ export default {
propQueryField: this.cxQueryField, //查询条件
key: 1, //table得key
tableDataLength: 0, //表格总数
talbeBhgCount: '', // 不合格
talbehgCount: '', // 合格
talbeBhgCount: "", // 不合格
talbehgCount: "", // 合格
tableData: [], //表格数据
propdefaultFormThead: this.cxDefaultFormThead, //表格表头
propdefaultFormTheads: this.cxDefaultFormTheads, //子表格表头
excelHeader: '串并研判',
cz: this.pageFlag
}
excelHeader: "串并研判",
cz: this.pageFlag,
};
},
methods: {
// 新增按钮
goNew () {
goNew() {
this.$router.pushToTab({
path: 'xzrgcb'
})
path: "xzrgcb",
});
},
turnToEdit (val, type) {
if (type == 'delete') {
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
turnToEdit(val, type) {
if (type == "delete") {
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
updateCbxsz({
cbxszbhs: val.xszajbh
}).then(res => {
cbxszbhs: val.xszajbh,
}).then((res) => {
if (res.code == 200) {
this.doQuery('yes')
this.doQuery("yes");
} else {
this.$message({
type: 'error',
message: '删除失败'
})
type: "error",
message: "删除失败",
});
}
this.$options.methods.doQuery()
})
this.$options.methods.doQuery();
});
this.$message({
type: 'success',
message: '删除成功!'
})
type: "success",
message: "删除成功!",
});
})
.catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
} else if (type == 'add') {
debugger
type: "info",
message: "已取消删除",
});
});
} else if (type == "add") {
debugger;
this.$router.pushToTab({
path: 'djwzba',
path: "djwzba",
query: {
xszajbh: val.xszajbh,
cbxgfwbzh: val.cbxgfwbzh,
}
})
},
});
}
},
rowClick (row, column, event) {
var self = this
self.showLoading()
let formData = {}
;(formData.xszajbh = row.xszajbh),
(formData.start = 1),
(formData.length = 10)
var index = self.tableData.findIndex(item => item.xszajbh == row.xszajbh)
post(this.childrenUrl, formData).then(response => {
rowClick(row, column, event) {
var self = this;
self.showLoading();
let formData = {};
(formData.xszajbh = row.xszajbh),
(formData.page = 1),
(formData.limit = 10);
var index = self.tableData.findIndex(
(item) => item.xszajbh == row.xszajbh
);
post(this.childrenUrl, formData).then((response) => {
if (response.code == 200) {
self.tableData[index].children = response.data.data
self.closeLoading()
self.tableData[index].children = response.data.data;
self.closeLoading();
} else {
/*self.$message({
type: "error",
message: response.data.message
});*/
self.closeLoading()
self.closeLoading();
}
})
});
},
goDetail (scope, type) {
if (type == 'detail') {
goDetail(scope, type) {
if (type == "detail") {
this.$router.pushToTab({
path: 'ajbzDetail',
path: "ajbzDetail",
query: {
asjbh: scope.asjbh
}
})
} else if (type == 'qg') {
asjbh: scope.asjbh,
},
});
} else if (type == "qg") {
this.$router.pushToTab({
path: "qgxxxx",
query: {
......@@ -638,252 +656,262 @@ export default {
xlajbh: scope.xlajbh,
},
});
}else if(type == "xsz"){
debugger
} else if (type == "xsz") {
debugger;
this.$router.pushToTab({
path: 'hbxsz',
path: "hbxsz",
query: {
xszajbh: scope.xszajbh,
hbxszType: this.formData.typeFlag
}
})
hbxszType: this.formData.typeFlag,
},
});
}
},
export2Excel () {
export2Excel() {
/*导出*/
let self = this,
tHeader = [],
filterVal = []
filterVal = [];
if (self.tableDataLength > 5000) {
self.$message({
type: 'error',
message: '最多只能导出5000条'
})
type: "error",
message: "最多只能导出5000条",
});
} else {
const loading = this.$loading({
lock: true,
text: '正在导出...',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
})
let formDatas = {}
text: "正在导出...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
let formDatas = {};
for (let i in self.formData) {
if (i != 'cxSj') {
formDatas[i] = self.formData[i]
if (i != "cxSj") {
formDatas[i] = self.formData[i];
} else {
formDatas[i] =
self.formData[i] != '' && self.formData[i] != null
? self.formData[i].join(' - ')
: ''
self.formData[i] != "" && self.formData[i] != null
? self.formData[i].join(" - ")
: "";
}
}
formDatas.page = 1
formDatas.rows = 5000
tHeader = []
filterVal = []
self.propdefaultFormThead.forEach(val => {
tHeader.push(val.label)
filterVal.push(val.prop)
})
post(this.cxUrl, formDatas).then(res => {
formDatas.page = 1;
formDatas.limit = 5000;
tHeader = [];
filterVal = [];
self.propdefaultFormThead.forEach((val) => {
tHeader.push(val.label);
filterVal.push(val.prop);
});
post(this.cxUrl, formDatas).then((res) => {
if (res.code === 200) {
res.data.data.forEach(item => {
item.xszmc = `${item.cbajAjmc}(组号:${item.xszajbh})`
item.cbajAjmc = `${item.cbajAjmc}(组号:${item.xszajbh})`
})
let result = res.data.rows || res.data.data
result.forEach((item) => {
item.xszmc = `${item.cbajAjmc}(组号:${item.xszajbh})`;
item.cbajAjmc = `${item.cbajAjmc}(组号:${item.xszajbh})`;
});
require.ensure([], () => {
const { export_json_to_excel } = require('../../utils/Export2Excel')
const list = res.data.data
const data = self.formatJson(filterVal, list)
debugger
export_json_to_excel(tHeader, data, self.excelHeader)
})
const {
export_json_to_excel,
} = require("../../utils/Export2Excel");
const list = result;
const data = self.formatJson(filterVal, list);
debugger;
export_json_to_excel(tHeader, data, self.excelHeader);
});
loading.close();
} else {
loading.close();
self.$message({
type: 'error',
message: '查询失败'
})
type: "error",
message: "查询失败",
});
}
self.tableLoadingEmit = false
})
self.tableLoadingEmit = false;
});
}
},
delectByAjbh (asjbh) {
var self = this
this.$confirm('删除后不可恢复,是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
message: '删除成功!'
delectByAjbh(asjbh) {
var self = this;
this.$confirm("删除后不可恢复,是否删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
message: "删除成功!",
})
.then(() => {})
.catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
type: "info",
message: "已取消删除",
});
});
},
toXg (item, type) {
toXg(item, type) {
let routeData = this.$router.resolve({
path: '/malamodify',
query: { asjbh: item.asjbh, type: type }
})
window.open(routeData.href, '_blank')
path: "/malamodify",
query: { asjbh: item.asjbh, type: type },
});
window.open(routeData.href, "_blank");
},
toLasxxg (asjbh, type, type2) {
toLasxxg(asjbh, type, type2) {
let routeData = this.$router.resolve({
path: '/malasxmodify',
query: { asjbh: asjbh, type: type, type2 }
})
window.open(routeData.href, '_blank')
path: "/malasxmodify",
query: { asjbh: asjbh, type: type, type2 },
});
window.open(routeData.href, "_blank");
},
closeLoading () {
this.tableLoading = false
closeLoading() {
this.tableLoading = false;
},
showLoading () {
this.tableLoading = true
showLoading() {
this.tableLoading = true;
},
handleSizeChange (val) {
this.page_size = val
this.formData.rows = val
this.doQuery('yes')
handleSizeChange(val) {
this.page_size = val;
if(this.formData.rows) this.formData.rows = val;
if(this.formData.limit) this.formData.limit = val;
this.doQuery("yes");
},
clearData () {
let self = this
clearData() {
let self = this;
for (let i in self.formData) {
if (
i != 'rows' &&
i != 'page' &&
i != 'typeFlag' &&
i != 'unitcode' &&
i != 'grade' &&
i != 'flwssfhgpdbz'
i != "rows" &&
i != "page" &&
i != "typeFlag" &&
i != "unitcode" &&
i != "grade" &&
i != "flwssfhgpdbz" &&
i != "limit"
) {
self.formData[i] = ''
self.formData[i] = "";
}
}
self.formData['rows'] = 10
self.formData['page'] = 1
if(self.formData["rows"]) self.formData["rows"] = 10;
if(self.formData["limit"]) self.formData["limit"] = 10;
self.formData["page"] = 1;
},
formatJson (filterVal, jsonData) {
let arr = []
jsonData.map(v => {
let arr1 = []
filterVal.map(j => {
if (j.indexOf(',') != -1) {
let arr = j.split(',')
let data = ''
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]]
data += arr[i].split(":")[0] + ":" + v[arr[i].split(":")[1]];
}
arr1.push(data)
arr1.push(data);
} else {
arr1.push(v[j])
arr1.push(v[j]);
}
})
arr.push(arr1)
})
return arr
});
arr.push(arr1);
});
return arr;
},
handleCurrentChange (val) {
debugger
this.currentPage1 = val
this.formData.page = val
this.formData.start = val
this.doQuery('yes')
handleCurrentChange(val) {
debugger;
this.currentPage1 = val;
this.formData.page = val;
this.formData.start = val;
this.doQuery("yes");
},
tableRowClassName ({ rowIndex }) {
tableRowClassName({ rowIndex }) {
if (rowIndex % 2 == 0) {
return ''
return "";
} else {
return 'success-row'
return "success-row";
}
},
doQueryBtn (val) {
doQueryBtn(val) {
if (val) {
this.formData.sfhgpdbz = ''
this.formData.sfhgpdbz = "";
}
this.formData.page = 1
this.doQuery('yes')
this.formData.page = 1;
this.doQuery("yes");
},
doQuery (flag) {
this.showLoading()
doQuery(flag) {
this.showLoading();
let self = this,
formDatas = {}
formDatas = {};
for (let i in self.formData) {
if (i != 'cxSj') {
formDatas[i] = self.formData[i]
if (i != "cxSj") {
formDatas[i] = self.formData[i];
} else {
formDatas[i] =
self.formData[i] != '' && self.formData[i] != null
? self.formData[i].join(' - ')
: ''
self.formData[i] != "" && self.formData[i] != null
? self.formData[i].join(" - ")
: "";
}
}
if (flag) {
post(this.cxUrl, formDatas).then(response => {
post(this.cxUrl, formDatas).then((response) => {
if (response.code == 200) {
response.data.data.forEach(item => {
item.children = []
item.xszmc = `${item.cbajAjmc}(组号:${item.xszajbh})`
item.cbajAjmc = `${item.cbajAjmc}(组号:${item.xszajbh})`
item.cbxsypCbaj1 = `${item.djsj}通过${item.cblx}(${item.bshlx})串并${item.cbxsypCbajs}起案件,其中已破案${item.rn}起`
item.cbxsypCbaj2 = `${item.djsj}通过${item.cblx},串并${item.cbxsypCbajs}起案件,其中已破案${item.rn}起`
})
self.tableData = response.data.data
self.tableDataLength = response.data.iTotalRecords
self.tPage = Math.ceil(response.data.iTotalRecords / self.page_size)
self.closeLoading()
let result = response.data.data || response.data.rows;
result.forEach((item) => {
item.children = [];
item.xszmc = `${item.cbajAjmc}(组号:${item.xszajbh})`;
item.cbajAjmc = `${item.cbajAjmc}(组号:${item.xszajbh})`;
item.cbxsypCbaj1 = `${item.djsj}通过${item.cblx}(${item.bshlx})串并${item.cbxsypCbajs}起案件,其中已破案${item.rn}起`;
item.cbxsypCbaj2 = `${item.djsj}通过${item.cblx},串并${item.cbxsypCbajs}起案件,其中已破案${item.rn}起`;
});
self.tableData = result;
self.tableDataLength =
response.data.iTotalRecords || response.data.total;
self.tPage = Math.ceil(
response.data.iTotalRecords ||
response.data.total / self.page_size
);
self.closeLoading();
} else {
/*self.$message({
type: "error",
message: response.data.message
});*/
self.closeLoading()
}
})
self.closeLoading();
}
});
}
},
mounted () {
let self = this
},
mounted() {
let self = this;
/*获取字典*/
self.propQueryField.forEach(val => {
if (val.type == 'code' || val.type == 'codeTreeDialog') {
self.propQueryField.forEach((val) => {
if (val.type == "code" || val.type == "codeTreeDialog") {
if (val.codeOptions.length == 0) {
axios
.get(`JsonData/${val.codeTree}.json`)
.then(res => {
self.$set(val, 'codeOptions', res.data.rows)
})
.catch(err => {
console.log(err)
.then((res) => {
self.$set(val, "codeOptions", res.data.rows);
})
.catch((err) => {
console.log(err);
});
}
}
})
self.doQuery('yes')
});
self.doQuery("yes");
},
computed: {
//过滤掉重大伤亡重复人员等的操作列
ifShowOperation () {
ifShowOperation() {
return (
this.pageBszfc != 'zczjcfry' &&
this.pageBszfc != 'zdswxxgl' &&
this.pageBszfc != 'cfryIndex' &&
this.pageBszfc != 'jsbhgl'
)
}
}
}
this.pageBszfc != "zczjcfry" &&
this.pageBszfc != "zdswxxgl" &&
this.pageBszfc != "cfryIndex" &&
this.pageBszfc != "jsbhgl"
);
},
},
};
</script>
<style>
@import url('../../assets/styles/iconfont.css');
@import url("../../assets/styles/iconfont.css");
.el-dialog__body {
padding: 10px 15px !important;
......@@ -943,5 +971,8 @@ export default {
</style>
<style scoped lang="scss">
@import '@/assets/styles/rightContent.scss';
@import "@/assets/styles/rightContent.scss";
.Content {
margin: 20px 20px 20px 0 !important;
}
</style>
......@@ -240,7 +240,7 @@ export default {
});
} else if (type == "qg") {
this.$router.pushToTab({
path: "qgaj",
path: "zqgaj",
query: {
xszajbh: scope.xszajbh,
cbxgfwbzh: scope.cbxgfwbzh,
......@@ -295,7 +295,7 @@ export default {
post(this.cxUrl, formDatas).then((res) => {
if (res.code === 200) {
require.ensure([], () => {
const { export_json_to_excel } = require("../utils/Export2Excel");
const { export_json_to_excel } = require("../../utils/Export2Excel");
const list = res.data;
const data = self.formatJson(filterVal, list);
export_json_to_excel(tHeader, data, self.excelHeader);
......@@ -483,7 +483,7 @@ export default {
};
</script>
<style lang="scss">
@import url("../assets/styles/iconfont.css");
@import url("../../assets/styles/iconfont.css");
.el-dialog__body {
padding: 10px 15px !important;
......
......@@ -528,7 +528,7 @@ export default {
}
}
json.page = 1;
json.rows = 5000;
json.limit = 5000;
tHeader = [];
filterVal = [];
self.propdefaultFormThead.forEach((val) => {
......@@ -594,7 +594,8 @@ export default {
},
handleSizeChange(val) {
this.page_size = val;
this.formData.rows = val;
if(this.formData.rows) this.formData.rows = val;
if(this.formData.limit) this.formData.limit = val;
this.doQuery("yes");
},
// 新增按钮
......@@ -612,13 +613,16 @@ export default {
i != "typeFlag" &&
i != "unitcode" &&
i != "grade" &&
i != "flwssfhgpdbz"
i != "flwssfhgpdbz" &&
i != "limit" &&
i != "type"
) {
self.formData[i] = "";
}
}
self.formData["rows"] = 10;
self.formData["page"] = 1;
if (self.formData["rows"]) self.formData["rows"] = 10;
if (self.formData["limit"]) self.formData["page"] = 10;
if (self.formData["page"]) self.formData["page"] = 1;
},
formatJson(filterVal, jsonData) {
let arr = [];
......@@ -679,8 +683,11 @@ export default {
debugger;
self.tableData =
response.data.rows || response.data.data || response.data.result;
self.tableDataLength = response.data.recordsTotal;
self.tPage = Math.ceil(response.data.recordsTotal / self.page_size);
self.tableDataLength =
response.data.recordsTotal || response.data.total;
self.tPage = Math.ceil(
response.data.recordsTotal || response.data.total / self.page_size
);
self.closeLoading();
} else {
/*self.$message({
......@@ -787,4 +794,7 @@ export default {
<style scoped lang="scss">
@import "@/assets/styles/rightContent.scss";
.Content {
margin: 20px 20px 20px 0 !important;
}
</style>
<template>
<div class="loading-layer" v-show="loading">
<div class="loading-anim">
<div class="box">
<i class="el-icon-loading"></i><span style="position: relative; top: -6px;">{{text}}</span>
</div>
</div>
</div>
</template>
<script>
export default {
name: "loading-cover",
props:{
loading:Boolean,
text:{
type:String,
default:'正在加载中...'
}
},
data() {
return {
};
},
methods: {
show() {
this.isShow = true;
},
hide() {
this.isShow = false;
}
}
};
</script>
<style lang="scss">
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.box {
font-size: 17px;
}
.box i{
font-size: 28px;
font-weight: 600;
}
.loading-layer {
width: 100vw;
height: 100vh;
position: fixed;
top: 0;
left: 0;
z-index: 997;
background: rgba(0,0,0,0.3);
}
.loading-anim {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
.loading-anim > view {
position: relative;
width: 40px;
height: 40px;
perspective: 800px;
transform-style: preserve-3d;
transition: all 0.2s ease-out;
}
.loading-anim .border {
position: absolute;
border-radius: 50%;
border: 2px solid;
}
.loading-anim .out {
top: 15%;
left: 15%;
width: 70%;
height: 70%;
border-left-color: transparent !important;
border-right-color: transparent !important;
animation: spin 0.8s linear reverse infinite;
}
.loading-anim .in {
top: 25%;
left: 25%;
width: 50%;
height: 50%;
border-top-color: transparent !important;
border-bottom-color: transparent !important;
animation: spin 0.8s linear infinite;
}
.loading-anim .mid {
top: 40%;
left: 40%;
width: 20%;
height: 20%;
border-left-color: transparent;
border-right-color: transparent;
animation: spin 0.6s linear infinite;
}
</style>
<template>
<div class="paneDiv">
<div>
<div class="titleWrap">
<span class="two-title">{{ field.title }}</span
><span class="dashedBorder"></span>
</div>
<div class="zdyLine" v-if="field.id != 'flxx'">
<el-form-item
:label="item2.name + ':'"
v-for="item2 in field.data"
:key="item2.id"
:prop="item2.id"
:class="'demo-input-suffix zdycol' + item2.col"
>
<!--输入框-->
<el-input
:placeholder="item2.placeholder"
v-model="formD[item2.id]"
clearable
:disabled="item2.isdisabled"
@input="getSeleted(item2, formD[item2.id])"
@clear="getSeleted(item2, formD[item2.id])"
v-if="item2.type == 'text'"
>
</el-input>
<!--下拉框-->
<el-select
v-model="formD[item2.id]"
:placeholder="item2.placeholder"
v-else-if="item2.type == 'select'"
@input="getSeleted(item2, formD[item2.id])"
@clear="getSeleted(item2, formD[item2.id])"
>
<el-option
v-for="item3 in item2.selectData"
:key="item3.value"
:label="item3.name"
:value="item3.value"
>
</el-option>
</el-select>
<!--输入框-最大值与最小值-->
<div
class="zdyInputW zdyInputCol2"
v-else-if="item2.type == 'zdyText'"
>
<el-input
:placeholder="item2.placeholder"
v-model="formD[item2.id]"
:disabled="item2.isdisabled"
@input="getSeleted(item2, formD[item2.id])"
@clear="getSeleted(item2, formD[item2.id])"
>
</el-input>
<el-input
:placeholder="item2.placeholder2"
v-model="formD[item2.id2]"
style="width:calc((100% - 150)/2)"
:disabled="item2.isdisabled"
@input="getSeleted(item2, formD[item2.id2], true)"
@clear="getSeleted(item2, formD[item2.id])"
>
</el-input>
</div>
<!--文本域-->
<el-input
type="textarea"
autosize
:placeholder="item2.placeholder"
v-model="formD[item2.id]"
v-else-if="item2.type == 'textarea'"
:disabled="item2.isdisabled"
@input="getSeleted(item2, formD[item2.id])"
@clear="getSeleted(item2, formD[item2.id])"
>
</el-input>
<!--日期框 日期时间-->
<el-date-picker
v-model="formD[item2.id]"
:type="item2.type"
:placeholder="item2.placeholder"
:picker-options="item2.pickerOptions"
align="right"
unlink-panels
@blur="getSeleted(item2, formD[item2.id])"
@change="getSeleted(item2, formD[item2.id])"
range-separator="至"
start-placeholder="开始日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
suffix-icon="el-icon-date"
:disabled="item2.isdisabled"
v-else-if="item2.type == 'date'"
>
</el-date-picker>
<!--日期框 日期时间范围-->
<el-date-picker
v-model="formD[item2.id]"
:type="item2.type"
:placeholder="item2.placeholder"
:picker-options="item2.pickerOptions"
align="right"
unlink-panels
range-separator="至"
@blur="getSeleted(item2, formD[item2.id])"
@change="getSeleted(item2, formD[item2.id])"
start-placeholder="开始日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
:disabled="item2.isdisabled"
suffix-icon="el-icon-date"
v-else-if="item2.type == 'daterange'"
>
</el-date-picker>
<!--多选框-->
<div class="zdyInputW" v-else-if="item2.type == 'checkbox'">
<el-checkbox-group v-model="formD[item2.id]" size="small">
<el-checkbox
v-for="item3 in item2.checkboxData"
:label="item3"
:key="item3"
>{{ item3 }}</el-checkbox
>
</el-checkbox-group>
</div>
<!--单选框-->
<div class="zdyInputW" v-else-if="item2.type == 'radio'">
<el-radio-group v-model="formD[item2.id]" size="small">
<el-radio
:label="'' + item3.value"
v-for="item3 in item2.radioData"
:key="item3.value"
@change="getRadioValue($event,item3.name,item2)"
>{{ item3.name }}</el-radio
>
</el-radio-group>
</div>
<!--字典框-->
<div
class="zdyInputW"
v-else-if="item2.type == 'code' || item2.type == 'jlCode'"
>
<select-tree
ref="selectCode"
v-model="formD[item2.id]"
:placeholder="'请选择'"
:options="item2.codeOptions"
:sendId="item2.id"
@emitValue="getLbValue"
@emitQkValue="qkValue"
@getSeleted="getCodeSeleted($event, item2)"
/>
</div>
<!--字典弹框懒加载 @emitValue="getLbValue"-->
<div class="zdyInputW"
v-else-if="item2.type == 'lazyCodeTreeDialog'">
<lazy-select-tree-dialog placeholder="请选择"
:sendId="item2.id"
:formData="formD"
:currentItem="item2" />
</div>
<!--字典弹框 @emitValue="getLbValue"-->
<div
class="zdyInputW"
v-else-if="item2.type == 'codeTreeDialog'"
>
<select-tree-dialog
:placeholder="'请选择' + item2.name"
:sendId="item2.id"
:formData="formD"
:currentItem="item2"
:multiple="item2.multiple"
@getDialogSeleted="getCodeSeleted($event, item2)"
/>
</div>
<!--标识号tag-->
<div class="zdyInputW" v-else-if="item2.type == 'tag'">
<el-tag
:key="tag.rcdid"
v-for="tag in item2.tagData"
closable
:disable-transitions="false"
@close="handleClose(tag.rcdid)"
>
{{ tag.kybsh }}
</el-tag>
<el-button class="button-new-tag" size="small" @click="showInput"
>+</el-button
>
</div>
</el-form-item>
<!---->
</div>
<div class="zdyLine checkboxGroup" v-if="field.id == 'flxx'">
<el-checkbox-group v-model="formD[field.id]" size="small" @change="getCheckboxValue($event,field)">
<el-checkbox-button
v-for="item in field.data"
:label="item.id"
:key="item.id"
@change="getChange(item.id)">{{ item.name }}<span class="selectLabel" v-if="item.id == 'zacsfl'"></span>
<el-tooltip placement="right" effect="light">
<div slot="content">
<!---->
<ul
class="popUl"
style="position:absolute;left:-1px;top:-34px;width:90px;"
v-if="item.id == 'nldfl'"
>
<li style="height:auto;">
<el-radio-group v-model="radioNldfl">
<el-radio :label="item2.label" v-for="item2 in LabelList" :key="item2.id" @change="getKey($event,item.id,item2)">{{item2.label}}</el-radio>
</el-radio-group>
</li>
</ul>
<ul
class="popUl"
style="position:absolute;left:-1px;top:-34px;width:90px;"
v-else-if="item.id == 'xbfl'"
>
<li style="height:auto;">
<el-radio-group v-model="radioXbfl">
<el-radio :label="item2.label" v-for="item2 in LabelList" :key="item2.id" @change="getKey($event,item.id,item2)">{{item2.label}}</el-radio>
</el-radio-group>
</li>
</ul>
<ul
class="popUl"
style="position:absolute;left:-1px;top:-34px;width:90px;"
v-else-if="item.id == 'gjfl'"
>
<li style="height:auto;">
<el-radio-group v-model="radioGjfl">
<el-radio :label="item2.label" v-for="item2 in LabelList" :key="item2.id" @change="getKey($event,item.id,item2)">{{item2.label}}</el-radio>
</el-radio-group>
</li>
</ul>
<ul
class="popUl"
style="position:absolute;left:-1px;top:-34px;width:90px;"
v-else-if="item.id == 'hjdfl'"
>
<li style="height:auto;">
<el-radio-group v-model="radioHjdfl">
<el-radio :label="item2.label" v-for="item2 in LabelList" :key="item2.id" @change="getKey($event,item.id,item2)">{{item2.label}}</el-radio>
</el-radio-group>
</li>
</ul>
<ul
class="popUl"
style="position:absolute;left:-1px;top:-34px;width:90px;"
v-else-if="item.id == 'mzfl'"
>
<li style="height:auto;">
<el-radio-group v-model="radioMzfl">
<el-radio :label="item2.label" v-for="item2 in LabelList" :key="item2.id" @change="getKey($event,item.id,item2)">{{item2.label}}</el-radio>
</el-radio-group>
</li>
</ul>
</div>
<span class="selectLabel" v-if="item.id == 'nldfl'">{{
checkedLabelNldfl.substring(0, 1)
}}</span>
<span class="selectLabel" v-else-if="item.id == 'xbfl'">{{
checkedLabelXbfl.substring(0, 1)
}}</span>
<span class="selectLabel" v-else-if="item.id == 'gjfl'">{{
checkedLabelGjfl.substring(0, 1)
}}</span>
<span class="selectLabel" v-else-if="item.id == 'hjdfl'">{{
checkedLabelHjdfl.substring(0, 1)
}}</span>
<span class="selectLabel" v-else-if="item.id == 'mzfl'">{{
checkedLabelMzfl.substring(0, 1)
}}</span>
</el-tooltip>
</el-checkbox-button>
</el-checkbox-group>
</div>
</div>
</div>
</template>
<script>
import SelectTree from "@c/tree_components.vue";
import SelectTreeDialog from "@c/treeCode_components.vue";
import LazySelectTreeDialog from "@c/lazy_treeCode_components.vue";
import axios from "axios";
export default {
name: "formItem",
components: {
SelectTree,
SelectTreeDialog,
LazySelectTreeDialog
},
props: {
formField: Object,
formDa: Object,
deleteIdKey:String,
},
data() {
return {
field: this.formField,
formD: this.formDa,
emitSeleted: [],
LabelList: [
{ label: "嫌疑人", id: "1" },
{ label: "受害人", id: "2" },
{ label: "全部", id: "3" }
],
checkedLabelNldfl: "选",
checkedLabelXbfl: "选",
checkedLabelGjfl: "选",
checkedLabelHjdfl: "选",
checkedLabelMzfl: "选",
radioNldfl:'',
radioXbfl:'',
radioGjfl:'',
radioHjdfl:'',
radioMzfl:'',
};
},
watch: {
deleteIdKey(val){
let self=this;
if(val!=''){
self.field.data.forEach((item)=>{
if(item.id==val){
item.value="";
if(Object.prototype.hasOwnProperty.call(item, "id2")){
item.value2="";
}
}
})
if(self.emitSeleted.length!=0){
self.emitSeleted.splice(self.emitSeleted.findIndex(item => item.id == val),
1)
}
}
},
formD:{
handler(newVal){
if(newVal.flxx.indexOf("nldfl")==-1){
this.radioNldfl="选";
}
if(newVal.flxx.indexOf("xbfl")==-1){
this.radioXbfl="选";
}
if(newVal.flxx.indexOf("gjfl")==-1){
this.radioGjfl="选";
}
if(newVal.flxx.indexOf("hjdfl")==-1){
this.radioHjdfl="选";
}if(newVal.flxx.indexOf("mzfl")==-1){
this.radioMzfl="选";
}
},
deep:true
},
radioNldfl(val){
this.checkedLabelNldfl=val;
},
radioXbfl(val){
this.checkedLabelXbfl=val;
},
radioGjfl(val){
this.checkedLabelGjfl=val;
},
radioHjdfl(val){
this.checkedLabelHjdfl=val;
},
radioMzfl(val){
this.checkedLabelMzfl=val;
},
formField(val) {
this.field = val;
}
},
methods: {
clearZdyAll(val){
let self=this;
self.field.data.forEach((item)=>{
if(item.id==val){
item.value="";
if(Object.prototype.hasOwnProperty.call(item, "id2")){
item.value2="";
}
}
})
},
clearSearchValue(){
let self=this;
if(Array.isArray(self.$refs.selectCode)){
self.$refs.selectCode.forEach(val=>{
val.clearSearchValue();
})
}
},
getChange(id){
let self=this;
self.formD['flxx'].forEach(val => {
if ((val == "nldfl"||val == "xbfl"||val == "gjfl"||val == "hjdfl"||val == "mzfl") && val == id) {//如果没有选受害人还是嫌疑人、全部,默认查嫌疑人
if (
self.formD['flxx'].indexOf(id+"1") < 0 &&
self.formD['flxx'].indexOf(id+"2") < 0
) {
self.formD['flxx'].push(id+"1");
self.setFlxxJtValue(id+"1");
}
}
});
self.getCjFlxx();
if(self.field.data.length!=0){
self.getFlxxName();
}else{
this.getSeleted(self.field,'');
}
},
setFlxxJtValue(data){
if(data=="nldfl1"){
this.radioNldfl="嫌疑人";
}else if(data=="xbfl1"){
this.radioXbfl="嫌疑人";
}else if(data=="gjfl1"){
this.radioGjfl="嫌疑人";
}else if(data=="hjdfl1"){
this.radioHjdfl="嫌疑人";
}else if(data=="mzfl1"){
this.radioMzfl="嫌疑人";
}
},
deleteValue(){
this.emitSeleted=[];
let self=this;
self.field.data.forEach((item)=>{
if(Object.prototype.hasOwnProperty.call(item, "id2")){
item.value2="";
item.value="";
}
})
},
getCjFlxx(){
// 分类信息所有组成的数组和当前选中的分类数组的差集,为了删除多余的嫌疑人还是 受害人分类
let all=[],self=this,differenceSet=[],curren=[];
var tmp=[];
self.field.data.forEach((item)=>{
all.push(item.id);
})
self.formD.flxx.forEach(item2=>{
curren.push(item2);
})
var difference = function(item1, cur1) {
var diff = [];//存放差集
cur1.forEach(item3=>{
tmp.push(item3);
})
item1.forEach(function(val1){
if (cur1.indexOf(val1)<0) {
diff.push(val1);
} else {
if(tmp.length>1){
for(let i=tmp.length-1;i>=0;i--){
if(tmp[i].indexOf(val1)>-1){
tmp.splice(i, 1);
}
}
}else{
tmp.splice(tmp.indexOf(val1), 1);
}
}
});
differenceSet=diff.concat(tmp);
differenceSet.forEach(cur=>{
for(let y=self.formD.flxx.length-1;y>=0;y--){
if(self.formD.flxx[y].indexOf(cur)>-1){
self.formD.flxx.splice(y,1);
}
}
})
}
difference(all,curren);
},
getCheckboxValue(val,item){
/* let arr=[],zname='';
if(val.length!=0){
this.getCjFlxx();
item.data.forEach((val2)=>{
val.forEach((val3)=>{
if(val2.id==val3&&val2.id!="nldfl"&&val2.id!="xbfl"&&val2.id!="gjfl"&&val2.id!="hjdfl"&&val2.id!="mzfl"){
arr.push(val2.name)
}else if(val3.indexOf(val2.id)!=-1){
if(val3.charAt(val3.length-1,1)=='1'){
arr.push('嫌疑人'+val2.name)
}else if(val3.charAt(val3.length-1,1)=='2'){
arr.push('受害人'+val2.name)
}
}
})
})
zname=arr.join("、");
this.getSeleted(item,zname);
}else{
this.getSeleted(item,'');
}*/
},
getFlxxName(){
let self=this,arr2=[];
self.field.data.forEach((val2)=>{
self.formD.flxx.forEach((val3)=>{
if(val2.id==val3&&val2.id!="nldfl"&&val2.id!="xbfl"&&val2.id!="gjfl"&&val2.id!="hjdfl"&&val2.id!="mzfl"){//没有嫌疑人、受害人、全部选项
arr2.push(val2.name)
}else if(val3.indexOf(val2.id)!=-1){
if(val3.charAt(val3.length-1,1)=='1'&&self.formD.flxx.indexOf(val2.id+'2')==-1){
arr2.push('嫌疑人'+val2.name)
}else if(val3.charAt(val3.length-1,1)=='2'&&self.formD.flxx.indexOf(val2.id+'1')==-1){
arr2.push('受害人'+val2.name)
}
}else if(self.formD.flxx.indexOf(val2.id+'1')>-1&&self.formD.flxx.indexOf(val2.id+'2')>-1&&arr2.indexOf(val2.name)==-1){
arr2.push(val2.name)
}
})
})
let zname=arr2.join("、");
self.getSeleted(self.field,zname);
},
getKey(val,id,item){/*嫌疑人受害人全部点击事件*/
let self=this,newValue=id+item.id;
if(self.formD.flxx.length>0){
for(let x=self.formD.flxx.length-1;x>=0;x--){
if(self.formD.flxx[x].indexOf(id)>-1){
self.formD.flxx.splice(x,1);
}
}
}
if(item.id!='3'){
self.formD.flxx.push(id);
self.formD.flxx.push(newValue);
if(self.field.data.length!=0){
self.getFlxxName();
}else{
this.getSeleted(item,'');
}
}else{
let val1=id+'1';
let val2=id+'2';
self.$set(self.formD.flxx,self.formD.flxx.length,id);
self.$set(self.formD.flxx,self.formD.flxx.length,val1);
self.$set(self.formD.flxx,self.formD.flxx.length,val2);
let arr2=[];
self.field.data.forEach((item2)=>{
self.formD.flxx.forEach((val3)=>{
if(item2.id==val3&&item2.id!="nldfl"&&item2.id!="xbfl"&&item2.id!="gjfl"&&item2.id!="hjdfl"&&item2.id!="mzfl"){//针对没有嫌疑人、受害人、全部的选项
arr2.push(item2.name)
}else if(val3==id&&val3==item2.id){
arr2.push(item2.name)
}else if(val3.indexOf(id)==-1&&val3.indexOf(item2.id)!=-1&&(item2.id=="nldfl"||item2.id=="xbfl"||item2.id=="gjfl"||item2.id=="hjdfl"||item2.id=="mzfl")){//针对嫌疑人、受害人、全部的选项
if(val3.charAt(val3.length-1,1)=='1'&&self.formD.flxx.indexOf(item2.id+'2')==-1){
arr2.push('嫌疑人'+item2.name)
}else if(val3.charAt(val3.length-1,1)=='2'&&self.formD.flxx.indexOf(item2.id+'1')==-1){
arr2.push('受害人'+item2.name)
}else if(self.formD.flxx.indexOf(item2.id+'1')>-1&&self.formD.flxx.indexOf(item2.id+'2')>-1&&arr2.indexOf(item2.name)==-1){
arr2.push(item2.name)
}
}
})
})
let zname=arr2.join("、");
self.getSeleted(self.field,zname);
}
},
checkedLabel(item) {
if (item.id == "nldfl") {
this.checkedLabelNldfl = this.radioNldfl.substring(0, 1);
} else if (item.id == "xbfl") {
this.checkedLabelXbfl = this.radioXbfl.substring(0, 1);
} else if (item.id == "gjfl") {
this.checkedLabelGjfl = this.radioGjfl.substring(0, 1);
} else if (item.id == "hjdfl") {
this.checkedLabelHjdfl = this.radioHjdfl.substring(0, 1);
} else if (item.id == "mzfl") {
this.checkedLabelMzfl = this.radioMzfl.substring(0, 1);
}
},
qkValue(id, startId) {
let self = this;
if (startId != "") {
if (id == "ajzlb") {
//选择主案类别时
self.field.data.forEach(val => {
if (val.id == "ajxzlb") {
self.formD.ajxzlb = "";
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success === true) {
val.codeOptions = response.data.rows;
}
});
} else if (val.id == "xalbdmbcms") {
self.formD.xalbdmbcms = "";
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success === true) {
val.codeOptions = response.data.rows;
}
});
}
});
}
} else {
if (id == "ajzlb") {
//清空主案的时候
self.field.data.forEach(val => {
if (val.id == "ajxzlb") {
self.formD.ajxzlb = "";
axios.get(val.codeTree).then(response => {
if (response.success === true) {
self.$set(val, "codeOptions", response.data.rows);
}
});
} else if (val.id == "xalbdmbcms") {
self.formD.xalbdmbcms = "";
axios.get(val.codeTree).then(response => {
if (response.success === true) {
self.$set(val, "codeOptions", response.data.rows);
}
});
}
});
} else if (id == "ajxzlb") {
//清空次案的时候
self.field.data.forEach(val => {
let startId = self.formD.ajzlb;
if (val.id == "xalbdmbcms") {
self.formD.xalbdmbcms = "";
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success === true) {
val.codeOptions = response.data.rows;
}
});
} else if (val.id == "ajxzlb") {
self.formD.ajxzlb = "";
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success === true) {
val.codeOptions = response.data.rows;
}
});
}
});
}
}
},
getLbValue(id, startId, parentId) {
let self = this;
if (id == "ajxzlb") {
//选择次案类别代码时
self.formD.ajzlb = parentId;
self.formD.xalbdmbcms = "";
self.field.data.forEach(val => {
if (val.id == "xalbdmbcms") {
self.$set(val, "value", "");
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success === true) {
val.codeOptions = response.data.rows;
}
});
}
});
} else if (id == "xalbdmbcms") {
//选择次类案类别代码时
self.formD.ajxzlb = parentId;
self.field.data.forEach(val => {
if (val.id == "ajxzlb") {
val.codeOptions.forEach(val2 => {
if (val2.id == parentId) {
self.formD.ajzlb = val2.parentId;
return;
}
});
}
});
} else if (id == "ajzlb") {
//选择主案类别时
self.field.data.forEach(val => {
if (val.id == "ajxzlb") {
self.formD.ajxzlb = "";
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success === true) {
val.codeOptions = response.data.rows;
}
});
} else if (val.id == "xalbdmbcms") {
self.formD.xalbdmbcms = "";
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success === true) {
val.codeOptions = response.data.rows;
}
});
}
});
}
},
getCodeSeleted(codeValue, item) {
this.getSeleted(item, codeValue);
},
getRadioValue(val,name,item){
if(val!=""){
this.getSeleted(item,name);
}else{
this.getSeleted(item,val);
}
},
getChangeValue(item, value) {
if (value == null) {
this.getSeleted(item, "");
}
},
getSeleted(item, value, flag) {
let self = this;
let ret2 = self.emitSeleted.find(v => {
return v.id == item.id;
});
if (value != "" && value != null) {
if (!flag) {
if(item.id=="flxx"){
item.name="分类信息"
}
item.value = value;
if (ret2 == undefined) {
if (item.type == "daterange") {
item.value1 = item.value[0];
item.value2 = item.value[1];
}
this.$set(self.emitSeleted, self.emitSeleted.length, item);
}else{
if (item.type == "daterange") {
item.value1 = item.value[0];
item.value2 = item.value[1];
}
var dateIndex = self.emitSeleted.findIndex(val => {
return val.id === item.id;
});
this.$set(self.emitSeleted, dateIndex, item);
}
} else {
if (ret2 != undefined) {
if(ret2.id=='flxx'){
ret2.value = value;
}else{
ret2.value2 = value;
}
}else{
item.value2=value;
this.$set(self.emitSeleted, self.emitSeleted.length, item);
}
}
self.$emit("getSelected", self.emitSeleted);
} else {
var index = self.emitSeleted.findIndex(val => {
return val.id === item.id;
});
if(item.id2){
if(flag){
item.value2="";
this.$set(self.emitSeleted, index, item);
self.$emit("getSelected", self.emitSeleted);
}else{
item.value="";
this.$set(self.emitSeleted, index, item);
self.$emit("getSelected", self.emitSeleted);
}
if(item.value==""&&item.value2==""){
self.emitSeleted.splice(index, 1);
self.$emit("getSelected", self.emitSeleted,item);
}
}else{
self.emitSeleted.splice(index, 1);
self.$emit("getSelected", self.emitSeleted,item);
}
}
}
},
mounted() {}
};
</script>
<style>
@import url("../../assets/styles/iconfont.css");
.checkboxGroup .el-checkbox-button.is-focus .el-checkbox-button__inner{ border: 1px solid #cfcfcf;}
.checkboxGroup .el-checkbox-button__inner {
border-left: 1px solid #cfcfcf;
margin: 0px 12px 11px 0;
padding: 0px 24px;
height: 36px;
line-height: 36px;
background: #fff;
border: 1.5px solid #cfcfcf;
color: #555555;
opacity: 1;
border-radius: 4px;
box-shadow: none !important;
}
.checkboxGroup .el-checkbox-button.is-checked .el-checkbox-button__inner {
background-color: transparent;
color: #1a81e1;
background: #fcfcfd;
border: 1.5px solid #1a81e1;
}
.checkboxGroup .el-checkbox-button:first-child .el-checkbox-button__inner,
.checkboxGroup .el-checkbox-button:last-child .el-checkbox-button__inner {
border-radius: 4px;
}
.paneDiv .el-form-item__label {
color: #555555;
}
.paneDiv .el-input__inner {
height: 36px;
line-height: 36px;
background: #fcfcfd;
border: 1px solid #cfcfcf;
padding: 0 12px;
}
.paneDiv .el-select {
width: 100%;
}
.paneDiv .el-form-item__content,
.zdyInputW {
height: 40px;
}
.paneDiv .el-date-editor--daterange.el-input__inner {
width: 100%;
}
</style>
<style scoped lang="scss">
@import "../../assets/styles/form.scss";
</style>
<template>
<div class="formWrap">
<div>
<span class="flTtitle">查询条件</span>
<span class="pageGuide">页面引导</span>
<span class="settingField" @click="centerDialogVisible = true"
><i class="iconfont icontiaojie"></i>配置查询条件</span
>
</div>
<el-form
label-position="right"
label-width="140px"
ref="ajxxForm"
:model="formD"
>
<form-item
ref="formItem1"
:formField="ajxxDefaultField"
:formDa="formD"
:deleteIdKey="deleteIdKey"
v-show="ajxxDefaultField.data.length != 0"
@getSelected="getSelected"
></form-item>
<form-item
ref="formItem2"
:formField="xyrxxDefaultField"
:formDa="formD"
:deleteIdKey="deleteIdKey"
v-show="xyrxxDefaultField.data.length != 0"
@getSelected="getSelected"
></form-item>
<form-item
ref="formItem3"
:formField="shrxxDefaultField"
:formDa="formD"
:deleteIdKey="deleteIdKey"
v-show="shrxxDefaultField.data.length != 0"
@getSelected="getSelected"
></form-item>
<form-item
ref="formItem4"
:formField="flxxDefaultField"
:formDa="formD"
:deleteIdKey="deleteIdKey"
v-show="flxxDefaultField.data.length != 0"
@getSelected="getSelected"
></form-item>
</el-form>
<div class="ar" style="margin-top:20px;margin-right:34px;">
<el-button
type="primary"
size="small"
class="zdybtn search"
@click="doQuery('ajxx')"
>案件信息查询</el-button
>
<el-button
type="primary"
size="small"
class="zdybtn search"
@click="doQuery('xyrxx')"
>嫌疑人信息查询</el-button
>
<el-button
type="primary"
size="small"
class="zdybtn search"
@click="doQuery('shrxx')"
>受害人信息查询</el-button
>
<!-- <el-button plain size="small" class="zdybtn delete" @click="deleteField"
>清空</el-button
>-->
</div>
<el-dialog
:visible.sync="centerDialogVisible"
width="1000px"
:show-close="false"
:close-on-click-modal="false"
custom-class="cxtjDialog"
center
>
<template slot="title">
<div class="fs16"><i class="iconfont icontiaojie"></i>配置查询条件</div>
</template>
<setting-dialog
@emitDialog="emitDialog"
@close="close"
:AjxxDefaultFormField="ajxxDefaultField"
:xyrxxDefaultField="xyrxxDefaultField"
:shrxxDefaultField="shrxxDefaultField"
:flxxDefaultField="flxxDefaultField"
:waitAjxxField="waitAjxxField"
:waitShrxxField="waitShrxxField"
:waitXyrxxField="waitXyrxxField"
:waitFlxxField="waitFlxxField"
@loading="loading"
></setting-dialog>
</el-dialog>
</div>
</template>
<script>
import formItem from "./formItem_components.vue";
import settingDialog from "@/views/dwcx/dialog.vue";
import "@/assets/styles/iconfont.css";
import axios from "axios";
export default {
name: "formWrap",
components: {
formItem,
settingDialog
},
props: {
formData: Object,
AjxxFormField: Object,
XyrxxFormField: Object,
ShrxxFormField: Object,
FlxxFormField: Object,
AjxxDefaultFormField: Object,
XyrxxDefaultFormField: Object,
ShrxxDefaultFormField: Object,
FlxxDefaultFormField: Object,
fieldType: String,
deleteId: String
},
data() {
return {
initNum:0,
deleteIdKey:this.deleteId,
formD: this.formData,
ajxxField: this.AjxxFormField,
xyrxxField: this.XyrxxFormField,
shrxxField: this.ShrxxFormField,
flxxField: this.FlxxFormField,
ajxxDefaultField: this.AjxxDefaultFormField,
xyrxxDefaultField: this.XyrxxDefaultFormField,
shrxxDefaultField: this.ShrxxDefaultFormField,
flxxDefaultField: this.FlxxDefaultFormField,
isMultiple: false,
centerDialogVisible: false,
waitAjxxField: [],
waitShrxxField: [],
waitXyrxxField: [],
waitFlxxField: [],
type: this.fieldType
};
},
methods: {
childMethods(id){
this.$refs.formItem1.clearZdyAll(id);
this.$refs.formItem2.clearZdyAll(id);
this.$refs.formItem3.clearZdyAll(id);
this.$refs.formItem4.clearZdyAll(id);
},
clearSearchValue(){
this.$refs.formItem1.clearSearchValue();
this.$refs.formItem2.clearSearchValue();
this.$refs.formItem3.clearSearchValue();
this.$refs.formItem4.clearSearchValue();
},
delete(){//清空所有得时候
this.$refs.formItem1.deleteValue();
this.$refs.formItem2.deleteValue();
this.$refs.formItem3.deleteValue();this.$refs.formItem4.deleteValue();
},
deleteField() {
let self = this;
for (let i in self.formD) {
if (i == "flxx") {
self.formD[i] = [];
} else if (i == "page") {
self.formD[i] = "1";
} else if (i == "rows") {
self.formD[i] = "10";
} else if (i == "desc") {
self.formD[i] = "larq";
} else {
self.formD[i] = "";
}
}
},
loading(data) {
this.$emit("emitLoading", data);
},
getSelected(data, index) {
this.$emit("getSeletedList", data, index);
},
doQuery(type) {
let self = this;
self.formD.page = 1;
self.$emit("doQueryList", type, self.formD, "isButton");
},
emitDialog(flag, ajxxL, xyrL, shrL, flxxL, ajxxO, xyrO, shrO, flxxO) {
this.centerDialogVisible = flag;
/*保存的字段匹配*/
let self = this;
let obj1 = JSON.parse(ajxxL);
let obj2 = JSON.parse(xyrL);
let obj3 = JSON.parse(shrL);
let obj4 = JSON.parse(flxxL);
/*保存*/
let params = {};
params.name = "基础查询保存查询字段";
params.type = self.type;
params.list = [];
self.$set(params.list, 0, obj1);
self.$set(params.list, 1, obj2);
self.$set(params.list, 2, obj3);
self.$set(params.list, 3, obj4);
self.$message({
type: "success",
message: "保存成功"
});
self.ajxxDefaultField = JSON.parse(ajxxO);
self.xyrxxDefaultField = JSON.parse(xyrO);
self.shrxxDefaultField = JSON.parse(shrO);
self.flxxDefaultField = JSON.parse(flxxO);
/*self.init();
self.initCode();*/
self.$emit("closeLoading", false);
},
close(flag) {
this.centerDialogVisible = flag;
},
init() {
let self = this;
self.waitAjxxField = self.ajxxField.data.filter(
item => !self.ajxxDefaultField.data.some(ele => ele.name === item.name)
);
self.initNum++;
self.waitShrxxField = self.shrxxField.data.filter(
item => !self.shrxxDefaultField.data.some(ele => ele.name === item.name)
);
self.initNum++;
self.waitXyrxxField = self.xyrxxField.data.filter(
item => !self.xyrxxDefaultField.data.some(ele => ele.name === item.name)
);
self.initNum++;
self.waitFlxxField = self.flxxField.data.filter(
item => !self.flxxDefaultField.data.some(ele => ele.name === item.name)
);
self.initNum++;
},
initCode() {
let self = this;
self.ajxxDefaultField.data.forEach((val,index) => {
if (val.type == "code"||val.type == "codeTreeDialog") {
if (val.codeOptions.length == 0) {
axios
.get(`JsonData/${val.codeTree}.json`)
.then(res => {
self.$set(val, "codeOptions", res.data.rows);
})
.catch(err => {
/*console.log(err);*/
});
}
}
if(index==self.ajxxDefaultField.data.length-1){
self.initNum++;
}
});
self.xyrxxDefaultField.data.forEach((val,index2) => {
if (val.type == "code"||val.type == "codeTreeDialog") {
if (val.codeOptions.length == 0) {
axios
.get(`JsonData/${val.codeTree}.json`)
.then(res => {
self.$set(val, "codeOptions", res.data.rows);
})
.catch(err => {
/*console.log(err);*/
});
}
}
if(index2==self.xyrxxDefaultField.data.length-1){
self.initNum++;
}
});
self.shrxxDefaultField.data.forEach((val,index3) => {
if (val.type == "code"||val.type == "codeTreeDialog") {
if (val.codeOptions.length == 0) {
axios
.get(`JsonData/${val.codeTree}.json`)
.then(res => {
self.$set(val, "codeOptions", res.data.rows);
})
.catch(err => {
/*console.log(err);*/
});
}
}
if(index3==self.shrxxDefaultField.data.length-1){
self.initNum++;
}
});
}
},
mounted() {
let self = this;
self.init();
self.initCode();
},
watch: {
initNum(val){
if(val>=7){
this.$emit("closeInitLoading");
}
},
deleteId(val){
this.deleteIdKey=val;
},
AjxxDefaultFormField(val) {
this.ajxxDefaultField = val;
},
XyrxxDefaultFormField(val) {
this.xyrxxDefaultField = val;
},
ShrxxDefaultFormField(val) {
this.shrxxDefaultField = val;
},
FlxxDefaultFormField(val) {
this.flxxDefaultField = val;
this.initCode();
this.init();
},
formData(data) {
this.formD = data;
}
}
};
</script>
<style scoped lang="scss">
@import "../../assets/styles/form.scss";
</style>
<!--
* @Author: your name
* @Date: 2021-10-18 10:41:53
* @LastEditTime: 2021-10-18 10:47:03
* @LastEditors: your name
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\components\ajbz\dwcx\header_components.vue
-->
<template>
<div class="headerT">
<svg
class="menuIcon alSvgIcon menuIcon29"
aria-hidden="true"
v-show="headerIcon"
>
<use :xlink:href="'#' + headerIcon"></use>
</svg>
{{ headerTitle }}
</div>
</template>
<script>
import "@/assets/js/iconfont.js";
export default {
name: "headerT",
props: {
headerTitle: String,
headerIcon: String,
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/main.scss";
@import url("@/assets/styles/iconfont.css");
@import url("@/assets/styles/font-awesome.min.css");
</style>
<template>
<div class="tableList">
<div class="formWrap" v-show="flxxList.length!=0">
<div class="sxWrap">
<div class="cxjgsxTitle">查询结果筛选</div>
<div class="sxcontent">
<div v-for="item in flxxList" :key="item.name">
<div class="flTitle">{{ item.name }}</div>
<div class="radioGroup">
<div class="left-radio">
<el-radio-group v-model="yjFl[item.type]" class="none">
<el-radio
:label="item2.name"
v-for="(item2, key) in item.list"
:key="key"
@change="getRadioValue($event, item.type)"
><span class="overflow inline width120" :title="item2.name">{{
item2.name
}}</span
><span class="inline">({{ item2.num }})</span></el-radio
>
</el-radio-group>
</div>
<div class="right-btn" v-show="item.list.length>8" @click="more($event)">展开条件</div>
</div>
</div>
</div>
</div>
<!--下钻 二级-->
<div class="sxWrap sxcontent" style="margin:0 34px;display: block;">
<div v-for="item in xzFlxxList" :key="item.name" style="display: flex;">
<div class="flTitle" style="width:241px;text-align:right;font-size:14px;padding-top:12px;">{{ item.name }}</div>
<div class="radioGroup" style="width:calc(100% - 245px)">
<div class="left-radio">
<el-radio-group v-model="xbfl2">
<el-radio
:label="item2.name"
v-for="(item2, key) in item.list"
:key="key"
@change="getMonthRadioValue($event, item.type)"
><span class="overflow inline width120" :title="item2.name">{{
item2.name
}}</span
><span class="inline">({{ item2.num }})</span></el-radio
>
</el-radio-group>
</div>
<div class="right-btn" v-show="item.list.length>8" @click="more($event)">展开条件</div>
</div>
</div>
</div>
<!--下钻 三级-->
<div class="sxWrap sxcontent" style="margin:0 34px;display: block;">
<div v-for="item in xzSFlxxList" :key="item.name" style="display: flex;">
<div class="flTitle" style="width:241px;text-align:right;font-size:14px;padding-top:12px;">{{ item.name }}</div>
<div class="radioGroup" style="width:calc(100% - 245px)">
<div class="left-radio">
<el-radio-group v-model="xbfl3">
<el-radio
:label="item2.name"
v-for="(item2, key) in item.list"
:key="key"
@change="getSjRadioValue($event, item.type)"
><span class="overflow inline width120" :title="item2.name">{{
item2.name
}}</span
><span class="inline">({{ item2.num }})</span></el-radio
>
</el-radio-group>
</div>
<div class="right-btn" v-show="item.list.length>8" @click="more($event)">展开条件</div>
</div>
</div>
</div>
</div>
<div class="formWrap">
<el-row>
<el-col :span="24">
<span class="flTtitle">{{listTitle}}查询结果</span>
</el-col>
</el-row>
<div class="paneDiv">
<!--可配置化图标-->
<div
style="height:30px;line-height: 30px;text-align: right;font-size:12px;position: relative;top: -13px;"
>
<span class="total">共有{{ tableDataLength }}条查询结果</span>
<span class="setting" @click="centerDialogVisible = true"
><i class="el-icon-setting pzhIcon" title="可配置化列表"></i
>表头设置</span
>
<el-button plain class="export" size="small" @click="exportExcel"
><i
class="fa fa-external-link"
aria-hidden="true"
style="margin-right:5px;"
></i
>导出</el-button
>
</div>
<!--表格-->
<el-table
id="ajzbQuery"
v-loading="tableLoading"
element-loading-text="拼命加载中"
:key="key"
ref="itsmDataTable"
:data="tableData"
tooltip-effect="dark"
style="width: 99%;margin:0 auto"
width="100%"
size="small"
border
:row-class-name="tableRowClassName"
@sort-change="orderBy"
@selection-change="getRows"
>
<el-table-column
align="center"
:min-width="
columnTitle.width
? columnTitle.width
:columnTitle.prop == 'jyaq' || columnTitle.prop == 'asjbh'
? '360'
: '200'
"
v-for="columnTitle in formThead"
:prop="columnTitle.prop"
:key="columnTitle.label"
:label="columnTitle.label"
:sortable="
columnTitle.prop == 'asjfssjAsjfskssj' ||
columnTitle.prop == 'slsj' ||
columnTitle.prop == 'larq' ||
columnTitle.prop == 'djsj' ||
columnTitle.prop == 'zczjZxsj01' ||
columnTitle.prop == 'zhrq' ||
columnTitle.prop == 'zhfzxyrCsrqRqgzxx'||
columnTitle.prop == 'bhsjKssj'||
columnTitle.prop == 'bhrCsrqRqgzxx'
? 'custom'
: false
"
>
<template slot-scope="scope">
<!--简要案情-->
<div v-if="columnTitle.prop == 'jyaq'||columnTitle.prop == 'zhfzxyrWffzjlms'">
<div class="ajxq_s" >
<span class="none" v-html="scope.row[columnTitle.prop]"></span
><a
href="javascript:void(0);"
onclick='javascript:this.parentNode.style.display="none";this.parentNode.nextSibling.style.display="block"'
style="display: inline-block;width: 100%;text-align: right;color: #3692c6;font-weight:600;"
id="open"
v-if="scope.row[columnTitle.prop]!=null&&scope.row[columnTitle.prop]!=''"
>展开</a
>
</div>
<div class="ajxq_n" style="display:none;">
<span
style="display: block;"
v-html="scope.row[columnTitle.prop]"
></span
><a
href="javascript:void(0);"
onclick='javascript:this.parentNode.style.display="none";this.parentNode.previousSibling.style.display="block"'
style="float:right;color: #3692c6;font-weight:600;"
id="stop"
v-if="scope.row[columnTitle.prop]!=null&&scope.row[columnTitle.prop]!=''"
>收起</a
>
</div>
</div>
<!--案事件编号-->
<div v-else-if="columnTitle.prop == 'asjbh'">
<span style="color:blue;cursor: pointer;" @click="toMaXq(scope.row[columnTitle.prop])">{{ scope.row[columnTitle.prop] }}</span><!--<i class="iconfont iconxiangqing moreAJ" v-show="scope.row['flag']=='1'" @click="moreDialog(scope.row['zhfzxyrCyzjZjhm'])"></i>-->
<el-popover placement="right" effect="light" trigger="click">
<div >
<ul
class="popUl"
style="position:absolute;left:-1px;top:-23px;"
>
<h4>{{ scope.row[columnTitle.prop] }}</h4>
<li
@click="
ychyLink(item.path,item.id,scope.row[columnTitle.prop])
"
v-for="item in ychyDataList"
:key="item.id"
>
<i :class="item.class"></i><span>{{ item.name }}</span>
</li>
</ul>
</div>
<svg class="menuIcon alSvgIcon" aria-hidden="true" slot="reference">
<use xlink:href="#iconyongcai"></use>
</svg>
</el-popover>
</div>
<!--证件号码-->
<div v-else-if="columnTitle.prop == 'zhfzxyrCyzjZjhm'">
{{ scope.row[columnTitle.prop] }}
<!--<el-popover placement="right" effect="light" trigger="click">
<div >
<ul
class="popUl"
style="position:absolute;left:-1px;top:-51px;"
>
<h4>{{ scope.row[columnTitle.prop] }}</h4>
<li
@click="
ychyLink(item.path,item.id,scope.row[columnTitle.prop])
"
v-for="item in ychyZjhmDataList"
:key="item.id"
>
<i :class="item.class"></i><span>{{ item.name }}</span>
</li>
</ul>
</div>
<svg class="menuIcon alSvgIcon" aria-hidden="true" slot="reference" v-show="scope.row[columnTitle.prop]!=''&&scope.row[columnTitle.prop]!=null">
<use xlink:href="#iconyongcai"></use>
</svg>
</el-popover>-->
</div>
<div v-else-if="columnTitle.prop.indexOf(',') != -1">
<p
v-for="(item, index) in columnTitle.prop.split(',')"
:key="index"
>
{{ item.split(":")[0] }}{{
scope.row[item.split(":")[1]]
}}
</p>
</div>
<div v-else-if="columnTitle.prop == 'ajlbdmMc'"><a class="zdyLxTag">{{scope.row[columnTitle.prop]}}</a></div>
<div v-else v-html="scope.row[columnTitle.prop]" :class="columnTitle.prop == 'ajmc'?'color1':'color2'"></div>
</template>
</el-table-column>
</el-table>
<!--分页-->
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage1"
:page-sizes="[10, 20, 50, 100]"
:page-size="page_size"
layout="sizes,prev, pager, next"
:small="true"
:total="tableDataLength"
v-if="pageShow"
>
</el-pagination>
<!--配置化列表-->
<el-dialog
title="配置表格表头字段"
:visible.sync="centerDialogVisible"
width="780px"
custom-class="zdyTheadDialog"
center
>
<div id="set_table_panel" v-show="centerDialogVisible">
<div class="table-header-drag">
<div class="selected-header">
<div>已选表头</div>
<!--<ul>-->
<draggable
class="list-group"
:list="formThead"
group="people"
@change="draggableList"
element="ul"
id="selected_ul"
data-listidx="0"
ref="selected_ul"
>
<li
class="list-group-item"
v-for="element in formThead"
:key="element.label"
>
<div :rel="element.prop" :name="element.label">
{{ element.label }}
</div>
</li>
</draggable>
<!--</ul>-->
</div>
<div>
<div>待选表头</div>
<!--<ul>-->
<draggable
id="waiting_ul"
ref="waiting_ul"
class="list-group waiting-header"
:list="waitBt"
group="people"
@change="draggableList"
element="ul"
data-listidx="1"
>
<li
class="list-group-item"
v-for="element in waitBt"
:key="element.label"
>
<div :rel="element.prop" :name="element.label">
{{ element.label }}
</div>
</li>
</draggable>
<!--</ul>-->
</div>
<div class="tips">
<i class="fa fa-info-circle"></i>
<span>亲,可以通过拖动来配置表格</span>
</div>
</div>
</div>
<span
slot="footer"
class="dialog-footer"
v-show="centerDialogVisible"
>
<el-button @click="centerDialogVisible = false" size="mini"
>取 消</el-button
>
<el-button type="primary" size="mini" @click="centerDialogVisible = false"
>确 定</el-button
>
</span>
</el-dialog>
</div>
</div>
</div>
</template>
<script>
import draggable from "vuedraggable";
import url from "@/api/base";
import {saveTableTitleRedis} from "@/api/dictionaryCode.js";
import "@/assets/js/iconfont.js";
export default {
name: "tableList",
components: {
draggable
},
props: {
radioZt:String,
radioSZt:String,
radioFZt:String,
flxxGroup: {
type: Array,
default: () => []
},
xzFlxxGroup: {
type: Array,
default: () => []
},
xzSFlxxGroup: {
type: Array,
default: () => []
},
ychyDataList: {
type: Array,
default: () => []
},
ychyZjhmDataList: {
type: Array,
default: () => []
},
DefaultAjFormThead: {
type: Array,
default: () => []
},
queryTableData: {
type: Array,
default: () => []
},
AllAjThead: {
type: Array,
default: () => []
},
yjFlE:Object,
theadType: String,
theadTitle: String,
dataLength: Number,
tableType: String,
pageNum: Number,
tableLoadingEmit: Boolean
},
data() {
return {
tableDataLength: this.dataLength,
centerDialogVisible: false,
tableLoading: this.tableLoadingEmit,
tableData: this.queryTableData,
formThead: this.DefaultAjFormThead,
startnum: 0, //开始
endnum: 20, //结束
currentPage1: this.pageNum,
page_size: 10,
pageShow: true,
waitBt: [],
key: 1,
xbfl: this.radioFZt,
yjFl:{
ajlbdmMc:this.yjFlE.ajlbdmMc,/*案件类别分类*/
zcjddmMc:this.yjFlE.zcjddmMc,/*侦查阶段分类*/
larqYear:this.yjFlE.larqYear,/*侦查阶段分类*/
ladwGajgjgdmMc:this.yjFlE.ladwGajgjgdmMc,/*立案单位分类*/
asjfssjAsjfskssjYear:this.yjFlE.asjfssjAsjfskssjYear,/*案发日期分类*/
asjfsddXzqhdmMc:this.yjFlE.asjfsddXzqhdmMc,/*案发地区划分类*/
ajSsjzrmby:this.yjFlE.ajSsjzrmby,/*涉案金额分类*/
xyrage:this.yjFlE.xyrage,/*年龄段分类*/
shrage:this.yjFlE.shrage,/*年龄段分类*/
zhfzxyrXbdmMc:this.yjFlE.zhfzxyrXbdmMc,/*性别分类*/
bhrXbdmMc:this.yjFlE.bhrXbdmMc,/*性别分类*/
zhfzxyrGjdmMc:this.yjFlE.zhfzxyrGjdmMc,/*国籍分类*/
bhrGjdmMc:this.yjFlE.bhrGjdmMc,/*国籍分类*/
zhfzxyrHjdzXzqhdmMc:this.yjFlE.zhfzxyrHjdzXzqhdmMc,/*户籍地分类*/
bhrHjdzXzqhdmMc:this.yjFlE.bhrHjdzXzqhdmMc,/*户籍地分类*/
zhfzxyrMzdmMc:this.yjFlE.zhfzxyrMzdmMc,/*民族分类*/
bhrMzdmMc:this.yjFlE.bhrMzdmMc,/*民族分类*/
ladwSj:this.yjFlE.ladwSj,/*立案单位市局分类*/
ladwFj:this.yjFlE.ladwFj,/*立案单位分局分类*/
asjfsddDylbdmMc:this.yjFlE.asjfsddDylbdmMc /*立案单位分局分类*/,
afdylbMc: this.yjFlE.afdylbMc/*立案单位分局分类*/,
zadjdmMc: this.yjFlE.zadjdmMc /*立案单位分局分类*/,
zatzJyqkMc:this.yjFlE.zatzJyqkMc
},
xbfl2:this.radioZt,
xbfl3:this.radioSZt,
type: this.theadType,
title: this.theadTitle,
isTableTpe: this.tableType /*ajxx/xyrxx/shrxx*/,
flxxList: this.flxxGroup,
xzFlxxList:this.xzFlxxGroup,
xzSFlxxList:this.xzSFlxxGroup,
listTitle:''/*查询结果标题*/
};
},
methods: {
toMaXq(asjbh){
window.open(url.maURL+'/asjDetail?asjbh='+asjbh,"_blank");
},
ychyLink(path,id,val){
if(id=='ajda'){
window.open(path+val, "_blank");
}
},
handleSizeChange(val) {
this.$emit("changeSize",val,this.isTableTpe)
},
getMonthRadioValue(val,type){
if(val=="全部"){
this.$emit("getFlValue", 'all', type, this.isTableTpe,'ejRadio',this.xbfl2);
}else{
this.$emit("getFlValue", val, type, this.isTableTpe,'ejRadio',this.xbfl2);
}
},
getSjRadioValue(val,type){
if(val=="全部"){
this.$emit("getFlValue", 'all', type, this.isTableTpe,'sjRadio',this.xbfl3);
}else{
this.$emit("getFlValue", val, type, this.isTableTpe,'sjRadio',this.xbfl3);
}
},
moreDialog(zjhm){//点击打开弹框显示案件
this.$emit("showAjTable",zjhm)
},
more(event){/*展开收起*/
if(event.currentTarget.parentNode.firstChild.firstChild.classList.contains("none")){
event.currentTarget.parentNode.firstChild.firstChild.classList.remove("none");
event.currentTarget.innerHTML="收起条件";
}else{
event.currentTarget.parentNode.firstChild.firstChild.classList.add("none");
event.currentTarget.innerHTML="展开条件";
}
},
getRadioValue(val, type) {//值和类型
if(val=="全部"){
this.$emit("getFlValue", 'all', type, this.isTableTpe,'yjRadio',this.yjFl[type]);
}else{
this.$emit("getFlValue", val, type, this.isTableTpe,'yjRadio',this.yjFl[type]);
}
},
exportExcel() {
this.$emit("exportFile", this.isTableTpe);
},
draggableList() {
console.log(this.propdefaultFormThead);
},
handleCurrentChange(val) {
let self = this;
self.currentPage1 = val;
self.$emit("getPage", val, self.isTableTpe);
},
tableRowClassName({ rowIndex }) {
if (rowIndex % 2 == 0) {
return "";
} else {
return "success-row";
}
},
orderBy(column) {
let self = this,
key = "",
keyValue = "";
self.tableLoading = true;
self.$emit("getLoading", self.tableLoading);
console.log(column);
keyValue = column.prop;
key = column.order == "ascending" ? "asc" : "desc";
self.$emit("getSort", key, keyValue, self.isTableTpe);
},
getRows(val) {
this.checkBoxData = val;
},
handleCheckedChange() {
let self = this,
saveData = {};
self.centerDialogVisible = false;
self.key = self.key + 1; // 为了保证table 每次都会重渲 In order to ensure the table will be re-rendered each time
//保存至后台
self.$set(saveData, "type", self.type);
self.$set(saveData, "name", self.title);
self.$set(saveData, "list", self.formThead);
saveTableTitleRedis(JSON.stringify(saveData)).then(res => {
if (res.code == 20000) {
self.$message({
type: "success",
message: "保存成功"
});
} else {
self.$message({
type: "error",
message: "保存失败"
});
}
});
}
},
watch: {
yjFlE:{
handler(newVal){
for (let i in this.yjFl){
this.yjFl[i]=newVal[i];
}
},
deep:true
},
radioZt(val){
this.xbfl2=val;
},
radioSZt(val){
this.xbfl3=val;
},
radioFZt(val){
for (let i in this.yjFl){
this.yjFl[i]=val;
}
},
flxxGroup(val) {
this.flxxList = val;
},
xzFlxxGroup(val){
this.xzFlxxList = val;
},
xzSFlxxGroup(val){
this.xzSFlxxList = val;
},
tableLoadingEmit(val) {
this.tableLoading = val;
},
tableType(val) {
this.isTableTpe = val;
if(this.isTableTpe=='ajxx'){
this.listTitle="案件"
}else if(this.isTableTpe=='xyrxx'){
this.listTitle="嫌疑人"
}else if(this.isTableTpe=='shrxx'){
this.listTitle="受害人"
}
},
dataLength(data) {
this.tableDataLength = data;
},
queryTableData(data) {
this.tableData = data;
},
DefaultAjFormThead(val) {
this.formThead = val;
},
AllAjThead(val) {
let self = this;
self.waitBt = val.filter(
item => !self.formThead.some(ele => ele.label === item.label)
);
},
theadType(val) {
this.type = val;
},
theadTitle(val) {
this.title = val;
},
pageNum(val) {
this.currentPage1 = val;
}
},
mounted() {
let self = this;
self.waitBt = self.AllAjThead.filter(
item => !self.formThead.some(ele => ele.label === item.label)
);
}
};
</script>
<style>
@import "../../assets/styles/font-awesome.min.css";
@import url("../../assets/styles/iconfont.css");
.radioGroup .el-radio {
color: #666;
width: 203px;
margin: 4px 0;
}
.el-table th {
background: #f4f6f7;
}
.el-table th,
.el-table th {
border-color: #e6e6e6;
}
</style>
<style scoped lang="scss">
@import "../../assets/styles/form.scss";
@import "../../assets/styles/table.scss";
</style>
This source diff could not be displayed because it is too large. You can view the blob instead.
<!--
* @Author: your name
* @Date: 2021-10-18 10:32:19
* @LastEditTime: 2021-10-18 10:53:52
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\components\ajbz\header_components.vue
-->
<template>
<div class="headerT">
<svg
class="menuIcon alSvgIcon menuIcon29"
aria-hidden="true"
v-show="headerIcon"
>
<use :xlink:href="'#' + headerIcon"></use>
</svg>
{{ headerTitle }}
</div>
</template>
<script>
import "@/assets/js/iconfont.js";
export default {
name: "headerT",
props: {
headerTitle: String,
headerIcon: String,
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/main.scss";
@import url("../../assets/styles/iconfont.css");
@import url("../../assets/styles/font-awesome.min.css");
</style>
<template>
<div>
<!--字典框 @emitValue="getLbValue"-->
<el-select
:placeholder="curItem.placeholder"
v-model="curFormData[curItem.id]"
:class="curItem.code"
popper-class="zdyCodeDialog"
style="width: 100%"
@clear="clearSeleted"
@remove-tag="removeTag"
:popper-append-to-body="false"
:multiple="curItem.multiple"
:disabled="curItem.disabled"
empty-text="请从弹框中选择数据"
@focus="
(val, $event) =>
showCodeTreeDialog(val, curItem, curFormData, curItem.id)
"
clearable
>
<el-option
v-for="item2 in codeTreeConfig.fieldItem"
:key="item2.id"
:label="item2.label"
:value="item2.id"
>
</el-option>
</el-select>
<!--多级或多数据下拉框弹框样式-->
<el-dialog
v-if="dialogCodeVisible"
custom-class="treeDialog"
:visible.sync="dialogCodeVisible"
style="z-index: 2020 !important"
:close-on-click-modal="false"
center
>
<div
slot="title"
class="header-title"
style="
text-align: left;
height: 30px;
font-size: 16px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 30px;
opacity: 1;
"
>
<div>{{ codeTreeConfig.title }}</div>
</div>
<el-input
placeholder="输入关键字进行过滤"
v-model="filterText"
style="
margin-bottom: 4px;
width: calc(100% - 26px) !important;
margin-left: 15px;
margin-top: 2px;
"
>
</el-input>
<div
style="
width: calc(100% - 18px);
height: calc(100% - 42px);
overflow-y: auto;
border-bottom: 1px solid #f2f2f2;
margin-left: 7px;
"
>
<el-tree
:props="defaultProps"
node-key="id"
:filter-node-method="filterNode"
ref="codeTreeDialog"
:default-expanded-keys="defaultExpandedKeys"
:default-checked-keys="
Array.isArray(curFormData[curItem.id])
? curFormData[curItem.id]
: [...curFormData[curItem.id]]
"
@check="codeTreeNodeCheck"
@check-change="handleNodeClick"
:check-on-click-node="true"
lazy
:load="loadNode"
check-strictly
show-checkbox
style="height: 288px"
>
</el-tree>
</div>
<div slot="footer" class="dialog-footer ar" style="margin-top: 11px">
<el-button
@click="dialogCodeVisible = false"
style="width: 120px; height: 36px"
>取 消</el-button
>
<el-button
type="primary"
@click="forSureSelectCode"
style="width: 120px; height: 36px"
>确 定</el-button
>
</div>
</el-dialog>
</div>
</template>
<script>
import Http from "@/utils/http.js";
export default {
name: "treeCode_components",
props: {
formData: Object,
currentItem: Object,
sendId: String,
},
data() {
return {
curFormData: this.formData,
curItem: this.currentItem,
defaultProps: {
parent: "parentId", // 父级唯一标识
value: "id", // 唯一标识
label: "label", // 标签显示
isLeaf: "leaf",
// children: 'children', // 子级
},
id: this.sendId,
filterText: "",
//多级或多数据下拉框弹框样式(数据量太多时使用这种风格 普通字典还用原来的下拉框)
dialogCodeVisible: false,
//树型字典配置
codeTreeConfig: {
//弹框标题
title: "案发地区划",
//值字段
nodeKey: "value",
//字典类型
codeType: "CODE_XZQH",
//绑定的model
realValue: null,
//当前要展示的字段
fieldItem: null,
//codeTree预设
props: [],
},
//默认展开的节点
defaultExpandedKeys: [],
};
},
computed: {
newValue() {
this.getcode();
return this.curFormData[this.curItem.id];
},
},
watch: {
formData(val) {
this.curFormData = val;
},
filterText(val) {
this.$refs.codeTreeDialog.filter(val);
},
newValue(val) {
// if (val != '' && this.codeTreeConfig.fieldItem == null) {
if (val != "") {
var self = this;
//判断是否要回显
if (self.curFormData[self.curItem.id]) {
let parm = {
type: self.currentItem.codeTree,
id: self.curFormData[self.curItem.id],
grade: "prev",
};
self
.doQueryRequest(parm, "/api/queryCodeByType")
.then((codeResult) => {
var thisCodeOptions = [];
if (codeResult.code == 200) {
var codRes = codeResult.data.rows;
var codeArry = [];
var realCodeResult = [];
for (var j = 0; j < codRes.length; j++) {
var singleRow = codRes[j];
if (singleRow.id == val) {
thisCodeOptions.push({
id: singleRow.id,
label: singleRow.label,
});
} else {
if (singleRow.children && singleRow.children.length > 0) {
var thisItem = self.getChildrenItem(val, singleRow);
if (thisItem) {
thisCodeOptions.push({
id: thisItem.id,
label: thisItem.label,
});
}
}
}
}
if (thisCodeOptions.length < 0) {
self.$emit("clearId");
}
self.codeTreeConfig.fieldItem = thisCodeOptions;
}
});
}
}
},
},
methods: {
getcode() {
var self = this;
if (self.curFormData[self.curItem.id]) {
let parm = {
type: self.currentItem.codeTree,
id: self.curFormData[self.curItem.id],
grade: "prev",
};
self
.doQueryRequest(parm, "/api/queryCodeByType")
.then((codeResult) => {
var thisCodeOptions = [];
if (codeResult.code == 200) {
var codRes = codeResult.data.rows;
var codeArry = [];
var realCodeResult = [];
for (var j = 0; j < codRes.length; j++) {
var singleRow = codRes[j];
if (singleRow.id == self.curFormData[self.curItem.id]) {
thisCodeOptions.push({
id: singleRow.id,
label: singleRow.label,
});
} else {
if (singleRow.children && singleRow.children.length > 0) {
var thisItem = self.getChildrenItem(
self.curFormData[self.curItem.id],
singleRow
);
if (thisItem) {
thisCodeOptions.push({
id: thisItem.id,
label: thisItem.label,
});
}
}
}
}
if (thisCodeOptions.length == 0) {
self.$emit("clearId");
}
self.codeTreeConfig.fieldItem = thisCodeOptions;
}
});
}
},
// 搜索树状数据中的 ID
queryTree(tree, id) {
let stark = [];
stark = stark.concat(tree);
while (stark.length) {
const temp = stark.shift();
if (temp[this.defaultProps.children]) {
stark = stark.concat(temp[this.defaultProps.children]);
}
if (temp[this.defaultProps.value] === id) {
return temp[this.defaultProps.label];
}
}
return "";
},
//多选模式下移除tag时触发
removeTag(val) {
let self = this,
label = "";
self.codeTreeConfig.fieldItem.splice(
self.codeTreeConfig.fieldItem.findIndex((item) => item.id === val),
1
);
if (self.codeTreeConfig.fieldItem.length != 0) {
self.codeTreeConfig.fieldItem.forEach((item, index) => {
label += index == 0 ? "" + item.label : "," + item.label;
});
} else {
label = "";
}
this.$emit("getDialogSeleted", label);
},
//可清空的单选模式下用户点击清空按钮时触发
clearSeleted() {
this.$emit("getDialogSeleted", "");
},
//确定选择当前用户
forSureSelectCode() {
var self = this;
var thisCodeOptions = [];
if (self.$refs.codeTreeDialog.getCheckedNodes().length != 0) {
if (self.curItem.multiple) {
self.$set(
self.codeTreeConfig.realFatherValue,
self.codeTreeConfig.realrValueKey,
self.$refs.codeTreeDialog.getCheckedKeys()
);
var selectedNodes = self.$refs.codeTreeDialog.getCheckedNodes();
for (var i = 0; i < selectedNodes.length; i++) {
thisCodeOptions.push({
id: self.$refs.codeTreeDialog.getCheckedNodes()[i].id,
label: self.$refs.codeTreeDialog.getCheckedNodes()[i].label,
});
}
} else {
self.$set(
self.codeTreeConfig.realFatherValue,
self.codeTreeConfig.realrValueKey,
self.$refs.codeTreeDialog.getCheckedNodes()[0].id
);
thisCodeOptions.push({
id: self.$refs.codeTreeDialog.getCheckedNodes()[0].id,
label: self.$refs.codeTreeDialog.getCheckedNodes()[0].label,
});
}
self.codeTreeConfig.fieldItem = thisCodeOptions;
if (self.codeTreeConfig.fieldItem.type == "codeTag") {
self.changeTags(
self.$refs.codeTreeDialog.getCheckedKeys(),
self.codeTreeConfig.fieldItem
);
}
self.$forceUpdate();
if (self.curItem.multiple) {
let label = "";
thisCodeOptions.forEach((item, index) => {
label += index == 0 ? "" + item.label : "," + item.label;
});
self.$emit("getDialogSeleted", label);
} else {
self.$emit("getDialogSeleted", thisCodeOptions[0].label);
}
} else {
//没有选值得情况
self.$set(
self.codeTreeConfig.realFatherValue,
self.codeTreeConfig.realrValueKey,
""
);
self.$forceUpdate();
self.$emit("getDialogSeleted", "");
}
self.dialogCodeVisible = false;
},
//对树节点进行筛选
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1 || data.id.indexOf(value) !== -1;
},
//树节点点击事件(改为点选)
handleNodeClick(data, checked) {
var self = this;
if (!self.curItem.multiple) {
if (checked === true) {
self.codeTreeConfig.codeId = data.id;
self.$refs.codeTreeDialog.setCheckedKeys([data.id]);
} else {
if (self.codeTreeConfig.codeId === data.id) {
self.$refs.codeTreeDialog.setCheckedKeys([]);
}
}
}
},
//树形字典节点点击事件(用来拦截并控制单选)
codeTreeNodeCheck(data, checked, node) {
console.log(data, checked, node);
},
/**
* 展示字典树弹出框
*/
showCodeTreeDialog(value, item, realFormLableAlign, realValueKey) {
var self = this;
//判断是否要回显
if (realFormLableAlign[realValueKey]) {
let parm = {
type: self.currentItem.codeTree,
id: realFormLableAlign[realValueKey],
grade: "prev",
};
self
.doQueryRequest(parm, "/api/queryCodeByType")
.then((codeResult) => {
if (codeResult.code == 200) {
var codRes = codeResult.data.rows;
var codeArry = [];
var realCodeResult = [];
for (var j = 0; j < codRes.length; j++) {
var singleRow = codRes[j];
if (singleRow.children && singleRow.children.length > 0) {
codeArry.push(singleRow.id);
self.getChildrenCode(codeArry, singleRow);
}
}
self.defaultExpandedKeys = codeArry;
}
});
}
if (value) {
self.filterText = "";
self.codeTreeConfig.nodeKey = "value";
self.codeTreeConfig.codeType = item.codeTree;
self.codeTreeConfig.codeId = "";
if (this.curFormData[this.curItem.id] == "") {
self.codeTreeConfig.fieldItem = item;
} else {
if (
self.codeTreeConfig.fieldItem == null ||
self.codeTreeConfig.fieldItem.length == 0 ||
self.codeTreeConfig.fieldItem == ""
) {
self.codeTreeConfig.fieldItem = item;
}
}
self.codeTreeConfig.realFatherValue = realFormLableAlign;
self.codeTreeConfig.realrValueKey = realValueKey;
//先设置一个默认空值
self.codeTreeConfig.realValue = realFormLableAlign[realValueKey];
self.codeTreeConfig.title = item.name;
//延迟加载使弹框的z-index值在el-select之上
setTimeout(() => {
self.dialogCodeVisible = true;
}, 10);
if (item.codeTree == "CODE_AJXZ_MA") {
if (realFormLableAlign["ajlbdm"]) {
self.codeTreeConfig.props = item.codeOptions.slice(0);
self.codeTreeConfig.props.forEach((item) => {
if (item.id == realFormLableAlign["ajlbdm"]) {
self.codeTreeConfig.props = item.children;
return false;
}
});
} else {
self.codeTreeConfig.props = [];
return;
}
} else {
self.codeTreeConfig.props = item.codeOptions;
}
}
},
/**
* 懒加载节点
*/
loadNode(currentNode, resolve) {
var self = this;
var cc = arguments;
let parm = {
type: self.currentItem.codeTree,
};
if (currentNode.level != 0) {
parm.id = currentNode.data.id;
parm.grade = "next";
}
self
.doQueryRequest(parm, "/api/queryCodeByType")
.then((codeResult) => {
if (codeResult.code == 200) {
//判断是否有下级
codeResult.data.rows.forEach((realCodeItem) => {
realCodeItem.label =
realCodeItem.label;
if (realCodeItem.parentFlag == "true") {
realCodeItem.leaf = false;
} else {
realCodeItem.leaf = true;
}
});
resolve(codeResult.data.rows);
}
});
},
doQueryRequest(form, relurl) {
/*post方法*/
var currentUrl = relurl ? relurl : this.cxUrl;
return Http({
url: currentUrl,
data: form,
params: form,
method: "get",
headers: {
"blade-auth": sessionStorage.getItem("token"),
},
});
},
/**
* 获取子字典数据
*/
getChildrenCode(codeArry, singleRo) {
var self = this;
singleRo.children.forEach((childrenItem) => {
if (childrenItem.children && childrenItem.children.length > 0) {
codeArry.push(childrenItem.id);
self.getChildrenCode(codeArry, childrenItem);
}
});
},
/**
* 获取子字典数据item
*/
getChildrenItem(orgId, singleRo) {
var self = this;
var readyToReturn;
singleRo.children.forEach((childrenItem) => {
if (childrenItem.id == orgId) {
readyToReturn = childrenItem;
} else {
if (childrenItem.children.length > 0) {
readyToReturn = self.getChildrenItem(orgId, childrenItem);
}
}
});
return readyToReturn;
},
},
};
</script>
<style scoped lang="scss">
/deep/ .zdyCodeDialog {
opacity: 0;
}
/deep/ .treeDialog {
width: 680px;
height: 606px;
background: #ffffff;
box-shadow: 0px 8px 8px rgba(0, 0, 0, 0.1);
opacity: 1;
border-radius: 8px;
position: absolute;
top: 40%;
left: 50%;
margin-top: -223px !important;
margin-left: -340px;
z-index: 100;
.el-dialog__body {
height: 500px;
}
}
</style>
......@@ -144,7 +144,7 @@
<el-checkbox-group v-model="formData[item.id]" size="small">
<el-checkbox
v-for="city in item.checkList"
:label="city.label"
:label="city.val"
:key="city.val"
>{{ city.label }}</el-checkbox
>
......@@ -512,10 +512,12 @@ export default {
i != "typeFlag" &&
i != "unitcode" &&
i != "grade" &&
i != "flwssfhgpdbz"
i != "flwssfhgpdbz" &&
i != "asjbz_ajfl"
) {
self.formData[i] = "";
}
if (i == "asjbz_ajfl") self.formData[i] = [];
}
self.formData["rows"] = 10;
self.formData["page"] = 1;
......@@ -564,14 +566,20 @@ export default {
let self = this,
json = {};
for (let i in self.formData) {
if (i == "ajlbdm") {
if (self.formData[i] && self.formData[i].length > 0) {
var str = "";
self.formData[i].forEach((item) => {
str = str ? `${str},${item.val}` : `${item.val}`;
});
}
json[i] = str;
// if (i == "ajlbdm") {
// if (self.formData[i] && self.formData[i].length > 0) {
// var str = "";
// self.formData[i].forEach((item) => {
// str = str ? `${str},${item.val}` : `${item.val}`;
// });
// }
// json[i] = str;
// } else
if (i == "asjbz_ajfl") {
json[i] =
self.formData[i] != "" && self.formData[i] != null
? self.formData[i].join(",")
: "";
} else if (i != "cxSj") {
json[i] = self.formData[i];
} else {
......@@ -584,7 +592,7 @@ export default {
if (flag) {
esAsjQuery(json)
.then((response) => {
if (response.code === 20000) {
if (response.code === 200) {
self.tableData = response.data.rows;
self.tableDataLength = response.data.total;
self.tPage = Math.ceil(response.data.total / self.page_size);
......@@ -613,17 +621,6 @@ export default {
axios
.get(`JsonData/${val.codeTree}.json`)
.then((res) => {
// let userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
// if (userInfo.grade == "B") {
// self.$set(val, "codeOptions", res.data.rows);
// } else {
// debugger
// let unitcode = userInfo.unitcode.slice(0, 2);
// let arr1 = res.data.data.rows.filter(
// (item) => item.id.slice(0, 2) == unitcode
// );
// self.$set(val, "codeOptions", arr1);
// }
self.$set(val, "codeOptions", res.data.rows);
})
.catch((err) => {
......
......@@ -759,7 +759,7 @@ export default {
this.cxUrl(JSON.stringify(json)).then((response) => {
if (response.code === 200) {
require.ensure([], () => {
const { export_json_to_excel } = require("../utils/Export2Excel");
const { export_json_to_excel } = require("../../utils/Export2Excel");
const list = response.data.rows;
const data = self.formatJson(filterVal, list);
debugger;
......
......@@ -591,7 +591,6 @@
</div>
<div class="pageBtns">
<div v-for="item in pageBtns" :key="item">
<el-button
type="danger"
icon="el-icon-close"
......@@ -724,7 +723,7 @@ export default {
require.ensure([], () => {
const {
export_json_to_excel,
} = require("../../utils/Export2Excel");
} = require("../../../utils/Export2Excel");
const list = response.data.rows;
const data = self.formatJson(filterVal, list);
debugger;
......@@ -947,8 +946,8 @@ export default {
this.tableDataLength = this.tableInfor.length;
this.closeLoading();
this.$nextTick(() => {
this.$refs.itsmDataTable.doLayout()
})
this.$refs.itsmDataTable.doLayout();
});
}
},
computed: {
......@@ -996,8 +995,8 @@ export default {
this.closeLoading();
this.key = 2;
this.$nextTick(() => {
this.$refs.itsmDataTable.doLayout()
})
this.$refs.itsmDataTable.doLayout();
});
}
},
deep: true,
......
<template>
<div class="formWrap">
<!-- <div>
<span class="flTtitle">查询条件</span>
<span class="pageGuide">页面引导</span>
<span class="settingField" @click="centerDialogVisible = true"
><i class="iconfont icontiaojie"></i>配置查询条件</span
>
</div> -->
{{formD}}
<el-form
label-position="right"
label-width="140px"
ref="ajxxForm"
:model="formD"
>
<form-item
ref="formItem1"
:formField="ajxxDefaultField"
:formDa="formD"
:deleteIdKey="deleteIdKey"
v-show="ajxxDefaultField.data.length != 0"
@getSelected="getSelected"
></form-item>
<form-item
ref="formItem2"
:formField="xyrxxDefaultField"
:formDa="formD"
:deleteIdKey="deleteIdKey"
v-show="xyrxxDefaultField.data.length != 0"
@getSelected="getSelected"
></form-item>
<!-- <form-item
ref="formItem3"
:formField="shrxxDefaultField"
:formDa="formD"
:deleteIdKey="deleteIdKey"
v-show="shrxxDefaultField.data.length != 0"
@getSelected="getSelected"
></form-item>
<form-item
ref="formItem4"
:formField="flxxDefaultField"
:formDa="formD"
:deleteIdKey="deleteIdKey"
v-show="flxxDefaultField.data.length != 0"
@getSelected="getSelected"
></form-item> -->
</el-form>
<div class="ar" style="margin-top:20px;margin-right:34px;">
<el-button
type="primary"
size="small"
style="width: 100px"
@click="doQueryBtn('xyrxx')"
>查询
</el-button>
<el-button size="small" @click="clearData" style="width: 100px"
>清空
</el-button>
<!-- <el-button plain size="small" class="zdybtn delete" @click="deleteField"
>清空</el-button
>-->
</div>
<el-dialog
:visible.sync="centerDialogVisible"
width="1000px"
:show-close="false"
:close-on-click-modal="false"
custom-class="cxtjDialog"
center
>
<template slot="title">
<div class="fs16"><i class="iconfont icontiaojie"></i>配置查询条件</div>
</template>
<setting-dialog
@emitDialog="emitDialog"
@close="close"
:AjxxDefaultFormField="ajxxDefaultField"
:xyrxxDefaultField="xyrxxDefaultField"
:shrxxDefaultField="shrxxDefaultField"
:flxxDefaultField="flxxDefaultField"
:waitAjxxField="waitAjxxField"
:waitShrxxField="waitShrxxField"
:waitXyrxxField="waitXyrxxField"
:waitFlxxField="waitFlxxField"
@loading="loading"
></setting-dialog>
</el-dialog>
</div>
</template>
<script>
import formItem from "./formItem_components.vue";
import settingDialog from "@/views/dwcx/dialog.vue";
import "@/assets/styles/iconfont.css";
import {saveTableTitleRedis,queryCodeByType} from "@/api/dictionaryCode.js";
import axios from "axios";
export default {
name: "formWrap",
components: {
formItem,
settingDialog
},
props: {
formData: Object,
AjxxFormField: Object,
XyrxxFormField: Object,
ShrxxFormField: Object,
FlxxFormField: Object,
AjxxDefaultFormField: Object,
XyrxxDefaultFormField: Object,
ShrxxDefaultFormField: Object,
FlxxDefaultFormField: Object,
fieldType: String,
deleteId: String
},
data() {
return {
initNum:0,
deleteIdKey:this.deleteId,
formD: this.formData,
ajxxField: this.AjxxFormField,
xyrxxField: this.XyrxxFormField,
shrxxField: this.ShrxxFormField,
flxxField: this.FlxxFormField,
ajxxDefaultField: this.AjxxDefaultFormField,
xyrxxDefaultField: this.XyrxxDefaultFormField,
shrxxDefaultField: this.ShrxxDefaultFormField,
flxxDefaultField: this.FlxxDefaultFormField,
isMultiple: false,
centerDialogVisible: false,
waitAjxxField: [],
waitShrxxField: [],
waitXyrxxField: [],
waitFlxxField: [],
type: this.fieldType
};
},
methods: {
doQueryBtn(){
let self = this;
self.formD.page = 1;
self.$emit("doQueryList", self.formD,);
},
clearData(){
let self = this;
for (let i in self.formD) {
self.formD[i] = "";
}
},
childMethods(id){
this.$refs.formItem1.clearZdyAll(id);
this.$refs.formItem2.clearZdyAll(id);
this.$refs.formItem3.clearZdyAll(id);
this.$refs.formItem4.clearZdyAll(id);
},
clearSearchValue(){
this.$refs.formItem1.clearSearchValue();
this.$refs.formItem2.clearSearchValue();
this.$refs.formItem3.clearSearchValue();
this.$refs.formItem4.clearSearchValue();
},
delete(){//清空所有得时候
this.$refs.formItem1.deleteValue();
this.$refs.formItem2.deleteValue();
this.$refs.formItem3.deleteValue();this.$refs.formItem4.deleteValue();
},
deleteField() {
let self = this;
for (let i in self.formD) {
if (i == "flxx") {
self.formD[i] = [];
} else if (i == "page") {
self.formD[i] = "1";
} else if (i == "rows") {
self.formD[i] = "10";
} else if (i == "desc") {
self.formD[i] = "larq";
} else {
self.formD[i] = "";
}
}
},
loading(data) {
this.$emit("emitLoading", data);
},
getSelected(data, index) {
this.$emit("getSeletedList", data, index);
},
doQuery(type) {
let self = this;
self.formD.page = 1;
self.$emit("doQueryList", type, self.formD, "isButton");
},
emitDialog(flag, ajxxL, xyrL, shrL, flxxL, ajxxO, xyrO, shrO, flxxO) {
/*保存的字段匹配*/
let self = this;
let obj1 = JSON.parse(ajxxL);
let obj2 = JSON.parse(xyrL);
let obj3 = JSON.parse(shrL);
let obj4 = JSON.parse(flxxL);
self.centerDialogVisible = flag;
/*保存*/
let params = {};
params.name = "基础查询保存查询字段";
params.type = self.type;
params.list = [];
self.$set(params.list, 0, obj1);
self.$set(params.list, 1, obj2);
self.$set(params.list, 2, obj3);
self.$set(params.list, 3, obj4);
saveTableTitleRedis(JSON.stringify(params)).then(res => {
if (res.success === true) {
self.$message({
type: "success",
message: "保存成功"
});
self.ajxxDefaultField = JSON.parse(ajxxO);
self.xyrxxDefaultField = JSON.parse(xyrO);
self.shrxxDefaultField = JSON.parse(shrO);
self.flxxDefaultField = JSON.parse(flxxO);
self.init();
self.initCode();
self.$emit("closeLoading", false);
} else {
self.$message({
type: "error",
message: "保存失败"
});
self.$emit("closeLoading", false);
}
});
},
close(flag) {
this.centerDialogVisible = flag;
},
init() {
let self = this;
console.log(self.ajxxField);
self.waitAjxxField = self.ajxxField.data.filter(
item => !self.ajxxDefaultField.data.some(ele => ele.name === item.name)
);
self.initNum++;
// console.log(self.shrxxField);
// self.waitShrxxField = self.shrxxField.data.filter(
// item => !self.shrxxDefaultField.data.some(ele => ele.name === item.name)
// );
// self.initNum++;
console.log(self.xyrxxField);
self.waitXyrxxField = self.xyrxxField.data.filter(
item => !self.xyrxxDefaultField.data.some(ele => ele.name === item.name)
);
self.initNum++;
// self.waitFlxxField = self.flxxField.data.filter(
// item => !self.flxxDefaultField.data.some(ele => ele.name === item.name)
// );
// self.initNum++;
},
initCode() {
let self = this;
debugger
self.ajxxDefaultField.data.forEach((val,index) => {
if (val.type == "code"||val.type == "codeTreeDialog") {
if (val.codeOptions.length == 0) {
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success === true) {
debugger
self.$set(val, "codeOptions", response.data.rows);
}
});
}
}
if(index==self.ajxxDefaultField.data.length-1){
self.initNum++;
}
});
self.xyrxxDefaultField.data.forEach((val,index2) => {
if (val.type == "code"||val.type == "codeTreeDialog") {
if (val.codeOptions.length == 0) {
axios.get(`JsonData/${val.codeTree}.json`).then(response => {
if (response.success) {
self.$set(val, "codeOptions", response.data.rows);
}
});
}
}
if(index2==self.xyrxxDefaultField.data.length-1){
self.initNum++;
}
});
// self.shrxxDefaultField.data.forEach((val,index3) => {
// if (val.type == "code"||val.type == "codeTreeDialog") {
// if (val.codeOptions.length == 0) {
// axios.get(`JsonData/${val.codeTree}.json`).then(response => {
// if (response.success === true) {
// self.$set(val, "codeOptions", response.data.rows);
// }
// });
// }
// }
// if(index3==self.shrxxDefaultField.data.length-1){
// self.initNum++;
// }
// });
}
},
mounted() {
let self = this;
self.init();
self.initCode();
},
watch: {
// initNum(val){
// if(val>=7){
// this.$emit("closeInitLoading");
// }
// },
// deleteId(val){
// this.deleteIdKey=val;
// },
// AjxxDefaultFormField(val) {
// this.ajxxDefaultField = val;
// },
// XyrxxDefaultFormField(val) {
// this.xyrxxDefaultField = val;
// },
// ShrxxDefaultFormField(val) {
// this.shrxxDefaultField = val;
// },
// FlxxDefaultFormField(val) {
// this.flxxDefaultField = val;
// this.initCode();
// this.init();
// },
formData(data) {
this.formD = data;
}
}
};
</script>
<style scoped lang="scss">
@import "../assets/styles/form.scss";
</style>
<template>
<div style="width:100%">
<!--字典框 @emitValue="getLbValue"-->
<el-select :placeholder="curItem.placeholder"
v-model="curFormData[curItem.id]"
:class="curItem.code"
style="width:100%"
collapse-tags
popper-class="zdyCodeDialog"
@clear="clearSeleted"
@remove-tag="removeTag"
:popper-append-to-body="false"
:multiple="curItem.multiple"
:disabled="curItem.disabled"
empty-text="请从弹框中选择数据"
@visible-change="
(val, $event) => showCodeTreeDialog(val, curItem, curFormData,curItem.id)
"
clearable>
<el-option v-for="item2 in codeTreeConfig.fieldItem"
:key="item2.id"
:label="item2.label"
:value="item2.id">
</el-option>
</el-select>
<!--多级或多数据下拉框弹框样式-->
<el-dialog v-if="dialogCodeVisible"
custom-class="treeDialog"
:visible.sync="dialogCodeVisible"
style="z-index: 2020 !important;"
:close-on-click-modal="false"
center>
<div slot="title"
class="header-title"
style="text-align: left;height: 30px;font-size: 16px;font-family: Microsoft YaHei;font-weight: bold;line-height: 30px;opacity: 1;">
<div>{{ codeTreeConfig.title }}</div>
</div>
<el-input placeholder="输入关键字进行过滤"
v-model="filterText"
style="margin-bottom:4px;width:calc(100% - 26px) !important; margin-left: 15px; margin-top: 2px;">
</el-input>
<div style="width: calc(100% - 18px);height:calc(100% - 42px);overflow-y:auto;border-bottom:1px solid #F2F2F2;margin-left: 7px;">
<el-tree :props="defaultProps"
node-key="id"
:filter-node-method="filterNode"
ref="codeTreeDialog"
:default-expanded-keys="[]"
:default-checked-keys="Array.isArray(curFormData[curItem.id])?curFormData[curItem.id]:[...curFormData[curItem.id]]"
@check="codeTreeNodeCheck"
@check-change="handleNodeClick"
:data="codeTreeConfig.props"
:check-on-click-node="true"
check-strictly
show-checkbox
style="height: 288px;">
<span class="custom-tree-node"
slot-scope="{ node, data }">
<span>{{ node.label }}</span>
</span>
</el-tree>
</div>
<div slot="footer"
class="dialog-footer ar"
style="margin-top: 11px;">
<el-button @click="dialogCodeVisible = false;"
style="width:120px;height:36px">取 消</el-button>
<el-button type="primary"
@click="forSureSelectCode"
style="width:120px;height:36px">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
name: "treeCode_components",
props: {
formData: Object,
currentItem: Object,
sendId: String,
},
data() {
return {
curFormData: this.formData,
curItem: this.currentItem,
defaultProps: {
parent: 'parentId', // 父级唯一标识
value: 'id', // 唯一标识
label: 'label', // 标签显示
children: 'children' // 子级
},
id: this.sendId,
filterText: '',
//多级或多数据下拉框弹框样式(数据量太多时使用这种风格 普通字典还用原来的下拉框)
dialogCodeVisible: false,
//树型字典配置
codeTreeConfig: {
//弹框标题
title: "案发地区划",
//值字段
nodeKey: "value",
//字典类型
codeType: "CODE_XZQH",
//绑定的model
realValue: null,
//当前要展示的字段
fieldItem: null,
//codeTree预设
props: []
},
fdId: "",
}
},
computed: {
newValue() {
var self = this;
if (this.curItem.id != 'zcjddm' && this.curItem.codeOptions.length != 0) {
if (this.curFormData[this.curItem.id] != '') {
let value = this.queryTree(this.curItem.codeOptions, this.curFormData[this.curItem.id]);
this.codeTreeConfig.fieldItem = [];
this.$set(
this.curFormData,
this.curItem.id,
value[0] == undefined ? '' : this.curFormData[this.curItem.id]
);
if (value && value.length > 1) {
var label = '';
value.forEach((singleValue, valueIndex) => {
self.codeTreeConfig.fieldItem.push({
id: self.curFormData[this.curItem.id][valueIndex],
label: singleValue == undefined ? '' : singleValue
})
label += valueIndex == 0 ? '' + (singleValue == undefined ? '' : singleValue) : ',' + (singleValue == undefined ? '' : singleValue);
})
debugger
self.$emit("getDialogSeleted", label);
} else if (value && value.length == 1) {
var label = '';
value.forEach((singleValue, valueIndex) => {
if (Array.isArray(self.curFormData[this.curItem.id])) {
self.codeTreeConfig.fieldItem.push({
id: self.curFormData[this.curItem.id][valueIndex],
label: singleValue == undefined ? '' : singleValue
})
} else {
self.codeTreeConfig.fieldItem.push({
id: self.curFormData[this.curItem.id],
label: singleValue == undefined ? '' : singleValue
})
}
label += valueIndex == 0 ? '' + (singleValue == undefined ? '' : singleValue) : ',' + (singleValue == undefined ? '' : singleValue);
})
self.$emit("getDialogSeleted", label);
}
}
}
/*return this.curFormData[this.curItem.id]*/
},
newArr() {
return JSON.parse(JSON.stringify(this.curItem.codeOptions));
}
},
watch: {
newArr: {
handler(newValue, oldValue) {
var self = this
if (oldValue.length == 0 && this.curFormData[this.curItem.id] != "") {
console.log(newValue);
let value = this.queryTree(newValue, this.curFormData[this.curItem.id]);
this.codeTreeConfig.fieldItem = [];
this.$set(
this.curFormData,
this.curItem.id,
value[0] == undefined ? '' : this.curFormData[this.curItem.id]
);
if (value && value.length > 1) {
value.forEach((singleValue, valueIndex) => {
self.codeTreeConfig.fieldItem.push({
id: self.curFormData[this.curItem.id][valueIndex],
label: singleValue == undefined ? '' : singleValue
})
})
} else if (value && value.length == 1) {
value.forEach((singleValue, valueIndex) => {
self.codeTreeConfig.fieldItem.push({
id: self.curFormData[this.curItem.id],
label: singleValue == undefined ? '' : singleValue
})
})
}
}
}
},
formData(val) {
this.curFormData = val;
},
filterText(val) {
clearTimeout(this.fdId);
this.fdId = setTimeout(() => {
this.$refs.codeTreeDialog.filter(val);
}, 500);
},
newValue(val) {
if (val != '') {
let value = this.queryTree(this.curItem.codeOptions, val)[0];
this.codeTreeConfig.fieldItem = [];
this.$set(
this.curFormData,
this.curItem.id,
value == undefined ? '' : val
);
this.codeTreeConfig.fieldItem.push({
id: val,
label: value == undefined ? '' : value
})
}
}
/*curFormData(val){
if(val[this.id]!=''){
this.codeTreeConfig.fieldItem=[];
var data=JSON.parse(JSON.stringify(this.curItem.codeOptions));
let value=this.queryTree(data, val[this.id]);
this.codeTreeConfig.fieldItem.push({
id: val[this.id],
label: value
})
}
}*/
},
methods: {
// 搜索树状数据中的 ID
queryTree(tree, id) {
const tmp = []; // 路径数组
const FindPos = (sourceTree, sourceId) => {
if (sourceTree.id == sourceId) {
tmp.push(sourceTree.label);
return;
} else {
if (sourceTree.children && sourceTree.children.length != 0) {
sourceTree.children.forEach(item => {
if (item.id === sourceId) {
// 寻找到指定的元素节点
tmp.push(item.label);
FindPos(tree, sourceTree.id); // 继续寻找上层元素的位置
} else {
// 当前继续寻找别的子项
FindPos(item, sourceId);
}
});
}
}
};
if (Array.isArray(id)) {
id.forEach(singleId => {
tree.forEach(item2 => {
FindPos(item2, singleId);
});
})
} else {
tree.forEach(item2 => {
FindPos(item2, id);
});
}
return tmp.reverse();
},
removeTag(val) {
let self = this, label = "";
self.codeTreeConfig.fieldItem.splice(self.codeTreeConfig.fieldItem.findIndex(item => item.id === val), 1)
if (self.codeTreeConfig.fieldItem.length != 0) {
self.codeTreeConfig.fieldItem.forEach((item, index) => {
label += index == 0 ? '' + item.label : ',' + item.label;
})
} else {
label = "";
}
this.$emit("getDialogSeleted", label);
},
clearSeleted() {
this.$emit("getDialogSeleted", "");
},
//确定选择当前用户
forSureSelectCode() {
var self = this;
var thisCodeOptions = [];
if (self.$refs.codeTreeDialog.getCheckedNodes().length != 0) {
if (self.curItem.multiple) {
self.$set(
self.codeTreeConfig.realFatherValue,
self.codeTreeConfig.realrValueKey,
self.$refs.codeTreeDialog.getCheckedKeys()
);
var selectedNodes = self.$refs.codeTreeDialog.getCheckedNodes();
for (var i = 0; i < selectedNodes.length; i++) {
thisCodeOptions.push({
id: selectedNodes[i].id,
label: selectedNodes[i].label
});
}
} else {
self.$set(
self.codeTreeConfig.realFatherValue,
self.codeTreeConfig.realrValueKey,
self.$refs.codeTreeDialog.getCheckedNodes()[0].id
);
thisCodeOptions.push({
id: self.$refs.codeTreeDialog.getCheckedNodes()[0].id,
label: self.$refs.codeTreeDialog.getCheckedNodes()[0].label
});
}
self.codeTreeConfig.fieldItem = thisCodeOptions;
if (self.codeTreeConfig.fieldItem.type == "codeTag") {
self.changeTags(
self.$refs.codeTreeDialog.getCheckedKeys(),
self.codeTreeConfig.fieldItem
);
}
self.$forceUpdate();
if (self.curItem.multiple) {
let label = '';
thisCodeOptions.forEach((item, index) => {
label += index == 0 ? '' + item.label : ',' + item.label;
})
self.$emit("getDialogSeleted", label);
} else {
self.$emit("getDialogSeleted", thisCodeOptions[0].label);
}
} else {//没有选值得情况
self.$set(
self.codeTreeConfig.realFatherValue,
self.codeTreeConfig.realrValueKey,
""
);
self.$forceUpdate();
self.$emit("getDialogSeleted", "");
}
self.dialogCodeVisible = false;
},
filterNode(value, data) {
debugger
if (!value) return true;
return data.label.indexOf(value) !== -1 || data.id.indexOf(value) !== -1;
},
handleNodeClick(data, checked) {
var self = this;
if (!self.curItem.multiple) {
if (checked === true) {
self.codeTreeConfig.codeId = data.id;
self.$refs.codeTreeDialog.setCheckedKeys([data.id])
} else {
if (self.codeTreeConfig.codeId === data.id) {
self.$refs.codeTreeDialog.setCheckedKeys([])
}
}
}
},
//树形字典节点点击事件(用来拦截并控制单选)
codeTreeNodeCheck(data, checked, node) {
console.log(data, checked, node)
},
/**
* 展示字典树弹出框
*/
showCodeTreeDialog(value, item, realFormLableAlign, realValueKey) {
var self = this;
if (value) {
self.filterText = "";
self.codeTreeConfig.nodeKey = "value";
self.codeTreeConfig.codeType = item.codeTree;
self.codeTreeConfig.codeId = "";
if (this.curFormData[this.curItem.id] == "") {
self.codeTreeConfig.fieldItem = item;
} else {
if (self.codeTreeConfig.fieldItem == null || self.codeTreeConfig.fieldItem.length == 0 || self.codeTreeConfig.fieldItem == '') {
self.codeTreeConfig.fieldItem = item;
}
}
self.codeTreeConfig.realFatherValue = realFormLableAlign;
self.codeTreeConfig.realrValueKey = realValueKey;
//先设置一个默认空值
self.codeTreeConfig.realValue = realFormLableAlign[realValueKey];
self.codeTreeConfig.title = item.name;
//延迟加载使弹框的z-index值在el-select之上
setTimeout(() => {
self.dialogCodeVisible = true;
}, 10);
self.codeTreeConfig.props = item.codeOptions;
}
},
}
}
</script>
<style scoped>
/deep/ .zdyCodeDialog {
opacity: 0;
}
/deep/ .treeDialog {
width: 680px;
height: 446px;
background: #ffffff;
box-shadow: 0px 8px 8px rgba(0, 0, 0, 0.1);
opacity: 1;
border-radius: 8px;
position: absolute;
top: 50%;
left: 50%;
margin-top: -223px !important;
margin-left: -340px;
z-index: 100;
}
</style>
<template>
<el-popover
ref="popover"
placement="bottom-start"
trigger="click"
@show="onShowPopover"
@hide="onHidePopover"
>
<el-tree
ref="tree"
class="select-tree"
:style="{ 'min-width': treeWidth }"
highlight-current
:data="data"
:props="props"
:expand-on-click-node="false"
:filter-node-method="filterNode"
:default-expand-all="false"
@node-click="onClickNode"
/>
<el-input
slot="reference"
ref="input"
v-model="labelModel"
clearable
@clear="clearSeleted"
:class="{ rotate: showStatus }"
:placeholder="placeholder"
suffix-icon="el-icon-arrow-down"
>
<!--<i slot="suffix" class="iconfont iconzidianmaxuanze"></i>-->
</el-input>
</el-popover>
</template>
<script>
export default {
name: "ElSelectTree",
// 设置绑定参数
model: {
prop: "value",
event: "selected"
},
props: {
sendId: String,
// 接收绑定参数
value: String,
// 输入框宽度
width: String,
// 选项数据
options: {
type: Array,
required: true
},
// 输入框占位符
placeholder: {
type: String,
required: false,
default: "请选择"
},
// 树节点配置选项
props: {
type: Object,
required: false,
default: () => ({
parent: "parentId",
value: "id",
label: "label",
children: "children"
})
}
},
data() {
return {
// 树状菜单显示状态
showStatus: false,
// 菜单宽度
treeWidth: "auto",
// 输入框显示值
labelModel: "",
// 实际请求传值
valueModel: ""
};
},
computed: {
// 是否为树状结构数据
dataType() {
const jsonStr = JSON.stringify(this.options);
/*if (process.client) {*/
return jsonStr.indexOf(this.props.children) !== -1;
/* }*/
},
// 若非树状结构,则转化为树状结构数据
data() {
return this.dataType ? this.options : this.switchTree();
}
},
watch: {
labelModel(val) {
if (!val) {
this.valueModel = "";
}
/* if (process.client) {*/
this.$refs.tree.filter(val);
this.$emit("getSeleted", this.labelModel);
/* }*/
},
value(val) {
if (this.sendId && val == "") {
this.$emit("emitQkValue", this.sendId, val);
}
this.labelModel = this.queryTree(this.data, val);
this.$emit("getSeleted", this.labelModel);
}
},
created() {
// 检测输入框原有值并显示对应 label
if (this.value) {
this.labelModel = this.queryTree(this.data, this.value);
}
// 获取输入框宽度同步至树状菜单宽度
this.$nextTick(() => {
/* if (process.client) {*/
this.treeWidth = `${(this.width ||
this.$refs.input.$refs.input.clientWidth) - 24}px`;
/* }*/
});
},
methods: {
clearSearchValue(){
this.labelModel='';
},
clearSeleted() {
this.$emit("getSeleted", this.labelModel);
},
// 单击节点
onClickNode(node) {
this.labelModel = node[this.props.label];
this.valueModel = node[this.props.value];
if (this.sendId) {
this.$emit("emitValue", this.sendId, node.id, node.parentId);
}
this.onCloseTree();
this.$emit("getSeleted", this.labelModel);
},
// 偏平数组转化为树状层级结构
switchTree() {
return this.cleanChildren(this.buildTree(this.options, "0"));
},
// 隐藏树状菜单
onCloseTree() {
/*if (process.client) {
this.$refs.popover.showPopper = false;
}*/
this.$refs.popover.showPopper = false;
},
// 显示时触发
onShowPopover() {
this.showStatus = true;
/* if (process.client) {
this.$refs.tree.filter(false);
}*/
this.$refs.tree.filter(false);
},
// 隐藏时触发
onHidePopover() {
this.showStatus = false;
this.$emit("selected", this.valueModel);
},
// 树节点过滤方法
filterNode(query, data) {
if (!query) return true;
/*if (process.client) {*/
return data[this.props.label].indexOf(query) !== -1;
/* }*/
},
// 搜索树状数据中的 ID
queryTree(tree, id) {
let stark = [];
stark = stark.concat(tree);
/* if (process.client) {*/
while (stark.length) {
const temp = stark.shift();
if (temp[this.props.children]) {
stark = stark.concat(temp[this.props.children]);
}
if (temp[this.props.value] === id) {
return temp[this.props.label];
}
}
/* }*/
return "";
},
// 将一维的扁平数组转换为多层级对象
buildTree(data, id = "0") {
const fa = parentId => {
const temp = [];
/*if (process.client) {*/
for (let i = 0; i < data.length; i++) {
const n = data[i];
if (n[this.props.parent] === parentId) {
n.children = fa(n.rowGuid);
temp.push(n);
}
}
/* }*/
return temp;
};
return fa(id);
},
// 清除空 children项
cleanChildren(data) {
const fa = list => {
list.map(e => {
/*if (process.client) {*/
if (e.children.length) {
fa(e.children);
} else {
delete e.children;
}
/* }*/
return e;
});
return list;
};
return fa(data);
}
}
};
</script>
<style>
.el-input.el-input--suffix {
cursor: pointer;
overflow: hidden;
}
.el-input.el-input--suffix.rotate .el-input__suffix {
transform: rotate(180deg);
}
.select-tree {
max-height: 350px;
overflow-y: scroll;
}
/* 菜单滚动条 */
.select-tree::-webkit-scrollbar {
z-index: 11;
width: 6px;
}
.select-tree::-webkit-scrollbar-track,
.select-tree::-webkit-scrollbar-corner {
background: #fff;
}
.select-tree::-webkit-scrollbar-thumb {
border-radius: 5px;
width: 6px;
background: #b4bccc;
}
.select-tree::-webkit-scrollbar-track-piece {
background: #fff;
width: 6px;
}
</style>
......@@ -277,7 +277,8 @@
pageBs != 'zczltj' &&
pageBs != 'queryZjcl' &&
pageBs != 'queryXnpg' &&
pageBs != 'queryPgtj'
pageBs != 'queryPgtj'&&
pageBs != 'wscdaj'
"
>
<i class="el-icon-plus"></i> 新增
......@@ -292,6 +293,13 @@
<el-button
type="primary"
size="mini"
v-if="pageBs == 'wscdaj'"
@click="$emit('ajsx')"
>案件筛选</el-button
>
<el-button
type="primary"
size="mini"
v-if="pageBs == 'zdxxgl'"
@click="$emit('drzjhd')"
>excel导入交易活动</el-button
......
/*
* @Author: your name
* @Date: 2021-08-30 10:08:52
* @LastEditTime: 2021-10-12 11:47:18
* @LastEditTime: 2021-10-19 09:12:08
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\main.js
......@@ -100,6 +100,37 @@ Vue.directive("nsLoading", {
}
});
Vue.directive('drag', {
//1.指令绑定到元素上回立刻执行bind函数,只执行一次
//2.每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象
bind: function (el, elementObj) {
let dragBox = el; //获取当前元素
dragBox.style.position = 'absolute'; // 拖拽元素使用定位,脱离文档流
dragBox.onmousedown = e => {
//鼠标相对元素的位置
let disX = e.clientX - dragBox.offsetLeft;
let disY = e.clientY - dragBox.offsetTop;
document.onmousemove = e => {
//鼠标的位置减去鼠标相对元素的位置,得到元素的位置
let left = e.clientX - disX;
let top = e.clientY - disY;
//移动当前元素
dragBox.style.left = left + 'px';
dragBox.style.top = top + 'px';
};
document.onmouseup = e => {
//鼠标弹起来的时候不再移动
document.onmousemove = null;
//预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动)
document.onmouseup = null;
// 对外暴露元素相对于父级位置
elementObj.value.left = dragBox.style.left;
elementObj.value.top = dragBox.style.top;
};
};
}
});
new Vue({
router,
store,
......
/*
* @Author: your name
* @Date: 2021-08-31 14:40:49
* @LastEditTime: 2021-10-18 13:56:31
* @LastEditTime: 2021-10-19 11:37:54
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\router\index.js
......@@ -61,15 +61,6 @@ const mainRouters = [
ajbzRoutes,
xnpgRoutes,
{
path: "/zdgl",
name: "zdgl",
meta: {
title: "字典管理",
auth: 5
},
component: () => import("@/views/zdgl/zdgl.vue")
},
{
path: "*",
name: "error",
component: () => import("@/views/index/error.vue")
......
/*
* @Author: your name
* @Date: 2021-10-18 09:54:58
* @LastEditTime: 2021-10-18 16:29:28
* @LastEditTime: 2021-10-19 18:32:33
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\router\modules\ajbz.js
......@@ -36,33 +36,6 @@ const menuLayouts = [
component: () => import("@/views/ajbz/ajbzDetail1.vue")
},
{
path: "/bztj",
name: "bztj",
meta: {
title: "标注统计",
auth: 5
},
component: () => import("@/views/bztj/bztj.vue")
},
{
path: "/dwcx",
name: "dwcx",
meta: {
title: '多维查询',
auth: '5'
},
component: () => import("@/views/dwcx/index.vue")
},
{
path: "/ypbg",
name: "ypbg",
meta: {
title: "警情研判报告",
auth: "5"
},
component: () => import("@/views/ypbg/ypbg.vue")
},
{
path: "/bshcb",
name: "bshcb",
meta: {
......@@ -110,6 +83,125 @@ const menuLayouts = [
},
component: () => import("@/views/cbyp/ajfl.vue")
},
{
path: "/wscdaj",
name: "wscdaj",
meta: {
title: '我收藏的案件'
},
component: () => import("@/views/cbyp/wscdaj.vue")
},
{
path: "/xkcb",
name: "xkcb",
meta: {
title: '现勘串并'
},
component: () => import("@/views/cbyp/xkcb.vue")
},
{
path: "/ajsx",
name: "ajsx",
meta: {
title: '案件筛选'
},
component: () => import("@/views/cbyp/ajsx.vue")
},
{
path: "/zqgaj",
name: "zqgaj",
meta: {
title: "全国案件",
auth: 5
},
component: () => import("@/views/cbyp/qgaj.vue")
},
{
path: "/hbxsz",
name: "hbxsz",
meta: {
title: "合并线索组",
auth: 5
},
component: () => import("@/views/cbyp/hbxsz.vue")
},
{
path: "/cbaAdd",
name: "cbaAdd",
meta: {
title: "登记为串并案",
auth: 5
},
component: () => import("@/views/cbyp/cbaAdd.vue")
},
{
path: "/xzrgcb",
name: "xzrgcb",
meta: {
title: "新增人工串并",
auth: 5
},
component: () => import("@/views/cbyp/xzrgcb.vue")
},
{
path: "/toAddXlaj",
name: "toAddXlaj",
meta: {
title: "新增我的系列",
auth: 5
},
component: () => import("@/views/cbyp/toAddXlaj.vue")
},
{
path: "/qgxxxx",
name: "qgxxxx",
meta: {
title: "全国线索信息",
auth: 5
},
component: () => import("@/views/cbyp/qgxxxx.vue")
},
{
path: "/tobjcba",
name: "tobjcba",
meta: {
title: "系列案件详情",
auth: 5
},
component: () => import("@/views/cbyp/tobjcba.vue")
},
{
path: "/djwzba",
name: "djwzba",
redirect: '/djwzba/xgaj',
meta: {
title: "登记为串并案",
auth: 5
},
component: () => import("@/views/cbyp/cba/djwzba.vue"),
children: [
{
path: "xgaj",
name: "xgaj",
meta: {
title: "相关案件",
auth: 5
},
component: () => import("@/views/cbyp/cba/xgaj.vue"),
},
{
path: "tjaj",
name: "tjaj",
meta: {
title: "添加案件",
auth: 5
},
component: () => import("@/views/cbyp/cba/tjaj.vue"),
}
]
}
];
export default {
......
/*
* @Author: your name
* @Date: 2021-09-03 09:32:50
* @LastEditTime: 2021-09-03 09:38:15
* @LastEditors: your name
* @LastEditTime: 2021-10-19 11:39:57
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\router\modules\zdry.js
*/
......@@ -56,14 +56,14 @@ const menuLayouts = [
title: '类别统计'
},
component: () => import("@/views/zdry/lbtj.vue")
},{
}, {
path: "/zdryDetail",
name: "zdryDetail",
meta: {
title: '重点人员详情'
},
component: () => import("@/views/zdry/zdryDetail.vue")
},{
}, {
path: "/myaddZdryInsert",
name: "myaddZdryInsert",
meta: {
......
/*
* @Author: your name
* @Date: 2021-08-25 15:59:14
* @LastEditTime: 2021-08-25 15:59:14
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\utils\Bus.js
*/
import Vue from 'vue'
const bus = new Vue()
export default bus
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -920,6 +920,7 @@ export default {
});
},
wordHighlight(val) {
debugger;
var array = this.jyaq.split(val);
this.jyaq =
array[0] +
......@@ -929,6 +930,7 @@ export default {
array[1];
},
shrHighlight(val) {
debugger;
var array = this.jyaq.split(val);
this.jyaq =
array[0] +
......@@ -1333,10 +1335,11 @@ export default {
top: 10px;
}
.contioner {
width: 100%;
width: calc(100% - 50px);
height: 980px;
background: #1f212c;
margin: 0 auto;
margin: 20px;
box-sizing: border-box;
}
.title {
width: 97%;
......
......@@ -45,22 +45,21 @@ export default {
cxFormData: {
page: 1,
rows: 10,
asjbz_ajfl: "01",
asjbh: '',
ajlbdm: '',
// Ladw_gajgjgdms: '',
xszalxdm: '',
xslalxdm: '',
lasjRqsjKssj: '',
lasjRqsjJssj: '',
asjfssjKssj: '',
asjfssjJssj: '',
ssjzMin: '',
ssjzMax: '',
asjfsdd_xzqhdm: '',
bzzt: '',
asjfsddDzmc: '',
jyaq: '',
asjbz_ajfl: [],
asjbh: "",
ajlbdm: "",
xszalxdm: "",
xslalxdm: "",
lasjRqsjKssj: "",
lasjRqsjJssj: "",
asjfssjKssj: "",
asjfssjJssj: "",
ssjzMin: "",
ssjzMax: "",
asjfsdd_xzqhdm: "",
bzzt: "",
asjfsddDzmc: "",
jyaq: "",
},
cxQueryField: [
/*立案信息 侦查终结信息 立案信息审批 侦查终结审批通用开始*/
......@@ -82,16 +81,16 @@ export default {
codeOptions: [],
codeTree: "CODE_AJLB",
},
{
name: "立案单位",
id: "Ladw_gajgjgdms",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_UNIT",
},
// {
// name: "立案单位",
// id: "Ladw_gajgjgdms",
// type: "codeTreeDialog",
// props: [], //字典弹框需要的字段
// value: "",
// col: "3",
// codeOptions: [],
// codeTree: "CODE_UNIT",
// },
{
name: "主案类别",
id: "xszalxdm",
......@@ -128,21 +127,21 @@ export default {
value: "",
col: "3",
},
// {
// name: "案件分类",
// id: "asjbz_ajfl",
// type: "checkbox",
// value: "01",
// placeholder: "",
// col: "15",
// checkList: [
// { label: "盗窃", val: "01" },
// { label: "诈骗案", val: "02" },
// { label: "抢劫案", val: "03" },
// { label: "抢夺案", val: "04" },
// { label: "招摇撞骗案", val: "05" },
// ],
// },
{
name: "案件分类",
id: "asjbz_ajfl",
type: "checkbox",
value: "01",
placeholder: "",
col: "15",
checkList: [
{ label: "盗窃", val: "01" },
{ label: "诈骗案", val: "02" },
{ label: "抢劫案", val: "03" },
{ label: "抢夺案", val: "04" },
{ label: "招摇撞骗案", val: "05" },
],
},
{
name: "损失总价值",
id: "ssjzMin",
......
<template>
<div class="Content">
<div class="rightContent">
<!-- 搜索输入框 -->
<div class="Content paneDiv paneDiv2">
<div class="cxtjWrap">
<el-form
label-position="right"
label-width="140px"
ref="bztj"
:model="formData"
>
<div class="zdyLine">
<el-form-item
:label="item.name + ':'"
v-for="item in BztjCxtj"
:key="item.id"
:prop="item.id"
:class="'demo-input-suffix zdycol' + item.col"
>
<div class="zdyInputW zdyInputCol2">
<el-date-picker
v-model="formData[item.id]"
type="date"
align="right"
:picker-options="item.pickerOptions"
unlink-panels
value-format="yyyy-MM-dd"
>
</el-date-picker>
<el-date-picker
v-model="formData[item.id2]"
type="date"
align="right"
:picker-options="item.pickerOptions2"
unlink-panels
value-format="yyyy-MM-dd"
>
</el-date-picker>
</div>
</el-form-item>
</div>
</el-form>
<!--按钮-->
<div class="btm-btns">
<el-button
type="primary"
size="small"
style="width: 100px"
@click="doQuery"
>查询
</el-button>
<el-button size="small" @click="clearData" style="width: 100px"
>清空
</el-button>
</div>
</div>
</div>
<!-- 表格内容 -->
<div class="Content paneDiv paneDiv2">
<div class="">
<el-row style="width: 99%; margin: 0 auto">
<el-col :span="24">
<span class="flTtitle">案件信息</span>
<!--可配置化图标-->
<div class="total">
<span> {{ tableDataLength }} </span>
</div>
<span class="export-btn">
<el-button
plain
size="small"
@click="export2Excel"
class="export"
><i
class="iconfont iconshangchuan"
style="margin-right: 2px"
></i
>导出
</el-button>
</span>
</el-col>
</el-row>
<!--表格-->
<el-table
v-loading="tableLoading"
element-loading-text="拼命加载中"
ref="itsmDataTable"
tooltip-effect="dark"
max-height="600"
style="width: 99%; margin: 0 auto"
width="100%"
size="small"
:data="bztjDataList"
:row-class-name="tableRowClassName"
>
<el-table-column
align="center"
v-for="columnTitle in bztjFormThead"
:prop="columnTitle.prop"
:key="columnTitle.label"
:label="columnTitle.label"
:width="columnTitle.width"
>
<el-table-column
v-for="columnTitle1 in columnTitle.children"
:prop="columnTitle1.prop"
:key="columnTitle1.label"
:label="columnTitle1.label"
align="center"
:width="columnTitle1.width"
>
<template slot-scope="scope">
{{ scope.row[columnTitle1.prop] }}
</template>
</el-table-column>
</el-table-column>
</el-table>
<!--分页-->
<!-- <el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="currentPage1"
:page-sizes="[10, 20, 50, 100]"
:page-size="page_size"
layout="sizes,prev, pager, next"
:total="tableDataLength"
>
</el-pagination> -->
</div>
</div>
</div>
</div>
</template>
<script>
import { getAjBzTj } from "@/api/ypbg.js";
export default {
name: "bztj",
data() {
return {
header: "案件标注统计",
Menu: [
{
id: "bztj",
label: "标注统计信息",
index: "bztj",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
leftMenus: [
//左侧导航(模块第一个页面需要)
{
id: "bztj",
label: "案件标注统计",
newAuth: "M01",
index: "bztj",
className: "iconfont icongongnengfuwu",
hasChildren: false,
},
],
tableLoading: false, // 表格loading
currentPage1: 1, //表格页码
page_size: 10, //每页显示多少条
// 多少条数据
tableDataLength: 30,
// 查询条件
formData: {
asjfssjAsjfskssj: "",
asjfssjAsjfsjssj: "",
},
// 输入框
BztjCxtj: [
{
name: "发案时间",
id: "asjfssjAsjfskssj",
id2: "asjfssjAsjfsjssj",
type: "zdyDate",
value: "",
col: "3",
},
],
// 表格表头
bztjFormThead: [
{
label: "立案单位",
prop: "name",
width: "280",
},
{
label: "盗窃",
children: [
{
label: "未标注/已标注",
prop: "contBz0",
width: "150",
},
{
label: "已破/未破",
prop: "contPa1",
width: "150",
},
],
},
{
/*table默认得表头*/
label: "诈骗案",
children: [
{
label: "未标注/已标注",
prop: "contBz1",
width: "150",
},
{
label: "已破/未破",
prop: "contPa1",
width: "150",
},
],
},
{
label: "抢劫案",
children: [
{
label: "未标注/已标注",
prop: "contBz2",
width: "150",
},
{
label: "已破/未破",
prop: "contPa2",
width: "150",
},
],
},
{
label: "抢夺案",
children: [
{
label: "未标注/已标注",
prop: "contBz3",
width: "150",
},
{
label: "已破/未破",
prop: "contPa3",
width: "150",
},
],
},
{
label: "招摇撞骗案",
children: [
{
label: "未标注/已标注",
prop: "contBz4",
width: "150",
},
{
label: "已破/未破",
prop: "contPa4",
width: "150",
},
],
},
],
// 表格数据
bztjDataList: [],
loading: null,
};
},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
this.$store.commit("user/SET_LeftMenu", this.leftMenus);
this.$store.commit("user/SET_Header", this.header);
this.formData.asjfssjAsjfskssj = this.formatStartDate(new Date());
this.formData.asjfssjAsjfsjssj = this.formatDate(new Date());
this.loading = this.$loading({
lock: true,
text: "查询中...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
this.getAjTj();
},
methods: {
formatDate(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? "0" + m : m;
var d = date.getDate();
d = d < 10 ? "0" + d : d;
return y + "-" + m + "-" + d;
},
formatStartDate(date) {
var y = date.getFullYear();
return y + "-01-01";
},
doQuery() {
this.getAjTj();
},
getAjTj() {
var self = this;
getAjBzTj({
asjfssjAsjfskssj: self.formData.asjfssjAsjfskssj,
asjfssjAsjfsjssj: self.formData.asjfssjAsjfsjssj,
}).then((res) => {
self.bztjDataList = res.data.rows;
this.loading.close();
});
},
// 清空按钮
clearData() {
this.formData = {};
},
//字符串转数组
stringToArr(str) {
return str.split("-");
},
// 分页
handleSizeChange() {},
handleCurrentChange() {},
// 导出功能
export2Excel() {},
tableRowClassName({ rowIndex }) {
if (rowIndex % 2 == 0) {
return "";
} else {
return "success-row";
}
},
},
};
</script>
<style lang="scss" scoped>
/deep/input.el-input__inner {
height: 32px;
line-height: 32px;
font-family: inherit;
background: #f3f3f3;
}
/deep/.el-table thead {
color: #909399;
font-weight: 500;
}
.paneDiv2 {
padding-top: 10px !important;
}
.total {
height: 16px;
background: #f1970f;
border-radius: 8px;
display: inline-block;
text-align: center;
line-height: 16px;
padding: 0 8px;
span {
width: 35px;
height: 16px;
font-size: 12px;
font-weight: 400;
line-height: 16px;
color: #ffffff;
opacity: 1;
}
}
.export-btn {
float: right;
margin-top: 10px;
}
.export {
width: 72px;
height: 26px;
background: #ffffff;
border: 1px solid #3670ff;
color: #3670ff;
opacity: 1;
border-radius: 2px;
line-height: 5px;
margin-right: 0 !important;
}
@import "@/assets/styles/rightContent.scss";
</style>
<style>
@import url("../../assets/styles/iconfont.css");
.el-dialog__body {
padding: 10px 15px !important;
}
.rightContent .el-input__inner,
#formCommonPage .el-input__inner {
height: 32px;
line-height: 32px;
font-family: inherit;
}
.el-table__header-wrapper th,
.el-table__header-wrapper tr {
background: #f4f6f7;
}
.rightContent .el-input__icon,
#formCommonPage .el-input__icon,
.el-input__suffix-inner {
line-height: 32px;
}
.rightContent .el-range-separator {
position: relative;
top: -4px;
}
.rightContent .el-textarea__inner,
#formCommonPage .el-textarea__inner {
width: 100%;
font-family: inherit;
}
.rightContent .el-range-input,
#formCommonPage .el-range-input {
vertical-align: top;
}
.rightContent .el-date-editor .el-range__close-icon {
margin-top: -4px;
}
.rightContent .el-form-item__error {
left: calc(66% - 27px);
top: 12px;
}
.success-row {
background-color: #fbf9f4 !important;
}
.Content .el-input,
.Content .el-date-editor--daterange.el-input__inner {
width: 100% !important;
}
.btm-btns {
margin-left: 100px;
margin-top: 10px;
}
</style>
......@@ -39,7 +39,7 @@ export default {
ajzlbCode: "",
ajlalbCode: "",
ajclaCode: "",
rows: 10,
limit: 10,
page: 1,
// typeFlag: 'bshcb',
// sEcho: 1,
......@@ -60,12 +60,12 @@ export default {
{
name: "发案地行政区划",
id: "fxasjddXzqhdm",
type: "lazyCodeTreeDialog",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
},
{
name: "案件受理时间",
......
<!--
* @Author: your name
* @Date: 2021-10-19 18:32:41
* @LastEditTime: 2021-10-19 18:32:42
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\views\cbyp\ajsx.vue
-->
......@@ -43,7 +43,7 @@ export default {
sfwqgxs: "",
cbxgfwbzh: "",
cbxsly: "qs",
rows: 10,
limit: 10,
page: 1,
typeFlag: "bshcb",
sEcho: 1,
......@@ -68,22 +68,22 @@ export default {
{
name: "立案单位",
id: "ladw",
type: "lazyCodeTreeDialog",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
},
{
name: "受理单位",
id: "sldw",
type: "lazyCodeTreeDialog",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
},
{
name: "串并线索编号",
......@@ -318,12 +318,20 @@ export default {
},
{
id: "rgcb",
label: "类案串并",
label: "人工串并",
index: "rgcb",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
{
id: "xkcb",
label: "现勘串并",
index: "xkcb",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
},
{
......@@ -376,6 +384,14 @@ export default {
className: "iconfont iconrizhi",
disabled: false,
},
{
id: "wscdaj",
label: "我收藏的案件",
index: "wscdaj",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
},
],
......
......@@ -36,7 +36,7 @@ export default {
cxFormData: {
gjc: "",
bshlx: "",
rows: 10,
limit: 10,
page: 1,
},
cxQueryField: [
......
<!--
* @Author: your name
* @Date: 2021-08-25 09:47:35
* @LastEditTime: 2021-08-25 18:46:37
* @LastEditTime: 2021-10-19 16:13:21
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\views\cba\djwzba.vue
......@@ -37,7 +37,7 @@
<script>
import Bus from "@/utils/Bus";
import rightContent from "@c/bshChildrenQuery_cba.vue";
import rightContent from "@c/ajbz/bshChildrenQuery_cba.vue";
import { addxszglasj } from "@/api/cbyp.js";
export default {
components: {
......
......@@ -29,7 +29,7 @@
</template>
<script>
import rightContent from "@c/ptCxForm_components_tjaj.vue";
import rightContent from "@c/ajbz/ptCxForm_components_tjaj.vue";
import { insertCbzxx } from "@/api/cbyp.js";
import {
EsAsjQuery,
......@@ -99,10 +99,10 @@ export default {
{
name: "受理单位",
id: "sldwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
value: "",
col: "3",
},
......@@ -332,8 +332,8 @@ export default {
{
name: "抓获单位",
id: "zhdwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
codeTree: "CODE_QGUNIT",
type: "codeTreeDialog", //字典弹框
codeTree: "CODE_UNIT",
props: [], //字典弹框需要的字段
codeOptions: [],
placeholder: "请选择",
......@@ -462,10 +462,10 @@ export default {
{
name: "受理单位",
id: "sldwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
value: "",
col: "3",
},
......@@ -695,8 +695,8 @@ export default {
{
name: "抓获单位",
id: "zhdwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
codeTree: "CODE_QGUNIT",
type: "codeTreeDialog", //字典弹框
codeTree: "CODE_UNIT",
props: [], //字典弹框需要的字段
codeOptions: [],
placeholder: "请选择",
......
<!--
* @Author: your name
* @Date: 2021-08-25 09:47:52
* @LastEditTime: 2021-08-25 18:03:06
* @LastEditTime: 2021-10-19 15:27:31
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\views\cba\xgaj.vue
......@@ -140,10 +140,10 @@ export default {
},
async getData (start, length) {
async getData (page, limit) {
let fromData = {
start,
length,
page,
limit,
xszajbh: this.$route.query.xszajbh
}
let res = await queryxszglasj(fromData)
......
......@@ -417,7 +417,7 @@ export default {
xszajbhs: "",
xszajbhStrs: "",
}).then((res) => {
if (res.code == 200 && res.data.result == 1) {
if (res.code == 200) {
self.$message({
type: "success",
message: "保存成功",
......@@ -434,6 +434,7 @@ export default {
this.hbTable = [];
},
hbOther(index) {
debugger;
if (this.seleteTableOther[`select${index}`].length > 0) {
var arr = [];
arr = [...this.seleteTableOther[`select${index}`]];
......@@ -448,6 +449,7 @@ export default {
}
},
hbSelf(index) {
debugger;
if (this.seleteTableSelf[`select${index}`].length > 0) {
var arr = [];
arr = [...this.seleteTableOther[`select${index}`]];
......
......@@ -44,7 +44,7 @@ export default {
jyaq: "",
fasjEnd: "",
fasjStart: "",
rows: 10,
limit: 10,
page: 1,
typeFlag: "rgcb",
sEcho: 1,
......@@ -65,22 +65,22 @@ export default {
{
name: "立案单位",
id: "ladw",
type: "lazyCodeTreeDialog",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
},
{
name: "受理单位",
id: "sldw",
type: "lazyCodeTreeDialog",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
},
{
name: "串并线索编号",
......@@ -211,10 +211,23 @@ export default {
prop: "jyaq",
},
],
Menu: [
{
id: "rgcb",
label: "人工串并",
index: "rgcb",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
cxUrl: `${base.alyIP}/cbxsz/toQueryXszxx`,
childrenUrl: `${base.alyIP}/cbxsz/listCbxszGlAsjxx`,
};
},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
},
};
</script>
<style>
......
......@@ -29,7 +29,7 @@
</template>
<script>
import rightContent from "@c/rgcb_wdxl/ptCxForm_components.vue";
import rightContent from "@c/ajbz/rgcb_wdxl/ptCxForm_components.vue";
import { insertCbzxx } from "@/api/cbyp.js";
import {
EsAsjQuery,
......@@ -99,17 +99,17 @@ export default {
{
name: "受理单位",
id: "sldwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
value: "",
col: "3",
},
{
name: "案发地行政区划",
id: "asjfsddXzqhdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_XZQH",
......@@ -119,7 +119,7 @@ export default {
{
name: "案(事)件类别",
id: "ajlbdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_AJLB",
......@@ -333,7 +333,7 @@ export default {
name: "抓获单位",
id: "zhdwGajgjgdm",
type: "codeTreeDialog", //字典弹框
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
props: [], //字典弹框需要的字段
codeOptions: [],
placeholder: "请选择",
......@@ -465,7 +465,7 @@ export default {
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
value: "",
col: "3",
},
......@@ -696,7 +696,7 @@ export default {
name: "抓获单位",
id: "zhdwGajgjgdm",
type: "codeTreeDialog", //字典弹框
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
props: [], //字典弹框需要的字段
codeOptions: [],
placeholder: "请选择",
......
......@@ -384,7 +384,7 @@ export default {
var params = {
xlajbh: this.xlajbh,
page: this.page01,
rows: this.rows,
limit: this.rows,
};
queryCbzAsjGlxx(params).then((res) => {
this.messageTableData = res.data.result;
......@@ -405,7 +405,7 @@ export default {
var params = {
xlajbh: this.xlajbh,
page: this.page01,
rows: this.rows,
limit: this.rows,
};
getCbzXyry(params).then((res) => {
this.criminalTableData = res.data.result;
......@@ -416,7 +416,7 @@ export default {
var params = {
xlajbh: this.xlajbh,
page: this.page01,
rows: this.rows,
limit: this.rows,
};
getCbzBhry(params).then((res) => {
this.victimTableData = res.data.result;
......@@ -427,7 +427,7 @@ export default {
var params = {
xlajbh: this.xlajbh,
page: this.page01,
rows: this.rows,
limit: this.rows,
};
toBjcba(params).then((res) => {
this.messageForm = res.data.rows;
......
......@@ -43,7 +43,7 @@ export default {
typeFlag: "all",
unitcode: sessionStorage.getItem("unitcode"),
grade: sessionStorage.getItem("grade"),
rows: 10,
limit: 10,
page: 1,
type: "mycbz",
},
......@@ -78,12 +78,12 @@ export default {
{
name: "串并单位",
id: "xxdjdwGajgjgdm",
type: "lazyCodeTreeDialog",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
},
{
name: "串并登记人",
......@@ -156,8 +156,21 @@ export default {
},
],
cxUrl: `${base.alyIP}/xlaj/getCbzxx`,
Menu: [
{
id: "wdxlaj",
label: "我的系列案件",
index: "wdxlaj",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
};
},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
},
};
</script>
<style>
......
<!--
* @Author: your name
* @Date: 2021-09-11 10:30:21
* @LastEditTime: 2021-10-19 14:29:54
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\views\xsjsdb\queryrwbd.vue
-->
<template>
<div class="Content">
<right-content
:pageBs="pageBs"
:header="header"
:cxFormData="cxFormData"
:cxQueryField="cxQueryField"
:cxDefaultFormThead="cxDefaultFormThead"
:cxUrl="cxUrl"
@dele="dele"
@ajsx="ajsx"
ref="rightContent"
></right-content>
<!-- 反馈信息 -->
</div>
</template>
<script>
import rightContent from "@c/ptCxForm_components.vue";
import { deleteWscdaj } from "@/api/cbyp.js";
export default {
name: "queryRwbd",
components: {
rightContent,
},
data() {
return {
header: "我收藏的案件",
pageBs: "wscdaj",
cxFormData: {
limit: 10,
page: 1,
asjbh: "",
djsjStart: "",
djsjEnd: "",
sfcb: "",
},
cxQueryField: [
{
name: "案件编号",
id: "asjbh",
type: "text",
value: "",
placeholder: "",
col: "3",
},
{
name: "收藏时间",
id: "djsjStart",
id2: "djsjEnd",
type: "zdyDate",
value: "",
col: "3",
},
{
name: "是否串并",
id: "sfcb",
type: "codeTreeDialog",
codeTree: "CODE_IF",
props: [],
codeOptions: [],
value: "",
placeholder: "",
col: "3",
},
],
cxDefaultFormThead: [
{
label: "案件编号",
prop: "asjbh",
},
{
label: "案件名称",
prop: "ajmc",
},
{
label: "案件类别",
prop: "ajlb",
},
{
label: "收藏时间",
prop: "djsj",
},
{
label: "是否串并",
prop: "sfcb",
},
{
label: "收藏描述",
prop: "scms",
},
],
cxUrl: "/wscdaj/wscdajQry",
xxzjbh: "",
feedbackInfo: {
bdrwbh: "",
fkjgJyqk: "",
files: [],
},
file: "",
Menu: [
{
id: "wscdaj",
label: "我收藏的案件",
index: "wscdaj",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
};
},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
},
methods: {
dele(obj) {
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
deleteWscdaj({
xxzjbh: obj.row.xxzjbh,
}).then((res) => {
if (res.success && res.code == 200) {
this.$message({
type: "success",
message: "删除成功",
});
this.$refs.rightContent.doQuery("yes");
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
ajsx() {
this.$router.push("ajsx");
},
},
};
</script>
<style>
.el-dialog__body {
padding: 10px 15px !important;
}
.rightContent .el-input__inner,
#formCommonPage .el-input__inner {
height: 32px;
line-height: 32px;
font-family: inherit;
}
.el-table__header-wrapper th,
.el-table__header-wrapper tr {
background: #f4f6f7;
}
.rightContent .el-input__icon,
#formCommonPage .el-input__icon,
.el-input__suffix-inner {
line-height: 36px;
}
.rightContent .el-range-separator {
position: relative;
top: -4px;
}
.rightContent .el-textarea__inner,
#formCommonPage .el-textarea__inner {
width: 100%;
font-family: inherit;
}
.rightContent .el-range-input,
#formCommonPage .el-range-input {
vertical-align: top;
}
.rightContent .el-date-editor .el-range__close-icon {
margin-top: -4px;
}
.rightContent .el-form-item__error {
left: calc(66% - 27px);
top: 12px;
}
.success-row {
background-color: #fbf9f4 !important;
}
.Content .el-input,
.Content .el-date-editor--daterange.el-input__inner {
width: 100% !important;
}
</style>
<style scoped lang="scss">
@import "@/assets/styles/rightContent.scss";
</style>
<template>
<div class="Content">
<right-content
:pageBs="pageBs"
:header="header"
:cxFormData="cxFormData"
:cxQueryField="cxQueryField"
:cxDefaultFormThead="cxDefaultFormThead"
:cxDefaultFormTheads="cxDefaultFormTheads"
:childrenUrl="childrenUrl"
:cxUrl="cxUrl"
></right-content>
</div>
</template>
<script>
import rightContent from "@c/ajbz/bshChildrenQuery.vue";
import base from "@/api/base";
export default {
name: "bshcb",
components: {
rightContent,
},
data() {
return {
header: "立案信息管理",
pageBs: "bshcb",
cxFormData: {
asjbh: "",
zatzJyqk: "",
ladw: "",
sldw: "",
xszajbh: "",
cbajAjmc: "",
ajsfcb: "",
pazt: "",
djsjStart: "",
djsjEnd: "",
jyaq: "",
fasjEnd: "",
fasjStart: "",
bshlx: "",
sfwqgxs: "",
cbxgfwbzh: "",
cbxsly: "qs",
cblx: "",
limit: 10,
page: 1,
typeFlag: "xkcb",
sEcho: 1,
draw: 1,
start: 1,
length: 10,
// larqQssj: util.timeStampTurnTime(
// new Date(new Date().getFullYear() + "-01-01 00:00:00")
// ),
// larqJssj: util.timeStampTurnTime(new Date()),
},
cxQueryField: [
/*立案信息 侦查终结信息 立案信息审批 侦查终结审批通用开始*/
{
name: "案件编号",
id: "asjbh",
type: "text",
value: "",
placeholder: "请输入",
col: "3",
},
{
name: "立案单位",
id: "ladw",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_UNIT",
},
{
name: "受理单位",
id: "sldw",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_UNIT",
},
{
name: "串并线索编号",
id: "xszajbh",
type: "text",
value: "",
placeholder: "请输入串并线索编号",
col: "3",
},
{
name: "串并线索组名称",
id: "cbajAjmc",
type: "text",
value: "",
placeholder: "请输入串并线索组名称",
col: "3",
},
{
name: "是否认定为串并案",
id: "cbypSfycb",
type: "radio",
value: "0",
placeholder: "",
col: "3",
radioData: [
{ label: "未认定", val: "0" },
{ label: "已认定", val: "1" },
],
},
// {
// name: "线索来源",
// id: "ajxsly",
// type: "radio",
// value: "0",
// placeholder: "",
// col: "3",
// radioData: [
// { label: "本辖区", val: "bxq" },
// { label: "全省", val: "qs" },
// ],
// },
{
name: "案件线索来源",
id: "cbxsly",
type: "select",
value: "",
placeholder: "",
col: "3",
selectData: [
{ name: "本辖区", value: "bxq" },
{ name: "全省", value: "qs" },
],
},
{
name: "串并时间",
id: "djsjStart",
id2: "djsjEnd",
type: "zdyDate",
value: "",
col: "3",
},
{
name: "发案时间",
id: "fasjStart",
id2: "fasjEnd",
type: "zdyDate",
value: "",
col: "3",
},
{
name: "案件类别",
id: "ajlbdm",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_AJLB",
},
{
name: "简要案情",
id: "jyaq",
type: "text",
value: "",
placeholder: "简要案情,多个案情之间用逗号分隔",
col: "3",
},
{
name: "破案状态",
id: "pazt",
type: "radio",
value: "",
placeholder: "",
col: "3",
radioData: [
{ label: "所有", val: "" },
{ label: "已破", val: "0" },
{ label: "未破", val: "1" },
],
},
{
name: "串并类型",
id: "cblx",
type: "radio",
value: "",
placeholder: "",
col: "6",
radioData: [
{ label: "指纹串并", val: "0301" },
{ label: "DNA串并", val: "0302" },
{ label: "足迹串并", val: "0303" },
{ label: "声纹串并", val: "0304" },
{ label: "虹膜串并", val: "0305" },
// { label: "分析串并", val: "0304" },
// { label: "综合串并", val: "0305" },
],
},
],
cxDefaultFormThead: [
{
label: "串并案件线索组名称",
prop: "xszmc",
},
{
label: "信息描述",
prop: "cbxsypCbaj1",
},
],
cxDefaultFormTheads: [
{
label: "案件编号",
prop: "asjbh",
width: "250",
},
{
label: "案件名称",
prop: "ajmc",
},
{
label: "案件类别",
prop: "ajlbdmStr",
},
{
label: "比中号码",
prop: "cbxgfwbzh",
},
{
label: "案件状态",
prop: "zcjddmStr",
},
{
label: "发案时间",
prop: "asjfssjKssj",
},
{
label: "案发地点",
prop: "asjfsddXzqhdm",
},
{
label: "受理单位",
prop: "sldw",
},
{
label: "立案单位",
prop: "ladwGajgjgdm",
},
{
label: "简要案情",
prop: "jyaq",
},
],
Menu: [
{
id: "xkcb",
label: "现勘串并",
index: "xkcb",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
cxUrl: `${base.alyIP}/cbxsz/toQueryXszxx`,
updateCbxszUrl: `${base.alyIP}/cbxsz/updateCbxsz`,
childrenUrl: `${base.alyIP}/cbxsz/listCbxszGlAsjxx`,
};
},
methods: {},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
},
};
</script>
<style>
@import "../../assets/styles/queryCommon.scss";
</style>
<style scoped lang="scss">
@import "../../assets/styles/rightContent.scss";
</style>
......@@ -12,103 +12,103 @@
</template>
<script>
import rightContent from '@c/ajbz/bshQuery.vue'
import rightContent from "@c/ajbz/bshQuery.vue";
import base from "@/api/base";
export default {
name: 'xqxlaj',
name: "xqxlaj",
components: {
rightContent
rightContent,
},
data () {
data() {
return {
header: '辖区系列案件',
pageBs: 'xqxlaj',
header: "辖区系列案件",
pageBs: "xqxlaj",
cxFormData: {
asjbh: '',
ajlbdm: '',
zatzJyqk: '',
ladwGajgjgdm: '',
asjbh: "",
ajlbdm: "",
zatzJyqk: "",
ladwGajgjgdm: "",
larqQssj: util.timeStampTurnTime(
new Date(new Date().getFullYear() + '-01-01 00:00:00')
new Date(new Date().getFullYear() + "-01-01 00:00:00")
),
larqJssj: util.timeStampTurnTime(new Date()),
xxdjdwGajgjgdm: '',
xxdjryXm: '',
djsjQssj: '',
djsjJssj: '',
ajywztdm: '',
spsjQssj: '',
spsjJssj: '',
sflsjaPdbz: '',
unitcode: sessionStorage.getItem('unitcode'),
grade: sessionStorage.getItem('grade'),
rows: 10,
xxdjdwGajgjgdm: "",
xxdjryXm: "",
djsjQssj: "",
djsjJssj: "",
ajywztdm: "",
spsjQssj: "",
spsjJssj: "",
sflsjaPdbz: "",
unitcode: sessionStorage.getItem("unitcode"),
grade: sessionStorage.getItem("grade"),
limit: 10,
page: 1,
type:"otherscbz"
type: "otherscbz",
},
cxQueryField: [
/*立案信息 侦查终结信息 立案信息审批 侦查终结审批通用开始*/
{
name: '系列案件编号',
id: 'xlajbh',
type: 'text',
value: '',
placeholder: '请输入',
col: '3'
name: "系列案件编号",
id: "xlajbh",
type: "text",
value: "",
placeholder: "请输入",
col: "3",
},
{
name: '系列案件名称',
id: 'cbmc',
type: 'text',
value: '',
placeholder: '请输入',
col: '3'
name: "系列案件名称",
id: "cbmc",
type: "text",
value: "",
placeholder: "请输入",
col: "3",
},
{
name: '串并依据',
id: 'cblx',
type: 'codeTreeDialog',
name: "串并依据",
id: "cblx",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: '',
col: '3',
value: "",
col: "3",
codeOptions: [],
codeTree: 'CODE_CBYP_CBLX'
codeTree: "CODE_CBYP_CBLX",
},
{
name: '串并单位',
id: 'xxdjdwGajgjgdm',
type: 'lazyCodeTreeDialog',
name: "串并单位",
id: "xxdjdwGajgjgdm",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: '',
col: '3',
value: "",
col: "3",
codeOptions: [],
codeTree: 'CODE_QGUNIT'
codeTree: "CODE_UNIT",
},
{
name: '串并登记人',
id: 'xxdjryXm',
type: 'text',
value: '',
placeholder: '请输入',
col: '3'
name: "串并登记人",
id: "xxdjryXm",
type: "text",
value: "",
placeholder: "请输入",
col: "3",
},
{
name: '跨度',
id: 'cbajKd',
type: 'codeTreeDialog',
name: "跨度",
id: "cbajKd",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: '',
col: '3',
value: "",
col: "3",
codeOptions: [],
codeTree: 'CODE_CBYP_KD'
codeTree: "CODE_CBYP_KD",
},
{
name: '串并时间',
id: 'djsjStart',
id2: 'djsjEnd',
type: 'zdyDate',
value: '',
col: '3'
name: "串并时间",
id: "djsjStart",
id2: "djsjEnd",
type: "zdyDate",
value: "",
col: "3",
},
],
cxDefaultFormThead: [
......@@ -119,46 +119,59 @@ export default {
// },
{
/*table默认得表头*/
label: '系列案件编号',
prop: 'xlajbh',
label: "系列案件编号",
prop: "xlajbh",
},
{
label: '系列案件名称',
prop:'cbmc',
label: "系列案件名称",
prop: "cbmc",
},
{
label: '涉案/已破',
prop: 'cbzGlajCount/rn',
label: "涉案/已破",
prop: "cbzGlajCount/rn",
},
{
label: '串并依据',
prop: 'cblx',
label: "串并依据",
prop: "cblx",
},
{
label: '串并案件跨度',
prop: 'cbajKd',
label: "串并案件跨度",
prop: "cbajKd",
},
{
label: '串并人',
prop: 'xxdjryXm',
label: "串并人",
prop: "xxdjryXm",
},
{
label: '串并时间',
prop: 'djsj',
label: "串并时间",
prop: "djsj",
},
{
label: '串并单位',
prop: 'xxdjdwGajgmc',
}
label: "串并单位",
prop: "xxdjdwGajgmc",
},
],
Menu: [
{
id: "xqxlaj",
label: "辖区系列案件",
index: "xqxlaj",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
cxUrl: `${base.alyIP}/xlaj/getCbzxx`
}
}
}
cxUrl: `${base.alyIP}/xlaj/getCbzxx`,
};
},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
},
};
</script>
<style>
@import '../../assets/styles/queryCommon.scss';
@import "../../assets/styles/queryCommon.scss";
</style>
<style scoped lang="scss">
@import '../../assets/styles/rightContent.scss';
@import "../../assets/styles/rightContent.scss";
</style>
......@@ -28,7 +28,7 @@
</template>
<script>
import rightContent from "@c/rgcb_wdxl/ptCxForm_components.vue";
import rightContent from "@c/ajbz/rgcb_wdxl/ptCxForm_components.vue";
import {
EsAsjQuery,
getTableTitleRedis,
......@@ -89,10 +89,10 @@ export default {
{
name: "受理单位",
id: "sldwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
value: "",
col: "3",
},
......@@ -179,10 +179,10 @@ export default {
{
name: "立案单位",
id: "ladwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
value: "",
col: "3",
},
......@@ -346,7 +346,7 @@ export default {
if (res.code == 200) {
this.$message.success("生成线索组成功");
this.tableInfor = [];
} else if (res.data.result == "0") {
} else {
this.$message.error("生成线索组失败");
}
});
......@@ -378,10 +378,10 @@ export default {
{
name: "受理单位",
id: "sldwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
value: "",
col: "3",
},
......@@ -459,10 +459,10 @@ export default {
{
name: "立案单位",
id: "ladwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
value: "",
col: "3",
},
......
<template>
<div id="ajTable">
<el-dialog
title="案件信息"
:visible.sync="dialogFyxxVisible"
width="1050px"
class="jyDialog"
center
@close="closeDialog"
>
<el-table :data="fyxxTable" style="width: 100%" highlight-current-row>
<el-table-column
align="center"
:min-width="
columnTitle.width
? columnTitle.width
: columnTitle.prop == 'jyaq' || columnTitle.prop == 'asjbh'
? '360'
: '160'
"
v-for="columnTitle in ajThead"
:prop="columnTitle.prop"
:key="columnTitle.label"
:label="columnTitle.label"
>
<template slot-scope="scope">
<div class="ajxq_s" v-if="columnTitle.prop == 'jyaq'">
<span class="none" v-html="scope.row[columnTitle.prop]"></span
><a
href="javascript:void(0);"
onclick='javascript:this.parentNode.style.display="none";this.parentNode.nextSibling.style.display="block"'
style="
display: inline-block;
width: 100%;
text-align: right;
color: #3692c6;
font-weight: 600;
"
id="open"
>展开</a
>
</div>
<div class="ajxq_n" style="display: none">
<span
style="display: block"
v-html="scope.row[columnTitle.prop]"
></span
><a
href="javascript:void(0);"
onclick='javascript:this.parentNode.style.display="none";this.parentNode.previousSibling.style.display="block"'
style="float: right; color: #3692c6; font-weight: 600"
id="stop"
>收起</a
>
</div>
<div
v-if="columnTitle.prop != 'jyaq'"
v-html="scope.row[columnTitle.prop]"
></div>
</template>
</el-table-column>
</el-table>
<!--分页-->
<el-pagination
background
@current-change="handleCurrentChange"
:current-page.sync="currentPage1"
:page-size="page_size"
layout="prev, pager, next"
:small="true"
:total="fyTableLength"
>
</el-pagination>
</el-dialog>
</div>
</template>
<script>
export default {
name: "ajTable",
props: {
DefaultAjFormThead: {
type: Array,
default: () => [],
},
ajTableVisi: Boolean,
cxcsAjList: {
type: Array,
default: () => [],
},
},
data() {
return {
currentPage1: 1,
page_size: 10,
fyTableLength: 0,
dialogFyxxVisible: this.ajTableVisi,
fyxxTable: this.cxcsAjList,
ajThead: this.DefaultAjFormThead,
};
},
methods: {
closeDialog() {
let self = this;
//self.dialogFyxxVisible=false;
self.currentPage1 = 1;
self.$emit("close", false);
},
handleCurrentChange(val) {
let self = this;
self.currentPage1 = val;
self.$emit("aginQuery", self.currentPage1);
},
},
watch: {
ajTableVisi(val) {
debugger;
let self = this;
self.dialogFyxxVisible = val;
},
cxcsAjList(val) {
this.fyxxTable = val;
},
},
mounted() {},
};
</script>
<style scoped>
</style>
<template>
<div class="settingDialog">
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
<el-tab-pane label="案件信息" name="ajxx">
<div class="dragwrap">
<div class="selected">
<p class="select-header">已选表头</p>
<div class="contentH">
<draggable
class="list-group"
:list="ajxxList.data"
group="ajxx"
@change="draggableList"
element="ul"
data-listidx="0"
ref="selected_ul"
filter=".undraggable"
v-if="ajxxList.data.length!=0"
>
<li
v-for="element in ajxxList.data"
:key="element.id"
:class="
element.id == 'ajzlb' ||
element.id == 'ajxzlb' ||
element.id == 'xalbdmbcms'
? 'list-group-item undraggable group-item'+element.col
: 'list-group-item draggable group-item'+element.col
"
@click="move(element, 'ajxx', true)"
>
<i class="iconfont iconyixuan"></i>
<div :rel="element.id" :name="element.name">
{{ element.name }}
</div>
</li>
</draggable>
<div v-else class="zwsjWrap">
<img src="../../assets/img/zwsj.png"/><p>暂无数据</p>
</div>
</div>
</div>
<div class="waiting">
<p class="select-header">待选表头</p>
<div class="contentH">
<draggable
class="list-group"
:list="waitAjxx"
group="ajxx"
@change="draggableList"
element="ul"
data-listidx="0"
ref="selected_ul"
v-if="waitAjxx.length!=0"
>
<li
class="list-group-item"
v-for="element in waitAjxx"
:key="element.id"
@click="move(element, 'ajxx', false)"
>
<i class="iconfont iconduoxuan"></i>
<div :rel="element.id" :name="element.name">
{{ element.name }}
</div>
</li>
</draggable>
<div v-else class="zwsjWrap">
<img src="../../assets/img/zwsj.png"/><p>暂无数据</p>
</div>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="嫌疑人信息" name="xyrxx">
<div class="dragwrap">
<div class="selected">
<p class="select-header">已选表头</p>
<div class="contentH">
<draggable
class="list-group"
:list="xyrList.data"
group="xyrxx"
@change="draggableList"
element="ul"
data-listidx="0"
ref="selected_ul"
v-if="xyrList.data.length!=0"
>
<li
:class="'list-group-item group-item'+element.col"
v-for="element in xyrList.data"
:key="element.id"
@click="move(element, 'xyrxx', true)"
>
<i class="iconfont iconyixuan"></i>
<div :rel="element.id" :name="element.name">
{{ element.name }}
</div>
</li>
</draggable>
<div v-else class="zwsjWrap">
<img src="../../assets/img/zwsj.png"/><p>暂无数据</p>
</div>
</div>
</div>
<div class="waiting">
<p class="select-header">待选表头</p>
<div class="contentH">
<draggable
class="list-group"
:list="waitXyrxx"
group="xyrxx"
@change="draggableList"
element="ul"
data-listidx="0"
ref="selected_ul"
v-if="waitXyrxx.length!=0"
>
<li
class="list-group-item"
v-for="element in waitXyrxx"
:key="element.id"
@click="move(element, 'xyrxx', false)"
>
<i class="iconfont iconduoxuan"></i>
<div :rel="element.id" :name="element.name">
{{ element.name }}
</div>
</li>
</draggable>
<div v-else class="zwsjWrap">
<img src="../../assets/img/zwsj.png"/><p>暂无数据</p>
</div>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="受害人信息" name="shrxx">
<div class="dragwrap">
<div class="selected">
<p class="select-header">已选表头</p>
<div class="contentH">
<draggable
class="list-group"
:list="shrList.data"
group="shrxx"
@change="draggableList"
element="ul"
data-listidx="0"
ref="selected_ul"
v-if="shrList.data.length!=0"
>
<li
:class="'list-group-item group-item'+element.col"
v-for="element in shrList.data"
:key="element.id"
@click="move(element, 'shrxx', true)"
>
<i class="iconfont iconyixuan"></i>
<div :rel="element.id" :name="element.name">
{{ element.name }}
</div>
</li>
</draggable>
<div v-else class="zwsjWrap">
<img src="../../assets/img/zwsj.png"/><p>暂无数据</p>
</div>
</div>
</div>
<div class="waiting">
<p class="select-header">待选表头</p>
<div class="contentH">
<draggable
class="list-group"
:list="waitShrxx"
group="shrxx"
@change="draggableList"
element="ul"
data-listidx="0"
ref="selected_ul"
v-if="waitShrxx.length!=0"
>
<li
class="list-group-item"
v-for="element in waitShrxx"
:key="element.id"
@click="move(element, 'shrxx', false)"
>
<i class="iconfont iconduoxuan"></i>
<div :rel="element.id" :name="element.name">
{{ element.name }}
</div>
</li>
</draggable>
<div v-else class="zwsjWrap">
<img src="../../assets/img/zwsj.png"/><p>暂无数据</p>
</div>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="分类信息" name="flxx">
<div class="dragwrap">
<div class="selected" style="width:200px;">
<p class="select-header">已选表头</p>
<div class="contentH">
<draggable
class="list-group"
:list="flxxList.data"
group="flxx"
@change="draggableList"
element="ul"
data-listidx="0"
ref="selected_ul"
v-if="flxxList.data.length!=0"
>
<li
class="list-group-item"
v-for="element in flxxList.data"
:key="element.id"
@click="move(element, 'flxx', true)"
>
<i class="iconfont iconyixuan"></i>
<div :rel="element.id" :name="element.name">
{{ element.name }}
</div>
</li>
</draggable>
<div v-else class="zwsjWrap">
<img src="../../assets/img/zwsj.png"/><p>暂无数据</p>
</div>
</div>
</div>
<div class="waiting">
<p class="select-header">待选表头</p>
<div class="contentH">
<draggable
class="list-group"
:list="waitFlxx"
group="flxx"
@change="draggableList"
element="ul"
data-listidx="0"
ref="selected_ul"
v-if="waitFlxx.length!=0"
>
<li
class="list-group-item"
v-for="element in waitFlxx"
:key="element.id"
@click="move(element, 'flxx', false)"
>
<i class="iconfont iconduoxuan"></i>
<div :rel="element.id" :name="element.name">
{{ element.name }}
</div>
</li>
</draggable>
<div v-else class="zwsjWrap">
<img src="../../assets/img/zwsj.png"/><p>暂无数据</p>
</div>
</div>
</div>
</div>
</el-tab-pane>
</el-tabs>
<div class="ar" style="margin-top:20px;">
<el-button plain size="small" class="zdybtn delete" @click="close"
>关闭</el-button
>
<el-button
type="primary"
size="small"
class="zdybtn search"
@click="enableconfig"
>启用配置</el-button
>
</div>
</div>
</template>
<script>
import draggable from "vuedraggable";
export default {
name: "settingDialog",
components: {
draggable
},
props: {
AjxxDefaultFormField: Object,
xyrxxDefaultField: Object,
shrxxDefaultField: Object,
flxxDefaultField: Object,
waitAjxxField: {
type: Array,
default: () => []
},
waitShrxxField: {
type: Array,
default: () => []
},
waitXyrxxField: {
type: Array,
default: () => []
},
waitFlxxField: {
type: Array,
default: () => []
}
},
data() {
return {
activeName: "ajxx",
ajxxList: JSON.parse(JSON.stringify(this.AjxxDefaultFormField)),
xyrList: JSON.parse(JSON.stringify(this.xyrxxDefaultField)),
shrList: JSON.parse(JSON.stringify(this.shrxxDefaultField)),
flxxList: JSON.parse(JSON.stringify(this.flxxDefaultField)),
waitAjxx: [...this.waitAjxxField],
waitXyrxx: [...this.waitXyrxxField],
waitShrxx: [...this.waitShrxxField],
waitFlxx: [...this.waitFlxxField]
};
},
watch: {
AjxxDefaultFormField(val) {
this.ajxxList = JSON.parse(JSON.stringify(val));
},
xyrxxDefaultField(val) {
this.xyrList = JSON.parse(JSON.stringify(val));
},
shrxxDefaultField(val) {
this.shrList = JSON.parse(JSON.stringify(val));
},
flxxDefaultField(val) {
this.flxxList = JSON.parse(JSON.stringify(val));
},
waitAjxxField(val) {
this.waitAjxx = [...val];
},
waitShrxxField(val) {
this.waitShrxx = [...val];
},
waitXyrxxField(val) {
this.waitXyrxx = [...val];
},
waitFlxxField(val) {
this.waitFlxx = [...val];
}
},
methods: {
move(obj, type, flag) {
if (obj.id != "ajzlb" && obj.id != "ajxzlb" && obj.id != "xalbdmbcms") {
let list = [],
waitList = [],
self = this;
if (type == "ajxx") {
list = self.ajxxList.data;
waitList = self.waitAjxx;
} else if (type == "xyrxx") {
list = self.xyrList.data;
waitList = self.waitXyrxx;
} else if (type == "shrxx") {
list = self.shrList.data;
waitList = self.waitShrxx;
} else if (type == "flxx") {
list = self.flxxList.data;
waitList = self.waitFlxx;
}
if (flag) {
list.splice(
list.findIndex(item => item.id === obj.id),
1
);
self.$set(waitList, waitList.length, obj);
} else {
waitList.splice(
waitList.findIndex(item => item.id === obj.id),
1
);
self.$set(list, list.length, obj);
}
}
},
draggableList() {
console.log("1111");
},
handleClick(tab, event) {
console.log(tab, event);
},
enableconfig() {
let self = this,
ajxxData = {},
xyrData = {},
shrData = {},
flxxData = {}; /*这四个是传给后台保存的数据*/
self.$emit("loading",true);/*显示loading*/
self.$loadingSta=true;
/*案件*/
ajxxData.title = self.ajxxList.title;
ajxxData.id = self.ajxxList.id;
ajxxData.data = [];
self.ajxxList.data.forEach(item => {
let obj = {};
obj.name = item.name;
obj.id = item.id;
self.$set(ajxxData.data, ajxxData.data.length, obj);
});
/*嫌疑人*/
xyrData.title = self.xyrList.title;
xyrData.id = self.xyrList.id;
xyrData.data = [];
self.xyrList.data.forEach(item => {
let obj = {};
obj.name = item.name;
obj.id = item.id;
self.$set(xyrData.data, xyrData.data.length, obj);
});
/*受害人*/
shrData.title = self.shrList.title;
shrData.id = self.shrList.id;
shrData.data = [];
self.shrList.data.forEach(item => {
let obj = {};
obj.name = item.name;
obj.id = item.id;
self.$set(shrData.data, shrData.data.length, obj);
});
/*分类*/
flxxData.title = self.flxxList.title;
flxxData.id = self.flxxList.id;
flxxData.data = [];
flxxData.data = self.flxxList.data;
self.$emit(
"emitDialog",
false,
JSON.stringify(ajxxData),
JSON.stringify(xyrData),
JSON.stringify(shrData),
JSON.stringify(flxxData),
JSON.stringify(self.ajxxList),
JSON.stringify(self.xyrList),
JSON.stringify(self.shrList),
JSON.stringify(self.flxxList)
);
},
close() {
this.ajxxList = JSON.parse(JSON.stringify(this.AjxxDefaultFormField));
this.xyrList = JSON.parse(JSON.stringify(this.xyrxxDefaultField));
this.shrList = JSON.parse(JSON.stringify(this.shrxxDefaultField));
this.flxxList = JSON.parse(JSON.stringify(this.flxxDefaultField));
this.waitAjxx = [...this.waitAjxxField];
this.waitXyrxx = [...this.waitXyrxxField];
this.waitShrxx = [...this.waitShrxxField];
this.waitFlxx = [...this.waitFlxxField];
this.$emit("close", false);
}
}
};
</script>
<style>
.settingDialog .el-tabs--card > .el-tabs__header .el-tabs__nav {
border: none;
}
.settingDialog .el-tabs--card > .el-tabs__header .el-tabs__item:first-child {
border-left: 1px solid #1a81e1 !important;
border-radius: 2px 0px 0px 2px;
}
.settingDialog .el-tabs--card > .el-tabs__header .el-tabs__item:last-child {
border-radius: 0px 2px 2px 0px;
}
.settingDialog .el-tabs--card > .el-tabs__header {
border: none;
}
.settingDialog .el-tabs__item {
height: 32px;
line-height: 32px;
background: #ffffff;
border: 1px solid #1a81e1;
border-bottom: 1px solid #1a81e1 !important;
color: #1a81e1;
padding: 0 27px;
}
.settingDialog .el-tabs--card > .el-tabs__header .el-tabs__item.is-active {
background: #1a81e1;
color: #fff;
border: 1px solid #1a81e1;
}
</style>
<style scoped lang="scss">
@import "../../assets/styles/form.scss";
.settingDialog {
.zdybtn {
height: 36px;
width: 128px;
}
}
</style>
<template>
<div id="jccx" v-loading="pageLoading">
<!--<div class="coverText"></div>-->
<list-select
:selectList="selectList"
@cValue="cValue"
@getHeight="getHeight"
@deleteAll="deleteAll"
v-show="selectList.length != 0"
ref="select"
></list-select>
<div class="wrap" :style="{ marginTop: marginTop + 'px' }">
<list-form
ref="form"
:formData="formData"
:AjxxFormField="AjxxFormField"
:XyrxxFormField="XyrxxFormField"
:ShrxxFormField="ShrxxFormField"
:FlxxFormField="FlxxFormField"
:AjxxDefaultFormField="AjxxDefaultFormField"
:XyrxxDefaultFormField="XyrxxDefaultFormField"
:ShrxxDefaultFormField="ShrxxDefaultFormField"
:FlxxDefaultFormField="FlxxDefaultFormField"
:fieldType="fieldType"
:deleteId="deleteId"
@doQueryList="doQueryList"
@getSeletedList="getSeletedList"
@emitLoading="emitLoading"
@closeLoading="closeLoading"
@closeInitLoading="closeInitLoading"
></list-form>
<list-table
ref="listTable"
:DefaultAjFormThead="DefaultFormThead"
:AllAjThead="AllThead"
:theadType="theadType"
:theadTitle="theadTitle"
:formData="formData"
:dataLength="dataLength"
:queryTableData="queryTableData"
:tableLoadingEmit="tableLoadingEmit"
:ychyDataList="ychyDataList"
:ychyZjhmDataList="ychyZjhmDataList"
:flxxGroup="flxxGroup"
:xzFlxxGroup="xzFlxxGroup"
:xzSFlxxGroup="xzSFlxxGroup"
:xzSSFlxxGroup="xzSSFlxxGroup"
:yjFlE="yjFlE"
:radioZt="radioZt"
:radioFZt="radioFZt"
:radioSZt="radioSZt"
@getLoading="getLoading"
@getPage="getPage"
@getSort="getSort"
@exportFile="exportFile"
@getFlValue="getFlValue"
@showAjTable="showAjTable"
@changeSize="changeSize"
:pageNum="pageNum"
:tableType="tableType"
v-show="isShowTable"
v-loading="resultLoading"
element-loading-text="拼命加载中"
style="min-height: 200px"
></list-table>
</div>
<!--加载-->
<Loading :loading="loading" :text="text"></Loading>
<!--案件弹框-->
<aj-table
v-show="ajTableVisi"
:ajTableVisi="ajTableVisi"
:cxcsAjList="cxcsAjList"
@close="close"
:DefaultAjFormThead="DefaultAjFormThead"
></aj-table>
</div>
</template>
<script>
import listForm from "@c/ajbz/form_components.vue";
import Loading from "@c/ajbz/Loading.vue";
import ajTable from "@/views/dwcx/ajTable.vue";
import listTable from "@c/ajbz/table_components.vue";
// import listHeader from "@c/ajbz/header_components.vue";
import listSelect from "@/views/dwcx/selectedConditions.vue";
import {
jccxFormData,
jccxHeaderTitle,
jccxHeaderIcon,
jccxAjxxFormField,
jccxXyrxxFormField,
jccxShrxxFormField,
jccxFlxxFormField,
cxAjDefaultFormThead,
AllAjformThead,
cxXyrDefaultFormThead,
AllXyrformThead,
jccxAjxxDefaultFormField,
jccxXyrxxDefaultFormField,
jccxShrxxDefaultFormField,
jccxFlxxDefaultFormField,
cxShrDefaultFormThead,
AllShrformThead,
cxYchyData,
cxYchyZjhmData,
} from "@/utils/ajbz/params";
import {
EsAsjQuery,
getTableTitleRedis,
EsShrQuery,
EsXyrQuery,
} from "@/api/dictionaryCode.js";
export default {
name: "index",
components: {
listForm,
listTable,
// listHeader,
listSelect,
Loading,
ajTable,
},
data() {
return {
header: "多维查询",
Menu: [
{
id: "dwcx",
label: "多维查询",
index: "dwcx",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
leftMenus: [
//左侧导航(模块第一个页面需要)
{
id: "dwcx",
label: "多维查询",
newAuth: "M01",
index: "dwcx",
className: "iconfont icongongnengfuwu",
hasChildren: false,
},
],
resultLoading: true,
deleteId: "",
pageLoading: true, //页面进来时候的加载
radioFZt: "", //一级状态
radioZt: "", //二级状态
radioSZt: "", //三级状态
yjFlE: {
ajlbdmMc: "" /*案件类别分类*/,
zcjddmMc: "" /*侦查阶段分类*/,
larqYear: "" /*侦查阶段分类*/,
ladwGajgjgdmMc: "" /*立案单位分类*/,
asjfssjAsjfskssjYear: "" /*案发日期分类*/,
asjfsddXzqhdmMc: "" /*案发地区划分类*/,
ajSsjzrmby: "" /*涉案金额分类*/,
xyrage: "" /*年龄段分类*/,
shrage: "" /*年龄段分类*/,
zhfzxyrXbdmMc: "" /*性别分类*/,
bhrXbdmMc: "" /*性别分类*/,
zhfzxyrGjdmMc: "" /*国籍分类*/,
bhrGjdmMc: "" /*国籍分类*/,
zhfzxyrHjdzXzqhdmMc: "" /*户籍地分类*/,
bhrHjdzXzqhdmMc: "" /*户籍地分类*/,
zhfzxyrMzdmMc: "" /*民族分类*/,
bhrMzdmMc: "" /*民族分类*/,
ladwGab: "" /*立案单位省级分类*/,
ladwSj: "" /*立案单位市局分类*/,
ladwFj: "" /*立案单位分局分类*/,
},
formData: jccxFormData, //form表单
headerTitle: jccxHeaderTitle, //页面标题
headerIcon: jccxHeaderIcon, //icon
AjxxFormField: jccxAjxxFormField, //案件信息查询所有字段
XyrxxFormField: jccxXyrxxFormField, //嫌疑人信息查询所有字段
ShrxxFormField: jccxShrxxFormField, //受害人信息查询所有字段
FlxxFormField: jccxFlxxFormField, //分类信息查询所有字段
AjxxDefaultFormField: jccxAjxxDefaultFormField, //案件信息默认查询字段
XyrxxDefaultFormField: jccxXyrxxDefaultFormField, //嫌疑人信息默认查询字段
ShrxxDefaultFormField: jccxShrxxDefaultFormField, //受害人信息默认查询字段
FlxxDefaultFormField: jccxFlxxDefaultFormField, //分类信息默认查询字段
DefaultAjFormThead: cxAjDefaultFormThead, //案件默认表头
AllAjThead: AllAjformThead, //案件所有表头
DefaultXyrFormThead: cxXyrDefaultFormThead, //嫌疑人默认表头
AllXyrThead: AllXyrformThead, //嫌疑人所有表头
DefaultShrFormThead: cxShrDefaultFormThead, //受害人默认表头
AllShrThead: AllShrformThead, //受害人所有的表头
fieldType: "jccxField", //保存查询字段的type
ajFieldType: "jccxAjThead", //用来判断是案件查询
xyrFieldType: "jccxXyrThead", //用来判断是嫌疑人查询
shrFieldType: "jccxShrThead", //用来判断是受害人查询
DefaultFormThead: [], //表格用的同一个,用来接收当前的默认表头
AllThead: [], //表格用的同一个,用来接收所有表头
isShowTable: false,
theadType: "",
theadTitle: "",
selectList: [],
marginTop: 76,
queryTableData: [],
dataLength: 0,
tableType: "",
pageNum: 1,
tableLoadingEmit: false,
ychyDataList: cxYchyData,
ychyZjhmDataList: cxYchyZjhmData,
flxxGroup: [] /*查询回来得分类信息*/,
xzFlxxGroup: [],
xzSFlxxGroup: [],
xzSSFlxxGroup: [],
excelHeader: "" /*下载文件的名字*/,
loading: false,
text: "正在保存...",
ajTableVisi: false,
cxcsAjQuery: {
/*查询作案次数后多个案件得form*/
zhfzxyrCyzjZjhm: "",
page: 1,
rows: 5,
index: "asjnm_xyr",
},
cxcsAjList: [],
};
},
methods: {
deleteAll() {
this.$refs.form.delete();
},
changeSize(size, type) {
this.formData["rows"] = size;
this.doQueryList(type, this.formData, false, "handleCurrentChange");
},
close(flag) {
let self = this;
self.ajTableVisi = flag;
},
zacsAjDoQuery() {
//作案多次,列表显示图标,点击弹框查询此人做过的多个案子
let self = this;
console.log(self.cxcsAjQuery);
debugger;
EsAsjQuery(JSON.stringify(self.cxcsAjQuery)).then((res) => {
if (res.success === true) {
self.cxcsAjList = [];
self.cxcsAjList = res.data.rows;
} else {
// self.$message({
// type: "error",
// message: "查询失败"
// });
}
});
},
aginQuery(page) {
//翻页 时候 的查询
this.cxcsAjQuery.page = page;
this.zacsAjDoQuery();
},
showAjTable(zjhm) {
//打开作案次数的弹框,默认是第一页
let self = this;
self.ajTableVisi = true;
self.cxcsAjQuery.page = 1;
self.cxcsAjQuery.zhfzxyrCyzjZjhm = zjhm;
self.zacsAjDoQuery();
},
closeLoading(data) {
this.loading = data;
},
emitLoading(data) {
this.loading = data;
},
getHeight(val) {
//头部和已选条件为fixed,内容区的margintop为动态获取
/*已选条件高度变化的回调*/
let padding = 16;
this.marginTop = this.$refs.header.$el.offsetHeight + val + padding;
},
getFlValue(val, type, tableType, whichOne, radio) {
//分类查询结果有一级和二级的情况,点击一级和二级的单选按钮回调whichOne(yjRadio,ejRadio)(larqYear asjfssjAsjfskssjYear )特殊处理
let self = this;
self.openLoading(); //table加载loading
debugger;
if (whichOne && whichOne == "yjRadio") {
self.yjFlE[type] = radio;
self.formData["page"] = "1";
self.pageNum = 1;
} else if (whichOne && whichOne == "ejRadio") {
self.radioZt = radio;
self.formData["page"] = "1";
self.pageNum = 1;
} else if (whichOne && whichOne == "sjRadio") {
self.radioSZt = radio;
self.formData["page"] = "1";
self.pageNum = 1;
for (let y = self.formData.flxx.length - 1; y >= 0; y--) {
if (self.formData.flxx[y] == "ladwflPcs") {
self.formData.flxx.splice(y, 1);
}
}
}
if (
type != "larqYear" &&
type != "asjfssjAsjfskssjYear" &&
type != "xyrage" &&
type != "shrage" &&
type != "ladwSj" &&
type != "ladwFj" &&
type != "ladwGab" &&
type != "ajSsjzrmby"
) {
//点击年份和年龄段时候传值需要单独处理,其他情况直接type:val,
self.formData[type] = val;
//self.formData["flxx"] = [];
} else if (type == "larqYear") {
for (let y = self.formData.flxx.length - 1; y >= 0; y--) {
if (self.formData.flxx[y] == "lasjflMonth") {
self.formData.flxx.splice(y, 1);
}
}
if (val != "all") {
self.$set(
self.formData["flxx"],
self.formData["flxx"].length,
"lasjflMonth"
);
} else {
var index = self.formData["flxx"].indexOf("lasjflMonth");
if (index > -1) {
//大于0 代表存在,
self.formData["flxx"].splice(index, 1); //存在就删除
}
}
self.formData[type] = val;
self.radioZt = "全部";
if (Object.prototype.hasOwnProperty.call(self.formData, "larqMonth")) {
self.formData["larqMonth"] = "";
}
} else if (type == "asjfssjAsjfskssjYear") {
for (let y = self.formData.flxx.length - 1; y >= 0; y--) {
if (self.formData.flxx[y] == "afrqflMonth") {
self.formData.flxx.splice(y, 1);
}
}
if (val != "all") {
self.$set(
self.formData["flxx"],
self.formData["flxx"].length,
"afrqflMonth"
);
} else {
var index2 = self.formData["flxx"].indexOf("afrqflMonth");
if (index > -1) {
//大于0 代表存在,
self.formData["flxx"].splice(index2, 1); //存在就删除
}
}
self.formData[type] = val;
self.radioZt = "全部";
if (
Object.prototype.hasOwnProperty.call(
self.formData,
"asjfssjAsjfskssjMonth"
)
) {
self.formData["asjfssjAsjfskssjMonth"] = "";
}
} else if (type == "xyrage" || type == "shrage" || type == "ajSsjzrmby") {
//年龄段 14以下和70以上传参type:val;年龄段的14-20,是加Min和Max
//self.formData["flxx"] = [];
if (val.indexOf("-") > -1) {
let arr = val.split("-");
self.formData[type + "Min"] = arr[0];
self.formData[type + "Max"] = arr[1];
if (Object.prototype.hasOwnProperty.call(self.formData, type)) {
//年龄段点击14 70 时判断min和max有没有值,有值则清空
self.formData[type] = "";
}
} else if (val == "空" || val == "all") {
self.formData[type] = val;
if (
Object.prototype.hasOwnProperty.call(self.formData, type + "Min")
) {
//年龄段点击14 70 时判断min和max有没有值,有值则清空
self.formData[type + "Min"] = "";
}
if (
Object.prototype.hasOwnProperty.call(self.formData, type + "Max")
) {
//年龄段点击14 70 时判断min和max有没有值,有值则清空
self.formData[type + "Max"] = "";
}
} else {
let reg = /[\u4e00-\u9fa5]/g; //去掉中文
self.formData[type] = val.replace(reg, "");
if (
Object.prototype.hasOwnProperty.call(self.formData, type + "Min")
) {
//年龄段点击14 70 时判断min和max有没有值,有值则清空
self.formData[type + "Min"] = "";
}
if (
Object.prototype.hasOwnProperty.call(self.formData, type + "Max")
) {
//年龄段点击14 70 时判断min和max有没有值,有值则清空
self.formData[type + "Max"] = "";
}
}
} else if (type == "ladwSj" || type == "ladwFj" || type == "ladwGab") {
self.radioSZt = "全部";
for (let y = self.formData.flxx.length - 1; y >= 0; y--) {
if (
self.formData.flxx[y] == "ladwflFj" ||
self.formData.flxx[y] == "ladwflPcs" ||
self.formData.flxx[y] == "ladwflSj"
) {
self.formData.flxx.splice(y, 1);
}
}
if (type == "ladwGab") {
//ladwPcs,ladwFj
if (val != "all") {
self.$set(
self.formData["flxx"],
self.formData["flxx"].length,
"ladwflSj"
);
} else {
var index3 = self.formData["flxx"].indexOf("ladwflSj");
if (index > -1) {
//大于0 代表存在,
self.formData["flxx"].splice(index3, 1); //存在就删除
}
}
for (let i in self.formData) {
if (i == "ladwPcs" || i == "ladwFj" || i == "ladwSj") {
self.formData[i] = "";
}
}
} else if (type == "ladwSj") {
if (val != "all") {
self.$set(
self.formData["flxx"],
self.formData["flxx"].length,
"ladwflFj"
);
} else {
var index5 = self.formData["flxx"].indexOf("ladwflFj");
if (index > -1) {
//大于0 代表存在,
self.formData["flxx"].splice(index5, 1); //存在就删除
}
}
for (let i in self.formData) {
if (i == "ladwPcs" || i == "ladwFj") {
self.formData[i] = "";
}
}
} else if (type == "ladwFj") {
if (val != "all") {
self.$set(
self.formData["flxx"],
self.formData["flxx"].length,
"ladwflPcs"
);
} else {
var index4 = self.formData["flxx"].indexOf("ladwflPcs");
if (index > -1) {
//大于0 代表存在,
self.formData["flxx"].splice(index4, 1); //存在就删除
}
}
for (let i in self.formData) {
if (i == "ladwPcs") {
self.formData[i] = "";
}
}
}
self.formData[type] = val;
self.radioZt = "全部";
}
self.excelHeader = self.excelHeader + "(" + val + ")";
self.creatForm(tableType, "flxx");
},
exportFile(type) {
//导出
let self = this;
self.formData.rows = 10000;
self.creatForm(type, "export");
},
getLoading(bool) {
this.tableLoadingEmit = bool;
},
openLoading() {
this.tableLoadingEmit = true;
},
closeTableLoading() {
this.tableLoadingEmit = false;
},
getSort(key, value, type) {
let self = this;
if (key == "asc") {
self.formData[key] = value;
self.formData["desc"] = "";
} else {
self.formData[key] = value;
self.formData["asc"] = "";
}
this.doQueryList(type, self.formData);
},
cValue(id, id2, type) {
if (id == this.deleteId) {
this.$refs.form.childMethods(id);
}
if (id2) {
this.formData[id2] = "";
}
if (id == "flxx") {
this.formData[id] = [];
} else if (id == "zcjddm") {
this.formData[id] = [];
this.deleteId = id;
} else {
this.formData[id] = "";
if (type == "code") {
//this.$refs.form.clearSearchValue();
}
this.deleteId = id;
}
},
getSeletedList(data, obj) {
let self = this;
if (obj) {
//删除值
self.selectList.forEach((val, key) => {
if (val.id == obj.id) {
self.selectList.splice(key, 1);
}
});
} else {
//添加值
data.forEach((val) => {
self.selectList.forEach((val2, key) => {
if (val.id == val2.id) {
self.$set(val2, "value", val.value);
if (val2.id2) {
self.$set(val2, "value2", val.value2);
}
self.$set(self.selectList, key, val2);
}
});
});
let arr = data.filter(
(item) => !self.selectList.some((ele) => ele.id === item.id)
);
if (arr.length != 0) {
arr.forEach((val) => {
self.$set(self.selectList, self.selectList.length, val);
});
}
}
},
getPage(val, type) {
this.formData.page = val;
this.doQueryList(type, this.formData, false, "handleCurrentChange");
},
creatForm(data, flag) {
//form表单进行时间处理
let self = this;
/*处理时间*/
if (flag == "isbtn") {
/*清空*/
//shrageMax年龄段点击14 70 时判断min和max有没有值,有值则清空
//shrageMin年龄段点击14 70 时判断min和max有没有值,有值则清空
//shrage年龄段点击14 70 时判断min和max有没有值,有值则清空
//xyrageMax年龄段点击14 70 时判断min和max有没有值,有值则清空
//xyrageMin年龄段点击14 70 时判断min和max有没有值,有值则清空
//xyrage年龄段点击14 70 时判断min和max有没有值,有值则清空
for (let i in self.formData) {
if (
i == "ajlbdmMc" ||
i == "zcjddmMc" ||
i == "larqYear" ||
i == "asjfssjAsjfskssjYear" ||
i == "larqMonth" ||
i == "asjfssjAsjfskssjMonth" ||
i == "shrageMax" ||
i == "xyrage" ||
i == "xyrageMin" ||
i == "shrage" ||
i == "xyrageMax" ||
i == "shrageMin" ||
i == "bhrGjdmMc" ||
i == "zhfzxyrHjdzXzqhdmMc" ||
i == "bhrHjdzXzqhdmMc" ||
i == "zhfzxyrMzdmMc" ||
i == "bhrMzdmMc" ||
i == "larqYear" ||
i == "ladwGajgjgdmMc" ||
i == "asjfssjAsjfskssjYear" ||
i == "asjfsddXzqhdmMc" ||
i == "ajSsjzrmby" ||
i == "ajSsjzrmbyMax" ||
i == "ajSsjzrmbyMin" ||
i == "xyrage" ||
i == "shrage" ||
i == "zhfzxyrXbdmMc" ||
i == "bhrXbdmMc" ||
i == "zhfzxyrGjdmMc" ||
i == "ladwGab" ||
i == "ladwSj" ||
i == "ladwFj" ||
i == "ladwPcs"
) {
self.formData[i] = "";
}
}
self.flxxGroup = [];
self.xzFlxxGroup = [];
self.xzSFlxxGroup = [];
self.xzSSFlxxGroup = [];
for (let i in self.yjFlE) {
self.yjFlE[i] = "全部";
}
for (let y = self.formData.flxx.length - 1; y >= 0; y--) {
if (
self.formData.flxx[y] == "lasjflMonth" ||
self.formData.flxx[y] == "afrqflMonth" ||
self.formData.flxx[y] == "ladwflFj" ||
self.formData.flxx[y] == "ladwflSj" ||
self.formData.flxx[y] == "ladwSj" ||
self.formData.flxx[y] == "ladwflPcs"
) {
self.formData["flxx"].splice(y, 1);
}
}
}
/*点击查询按钮时更新排序等字段的值*/
if (data == "ajxx" && flag == "isbtn") {
self.DefaultFormThead = self.DefaultAjFormThead;
self.AllThead = self.AllAjThead;
self.theadType = self.ajFieldType;
self.theadTitle = "案件信息表头";
self.excelHeader = "案件信息";
self.formData["desc"] = "larq";
self.formData["asc"] = "";
} else if (data == "xyrxx" && flag == "isbtn") {
self.DefaultFormThead = self.DefaultXyrFormThead;
self.AllThead = self.AllXyrThead;
self.theadType = self.xyrFieldType;
self.theadTitle = "嫌疑人信息表头";
self.excelHeader = "嫌疑人信息";
self.formData["desc"] = "zhrq";
self.formData["asc"] = "";
} else if (data == "shrxx" && flag == "isbtn") {
self.DefaultFormThead = self.DefaultShrFormThead;
self.AllThead = self.AllShrThead;
self.theadType = self.shrFieldType;
self.theadTitle = "被害人信息表头";
self.excelHeader = "被害人信息";
self.formData["desc"] = "bhsjKssj";
self.formData["asc"] = "";
}
/*处理时间的字段名*/
let handleForm = JSON.parse(JSON.stringify(self.formData));
for (let z in handleForm) {
if (z == "ajlbdm") {
if (self.formData[z].length > 0) {
var str = "";
self.formData[z].forEach((item) => {
str = str ? `${str},${item.val}` : `${item.val}`;
});
}
handleForm[z] = str;
} else if (
z == "asjfssjAsjfskssj" ||
z == "slsj" ||
z == "larq" ||
z == "zczjZxsj01" ||
z == "cxajrq" ||
z == "djsj" ||
z == "zhrq" ||
z == "zhfzxyrCsrqRqgzxx" ||
z == "bhsjKssj" ||
z == "bhrCsrqRqgzxx"
) {
handleForm[z + "Start"] =
handleForm[z] == "" || handleForm[z] == null
? ""
: handleForm[z][0];
handleForm[z + "End"] =
handleForm[z] == "" || handleForm[z] == null
? ""
: handleForm[z][1];
self.$delete(handleForm, z);
}
}
if (!flag || flag == "isbtn") {
//点击查询按钮的时候
self.doQueryRequst(data, handleForm);
} else if (flag == "currentPage") {
self.doQueryRequst(data, handleForm, "currentPage");
} else if (flag == "flxx") {
debugger;
//点击分类查询结果的时候
let num = 0;
if (Object.prototype.hasOwnProperty.call(self.formData, "ladwGab")) {
//获取二级立案单位
if (self.formData["ladwGab"] != "") {
num++;
}
}
if (Object.prototype.hasOwnProperty.call(self.formData, "ladwSj")) {
//获取二级立案单位
if (self.formData["ladwSj"] != "") {
num++;
}
}
if (Object.prototype.hasOwnProperty.call(self.formData, "ladwFj")) {
//获取二级立案单位
if (self.formData["ladwFj"] != "") {
num++;
}
}
if (Object.prototype.hasOwnProperty.call(self.formData, "ladwPcs")) {
//获取二级立案单位
if (self.formData["ladwPcs"] != "") {
num++;
}
}
if (num == 1) {
self.doQueryRequst(data, handleForm, "noSetFlxx");
return;
} else if (num == 2) {
self.doQueryRequst(data, handleForm, "SetPcsFlxx");
return;
} else if (num == 3) {
self.doQueryRequst(data, handleForm, "SetFlxx");
return;
} else if (num == 4) {
self.doQueryRequst(data, handleForm, "SetFlxx4");
return;
}
if (Object.prototype.hasOwnProperty.call(self.formData, "larqMonth")) {
if (self.formData["larqMonth"] != "") {
self.doQueryRequst(data, handleForm, "SetFlxx");
return;
}
}
if (
Object.prototype.hasOwnProperty.call(
self.formData,
"asjfssjAsjfskssjMonth"
)
) {
if (self.formData["asjfssjAsjfskssjMonth"] != "") {
self.doQueryRequst(data, handleForm, "SetFlxx");
return;
}
}
self.doQueryRequst(data, handleForm, "noSetFlxx");
} else if (flag == "export") {
self.exportRequst(data, handleForm);
}
},
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;
},
exportRequst(data, handleForm) {
/*导出*/
let self = this,
tHeader = [],
filterVal = [];
const loading = this.$loading({
lock: true,
text: "正在导出...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
if (data == "ajxx") {
tHeader = [];
filterVal = [];
self.DefaultAjFormThead.forEach((val) => {
tHeader.push(val.label);
filterVal.push(val.prop);
});
console.log(handleForm);
debugger;
EsAsjQuery(JSON.stringify(handleForm)).then((res) => {
if (res.success === true) {
if (res.data.total > 10000) {
self.$message({
type: "error",
message: "最多只能导出10000条",
});
} else {
require.ensure([], () => {
const {
export_json_to_excel,
} = require("../../utils/Export2Excel");
const list = res.data.rows;
const data = self.formatJson(filterVal, list);
export_json_to_excel(tHeader, data, self.excelHeader);
});
}
loading.close();
} else {
loading.close();
// self.$message({
// type: "error",
// message: "查询失败"
// });
}
self.tableLoadingEmit = false;
});
} else if (data == "xyrxx") {
tHeader = [];
filterVal = [];
self.DefaultXyrFormThead.forEach((val) => {
tHeader.push(val.label);
filterVal.push(val.prop);
});
EsXyrQuery(JSON.stringify(handleForm)).then((res) => {
if (res.success === true) {
if (res.data.total > 10000) {
self.$message({
type: "error",
message: "最多只能导出10000条",
});
} else {
require.ensure([], () => {
const {
export_json_to_excel,
} = require("../../utils/Export2Excel");
const list = res.data.rows;
const data = self.formatJson(filterVal, list);
export_json_to_excel(tHeader, data, self.excelHeader);
});
}
loading.close();
} else {
loading.close();
// self.$message({
// type: "error",
// message: "查询失败"
// });
}
self.tableLoadingEmit = false;
});
} else if (data == "shrxx") {
tHeader = [];
filterVal = [];
self.DefaultShrFormThead.forEach((val) => {
tHeader.push(val.label);
filterVal.push(val.prop);
});
EsShrQuery(JSON.stringify(handleForm)).then((res) => {
if (res.success === true) {
if (res.data.total > 10000) {
self.$message({
type: "error",
message: "最多只能导出10000条",
});
} else {
require.ensure([], () => {
const {
export_json_to_excel,
} = require("../../utils/Export2Excel");
const list = res.data.rows;
const data = self.formatJson(filterVal, list);
export_json_to_excel(tHeader, data, self.excelHeader);
});
}
loading.close();
} else {
loading.close();
// self.$message({
// type: "error",
// message: "查询失败"
// });
}
self.tableLoadingEmit = false;
});
}
},
doQueryRequst(data, handleForm, noSet) {
//noSet没传的时候点击的是查询按钮或者翻页,noSet为noSetFlxx时点击的是一级查询分类结果,二级需要赋值
let self = this;
if (data == "ajxx") {
debugger;
EsAsjQuery(JSON.stringify(handleForm)).then((res) => {
if (res.success === true) {
self.queryTableData = res.data.rows;
self.dataLength = res.data.total;
if (!noSet) {
self.flxxGroup = res.data.flxx;
} else if (noSet == "noSetFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzFlxxGroup = arr;
} else if (noSet == "SetPcsFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzSFlxxGroup = arr;
} else if (noSet == "SetFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzSSFlxxGroup = arr;
}
self.closeTableLoading(); //table关闭loading
self.resultLoading = false;
} else {
// self.$message({
// type: "error",
// message: "查询失败"
// });
self.resultLoading = false;
}
self.tableLoadingEmit = false;
});
} else if (data == "xyrxx") {
EsXyrQuery(JSON.stringify(handleForm)).then((res) => {
if (res.success === true) {
self.queryTableData = res.data.rows;
self.dataLength = res.data.total;
if (!noSet) {
self.flxxGroup = res.data.flxx;
} else if (noSet == "noSetFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzFlxxGroup = arr;
} else if (noSet == "SetPcsFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzSFlxxGroup = arr;
} else if (noSet == "SetFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzSSFlxxGroup = arr;
}
self.closeTableLoading(); //table关闭loading
self.resultLoading = false;
} else {
// self.$message({
// type: "error",
// message: "查询失败"
// });
self.resultLoading = false;
}
self.tableLoadingEmit = false;
});
} else if (data == "shrxx") {
EsShrQuery(JSON.stringify(handleForm)).then((res) => {
if (res.success === true) {
self.queryTableData = res.data.rows;
self.dataLength = res.data.total;
if (!noSet) {
self.flxxGroup = res.data.flxx;
} else if (noSet == "noSetFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzFlxxGroup = arr;
} else if (noSet == "SetPcsFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzSFlxxGroup = arr;
} else if (noSet == "SetFlxx") {
let arr = res.data.flxx.filter(
(item) => !self.flxxGroup.some((ele) => ele.type === item.type)
);
self.xzSSFlxxGroup = arr;
}
self.closeTableLoading(); //table关闭loading
self.resultLoading = false;
} else {
// self.$message({
// type: "error",
// message: "查询失败"
// });
self.resultLoading = false;
}
self.tableLoadingEmit = false;
});
}
},
doQueryList(data, formList, isBtn, changePage) {
let self = this;
self.tableType = data;
self.isShowTable = true;
self.resultLoading = true;
//self.formData.rows = 10;
self.formData = formList;
self.pageNum = self.formData.page;
if (
self.formData["flxx"].includes("nldfl1") ||
self.formData["flxx"].includes("nldfl2")
) {
if (self.formData["flxx"].indexOf("nldfl") < 0) {
self.formData["flxx"].indexOf("nldfl1") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("nldfl1"),
1
)
: "";
self.formData["flxx"].indexOf("nldfl2") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("nldfl2"),
1
)
: "";
}
}
if (
self.formData["flxx"].includes("xbfl1") ||
self.formData["flxx"].includes("xbfl2")
) {
if (self.formData["flxx"].indexOf("xbfl") < 0) {
self.formData["flxx"].indexOf("xbfl1") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("xbfl1"),
1
)
: "";
self.formData["flxx"].indexOf("xbfl2") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("xbfl2"),
1
)
: "";
}
}
if (
self.formData["flxx"].includes("gjfl1") ||
self.formData["flxx"].includes("gjfl2")
) {
if (self.formData["flxx"].indexOf("gjfl") < 0) {
self.formData["flxx"].indexOf("gjfl1") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("gjfl1"),
1
)
: "";
self.formData["flxx"].indexOf("gjfl2") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("gjfl2"),
1
)
: "";
}
}
if (
self.formData["flxx"].includes("hjdfl1") ||
self.formData["flxx"].includes("hjdfl2")
) {
if (self.formData["flxx"].indexOf("hjdfl") < 0) {
self.formData["flxx"].indexOf("hjdfl1") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("hjdfl1"),
1
)
: "";
self.formData["flxx"].indexOf("hjdfl2") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("hjdfl2"),
1
)
: "";
}
}
if (
self.formData["flxx"].includes("mzfl1") ||
self.formData["flxx"].includes("mzfl2")
) {
if (self.formData["flxx"].indexOf("mzfl") < 0) {
self.formData["flxx"].indexOf("mzfl1") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("mzfl1"),
1
)
: "";
self.formData["flxx"].indexOf("mzfl2") >= 0
? self.formData["flxx"].splice(
self.formData["flxx"].indexOf("mzfl2"),
1
)
: "";
}
}
if (data != "xyrxx" && self.formData["flxx"].includes("zacsfl")) {
self
.$confirm("不能查询,是否取消作案次数查询?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
})
.then(() => {
self.formData["flxx"].splice(
self.formData["flxx"].findIndex((item) => item == "zacsfl"),
1
);
self.$message({
type: "success",
message: "已取消作案次数!",
});
if (isBtn) {
self.creatForm(data, "isbtn");
} else {
self.creatForm(data);
}
})
.catch(() => {});
} else {
if (isBtn) {
self.creatForm(data, "isbtn");
} else if (changePage) {
self.creatForm(data, "currentPage");
} else {
self.creatForm(data);
}
}
},
closeInitLoading() {
this.pageLoading = false;
},
},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
this.$store.commit("user/SET_LeftMenu", this.leftMenus);
this.$store.commit("user/SET_Header", this.header);
},
mounted() {
let self = this,
obj1 = {},
obj2 = {},
obj3 = {},
obj4 = {};
var paramsfield = {
type: self.fieldType,
};
getTableTitleRedis(paramsfield).then((res) => {
//查询是否保存过查询字段
if (res.code == 20000) {
console.log(res);
if (res.data.total > 0) {
self.AjxxDefaultFormField = [];
self.XyrxxDefaultFormField = [];
self.ShrxxDefaultFormField = [];
self.FlxxDefaultFormField = [];
/*查询出来的案件信息查询字段*/
obj1.title = res.data.defaultFormThead[0].title;
obj1.id = res.data.defaultFormThead[0].id;
obj1.data = [];
res.data.defaultFormThead[0].data.forEach((val) => {
let ret2 = self.AjxxFormField.data.find((v) => {
return v.id == val.id;
});
self.$set(obj1.data, obj1.data.length, ret2);
});
self.AjxxDefaultFormField = obj1;
/*嫌疑人数据*/
obj2.title = res.data.defaultFormThead[1].title;
obj2.id = res.data.defaultFormThead[1].id;
obj2.data = [];
res.data.defaultFormThead[1].data.forEach((val) => {
let ret2 = self.XyrxxFormField.data.find((v) => {
return v.id == val.id;
});
self.$set(obj2.data, obj2.data.length, ret2);
});
self.XyrxxDefaultFormField = obj2;
/*受害人数据*/
obj3.title = res.data.defaultFormThead[2].title;
obj3.id = res.data.defaultFormThead[2].id;
obj3.data = [];
res.data.defaultFormThead[2].data.forEach((val) => {
let ret2 = self.ShrxxFormField.data.find((v) => {
return v.id == val.id;
});
self.$set(obj3.data, obj3.data.length, ret2);
});
self.ShrxxDefaultFormField = obj3;
/*分类信息*/
obj4.title = res.data.defaultFormThead[3].title;
obj4.id = res.data.defaultFormThead[3].id;
obj4.data = [];
res.data.defaultFormThead[3].data.forEach((val) => {
let ret2 = self.FlxxFormField.data.find((v) => {
return v.id == val.id;
});
self.$set(obj4.data, obj4.data.length, ret2);
});
self.FlxxDefaultFormField = obj4;
}
} else {
// self.$message({
// type: "error",
// message: res.message
// });
self.pageLoading = false;
}
return res.data;
});
/*获取案件表头*/
var paramsajFiel = {
type: self.ajFieldType,
};
getTableTitleRedis(paramsajFiel).then((res) => {
if (res.success === true) {
if (res.data.total > 0) {
self.DefaultAjFormThead = [];
self.DefaultAjFormThead = res.data.defaultFormThead;
}
} else {
// self.$message({
// type: "error",
// message: "获取表头失败"
// });
}
});
var paramsaxyrField = {
type: self.xyrFieldType,
};
/*获取嫌疑人表头*/
getTableTitleRedis(paramsaxyrField).then((res) => {
if (res.code == 20000) {
if (res.data.total > 0) {
self.DefaultXyrFormThead = [];
self.DefaultXyrFormThead = res.data.defaultFormThead;
}
} else {
// self.$message({
// type: "error",
// message: "获取表头失败"
// });
}
});
var paramsashrField = {
type: self.shrFieldType,
};
/*获取受害人表头*/
getTableTitleRedis(paramsashrField).then((res) => {
if (res.code == 20000) {
if (res.data.total > 0) {
self.DefaultShrFormThead = [];
self.DefaultShrFormThead = res.data.defaultFormThead;
}
} else {
// self.$message({
// type: "error",
// message: "获取表头失败"
// });
}
});
},
};
</script>
<style scoped lang="scss">
@import "../../assets/styles/form.scss";
</style>
<!--
* @Author: your name
* @Date: 2021-10-18 10:18:25
* @LastEditTime: 2021-10-18 10:20:58
* @LastEditors: your name
* @Description: In User Settings Edit
* @FilePath: \founder_vue\src\views\dwcx\selectedConditions.vue
-->
<template>
<div
id="selectedConditions"
:class="isMinWith ? 'isMinWith formWrap' : 'formWrap'"
ref="select"
>
<div class="conditionTitle">已选条件:</div>
<div class="conditionWrap">
<el-tag
:key="tag.id"
v-for="tag in dynamicTags"
closable
:disable-transitions="false"
@close="handleClose(tag)"
>
<div v-if="tag.type == 'zdyText'" class="inline">
{{ tag.name }}{{ tag.value }}{{ tag.value2 }}
</div>
<div v-else-if="tag.type == 'daterange'" class="inline">
{{ tag.name }}{{ tag.value1 }}{{ tag.value2 }}
</div>
<div v-else class="inline">{{ tag.name }}{{ tag.value }}</div>
</el-tag>
</div>
<div class="delete_btn inline">
<a class="zdybtn delete2" @click="deleteField"
><i class="el-icon-delete" style="margin-right: 4px"></i>清空条件</a
>
</div>
</div>
</template>
<script>
export default {
name: "selectedConditions",
props: {
selectList: {
type: Array,
default: () => [],
},
},
data() {
return {
dynamicTags: this.selectList,
height: 0,
isMinWith: document.body.clientWidth > 1680 ? false : true,
};
},
watch: {
selectList(val) {
let self = this;
self.dynamicTags = val;
self.$nextTick(() => {
self.height = self.$refs.select.offsetHeight;
self.$emit("getHeight", self.height);
});
},
},
methods: {
deleteField() {
let self = this;
self.$emit("deleteAll");
for (let i = self.dynamicTags.length - 1; i >= 0; i--) {
self.handleClose(self.dynamicTags[i]);
}
},
handleClose(tag) {
let self = this;
if (tag.type == "zdyText") {
self.$emit("cValue", tag.id, tag.id2, tag.type);
} else {
self.$emit("cValue", tag.id, false, tag.type);
}
self.dynamicTags.splice(self.dynamicTags.indexOf(tag), 1);
self.$nextTick(() => {
self.height = self.$refs.select.offsetHeight;
self.$emit("getHeight", this.height);
});
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/form.scss";
</style>
<template>
<div id="ypbg">
<div class="content">
<div class="query">
<el-form
label-position="right"
label-width="110px"
:inline="true"
:model="formData"
>
<div class="zdyLine">
<el-form-item
:label="item.name + ':'"
v-for="item in propQueryField"
:key="item.id"
:prop="item.id"
>
<div v-if="item.type == 'zdyDate'">
<el-date-picker
v-model="formData[item.id]"
type="date"
align="right"
:picker-options="item.pickerOptions"
unlink-panels
value-format="yyyy-MM-dd"
>
</el-date-picker>
<el-date-picker
v-model="formData[item.id2]"
type="date"
align="right"
:picker-options="item.pickerOptions2"
unlink-panels
value-format="yyyy-MM-dd"
>
</el-date-picker>
</div>
<div v-else-if="item.type == 'codeTreeDialog'">
<select-tree-dialog
:placeholder="'请选择' + item.name"
:sendId="item.id"
:formData="formData"
:currentItem="item"
:multiple="item.multiple"
@getDialogSeleted="getCodeSeleted($event, item)"
/>
</div>
</el-form-item>
<el-form-item>
<div class="btn" @click="doQuery()">查询</div>
</el-form-item>
</div>
</el-form>
</div>
<div class="yp_body">
<div class="yp_title">
<img class="yp_img" src="../../assets/img/ypbg_title.png" />
<div class="yp_name">警情研判报告</div>
<img class="yp_dy" @click="print" src="../../assets/img/dy.png" />
</div>
<div class="yp_contnet">
<div class="jqzs" id="jqzs">
<span>警情综述</span>
<p v-html="jqzs"></p>
</div>
<div class="subtitle" id="xsajfaqk">一、刑事案件发案情况</div>
<div class="jqzs bj" id="gxqfaqk">
<span>1、各辖区发案情况</span>
<p v-html="faqk"></p>
</div>
<div
id="gxqfa"
ref="gxqfa"
style="height: 400px; width: 100%; padding-top: 6px"
></div>
<div class="table" style="margin-top: 20px">
<el-table
id="ajzbQuery"
ref="itsmDataTable"
:data="tableDataFa"
tooltip-effect="dark"
width="98%"
size="small"
>
<el-table-column
align="center"
v-for="columnTitle in propdefaultFormTheadFa"
:prop="columnTitle.prop"
:key="columnTitle.label"
:label="columnTitle.label"
:width="columnTitle.width"
>
<template slot-scope="scope">
<div
v-if="columnTitle.prop == 'asjbh'"
@click="goDetail(scope.row)"
style="
cursor: pointer;
color: #096cc9;
font-size: 13px !important;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
"
>
{{ scope.row[columnTitle.prop] }}
</div>
<div v-else-if="columnTitle.label == '发案环比'">
<span>上期:{{ scope.row["sqCount"] }}起|</span>
<span
:class="
scope.row.hbAjClass == 'up' ? 'upclass' : 'downclass'
"
>{{ scope.row["hbAjClass"] == "up" ? "⬆" : "⬇"
}}{{ scope.row["hbAjBfb"] }}</span
>
</div>
<div v-else-if="columnTitle.label == '发案同比'">
<!-- {{ item.split(":")[0] }}{{
scope.row[item.split(":")[1]]
}} -->
<span>上期:{{ scope.row["tqCount"] }}起|</span>
<span
:class="
scope.row.hbAjClass == 'up' ? 'upclass' : 'downclass'
"
>{{ scope.row["tbAjClass"] == "up" ? "⬆" : "⬇"
}}{{ scope.row["tbAjBfb"] }}</span
>
</div>
<div v-else v-html="scope.row[columnTitle.prop]"></div>
</template>
</el-table-column>
</el-table>
</div>
<div class="jqzs bj" id="zylbfaqk">
<span>2、主要类别案件发案情况</span>
<p v-html="zylbfa"></p>
</div>
<div
id="zylbfa"
ref="zylbfa"
style="height: 400px; width: 100%; padding-top: 6px"
></div>
<div class="table">
<el-table
id="ajzbQuery"
ref="itsmDataTable"
:data="tableDataZylbfa"
tooltip-effect="dark"
width="98%"
size="small"
>
<el-table-column
align="center"
v-for="columnTitle in propdefaultFormTheadZylbfa"
:prop="columnTitle.prop"
:key="columnTitle.label"
:label="columnTitle.label"
:width="columnTitle.width"
>
<template slot-scope="scope">
<div
v-if="columnTitle.prop == 'asjbh'"
@click="goDetail(scope.row)"
style="
cursor: pointer;
color: #096cc9;
font-size: 13px !important;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
"
>
{{ scope.row[columnTitle.prop] }}
</div>
<div v-else-if="columnTitle.label == '发案环比'">
<span>上期:{{ scope.row["sqCount"] }}起|</span>
<span
:class="
scope.row.hbAjClass == 'up' ? 'upclass' : 'downclass'
"
>{{ scope.row["hbAjClass"] == "up" ? "⬆" : "⬇"
}}{{ scope.row["hbAjBfb"] }}</span
>
</div>
<div v-else-if="columnTitle.label == '发案同比'">
<!-- {{ item.split(":")[0] }}{{
scope.row[item.split(":")[1]]
}} -->
<span>上期:{{ scope.row["tqCount"] }}起|</span>
<span
:class="
scope.row.hbAjClass == 'up' ? 'upclass' : 'downclass'
"
>{{ scope.row["tbAjClass"] == "up" ? "⬆" : "⬇"
}}{{ scope.row["tbAjBfb"] }}</span
>
</div>
<div v-else v-html="scope.row[columnTitle.prop]"></div>
</template>
</el-table-column>
</el-table>
</div>
<div class="subtitle" style="margin-top: 20px" id="xsajpaqk">
二、刑事案件破案情况
</div>
<div class="jqzs bj" id="gxqpaqk">
<span>1、各辖区破案情况</span>
<p v-html="paqk"></p>
</div>
<div
id="gxqpa"
ref="gxqpa"
style="height: 400px; width: 100%; padding-top: 6px"
></div>
<div class="table" style="margin-top: 20px">
<el-table
id="ajzbQuery"
ref="itsmDataTable"
:data="tableDataPa"
tooltip-effect="dark"
width="98%"
size="small"
>
<el-table-column
align="center"
v-for="columnTitle in propdefaultFormTheadPa"
:prop="columnTitle.prop"
:key="columnTitle.label"
:label="columnTitle.label"
:width="columnTitle.width"
>
<template slot-scope="scope">
<div
v-if="columnTitle.prop == 'asjbh'"
@click="goDetail(scope.row)"
style="
cursor: pointer;
color: #096cc9;
font-size: 13px !important;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
"
>
{{ scope.row[columnTitle.prop] }}
</div>
<div v-else-if="columnTitle.label == '破案环比'">
<span>上期:{{ scope.row["sqCount"] }}起|</span>
<span
:class="
scope.row.hbAjClass == 'up' ? 'upclass' : 'downclass'
"
>{{ scope.row["hbAjClass"] == "up" ? "⬆" : "⬇"
}}{{ scope.row["hbAjBfb"] }}</span
>
</div>
<div v-else-if="columnTitle.label == '破案同比'">
<!-- {{ item.split(":")[0] }}{{
scope.row[item.split(":")[1]]
}} -->
<span>上期:{{ scope.row["tqCount"] }}起|</span>
<span
:class="
scope.row.hbAjClass == 'up' ? 'upclass' : 'downclass'
"
>{{ scope.row["tbAjClass"] == "up" ? "⬆" : "⬇"
}}{{ scope.row["tbAjBfb"] }}</span
>
</div>
<div v-else v-html="scope.row[columnTitle.prop]"></div>
</template>
</el-table-column>
</el-table>
</div>
<div class="jqzs bj" id="zylbpaqk">
<span>2、主要类别案件破案情况</span>
<p v-html="zylbpa"></p>
</div>
<div
id="zylbpa"
ref="zylbpa"
style="height: 400px; width: 100%; padding-top: 6px"
></div>
<div class="table">
<el-table
id="ajzbQuery"
ref="itsmDataTable"
:data="tableDataZylbpa"
tooltip-effect="dark"
width="98%"
size="small"
>
<el-table-column
align="center"
v-for="columnTitle in propdefaultFormTheadZylbpa"
:prop="columnTitle.prop"
:key="columnTitle.label"
:label="columnTitle.label"
:width="columnTitle.width"
>
<template slot-scope="scope">
<div
v-if="columnTitle.prop == 'asjbh'"
@click="goDetail(scope.row)"
style="
cursor: pointer;
color: #096cc9;
font-size: 13px !important;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
"
>
{{ scope.row[columnTitle.prop] }}
</div>
<div v-else-if="columnTitle.label == '发案环比'">
<span>上期:{{ scope.row["sqCount"] }}起|</span>
<span
:class="
scope.row.hbAjClass == 'up' ? 'upclass' : 'downclass'
"
>{{ scope.row["hbAjClass"] == "up" ? "⬆" : "⬇"
}}{{ scope.row["hbAjBfb"] }}</span
>
</div>
<div v-else-if="columnTitle.label == '发案同比'">
<!-- {{ item.split(":")[0] }}{{
scope.row[item.split(":")[1]]
}} -->
<span>上期:{{ scope.row["tqCount"] }}起|</span>
<span
:class="
scope.row.hbAjClass == 'up' ? 'upclass' : 'downclass'
"
>{{ scope.row["tbAjClass"] == "up" ? "⬆" : "⬇"
}}{{ scope.row["tbAjBfb"] }}</span
>
</div>
<div v-else v-html="scope.row[columnTitle.prop]"></div>
</template>
</el-table-column>
</el-table>
</div>
<div class="subtitle" style="margin-top: 20px" id="xyrqkfx">
三、案件嫌疑人情况分析
</div>
<div
id="xyrnlfb"
ref="xyrnlfb"
style="height: 282px; width: 100%; padding-top: 36px"
></div>
<div
id="xyrhjfb"
ref="xyrhjfb"
style="height: 282px; width: 100%"
></div>
<div
id="xyrdazt"
ref="xyrdazt"
style="height: 240px; width: 100%; padding-bottom: 36px"
></div>
</div>
</div>
<div class="dt_menu">
<el-steps
direction="vertical"
finish-status="wait"
space="100px"
:active="activeIndex"
>
<el-step
v-for="(item, index) in menuList"
:key="item.id"
finish-status="wait"
@click.native="handleNav(index, item.id)"
>
<span slot="icon" v-if="index == activeIndex">
<img src="@/assets/img/jt.png" alt="" />
</span>
<span
slot="title"
:class="
index == activeIndex
? item.color == '333'
? 'activeColor'
: 'activeColor3'
: item.color == '333'
? 'activeColor2'
: 'activeColor1'
"
>
{{ item.title }}
</span>
</el-step>
</el-steps>
</div>
</div>
</div>
</template>
<script>
import SelectTreeDialog from "@c/treeCode_components.vue";
import {
EsNldQuery,
EshjfbQuery,
EszhqkQuery,
getGdAjQk,
getZalbFpaTj,
getJqzsQk,
} from "@/api/ypbg.js";
export default {
name: "ypbg",
components: {
SelectTreeDialog,
},
data() {
return {
header: "研判报告",
Menu: [
{
id: "ypbg",
label: "警情研判报告",
index: "ypbg",
auth: "M0101",
className: "iconfont iconrizhi",
disabled: false,
},
],
leftMenus: [
//左侧导航(模块第一个页面需要)
{
id: "ypbg",
label: "警情研判报告",
newAuth: "M01",
index: "ypbg",
className: "iconfont icongongnengfuwu",
hasChildren: false,
},
],
menuList: [
{ title: "警情综述", id: "#jbzs", color: "333" },
{ title: "一、发案情况", id: "#xsajfaqk", color: "333" },
{ title: "各辖区", id: "#gxqfaqk" },
{ title: "主要类别", id: "#zylbfaqk" },
{ title: "一、破案情况", id: "#xsajpaqk", color: "333" },
{ title: "各辖区", id: "#gxqpaqk" },
{ title: "主要类别", id: "#zylbpaqk" },
{ title: "三、嫌疑人情况分析", id: "#xyrqkfx", color: "333" },
{ title: "年龄段性别分析", id: "#xyrnlfb" },
{ title: "户籍分布", id: "#xyrhjfb" },
{ title: "到案状态", id: "#xyrdazt" },
],
activeIndex: 0,
emitSeleted: [],
loading: null,
formData: {
fasjStart: "",
fasjEnd: "",
date: "",
asjfsddXzqhdm: "",
},
jqzs: "",
propQueryField: [
{
name: "发案时间",
id: "fasjStart",
id2: "fasjEnd",
type: "zdyDate",
value: "",
col: "3",
},
{
name: "行政区划",
id: "asjfsddXzqhdm",
type: "codeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_XZQH",
value: "",
col: "3",
},
],
paqk: "",
faqk: "",
tableDataFa: [],
propdefaultFormTheadFa: [
{
label: "管辖单位",
prop: "name",
},
{
label: "发案数量",
prop: "bqCount",
},
{
label: "发案占比",
prop: "ajBfb",
},
{
label: "发案环比",
prop: "cbxsypCbajs",
},
{
label: "发案同比",
prop: "cbxsypCbajs",
},
{
label: "损失金额(万)",
prop: "bqSsRMB",
},
],
tableDataPa: [],
propdefaultFormTheadPa: [
{
label: "管辖单位",
prop: "name",
},
{
label: "破案数量",
prop: "bqCount",
},
{
label: "破案占比",
prop: "ajBfb",
},
{
label: "破案环比",
prop: "上期:sqCount起|hbAjBfb:hbAjBfb",
},
{
label: "破案同比",
prop: "patb",
},
{
label: "损失金额(万)",
prop: "bqSsRMB",
},
],
zylbfa: "",
tableDataZylbfa: [],
propdefaultFormTheadZylbfa: [
{
label: "案件类别",
prop: "name",
},
{
label: "发案数量",
prop: "bqCount",
},
{
label: "发案占比",
prop: "ajBfb",
},
{
label: "发案环比",
prop: "上期:sqCount起|hbAjBfb:hbAjBfb",
},
{
label: "发案同比",
prop: "patb",
},
{
label: "损失金额(万)",
prop: "bqSsRMB",
},
],
zylbpa: "",
tableDataZylbpa: [],
propdefaultFormTheadZylbpa: [
{
label: "案件类别",
prop: "name",
},
{
label: "发案数量",
prop: "bqCount",
},
{
label: "发案占比",
prop: "ajBfb",
},
{
label: "发案环比",
prop: "上期:sqCount起|hbAjBfb:hbAjBfb",
},
{
label: "发案同比",
prop: "patb",
},
{
label: "损失金额(万)",
prop: "bqSsRMB",
},
],
};
},
methods: {
//导航菜单切换
handleNav(index, id) {
this.activeIndex = index;
document.querySelector(id).scrollIntoView({
behavior: "smooth",
block: "end",
inline: "nearest",
});
},
getCodeSeleted(codeValue, item) {
this.getSeleted(item, codeValue);
},
getSeleted(item, value, flag) {
let self = this;
let ret2 = self.emitSeleted.find((v) => {
return v.id == item.id;
});
if (value != "" && value != null) {
if (!flag) {
if (item.id == "flxx") {
item.name = "分类信息";
}
item.value = value;
if (ret2 == undefined) {
if (item.type == "daterange") {
item.value1 = item.value[0];
item.value2 = item.value[1];
}
this.$set(self.emitSeleted, self.emitSeleted.length, item);
} else {
if (item.type == "daterange") {
item.value1 = item.value[0];
item.value2 = item.value[1];
}
var dateIndex = self.emitSeleted.findIndex((val) => {
return val.id === item.id;
});
this.$set(self.emitSeleted, dateIndex, item);
}
} else {
if (ret2 != undefined) {
if (ret2.id == "flxx") {
ret2.value = value;
} else {
ret2.value2 = value;
}
} else {
item.value2 = value;
this.$set(self.emitSeleted, self.emitSeleted.length, item);
}
}
self.$emit("getSelected", self.emitSeleted);
} else {
var index = self.emitSeleted.findIndex((val) => {
return val.id === item.id;
});
if (item.id2) {
if (flag) {
item.value2 = "";
this.$set(self.emitSeleted, index, item);
self.$emit("getSelected", self.emitSeleted);
} else {
item.value = "";
this.$set(self.emitSeleted, index, item);
self.$emit("getSelected", self.emitSeleted);
}
if (item.value == "" && item.value2 == "") {
self.emitSeleted.splice(index, 1);
self.$emit("getSelected", self.emitSeleted, item);
}
} else {
self.emitSeleted.splice(index, 1);
self.$emit("getSelected", self.emitSeleted, item);
}
}
},
print() {
window.print();
},
getJqzs() {
var self = this;
getJqzsQk({
asjfsddXzqhdm: this.formData.asjfsddXzqhdm,
asjfssjAsjfskssjStart: this.formData.fasjStart,
asjfssjAsjfskssjEnd: this.formData.fasjEnd,
zczj: "0",
}).then((res) => {
if (res.code == 200) {
self.jqzs = res.data.fpaQk;
}
});
},
formatDate(date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? "0" + m : m;
var d = date.getDate();
d = d < 10 ? "0" + d : d;
return y + "-" + m + "-" + d;
},
formatStartDate(date) {
var y = date.getFullYear();
return y + "-01-01";
},
doQuery() {
let unitcode = JSON.parse(
sessionStorage.getItem("userInfo")
).unitcode.slice(0, 6);
if (!this.formData.asjfsddXzqhdm) {
if (unitcode != "010000") {
this.$message.error("请选择行政单位");
} else {
this.loading = this.$loading({
lock: true,
text: "正在查询...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
this.getJqzs();
this.getGxqPa();
this.getGxFa();
this.getXyrnlfb();
this.getXyrhjfb();
this.getXyrdazt();
this.getZalbTj();
this.getZalbTjs();
}
} else {
this.loading = this.$loading({
lock: true,
text: "正在查询...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
this.getJqzs();
this.getGxqPa();
this.getGxFa();
this.getXyrnlfb();
this.getXyrhjfb();
this.getXyrdazt();
this.getZalbTj();
this.getZalbTjs();
}
},
getGxFa() {
var self = this;
let highRiskX = [];
let highRiskData = [];
getGdAjQk({
asjfsddXzqhdm: this.formData.asjfsddXzqhdm,
asjfssjAsjfskssjStart: this.formData.fasjStart,
asjfssjAsjfskssjEnd: this.formData.fasjEnd,
zczj: "0",
}).then((res) => {
if (res.code == 200) {
self.faqk = res.data.fpaQk;
self.tableDataFa = res.data.rows;
res.data.rows.forEach((item) => {
highRiskX.push(item.name);
highRiskData.push(item.bqCount);
});
self.getGdAjQkFa(highRiskX, highRiskData);
}
});
},
getGdAjQkFa(x, data) {
let myChart = this.$echarts.init(this.$refs.gxqfa);
myChart.setOption({
title: {
text: "辖区类案发案情况",
textStyle: {
color: "#333",
fontWeight: 800,
fontSize: 16,
},
left: 35,
},
tooltip: {
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
},
grid: {
top: "20%",
left: "8%",
right: "10%",
bottom: "20%",
// containLabel: true
},
xAxis: [
{
type: "category",
axisLine: {
show: false,
color: "#A582EA",
},
axisLabel: {
color: "#666",
clickable: true,
interval: 0,
formatter: function (params) {
var newParamsName = ""; // 最终拼接成的字符串
var paramsNameNumber = params.length; // 实际标签的个数
var provideNumber = 2; // 每行能显示的字的个数
var rowNumber = Math.ceil(paramsNameNumber / provideNumber); // 换行的话,需要显示几行,向上取整
/**
* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
*/
// 条件等同于rowNumber>1
if (paramsNameNumber > provideNumber) {
/** 循环每一行,p表示行 */
for (var p = 0; p < rowNumber; p++) {
var tempStr = ""; // 表示每一次截取的字符串
var start = p * provideNumber; // 开始截取的位置
var end = start + provideNumber; // 结束截取的位置
// 此处特殊处理最后一行的索引值
if (p == rowNumber - 1) {
// 最后一次不换行
tempStr = params.substring(start, paramsNameNumber);
} else {
// 每一次拼接字符串并换行
tempStr = params.substring(start, end) + "\n";
}
newParamsName += tempStr; // 最终拼成的字符串
}
} else {
// 将旧标签的值赋给新标签
newParamsName = params;
}
//将最终的字符串返回
return newParamsName;
},
},
splitLine: {
show: false,
},
boundaryGap: true,
data: x,
},
],
yAxis: [
{
type: "value",
min: 0,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: "#00BFF3",
opacity: 0.23,
type: "dashed",
},
},
axisLine: {
show: false,
},
axisLabel: {
show: true,
margin: 20,
textStyle: {
color: "#939FB3",
},
},
axisTick: {
show: false,
},
},
],
legend: {
right: 35,
top: 12,
textStyle: {
color: "#fff",
},
itemWidth: 12,
itemHeight: 10,
// itemGap: 35
},
series: [
{
type: "bar",
data: data,
barWidth: "24px",
barCategoryGap: "10%",
itemStyle: {
barBorderRadius: [4, 4, 0, 0],
color: "rgba(255, 195, 109, 1)",
},
},
],
});
window.addEventListener("resize", () => {
myChart.resize();
});
this.loading.close();
},
getZalbTj() {
var self = this;
let highRiskX = [];
let highRiskData = [];
getZalbFpaTj({
asjfsddXzqhdm: this.formData.asjfsddXzqhdm,
asjfssjAsjfskssjStart: this.formData.fasjStart,
asjfssjAsjfskssjEnd: this.formData.fasjEnd,
zczj: "0",
}).then((res) => {
if (res.code == 200) {
self.zylbfa = res.data.fpaQk;
self.tableDataZylbfa = res.data.rows;
res.data.rows.forEach((item) => {
highRiskX.push(item.name);
highRiskData.push(item.bqCount);
});
self.getgetZalbFpaTj(highRiskX, highRiskData);
}
});
},
getgetZalbFpaTj(x, data) {
let myChart = this.$echarts.init(this.$refs.zylbfa);
myChart.setOption({
title: {
text: "主要类别发案情况",
textStyle: {
color: "#333",
fontWeight: 800,
fontSize: 16,
},
left: 35,
},
tooltip: {
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
},
grid: {
top: "20%",
left: "8%",
right: "10%",
bottom: "20%",
// containLabel: true
},
xAxis: [
{
type: "category",
axisLine: {
show: false,
color: "#A582EA",
},
axisLabel: {
color: "#666",
clickable: true,
interval: 0,
},
splitLine: {
show: false,
},
boundaryGap: true,
data: x,
},
],
yAxis: [
{
type: "value",
min: 0,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: "#00BFF3",
opacity: 0.23,
type: "dashed",
},
},
axisLine: {
show: false,
},
axisLabel: {
show: true,
margin: 20,
textStyle: {
color: "#939FB3",
},
},
axisTick: {
show: false,
},
},
],
legend: {
right: 35,
top: 12,
textStyle: {
color: "#fff",
},
itemWidth: 12,
itemHeight: 10,
// itemGap: 35
},
series: [
{
type: "bar",
data: data,
barWidth: "24px",
barCategoryGap: "10%",
itemStyle: {
barBorderRadius: [4, 4, 0, 0],
color: "rgba(255, 195, 109, 1)",
},
},
],
});
window.addEventListener("resize", () => {
myChart.resize();
});
},
getZalbTjs() {
var self = this;
let highRiskX = [];
let highRiskData = [];
getZalbFpaTj({
asjfsddXzqhdm: this.formData.asjfsddXzqhdm,
asjfssjAsjfskssjStart: this.formData.fasjStart,
asjfssjAsjfskssjEnd: this.formData.fasjEnd,
zczj: "1",
}).then((res) => {
if (res.code == 200) {
self.zylbpa = res.data.fpaQk;
self.tableDataZylbpa = res.data.rows;
res.data.rows.forEach((item) => {
highRiskX.push(item.name);
highRiskData.push(item.bqCount);
});
self.getgetZalbFpaTjs(highRiskX, highRiskData);
}
});
},
getgetZalbFpaTjs(x, data) {
let myChart = this.$echarts.init(this.$refs.zylbpa);
myChart.setOption({
title: {
text: "主要类别破案情况",
textStyle: {
color: "#333",
fontWeight: 800,
fontSize: 16,
},
left: 35,
},
tooltip: {
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
},
grid: {
top: "20%",
left: "8%",
right: "10%",
bottom: "20%",
// containLabel: true
},
xAxis: [
{
type: "category",
axisLine: {
show: false,
color: "#A582EA",
},
axisLabel: {
color: "#666",
clickable: true,
interval: 0,
},
splitLine: {
show: false,
},
boundaryGap: true,
data: x,
},
],
yAxis: [
{
type: "value",
min: 0,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: "#00BFF3",
opacity: 0.23,
type: "dashed",
},
},
axisLine: {
show: false,
},
axisLabel: {
show: true,
margin: 20,
textStyle: {
color: "#939FB3",
},
},
axisTick: {
show: false,
},
},
],
legend: {
right: 35,
top: 12,
textStyle: {
color: "#fff",
},
itemWidth: 12,
itemHeight: 10,
// itemGap: 35
},
series: [
{
type: "bar",
data: data,
barWidth: "24px",
barCategoryGap: "10%",
itemStyle: {
barBorderRadius: [4, 4, 0, 0],
color: "#6EBBFF",
},
},
],
});
window.addEventListener("resize", () => {
myChart.resize();
});
},
getGxqPa() {
var self = this;
let highRiskX = [];
let highRiskData = [];
getGdAjQk({
asjfsddXzqhdm: this.formData.asjfsddXzqhdm,
asjfssjAsjfskssjStart: this.formData.fasjStart,
asjfssjAsjfskssjEnd: this.formData.fasjEnd,
zczj: "1",
}).then((res) => {
if (res.code == 200) {
self.paqk = res.data.fpaQk;
res.data.rows.forEach((item) => {
// item.pahb = `上期(${item.sqCount})`
// item.patb =
highRiskX.push(item.name);
highRiskData.push(item.bqCount);
});
self.tableDataPa = res.data.rows;
self.getGdAjQkPa(highRiskX, highRiskData);
}
});
},
getGdAjQkPa(x, data) {
let myChart = this.$echarts.init(this.$refs.gxqpa);
myChart.setOption({
title: {
text: "各辖区破案情况",
textStyle: {
color: "#333",
fontWeight: 800,
fontSize: 16,
},
left: 35,
},
tooltip: {
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
},
grid: {
top: "20%",
left: "8%",
right: "10%",
bottom: "20%",
// containLabel: true
},
xAxis: [
{
type: "category",
axisLine: {
show: false,
color: "#A582EA",
},
axisLabel: {
color: "#666",
clickable: true,
interval: 0,
formatter: function (params) {
var newParamsName = ""; // 最终拼接成的字符串
var paramsNameNumber = params.length; // 实际标签的个数
var provideNumber = 2; // 每行能显示的字的个数
var rowNumber = Math.ceil(paramsNameNumber / provideNumber); // 换行的话,需要显示几行,向上取整
/**
* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
*/
// 条件等同于rowNumber>1
if (paramsNameNumber > provideNumber) {
/** 循环每一行,p表示行 */
for (var p = 0; p < rowNumber; p++) {
var tempStr = ""; // 表示每一次截取的字符串
var start = p * provideNumber; // 开始截取的位置
var end = start + provideNumber; // 结束截取的位置
// 此处特殊处理最后一行的索引值
if (p == rowNumber - 1) {
// 最后一次不换行
tempStr = params.substring(start, paramsNameNumber);
} else {
// 每一次拼接字符串并换行
tempStr = params.substring(start, end) + "\n";
}
newParamsName += tempStr; // 最终拼成的字符串
}
} else {
// 将旧标签的值赋给新标签
newParamsName = params;
}
//将最终的字符串返回
return newParamsName;
},
},
splitLine: {
show: false,
},
boundaryGap: true,
data: x,
},
],
yAxis: [
{
type: "value",
min: 0,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: "#00BFF3",
opacity: 0.23,
type: "dashed",
},
},
axisLine: {
show: false,
},
axisLabel: {
show: true,
margin: 20,
textStyle: {
color: "#939FB3",
},
},
axisTick: {
show: false,
},
},
],
legend: {
right: 35,
top: 12,
textStyle: {
color: "#fff",
},
itemWidth: 12,
itemHeight: 10,
// itemGap: 35
},
series: [
{
type: "bar",
data: data,
barWidth: "24px",
barCategoryGap: "10%",
itemStyle: {
barBorderRadius: [4, 4, 0, 0],
color: "#6EBBFF",
},
},
],
});
window.addEventListener("resize", () => {
myChart.resize();
});
},
getXyrnlfb() {
var self = this;
let nlData = [];
let lineData1 = [];
let lineData2 = [];
EsNldQuery({
asjfsddXzqhdm: this.formData.asjfsddXzqhdm,
asjfssjAsjfskssjStart: this.formData.fasjStart,
asjfssjAsjfskssjEnd: this.formData.fasjEnd,
}).then((res) => {
if (res.code == 200) {
if (res.code == 200) {
res.data.rows.forEach((item) => {
nlData.push(item.name);
lineData1.push(item.manNum);
lineData2.push(item.womenNum);
});
}
self.getEsNldQuery(lineData1, lineData2, nlData);
}
});
},
getEsNldQuery(data1, data2, nlData) {
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(this.$refs.xyrnlfb);
myChart.setOption({
title: {
text: "五类案件嫌疑人年龄段性别分布",
textStyle: {
color: "#333",
fontWeight: 800,
fontSize: 16,
},
left: 50,
},
tooltip: {
trigger: "axis",
axisPointer: {
lineStyle: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "rgba(0, 255, 233,0)",
},
{
offset: 0.5,
color: "rgba(255, 255, 255,1)",
},
{
offset: 1,
color: "rgba(0, 255, 233,0)",
},
],
global: false,
},
},
},
},
legend: {
right: 85,
top: 3,
textStyle: {
color: "#666666",
},
itemWidth: 12,
itemHeight: 10,
itemWidth: 14,
itemGap: 17,
},
grid: {
top: "20%",
left: "8%",
right: "10%",
bottom: "15%",
// containLabel: true
},
xAxis: [
{
type: "category",
axisLine: {
show: false,
color: "#A582EA",
},
axisLabel: {
color: "#666",
width: 100,
},
splitLine: {
show: false,
},
boundaryGap: true,
data: nlData,
},
],
yAxis: [
{
type: "value",
min: 0,
// max: 140,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: "#00BFF3",
opacity: 0.23,
},
},
axisLine: {
show: false,
},
axisLabel: {
show: true,
margin: 20,
textStyle: {
color: "#939FB3",
},
},
axisTick: {
show: false,
},
},
],
series: [
{
name: "男性",
type: "line",
showAllSymbol: true,
symbol: "circle",
symbolSize: 10,
lineStyle: {
normal: {
color: "#28DBF1",
},
},
label: {
show: true,
position: "top",
textStyle: {
color: "#28DBF1",
},
},
itemStyle: {
color: "#28DBF1",
// borderColor: "#000",
// borderWidth: 3,
},
data: data1, //data.values
},
{
name: "女性",
type: "line",
showAllSymbol: true,
symbol: "circle",
symbolSize: 10,
lineStyle: {
normal: {
color: "#EAC42E",
},
},
label: {
show: true,
position: "top",
textStyle: {
color: "#EAC42E",
},
},
itemStyle: {
color: "#EAC42E",
// borderColor: "#EAC42E",
// borderWidth: 2,
},
data: data2, //data.values
},
],
});
window.addEventListener("resize", () => {
myChart.resize();
});
},
getXyrhjfb() {
var self = this;
let highRiskX = [];
let highRiskData = [];
EshjfbQuery({
asjfsddXzqhdm: this.formData.asjfsddXzqhdm,
asjfssjAsjfskssjStart: this.formData.fasjStart,
asjfssjAsjfskssjEnd: this.formData.fasjEnd,
}).then((res) => {
if (res.code == 200) {
res.data.rows.forEach((item) => {
highRiskX.push(item.name);
highRiskData.push(item.num);
});
self.getEshjfbQuery(highRiskX, highRiskData);
}
});
},
getEshjfbQuery(x, data) {
let myChart = this.$echarts.init(this.$refs.xyrhjfb);
myChart.setOption({
title: {
text: "五类案件嫌疑人户籍地分布",
textStyle: {
color: "#333",
fontWeight: 800,
fontSize: 16,
},
left: 50,
},
tooltip: {
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
},
grid: {
top: "20%",
left: "8%",
right: "10%",
bottom: "20%",
// containLabel: true
},
xAxis: [
{
type: "category",
axisLine: {
show: false,
color: "#A582EA",
},
axisLabel: {
color: "#666",
clickable: true,
interval: 0,
formatter: function (params) {
var newParamsName = ""; // 最终拼接成的字符串
var paramsNameNumber = params.length; // 实际标签的个数
var provideNumber = 2; // 每行能显示的字的个数
var rowNumber = Math.ceil(paramsNameNumber / provideNumber); // 换行的话,需要显示几行,向上取整
/**
* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
*/
// 条件等同于rowNumber>1
if (paramsNameNumber > provideNumber) {
/** 循环每一行,p表示行 */
for (var p = 0; p < rowNumber; p++) {
var tempStr = ""; // 表示每一次截取的字符串
var start = p * provideNumber; // 开始截取的位置
var end = start + provideNumber; // 结束截取的位置
// 此处特殊处理最后一行的索引值
if (p == rowNumber - 1) {
// 最后一次不换行
tempStr = params.substring(start, paramsNameNumber);
} else {
// 每一次拼接字符串并换行
tempStr = params.substring(start, end) + "\n";
}
newParamsName += tempStr; // 最终拼成的字符串
}
} else {
// 将旧标签的值赋给新标签
newParamsName = params;
}
//将最终的字符串返回
return newParamsName;
},
},
splitLine: {
show: false,
},
boundaryGap: true,
data: x,
},
],
yAxis: [
{
type: "value",
min: 0,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: "#00BFF3",
opacity: 0.23,
type: "dashed",
},
},
axisLine: {
show: false,
},
axisLabel: {
show: true,
margin: 20,
textStyle: {
color: "#939FB3",
},
},
axisTick: {
show: false,
},
},
],
legend: {
right: 35,
top: 12,
textStyle: {
color: "#fff",
},
itemWidth: 12,
itemHeight: 10,
// itemGap: 35
},
series: [
{
type: "bar",
data: data,
barWidth: "24px",
barCategoryGap: "10%",
itemStyle: {
barBorderRadius: [4, 4, 0, 0],
color: "rgba(255, 195, 109, 1)",
},
},
],
});
window.addEventListener("resize", () => {
myChart.resize();
});
},
getXyrdazt() {
var self = this;
EszhqkQuery({
asjfsddXzqhdm: this.formData.asjfsddXzqhdm,
asjfssjAsjfskssjStart: this.formData.fasjStart,
asjfssjAsjfskssjEnd: this.formData.fasjEnd,
}).then((res) => {
if (res.code == 200) {
let dataZy = [];
res.data.rows.forEach((item) => {
dataZy.push({ name: item.name, value: item.num });
});
self.setEszhqkQuery(dataZy);
}
});
},
setEszhqkQuery(data) {
//颜色组
const colorList = [
"#FDB36A",
"#58D5FF",
"#9E87FF",
"#73ACFF",
"#FDD56A",
"#FDB36A",
"#FD866A",
];
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(this.$refs.xyrdazt);
myChart.setOption({
title: {
text: "五类案件嫌疑人抓获情况",
textStyle: {
color: "#333333",
fontWeight: 800,
fontSize: 16,
},
left: 50,
},
tooltip: {
trigger: "item",
},
legend: {
type: "plain",
orient: "vertical",
top: "30%",
right: "53%",
itemWidth: 14,
itemGap: 17,
formatter: function (params) {
let num;
if (data.length > 0) {
num = data.find((i) => params == i.name);
}
return `${params}\xa0\xa0\xa0\xa0${num.value}`;
},
textStyle: {
color: "#B0BAD3",
},
},
series: [
{
type: "pie",
center: ["20%", "center"],
radius: ["35%", "50%"],
minAngle: 10,
avoidLabelOverlap: true,
hoverOffset: 15,
itemStyle: {
color: (params) => {
return colorList[params.dataIndex];
},
},
label: {
show: true,
position: "outer",
alignTo: "labelLine",
// ·圆点
backgroundColor: "auto", //圆点颜色,auto:映射的系列色
height: 0,
width: 0,
lineHeight: 0,
// height,width.lineHeight必须为0
distanceToLabelLine: 0, //圆点到labelline距离
borderRadius: 2.5,
padding: [2.5, -2.5, 2.5, -2.5],
/*radius和padding为圆点大小,圆点半径为几radius和padding各项数值就为几
如:圆点半径为1
borderRadius: 1,
padding: [1, -1, 1, -1]
*/
formatter: "{a|{b}:}{b|{d}%}",
rich: {
a: {
padding: [0, 0, 0, 10],
},
b: {
padding: [0, 10, 0, 0],
},
},
},
data: data,
},
],
});
window.addEventListener("resize", () => {
myChart.resize();
});
},
},
created() {
this.$store.commit("user/SET_Menu", this.Menu);
this.$store.commit("user/SET_LeftMenu", this.leftMenus);
this.$store.commit("user/SET_Header", this.header);
this.formData.fasjStart = this.formatStartDate(new Date());
this.formData.fasjEnd = this.formatDate(new Date());
let unitcode = JSON.parse(
sessionStorage.getItem("userInfo")
).unitcode.slice(0, 6);
let unit = unitcode == "010000" ? "" : unitcode;
this.$set(this.formData, "asjfsddXzqhdm", unit);
debugger;
},
mounted() {
var self = this;
this.loading = this.$loading({
lock: true,
text: "正在查询...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
self.propQueryField.forEach((val) => {
if (val.type == "code" || val.type == "codeTreeDialog") {
if (val.codeOptions.length == 0) {
axios
.get(`JsonData/${val.codeTree}.json`)
.then((res) => {
let unitcode = JSON.parse(
sessionStorage.getItem("userInfo")
).unitcode.slice(0, 6);
debugger;
let arr1 = res.data.data.rows.filter(
(item) => item.id.slice(0, 2) == unitcode.slice(0, 2)
);
let arr2 = [];
let arr3 = [];
let arr4 = [];
if (arr1.length > 0) {
arr2 = arr1[0].children.filter(
(item) => item.id.slice(0, 4) == unitcode.slice(0, 4)
);
}
if (arr2.length > 0) {
arr3 = arr2[0].children.filter(
(item) => item.id.slice(0, 6) == unitcode
);
}
arr4 =
unitcode == "010000"
? res.data.data.rows
: arr1.length > 0
? arr1
: arr2.length > 0
? arr2
: arr3;
if (arr4.length > 0) {
self.$set(val, "codeOptions", arr4);
}
})
.catch((err) => {
console.log(err);
});
}
}
});
this.getJqzs();
this.getGxqPa();
this.getGxFa();
this.getXyrnlfb();
this.getXyrhjfb();
this.getXyrdazt();
this.getZalbTj();
this.getZalbTjs();
},
};
</script>
<style lang="scss">
#ypbg .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: 160px;
}
.el-table__header-wrapper th,
.el-table__header-wrapper tr {
background: #f4f6f7;
}
#ypbg .dt_menu {
.el-steps--vertical {
cursor: pointer;
}
.el-step__icon.is-text {
border: none;
}
.el-step__icon-inner {
width: 6px;
height: 6px;
background: #dddddd;
color: transparent;
border-radius: 50%;
}
.el-step__line {
background-color: #eaeaea;
}
.el-step__icon {
height: 16px;
}
.el-step__head {
top: 4px;
}
}
</style>
<style lang="scss" scoped>
#ypbg {
.title {
height: 52px;
background: #1f212c;
padding-left: 32px;
display: flex;
align-items: center;
img {
width: 36px;
height: 36px;
}
.name {
font-size: 18px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 24px;
color: #ffffff;
}
}
.content {
width: 1360px;
margin: 0 auto;
margin-top: 24px;
display: flex;
flex-direction: column;
height: auto;
margin-bottom: 68px;
.btn {
width: 108px;
height: 36px;
background: #3670ff;
box-shadow: 0px 4px 6px rgba(54, 112, 255, 0.2);
opacity: 1;
border-radius: 4px;
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #ffffff;
text-align: center;
line-height: 36px;
margin-left: 40px;
}
.yp_body {
background: #ffffff;
border: 1px solid #e2e2e2;
border-radius: 8px;
position: relative;
padding: 0 32px;
.yp_title {
height: 64px;
border-bottom: 1px solid #e2e2e2;
display: flex;
align-items: center;
.yp_img {
width: 32px;
height: 32px;
}
.yp_name {
font-size: 20px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 26px;
color: #1f212c;
margin-left: 12px;
}
.yp_dy {
width: 76px;
height: 28px;
position: absolute;
right: 32px;
}
}
.yp_contnet {
width: 1171px;
.jqzs {
width: 720px;
padding: 23px 36px;
span {
height: 21px;
font-size: 17px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 21px;
color: #333333;
}
p {
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 26px;
color: #666666;
margin-top: 12px;
}
}
.subtitle {
width: 1056px;
height: 36px;
background: linear-gradient(90deg, #4c5459 0%, #ffffff 100%);
font-size: 18px;
font-family: Microsoft YaHei;
font-weight: bold;
line-height: 36px;
color: #ffffff;
padding-left: 16px;
}
.xqgdfaqk {
width: 100%;
height: 298px;
}
}
}
}
.bj {
padding: 24px 36px 32px 36px;
}
.dt_menu {
width: 200px;
height: 400px;
border-radius: 4px;
position: fixed;
margin-left: 1180px;
margin-top: 200px;
z-index: 99;
.menu_item {
width: 180px;
height: 36px;
padding-left: 24px;
opacity: 1;
line-height: 36px;
}
.menu_active {
background: linear-gradient(90deg, #3670ff 0%, rgba(27, 56, 128, 0) 100%);
height: 36px;
opacity: 1;
line-height: 36px;
width: 160px;
color: #3670ff;
display: flex;
}
.left_active {
width: 4px;
height: 36px;
background: #3670ff;
opacity: 1;
margin-right: 20px;
}
}
.activeColor {
color: #3670ff;
font-size: 14px;
}
.activeColor1 {
color: #666;
font-size: 14px;
padding-left: 16px;
}
.activeColor2 {
color: #333;
font-size: 14px;
}
.activeColor3 {
color: #3670ff;
padding-left: 16px;
font-size: 14px;
}
.upclass {
color: #ef4c4c;
padding-left: 5px;
}
.downclass {
color: #35ca1e;
padding-left: 5px;
}
}
</style>
\ No newline at end of file
<template>
<el-container class="main">
<el-container>
<el-aside class="left" width="240px">
<div class="headerTitle">
<img src="../../assets/img/login/jinhui.png" alt="" /><span
>字典管理</span
>
</div>
<div class="tree">
<el-tree
highlight-current
:data="setTree"
:props="defaultProps"
@node-click="handleNodeClick"
accordion
>
<div slot-scope="scope" :class="{ treeitem: !scope.data.pid }">
<i class="iconfont icongongnengfuwu" v-if="!scope.data.pid"></i>
<span class="title" style="color: rgb(90, 93, 103)">{{
scope.data.label
}}</span>
</div>
</el-tree>
</div>
</el-aside>
<el-main>
<div class="mainHeader"></div>
<div class="btn">
<el-button
type="primary"
@click="zdSubmit('insert')"
plain
size="mini"
>添加</el-button
>
<el-button
type="primary"
@click="zdSubmit('update')"
plain
size="mini"
>编辑</el-button
>
<el-button
type="primary"
@click="zdSubmit('delete')"
plain
size="mini"
>删除</el-button
>
<el-button
type="primary"
plain
size="mini"
style="margin-left: 16px"
@click="gwdqSubmit"
>关联高危地区</el-button
>
</div>
<div>
<el-table
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 98%"
max-height="750px"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column label="字典名称" width="250">
<template slot-scope="scope">{{ scope.row.name }}</template>
</el-table-column>
<el-table-column prop="code" label="字典代码" width="120">
</el-table-column>
<el-table-column
prop="description"
label="字典描述"
show-overflow-tooltip
>
</el-table-column>
</el-table>
</div>
</el-main>
<el-dialog
:title="dialogName"
:visible.sync="zdDialogVisible"
width="650px"
center
>
<el-form
label-width="100px"
:model="formLabelAlign"
style="margin-top: 20px"
>
<el-form-item label="字典名称" style="width: 500px">
<el-input v-model="formLabelAlign.name"></el-input>
</el-form-item>
<el-form-item label="组" style="width: 500px">
<el-input disabled v-model="formLabelAlign.group"></el-input>
</el-form-item>
<el-form-item label="上级字典" style="width: 500px">
<el-input disabled v-model="formLabelAlign.parentCode"></el-input>
</el-form-item>
<el-form-item label="字典描述" style="width: 500px">
<el-input type="textarea" v-model="formLabelAlign.ms"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="zdDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="zdSumit()">确 定</el-button>
</span>
</el-dialog>
<el-dialog
title="关联高危地区"
:visible.sync="gwdqDialogVisible"
width="800px"
center
>
<el-form
label-width="100px"
:model="formLabelAlign2"
style="margin-top: 20px"
>
<el-form-item label="字典名称" style="width: 500px">
<el-select
v-model="formLabelAlign2.xzqh"
clearable
placeholder="请选择"
>
<el-option
v-for="(item, index) in optionxz"
:key="index"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="行政区划代码" style="width: 500px">
<el-input v-model="formLabelAlign2.xzqhdm"></el-input>
</el-form-item>
<el-form-item label="重点乡村镇" style="width: 500px">
<el-input v-model="formLabelAlign2.xc"></el-input>
</el-form-item>
<el-form-item label="重点族别" style="width: 500px">
<el-select
v-model="formLabelAlign2.zb"
clearable
placeholder="请选择"
>
<el-option
v-for="(item, index) in optionzb"
:key="index"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="手段描述" style="width: 500px">
<el-input type="textarea" v-model="formLabelAlign2.ms"></el-input>
</el-form-item>
</el-form>
<el-table :data="gwdqData" border stripe class="gwdqcontent">
<el-table-column type="index" style="width: 50px" label="序号">
</el-table-column>
<el-table-column
v-for="(columnTitle, columnIndex) in gwdqList"
:key="columnTitle.label"
:label="columnTitle.label"
:prop="columnTitle.prop"
align="center"
>
<template slot-scope="scope">
<div
v-if="
columnIndex == gwdqList.length - 1 && columnTitle.prop == 'cz'
"
style="
color: #1a81e1;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
"
>
<span @click="xxDetail(scope, xsitem.isClick)">{{
scope.row[columnTitle.prop]
}}</span>
<span
style="margin-left: 20px"
v-if="scope.row.sfzsshan == '0'"
@click="zlshDetail(scope)"
>指令审核</span
>
</div>
<div v-else>
{{ scope.row[columnTitle.prop] }}
</div>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-button
@click.native.prevent="deleteRow(scope.row)"
type="text"
size="small"
style="text-align: center"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="gwdqDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="gwdqSumits()">确 定</el-button>
</span>
</el-dialog>
</el-container>
</el-container>
</template>
<script>
import { queryDictItem } from "@/api/dictionaryCode.js";
import {
dictitemEdit,
UpdateRedisRest,
xalbJoinGWDQ,
queryXalbJoinGWDQ,
} from "@/api/zdgl.js";
import axios from "axios";
export default {
name: "zdgl",
data() {
return {
gwdqData: [],
gwdqList: [
{
/*table默认得表头*/
label: "行政区域",
prop: "xzqhMc",
},
{
/*table默认得表头*/
label: "行政区域代码",
prop: "xzqh",
},
{
/*table默认得表头*/
label: "重点乡村镇",
prop: "xzc",
},
{
/*table默认得表头*/
label: "重点族别",
prop: "mz",
},
{
/*table默认得表头*/
label: "手段描述",
prop: "description",
},
],
glgwCode: "",
optionxz: [],
optionzb: [],
jccxAjxxFormField: {
title: "案件信息",
id: "1",
data: [
{
name: "案事件编号",
id: "asjbh",
type: "text",
value: "",
placeholder: "请输入",
col: "3",
},
{
name: "受理单位",
id: "sldwGajgjgdm",
type: "lazyCodeTreeDialog", //字典弹框
props: [], //字典弹框需要的字段
codeOptions: [],
codeTree: "CODE_QGUNIT",
value: "",
col: "3",
},
],
},
gwdqDialogVisible: false,
setTree: [],
defaultProps: {
children: "children",
label: "label",
},
pid: "",
groupid: "",
treeData: [],
organList: [],
tableData: [],
zdDialogVisible: false,
formLabelAlign: {
xzqh: "",
group: "",
parentCode: "",
zb: "",
ms: "",
},
formLabelAlign2: {
xzqhdm: "",
xc: "",
ms: "",
xzqh: "",
zb: "",
},
submitType: "",
seleteObj: {},
dialogName: "",
allSelect: [],
dataObj: {},
};
},
created() {
this.getQuery();
},
methods: {
ssss(scope) {
console.log(scope);
},
getRedis() {
UpdateRedisRest({
type: "CODE_GABAJZLB",
}).then();
UpdateRedisRest({
type: "CODE_GABAJXZLB",
}).then();
},
zdSubmit(type) {
var self = this;
this.submitType = type;
self.$set(self.formLabelAlign, "name", "");
self.$set(self.formLabelAlign, "ms", "");
if (this.submitType == "update") {
this.dialogName = "编辑字典";
} else if (this.submitType == "delete") {
this.dialogName = "删除字典";
} else {
this.dialogName = "新增字典";
this.zdDialogVisible = true;
}
if (this.submitType == "update" || this.submitType == "delete") {
if (this.allSelect.length != 1) {
this.$confirm("一次只能对一条数据进行操作", {
confirmButtonText: "确定",
showCancelButton: false,
type: "warning",
});
} else {
self.$set(self.formLabelAlign, "group", self.seleteObj.groupname);
self.$set(self.formLabelAlign, "name", self.seleteObj.name);
self.$set(self.formLabelAlign, "parentCode", self.seleteObj.pname);
self.$set(self.formLabelAlign, "ms", self.seleteObj.description);
this.zdDialogVisible = true;
}
}
},
deleteRow(val) {
this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
const loading = this.$loading({
lock: true,
text: "正在删除...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
xalbJoinGWDQ({
operatetype: "delete",
id: val.id,
}).then((res) => {
if (res.code == 200) {
this.$message({
type: "success",
message: "删除成功!",
});
queryXalbJoinGWDQ({
xalbdmbcms: this.seleteObj.code,
}).then((res) => {
this.gwdqData = res.data.items;
});
} else {
this.$message({
type: "error",
message: "删除失败!",
});
}
loading.close();
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
gwdqSubmit() {
if (
this.allSelect.length == 1 &&
this.allSelect.every((item) => item.pid.length != 2)
) {
this.gwdqDialogVisible = true;
} else {
this.$confirm("请选择一条次案类别进行关联", {
confirmButtonText: "确定",
showCancelButton: false,
type: "warning",
});
}
queryDictItem({
pid: "",
groupid: "CODE_XZQH",
}).then((res) => {
res.data.items.forEach((item, index) => {
this.optionxz.push({
value: item.code,
label: item.name,
});
});
});
queryDictItem({
pid: "",
groupid: "CODE_MZ",
}).then((res) => {
res.data.items.forEach((item, index) => {
this.optionzb.push({
value: item.code,
label: item.name,
});
});
});
queryXalbJoinGWDQ({
xalbdmbcms: this.seleteObj.code,
}).then((res) => {
this.gwdqData = res.data.items;
});
},
gwdqSumits() {
const loading = this.$loading({
lock: true,
text: "正在添加...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
var self = this;
xalbJoinGWDQ({
operatetype: "insert",
xzqhcode: this.formLabelAlign2.xzqhdm,
xzqh: this.formLabelAlign2.xzqh,
description: this.formLabelAlign2.ms,
xzc: this.formLabelAlign2.xc,
mz: this.formLabelAlign2.zb,
xalbdmbcms: this.allSelect[0].code,
}).then((res) => {
if (res.code == 200) {
this.gwdqDialogVisible = false;
loading.close();
}
});
},
zdSumit() {
var self = this;
const loading = this.$loading({
lock: true,
text: "正在编辑...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
dictitemEdit({
operateType: this.submitType,
name: this.formLabelAlign.name,
code: this.submitType != "insert" ? self.seleteObj.code : "",
description: this.formLabelAlign.ms,
pid: this.tableData[0].pid,
groupid:
this.tableData[0].pid.length == 2
? "CODE_GABAJZLB"
: "CODE_GABAJXZLB",
}).then((res) => {
if (res.code == 200) {
self.getRedis();
self.handleNodeClick(self.dataObj);
self.zdDialogVisible = false;
loading.close();
}
});
},
handleSelectionChange(data) {
console.log(data[0], "22222");
this.allSelect = data;
this.seleteObj = data[0];
},
getQuerys() {
this.setTree = [];
queryDictItem({
pid: this.seleteObj.pid,
groupid:
this.seleteObj.pid.length == 2 ? "CODE_GABAJZLB" : "CODE_GABAJXZLB",
}).then((res) => {
res.data.items.forEach((item, index) => {
this.setTree.push({
id: index,
code: item.code,
pid: item.pid,
groupid: item.groupid,
label: item.name,
children: [],
});
this.tableData = [];
res.data.items.forEach((item, index) => {
this.tableData.push({
name: item.name,
code: item.code,
description: item.description,
});
});
});
console.log(this.setTree);
});
},
getQuery() {
this.setTree = [];
queryDictItem({
pid: "",
groupid: "CODE_GABAJZLB",
}).then((res) => {
res.data.items.forEach((item, index) => {
this.setTree.push({
id: index,
code: item.code,
pid: item.pid,
groupid: item.groupid,
label: item.name,
children: [],
});
});
console.log(this.setTree);
});
},
handleNodeClick(data) {
var self = this;
self.dataObj = data;
this.tableData = [];
let arr = [];
let arr1 = [];
let index = data.id;
const loading = this.$loading({
lock: true,
text: "正在查询...",
spinner: "el-icon-loading",
background: "rgba(255, 255, 255, 0.7)",
});
if (data.pid.length == 2) {
queryDictItem({
pid: data.code,
groupid: "CODE_GABAJXZLB",
}).then((res) => {
self.formLabelAlign.group = res.data.items[0].groupname;
self.formLabelAlign.parentCode = data.label;
res.data.items.forEach((item, index) => {
console.log(item);
arr1.push({
pid: item.pid,
code: item.code,
groupid: item.groupid,
label: item.name,
});
this.tableData.push({
name: item.name,
code: item.code,
description: item.description,
pid: item.pid,
groupid: data.groupid,
isParent: item.isParent,
groupname: item.groupname,
pname: data.label,
});
});
});
loading.close();
} else {
queryDictItem({
pid: data.code,
groupid: data.groupid,
}).then((res) => {
self.formLabelAlign.group = res.data.items[0].groupname;
self.formLabelAlign.parentCode = data.label;
res.data.items.forEach((item, index) => {
arr.push({
pid: item.pid,
code: item.code,
groupid: item.groupid,
label: item.name,
});
});
res.data.items.forEach((item, index) => {
this.tableData.push({
name: item.name,
code: item.code,
description: item.description,
pid: item.pid,
groupid: item.groupid,
isParent: item.isParent,
groupname: item.groupname,
pname: data.label,
});
});
this.setTree[index].children = arr;
loading.close();
});
}
},
handleOpen(key, keyPath) {
console.log(key, keyPath);
},
handleClose(key, keyPath) {
console.log(key, keyPath);
},
},
};
</script>
<style lang="scss">
.main {
width: 100%;
height: 100vh;
padding: 0;
margin: 0;
}
.header {
height: 60px;
padding: 0;
background: #1f212c;
}
.left {
height: 100vh;
background: #ffffff;
}
.headerTitle {
height: 48px;
background: #0061f7;
font-size: 18px;
font-weight: bold;
line-height: 48px;
color: #ffffff;
padding: 0 17px;
img {
width: 36px;
margin-right: 5px;
}
}
.title {
padding-left: 16px;
font-size: 14px;
}
.tree {
height: calc(100% - 48px);
overflow: auto;
width: 100%;
background-color: #ffffff;
opacity: 1;
}
.el-main {
margin: 0;
padding: 0;
height: 100vh;
border-top: none;
}
.mainHeader {
height: 48px;
background: #0061f7;
}
.mainTitle {
width: 168px;
height: 48px;
background: linear-gradient(180deg, #0061f7 0%, #0061f7 100%);
opacity: 1;
text-align: center;
line-height: 56px;
}
.mainTitle span {
font-size: 15px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 20px;
color: #ffffff;
}
.leftTree {
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 19px;
color: #333333;
}
.el-icon-folder:before {
font-size: 18px;
}
.el-tree-node__label {
font-weight: bold;
font-size: 14px;
color: rgb(0, 122, 255);
font-family: Microsoft YaHei;
}
.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
.title {
font-weight: bold;
color: rgb(0, 122, 255) !important;
}
color: rgb(0, 122, 255);
}
.treeitem {
padding-left: 20px;
}
.el-tree-node__content {
height: 52px;
}
.btn {
height: 65px;
line-height: 65px;
margin-left: 24px;
}
.el-table th > .cell {
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 19px;
color: #666666;
}
.el-table th {
background: #dcdcdc;
}
.el-table tr:nth-child(2n) {
background: #dcdcdc;
}
.gwdqcontent {
height: 235px;
overflow: hidden;
overflow-y: auto;
display: block;
width: 780px;
}
.gwdqcontent thead {
display: block;
width: 780px;
}
.gwdqcontent tbody {
height: 190px;
overflow: hidden;
overflow-y: auto;
display: block;
width: 780px;
}
.gwdqcontent th {
width: 120px;
}
.gwdqcontent tbody td {
text-align: center;
width: 120px;
}
.gwdqcontent tbody td:nth-child(1),
.gwdqcontent thead th:nth-child(1) {
width: 60px;
}
.el-table_2_column_11 {
text-align: center;
}
</style>
......@@ -64,12 +64,12 @@ export default {
{
name: "立案单位",
id: "ladwGajgjgdm",
type: "lazyCodeTreeDialog",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
},
{
name: "立案日期",
......@@ -118,12 +118,12 @@ export default {
{
name: "登记单位",
id: "xxdjdwGajgjgdm",
type: "lazyCodeTreeDialog",
type: "codeTreeDialog",
props: [], //字典弹框需要的字段
value: "",
col: "3",
codeOptions: [],
codeTree: "CODE_QGUNIT",
codeTree: "CODE_UNIT",
},
{
......
......@@ -8058,6 +8058,11 @@ sort-keys@^1.0.0:
dependencies:
is-plain-obj "^1.0.0"
sortablejs@1.10.2:
version "1.10.2"
resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290"
integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==
source-list-map@^2.0.0:
version "2.0.1"
resolved "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
......@@ -9080,6 +9085,13 @@ vue@^2.6.11:
resolved "https://registry.npm.taobao.org/vue/download/vue-2.6.12.tgz?cache=0&sync_timestamp=1600441210971&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.12.tgz#f5ebd4fa6bd2869403e29a896aed4904456c9123"
integrity sha1-9evU+mvShpQD4pqJau1JBEVskSM=
vuedraggable@^2.24.3:
version "2.24.3"
resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.24.3.tgz#43c93849b746a24ce503e123d5b259c701ba0d19"
integrity sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==
dependencies:
sortablejs "1.10.2"
vuex-persistedstate@^4.0.0-beta.1:
version "4.0.0"
resolved "https://registry.yarnpkg.com/vuex-persistedstate/-/vuex-persistedstate-4.0.0.tgz#ed82f266ca98c869a2aad9cb9880c2f608c05f3a"
......
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