Compare commits
5 Commits
a5c48d796c
...
main
Author | SHA1 | Date | |
---|---|---|---|
71487ac647 | |||
2b06febd8e | |||
42e9bd894c | |||
820d543f4a | |||
50ff873463 |
@ -3,261 +3,306 @@
|
|||||||
-webkit-background-clip: text;
|
-webkit-background-clip: text;
|
||||||
-webkit-text-fill-color: transparent;
|
-webkit-text-fill-color: transparent;
|
||||||
}
|
}
|
||||||
.homeBox{
|
|
||||||
|
.homeBox {
|
||||||
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
|
|
||||||
|
.home-aside {
|
||||||
|
position: relative;
|
||||||
|
width: 442px;
|
||||||
|
top: 70px;
|
||||||
|
height: 100%;
|
||||||
|
height: calc(100vh - 72px);
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
|
.asideTitle {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: linear-gradient(90deg, #124CB3 0%, rgba(18, 76, 179, 0.23) 77%, rgba(18, 76, 179, 0) 100%);
|
||||||
|
border-radius: 0px 0px 0px 0px;
|
||||||
|
height: 40px;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.asideCnt {
|
||||||
|
height: calc(100% - 40px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside-middle {
|
||||||
|
height: calc(100%/2);
|
||||||
|
padding: 4px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.homeBtn {
|
||||||
|
height: 302px;
|
||||||
|
width: calc(100% - 894px);
|
||||||
|
position: absolute;
|
||||||
|
bottom: 2px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 头部
|
||||||
|
.headBox {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100vh;
|
height: 70px;
|
||||||
.home-aside{
|
background: rgba(0, 0, 0, 0.8);
|
||||||
position: relative;
|
z-index: 2;
|
||||||
width: 442px;
|
|
||||||
top: 70px;
|
.headBoxBg {
|
||||||
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
height: calc(100vh - 72px);
|
background: url("~@/assets/images/home_head.png") no-repeat center center;
|
||||||
overflow: hidden;
|
background-size: 100% 100%;
|
||||||
z-index: 10;
|
height: 151px;
|
||||||
.asideTitle{
|
}
|
||||||
|
|
||||||
|
.top-center {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 2%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
font-size: 56px;
|
||||||
|
letter-spacing: 2px;
|
||||||
|
font-family: "YSBTH";
|
||||||
|
white-space: nowrap;
|
||||||
|
background: linear-gradient(180deg, #FFFFFF 0%, #66B5FF 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent;
|
||||||
|
text-shadow: 4px 4px 4px rgba(54, 255, 243, 0.15);
|
||||||
|
}
|
||||||
|
|
||||||
|
.topBtn {
|
||||||
|
display: flex;
|
||||||
|
position: absolute;
|
||||||
|
top: 22px;
|
||||||
|
|
||||||
|
.topBtn-item {
|
||||||
|
width: 190px;
|
||||||
|
height: 38px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: center;
|
||||||
padding: 0 10px;
|
background: url("~@/assets/images/home_btns.png") no-repeat center center;
|
||||||
box-sizing: border-box;
|
|
||||||
background: linear-gradient( 90deg, #124CB3 0%, rgba(18,76,179,0.23) 77%, rgba(18,76,179,0) 100%);
|
|
||||||
border-radius: 0px 0px 0px 0px;
|
|
||||||
height: 40px;
|
|
||||||
.title{
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 16px;
|
|
||||||
color: #FFFFFF;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.asideCnt{
|
|
||||||
height: calc(100% - 40px);
|
|
||||||
}
|
|
||||||
.aside-middle{
|
|
||||||
height: calc(100%/2);
|
|
||||||
padding: 4px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.homeBtn{
|
|
||||||
height: 302px;
|
|
||||||
width: calc(100% - 894px);
|
|
||||||
position: absolute;
|
|
||||||
bottom: 2px;
|
|
||||||
left: 50%;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
}
|
|
||||||
// 头部
|
|
||||||
.headBox {
|
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 70px;
|
|
||||||
background: rgba(0,0,0,0.8);
|
|
||||||
z-index: 2;
|
|
||||||
.headBoxBg{
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: url("~@/assets/images/home_head.png") no-repeat center center;
|
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
height: 151px;
|
font-size: 18px;
|
||||||
}
|
cursor: pointer;
|
||||||
.top-center {
|
|
||||||
position: absolute;
|
span {
|
||||||
left: 50%;
|
|
||||||
top: 2%;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
font-size: 56px;
|
|
||||||
letter-spacing: 2px;
|
|
||||||
font-family: "YSBTH";
|
|
||||||
white-space: nowrap;
|
|
||||||
background: linear-gradient(180deg, #FFFFFF 0%, #66B5FF 100%);
|
|
||||||
-webkit-background-clip: text;
|
|
||||||
-webkit-text-fill-color: transparent;
|
|
||||||
text-shadow: 4px 4px 4px rgba(54, 255, 243, 0.15);
|
|
||||||
}
|
|
||||||
.topBtn {
|
|
||||||
display: flex;
|
|
||||||
position: absolute;
|
|
||||||
top: 22px;
|
|
||||||
.topBtn-item {
|
|
||||||
width: 190px;
|
|
||||||
height: 38px;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
background: url("~@/assets/images/home_btns.png") no-repeat center center;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
font-size: 18px;
|
|
||||||
cursor: pointer;
|
|
||||||
span {
|
|
||||||
font-family: "YSBTH";
|
|
||||||
margin-top: -4px;
|
|
||||||
@include textColor(#a1d6ff, #ffffff);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
.topBtn-left {
|
|
||||||
left: 30px;
|
|
||||||
font-size: 12px;
|
|
||||||
.text {
|
|
||||||
font-family: "YSBTH";
|
font-family: "YSBTH";
|
||||||
color: #0bb7ff;
|
margin-top: -4px;
|
||||||
}
|
|
||||||
.tests {
|
|
||||||
color: #0a99ff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.leftBtn-yjbtn{
|
|
||||||
position: absolute;
|
|
||||||
left: 360px;
|
|
||||||
top: 20px;
|
|
||||||
.leftBtn-item{
|
|
||||||
width: 155px;
|
|
||||||
height: 38px;
|
|
||||||
line-height: 38px;
|
|
||||||
text-align: center;
|
|
||||||
background: url("~@/assets/images/home_btns.png") no-repeat center center;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
font-size: 16px;
|
|
||||||
font-family: "YSBTH";
|
|
||||||
}
|
|
||||||
.btms{
|
|
||||||
@include textColor(#a1d6ff, #ffffff);
|
@include textColor(#a1d6ff, #ffffff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.yjbtnActive{
|
|
||||||
background: url("~@/assets/images/home_btns_active.png") no-repeat center center;
|
}
|
||||||
|
|
||||||
|
.topBtn-left {
|
||||||
|
left: 30px;
|
||||||
|
font-size: 12px;
|
||||||
|
|
||||||
|
.text {
|
||||||
|
font-family: "YSBTH";
|
||||||
|
color: #0bb7ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tests {
|
||||||
|
color: #0a99ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.leftBtn-yjbtn {
|
||||||
|
position: absolute;
|
||||||
|
left: 360px;
|
||||||
|
top: 20px;
|
||||||
|
|
||||||
|
.leftBtn-item {
|
||||||
|
width: 155px;
|
||||||
|
height: 38px;
|
||||||
|
line-height: 38px;
|
||||||
|
text-align: center;
|
||||||
|
background: url("~@/assets/images/home_btns.png") no-repeat center center;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
.btms{
|
font-size: 16px;
|
||||||
|
font-family: "YSBTH";
|
||||||
|
}
|
||||||
|
|
||||||
|
.btms {
|
||||||
|
@include textColor(#a1d6ff, #ffffff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.yjbtnActive {
|
||||||
|
background: url("~@/assets/images/home_btns_active.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
|
||||||
|
.btms {
|
||||||
|
@include textColor(#00ffff, #faff00);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.topBtn-right {
|
||||||
|
right: 270px;
|
||||||
|
top: 22px;
|
||||||
|
|
||||||
|
.topBtn-item {
|
||||||
|
background: url("~@/assets/images/home_btns_right.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.active-topBtn {
|
||||||
|
background: url("~@/assets/images/home_btns_right_active.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
|
||||||
|
span {
|
||||||
@include textColor(#00ffff, #faff00);
|
@include textColor(#00ffff, #faff00);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.topBtn-right {
|
|
||||||
right: 270px;
|
|
||||||
top: 22px;
|
|
||||||
.topBtn-item {
|
|
||||||
background: url("~@/assets/images/home_btns_right.png") no-repeat center
|
|
||||||
center;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
}
|
|
||||||
.active-topBtn {
|
|
||||||
background: url("~@/assets/images/home_btns_right_active.png") no-repeat
|
|
||||||
center center;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
span {
|
|
||||||
@include textColor(#00ffff, #faff00);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.rightIcon {
|
|
||||||
position: absolute;
|
|
||||||
right: 20px;
|
|
||||||
top: 22px;
|
|
||||||
font-size: 17px;
|
|
||||||
z-index: 9;
|
|
||||||
span {
|
|
||||||
color: #0bb7ff;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
img {
|
|
||||||
width: 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 左边
|
|
||||||
.asideL{
|
.rightIcon {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
box-sizing: border-box;
|
right: 20px;
|
||||||
left: 0px;
|
top: 22px;
|
||||||
.asideL-top{
|
font-size: 17px;
|
||||||
width: 100%;
|
|
||||||
height: 141px;
|
|
||||||
background: #052249;
|
|
||||||
}
|
|
||||||
.asideL-Bottom{
|
|
||||||
height: calc(100% - 141px);
|
|
||||||
.commom-aside{
|
|
||||||
height: calc((100%/3) - 6px);
|
|
||||||
margin-top: 7px;
|
|
||||||
background: #052249;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 右边
|
|
||||||
.asideR{
|
|
||||||
position: absolute;
|
|
||||||
right: 0px;
|
|
||||||
.commom-aside-small{
|
|
||||||
height: calc(((100% - 146px) /3) - 6px);
|
|
||||||
background: #052249;
|
|
||||||
margin-top: 9px;
|
|
||||||
}
|
|
||||||
.commom-aside-big{
|
|
||||||
height: calc(((100% - (100% - 146px) /3)/2) - 6px);
|
|
||||||
margin-bottom: 9px;
|
|
||||||
background: #052249;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.home-center{
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
top: 70px;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
width: calc(100% - 890px);
|
|
||||||
height: 80px;
|
|
||||||
z-index: 9;
|
z-index: 9;
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #0bb7ff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 左边
|
||||||
|
.asideL {
|
||||||
|
position: absolute;
|
||||||
|
box-sizing: border-box;
|
||||||
|
left: 0px;
|
||||||
|
|
||||||
|
.asideL-top {
|
||||||
|
width: 100%;
|
||||||
|
height: 141px;
|
||||||
background: #052249;
|
background: #052249;
|
||||||
}
|
}
|
||||||
|
|
||||||
.home-foot-t{
|
.asideL-Bottom {
|
||||||
position: absolute;
|
height: calc(100% - 141px);
|
||||||
left: 50%;
|
|
||||||
bottom: 2px;
|
.commom-aside {
|
||||||
transform: translateX(-50%);
|
height: calc((100%/3) - 6px);
|
||||||
width: calc(100% - 920px);
|
margin-top: 7px;
|
||||||
height: calc((100% - 141px)/3 - 32px);
|
background: #052249;
|
||||||
min-width: 560px;
|
|
||||||
overflow: hidden;
|
|
||||||
z-index: 9;
|
|
||||||
background: url("~@/assets/images/right-1.png") no-repeat center center;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
.comom-title{
|
|
||||||
background: url("~@/assets/images/bg18.png") no-repeat center center;
|
|
||||||
background-size: 100% 100%;
|
|
||||||
.title{
|
|
||||||
font-size: 22px;
|
|
||||||
font-family: 'YSBTH';
|
|
||||||
padding-left: 35px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// 公用
|
|
||||||
.comom-title{
|
// 右边
|
||||||
background: url("~@/assets/images/bg17.png") no-repeat center center;
|
.asideR {
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
|
||||||
|
.commom-aside-small {
|
||||||
|
height: calc(((100% - 146px) /3) - 6px);
|
||||||
|
background: #052249;
|
||||||
|
margin-top: 9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.commom-aside-big {
|
||||||
|
height: calc(((100% - (100% - 146px) /3)/2) - 6px);
|
||||||
|
margin-bottom: 9px;
|
||||||
|
background: #052249;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-center {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 70px;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
width: calc(100% - 890px);
|
||||||
|
z-index: 9;
|
||||||
|
background: #052249;
|
||||||
|
height: calc(100% - (100% - 141px) / 3 - 45px);
|
||||||
|
|
||||||
|
.middle-top {
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.middle-bottom {
|
||||||
|
height: calc(100% - 90px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-foot-t {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
bottom: 2px;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
width: calc(100% - 920px);
|
||||||
|
height: calc((100% - 141px)/3 - 32px);
|
||||||
|
min-width: 560px;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 9;
|
||||||
|
background: url("~@/assets/images/right-1.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
|
||||||
|
.comom-title {
|
||||||
|
background: url("~@/assets/images/bg18.png") no-repeat center center;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
width: 100%;
|
|
||||||
height: 35px;
|
.title {
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 0 10px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
.title{
|
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
font-family: 'YSBTH';
|
font-family: 'YSBTH';
|
||||||
padding-left: 35px;
|
padding-left: 35px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.comom-cnt{
|
}
|
||||||
height: calc(100% - 35px);
|
|
||||||
padding: 4px 10px;
|
// 公用
|
||||||
box-sizing: border-box;
|
.comom-title {
|
||||||
background: url("~@/assets/images/bg_13.png") no-repeat center center;
|
background: url("~@/assets/images/bg17.png") no-repeat center center;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
|
width: 100%;
|
||||||
|
height: 35px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 22px;
|
||||||
|
font-family: 'YSBTH';
|
||||||
|
padding-left: 35px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
.comom-cnt {
|
||||||
|
height: calc(100% - 35px);
|
||||||
|
padding: 4px 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background: url("~@/assets/images/bg_13.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
BIN
src/assets/images/ddtb.png
Normal file
BIN
src/assets/images/ddtb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/xxxxxx.png
Normal file
BIN
src/assets/images/xxxxxx.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
104
src/components/ChooseList/ChooseCl/addPeo.vue
Normal file
104
src/components/ChooseList/ChooseCl/addPeo.vue
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog v-model="showDialog" :destroy-on-close="true" title="新增车辆" @close="close" :close-on-click-modal="false">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" labelWidth="120px" ref="elform" :rules="rules">
|
||||||
|
<template #bqList>
|
||||||
|
<div class="marks pointer" @click="chooseMarksVisible = true">
|
||||||
|
<span style="color: rgb(175 178 184);padding-left: 10px;"
|
||||||
|
v-if="!listQuery.bqList || listQuery.bqList.length == 0">请选择标签</span>
|
||||||
|
<span v-else>
|
||||||
|
<el-tag @close.stop="closeTag(idx)" type="success" closable v-for="(it, idx) in listQuery.bqList"
|
||||||
|
:key="idx">{{ it.bqMc }}</el-tag>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
<template #footer>
|
||||||
|
<div class="flex just-center">
|
||||||
|
<el-button @click="close">取消</el-button>
|
||||||
|
<el-button type="primary" @click="submitForm">确认</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
<ChooseMarks v-model="chooseMarksVisible" @choosed="choosed" :roleIds="roleIds" />
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import ChooseMarks from "@/components/ChooseList/ChooseMarks/index.vue";
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { reactive, ref, getCurrentInstance } from 'vue';
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_BZ_XB } = proxy.$dict("D_BZ_XB"); // 获取字典数据
|
||||||
|
const elform = ref()
|
||||||
|
const roleIds = ref([])
|
||||||
|
const showDialog = ref(false)
|
||||||
|
const chooseMarksVisible = ref(false)
|
||||||
|
const emit = defineEmits(['change'])
|
||||||
|
const listQuery = ref({})
|
||||||
|
const formData = ref([
|
||||||
|
{ label: "车牌号", prop: "hphm", type: "input" },
|
||||||
|
{ label: "车架号", prop: "clCjh", type: "input" },
|
||||||
|
{
|
||||||
|
label: "车辆颜色",
|
||||||
|
prop: "clYs",
|
||||||
|
type: "input",
|
||||||
|
},
|
||||||
|
{ label: "车辆所有人", prop: "clSyr", type: "input" },
|
||||||
|
{ label: "人员身份证", prop: "clSyrsfzh", type: "input" },
|
||||||
|
{ label: "责任单位", prop: "zrSsbmdm", depMc: 'zrSsbmmc', type: "department" },
|
||||||
|
{ label: "管辖单位", prop: "gxSsbmdm", depMc: 'gxSsbmmc', type: "department" },
|
||||||
|
{ label: "管控民警姓名", prop: "gkMjXm", type: "input" },
|
||||||
|
{ label: "管控民警警号", prop: "gkMjJh", type: "input" },
|
||||||
|
{ label: "管控原因", prop: "clLkyy", type: "textarea", width: "100%" },
|
||||||
|
{ label: "车辆照片", prop: "fjdz", type: "upload", width: "100%" },
|
||||||
|
])
|
||||||
|
const rules = reactive({
|
||||||
|
hphm: [{ required: true, message: "请输入车牌号", trigger: "blur" }],
|
||||||
|
clCjh: [{ required: true, message: "请输入车架号", trigger: "blur" }],
|
||||||
|
clYs: [{ required: true, message: "请输入车辆颜色", trigger: "blur" }],
|
||||||
|
clSyr: [{ required: true, message: "请输入车辆所有人", trigger: "blur" }],
|
||||||
|
clSyrsfzh: [{ required: true, message: "请输入人员身份证", trigger: "blur" }],
|
||||||
|
})
|
||||||
|
const init = () => {
|
||||||
|
showDialog.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 选择标签
|
||||||
|
const choosed = (val) => {
|
||||||
|
listQuery.value.bqList = val.map(v => {
|
||||||
|
return { bqZl: v.bqLb, bqId: v.id, bqLx: v.bqLx, bqLb: v.bqLb, bqMc: v.bqMc, bqDm: v.bqDm }
|
||||||
|
});
|
||||||
|
roleIds.value = val.map(v => v.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除数据
|
||||||
|
const closeTag = (idx) => {
|
||||||
|
listQuery.value.bqList.splice(idx, 1)
|
||||||
|
roleIds.value.splice(idx, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
const submitForm = () => {
|
||||||
|
elform.value.submit((val) => {
|
||||||
|
val.id = new Date().getTime()
|
||||||
|
emit('change', val)
|
||||||
|
showDialog.value = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const close = () => {
|
||||||
|
elform.value.reset();
|
||||||
|
listQuery.value.bqList = []
|
||||||
|
roleIds.value = []
|
||||||
|
showDialog.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({ init })
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.marks {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 32px;
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
</style>
|
204
src/components/ChooseList/ChooseCl/index.vue
Normal file
204
src/components/ChooseList/ChooseCl/index.vue
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog width="1400px" :model-value="modelValue" append-to-body @close="closed">
|
||||||
|
<template #title>
|
||||||
|
<span class="mr10 f16">选择布控车辆</span>
|
||||||
|
<el-button type="primary" size="small" @click="zdyaddPerson">添加其他车辆</el-button>
|
||||||
|
</template>
|
||||||
|
<el-form :model="listQuery" :inline="true">
|
||||||
|
<el-form-item label="车牌号">
|
||||||
|
<el-input placeholder="请输入车牌号" v-model="listQuery.hphm" clearable ></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="车架号">
|
||||||
|
<el-input placeholder="请输入车架号" v-model="listQuery.clCjh" clearable ></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="车辆所有人">
|
||||||
|
<el-input placeholder="请输入车辆所有人" v-model="listQuery.clSyr" clearable ></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="success" @click="handleFilter">查询</el-button>
|
||||||
|
<el-button type="info" @click="reset()"> 重置 </el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div class="tabBox" :class="props.Single ? 'tabBoxRadio' : ''" style="margin-top: 0px">
|
||||||
|
<el-table ref="multipleUserRef" :key="keyTabel" v-loading="loading" @selection-change="handleSelectionChange" :data="tableData" border :row-key="keyid" style="width: 100%" height="450">
|
||||||
|
<el-table-column type="selection" width="55" :reserve-selection="true"/>
|
||||||
|
<el-table-column prop="hphm" align="center" label="车牌号"/>
|
||||||
|
<el-table-column prop="clCjh" align="center" label="车架号"/>
|
||||||
|
<el-table-column prop="clYs" align="center" label="车辆颜色"/>
|
||||||
|
<el-table-column prop="clSyr" align="center" label="车辆所有人"/>
|
||||||
|
<el-table-column prop="gxSsbmmc" align="center" label="管辖单位"/>
|
||||||
|
<el-table-column prop="gkMjXm" align="center" label="管控民警"/>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div class="fenye flex just-end " :style="{ top: tableHeight + 'px' }">
|
||||||
|
<el-pagination
|
||||||
|
class="pagination"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
:current-page="listQuery.pageCurrent"
|
||||||
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
:page-size="listQuery.pageSize"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="total"
|
||||||
|
></el-pagination>
|
||||||
|
</div>
|
||||||
|
<template #footer>
|
||||||
|
<div class="flex just-center">
|
||||||
|
<el-button @click="closed">取消</el-button>
|
||||||
|
<el-button type="primary" @click="onComfirm">确认</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<!-- 自定义选添加人 -->
|
||||||
|
<AddPeo ref="addPerson" @change="changeZdy"></AddPeo>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import AddPeo from './addPeo.vue'
|
||||||
|
import { qcckGet} from "@/api/qcckApi.js";
|
||||||
|
import { defineProps, ref ,getCurrentInstance, watch} from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_BZ_XB,D_BZ_MZ } = proxy.$dict("D_BZ_XB","D_BZ_MZ"); //获取字典数据
|
||||||
|
const props = defineProps({
|
||||||
|
modelValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default:false
|
||||||
|
},
|
||||||
|
LeaderType: {
|
||||||
|
type: String,
|
||||||
|
default: ""
|
||||||
|
},
|
||||||
|
//是否单选
|
||||||
|
Single: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
roleIds: {
|
||||||
|
type: Array,
|
||||||
|
default: []
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const loading = ref(false)
|
||||||
|
const total = ref(0);
|
||||||
|
const listQuery = ref({
|
||||||
|
pageCurrent: 1,
|
||||||
|
pageSize: 20
|
||||||
|
});
|
||||||
|
const addPerson = ref()
|
||||||
|
const multipleUserRef = ref(null);
|
||||||
|
const multipleSelectionUser = ref([]);
|
||||||
|
const tableData = ref([]);
|
||||||
|
const emits = defineEmits(["update:modelValue", "choosed","choosedAdd"]);
|
||||||
|
const keyTabel = ref(0)
|
||||||
|
const keyid = (row) => {
|
||||||
|
return row.id;
|
||||||
|
};
|
||||||
|
|
||||||
|
const closed = () => {
|
||||||
|
emits("update:modelValue", false);
|
||||||
|
};
|
||||||
|
const reset = () => {
|
||||||
|
listQuery.value = { pageCurrent: 1, pageSize: 20, };
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 为用户分配角色
|
||||||
|
const onComfirm = () => {
|
||||||
|
const userList = multipleSelectionUser.value;
|
||||||
|
let list = [];
|
||||||
|
let listId = [];
|
||||||
|
userList.forEach((val) => {
|
||||||
|
if (listId.indexOf(val.id) == -1) {
|
||||||
|
list.push(val);
|
||||||
|
listId.push(val.id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
emits("choosed", list);
|
||||||
|
closed();
|
||||||
|
};
|
||||||
|
|
||||||
|
// 自定义加人
|
||||||
|
const changeZdy = (val) => {
|
||||||
|
emits("choosedAdd", val);
|
||||||
|
closed();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* pageSize 改变触发
|
||||||
|
*/
|
||||||
|
const handleSizeChange = (currentSize) => {
|
||||||
|
listQuery.value.pageSize = currentSize;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* 页码改变触发
|
||||||
|
*/
|
||||||
|
const handleCurrentChange = (currentPage) => {
|
||||||
|
listQuery.value.pageCurrent = currentPage;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
const getListData = () => {
|
||||||
|
keyTabel.value++
|
||||||
|
const params = {...listQuery.value}
|
||||||
|
loading.value = true;
|
||||||
|
qcckGet(params,'/mosty-gsxt/tbGsxtZdcl/selectPage').then(res=>{
|
||||||
|
loading.value = false;
|
||||||
|
tableData.value = res.records || [];
|
||||||
|
total.value = res.total;
|
||||||
|
multipleUser();
|
||||||
|
}).catch(()=>{
|
||||||
|
loading.value = false;
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
//列表回显
|
||||||
|
function multipleUser() {
|
||||||
|
tableData.value.forEach((item) => {
|
||||||
|
multipleUserRef.value.toggleRowSelection(item, false);
|
||||||
|
if (props.roleIds.some((id) => id == item.id)) {
|
||||||
|
multipleUserRef.value.toggleRowSelection(item, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleFilter = () => {
|
||||||
|
listQuery.value.pageCurrent = 1;
|
||||||
|
getListData();
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSelectionChange = (val) => {
|
||||||
|
if (props.Single) {
|
||||||
|
if (val.length > 1) {
|
||||||
|
let del_row = val.shift();
|
||||||
|
multipleUserRef.value.toggleRowSelection(del_row, false);
|
||||||
|
}
|
||||||
|
multipleSelectionUser.value = val;
|
||||||
|
} else {
|
||||||
|
multipleSelectionUser.value = val;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const zdyaddPerson = () => {
|
||||||
|
addPerson.value.init();
|
||||||
|
};
|
||||||
|
|
||||||
|
watch(()=>props.modelValue,val=>{
|
||||||
|
if(val) handleFilter();
|
||||||
|
},{immediate:true})
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "@/assets/css/layout.scss";
|
||||||
|
@import "@/assets/css/element-plus.scss";
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
.tabBoxRadio .el-checkbox__inner {
|
||||||
|
border-radius: 50% !important;
|
||||||
|
}
|
||||||
|
.tabBoxRadio .el-table__header-wrapper .el-checkbox {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
@ -46,11 +46,15 @@ const mMap = ref(null); //地图对象
|
|||||||
const mapUtil = ref(null); //地图工具对象
|
const mapUtil = ref(null); //地图工具对象
|
||||||
const zoomTarget = ref(6);
|
const zoomTarget = ref(6);
|
||||||
|
|
||||||
|
// 定义组件发出的事件
|
||||||
|
const emit = defineEmits(['mapLoaded'])
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
mapid: {
|
mapid: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "mapDiv"
|
default: "mapDiv"
|
||||||
},
|
},
|
||||||
|
|
||||||
//是否显示可以切换地图底图
|
//是否显示可以切换地图底图
|
||||||
isShow: {
|
isShow: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@ -79,13 +83,15 @@ let map;
|
|||||||
let mapLayer;
|
let mapLayer;
|
||||||
let mapLayer1;
|
let mapLayer1;
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
console.log("xxxxxxx");
|
||||||
|
|
||||||
emitter.on("followUp", (res) => {
|
emitter.on("followUp", (res) => {
|
||||||
let box = document.getElementsByClassName("changeMap_box");
|
let box = document.getElementsByClassName("changeMap_box");
|
||||||
if (!box) return;
|
if (!box) return;
|
||||||
box[0].style.right = !res ? "4px" : "398px";
|
box[0].style.right = !res ? "4px" : "398px";
|
||||||
box[0].style.transition = "0.5s";
|
box[0].style.transition = "0.5s";
|
||||||
});
|
});
|
||||||
|
|
||||||
map = new EliMap({
|
map = new EliMap({
|
||||||
id: props.mapid,
|
id: props.mapid,
|
||||||
crs: "EPSG:3857",
|
crs: "EPSG:3857",
|
||||||
@ -110,6 +116,8 @@ onMounted(() => {
|
|||||||
url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
|
url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
|
||||||
})
|
})
|
||||||
zoomTarget.value = map.mapboxGLMap.getZoom();
|
zoomTarget.value = map.mapboxGLMap.getZoom();
|
||||||
|
// 地图加载完成后发出事件
|
||||||
|
emit('mapLoaded')
|
||||||
});
|
});
|
||||||
mapUtil.value = new MapUtil(map);
|
mapUtil.value = new MapUtil(map);
|
||||||
|
|
||||||
@ -253,7 +261,7 @@ const mapSetLayer = (id, source) => {
|
|||||||
|
|
||||||
//获取地图绘制的数据
|
//获取地图绘制的数据
|
||||||
const resFun = (coord, type, flag, data) => {
|
const resFun = (coord, type, flag, data) => {
|
||||||
|
|
||||||
emitter.emit("coordString", {
|
emitter.emit("coordString", {
|
||||||
coord: coord,
|
coord: coord,
|
||||||
type: type,
|
type: type,
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
<!-- 部门department -->
|
<!-- 部门department -->
|
||||||
<template v-else-if="item.type === 'department'">
|
<template v-else-if="item.type === 'department'">
|
||||||
<MOSTY.Department style="width: 100%;" clearable :isAll="item.isAll" @getDepValue="getdep($event, item.depMc)"
|
<MOSTY.Department style="width: 100%;" clearable :isAll="item.isAll" @getDepValue="getdep($event, item.depMc)"
|
||||||
:placeholder="listQuery[item.depMc] || '请选择'" v-model="listQuery[item.prop]" />
|
v-model="listQuery[item.prop]" :placeholder="listQuery[item.depMc] ? listQuery[item.depMc] : '请选择'" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 上传 upload -->
|
<!-- 上传 upload -->
|
||||||
|
@ -130,425 +130,450 @@ export const privateRoutes = [
|
|||||||
/**
|
/**
|
||||||
* 公开路由表
|
* 公开路由表
|
||||||
*/
|
*/
|
||||||
export const publicRoutes = [{
|
export const publicRoutes = [
|
||||||
path: "/oatuh_login",
|
{
|
||||||
component: () => import("@/views/login/oatuh_login") //统一登录
|
path: "/login",
|
||||||
},
|
name: "login",
|
||||||
{
|
component: () => import("@/views/login/index")
|
||||||
path: "/login",
|
},
|
||||||
name: "login",
|
{
|
||||||
component: () => import("@/views/login/index")
|
path: "/",
|
||||||
},
|
name: "home",
|
||||||
{
|
component: () => import("@/views/home/index") //系统登录
|
||||||
path: "/",
|
},
|
||||||
name: "home",
|
{
|
||||||
component: () => import("@/views/home/index") //系统登录
|
path: "/KeyPopulations",
|
||||||
},
|
name: "KeyPopulations",
|
||||||
{
|
component: () => import("@/views/KeyPopulations/index") //系统登录
|
||||||
path: "/KeyPopulations",
|
},
|
||||||
name: "KeyPopulations",
|
{
|
||||||
component: () => import("@/views/KeyPopulations/index") //系统登录
|
path: "/editPassword", // 注意:带有路径“/”的记录中的组件“默认”是一个不返回 Promise 的函数
|
||||||
},
|
component: layout,
|
||||||
{
|
redirect: "/IdentityManage",
|
||||||
path: "/editPassword", // 注意:带有路径“/”的记录中的组件“默认”是一个不返回 Promise 的函数
|
children: [
|
||||||
component: layout,
|
{
|
||||||
redirect: "/IdentityManage",
|
path: "/FourColorWarning",
|
||||||
children: [
|
name: "FourColorWarning",
|
||||||
{
|
meta: { title: "四色预警管理", icon: "article" },
|
||||||
path: "/FourColorWarning",
|
children: [
|
||||||
name: "FourColorWarning",
|
{
|
||||||
meta: { title: "四色预警管理", icon: "article" },
|
path: "/IdentityManage",
|
||||||
children: [
|
name: "IdentityManage",
|
||||||
{
|
component: () =>
|
||||||
path: "/IdentityManage",
|
import(
|
||||||
name: "IdentityManage",
|
"@/views/backOfficeSystem/fourColorManage/IdentityManage/index"
|
||||||
component: () =>
|
),
|
||||||
import(
|
meta: {
|
||||||
"@/views/backOfficeSystem/fourColorManage/IdentityManage/index"
|
title: "身份标签管理",
|
||||||
),
|
icon: "article"
|
||||||
meta: {
|
|
||||||
title: "身份标签管理",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/BehaviorLabels",
|
|
||||||
name: "BehaviorLabels",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/fourColorManage/BehaviorLabels/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "行为标签管理",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/tagManage",
|
|
||||||
name: "tagManage",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/fourColorManage/tagManage/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "标签组合管理",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/IntelligentControl",
|
|
||||||
name: "IntelligentControl",
|
|
||||||
meta: { title: "智能布控", icon: "article" },
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: "/warningControl",
|
|
||||||
name: "warningControl",
|
|
||||||
component: () => import("@/views/backOfficeSystem/IntelligentControl/warningControl/index"),
|
|
||||||
meta: {
|
|
||||||
title: "预警中心",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/DeploymentArea",
|
|
||||||
name: "DeploymentArea",
|
|
||||||
component: () => import("@/views/backOfficeSystem/IntelligentControl/DeploymentArea/index"),
|
|
||||||
meta: {
|
|
||||||
title: "布控区域",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/myControl",
|
|
||||||
name: "myControl",
|
|
||||||
component: () => import("@/views/backOfficeSystem/IntelligentControl/myControl/index"),
|
|
||||||
meta: {
|
|
||||||
title: "我的布控",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/DeploymentAudit",
|
|
||||||
name: "DeploymentAudit",
|
|
||||||
component: () => import("@/views/backOfficeSystem/IntelligentControl/DeploymentAudit/index"),
|
|
||||||
meta: {
|
|
||||||
title: "我的审核",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/ControlApproval",
|
|
||||||
name: "ControlApproval",
|
|
||||||
component: () => import("@/views/backOfficeSystem/IntelligentControl/ControlApproval/index"),
|
|
||||||
meta: {
|
|
||||||
title: "我的审批",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/ResearchJudgment",
|
|
||||||
name: "ResearchJudgment",
|
|
||||||
meta: { title: "线索研判盯办系统", icon: "article" },
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: "/DatAcquisition",
|
|
||||||
name: "DatAcquisition",
|
|
||||||
component: () => import("@/views/backOfficeSystem/ResearchJudgment/DatAcquisition/index"),
|
|
||||||
meta: {
|
|
||||||
title: "情报数据采集",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/MoralAnalysis",
|
|
||||||
name: "MoralAnalysis",
|
|
||||||
component: () => import("@/views/backOfficeSystem/ResearchJudgment/MoralAnalysis/index"),
|
|
||||||
meta: {
|
|
||||||
title: "情报语义分析",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/IntelligenceManagement",
|
|
||||||
name: "IntelligenceManagement",
|
|
||||||
component: () => import("@/views/backOfficeSystem/ResearchJudgment/IntelligenceManagement/index"),
|
|
||||||
meta: {
|
|
||||||
title: "情报管理",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/InformationFlows",
|
|
||||||
name: "InformationFlows",
|
|
||||||
meta: { title: "情报流转", icon: "article" },
|
|
||||||
redirect: "/InformationFlow",
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: "/InstructionInformation",
|
|
||||||
name: "InstructionInformation",
|
|
||||||
component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/InstructionInformation/index"),
|
|
||||||
meta: {
|
|
||||||
title: "指令信息",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/StatisticalAnalysis",
|
|
||||||
name: "StatisticalAnalysis",
|
|
||||||
component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/StatisticalAnalysis/index"),
|
|
||||||
meta: {
|
|
||||||
title: "情报统计分析",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
},
|
||||||
},
|
{
|
||||||
{
|
path: "/BehaviorLabels",
|
||||||
path: "/RecordsOperations",
|
name: "BehaviorLabels",
|
||||||
name: "RecordsOperations",
|
component: () =>
|
||||||
component: () => import("@/views/backOfficeSystem/ResearchJudgment/RecordsOperations/index"),
|
import(
|
||||||
meta: {
|
"@/views/backOfficeSystem/fourColorManage/BehaviorLabels/index"
|
||||||
title: "操作记录",
|
),
|
||||||
icon: "article"
|
meta: {
|
||||||
}
|
title: "行为标签管理",
|
||||||
}
|
icon: "article"
|
||||||
]
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/HumanIntelligence",
|
path: "/tagManage",
|
||||||
name: "HumanIntelligence",
|
name: "tagManage",
|
||||||
meta: { title: "人力情报采集管理系统", icon: "article" },
|
component: () =>
|
||||||
children: [
|
import(
|
||||||
{
|
"@/views/backOfficeSystem/fourColorManage/tagManage/index"
|
||||||
path: "/CollectCrculate",
|
),
|
||||||
name: "CollectCrculate",
|
meta: {
|
||||||
component: () =>
|
title: "标签组合管理",
|
||||||
import(
|
icon: "article"
|
||||||
"@/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index"
|
}
|
||||||
),
|
},
|
||||||
meta: {
|
{
|
||||||
title: "人力情报信息采集流转",
|
path: "/warningControl",
|
||||||
icon: "article"
|
name: "warningControl",
|
||||||
}
|
component: () => import("@/views/backOfficeSystem/IntelligentControl/warningControl/index"),
|
||||||
},
|
meta: {
|
||||||
{
|
title: "预警中心",
|
||||||
path: "/RlStatisticalAnalysis",
|
icon: "article"
|
||||||
name: "RlStatisticalAnalysis",
|
}
|
||||||
component: () =>
|
},
|
||||||
import(
|
{
|
||||||
"@/views/backOfficeSystem/HumanIntelligence/RlStatisticalAnalysis/index"
|
path: "/WarningModel",
|
||||||
),
|
name: "WarningModel",
|
||||||
meta: {
|
component: () =>
|
||||||
title: "人力情报统计分析",
|
import(
|
||||||
icon: "article"
|
"@/views/backOfficeSystem/ExcavationResearch/WarningModel/index"
|
||||||
}
|
),
|
||||||
},
|
meta: {
|
||||||
|
title: "重点人员预警模型",
|
||||||
{
|
icon: "article"
|
||||||
path: "/TaskScheduling",
|
}
|
||||||
name: "TaskScheduling",
|
},
|
||||||
component: () =>
|
]
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/HumanIntelligence/TaskScheduling/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "人力情报信息搜索任务调度",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/ConstructionManagement",
|
|
||||||
name: "ConstructionManagement",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/HumanIntelligence/ConstructionManagement/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "社会信息人员建设管理",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/JobAppraisal",
|
|
||||||
name: "JobAppraisal",
|
|
||||||
component: () => import("@/views/backOfficeSystem/HumanIntelligence/JobAppraisal/index"),
|
|
||||||
meta: {
|
|
||||||
title: "社会员工工作信息考核",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/ExcavationResearch",
|
|
||||||
name: "ExcavationResearch",
|
|
||||||
meta: { title: "重点人发掘研判", icon: "article" },
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: "/PreliminaryExcavations",
|
|
||||||
name: "PreliminaryExcavations",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/ExcavationResearch/PreliminaryExcavations/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "重点人员初步发掘",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/ZdryFjyp",
|
|
||||||
name: "ZdryFjyp",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/ExcavationResearch/ZdryFjyp/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "重点人员深度发掘",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/LandingAudit",
|
|
||||||
name: "LandingAudit",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/ExcavationResearch/LandingAudit/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "重点人员落地审核",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/WarningModel",
|
|
||||||
name: "WarningModel",
|
|
||||||
component: () =>
|
|
||||||
import(
|
|
||||||
"@/views/backOfficeSystem/ExcavationResearch/WarningModel/index"
|
|
||||||
),
|
|
||||||
meta: {
|
|
||||||
title: "重点人员预警模型",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/JudgmentHome",
|
|
||||||
name: "JudgmentHome",
|
|
||||||
redirect: "/ResearchHome",
|
|
||||||
meta: {
|
|
||||||
title: "研判首页",
|
|
||||||
icon: "article"
|
|
||||||
},
|
},
|
||||||
children: [
|
{
|
||||||
{
|
path: "/IntelligentControl",
|
||||||
path: "/ResearchHome",
|
name: "IntelligentControl",
|
||||||
name: "ResearchHome",
|
meta: { title: "智能布控", icon: "article" },
|
||||||
component: () => import("@/views/backOfficeSystem/JudgmentHome/ResearchHome/index"),
|
children: [
|
||||||
meta: {
|
{
|
||||||
title: "专题研判",
|
path: "/DeploymentArea",
|
||||||
icon: "article"
|
name: "DeploymentArea",
|
||||||
|
component: () => import("@/views/backOfficeSystem/IntelligentControl/DeploymentArea/index"),
|
||||||
|
meta: {
|
||||||
|
title: "布控区域",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/myControl",
|
||||||
|
name: "myControl",
|
||||||
|
component: () => import("@/views/backOfficeSystem/IntelligentControl/myControl/index"),
|
||||||
|
meta: {
|
||||||
|
title: "我的布控",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/DeploymentAudit",
|
||||||
|
name: "DeploymentAudit",
|
||||||
|
component: () => import("@/views/backOfficeSystem/IntelligentControl/DeploymentAudit/index"),
|
||||||
|
meta: {
|
||||||
|
title: "我的审核",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/ControlApproval",
|
||||||
|
name: "ControlApproval",
|
||||||
|
component: () => import("@/views/backOfficeSystem/IntelligentControl/ControlApproval/index"),
|
||||||
|
meta: {
|
||||||
|
title: "我的审批",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
]
|
||||||
{
|
|
||||||
path: "/tsypHome",
|
|
||||||
name: "tsypHome",
|
|
||||||
component: () => import("@/views/backOfficeSystem/JudgmentHome/tsypHome/index"),
|
|
||||||
meta: {
|
|
||||||
title: "态势研判",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/MeetingRoom",
|
|
||||||
name: "MeetingRoom",
|
|
||||||
component: () => import("@/views/backOfficeSystem/JudgmentHome/MeetingRoom/index"),
|
|
||||||
meta: {
|
|
||||||
title: "网上会商室",
|
|
||||||
icon: "article"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/DeploymentDisposal",
|
|
||||||
name: "DeploymentDisposal",
|
|
||||||
redirect: "/ResearchHome",
|
|
||||||
meta: {
|
|
||||||
title: "全域布控处置",
|
|
||||||
icon: "article"
|
|
||||||
},
|
},
|
||||||
children: [
|
{
|
||||||
{
|
path: "/ResearchJudgment",
|
||||||
path: "/mpvPeo",
|
name: "ResearchJudgment",
|
||||||
name: "mpvPeo",
|
meta: { title: "线索研判盯办系统", icon: "article" },
|
||||||
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvPeo/index"),
|
children: [
|
||||||
meta: {
|
{
|
||||||
title: "重点人管理",
|
path: "/DatAcquisition",
|
||||||
icon: "article"
|
name: "DatAcquisition",
|
||||||
|
component: () => import("@/views/backOfficeSystem/ResearchJudgment/DatAcquisition/index"),
|
||||||
|
meta: {
|
||||||
|
title: "线索数据采集",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/MoralAnalysis",
|
||||||
|
name: "MoralAnalysis",
|
||||||
|
component: () => import("@/views/backOfficeSystem/ResearchJudgment/MoralAnalysis/index"),
|
||||||
|
meta: {
|
||||||
|
title: "情报语义分析",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/IntelligenceManagement",
|
||||||
|
name: "IntelligenceManagement",
|
||||||
|
component: () => import("@/views/backOfficeSystem/ResearchJudgment/IntelligenceManagement/index"),
|
||||||
|
meta: {
|
||||||
|
title: "线索管理",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/InformationFlows",
|
||||||
|
name: "InformationFlows",
|
||||||
|
meta: { title: "情报流转", icon: "article" },
|
||||||
|
redirect: "/InformationFlow",
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "/InstructionInformation",
|
||||||
|
name: "InstructionInformation",
|
||||||
|
component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/InstructionInformation/index"),
|
||||||
|
meta: {
|
||||||
|
title: "指令信息",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/StatisticalAnalysis",
|
||||||
|
name: "StatisticalAnalysis",
|
||||||
|
component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/StatisticalAnalysis/index"),
|
||||||
|
meta: {
|
||||||
|
title: "情报统计分析",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/RecordsOperations",
|
||||||
|
name: "RecordsOperations",
|
||||||
|
component: () => import("@/views/backOfficeSystem/ResearchJudgment/RecordsOperations/index"),
|
||||||
|
meta: {
|
||||||
|
title: "操作记录",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
]
|
||||||
{
|
},
|
||||||
path: "/mpvPeoSh",
|
{
|
||||||
name: "mpvPeoSh",
|
path: "/HumanIntelligence",
|
||||||
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvPeoSh/index"),
|
name: "HumanIntelligence",
|
||||||
meta: {
|
meta: { title: "人力情报采集管理系统", icon: "article" },
|
||||||
title: "重点人审批",
|
children: [
|
||||||
icon: "article"
|
{
|
||||||
}
|
path: "/CollectCrculate",
|
||||||
},
|
name: "CollectCrculate",
|
||||||
{
|
component: () =>
|
||||||
path: "/mpvGroup",
|
import(
|
||||||
name: "mpvGroup",
|
"@/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index"
|
||||||
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvGroup/index"),
|
),
|
||||||
meta: {
|
meta: {
|
||||||
title: "重点群体管理",
|
title: "人力情报管理",
|
||||||
icon: "article"
|
icon: "article"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/mpvGroupSh",
|
path: "/RlStatisticalAnalysis",
|
||||||
name: "mpvGroupSh",
|
name: "RlStatisticalAnalysis",
|
||||||
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvGroupSh/index"),
|
component: () =>
|
||||||
meta: {
|
import(
|
||||||
title: "重点群体审核",
|
"@/views/backOfficeSystem/HumanIntelligence/RlStatisticalAnalysis/index"
|
||||||
icon: "article"
|
),
|
||||||
}
|
meta: {
|
||||||
},
|
title: "人力情报统计分析",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
]
|
{
|
||||||
},
|
path: "/TaskScheduling",
|
||||||
{
|
name: "TaskScheduling",
|
||||||
path: "/BasicManagement",
|
component: () =>
|
||||||
name: "BasicManagement",
|
import(
|
||||||
meta: {
|
"@/views/backOfficeSystem/HumanIntelligence/TaskScheduling/index"
|
||||||
title: "基础管理",
|
),
|
||||||
icon: "article"
|
meta: {
|
||||||
|
title: "人力情报信息搜索任务调度",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/ConstructionManagement",
|
||||||
|
name: "ConstructionManagement",
|
||||||
|
component: () =>
|
||||||
|
import(
|
||||||
|
"@/views/backOfficeSystem/HumanIntelligence/ConstructionManagement/index"
|
||||||
|
),
|
||||||
|
meta: {
|
||||||
|
title: "社会信息人员建设管理",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/JobAppraisal",
|
||||||
|
name: "JobAppraisal",
|
||||||
|
component: () => import("@/views/backOfficeSystem/HumanIntelligence/JobAppraisal/index"),
|
||||||
|
meta: {
|
||||||
|
title: "社会员工工作信息考核",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// path: "/MakeAcomment",
|
||||||
|
// name: "MakeAcomment",
|
||||||
|
// component: () => import("@/views/backOfficeSystem/MakeAcomment/index"),
|
||||||
|
// meta: {
|
||||||
|
// title: "情报评一评",
|
||||||
|
// icon: "article"
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
]
|
||||||
},
|
},
|
||||||
children: [
|
{
|
||||||
{
|
path: "/ExcavationResearch",
|
||||||
path: "/surveillanceControl",
|
name: "ExcavationResearch",
|
||||||
name: "surveillanceControl",
|
meta: { title: "重点人发掘研判", icon: "article" },
|
||||||
component: () =>
|
children: [
|
||||||
import(
|
{
|
||||||
"@/views/backOfficeSystem/BasicManagement/surveillanceControl/index"
|
path: "/PreliminaryExcavations",
|
||||||
),
|
name: "PreliminaryExcavations",
|
||||||
meta: {
|
component: () =>
|
||||||
title: "布控监视",
|
import(
|
||||||
icon: "article"
|
"@/views/backOfficeSystem/ExcavationResearch/PreliminaryExcavations/index"
|
||||||
|
),
|
||||||
|
meta: {
|
||||||
|
title: "重点人员初步发掘",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/ZdryFjyp",
|
||||||
|
name: "ZdryFjyp",
|
||||||
|
component: () =>
|
||||||
|
import(
|
||||||
|
"@/views/backOfficeSystem/ExcavationResearch/ZdryFjyp/index"
|
||||||
|
),
|
||||||
|
meta: {
|
||||||
|
title: "重点人员深度发掘",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/LandingAudit",
|
||||||
|
name: "LandingAudit",
|
||||||
|
component: () =>
|
||||||
|
import(
|
||||||
|
"@/views/backOfficeSystem/ExcavationResearch/LandingAudit/index"
|
||||||
|
),
|
||||||
|
meta: {
|
||||||
|
title: "重点人员落地审核",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/JudgmentHome",
|
||||||
|
name: "JudgmentHome",
|
||||||
|
redirect: "/ResearchHome",
|
||||||
|
meta: {
|
||||||
|
title: "研判首页",
|
||||||
|
icon: "article"
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "/ResearchHome",
|
||||||
|
name: "ResearchHome",
|
||||||
|
component: () => import("@/views/backOfficeSystem/JudgmentHome/ResearchHome/index"),
|
||||||
|
meta: {
|
||||||
|
title: "专题研判",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/tsypHome",
|
||||||
|
name: "tsypHome",
|
||||||
|
component: () => import("@/views/backOfficeSystem/JudgmentHome/tsypHome/index"),
|
||||||
|
meta: {
|
||||||
|
title: "态势研判",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/MeetingRoom",
|
||||||
|
name: "MeetingRoom",
|
||||||
|
component: () => import("@/views/backOfficeSystem/JudgmentHome/MeetingRoom/index"),
|
||||||
|
meta: {
|
||||||
|
title: "网上会商室",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
]
|
||||||
]
|
},
|
||||||
}
|
{
|
||||||
]
|
path: "/DeploymentDisposal",
|
||||||
}
|
name: "DeploymentDisposal",
|
||||||
|
redirect: "/ResearchHome",
|
||||||
|
meta: {
|
||||||
|
title: "全域布控处置",
|
||||||
|
icon: "article"
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "/mpvPeo",
|
||||||
|
name: "mpvPeo",
|
||||||
|
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvPeo/index"),
|
||||||
|
meta: {
|
||||||
|
title: "重点人管理",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/mpvPeoSh",
|
||||||
|
name: "mpvPeoSh",
|
||||||
|
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvPeoSh/index"),
|
||||||
|
meta: {
|
||||||
|
title: "重点人审批",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/mpvGroup",
|
||||||
|
name: "mpvGroup",
|
||||||
|
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvGroup/index"),
|
||||||
|
meta: {
|
||||||
|
title: "重点群体管理",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/mpvGroupSh",
|
||||||
|
name: "mpvGroupSh",
|
||||||
|
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvGroupSh/index"),
|
||||||
|
meta: {
|
||||||
|
title: "重点群体审核",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/mpvCar",
|
||||||
|
name: "mpvCar",
|
||||||
|
component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvCar/index"),
|
||||||
|
meta: {
|
||||||
|
title: "重点车辆管理",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/BasicManagement",
|
||||||
|
name: "BasicManagement",
|
||||||
|
meta: {
|
||||||
|
title: "基础管理",
|
||||||
|
icon: "article"
|
||||||
|
},
|
||||||
|
children: [
|
||||||
|
// {
|
||||||
|
// path: "/surveillanceControl",
|
||||||
|
// name: "surveillanceControl",
|
||||||
|
// component: () =>
|
||||||
|
// import(
|
||||||
|
// "@/views/backOfficeSystem/BasicManagement/surveillanceControl/index"
|
||||||
|
// ),
|
||||||
|
// meta: {
|
||||||
|
// title: "布控监视",
|
||||||
|
// icon: "article"
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
path: "/experienceShare",
|
||||||
|
name: "experienceShare",
|
||||||
|
component: () =>
|
||||||
|
import(
|
||||||
|
"@/views/backOfficeSystem/BasicManagement/experienceShare/index"
|
||||||
|
),
|
||||||
|
meta: {
|
||||||
|
title: "经验分享",
|
||||||
|
icon: "article"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
|
@ -0,0 +1,109 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">经验分享{{ title }} </span>
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" size="small" :loading="loading" @click="submit">保存</el-button>
|
||||||
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage :formList="formData" v-model="listQuery" ref="elform" :rules="rules">
|
||||||
|
</FormMessage>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
|
import Xslist from '@/components/ChooseList/ChooseXs/index.vue'
|
||||||
|
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance } from "vue";
|
||||||
|
const emit = defineEmits(["updateDate"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dic: Object
|
||||||
|
});
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
|
||||||
|
const rules = reactive({
|
||||||
|
jymc: [
|
||||||
|
{ required: true, message: "请输入经验名称", trigger: "blur" }
|
||||||
|
],
|
||||||
|
fbnr: [
|
||||||
|
{ required: true, message: "请输入经验内容", trigger: "blur" }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
const formData = ref([
|
||||||
|
|
||||||
|
]);
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const loading = ref(false);
|
||||||
|
const elform = ref();
|
||||||
|
const title = ref("");
|
||||||
|
|
||||||
|
// 初始化数据
|
||||||
|
const init = (type, row) => {
|
||||||
|
dialogForm.value = true;
|
||||||
|
title.value = type == "add" ? "新增" : "编辑";
|
||||||
|
// 根据id查询详情
|
||||||
|
if (row) {
|
||||||
|
console.log(row,"xxxxx");
|
||||||
|
formData.value = [
|
||||||
|
{ label: "经验名称", prop: "jymc", type: "input", width: "100%" },
|
||||||
|
{ label: "发布时间", prop: "fbsj", type: "input", width: "50%",disabled:true },
|
||||||
|
{ label: "发布人", prop: "fbr", type: "input", width: "50%",disabled:true },
|
||||||
|
{ label: "经验内容", prop: "fbnr", type: "textarea", width: "100%" },
|
||||||
|
]
|
||||||
|
listQuery.value = row;
|
||||||
|
} else {
|
||||||
|
formData.value = [
|
||||||
|
{ label: "经验名称", prop: "jymc", type: "input", width: "100%" },
|
||||||
|
{ label: "任务内容", prop: "fbnr", type: "textarea", width: "100%" },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const submit = () => {
|
||||||
|
elform.value.submit((data) => {
|
||||||
|
let url = title.value == "新增" ? "/mosty-gsxt/gsxt/jyfx/add" : "/mosty-gsxt/gsxt/jyfx/edit";
|
||||||
|
let params = { ...data };
|
||||||
|
qcckPost(params, url).then(() => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$message({ type: "success", message: title.value + "成功" });
|
||||||
|
emit("updateDate");
|
||||||
|
close();
|
||||||
|
}).catch(()=>{
|
||||||
|
loading.value = false;
|
||||||
|
})
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
listQuery.value = {};
|
||||||
|
loading.value = false;
|
||||||
|
dialogForm.value = false;
|
||||||
|
listQuery.value={}
|
||||||
|
};
|
||||||
|
|
||||||
|
defineExpose({ init });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
|
||||||
|
.boxlist {
|
||||||
|
width: 99%;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
::v-deep .el-textarea__inner {
|
||||||
|
min-height: 550px !important;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,195 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="titleBox">
|
||||||
|
<PageTitle title="经验分享">
|
||||||
|
<el-button type="primary" @click="addEdit('add', '')">
|
||||||
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
|
<span style="vertical-align: middle">新增</span>
|
||||||
|
</el-button>
|
||||||
|
</PageTitle>
|
||||||
|
</div>
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox">
|
||||||
|
<Search
|
||||||
|
:searchArr="searchConfiger"
|
||||||
|
@submit="onSearch"
|
||||||
|
:key="pageData.keyCount"
|
||||||
|
></Search>
|
||||||
|
</div>
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="tabBox">
|
||||||
|
<MyTable
|
||||||
|
:tableData="pageData.tableData"
|
||||||
|
:tableColumn="pageData.tableColumn"
|
||||||
|
:tableHeight="pageData.tableHeight"
|
||||||
|
:key="pageData.keyCount"
|
||||||
|
:tableConfiger="pageData.tableConfiger"
|
||||||
|
:controlsWidth="pageData.controlsWidth"
|
||||||
|
>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #controls="{ row }">
|
||||||
|
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
|
||||||
|
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
|
<Pages
|
||||||
|
@changeNo="changeNo"
|
||||||
|
@changeSize="changeSize"
|
||||||
|
:tableHeight="pageData.tableHeight"
|
||||||
|
:pageConfiger="{
|
||||||
|
...pageData.pageConfiger,
|
||||||
|
total: pageData.total
|
||||||
|
}"
|
||||||
|
></Pages>
|
||||||
|
</div>
|
||||||
|
<!-- 编辑详情 -->
|
||||||
|
<EditAddForm
|
||||||
|
v-if="show"
|
||||||
|
ref="detailDiloag"
|
||||||
|
:dic="{ D_GS_BQ_LX, D_GS_BQ_DJ, D_GS_SSYJ, D_GS_BQ_LB }"
|
||||||
|
@updateDate="getList"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
|
import EditAddForm from "./components/editAddForm.vue";
|
||||||
|
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||||
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
|
const detailDiloag = ref();
|
||||||
|
const show = ref(false);
|
||||||
|
const searchBox = ref(); //搜索框
|
||||||
|
const searchConfiger = ref([
|
||||||
|
{
|
||||||
|
label: "发布人",
|
||||||
|
prop: "fbr",
|
||||||
|
placeholder: "请输入发布人",
|
||||||
|
showType: "input"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "经验标题",
|
||||||
|
prop: "jymc",
|
||||||
|
placeholder: "请输入经验标题",
|
||||||
|
showType: "input"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "发布时间",
|
||||||
|
prop: "startTime",
|
||||||
|
placeholder: "请选择发布时间",
|
||||||
|
showType: "daterange"
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const queryFrom = ref({});
|
||||||
|
const pageData = reactive({
|
||||||
|
tableData: [], //表格数据
|
||||||
|
keyCount: 0,
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "null",
|
||||||
|
loading: false
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
pageConfiger: {
|
||||||
|
pageSize: 20,
|
||||||
|
pageCurrent: 1
|
||||||
|
}, //分页
|
||||||
|
controlsWidth: 160, //操作栏宽度
|
||||||
|
tableColumn: [
|
||||||
|
{
|
||||||
|
label: "发布人",
|
||||||
|
prop: "fbr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "经验名称",
|
||||||
|
prop: "jymc"
|
||||||
|
},{
|
||||||
|
label: "发布时间",
|
||||||
|
prop: "fbsj"
|
||||||
|
},{
|
||||||
|
label: "发布内容",
|
||||||
|
prop: "fbnr",
|
||||||
|
showOverflowTooltip:true
|
||||||
|
},
|
||||||
|
|
||||||
|
]
|
||||||
|
});
|
||||||
|
onMounted(() => {
|
||||||
|
tabHeightFn();
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 搜索
|
||||||
|
const onSearch = (val) => {
|
||||||
|
queryFrom.value = {
|
||||||
|
...val,
|
||||||
|
startTime: val.startTime&&val.startTime.length > 0 ? val.startTime[0] : '',
|
||||||
|
endTime: val.startTime&& val.startTime.length > 0 ? val.startTime[1] : ''
|
||||||
|
};
|
||||||
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
|
||||||
|
const changeNo = (val) => {
|
||||||
|
pageData.pageConfiger.pageCurrent = val;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
const changeSize = (val) => {
|
||||||
|
pageData.pageConfiger.pageSize = val;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
|
||||||
|
const getList = () => {
|
||||||
|
pageData.tableConfiger.loading = true;
|
||||||
|
qcckPost(queryFrom.value, "/mosty-gsxt/gsxt/jyfx/selectPage")
|
||||||
|
.then((res) => {
|
||||||
|
pageData.tableData = res.records;
|
||||||
|
pageData.total = res.total;
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
const delDictItem = (id) => {
|
||||||
|
proxy
|
||||||
|
.$confirm("确定要删除", "警告", { type: "warning" })
|
||||||
|
.then(() => {
|
||||||
|
qcckDelete({}, "/mosty-gsxt/tbGsxtBqzh/" + id).then(() => {
|
||||||
|
proxy.$message({ type: "success", message: "删除成功" });
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
const addEdit = (type, row) => {
|
||||||
|
show.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
detailDiloag.value.init(type, row);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
pageData.tableHeight =
|
||||||
|
window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.el-loading-mask {
|
||||||
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,219 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">{{ title }}重点车辆管理</span>
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" size="small" v-if="!disabled" :loading="loading" @click="submit">保存</el-button>
|
||||||
|
<el-button size="small" @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage :disabled="disabled" v-model="listQuery" :formList="formData" labelWidth="100px" ref="elform"
|
||||||
|
:rules="rules"></FormMessage>
|
||||||
|
<!-- 选择审核人 -->
|
||||||
|
<!-- <div class="ww100 mt20 ml50 mr50">
|
||||||
|
<el-steps direction="vertical" :active="listQuery.wccz" space="500" finish-status="success">
|
||||||
|
<el-step title="发起申请">
|
||||||
|
<template #description>
|
||||||
|
<div class="flex align-center ww100 mt10 mb20">
|
||||||
|
<el-input v-model="listQuery.sqrXm" readonly class="ww20"></el-input>
|
||||||
|
<el-input v-model="listQuery.sqrSsbmmc" readonly class="ww20 ml10 mr10"></el-input>
|
||||||
|
<span class="f12" style="color: #333333">
|
||||||
|
备注发起人和部门根据登陆人自动填写</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-step>
|
||||||
|
<el-step title="审核确认">
|
||||||
|
<template #description>
|
||||||
|
<div class="flex align-center ww100 mt10 mb20 depBox">
|
||||||
|
<span class="mr4">审核部门 : </span>
|
||||||
|
<MOSTY.Department :isAll="true" @getDepValue="getShdep" v-model="listQuery.shSsbmdm" clearable :placeholder="listQuery.shSsbmmc ? listQuery.shSsbmmc : ''" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-step>
|
||||||
|
<el-step title="审批确认">
|
||||||
|
<template #description>
|
||||||
|
<div class="flex align-center ww100 mt10 mb20 depBox">
|
||||||
|
<span lass="mr4">审批部门 : </span>
|
||||||
|
<MOSTY.Department :isAll="true" @getDepValue="getSPdep" v-model="listQuery.spSsbmdm" clearable :placeholder="listQuery.spSsbmmc ? listQuery.spSsbmmc : ''" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-step>
|
||||||
|
</el-steps>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import * as rule from "@/utils/rules.js";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import { getItem } from "@/utils/storage";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
defineExpose,
|
||||||
|
reactive,
|
||||||
|
onMounted,
|
||||||
|
defineEmits,
|
||||||
|
getCurrentInstance,
|
||||||
|
watch
|
||||||
|
} from "vue";
|
||||||
|
const emit = defineEmits(["updateDate"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dic: Object
|
||||||
|
});
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const roleIds = ref([]);
|
||||||
|
const chooseMarksVisible = ref(false);
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const pcsList = ref([]);
|
||||||
|
const rules = reactive({
|
||||||
|
ryXm: [{ required: true, message: "请输入姓名", trigger: "blur" }],
|
||||||
|
...rule.identityCardRule({ validator: true },'rySfzh'), //身份证校验
|
||||||
|
...rule.phoneRule({ validator: true }, "ryLxdh"), // 是否必填 是否进行校验,
|
||||||
|
ryXb: [{ required: true, message: "请选择性别", trigger: "change" }],
|
||||||
|
ryMz: [{ required: true, message: "请选择民族", trigger: "change" }],
|
||||||
|
ryCsrq: [{ required: true, message: "请选择出生日期", trigger: "change" }],
|
||||||
|
ryJg: [{ required: true, message: "请选择籍贯", trigger: "change" }],
|
||||||
|
zdrRyjb: [{ required: true, message: "请选择人员级别", trigger: "change" }],
|
||||||
|
zdrYjdj: [{ required: true, message: "请选择预警等级", trigger: "change" }]
|
||||||
|
});
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const formData = ref([]);
|
||||||
|
watch(() => props.dic,(val) => {
|
||||||
|
formData.value = [
|
||||||
|
{ label: "车牌号", prop: "hphm", type: "input" },
|
||||||
|
{ label: "车架号", prop: "clCjh", type: "input" },
|
||||||
|
{
|
||||||
|
label: "车辆颜色",
|
||||||
|
prop: "clYs",
|
||||||
|
type: "input",
|
||||||
|
},
|
||||||
|
{ label: "车辆所有人", prop: "clSyr", type: "input" },
|
||||||
|
{ label: "人员身份证", prop: "clSyrsfzh", type: "input" },
|
||||||
|
{ label: "责任单位", prop: "zrSsbmdm",depMc:'zrSsbmmc', type: "department" },
|
||||||
|
{ label: "管辖单位", prop: "gxSsbmdm",depMc:'gxSsbmmc', type: "department" },
|
||||||
|
{ label: "管控民警姓名", prop: "gkMjXm", type: "input" },
|
||||||
|
{ label: "管控民警警号", prop: "gkMjJh", type: "input" },
|
||||||
|
{ label: "管控原因", prop: "clLkyy", type: "textarea", width: "100%" },
|
||||||
|
{ label: "车辆照片", prop: "fjdz", type: "upload", width: "100%" },
|
||||||
|
];
|
||||||
|
},
|
||||||
|
{ immediate: true, deep: true }
|
||||||
|
);
|
||||||
|
|
||||||
|
const tableDate = reactive({
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "null",
|
||||||
|
loading: false
|
||||||
|
},
|
||||||
|
controlsWidth: 90, //操作栏宽度
|
||||||
|
keyCount: 0,
|
||||||
|
tableColumn: [
|
||||||
|
{ label: "标签名称", prop: "bqMc" },
|
||||||
|
{ label: "标签代码", prop: "bqDm" },
|
||||||
|
{ label: "标签种类", prop: "bqZl", showSolt: true },
|
||||||
|
{ label: "标签类型", prop: "bqLx", showSolt: true },
|
||||||
|
{ label: "标签类别", prop: "bqLb", showSolt: true }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
const loading = ref(false);
|
||||||
|
const elform = ref();
|
||||||
|
const title = ref("");
|
||||||
|
const showInfo = ref(false);
|
||||||
|
const disabled = ref(false);
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 初始化数据
|
||||||
|
const init = (type, row) => {
|
||||||
|
dialogForm.value = true;
|
||||||
|
title.value = type == "add" ? "新增" : type == "detail" ? "详情" : "编辑";
|
||||||
|
disabled.value = type == "detail" ? true : false;
|
||||||
|
tableDate.tableConfiger.haveControls = type == "detail" ? false : true;
|
||||||
|
setTimeout(() => {
|
||||||
|
showInfo.value = true;
|
||||||
|
}, 5);
|
||||||
|
if (row) getDataById(row.id);
|
||||||
|
};
|
||||||
|
// 根据id查询详情
|
||||||
|
const getDataById = (id) => {
|
||||||
|
qcckGet({id}, "/mosty-gsxt/tbGsxtZdcl/selectByid").then((res) => {
|
||||||
|
listQuery.value = res;
|
||||||
|
listQuery.value.fjdz = listQuery.value.fjdz?.split(",");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const submit = () => {
|
||||||
|
elform.value.submit((data) => {
|
||||||
|
data.fjdz = data.fjdz?.join(",");
|
||||||
|
let url = title.value == "新增" ? "/mosty-gsxt/tbGsxtZdcl/add" : "/mosty-gsxt/tbGsxtZdcl/update";
|
||||||
|
let params = { ...data };
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(params, url).then(() => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$message({ type: "success", message: title.value + "成功" });
|
||||||
|
emit("updateDate");
|
||||||
|
close();
|
||||||
|
}).catch(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
listQuery.value = {};
|
||||||
|
dialogForm.value = false;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
defineExpose({ init });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
|
||||||
|
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||||
|
color: #0072ff;
|
||||||
|
background: rgba(0, 114, 255, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxlist {
|
||||||
|
width: calc(99% - 50px);
|
||||||
|
margin-top: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.depBox {
|
||||||
|
border: 1px solid #e9e9e9;
|
||||||
|
width: 305px;
|
||||||
|
padding: 0 0 0 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
|
||||||
|
::v-deep .el-input__inner {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-cascader .el-input.is-focus .el-input__inner {
|
||||||
|
border-color: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-input__inner:focus {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-input.is-disabled .el-input__inner {
|
||||||
|
border-color: transparent !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,228 @@
|
|||||||
|
<template>
|
||||||
|
<div class="dialog" v-if="dialogForm">
|
||||||
|
<div class="head_box">
|
||||||
|
<span class="title">流线索</span>
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" :loading="loading" @click="submit">保存</el-button>
|
||||||
|
<el-button @click="close">关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form_cnt">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
|
||||||
|
<template #gapdive>
|
||||||
|
<div style="width: 100%; height: 10px" class="mb20">
|
||||||
|
<el-divider content-position="left">基础信息</el-divider>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #gapline>
|
||||||
|
<div style="width: 100%; height: 10px" class="mb20">
|
||||||
|
<el-divider content-position="left">线索内容</el-divider>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #scfj>
|
||||||
|
<div style="width: 100%; padding-left: 50px">
|
||||||
|
<div>
|
||||||
|
上传附件:<span class="f12">(可附电子表格、Word文档、图像、音视频文件)</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<MOSTY.Upload :showBtn="true" :limit="10" v-model="fjdz" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
<el-divider content-position="left"><span class="mr20">相关人员</span>
|
||||||
|
</el-divider>
|
||||||
|
<MyTable :tableData="pageForm.tableData" :tableColumn="pageForm.tableColumn" :tableHeight="pageForm.tableHeight"
|
||||||
|
:key="pageForm.keyCount" :tableConfiger="pageForm.tableConfiger" :controlsWidth="pageForm.controlsWidth">
|
||||||
|
<template #xb="{ row }">
|
||||||
|
<DictTag :value="row.xb" :tag="false" :options="props.dic.D_BZ_XB" />
|
||||||
|
</template>
|
||||||
|
<template #bqList="{ row }">
|
||||||
|
<div v-if="row.bqList">
|
||||||
|
<el-tag type="success" v-for="(it, idx) in row.bqList" :key="idx">{{
|
||||||
|
it.bqMc
|
||||||
|
}}</el-tag>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
defineExpose,
|
||||||
|
reactive,
|
||||||
|
onMounted,
|
||||||
|
defineEmits,
|
||||||
|
getCurrentInstance,
|
||||||
|
nextTick
|
||||||
|
} from "vue";
|
||||||
|
const emit = defineEmits(["change"]);
|
||||||
|
const props = defineProps({
|
||||||
|
dic: Object
|
||||||
|
});
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const dialogForm = ref(false); //弹窗
|
||||||
|
const rules = reactive({
|
||||||
|
xsMc: [{ required: true, message: "请输入线索名称", trigger: "blur" }],
|
||||||
|
xlLx: [{ required: true, message: "请选择线索类型", trigger: "change" }],
|
||||||
|
qbLy: [{ required: true, message: "请选择情报来源", trigger: "change" }]
|
||||||
|
});
|
||||||
|
const formData = ref([
|
||||||
|
{ prop: "gapdive", type: "slot", width: "100%" },
|
||||||
|
{ label: "线索名称", prop: "xsMc", type: "input" },
|
||||||
|
{
|
||||||
|
label: "线索类型",
|
||||||
|
prop: "xlLx",
|
||||||
|
type: "select",
|
||||||
|
options: props.dic.D_GS_XS_LX
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "情报来源",
|
||||||
|
prop: "qbLy",
|
||||||
|
type: "select",
|
||||||
|
options: props.dic.D_GS_XS_LY
|
||||||
|
},
|
||||||
|
{ label: "指向开始时间", prop: "zxkssj", type: "datetime" },
|
||||||
|
{ label: "指向结束时间", prop: "zxjssj", type: "datetime" },
|
||||||
|
{ label: "指向地点", prop: "zxdz", type: "input" },
|
||||||
|
{
|
||||||
|
label: "所属专题",
|
||||||
|
prop: "sszt",
|
||||||
|
type: "select",
|
||||||
|
options: props.dic.D_BZ_SSZT
|
||||||
|
},
|
||||||
|
{ prop: "gapline", type: "slot", width: "100%" },
|
||||||
|
{ prop: "scfj", type: "slot", width: "100%" },
|
||||||
|
{ label: "线索内容", prop: "xsNr", type: "textarea", width: "100%" },
|
||||||
|
{
|
||||||
|
label: "群体类型",
|
||||||
|
prop: "qtlx",
|
||||||
|
type: "select",
|
||||||
|
options: props.dic.D_GS_XS_QTLX
|
||||||
|
},
|
||||||
|
{ label: "群体名称", prop: "qtmc", type: "input" },
|
||||||
|
{ label: "涉及人数", prop: "sjrs", type: "inputNumber" },
|
||||||
|
{ label: "线索报送单位", prop: "ssbmdm", type: "department" }
|
||||||
|
]);
|
||||||
|
const fjdz = ref();
|
||||||
|
const listQuery = ref({}); //表单
|
||||||
|
const loading = ref(false);
|
||||||
|
const elform = ref();
|
||||||
|
const pageForm = reactive({
|
||||||
|
tableData: [],
|
||||||
|
keyCount: 0,
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "null",
|
||||||
|
loading: false,
|
||||||
|
haveControls: false
|
||||||
|
},
|
||||||
|
controlsWidth: 220,
|
||||||
|
tableColumn: [
|
||||||
|
{ label: "姓名", prop: "xm" },
|
||||||
|
{ label: "性别", prop: "xb", showSolt: true },
|
||||||
|
{ label: "身份证号", prop: "sfzh" },
|
||||||
|
{ label: "户籍地", prop: "hjdz" },
|
||||||
|
{ label: "户籍地派出所", prop: "hjdpcs" },
|
||||||
|
{ label: "标签", prop: "bqList", showSolt: true }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
onMounted(() => {
|
||||||
|
tabHeightFn();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 初始化数据
|
||||||
|
const init = (list) => {
|
||||||
|
fjdz.value = [];
|
||||||
|
tabHeightFn();
|
||||||
|
dialogForm.value = true;
|
||||||
|
pageForm.tableData = list.map((it) => {
|
||||||
|
return {
|
||||||
|
xm: it.ryXm,
|
||||||
|
xb: it.ryXb,
|
||||||
|
sfzh: it.rySfzh,
|
||||||
|
hjdz: it.xzdXz,
|
||||||
|
hjdpcs: it.hjdPcsmc,
|
||||||
|
hjdpcsdm: it.hjdPcsdm,
|
||||||
|
bqList: it.bqList || []
|
||||||
|
};
|
||||||
|
});
|
||||||
|
pageForm.keyCount++;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const submit = () => {
|
||||||
|
elform.value.submit((data) => {
|
||||||
|
let params = { ...data, ryList: pageForm.tableData, cjLx: "0" };
|
||||||
|
params.fjdz = fjdz.value.length > 0 ? fjdz.value.join(",") : "";
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(params, "/mosty-gsxt/qbcj/add")
|
||||||
|
.then((res) => {
|
||||||
|
loading.value = false;
|
||||||
|
proxy.$message({ type: "success", message: "成功" });
|
||||||
|
emit("change");
|
||||||
|
close();
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 关闭
|
||||||
|
const close = () => {
|
||||||
|
fjdz.value = [];
|
||||||
|
listQuery.value = {};
|
||||||
|
dialogForm.value = false;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
pageForm.tableHeight = window.innerHeight - 720;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
defineExpose({ init });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
|
||||||
|
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||||
|
color: #0072ff;
|
||||||
|
background: rgba(0, 114, 255, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.boxlist {
|
||||||
|
width: 99%;
|
||||||
|
height: 225px;
|
||||||
|
margin-top: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .avatar-uploader {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list {
|
||||||
|
margin-left: 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list__item-name .el-icon {
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
</style>
|
325
src/views/backOfficeSystem/DeploymentDisposal/mpvCar/index.vue
Normal file
325
src/views/backOfficeSystem/DeploymentDisposal/mpvCar/index.vue
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="titleBox">
|
||||||
|
<PageTitle title="重点车辆管理">
|
||||||
|
<el-popover placement="bottom" :visible="visible" :width="400" trigger="click">
|
||||||
|
<template #reference>
|
||||||
|
<el-button type="primary" @click="(visible = !visible), (visiblefp = false)" size="small">布控申请</el-button>
|
||||||
|
</template>
|
||||||
|
<div class="flex just-center">
|
||||||
|
<el-button size="small" type="primary" v-for="it in D_GS_BK_SQLX" :key="it.dm" @click="handleApplication(it)" >{{ it.zdmc }}</el-button>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
<el-popover placement="bottom" :visible="visiblefp" :width="400" trigger="click">
|
||||||
|
<template #reference>
|
||||||
|
<el-button size="small" type="primary" @click="(visiblefp = !visiblefp), (visible = false)" >指定分配</el-button>
|
||||||
|
</template>
|
||||||
|
<div>
|
||||||
|
<el-input readonly v-model="obj.fpmc" @click="chooseUserVisible = true" placeholder="请选择民警"></el-input>
|
||||||
|
<div class="flex just-center mt10">
|
||||||
|
<el-button @click="(visiblefp = false), (obj = {})" size="small">取消</el-button>
|
||||||
|
<el-button type="primary" @click="handlefp" size="small">分配</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
<el-button size="small" type="primary" @click="handleZxs">转线索</el-button>
|
||||||
|
<el-button size="small" type="primary" @click="handleMove">移交管控</el-button>
|
||||||
|
<el-button type="primary" size="small" @click="addEdit('add', '')">
|
||||||
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
|
<span style="vertical-align: middle">新增</span>
|
||||||
|
</el-button>
|
||||||
|
</PageTitle>
|
||||||
|
</div>
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="tabBox">
|
||||||
|
<MyTable
|
||||||
|
:tableData="pageData.tableData"
|
||||||
|
:tableColumn="pageData.tableColumn"
|
||||||
|
:tableHeight="pageData.tableHeight"
|
||||||
|
:key="pageData.keyCount"
|
||||||
|
:tableConfiger="pageData.tableConfiger"
|
||||||
|
:controlsWidth="pageData.controlsWidth"
|
||||||
|
@chooseData="chooseData"
|
||||||
|
>
|
||||||
|
<template #ryxx="{ row }">
|
||||||
|
<div class="flex">
|
||||||
|
<img src="" alt="" style="width: 80px;height: 90px;" />
|
||||||
|
<ul class="tl ml10" style="flex:1 0 0">
|
||||||
|
<li class="one_text_detail">姓名:{{ row.ryXm }}</li>
|
||||||
|
<li class="flex one_text_detail">性别:<DictTag :tag="false" :value="row.ryXb" :options="D_BZ_XB" /></li>
|
||||||
|
<li class="flex one_text_detail">籍贯:<DictTag :tag="false" :value="row.ryJg" :options="D_BZ_XZQHDM"/></li>
|
||||||
|
<li class="one_text_detail">身份证:{{ row.rySfzh }}</li>
|
||||||
|
<li class="one_text_detail">出生日期:{{ row.ryCsrq }}</li>
|
||||||
|
<li class="flex one_text_detail">民族:<DictTag :tag="false" :value="row.ryMz" :options="D_BZ_MZ" /></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #jzxx="{ row }">
|
||||||
|
<div class="flex one_text_detail">户籍地区划:<DictTag :tag="false" :value="row.hjdQh" :options="D_BZ_XZQHDM" /></div>
|
||||||
|
<div class="flex one_text_detail">户籍派出所:{{ row.hjdPcsmc }}</div>
|
||||||
|
<div class="flex one_text_detail">户籍地详址:{{ row.hjdXz }}</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #bqList="{ row }">
|
||||||
|
<ul >
|
||||||
|
<li class="one_text_detail marks mb4" :key="index" v-for="(item, index) in row.bqList">{{ item.bqMc }}({{ item.bqFz || 0 }} 分) </li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
<template #gxdw="{ row }">
|
||||||
|
<div class="flex one_text_detail">管辖单位:{{ row.gxSsbmmc }}</div>
|
||||||
|
<div class="flex">人员级别:<DictTag :tag="false" :value="row.zdrRyjb" :options="D_GS_ZDR_RYJB"/> </div>
|
||||||
|
<div class="flex one_text_detail">管控原因:{{ row.zdrLkyy }}</div>
|
||||||
|
<div class="flex">管控状态:<DictTag :tag="false" :value="row.zdrBkZt" :options="D_GS_ZDR_BK_ZT" /></div>
|
||||||
|
</template>
|
||||||
|
<template #zdrCzzt="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.zdrCzzt" :options="D_GS_ZDR_CZZT" />
|
||||||
|
</template>
|
||||||
|
<template #zdrZt="{ row }">
|
||||||
|
<DictTag :tag="false" :value="row.zdrZt" :options="D_GS_ZDQT_ZT" />
|
||||||
|
</template>
|
||||||
|
<template #xtSjzt="{ row }">
|
||||||
|
<div> {{ row.xtSjzt == 0 ? "注销" : row.xtSjzt == 1 ? "正常" : "封存" }}</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 操作 -->
|
||||||
|
<template #controls="{ row }">
|
||||||
|
<el-link size="small" type="primary" @click="addEdit('edit', row)" >编辑</el-link>
|
||||||
|
<el-link size="small" type="primary" @click="addEdit('detail', row)" >详情</el-link>
|
||||||
|
<el-link size="small" type="danger" @click="deleteRow(row.id)">删除</el-link>
|
||||||
|
</template>
|
||||||
|
</MyTable>
|
||||||
|
<Pages
|
||||||
|
@changeNo="changeNo"
|
||||||
|
@changeSize="changeSize"
|
||||||
|
:tableHeight="pageData.tableHeight"
|
||||||
|
:pageConfiger="{
|
||||||
|
...pageData.pageConfiger,
|
||||||
|
total: pageData.total
|
||||||
|
}"
|
||||||
|
></Pages>
|
||||||
|
</div>
|
||||||
|
<!-- 详情 -->
|
||||||
|
<AddForm ref="addFormDiloag" @updateDate="getList" :dic="{D_GS_ZDR_RYJB,D_BZ_XB,D_BZ_MZ,D_BZ_XZQHDM,D_GS_ZDR_BK_ZT,D_GS_ZDR_CZZT,D_GS_BQ_ZL,D_GS_BQ_LB,D_GS_BQ_LX,D_GS_ZDR_YJDJ,D_GS_BK_SSJZ}"/>
|
||||||
|
<!-- 选择用户 -->
|
||||||
|
<ChooseUser v-model="chooseUserVisible" @choosedUsers="handleUserSelected" :roleIds="roleIds"/>
|
||||||
|
<!-- 转线索 -->
|
||||||
|
<ZxsForm v-if="showzxs" ref="zxsDilof" @change="getList" :dic="{D_BZ_SF,D_BZ_XB,D_GS_XS_LY,D_BZ_SSZT,D_GS_XS_LX,D_GS_XS_QTLX }"></ZxsForm>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import ChooseUser from "@/components/ChooseList/ChooseUser/index.vue";
|
||||||
|
import ZxsForm from "./components/zxsForm.vue";
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
|
import AddForm from "./components/addForm.vue";
|
||||||
|
import { qcckGet, qcckPost,qcckDelete } from "@/api/qcckApi.js";
|
||||||
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_GS_ZDQT_ZT,D_GS_ZDR_RYJB, D_BZ_XB, D_BZ_MZ, D_BZ_XZQHDM, D_GS_ZDR_BK_ZT, D_GS_ZDR_CZZT, D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_BK_SQLX, D_BZ_SF, D_GS_XS_LY, D_BZ_SSZT, D_GS_XS_LX, D_GS_XS_QTLX } = proxy.$dict("D_GS_ZDQT_ZT","D_GS_ZDR_RYJB","D_BZ_XB","D_BZ_MZ","D_BZ_XZQHDM","D_GS_ZDR_BK_ZT","D_GS_ZDR_CZZT","D_GS_BQ_ZL","D_GS_BQ_LB","D_GS_BQ_LX","D_GS_ZDR_YJDJ","D_GS_BK_SSJZ","D_GS_BK_SQLX","D_BZ_SF","D_GS_XS_LY","D_BZ_SSZT","D_GS_XS_LX","D_GS_XS_QTLX");
|
||||||
|
const obj = ref({});
|
||||||
|
const showzxs = ref(false);
|
||||||
|
const zxsDilof = ref();
|
||||||
|
const show = ref(false);
|
||||||
|
const addFormDiloag = ref();
|
||||||
|
const searchBox = ref(); //搜索框
|
||||||
|
const chooseUserVisible = ref(false); //审批流程
|
||||||
|
const ids = ref([]);
|
||||||
|
const choosList = ref([]);
|
||||||
|
const visible = ref(false);
|
||||||
|
const visiblefp = ref(false);
|
||||||
|
const searchConfiger = ref([
|
||||||
|
{
|
||||||
|
label: "姓名",
|
||||||
|
prop: "ryXm",
|
||||||
|
placeholder: "请输入姓名",
|
||||||
|
showType: "input"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "身份证",
|
||||||
|
prop: "rySfzh",
|
||||||
|
placeholder: "请输入身份证",
|
||||||
|
showType: "input"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "户籍地",
|
||||||
|
prop: "hjdXz",
|
||||||
|
placeholder: "请输入户籍地",
|
||||||
|
showType: "input"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "人员级别",
|
||||||
|
prop: "zdrRyjb",
|
||||||
|
placeholder: "请输入人员级别",
|
||||||
|
showType: "select",
|
||||||
|
options: D_GS_ZDR_RYJB
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const queryFrom = ref({});
|
||||||
|
const pageData = reactive({
|
||||||
|
tableData: [],
|
||||||
|
keyCount: 0,
|
||||||
|
tableConfiger: {
|
||||||
|
rowHieght: 61,
|
||||||
|
showSelectType: "checkBox",
|
||||||
|
loading: false
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
pageConfiger: {
|
||||||
|
pageSize: 20,
|
||||||
|
pageCurrent: 1
|
||||||
|
},
|
||||||
|
controlsWidth: 150,
|
||||||
|
tableColumn: [
|
||||||
|
{ label: "车牌号", prop: "hphm",showOverflowTooltip:true },
|
||||||
|
{ label: "车架号", prop: "clCjh" },
|
||||||
|
{ label: "车辆颜色", prop: "clYs",showOverflowTooltip:true},
|
||||||
|
{ label: "车辆所有人", prop: "clSyr" },
|
||||||
|
{ label: "管辖单位", prop: "gxSsbmmc", showSolt: true },
|
||||||
|
{ label: "管控民警姓名", prop: "gkMjXm", showSolt: true },
|
||||||
|
// { label: "状态", prop: "xtSjzt", showSolt: true },
|
||||||
|
// { label: "审核状态", prop: "zdrZt", showSolt: true },
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
tabHeightFn();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 搜索
|
||||||
|
const onSearch = (val) => {
|
||||||
|
queryFrom.value = { ...val };
|
||||||
|
pageData.pageConfiger.pageCurrent = 1;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
|
||||||
|
const changeNo = (val) => {
|
||||||
|
pageData.pageConfiger.pageCurrent = val;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
const changeSize = (val) => {
|
||||||
|
pageData.pageConfiger.pageSize = val;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
|
||||||
|
// 获取列表
|
||||||
|
const getList = () => {
|
||||||
|
pageData.tableConfiger.loading = true;
|
||||||
|
let data = { ...pageData.pageConfiger, ...queryFrom.value };
|
||||||
|
qcckGet(data, "/mosty-gsxt/tbGsxtZdcl/selectPage").then((res) => {
|
||||||
|
pageData.tableData = res.records || [];
|
||||||
|
pageData.total = res.total;
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
}).catch(() => {
|
||||||
|
pageData.tableConfiger.loading = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const chooseData = (data) => {
|
||||||
|
ids.value = Array.isArray(data) ? data.map((item) => item.id) : [];
|
||||||
|
choosList.value = Array.isArray(data) ? data : [];
|
||||||
|
};
|
||||||
|
// 选择申请数据数据
|
||||||
|
const handleApplication = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要布控的重点人");
|
||||||
|
qcckPost({ ids: ids.value }, "/mosty-gsxt/tbGsxtZdry/addBksq").then(() => {
|
||||||
|
ElMessage.success("申请成功");
|
||||||
|
visible.value = false;
|
||||||
|
getList();
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessage.error("布控申请失败");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleUserSelected = (val) => {
|
||||||
|
obj.value.fpmc = val[0].userName;
|
||||||
|
obj.value.fpid = val[0].id;
|
||||||
|
};
|
||||||
|
|
||||||
|
// 处理分配
|
||||||
|
const handlefp = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要布控的重点人");
|
||||||
|
qcckPost({ ids: ids.value, uid: obj.value.fpid },"/mosty-gsxt/tbGsxtZdry/addGkmj").then(() => {
|
||||||
|
ElMessage.success("分配成功");
|
||||||
|
visible.value = false;
|
||||||
|
visiblefp.value = false;
|
||||||
|
getList();
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessage.error("分配失败");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 移交管控
|
||||||
|
const handleMove = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要移交管控的重点群体");
|
||||||
|
proxy.$confirm("是否确定移交?", "警告", { type: "warning" }).then(() => {
|
||||||
|
qcckPost({ ids: ids.value }, "/mosty-gsxt/tbGsxtZdry/addSfyj").then(() => {
|
||||||
|
ElMessage.success("移交管控成功");
|
||||||
|
getList();
|
||||||
|
}).catch(() => {
|
||||||
|
ElMessage.error("移交管控失败");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 转线索
|
||||||
|
const handleZxs = () => {
|
||||||
|
if (ids.value.length === 0) return ElMessage.error("请先选择需要转线索的重点群体");
|
||||||
|
showzxs.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
zxsDilof.value.init(choosList.value);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
//删除操作
|
||||||
|
const deleteRow = (id) => {
|
||||||
|
proxy.$confirm("确定要删除", "警告", { type: "warning" }).then(() => {
|
||||||
|
qcckDelete({}, "/mosty-gsxt/tbGsxtZdry/" + id).then((res) => {
|
||||||
|
ElMessage.success("删除成功");
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//新增编辑
|
||||||
|
const addEdit = (type, row) => {
|
||||||
|
show.value = true;
|
||||||
|
nextTick(()=>{
|
||||||
|
addFormDiloag.value.init(type, row);
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.marks{
|
||||||
|
padding: 0 4px;
|
||||||
|
white-space: nowrap;
|
||||||
|
background: #73acf1;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style>
|
||||||
|
.el-loading-mask {
|
||||||
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
@ -10,7 +10,6 @@
|
|||||||
<el-button size="small" type="primary" v-for="it in D_GS_BK_SQLX" :key="it.dm" @click="handleApplication(it)" >{{ it.zdmc }}</el-button>
|
<el-button size="small" type="primary" v-for="it in D_GS_BK_SQLX" :key="it.dm" @click="handleApplication(it)" >{{ it.zdmc }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
|
|
||||||
<el-popover placement="bottom" :visible="visiblefp" :width="400" trigger="click">
|
<el-popover placement="bottom" :visible="visiblefp" :width="400" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button size="small" type="primary" @click="(visiblefp = !visiblefp), (visible = false)" >指定分配</el-button>
|
<el-button size="small" type="primary" @click="(visiblefp = !visiblefp), (visible = false)" >指定分配</el-button>
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<div class="titleBox">
|
||||||
<PageTitle title="人力情报信息采集流转">
|
<PageTitle title="人力情报数据采集管理">
|
||||||
<el-button type="primary" @click="exportFile">
|
<!-- <el-button type="primary">
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">导出</span>
|
<span style="vertical-align: middle">导出</span>
|
||||||
|
</el-button> -->
|
||||||
|
<el-button type="primary" @click="dologShowFn()">
|
||||||
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
|
<span style="vertical-align: middle">全域搜索</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
</PageTitle>
|
</PageTitle>
|
||||||
</div>
|
</div>
|
||||||
@ -81,12 +85,19 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- 新增 -->
|
<!-- 新增 -->
|
||||||
<AddForm ref="detailDiloag" @change="change" v-if="isShow" :dic="{D_BZ_SF,D_BZ_XB,D_GS_XS_LY,D_BZ_SSZT,D_GS_XS_LX ,D_GS_XS_QTLX}" />
|
<AddForm ref="detailDiloag" @change="change" v-if="isShow" :dic="{D_BZ_SF,D_BZ_XB,D_GS_XS_LY,D_BZ_SSZT,D_GS_XS_LX ,D_GS_XS_QTLX}" />
|
||||||
</div>
|
|
||||||
|
<DialogDragger title="全域搜索" top="30px" v-model="dologShow" coumClass="zdy-model-dialogs" @close="close" width="80%">
|
||||||
|
<iframe style="width: 100%; height: 1000px" src="https://www.baidu.com" frameborder="0">
|
||||||
|
xxxxx
|
||||||
|
</iframe>
|
||||||
|
</DialogDragger>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { download } from "@/utils/request";
|
import { download } from "@/utils/request";
|
||||||
import * as MOSTY from "@/components/MyComponents/index";
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import DialogDragger from "@/views/home/layout/dialogDragger.vue";
|
||||||
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
@ -94,7 +105,6 @@ import Search from "@/components/aboutTable/Search.vue";
|
|||||||
import AddForm from "./components/addForm.vue";
|
import AddForm from "./components/addForm.vue";
|
||||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
import { fa } from "element-plus/es/locale.mjs";
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const {D_GS_XS_CZZT,D_GS_XS_LY, D_BZ_SSZT,D_BZ_SF,D_GS_XS_LX ,D_GS_XS_QTLX,D_BZ_XB,D_BZ_XSSHZT} = proxy.$dict("D_GS_XS_CZZT","D_GS_XS_LY","D_BZ_SSZT","D_BZ_SF","D_GS_XS_LX","D_GS_XS_QTLX","D_BZ_XB","D_BZ_XSSHZT"); //获取字典数据
|
const {D_GS_XS_CZZT,D_GS_XS_LY, D_BZ_SSZT,D_BZ_SF,D_GS_XS_LX ,D_GS_XS_QTLX,D_BZ_XB,D_BZ_XSSHZT} = proxy.$dict("D_GS_XS_CZZT","D_GS_XS_LY","D_BZ_SSZT","D_BZ_SF","D_GS_XS_LX","D_GS_XS_QTLX","D_BZ_XB","D_BZ_XSSHZT"); //获取字典数据
|
||||||
const detailDiloag = ref();
|
const detailDiloag = ref();
|
||||||
@ -232,6 +242,10 @@ const tabHeightFn = () => {
|
|||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
const dologShow = ref(false)
|
||||||
|
const dologShowFn = (val) =>{
|
||||||
|
dologShow.value = true;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -245,11 +259,26 @@ const tabHeightFn = () => {
|
|||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.el-loading-mask {
|
.el-loading-mask {
|
||||||
background: rgba(0, 0, 0, 0.5) !important;
|
background: rgba(0, 0, 0, 0.5) !important;
|
||||||
}
|
}
|
||||||
|
:v-deep .el-dialog{
|
||||||
|
width: 90% !important;
|
||||||
|
}
|
||||||
|
.zdy-model-dialogs {
|
||||||
|
/* background-color: rgb(50, 148, 214); */
|
||||||
|
background: url("~@/assets/images/bg46.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
padding: 8px 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
pointer-events: auto !important;
|
||||||
|
height:calc(100% - 50px);
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -8,157 +8,173 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div class="form_cnt">
|
||||||
<el-form :model="listQuery" :rules="rules" :disabled="disabled" ref="elform" inline :label-width="100" label-position="left">
|
<el-form :model="listQuery" :rules="rules" :disabled="disabled" ref="elform" inline :label-width="100"
|
||||||
<div class="smallTitle">布控信息</div>
|
label-position="left">
|
||||||
<el-form-item prop="bkBt" label="布控标题">
|
<div class="smallTitle">布控信息</div>
|
||||||
<MOSTY.Other v-model="listQuery.bkBt" placeholder="请输入布控标题" clearable />
|
<el-form-item prop="bkBt" label="布控标题">
|
||||||
</el-form-item>
|
<MOSTY.Other v-model="listQuery.bkBt" placeholder="请输入布控标题" clearable />
|
||||||
<el-form-item prop="bkDx" label="布控对象">
|
</el-form-item>
|
||||||
<MOSTY.Select v-model="listQuery.bkDx" @change="shangeDx" :dictEnum="props.dic.D_GS_BK_DX" placeholder="请选择布控对象" clearable />
|
<el-form-item prop="bkDx" label="布控对象">
|
||||||
</el-form-item>
|
<MOSTY.Select v-model="listQuery.bkDx" @change="shangeDx" :dictEnum="props.dic.D_GS_BK_DX"
|
||||||
<div class="ww100 mt10 mb10">
|
placeholder="请选择布控对象" clearable />
|
||||||
<el-button type="primary" @click="handleAddPeo" v-if="!disabled">
|
</el-form-item>
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<div class="ww100 mt10 mb10">
|
||||||
<span style="vertical-align: middle">新增</span>
|
<el-button type="primary" @click="handleAddPeo" v-if="!disabled">
|
||||||
</el-button>
|
<el-icon style="vertical-align: middle">
|
||||||
</div>
|
<CirclePlus />
|
||||||
<div class="relative ww100">
|
</el-icon>
|
||||||
<MyTable
|
<span style="vertical-align: middle">新增</span>
|
||||||
:tableData="listQuery.bkdxList"
|
</el-button>
|
||||||
:tableColumn="tableDate.tableColumn"
|
</div>
|
||||||
:tableHeight="tableDate.tableHeight"
|
<div class="relative ww100">
|
||||||
:key="tableDate.keyCount"
|
<MyTable :tableData="listQuery.bkdxList" :tableColumn="tableDate.tableColumn"
|
||||||
:tableConfiger="tableDate.tableConfiger"
|
:tableHeight="tableDate.tableHeight" :key="tableDate.keyCount" :tableConfiger="tableDate.tableConfiger"
|
||||||
:controlsWidth="tableDate.controlsWidth"
|
:controlsWidth="tableDate.controlsWidth">
|
||||||
>
|
<template #fjZp="{ row }">
|
||||||
<template #fjZp="{row}">
|
<el-image :src="row.fjZp"></el-image>
|
||||||
<el-image :src="row.fjZp"></el-image>
|
</template>
|
||||||
</template>
|
<template #ryXb="{ row }">
|
||||||
<template #ryXb="{ row }">
|
<DictTag :tag="false" :value="row.ryXb" :options="props.dic.D_BZ_XB" />
|
||||||
<DictTag :tag="false" :value="row.ryXb" :options="props.dic.D_BZ_XB" />
|
</template>
|
||||||
</template>
|
<template #bqList="{ row }">
|
||||||
<template #bqList="{ row }">
|
<span v-if="row.bqList">
|
||||||
<span v-if="row.bqList">
|
<span v-for="(it, idx) in row.bqList" :key="idx"> {{ it.bqMc }}、</span>
|
||||||
<span v-for="(it,idx) in row.bqList" :key="idx"> {{ it.bqMc }}、</span>
|
</span>
|
||||||
</span>
|
</template>
|
||||||
</template>
|
<!-- 操作 -->
|
||||||
<!-- 操作 -->
|
<template #controls="{ row }">
|
||||||
<template #controls="{ row }">
|
<el-link type="primary">查看档案</el-link>
|
||||||
<el-link type="primary" >查看档案</el-link>
|
<el-link type="danger" @click="deleteRow(row)">删除</el-link>
|
||||||
<el-link type="danger" @click="deleteRow(row)">删除</el-link>
|
</template>
|
||||||
</template>
|
</MyTable>
|
||||||
</MyTable>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="smallTitle">布控范围</div>
|
<div class="smallTitle">布控范围</div>
|
||||||
<div class="ww100 relative mb10" style="height: 250px;border: 1px solid #dcdfe6;border-radius: 4px;overflow: hidden;">
|
<div class="ww100 relative mb10"
|
||||||
<div class="absolute mapSearch flex">
|
style="height: 250px;border: 1px solid #dcdfe6;border-radius: 4px;overflow: hidden;">
|
||||||
<MOSTY.Select v-model="listQuery.bkqyList" filterable multiple :dictEnum="bkqyArr" style="width:350px" placeholder="请选择布控范围" clearable />
|
<div class="absolute mapSearch flex">
|
||||||
</div>
|
<MOSTY.Select v-model="listQuery.bkqyList" filterable multiple :dictEnum="bkqyArr" style="width:350px"
|
||||||
<GdMap></GdMap>
|
placeholder="请选择布控范围" clearable />
|
||||||
</div>
|
</div>
|
||||||
<el-form-item prop="bkBt" label="布控要素" style="width: 100%;">
|
<GdMap></GdMap>
|
||||||
<div class="flex align-center">
|
</div>
|
||||||
<el-button @click="listQuery.bkYz = it.dm" :type="listQuery.bkYz == it.dm ? 'primary':''" v-for="it in props.dic.D_GS_BK_BKYS" :key="it">{{ it.zdmc }}</el-button>
|
<el-form-item prop="bkBt" label="布控要素" style="width: 100%;">
|
||||||
</div>
|
<div class="flex align-center">
|
||||||
</el-form-item>
|
<el-button @click="listQuery.bkYz = it.dm" :type="listQuery.bkYz == it.dm ? 'primary' : ''"
|
||||||
<div style="width: 100%;" class="mt25">
|
v-for="it in props.dic.D_GS_BK_BKYS" :key="it">{{ it.zdmc }}</el-button>
|
||||||
<el-form-item prop="bkSjKs" label="布控开始时间" label-width="120px">
|
</div>
|
||||||
<MOSTY.Date v-model="listQuery.bkSjKs" type="datetime" format="YYYY-MM-DD HH:mm:ss" placeholder="请选择布控开始时间" clearable />
|
</el-form-item>
|
||||||
</el-form-item>
|
<div style="width: 100%;" class="mt25">
|
||||||
<el-form-item prop="bkSjJs" label="布控结束时间" label-width="120px" >
|
<el-form-item prop="bkSjKs" label="布控开始时间" label-width="120px">
|
||||||
<MOSTY.Date v-model="listQuery.bkSjJs" type="datetime" format="YYYY-MM-DD HH:mm:ss" placeholder="请选择布控结束时间" clearable />
|
<MOSTY.Date v-model="listQuery.bkSjKs" type="datetime" format="YYYY-MM-DD HH:mm:ss" placeholder="请选择布控开始时间"
|
||||||
</el-form-item>
|
clearable />
|
||||||
</div>
|
</el-form-item>
|
||||||
<div style="width: 100%;" class="mt25">
|
<el-form-item prop="bkSjJs" label="布控结束时间" label-width="120px">
|
||||||
<el-form-item prop="czYq" label="处置要求" >
|
<MOSTY.Date v-model="listQuery.bkSjJs" type="datetime" format="YYYY-MM-DD HH:mm:ss" placeholder="请选择布控结束时间"
|
||||||
<MOSTY.Select v-model="listQuery.czYq" :dictEnum="props.dic.D_GS_BK_CZYQ" placeholder="请选择处置要求" clearable />
|
clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="bkDj" label="布控级别" >
|
</div>
|
||||||
<MOSTY.Select v-model="listQuery.bkDj" :dictEnum="props.dic.D_GS_BK_DJ" placeholder="请选择布控级别" clearable />
|
<div style="width: 100%;" class="mt25">
|
||||||
</el-form-item>
|
<el-form-item prop="czYq" label="处置要求">
|
||||||
</div>
|
<MOSTY.Select v-model="listQuery.czYq" :dictEnum="props.dic.D_GS_BK_CZYQ" placeholder="请选择处置要求" clearable />
|
||||||
<div style="width: 100%;" class="mt10">
|
</el-form-item>
|
||||||
<el-form-item prop="bkSy" label="布控事由" style="width: 100%;">
|
<el-form-item prop="bkDj" label="布控级别">
|
||||||
<MOSTY.Other v-model="listQuery.bkSy" placeholder="请输入布控事由" type="textarea" style="width: 100%;" clearable />
|
<MOSTY.Select v-model="listQuery.bkDj" :dictEnum="props.dic.D_GS_BK_DJ" placeholder="请选择布控级别" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%;" class="mt10">
|
<div style="width: 100%;" class="mt10">
|
||||||
<el-form-item prop="bkfj" label="上传附件" style="width: 100%;">
|
<el-form-item prop="bkSy" label="布控事由" style="width: 100%;">
|
||||||
<div>
|
<MOSTY.Other v-model="listQuery.bkSy" placeholder="请输入布控事由" type="textarea" style="width: 100%;"
|
||||||
<MOSTY.Upload :showBtn="true" :limit="10" :isImg="false" :isAll="true" v-model="listQuery.bkfj" />
|
clearable />
|
||||||
<div>支持png、jpg、pdf文件上传</div>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
<div style="width: 100%;" class="mt10">
|
||||||
|
<el-form-item prop="bkfj" label="上传附件" style="width: 100%;">
|
||||||
|
<div>
|
||||||
|
<MOSTY.Upload :showBtn="true" :limit="10" :isImg="false" :isAll="true" v-model="listQuery.bkfj" />
|
||||||
|
<div>支持png、jpg、pdf文件上传</div>
|
||||||
</div>
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="smallTitle">审批信息</div>
|
<div class="smallTitle">审批信息</div>
|
||||||
<el-form-item prop="czJsdwdm" label="处置接收单位" label-width="120px" style="width: 100%;">
|
<el-form-item prop="czJsdwdm" label="处置接收单位" label-width="120px" style="width: 100%;">
|
||||||
<div class="flex align-center ww100">
|
<div class="flex align-center ww100">
|
||||||
<MOSTY.Department v-model="listQuery.czJsdwdm" style="width:260px;margin-right: 10px;" placeholder="请选择处置要求" clearable />
|
<MOSTY.Department v-model="listQuery.czJsdwdm" style="width:260px;margin-right: 10px;" placeholder="请选择处置要求"
|
||||||
<el-radio-group v-model="listQuery.czJsdwlx" class="flex align-center">
|
clearable />
|
||||||
<el-radio :label="it.dm" v-for="(it,idx) in props.dic.D_GS_BK_CZJSDWLX" :key="idx">{{ it.zdmc }}</el-radio>
|
<el-radio-group v-model="listQuery.czJsdwlx" class="flex align-center">
|
||||||
</el-radio-group>
|
<el-radio :label="it.dm" v-for="(it, idx) in props.dic.D_GS_BK_CZJSDWLX" :key="idx">{{ it.zdmc
|
||||||
|
}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
<div class="ww100 mt10 mb20">
|
||||||
|
<el-form-item prop="bkTjfs" label="提醒方式">
|
||||||
|
<el-radio-group v-model="listQuery.bkTjfs" class="flex align-center">
|
||||||
|
<el-radio :label="it.dm" v-for="(it, idx) in props.dic.D_GS_BK_TJFS" :key="idx">{{ it.zdmc }}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item prop="bkSjQs" label="签收时间">
|
||||||
|
<MOSTY.Date v-model="listQuery.bkSjQs" type="datetime" format="YYYY-MM-DD HH:mm:ss" placeholder="请选择签收时间"
|
||||||
|
clearable />
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
<div class="ww100">
|
||||||
|
<el-steps direction="vertical" :active="listQuery.wccz" space="500" finish-status="success">
|
||||||
|
<el-step title="发起申请">
|
||||||
|
<template #description>
|
||||||
|
<div class="flex align-center ww100 mt10 mb20">
|
||||||
|
<el-input v-model="listQuery.bkfqrXm" readonly class="ww20"></el-input>
|
||||||
|
<el-input v-model="listQuery.bkfqrSsbmmc" readonly class="ww20 ml10 mr10"></el-input>
|
||||||
|
<span class="f12" style="color: #333333;"> 备注发起人和部门根据登陆人自动填写</span>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</template>
|
||||||
<div class="ww100 mt10 mb20">
|
</el-step>
|
||||||
<el-form-item prop="bkTjfs" label="提醒方式">
|
<el-step title="审核确认">
|
||||||
<el-radio-group v-model="listQuery.bkTjfs" class="flex align-center">
|
<template #description>
|
||||||
<el-radio :label="it.dm" v-for="(it,idx) in props.dic.D_GS_BK_TJFS" :key="idx">{{ it.zdmc }}</el-radio>
|
<div class="ww100 mt10 mb20 depBox">
|
||||||
</el-radio-group>
|
<el-form-item prop="bkshrSsbmdm" label="审核部门:" label-width="100" style="width: 100%;">
|
||||||
</el-form-item>
|
<MOSTY.Department :isAll="true" v-model="listQuery.bkshrSsbmdm" clearable
|
||||||
<el-form-item prop="bkSjQs" label="签收时间">
|
:placeholder="listQuery.bkshrSsbmmc ? listQuery.bkshrSsbmmc : ''" />
|
||||||
<MOSTY.Date v-model="listQuery.bkSjQs" type="datetime" format="YYYY-MM-DD HH:mm:ss" placeholder="请选择签收时间" clearable />
|
</el-form-item>
|
||||||
</el-form-item>
|
</div>
|
||||||
</div>
|
</template>
|
||||||
<div class="ww100">
|
</el-step>
|
||||||
<el-steps direction="vertical" :active="listQuery.wccz" space="500" finish-status="success">
|
<el-step title="审批确认">
|
||||||
<el-step title="发起申请" >
|
<template #description>
|
||||||
<template #description>
|
<div class="ww100 mt10 mb20 depBox">
|
||||||
<div class="flex align-center ww100 mt10 mb20">
|
<el-form-item prop="bkshrSsbmdm" label="审批部门:" label-width="100" style="width: 100%;">
|
||||||
<el-input v-model="listQuery.bkfqrXm" readonly class="ww20"></el-input>
|
<MOSTY.Department :isAll="true" v-model="listQuery.bksprSsbmdm" clearable
|
||||||
<el-input v-model="listQuery.bkfqrSsbmmc" readonly class="ww20 ml10 mr10"></el-input>
|
:placeholder="listQuery.bksprSsbmmc ? listQuery.bksprSsbmmc : ''" />
|
||||||
<span class="f12" style="color: #333333;"> 备注发起人和部门根据登陆人自动填写</span>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-step>
|
</el-step>
|
||||||
<el-step title="审核确认" >
|
</el-steps>
|
||||||
<template #description>
|
</div>
|
||||||
<div class="ww100 mt10 mb20 depBox">
|
</el-form>
|
||||||
<el-form-item prop="bkshrSsbmdm" label="审核部门:" label-width="100" style="width: 100%;">
|
|
||||||
<MOSTY.Department :isAll="true" v-model="listQuery.bkshrSsbmdm" clearable :placeholder="listQuery.bkshrSsbmmc ? listQuery.bkshrSsbmmc : '' " />
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
<el-step title="审批确认" >
|
|
||||||
<template #description>
|
|
||||||
<div class="ww100 mt10 mb20 depBox">
|
|
||||||
<el-form-item prop="bkshrSsbmdm" label="审批部门:" label-width="100" style="width: 100%;">
|
|
||||||
<MOSTY.Department :isAll="true" v-model="listQuery.bksprSsbmdm" clearable :placeholder="listQuery.bksprSsbmmc ? listQuery.bksprSsbmmc : '' " />
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-step>
|
|
||||||
</el-steps>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 选择布控人员 -->
|
<!-- 选择布控人员 -->
|
||||||
<BkryDialod :modelValue="chooseVisible_RY" @update:modelValue="chooseVisible_RY = $event" @choosed="choosed" @choosedAdd="choosedAdd" :roleIds="roleIds" />
|
<BkryDialod :modelValue="chooseVisible_RY" @update:modelValue="chooseVisible_RY = $event" @choosed="choosed"
|
||||||
|
@choosedAdd="choosedAdd" :roleIds="roleIds" />
|
||||||
|
<!-- 选择车辆布控 -->
|
||||||
|
<BkclDialod :modelValue="chooseVisible_CL" @update:modelValue="chooseVisible_CL = $event" @choosed="choosed"
|
||||||
|
@choosedAdd="choosedAdd" :roleIds="roleIds" />
|
||||||
<!-- 选择布控群体 -->
|
<!-- 选择布控群体 -->
|
||||||
<BkqtDialod :modelValue="chooseVisible_QT" @update:modelValue="chooseVisible_QT = $event" @choosed="choosed" :roleIds="roleIds" />
|
<BkqtDialod :modelValue="chooseVisible_QT" @update:modelValue="chooseVisible_QT = $event" @choosed="choosed"
|
||||||
|
:roleIds="roleIds" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { getItem } from "@/utils/storage";
|
import { getItem } from "@/utils/storage";
|
||||||
import BkryDialod from '@/components/ChooseList/ChooseZdr/index.vue';
|
import BkryDialod from '@/components/ChooseList/ChooseZdr/index.vue';
|
||||||
import BkqtDialod from '@/components/ChooseList/ChooseQt/index.vue';
|
import BkqtDialod from '@/components/ChooseList/ChooseQt/index.vue';
|
||||||
|
import BkclDialod from '@/components/ChooseList/ChooseCl/index.vue';
|
||||||
import GdMap from "@/components/GdMap/index.vue";
|
import GdMap from "@/components/GdMap/index.vue";
|
||||||
import * as MOSTY from "@/components/MyComponents/index";
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import { qcckGet,qcckPost } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, nextTick } from "vue";
|
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, nextTick } from "vue";
|
||||||
const emit = defineEmits(["change"]);
|
const emit = defineEmits(["change"]);
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
@ -168,25 +184,26 @@ const elform = ref()
|
|||||||
const roleIds = ref([]); //角色ID
|
const roleIds = ref([]); //角色ID
|
||||||
const chooseVisible_RY = ref(false); //选择布控人员弹窗
|
const chooseVisible_RY = ref(false); //选择布控人员弹窗
|
||||||
const chooseVisible_QT = ref(false); //选择布控群体弹窗
|
const chooseVisible_QT = ref(false); //选择布控群体弹窗
|
||||||
|
const chooseVisible_CL = ref(false)
|
||||||
const bkqyArr = ref([]); //布控区域
|
const bkqyArr = ref([]); //布控区域
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const dialogForm = ref(false); //弹窗
|
const dialogForm = ref(false); //弹窗
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const addPerson = ref([]) //单独新增的数据
|
const addPerson = ref([]) //单独新增的数据
|
||||||
const listQuery = ref({
|
const listQuery = ref({
|
||||||
bkYz:'01',
|
bkYz: '01',
|
||||||
bkdxList: [],
|
bkdxList: [],
|
||||||
}); //表单数据
|
}); //表单数据
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
bkBt: [{ required: true, message: "请输入布控标题", trigger: "blur" }],
|
bkBt: [{ required: true, message: "请输入布控标题", trigger: "blur" }],
|
||||||
bkDx: [{ required: true, message: "请选择布控对象", trigger: "change" }],
|
bkDx: [{ required: true, message: "请选择布控对象", trigger: "change" }],
|
||||||
bkSjKs: [{ required: true, message: "请选择布控开始时间", trigger: "change" }],
|
bkSjKs: [{ required: true, message: "请选择布控开始时间", trigger: "change" }],
|
||||||
bkSjJs: [{ required: true, message: "请选择布控结束时间", trigger: "change" }],
|
bkSjJs: [{ required: true, message: "请选择布控结束时间", trigger: "change" }],
|
||||||
czJsdwdm: [{ required: true, message: "请选择处置接收单位", trigger: "change" }],
|
czJsdwdm: [{ required: true, message: "请选择处置接收单位", trigger: "change" }],
|
||||||
bkshrSsbmdm: [{ required: true, message: "请选择审核部门", trigger: "change" }],
|
bkshrSsbmdm: [{ required: true, message: "请选择审核部门", trigger: "change" }],
|
||||||
bksprSsbmdm: [{ required: true, message: "请选择审批部门", trigger: "change" }],
|
bksprSsbmdm: [{ required: true, message: "请选择审批部门", trigger: "change" }],
|
||||||
})
|
})
|
||||||
const tableDate = reactive({
|
let tableDate = reactive({
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
tableConfiger: {
|
tableConfiger: {
|
||||||
rowHieght: 61,
|
rowHieght: 61,
|
||||||
@ -200,9 +217,9 @@ const tableDate = reactive({
|
|||||||
}, //分页
|
}, //分页
|
||||||
controlsWidth: 200, //操作栏宽度
|
controlsWidth: 200, //操作栏宽度
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "照片", prop: "fjZp",showSolt:true},
|
{ label: "照片", prop: "fjZp", showSolt: true },
|
||||||
{ label: "姓名", prop: "ryXm" },
|
{ label: "姓名", prop: "ryXm" },
|
||||||
{ label: "性别", prop: "ryXb",showSolt:true },
|
{ label: "性别", prop: "ryXb", showSolt: true },
|
||||||
{ label: "身份证号", prop: "rySfzh" },
|
{ label: "身份证号", prop: "rySfzh" },
|
||||||
{ label: "户籍地", prop: "ryHjd" },
|
{ label: "户籍地", prop: "ryHjd" },
|
||||||
{ label: "现居住地址", prop: "ryXjd" },
|
{ label: "现居住地址", prop: "ryXjd" },
|
||||||
@ -211,124 +228,216 @@ const tableDate = reactive({
|
|||||||
{ label: "车牌号", prop: "clCph" },
|
{ label: "车牌号", prop: "clCph" },
|
||||||
{ label: "车架号", prop: "clCjh" },
|
{ label: "车架号", prop: "clCjh" },
|
||||||
{ label: "特征描述", prop: "qtTzms" },
|
{ label: "特征描述", prop: "qtTzms" },
|
||||||
{ label: "人员标签", prop: "bqList" ,showSolt:true,showOverflowTooltip:true }
|
{ label: "人员标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
const tableColumnList = {
|
||||||
|
'01': [
|
||||||
|
{ label: "照片", prop: "fjZp", showSolt: true },
|
||||||
|
{ label: "姓名", prop: "ryXm" },
|
||||||
|
{ label: "性别", prop: "ryXb", showSolt: true },
|
||||||
|
{ label: "身份证号", prop: "rySfzh" },
|
||||||
|
{ label: "户籍地", prop: "ryHjd" },
|
||||||
|
{ label: "现居住地址", prop: "ryXjd" },
|
||||||
|
{ label: "手机号", prop: "rySjhm" },
|
||||||
|
{ label: "虚拟身份", prop: "qtXnsf" },
|
||||||
|
{ label: "车牌号", prop: "clCph" },
|
||||||
|
{ label: "车架号", prop: "clCjh" },
|
||||||
|
{ label: "特征描述", prop: "qtTzms" },
|
||||||
|
{ label: "人员标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
|
||||||
|
],
|
||||||
|
'02': [
|
||||||
|
{ label: "照片", prop: "fjZp", showSolt: true },
|
||||||
|
{ label: "姓名", prop: "ryXm" },
|
||||||
|
{ label: "性别", prop: "ryXb", showSolt: true },
|
||||||
|
{ label: "身份证号", prop: "rySfzh" },
|
||||||
|
{ label: "户籍地", prop: "ryHjd" },
|
||||||
|
{ label: "现居住地址", prop: "ryXjd" },
|
||||||
|
{ label: "手机号", prop: "rySjhm" },
|
||||||
|
{ label: "虚拟身份", prop: "qtXnsf" },
|
||||||
|
{ label: "车牌号", prop: "clCph" },
|
||||||
|
{ label: "车架号", prop: "clCjh" },
|
||||||
|
{ label: "特征描述", prop: "qtTzms" },
|
||||||
|
{ label: "人员标签", prop: "bqList", showSolt: true, showOverflowTooltip: true }
|
||||||
|
],
|
||||||
|
'03': [
|
||||||
|
{ label: "车牌号", prop: "clCph" },
|
||||||
|
{ label: "车架号", prop: "clCjh" },
|
||||||
|
{ label: "车辆颜色", prop: "clYs" },
|
||||||
|
// { label: "车辆所有人", prop: "clSyr" },
|
||||||
|
// { label: "管辖单位", prop: "gxSsbmmc" },
|
||||||
|
// { label: "管控民警", prop: "gkMjXm" },
|
||||||
|
]
|
||||||
|
}
|
||||||
const title = ref('')
|
const title = ref('')
|
||||||
const disabled = ref(false)
|
const disabled = ref(false)
|
||||||
// 初始化数据
|
// 初始化数据
|
||||||
const init = (type,row) => {
|
const init = (type, row) => {
|
||||||
listQuery.value.bkfj = [];
|
listQuery.value.bkfj = [];
|
||||||
if(type == 'add'){
|
if (type == 'add') {
|
||||||
tableDate.tableConfiger.haveControls = true;
|
tableDate.tableConfiger.haveControls = true;
|
||||||
disabled.value = false;
|
disabled.value = false;
|
||||||
listQuery.value.bkfqrXm = getItem("USERNAME");
|
listQuery.value.bkfqrXm = getItem("USERNAME");
|
||||||
listQuery.value.bkfqrSfzh = getItem("idEntityCard");
|
listQuery.value.bkfqrSfzh = getItem("idEntityCard");
|
||||||
listQuery.value.bkfqrSsbmmc = getItem("deptId")[0].deptName;;
|
listQuery.value.bkfqrSsbmmc = getItem("deptId")[0].deptName;;
|
||||||
listQuery.value.bkfqrSsbmdm = getItem("deptId")[0].deptCode;;
|
listQuery.value.bkfqrSsbmdm = getItem("deptId")[0].deptCode;;
|
||||||
}
|
}
|
||||||
title.value = type == 'add' ? '新增' : type == 'detail' ?'详情':'编辑';
|
title.value = type == 'add' ? '新增' : type == 'detail' ? '详情' : '编辑';
|
||||||
disabled.value = type == 'detail' ? true :false ;
|
disabled.value = type == 'detail' ? true : false;
|
||||||
dialogForm.value = true;
|
dialogForm.value = true;
|
||||||
if(row) tableDate.tableConfiger.haveControls = false;
|
if (row) tableDate.tableConfiger.haveControls = false;
|
||||||
get_bkqy_list(row)
|
get_bkqy_list(row)
|
||||||
};
|
};
|
||||||
|
|
||||||
// 获取布控区域
|
// 获取布控区域
|
||||||
const get_bkqy_list = (row) =>{
|
const get_bkqy_list = (row) => {
|
||||||
qcckGet({},'/mosty-gsxt/tbGsxtBkQy/selectList').then(res=>{
|
qcckGet({}, '/mosty-gsxt/tbGsxtBkQy/selectList').then(res => {
|
||||||
let arr = res || [];
|
let arr = res || [];
|
||||||
bkqyArr.value = arr.map(item=>{
|
bkqyArr.value = arr.map(item => {
|
||||||
return {...item,label:item.qymc,value:item.id}
|
return { ...item, label: item.qymc, value: item.id }
|
||||||
})
|
|
||||||
if(row) getDataById(row.id);
|
|
||||||
})
|
})
|
||||||
|
if (row) getDataById(row.id);
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 根据id获取详情
|
// 根据id获取详情
|
||||||
const getDataById = (id) =>{
|
const getDataById = (id) => {
|
||||||
qcckGet({},'/mosty-gsxt/tbGsxtBk/selectVoById/'+id).then(res=>{
|
qcckGet({}, '/mosty-gsxt/tbGsxtBk/selectVoById/' + id).then(res => {
|
||||||
res.bkfj = res.ossList || [];
|
res.bkfj = res.ossList || [];
|
||||||
res.bkqyList = res.qyList ? res.qyList.map(v=>v.id) : [];
|
res.bkqyList = res.qyList ? res.qyList.map(v => v.id) : [];
|
||||||
listQuery.value = res || {}
|
listQuery.value = res || {}
|
||||||
})
|
|
||||||
|
tableDate.tableColumn =tableColumnList[res.bkDx?res.bkDx:'01']
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const shangeDx = () =>{
|
const shangeDx = () => {
|
||||||
listQuery.value.bkDxxx = '';
|
tableDate.tableColumn =tableColumnList[listQuery.value.bkDx]
|
||||||
listQuery.value.bkdxList = [];
|
listQuery.value.bkDxxx = '';
|
||||||
roleIds.value = [];
|
listQuery.value.bkdxList = [];
|
||||||
addPerson.value = []
|
roleIds.value = [];
|
||||||
|
addPerson.value = []
|
||||||
}
|
}
|
||||||
// 删除数据
|
// 删除数据
|
||||||
const deleteRow = (row) => {
|
const deleteRow = (row) => {
|
||||||
roleIds.value = roleIds.value.filter(id => id != row.id);
|
roleIds.value = roleIds.value.filter(id => id != row.id);
|
||||||
addPerson.value = addPerson.value.filter(it => it.id != row.id);
|
addPerson.value = addPerson.value.filter(it => it.id != row.id);
|
||||||
listQuery.value.bkdxList = listQuery.value.bkdxList.filter(it => it.id != row.id);
|
listQuery.value.bkdxList = listQuery.value.bkdxList.filter(it => it.id != row.id);
|
||||||
}
|
}
|
||||||
// 单独新增的数据
|
// 单独新增的数据
|
||||||
const choosedAdd = (item) =>{
|
const choosedAdd = (item) => {
|
||||||
let obj = { id:item.id, fjZp:item.fjZp, ryXm:item.ryXm, ryXb:item.ryXb, rySfzh:item.rySfzh, ryHjd:item.hjdXz, ryXjd:item.xzdXz, rySjhm:item.ryLxdh, qtXnsf:item.qtXnsf,clCjh:item.clCjh, clCph:item.clCph, qtTzms:item.qtTzms, bqList:item.bqList }
|
console.log(item);
|
||||||
addPerson.value.push(obj) ;//缓存的数据
|
|
||||||
if(!listQuery.value.bkdxList) listQuery.value.bkdxList = [];
|
let obj = {}
|
||||||
listQuery.value.bkdxList.unshift(obj);
|
if (listQuery.value.bkDx!=='03') {
|
||||||
|
obj={ id: item.id, fjZp: item.fjZp, ryXm: item.ryXm, ryXb: item.ryXb, rySfzh: item.rySfzh, ryHjd: item.hjdXz, ryXjd: item.xzdXz, rySjhm: item.ryLxdh, qtXnsf: item.qtXnsf, clCjh: item.clCjh, clCph: item.clCph, qtTzms: item.qtTzms, bqList: item.bqList }
|
||||||
|
|
||||||
|
} else {
|
||||||
|
obj={
|
||||||
|
clCph: item.hphm, clCjh: item.clCjh, clSyr: item.clSyr, clSyrsfzh: item.clSyrsfzh,
|
||||||
|
clYs: item.clYs, gxSsbmmc: item.gxSsbmmc
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
addPerson.value.push(obj);//缓存的数据
|
||||||
|
if (!listQuery.value.bkdxList) listQuery.value.bkdxList = [];
|
||||||
|
listQuery.value.bkdxList.unshift(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 选择重点人
|
// 选择重点人
|
||||||
const choosed = (val) => {
|
const choosed = (val) => {
|
||||||
if(listQuery.value.bkDx == '01'){// 人员
|
console.log(val);
|
||||||
roleIds.value = val.map(it=>it.id);
|
|
||||||
let arr = val.map(item=>{
|
|
||||||
let bqArr = item.bqList || [];
|
|
||||||
let bqs = bqArr.map(v=>{
|
|
||||||
return { bqZl:v.bqZl , bqId:v.bqId, bqLx:v.bqLx, bqLb:v.bqLb, bqMc:v.bqMc, bqDm:v.bqDm }
|
|
||||||
})
|
|
||||||
return { id:item.id, fjZp:item.fjZp, ryXm:item.ryXm, ryXb:item.ryXb, rySfzh:item.rySfzh, ryHjd:item.hjdXz, ryXjd:item.xzdXz, rySjhm:item.ryLxdh, qtXnsf:item.qtXnsf,clCjh:item.clCjh, clCph:item.clCph, qtTzms:item.qtTzms, bqList:bqs }
|
|
||||||
})
|
|
||||||
listQuery.value.bkdxList = [...addPerson.value,...arr];
|
|
||||||
}else{// 群体
|
|
||||||
listQuery.value.bkDxxx = (val.map(it=>it.id)).join(',');
|
|
||||||
let peolist = []
|
|
||||||
val.forEach(item=>{
|
|
||||||
if(item.zdryList) peolist = peolist.concat(item.zdryList)
|
|
||||||
})
|
|
||||||
let brrPeo = peolist.map(item=>{
|
|
||||||
let bqArr = item.bqList || [];
|
|
||||||
let bqs = bqArr.map(v=>{
|
|
||||||
return { bqZl:v.bqZl , bqId:v.bqId, bqLx:v.bqLx, bqLb:v.bqLb, bqMc:v.bqMc, bqDm:v.bqDm }
|
|
||||||
})
|
|
||||||
return { id:item.id, fjZp:item.fjZp, ryXm:item.ryXm, ryXb:item.ryXb, rySfzh:item.rySfzh, ryHjd:item.hjdXz, ryXjd:item.xzdXz, rySjhm:item.ryLxdh, qtXnsf:item.qtXnsf,clCjh:item.clCjh, clCph:item.clCph, qtTzms:item.qtTzms, bqList:bqs }
|
|
||||||
})
|
|
||||||
|
|
||||||
listQuery.value.bkdxList = brrPeo;
|
tableDate.tableColumn =tableColumnList[listQuery.value.bkDx]
|
||||||
}
|
console.log(tableDate.tableColumn);
|
||||||
|
|
||||||
|
if (listQuery.value.bkDx == '01') {// 人员
|
||||||
|
roleIds.value = val.map(it => it.id);
|
||||||
|
let arr = val.map(item => {
|
||||||
|
let bqArr = item.bqList || [];
|
||||||
|
let bqs = bqArr.map(v => {
|
||||||
|
return { bqZl: v.bqZl, bqId: v.bqId, bqLx: v.bqLx, bqLb: v.bqLb, bqMc: v.bqMc, bqDm: v.bqDm }
|
||||||
|
})
|
||||||
|
return { id: item.id, fjZp: item.fjZp, ryXm: item.ryXm, ryXb: item.ryXb, rySfzh: item.rySfzh, ryHjd: item.hjdXz, ryXjd: item.xzdXz, rySjhm: item.ryLxdh, qtXnsf: item.qtXnsf, clCjh: item.clCjh, clCph: item.clCph, qtTzms: item.qtTzms, bqList: bqs }
|
||||||
|
})
|
||||||
|
listQuery.value.bkdxList = [...addPerson.value, ...arr];
|
||||||
|
} else if (listQuery.value.bkDx == '03') {
|
||||||
|
|
||||||
|
roleIds.value = val.map(it => it.id);
|
||||||
|
let arr = val.map(item => {
|
||||||
|
let bqArr = item.bqList || [];
|
||||||
|
let bqs = bqArr.map(v => {
|
||||||
|
return {
|
||||||
|
clCph: v.hphm, clCjh: v.clCjh, clSyr: v.clSyr, clSyrsfzh: v.clSyrsfzh,
|
||||||
|
clYs: v.clYs, gxSsbmmc: v.gxSsbmmc
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
clCph: item.hphm, clCjh: item.clCjh, clSyr: item.clSyr, clSyrsfzh: item.clSyrsfzh,
|
||||||
|
clYs: item.clYs, gxSsbmmc: item.gxSsbmmc, bqList: bqs
|
||||||
|
}
|
||||||
|
})
|
||||||
|
listQuery.value.bkdxList = [...addPerson.value, ...arr];
|
||||||
|
|
||||||
|
}
|
||||||
|
else {// 群体
|
||||||
|
listQuery.value.bkDxxx = (val.map(it => it.id)).join(',');
|
||||||
|
let peolist = []
|
||||||
|
val.forEach(item => {
|
||||||
|
if (item.zdryList) peolist = peolist.concat(item.zdryList)
|
||||||
|
})
|
||||||
|
let brrPeo = peolist.map(item => {
|
||||||
|
let bqArr = item.bqList || [];
|
||||||
|
let bqs = bqArr.map(v => {
|
||||||
|
return { bqZl: v.bqZl, bqId: v.bqId, bqLx: v.bqLx, bqLb: v.bqLb, bqMc: v.bqMc, bqDm: v.bqDm }
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
id: item.id, fjZp: item.fjZp, ryXm: item.ryXm, ryXb: item.ryXb,
|
||||||
|
rySfzh: item.rySfzh, ryHjd: item.hjdXz, ryXjd: item.xzdXz,
|
||||||
|
rySjhm: item.ryLxdh, qtXnsf: item.qtXnsf, clCjh: item.clCjh,
|
||||||
|
clCph: item.clCph, qtTzms: item.qtTzms, bqList: bqs
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
listQuery.value.bkdxList = brrPeo;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 选择人员
|
// 选择人员
|
||||||
const handleAddPeo = () =>{
|
const handleAddPeo = () => {
|
||||||
if(!listQuery.value.bkDx) return proxy.$message({ type: "warning", message: '请选择布控对象' });
|
if (!listQuery.value.bkDx) return proxy.$message({ type: "warning", message: '请选择布控对象' });
|
||||||
listQuery.value.bkDx == '01' ? chooseVisible_RY.value = true : chooseVisible_QT.value = true;
|
switch (listQuery.value.bkDx) {
|
||||||
|
case '01':
|
||||||
|
chooseVisible_RY.value = true
|
||||||
|
break;
|
||||||
|
case '02':
|
||||||
|
chooseVisible_QT.value = true
|
||||||
|
break;
|
||||||
|
case '03':
|
||||||
|
chooseVisible_CL.value = true
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 提交
|
// 提交
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
elform.value.validate((validate) => {
|
elform.value.validate((validate) => {
|
||||||
if(!validate) return;
|
if (!validate) return;
|
||||||
let params = { ...listQuery.value };
|
let params = { ...listQuery.value };
|
||||||
params.bkfj = params.bkfj ? params.bkfj.join(','):'';
|
params.bkfj = params.bkfj ? params.bkfj.join(',') : '';
|
||||||
params.bkdxList = params.bkdxList ? params.bkdxList : [];
|
params.bkdxList = params.bkdxList ? params.bkdxList : [];
|
||||||
params.bkdxList.forEach(item=>{ item.fjZp = item.fjZp ? item.fjZp.join(',') : '' })
|
params.bkdxList.forEach(item => { item.fjZp = item.fjZp ? item.fjZp.join(',') : '' })
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
let url = title.value == '新增' ? "/mosty-gsxt/tbGsxtBk/save" : "/mosty-gsxt/tbGsxtBk/update";
|
let url = title.value == '新增' ? "/mosty-gsxt/tbGsxtBk/save" : "/mosty-gsxt/tbGsxtBk/update";
|
||||||
qcckPost(params, url).then((res) => {
|
qcckPost(params, url).then((res) => {
|
||||||
proxy.$message({ type: "success", message: "布控成功" });
|
proxy.$message({ type: "success", message: "布控成功" });
|
||||||
emit("change");
|
emit("change");
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
close();
|
close();
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -347,50 +456,57 @@ defineExpose({ init });
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "~@/assets/css/layout.scss";
|
@import "~@/assets/css/layout.scss";
|
||||||
@import "~@/assets/css/element-plus.scss";
|
@import "~@/assets/css/element-plus.scss";
|
||||||
.smallTitle{
|
|
||||||
width: 100%;
|
.smallTitle {
|
||||||
font-size: 15px;
|
width: 100%;
|
||||||
line-height: 50px;
|
font-size: 15px;
|
||||||
font-weight: 550;
|
line-height: 50px;
|
||||||
color: #606266;
|
font-weight: 550;
|
||||||
|
color: #606266;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mapSearch{
|
.mapSearch {
|
||||||
left: 10px;
|
left: 10px;
|
||||||
top: 10px;
|
top: 10px;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dialog{
|
.dialog {
|
||||||
::v-deep .el-form-item--default{
|
::v-deep .el-form-item--default {
|
||||||
margin: 0 1% 0 0 !important;
|
margin: 0 1% 0 0 !important;
|
||||||
padding-bottom: 0 !important;
|
padding-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .avatar-uploader{
|
::v-deep .avatar-uploader {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
::v-deep .el-upload--picture-card i{
|
|
||||||
width: 156px;
|
::v-deep .el-upload--picture-card i {
|
||||||
|
width: 156px;
|
||||||
}
|
}
|
||||||
.depBox{
|
|
||||||
border: 1px solid #e9e9e9;
|
.depBox {
|
||||||
width: 305px;
|
border: 1px solid #e9e9e9;
|
||||||
padding: 0 0 0 4px;
|
width: 305px;
|
||||||
border-radius: 4px;
|
padding: 0 0 0 4px;
|
||||||
::v-deep .el-input__inner{
|
border-radius: 4px;
|
||||||
border: none;
|
|
||||||
}
|
::v-deep .el-input__inner {
|
||||||
::v-deep .el-cascader .el-input.is-focus .el-input__inner{
|
border: none;
|
||||||
border-color: transparent !important;
|
}
|
||||||
}
|
|
||||||
::v-deep .el-input__inner:focus {
|
::v-deep .el-cascader .el-input.is-focus .el-input__inner {
|
||||||
box-shadow: none;
|
border-color: transparent !important;
|
||||||
}
|
}
|
||||||
::v-deep .el-input.is-disabled .el-input__inner{
|
|
||||||
border-color: transparent !important;
|
::v-deep .el-input__inner:focus {
|
||||||
}
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-input.is-disabled .el-input__inner {
|
||||||
|
border-color: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -47,7 +47,8 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
|
|||||||
import Pages from "@/components/aboutTable/Pages.vue";
|
import Pages from "@/components/aboutTable/Pages.vue";
|
||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import { qcckPost } from "@/api/qcckApi.js";
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
import {ref,reactive, nextTick,getCurrentInstance} from 'vue';
|
import { ref, reactive, nextTick, getCurrentInstance } from 'vue';
|
||||||
|
import { useRouter,useRoute } from 'vue-router'
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_GS_ZDR_RYJB,D_GS_ZDR_YJDJ} = proxy.$dict("D_GS_ZDR_RYJB","D_GS_ZDR_YJDJ"); //获取字典数据
|
const { D_GS_ZDR_RYJB,D_GS_ZDR_YJDJ} = proxy.$dict("D_GS_ZDR_RYJB","D_GS_ZDR_YJDJ"); //获取字典数据
|
||||||
const showDialog = ref(false)
|
const showDialog = ref(false)
|
||||||
@ -57,6 +58,9 @@ const searchConfiger = ref(
|
|||||||
{ label: "姓名", prop: 'ryXm', placeholder: "请输入姓名", showType: "input"},
|
{ label: "姓名", prop: 'ryXm', placeholder: "请输入姓名", showType: "input"},
|
||||||
{ label: "身份证号", prop: 'rySfzh', placeholder: "请输入身份证号", showType: "input"},
|
{ label: "身份证号", prop: 'rySfzh', placeholder: "请输入身份证号", showType: "input"},
|
||||||
]);
|
]);
|
||||||
|
const emit=defineEmits(['getData'])
|
||||||
|
const router = useRouter()
|
||||||
|
const route=useRoute()
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [], //表格数据
|
tableData: [], //表格数据
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
@ -122,7 +126,9 @@ const getList = () =>{
|
|||||||
|
|
||||||
const close = () =>{
|
const close = () =>{
|
||||||
pageData.tableData = [];
|
pageData.tableData = [];
|
||||||
showDialog.value = false;
|
showDialog.value = false;
|
||||||
|
router.replace(route.query)
|
||||||
|
emit("getData")
|
||||||
}
|
}
|
||||||
|
|
||||||
const init = (val,lxs) =>{
|
const init = (val,lxs) =>{
|
||||||
@ -147,4 +153,4 @@ defineExpose({init})
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -11,30 +11,37 @@
|
|||||||
<!-- 研判类型 -->
|
<!-- 研判类型 -->
|
||||||
<CheckBox :data="checkData.yplxBtn" @changeData="changeData_yplx"></CheckBox>
|
<CheckBox :data="checkData.yplxBtn" @changeData="changeData_yplx"></CheckBox>
|
||||||
</div>
|
</div>
|
||||||
<div ref="searchBox" >
|
<div ref="searchBox">
|
||||||
<Search :searchArr="searchConfiger" @submit="onSearch"> </Search>
|
<Search :searchArr="searchConfiger" @submit="onSearch"> </Search>
|
||||||
</div>
|
</div>
|
||||||
<ul class="cntlsit mb10" v-if="show" v-infinite-scroll="load" :style="{height:listHeight+'px'}" v-loading="loading">
|
<ul class="cntlsit mb10" v-if="show" v-infinite-scroll="load" :style="{ height: listHeight + 'px' }"
|
||||||
<li class="cntItem" @click.stop="lookDeatl(it)" v-for="(it,idx) in list" :key="idx">
|
v-loading="loading">
|
||||||
|
<li class="cntItem" @click.stop="lookDeatl(it)" v-for="(it, idx) in list" :key="idx">
|
||||||
<div class="ww100"><img class="ww100" style="height: 168px;" src="@/assets/images/mxbg.jpg" alt=""></div>
|
<div class="ww100"><img class="ww100" style="height: 168px;" src="@/assets/images/mxbg.jpg" alt=""></div>
|
||||||
<div class="f14 lh24 pl4 pr4 one_text_detail">名称:{{ it.ypMc }}</div>
|
<div class="f14 lh24 pl4 pr4 one_text_detail">名称:{{ it.ypMc }}</div>
|
||||||
<div class="flex ww100 f14 lh24 pl4 pr4 one_text_detail">类型:<DictTag :value="it.ypLx" :tag="false" :options="D_SG_TSYPGZ" /></div>
|
<div class="flex ww100 f14 lh24 pl4 pr4 one_text_detail">类型:
|
||||||
|
<DictTag :value="it.ypLx" :tag="false" :options="D_SG_TSYPGZ" />
|
||||||
|
</div>
|
||||||
<div class="f14 lh24 pl4 pr4 one_text_detail">数量:{{ it.num }}</div>
|
<div class="f14 lh24 pl4 pr4 one_text_detail">数量:{{ it.num }}</div>
|
||||||
<div class="foot">
|
<div class="foot">
|
||||||
<span class="ml10 pointer" @click.stop="handleYp(it)" style="color:#027ff0 ;"><el-icon style="top: 2px;"><Document /></el-icon>报告</span>
|
<span class="ml10 pointer" @click.stop="handleYp(it)" style="color:#027ff0 ;"><el-icon style="top: 2px;">
|
||||||
<span class="ml10 pointer" @click="handleHs(it)" style="color:#f4ac47 ;"><el-icon style="top: 2px;"><Files /></el-icon>会商</span>
|
<Document />
|
||||||
|
</el-icon>报告</span>
|
||||||
|
<span class="ml10 pointer" @click="handleHs(it)" style="color:#f4ac47 ;"><el-icon style="top: 2px;">
|
||||||
|
<Files />
|
||||||
|
</el-icon>会商</span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<div class="ww100 flex just-center">
|
<div class="ww100 flex just-center">
|
||||||
<MOSTY.Empty :show="!loading && list.length <= 0"></MOSTY.Empty>
|
<MOSTY.Empty :show="!loading && list.length <= 0"></MOSTY.Empty>
|
||||||
</div>
|
</div>
|
||||||
<div class="tc ww100 mb4" style="color: #a29f9f;" v-if="total == list.length && total>0">暂时没有数据了!</div>
|
<div class="tc ww100 mb4" style="color: #a29f9f;" v-if="total == list.length && total > 0">暂时没有数据了!</div>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 详情 -->
|
<!-- 详情 -->
|
||||||
<Detail ref="detailForm"></Detail>
|
<Detail ref="detailForm" @getData="getLits"></Detail>
|
||||||
<YpModel v-model="showModel" :textContent="textContent" ></YpModel>
|
<YpModel v-model="showModel" :textContent="textContent"></YpModel>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -45,14 +52,14 @@ import CheckBox from "@/components/checkBox/index.vue";
|
|||||||
import Search from "@/components/aboutTable/Search.vue";
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
import { qcckPost } from "@/api/qcckApi.js";
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
import { useRoute, useRouter } from 'vue-router';
|
import { useRoute, useRouter } from 'vue-router';
|
||||||
import { reactive, ref, onMounted, getCurrentInstance,watch, nextTick } from "vue";
|
import { reactive, ref, onMounted, getCurrentInstance, watch, nextTick } from "vue";
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_SG_SJLY,D_SG_TSYPGZ} = proxy.$dict("D_SG_SJLY","D_SG_TSYPGZ"); //获取字典数据
|
const { D_SG_SJLY, D_SG_TSYPGZ } = proxy.$dict("D_SG_SJLY", "D_SG_TSYPGZ"); //获取字典数据
|
||||||
const searchBox = ref(); //搜索框
|
const searchBox = ref(); //搜索框
|
||||||
const showModel = ref(false);
|
const showModel = ref(false);
|
||||||
const textContent = ref('');
|
const textContent = ref('');
|
||||||
const refBtn = ref();
|
const refBtn = ref();
|
||||||
const show = ref(false)
|
const show = ref(false)
|
||||||
const detailForm = ref()
|
const detailForm = ref()
|
||||||
const listHeight = ref()
|
const listHeight = ref()
|
||||||
@ -60,11 +67,11 @@ const searchConfiger = ref([
|
|||||||
{ label: "研判名称", prop: "ypMc", placeholder: "请输入研判名称", showType: "input" },
|
{ label: "研判名称", prop: "ypMc", placeholder: "请输入研判名称", showType: "input" },
|
||||||
]);
|
]);
|
||||||
const checkData = reactive({
|
const checkData = reactive({
|
||||||
sjlxBtn:{
|
sjlxBtn: {
|
||||||
hasChoose: [],
|
hasChoose: [],
|
||||||
list: []
|
list: []
|
||||||
},
|
},
|
||||||
yplxBtn:{
|
yplxBtn: {
|
||||||
hasChoose: [],
|
hasChoose: [],
|
||||||
list: []
|
list: []
|
||||||
},
|
},
|
||||||
@ -74,25 +81,29 @@ const total = ref(0)
|
|||||||
const list = ref([])
|
const list = ref([])
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const formData = ref({})
|
const formData = ref({})
|
||||||
watch(()=>[D_SG_SJLY.value,D_SG_TSYPGZ.value],val=>{
|
watch(() => [D_SG_SJLY.value, D_SG_TSYPGZ.value], val => {
|
||||||
checkData.sjlxBtn.list = val[0].map(v=>v.zdmc);
|
checkData.sjlxBtn.list = val[0].map(v => v.zdmc);
|
||||||
checkData.yplxBtn.list = val[1].map(v=>v.zdmc);
|
checkData.yplxBtn.list = val[1].map(v => v.zdmc);
|
||||||
checkData.yplxBtn.hasChoose = val[1].map(v=>v.zdmc);
|
checkData.yplxBtn.hasChoose = val[1].map(v => v.zdmc);
|
||||||
},{immediate:true,deep:true});
|
}, { immediate: true, deep: true });
|
||||||
|
const route = useRoute();
|
||||||
onMounted(()=>{
|
onMounted(() => {
|
||||||
show.value = true;
|
show.value = true;
|
||||||
getLits()
|
|
||||||
tabHeightFn();
|
tabHeightFn();
|
||||||
|
if (route.query.id) {
|
||||||
|
lookDeatl(route.query)
|
||||||
|
} else {
|
||||||
|
getLits()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// 数据类型
|
// 数据类型
|
||||||
const changeData_sjly = (val) =>{
|
const changeData_sjly = (val) => {
|
||||||
checkData.sjlxBtn.hasChoose = val;
|
checkData.sjlxBtn.hasChoose = val;
|
||||||
let dms = [];
|
let dms = [];
|
||||||
D_SG_SJLY.value.forEach(item => {
|
D_SG_SJLY.value.forEach(item => {
|
||||||
if(val.includes(item.zdmc)) dms.push(item.dm);
|
if (val.includes(item.zdmc)) dms.push(item.dm);
|
||||||
});
|
});
|
||||||
formData.value.sjLx = dms;
|
formData.value.sjLx = dms;
|
||||||
page.value = 1;
|
page.value = 1;
|
||||||
@ -100,68 +111,70 @@ const changeData_sjly = (val) =>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 研判类型
|
// 研判类型
|
||||||
const changeData_yplx = (val) =>{
|
const changeData_yplx = (val) => {
|
||||||
checkData.yplxBtn.hasChoose = val;
|
checkData.yplxBtn.hasChoose = val;
|
||||||
let dms = [];
|
let dms = [];
|
||||||
D_SG_TSYPGZ.value.forEach(item => {
|
D_SG_TSYPGZ.value.forEach(item => {
|
||||||
if(val.includes(item.zdmc)) dms.push(item.dm);
|
if (val.includes(item.zdmc)) dms.push(item.dm);
|
||||||
});
|
});
|
||||||
formData.value.ypLx = dms;
|
formData.value.ypLx = dms;
|
||||||
page.value = 1;
|
page.value = 1;
|
||||||
getLits();
|
getLits();
|
||||||
}
|
}
|
||||||
|
|
||||||
const onSearch = (val) =>{
|
const onSearch = (val) => {
|
||||||
formData.value = {...formData.value,...val,};
|
formData.value = { ...formData.value, ...val, };
|
||||||
page.value = 1;
|
page.value = 1;
|
||||||
getLits();
|
getLits();
|
||||||
}
|
}
|
||||||
|
|
||||||
const load = () =>{
|
const load = () => {
|
||||||
if(total.value == list.value.length) return;
|
if (total.value == list.value.length) return;
|
||||||
page.value++;
|
page.value++;
|
||||||
getLits();
|
getLits();
|
||||||
}
|
}
|
||||||
|
|
||||||
const getLits = () =>{
|
const getLits = () => {
|
||||||
let params = {
|
let params = {
|
||||||
pageCurrent:page.value,
|
pageCurrent: page.value,
|
||||||
pageSize:8,
|
pageSize: 8,
|
||||||
...formData.value
|
...formData.value
|
||||||
}
|
}
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
qcckPost(params,'/mosty-gsxt/tsyp/selectPage').then(res=>{
|
console.log(params);
|
||||||
|
|
||||||
|
qcckPost(params, '/mosty-gsxt/tsyp/selectPage').then(res => {
|
||||||
let arr = res.records || [];
|
let arr = res.records || [];
|
||||||
list.value = page.value == 1 ? arr : list.value.concat(arr);
|
list.value = page.value == 1 ? arr : list.value.concat(arr);
|
||||||
total.value = res.total;
|
total.value = res.total;
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
}).catch(()=>{
|
}).catch(() => {
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleYp = (val) =>{
|
const handleYp = (val) => {
|
||||||
let params = { tsypid:val.id, }
|
let params = { tsypid: val.id, }
|
||||||
qcckPost(params,'/mosty-gsxt/wshs/getDcypbg').then(res=>{
|
qcckPost(params, '/mosty-gsxt/wshs/getDcypbg').then(res => {
|
||||||
let data = res || {};
|
let data = res || {};
|
||||||
let html = `<p class="html_bt">${data.bt}</p>`
|
let html = `<p class="html_bt">${data.bt}</p>`
|
||||||
html+=`<p>${data.head}</p>`
|
html += `<p>${data.head}</p>`
|
||||||
html+=`<p>${data.nr}</p>`
|
html += `<p>${data.nr}</p>`
|
||||||
html+=`<p>${data.bc}</p>`
|
html += `<p>${data.bc}</p>`
|
||||||
html+=`<p>${data.end}</p>`
|
html += `<p>${data.end}</p>`
|
||||||
textContent.value = html;
|
textContent.value = html;
|
||||||
showModel.value = true;
|
showModel.value = true;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleHs = (val) =>{
|
const handleHs = (val) => {
|
||||||
router.push({path:'/MeetingRoom',query:{tsypid:val.id}})
|
router.push({ path: '/MeetingRoom', query: { tsypid: val.id } })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查看详情
|
// 查看详情
|
||||||
const lookDeatl = (val) =>{
|
const lookDeatl = (val) => {
|
||||||
nextTick(()=>{
|
nextTick(() => {
|
||||||
detailForm.value.init(val,formData.value.sjLx)
|
detailForm.value.init(val, formData.value.sjLx)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,13 +242,15 @@ const tabHeightFn = () => {
|
|||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
.btnsBox{
|
|
||||||
|
.btnsBox {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
padding: 10px 5px;
|
padding: 10px 5px;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
.cntlsit{
|
|
||||||
|
.cntlsit {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-content: start;
|
align-content: start;
|
||||||
@ -245,21 +260,23 @@ const tabHeightFn = () => {
|
|||||||
background: #fff;
|
background: #fff;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
.cntItem{
|
|
||||||
|
.cntItem {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
border: 1px solid #ccc;
|
border: 1px solid #ccc;
|
||||||
color: #787878;
|
color: #787878;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
.foot{
|
|
||||||
|
.foot {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
border-top:1px solid #ccc;
|
border-top: 1px solid #ccc;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,68 @@
|
|||||||
|
<template>
|
||||||
|
<div class="itemXs_Box">
|
||||||
|
<div class="itemXs_Mc">
|
||||||
|
情报描述情报描述情报描述情报措述情描述情报描述情报描述情报描,情报描述情报描述情报描述情报措述情描述情报描述情报描述情报描,
|
||||||
|
</div>
|
||||||
|
<div class="itemXs_Ms">
|
||||||
|
情报描述情报描述情报描述情报措述情描述情报描述情报描述情报描,情报描述情报描述情报描述情报措述情描述情报描述情报描述情报描,
|
||||||
|
</div>
|
||||||
|
<div class="itemXs_Xs flex just-between align-center">
|
||||||
|
<div class=" flex just-between align-center"><el-icon class="icon"><Histogram /></el-icon>1000</div>
|
||||||
|
<div class=" flex just-between align-center"><el-icon class="icon"><ChatDotSquare /></el-icon>15522</div>
|
||||||
|
<div class=" flex just-between align-center"><el-icon class="icon"><Clock /></el-icon>2025-10-10 10:10:10</div>
|
||||||
|
<div class=" flex just-between align-center"><el-icon class="icon"><Avatar /></el-icon>张三</div>
|
||||||
|
<div>情报类型:测试数据</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
|
const props = defineProps({
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: () => { },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.itemXs_Box {
|
||||||
|
box-sizing: border-box;
|
||||||
|
border: 1px solid red;
|
||||||
|
// height: 100px;
|
||||||
|
width: 40%;
|
||||||
|
border-radius: 10px;
|
||||||
|
padding: 10px 15px;
|
||||||
|
|
||||||
|
.itemXs_Mc {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #de0909;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.itemXs_Ms {
|
||||||
|
color: #ccc;
|
||||||
|
font-size: 14px;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
.itemXs_Xs{
|
||||||
|
font-size: 16px;
|
||||||
|
color: #ccc;
|
||||||
|
line-height: 20px;
|
||||||
|
.icon{
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
88
src/views/backOfficeSystem/MakeAcomment/index.vue
Normal file
88
src/views/backOfficeSystem/MakeAcomment/index.vue
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="titleBox">
|
||||||
|
<PageTitle title="情报评一评" />
|
||||||
|
</div>
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<div ref="searchBox">
|
||||||
|
<Search :searchArr="searchConfiger" @submit="onSearch" />
|
||||||
|
</div>
|
||||||
|
<!-- 表格 -->
|
||||||
|
<div class="tabBox " style="height: calc(100vh - 200px); display: flex;flex-wrap: wrap;">
|
||||||
|
<div v-for="(item, index) in 1000" :key="index" class="tabBox_item flex ">
|
||||||
|
<ItemXs :item="item" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||||
|
import Search from "@/components/aboutTable/Search.vue";
|
||||||
|
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import ItemXs from './components/itemXs/itemXs.vue'
|
||||||
|
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_GS_XS_LX } = proxy.$dict("D_GS_XS_LX"); //获取字典数据
|
||||||
|
const searchConfiger = reactive([
|
||||||
|
|
||||||
|
{
|
||||||
|
label: "情报名称",
|
||||||
|
showType: "input",
|
||||||
|
prop: "xsMc",
|
||||||
|
placeholder: "请输入情报名称",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
showType: "select",
|
||||||
|
prop: "xlLx",
|
||||||
|
options: D_GS_XS_LX,
|
||||||
|
placeholder: "请选择情报类型",
|
||||||
|
label: "情报类型"
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
tabHeightFn()
|
||||||
|
selectPagePbql()
|
||||||
|
})
|
||||||
|
// const tabHeight = ref(0)
|
||||||
|
// 表格高度计算
|
||||||
|
const tabHeightFn = () => {
|
||||||
|
// pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||||
|
window.onresize = function () {
|
||||||
|
tabHeightFn();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
const pageData = reactive({
|
||||||
|
parameter: {
|
||||||
|
pageCurrent: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
loading: false,
|
||||||
|
tableData: []
|
||||||
|
})
|
||||||
|
const onSearch = (val) => {
|
||||||
|
pageData.parameter={...val, ...pageData.parameter}
|
||||||
|
pageData.pageCurrent = 1;
|
||||||
|
selectPagePbql()
|
||||||
|
}
|
||||||
|
const selectPagePbql = () => {
|
||||||
|
qcckGet(pageData.parameter, "/mosty-gsxt/qbcj/selectPagePbql").then((res) => {
|
||||||
|
pageData.tableData =pageData.pageCurrent==1? res.records:pageData.tableData.concat(res.records || []);
|
||||||
|
pageData.total = res.total;
|
||||||
|
pageData.loading = false;
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
}).finally(()=>{
|
||||||
|
pageData.loading = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="titleBox">
|
<div class="titleBox">
|
||||||
<PageTitle title="情报信息采集">
|
<PageTitle title="线索数据采集">
|
||||||
<el-button type="primary" @click="addEdit('add', null)">
|
<el-button type="primary" @click="addEdit('add', null)">
|
||||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||||
<span style="vertical-align: middle">新增</span>
|
<span style="vertical-align: middle">新增</span>
|
||||||
|
131
src/views/home/components/assessmentItem.vue
Normal file
131
src/views/home/components/assessmentItem.vue
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
<template>
|
||||||
|
<div class="warning-card ">
|
||||||
|
<div class="warning-info warning-boder pb5">
|
||||||
|
<div class="mt4 two_text_detail">{{ item[nameData.title] }}</div>
|
||||||
|
</div>
|
||||||
|
<!-- 态势研判预警 -->
|
||||||
|
<div class="warning-info pt5 pb5 flex align-center just-between" v-if="lx == 1">
|
||||||
|
<div class="mt4 two_text_detail flex align-center">预警类别:
|
||||||
|
<DictTag :tag="false" :value="item.ypLx" color="#fff" :options="dict.D_SG_TSYPGZ" />
|
||||||
|
</div>
|
||||||
|
<div class="mt4 two_text_detail">预警次数:{{ item.num }}</div>
|
||||||
|
</div>
|
||||||
|
<!-- 群体预警 -->
|
||||||
|
<div class="warning-info pt5 pb5 flex align-center just-between" v-if="lx == 2">
|
||||||
|
<div class="mt4 two_text_detail flex align-center">群体类别:
|
||||||
|
<DictTag :tag="false" :value="item.qtlb" color="#fff" :options="dict.D_GS_ZDQT_LB" />
|
||||||
|
</div>
|
||||||
|
<div class="mt4 two_text_detail flex align-center">风险等级:
|
||||||
|
<DictTag :tag="false" :value="item.yjJb" color="#fff" :options="dict.D_BZ_TYJB" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- 经验分享 -->
|
||||||
|
<div class="warning-info pt5 pb5 flex align-center just-between" v-if="lx == 3">
|
||||||
|
<div class="mt4 two_text_detail">经验发布人:{{ item.fbr }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="warning-info pt5 pb5 warning-boder" v-if="lx == 1 || lx == 2">
|
||||||
|
<div class="mt4 two_text_detail">预警时间:{{ item.yjsj }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="warning-info pt5 pb5 warning-boder" v-if="lx == 3">
|
||||||
|
<div class="mt4 two_text_detail">经验内容:{{ item.fbnr }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { IdCard } from '@/utils/validate.js'
|
||||||
|
import { reactive, ref, watch } from "vue";
|
||||||
|
const props = defineProps({
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: {}
|
||||||
|
}, dict: {
|
||||||
|
tupe: Object,
|
||||||
|
default: {}
|
||||||
|
},
|
||||||
|
lx: {
|
||||||
|
type: Number,
|
||||||
|
default: 1
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let nameData = ref({
|
||||||
|
title: "ypMc",
|
||||||
|
lbNoe: "预警类别:",
|
||||||
|
})
|
||||||
|
watch(() => props.lx, (val) => {
|
||||||
|
switch (val) {
|
||||||
|
case 1:
|
||||||
|
nameData.value = { title: 'ypMc' }
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
nameData.value = { title: 'qtMc' }
|
||||||
|
case 3:
|
||||||
|
nameData.value = { title: 'jymc' }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}, { immediate: true })
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.warning-card {
|
||||||
|
background: url("~@/assets/images/xxxxxx.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
gap: 12px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
padding: 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.warning-image {
|
||||||
|
//
|
||||||
|
// width: 80px;
|
||||||
|
// height: 100px;
|
||||||
|
|
||||||
|
// img {
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
|
// object-fit: cover;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-info {
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
padding: 1px 6px;
|
||||||
|
background: #0072FF;
|
||||||
|
border-radius: 2px 2px 2px 2px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gapline {
|
||||||
|
width: 2px;
|
||||||
|
height: 14px;
|
||||||
|
background: #e9e9e9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-boder {
|
||||||
|
border-bottom: 2px dashed #0958b2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.red {
|
||||||
|
background: url("~@/assets/images/GroupRed.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
background: url("~@/assets/images/GroupOrange.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.yellow {
|
||||||
|
background: url("~@/assets/images/GroupYellow.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blue {
|
||||||
|
background: url("~@/assets/images/GroupBlue.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
</style>
|
125
src/views/home/components/deployControlItem.vue
Normal file
125
src/views/home/components/deployControlItem.vue
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<template>
|
||||||
|
<div class="warning-card ">
|
||||||
|
<div class="warning-image flex">
|
||||||
|
<img :src="item.yjTp" width="65" height="70" />
|
||||||
|
<div class="ml10 warning-info">
|
||||||
|
<div class="flex just-between align-center">
|
||||||
|
<div class="flex align-center mt4" v-if="item.yjLx == 2">
|
||||||
|
<span >{{ item.yjClcph }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex align-center mt4" v-else>
|
||||||
|
<span>{{ item.yjRyxm }}</span>
|
||||||
|
<span class="gapline mr10 ml10"></span>
|
||||||
|
<span>{{ IdCard(item.yjRysfzh, 2) }}</span>
|
||||||
|
<span class="gapline mr10 ml10"></span>
|
||||||
|
<span>{{ IdCard(item.yjRysfzh, 3) }}</span>
|
||||||
|
</div>
|
||||||
|
<span class="tag" v-if="item.yjbqmc">{{ item.yjbqmc }}</span>
|
||||||
|
</div>
|
||||||
|
<div v-if="item.yjLx == 2" class="flex">车牌类型:
|
||||||
|
<DictTag :tag="false" :value="item.yjHplx" color="#fff" :options="dict.D_BZ_HPZL"/>
|
||||||
|
</div>
|
||||||
|
<div class="mt4" v-else>身份证:{{ item.yjRysfzh }}</div>
|
||||||
|
<div class="mt4 two_text_detail">预警时间:{{ item.yjSj }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="warning-info warning-boder pb5">
|
||||||
|
<div class="mt4 two_text_detail">预警内容:{{ item.yjNr }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="warning-info pt5 pb5 warning-boder">
|
||||||
|
<div class="mt4 two_text_detail">处置结果:{{ item.yjNr }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="warning-info pt5 ">
|
||||||
|
<div class="two_text_detail flex lh25"><img src="@/assets/images/ddtb.png" width="20" height="25" alt="" srcset="">{{ item.yjNr }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { IdCard } from '@/utils/validate.js'
|
||||||
|
import { reactive, ref } from "vue";
|
||||||
|
const props = defineProps({
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: {}
|
||||||
|
}, dict: {
|
||||||
|
tupe: Object,
|
||||||
|
default: {}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const changeBG = (str) => {
|
||||||
|
switch (str) {
|
||||||
|
case "10":
|
||||||
|
return "red";
|
||||||
|
case "20":
|
||||||
|
return "orange";
|
||||||
|
case "30":
|
||||||
|
return "yellow";
|
||||||
|
default: return "blue";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.warning-card {
|
||||||
|
background: url("~@/assets/images/xxxxxx.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
gap: 12px;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
padding: 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
.warning-image {
|
||||||
|
//
|
||||||
|
// width: 80px;
|
||||||
|
// height: 100px;
|
||||||
|
|
||||||
|
// img {
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
|
// object-fit: cover;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-info {
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
padding: 1px 6px;
|
||||||
|
background: #0072FF;
|
||||||
|
border-radius: 2px 2px 2px 2px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gapline {
|
||||||
|
width: 2px;
|
||||||
|
height: 14px;
|
||||||
|
background: #e9e9e9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.warning-boder{
|
||||||
|
border-bottom: 2px dashed #0958b2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.red {
|
||||||
|
background: url("~@/assets/images/GroupRed.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
background: url("~@/assets/images/GroupOrange.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.yellow {
|
||||||
|
background: url("~@/assets/images/GroupYellow.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blue {
|
||||||
|
background: url("~@/assets/images/GroupBlue.png") no-repeat center center;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
}
|
||||||
|
</style>
|
@ -5,16 +5,24 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="warning-info">
|
<div class="warning-info">
|
||||||
<div class="flex just-between align-center">
|
<div class="flex just-between align-center">
|
||||||
<div class="flex align-center mt4">
|
<div class="flex align-center mt4" v-if="item.yjLx == 2">
|
||||||
<span>{{ item.yjRyxm }}</span>
|
<span >{{ item.yjClcph }}</span>
|
||||||
<span class="gapline mr10 ml10"></span>
|
</div>
|
||||||
<span>{{ IdCard(item.yjRysfzh,2) }}</span>
|
<div class="flex align-center mt4" v-else>
|
||||||
<span class="gapline mr10 ml10"></span>
|
<span>{{ item.yjRyxm }}</span>
|
||||||
<span>{{ IdCard(item.yjRysfzh,3) }}</span>
|
<span class="gapline mr10 ml10"></span>
|
||||||
</div>
|
<span>{{ IdCard(item.yjRysfzh, 2) }}</span>
|
||||||
|
<span class="gapline mr10 ml10"></span>
|
||||||
|
<span>{{ IdCard(item.yjRysfzh, 3) }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
<span class="tag" v-if="item.yjbqmc">{{ item.yjbqmc }}</span>
|
<span class="tag" v-if="item.yjbqmc">{{ item.yjbqmc }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt4">身份证:{{ item.yjRysfzh }}</div>
|
<div v-if="item.yjLx == 2" class="flex">车牌类型:
|
||||||
|
<DictTag :tag="false" :value="item.yjHplx" color="#fff" :options="dict.D_BZ_HPZL"/>
|
||||||
|
</div>
|
||||||
|
<div class="mt4" v-else>身份证:{{ item.yjRysfzh }}</div>
|
||||||
|
<div class="mt4 two_text_detail">预警时间:{{ item.yjSj }}</div>
|
||||||
<div class="mt4 one_text_detail">预警地址:{{ item.yjDz }}</div>
|
<div class="mt4 one_text_detail">预警地址:{{ item.yjDz }}</div>
|
||||||
<div class="mt4 two_text_detail">预警内容:{{ item.yjNr }}</div>
|
<div class="mt4 two_text_detail">预警内容:{{ item.yjNr }}</div>
|
||||||
</div>
|
</div>
|
||||||
@ -28,19 +36,22 @@ const props = defineProps({
|
|||||||
item: {
|
item: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: {}
|
default: {}
|
||||||
|
}, dict: {
|
||||||
|
tupe: Object,
|
||||||
|
default: {}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const changeBG = (str) => {
|
const changeBG = (str) => {
|
||||||
switch(str){
|
switch (str) {
|
||||||
case "10":
|
case "10":
|
||||||
return "red";
|
return "red";
|
||||||
case "20":
|
case "20":
|
||||||
return "orange";
|
return "orange";
|
||||||
case "30":
|
case "30":
|
||||||
return "yellow";
|
return "yellow";
|
||||||
default: return "blue";
|
default: return "blue";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -52,31 +63,36 @@ const changeBG = (str) => {
|
|||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
||||||
.warning-image {
|
.warning-image {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
img {
|
|
||||||
width: 100%;
|
img {
|
||||||
height: 100%;
|
width: 100%;
|
||||||
object-fit: cover;
|
height: 100%;
|
||||||
}
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-info {
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
.tag {
|
||||||
|
padding: 1px 6px;
|
||||||
|
background: #0072FF;
|
||||||
|
border-radius: 2px 2px 2px 2px;
|
||||||
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.warning-info {
|
.gapline {
|
||||||
flex: 1;
|
width: 2px;
|
||||||
.tag{
|
height: 14px;
|
||||||
padding: 1px 6px;
|
background: #e9e9e9;
|
||||||
background: #0072FF;
|
|
||||||
border-radius: 2px 2px 2px 2px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
.gapline{
|
|
||||||
width: 2px;
|
|
||||||
height: 14px;
|
|
||||||
background: #e9e9e9;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.red {
|
.red {
|
||||||
background: url("~@/assets/images/GroupRed.png") no-repeat center center;
|
background: url("~@/assets/images/GroupRed.png") no-repeat center center;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
@ -86,13 +102,14 @@ const changeBG = (str) => {
|
|||||||
background: url("~@/assets/images/GroupOrange.png") no-repeat center center;
|
background: url("~@/assets/images/GroupOrange.png") no-repeat center center;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.yellow {
|
.yellow {
|
||||||
background: url("~@/assets/images/GroupYellow.png") no-repeat center center;
|
background: url("~@/assets/images/GroupYellow.png") no-repeat center center;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.blue {
|
.blue {
|
||||||
background: url("~@/assets/images/GroupBlue.png") no-repeat center center;
|
background: url("~@/assets/images/GroupBlue.png") no-repeat center center;
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<DialogDragger title="预警详情" top="150px" v-model="props.show" @close="close">
|
|
||||||
|
<DialogDragger title="预警详情" top="150px" v-model="props.show" @close="close">
|
||||||
|
|
||||||
<ul class="warningList" ref="gjyjList">
|
<ul class="warningList" ref="gjyjList">
|
||||||
<li v-for="item in props.data" :key="item.id">
|
<li v-for="item in props.data" :key="item.id">
|
||||||
@ -7,13 +8,21 @@
|
|||||||
</li>
|
</li>
|
||||||
<MOSTY.Empty :show="props.data.length <= 0" :imgSize="150"></MOSTY.Empty>
|
<MOSTY.Empty :show="props.data.length <= 0" :imgSize="150"></MOSTY.Empty>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
<!-- :style="{height: `calc(100vh - ${handleHs}px)`}" -->
|
||||||
|
|
||||||
|
<div style="position:relative;width: 100%;" :style="{height: `calc(100vh - ${handleHs}px)`}">
|
||||||
|
<GdMap v-if="showMap"></GdMap>
|
||||||
|
</div>
|
||||||
</DialogDragger>
|
</DialogDragger>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import * as MOSTY from "@/components/MyComponents/index";
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import GdMap from "@/components/GdMap/index.vue";
|
||||||
|
|
||||||
import DialogDragger from "@/views/home/layout/dialogDragger.vue";
|
import DialogDragger from "@/views/home/layout/dialogDragger.vue";
|
||||||
import YjItem from "@/views/home/components/yjItem.vue";
|
import YjItem from "@/views/home/components/yjItem.vue";
|
||||||
import { ref, defineProps } from "vue";
|
import { ref, defineProps, onMounted, watch } from "vue";
|
||||||
import emitter from "@/utils/eventBus.js";
|
import emitter from "@/utils/eventBus.js";
|
||||||
const gjyjList = ref(null); //预警列表数据
|
const gjyjList = ref(null); //预警列表数据
|
||||||
//参数传递
|
//参数传递
|
||||||
@ -28,13 +37,43 @@ const props = defineProps({
|
|||||||
default:false
|
default:false
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
console.log(props.show);
|
||||||
|
|
||||||
//关闭
|
//关闭
|
||||||
function close() {
|
function close() {
|
||||||
emitter.emit('deletePointArea','home_yj_map');
|
emitter.emit('deletePointArea','home_yj_map');
|
||||||
emitter.emit("showHomeYJ",false);
|
emitter.emit("showHomeYJ",false);
|
||||||
}
|
}
|
||||||
|
const showMap=ref(false)
|
||||||
|
onMounted(() => {
|
||||||
|
setTimeout(() => {
|
||||||
|
showMap.value = true
|
||||||
|
setTimeout(() => {
|
||||||
|
for (let i = 0; i < props.data.length; i++) {
|
||||||
|
|
||||||
|
const item = props.data[i];
|
||||||
|
console.log(item);
|
||||||
|
|
||||||
|
emitter.emit('showHomeYJ',[item]);
|
||||||
|
emitter.emit('deletePointArea','home_yj_map');
|
||||||
|
if(!item.jd || !item.jd) return proxy.$message({ type: "warning", message: "该预警没有坐标!" });
|
||||||
|
let icon = require('@/assets/point/yj.png');
|
||||||
|
if(item.yjjb == '20') icon = require('@/assets/point/yj1.png');
|
||||||
|
if(item.yjjb == '30') icon = require('@/assets/point/yj2.png');
|
||||||
|
if(item.yjjb == '40') icon = require('@/assets/point/yj3.png');
|
||||||
|
emitter.emit('addPointArea',{flag:'home_yj_map',icon,coords:[item]});
|
||||||
|
emitter.emit('setMapCenter',{location:[item.jd,item.wd],zoomLevel:10});
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
|
|
||||||
|
|
||||||
|
}, 200);
|
||||||
|
})
|
||||||
|
const handleHs=ref(0)
|
||||||
|
watch(() => gjyjList.value, (val) => {
|
||||||
|
console.log(val.clientHeight);
|
||||||
|
handleHs.value=val.clientHeight+198+150+20
|
||||||
|
},{deep:true})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="homeBox">
|
<div class="homeBox">
|
||||||
<GdMap></GdMap>
|
<!-- <GdMap></GdMap> -->
|
||||||
<!-- 头部 -->
|
<!-- 头部 -->
|
||||||
|
|
||||||
<Head></Head>
|
<Head></Head>
|
||||||
<!-- 内容 -->
|
<!-- 内容 -->
|
||||||
<!-- 左边 -->
|
<!-- 左边 -->
|
||||||
@ -10,19 +11,44 @@
|
|||||||
<DbCount></DbCount>
|
<DbCount></DbCount>
|
||||||
</div>
|
</div>
|
||||||
<div class="asideL-Bottom">
|
<div class="asideL-Bottom">
|
||||||
<div class="commom-aside"><QbsbCount></QbsbCount></div>
|
<div class="commom-aside">
|
||||||
<div class="commom-aside"><QblyType></QblyType></div>
|
<QbsbCount></QbsbCount>
|
||||||
<div class="commom-aside"><QbfkCount></QbfkCount></div>
|
</div>
|
||||||
|
<div class="commom-aside">
|
||||||
|
<QblyType></QblyType>
|
||||||
|
</div>
|
||||||
|
<div class="commom-aside">
|
||||||
|
<QbfkCount></QbfkCount>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 右边 -->
|
<!-- 右边 -->
|
||||||
<div class="home-aside asideR">
|
<div class="home-aside asideR">
|
||||||
<div class="commom-aside-big"><ZdryWarning></ZdryWarning></div>
|
<div class="commom-aside-big">
|
||||||
<div class="commom-aside-big"><Zdgk></Zdgk></div>
|
<SituationAssessment/>
|
||||||
<div class="commom-aside-small"><Fjqk></Fjqk></div>
|
</div>
|
||||||
|
<div class="commom-aside-big">
|
||||||
|
<GroupWarning/>
|
||||||
|
</div>
|
||||||
|
<div class="commom-aside-small">
|
||||||
|
<Experience/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 中间 -->
|
<!-- 中间 -->
|
||||||
<div class="home-center"><Yszs></Yszs></div>
|
<div class="home-center">
|
||||||
|
<div class="middle-top">
|
||||||
|
<Yszs />
|
||||||
|
</div>
|
||||||
|
<div class="flex middle-bottom mt10">
|
||||||
|
<div class="mr10" style="width: 50%;">
|
||||||
|
<DeployControl />
|
||||||
|
</div>
|
||||||
|
<div class="flex-1" style="flex: 1;">
|
||||||
|
<ZdryWarning />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
<!-- 底部 -->
|
<!-- 底部 -->
|
||||||
<div class="home-foot-t">
|
<div class="home-foot-t">
|
||||||
<Bkcz></Bkcz>
|
<Bkcz></Bkcz>
|
||||||
@ -43,14 +69,18 @@ import QbsbCount from './model/qbsbCount.vue'
|
|||||||
import QblyType from './model/qblyType.vue'
|
import QblyType from './model/qblyType.vue'
|
||||||
import Bkcz from './model/bkcz.vue'
|
import Bkcz from './model/bkcz.vue'
|
||||||
import ZdryWarning from './model/zdryWarning.vue'
|
import ZdryWarning from './model/zdryWarning.vue'
|
||||||
import Zdgk from './model/zdgk.vue'
|
import GroupWarning from './model/groupWarning.vue'
|
||||||
import Fjqk from './model/fjqk.vue'
|
import Fjqk from './model/fjqk.vue'
|
||||||
import Yszs from './model/yszs.vue'
|
import Yszs from './model/yszs.vue'
|
||||||
|
import DeployControl from './model/deployControl.vue';
|
||||||
|
import SituationAssessment from './model/situationAssessment.vue'
|
||||||
|
import Experience from './model/experience.vue'
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import "@/assets/css/homeScreen.scss";
|
@import "@/assets/css/homeScreen.scss";
|
||||||
|
|
||||||
.transition {
|
.transition {
|
||||||
transition: all 0.5s;
|
transition: all 0.5s;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div style="pointer-events: none" :class="props.parentClass">
|
<div style="pointer-events: none" :class="props.parentClass">
|
||||||
<el-dialog :top="props.top" style="pointer-events: auto !important" :modal="false" draggable v-model="props.modelValue" :destroy-on-close="true"
|
<el-dialog :top="props.top" style="pointer-events: auto !important;" :modal="false" draggable v-model="props.modelValue" :destroy-on-close="true"
|
||||||
:show-close="false" :close-on-click-modal="false" custom-class="zdy-model-dialog">
|
:show-close="false" :close-on-click-modal="false" :width="width" :custom-class="coumClass">
|
||||||
<template #title>
|
<template #title>
|
||||||
<div class="my-header">
|
<div class="my-header">
|
||||||
<span class="imgIcon"> {{props.title}}</span>
|
<span class="imgIcon"> {{props.title}}</span>
|
||||||
@ -35,7 +35,15 @@ const props = defineProps({
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
width: {
|
||||||
|
type: String,
|
||||||
|
default: "50%"
|
||||||
|
},
|
||||||
|
coumClass: {
|
||||||
|
type: String,
|
||||||
|
default: "zdy-model-dialog"
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// 關閉
|
// 關閉
|
||||||
@ -74,14 +82,20 @@ function closeDialog(params) {
|
|||||||
padding: 8px 10px;
|
padding: 8px 10px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
pointer-events: auto !important;
|
pointer-events: auto !important;
|
||||||
width: 400px;
|
height:calc(100% - 300px);
|
||||||
left: -290px;
|
overflow: auto;
|
||||||
top: 34px;
|
|
||||||
}
|
}
|
||||||
.zdy-model-dialog .el-dialog__header {
|
.zdy-model-dialog .el-dialog__header {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
}
|
}
|
||||||
|
:v-deep .el-dialog__header{
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
:v-deep .el-dialog__body{
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
.zdy-model-dialog .el-dialog__body {
|
.zdy-model-dialog .el-dialog__body {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
149
src/views/home/model/deployControl.vue
Normal file
149
src/views/home/model/deployControl.vue
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
<template>
|
||||||
|
<div class="comom-title">
|
||||||
|
<span class="title">布控预警</span>
|
||||||
|
</div>
|
||||||
|
<div class="comom-cnt zdryBox">
|
||||||
|
<div style="height:33px;">
|
||||||
|
<CheckBox :data="checkData" @changeData="changeData"></CheckBox>
|
||||||
|
</div>
|
||||||
|
<ul class="ryBox" v-loading="loading" v-infinite-scroll="loadList" style="overflow: auto">
|
||||||
|
<li v-for="item in personList" :key="item.id" @click="chooseItem(item)">
|
||||||
|
<DeployControlItem :item="item" :dict="{D_BZ_HPZL}"/>
|
||||||
|
</li>
|
||||||
|
<MOSTY.Empty :show="!loading && personList.length <= 0" :imgSize="100"></MOSTY.Empty>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import emitter from "@/utils/eventBus.js";
|
||||||
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import DeployControlItem from "@/views/home/components/deployControlItem.vue";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import CheckBox from "@/components/checkBox/index.vue";
|
||||||
|
import { ref ,reactive, onMounted,getCurrentInstance} from 'vue';
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const {D_BZ_HPZL} =proxy.$dict('D_BZ_HPZL')
|
||||||
|
const checkData = reactive({
|
||||||
|
list: ["一级", "二级", "三级", "四级"],
|
||||||
|
hasChoose: ["一级", "二级", "三级", "四级"]
|
||||||
|
});
|
||||||
|
const total = ref(0);
|
||||||
|
const yjJb = ref('10,20,30,40');
|
||||||
|
const pageNum = ref(1);
|
||||||
|
const loading = ref(false); // 加载中
|
||||||
|
const personList = ref([]);
|
||||||
|
onMounted(()=>{
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
// 复选框切换
|
||||||
|
function changeData(val){
|
||||||
|
pageNum.value = 1;
|
||||||
|
personList.value = [];
|
||||||
|
checkData.hasChoose = val;
|
||||||
|
let ids = [];
|
||||||
|
val.forEach(it => {
|
||||||
|
if(it == '一级') ids.push(10);
|
||||||
|
if(it == '二级') ids.push(20);
|
||||||
|
if(it == '三级') ids.push(30);
|
||||||
|
if(it == '四级') ids.push(40);
|
||||||
|
});
|
||||||
|
yjJb.value = ids.join(',')
|
||||||
|
if(val.length == 0) personList.value = [];
|
||||||
|
else getList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 触底加载
|
||||||
|
const loadList = () =>{
|
||||||
|
if( personList.value.length == total.value) return;
|
||||||
|
pageNum.value++;
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () =>{
|
||||||
|
let data = { pageSize:10, pageNum:pageNum.value,yjJb:yjJb.value ,bkyj:1};
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(data,'/mosty-gsxt/tbYjxx/getPageList').then(res=>{
|
||||||
|
loading.value = false;
|
||||||
|
let arr = res.records || [];
|
||||||
|
personList.value = pageNum.value == 1 ? arr : personList.value.concat(arr);
|
||||||
|
total.value = res.total;
|
||||||
|
}).catch(()=>{
|
||||||
|
loading.value = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const chooseItem = (item) =>{
|
||||||
|
emitter.emit('showHomeYJ',[item]);
|
||||||
|
emitter.emit('deletePointArea','home_yj_map');
|
||||||
|
if(!item.jd || !item.jd) return proxy.$message({ type: "warning", message: "该预警没有坐标!" });
|
||||||
|
let icon = require('@/assets/point/yj.png');
|
||||||
|
if(item.yjjb == '20') icon = require('@/assets/point/yj1.png');
|
||||||
|
if(item.yjjb == '30') icon = require('@/assets/point/yj2.png');
|
||||||
|
if(item.yjjb == '40') icon = require('@/assets/point/yj3.png');
|
||||||
|
emitter.emit('addPointArea',{flag:'home_yj_map',icon,coords:[item]});
|
||||||
|
emitter.emit('setMapCenter',{location:[item.jd,item.wd],zoomLevel:10});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.el-loading-mask{
|
||||||
|
background: rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "@/assets/css/homeScreen.scss";
|
||||||
|
.zdryBox{
|
||||||
|
background: #052249;
|
||||||
|
height: 100%;
|
||||||
|
.ryBox{
|
||||||
|
height: calc(100% - 33px);
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
background-color: #263b70;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
background-color: #146bbe;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
background-color: #263b70;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-corner {
|
||||||
|
background-color: #142141;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-checkbox__label{
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-checked+.el-checkbox__label{
|
||||||
|
color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__inner{
|
||||||
|
background:rgba(0,144,255,0.2);
|
||||||
|
border:1px solid #0072FF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-checked .el-checkbox__inner{
|
||||||
|
background-color: #00FFFF;
|
||||||
|
border-color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner{
|
||||||
|
background-color: #00FFFF;
|
||||||
|
border-color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__inner::after{
|
||||||
|
border:2px solid #000;
|
||||||
|
border-left:0;
|
||||||
|
border-top:0;
|
||||||
|
left:3px;
|
||||||
|
top:0px;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner::before{
|
||||||
|
background: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
144
src/views/home/model/experience.vue
Normal file
144
src/views/home/model/experience.vue
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
<template>
|
||||||
|
<div class="comom-title">
|
||||||
|
<span class="title">经验分享</span>
|
||||||
|
</div>
|
||||||
|
<div class="comom-cnt zdryBox">
|
||||||
|
<ul class="ryBox" v-loading="loading" v-infinite-scroll="loadList" style="overflow: auto">
|
||||||
|
<li v-for="item in personList" :key="item.id" >
|
||||||
|
<Assessment :item="item" :dict="{D_GS_ZDQT_LB,D_BZ_TYJB}" :lx="3"/>
|
||||||
|
</li>
|
||||||
|
<MOSTY.Empty :show="!loading && personList.length <= 0" :imgSize="100"></MOSTY.Empty>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import emitter from "@/utils/eventBus.js";
|
||||||
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import Assessment from "@/views/home/components/assessmentItem.vue";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import CheckBox from "@/components/checkBox/index.vue";
|
||||||
|
import { ref ,reactive, onMounted,getCurrentInstance} from 'vue';
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const {D_GS_ZDQT_LB,D_BZ_TYJB} =proxy.$dict('D_GS_ZDQT_LB','D_BZ_TYJB')
|
||||||
|
const checkData = reactive({
|
||||||
|
list: ["人员", "车辆"],
|
||||||
|
hasChoose: ["人员", "车辆"],
|
||||||
|
});
|
||||||
|
const total = ref(0);
|
||||||
|
const yjJb = ref('10,20,30,40');
|
||||||
|
const pageNum = ref(1);
|
||||||
|
const loading = ref(false); // 加载中
|
||||||
|
const personList = ref([]);
|
||||||
|
onMounted(()=>{
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
// 复选框切换
|
||||||
|
function changeData(val){
|
||||||
|
pageNum.value = 1;
|
||||||
|
personList.value = [];
|
||||||
|
checkData.hasChoose = val;
|
||||||
|
let ids = [];
|
||||||
|
val.forEach(it => {
|
||||||
|
if(it == '人员') ids.push(1);
|
||||||
|
if(it == '车辆') ids.push(2);
|
||||||
|
});
|
||||||
|
yjJb.value = ids.join(',')
|
||||||
|
if(val.length == 0) personList.value = [];
|
||||||
|
else getList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 触底加载
|
||||||
|
const loadList = () =>{
|
||||||
|
if( personList.value.length == total.value) return;
|
||||||
|
pageNum.value++;
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () =>{
|
||||||
|
let data = { pageSize:10, pageCurrent:pageNum.value };
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(data,'/mosty-gsxt/gsxt/jyfx/selectPage').then(res=>{
|
||||||
|
loading.value = false;
|
||||||
|
let arr = res.records || [];
|
||||||
|
personList.value = pageNum.value == 1 ? arr : personList.value.concat(arr);
|
||||||
|
total.value = res.total;
|
||||||
|
}).catch(()=>{
|
||||||
|
loading.value = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const chooseItem = (item) =>{
|
||||||
|
emitter.emit('showHomeYJ',[item]);
|
||||||
|
emitter.emit('deletePointArea','home_yj_map');
|
||||||
|
if(!item.jd || !item.jd) return proxy.$message({ type: "warning", message: "该预警没有坐标!" });
|
||||||
|
let icon = require('@/assets/point/yj.png');
|
||||||
|
if(item.yjjb == '20') icon = require('@/assets/point/yj1.png');
|
||||||
|
if(item.yjjb == '30') icon = require('@/assets/point/yj2.png');
|
||||||
|
if(item.yjjb == '40') icon = require('@/assets/point/yj3.png');
|
||||||
|
emitter.emit('addPointArea',{flag:'home_yj_map',icon,coords:[item]});
|
||||||
|
emitter.emit('setMapCenter',{location:[item.jd,item.wd],zoomLevel:10});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.el-loading-mask{
|
||||||
|
background: rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "@/assets/css/homeScreen.scss";
|
||||||
|
.zdryBox{
|
||||||
|
background: #052249;
|
||||||
|
height: 100%;
|
||||||
|
.ryBox{
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
background-color: #263b70;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
background-color: #146bbe;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
background-color: #263b70;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-corner {
|
||||||
|
background-color: #142141;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-checkbox__label{
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-checked+.el-checkbox__label{
|
||||||
|
color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__inner{
|
||||||
|
background:rgba(0,144,255,0.2);
|
||||||
|
border:1px solid #0072FF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-checked .el-checkbox__inner{
|
||||||
|
background-color: #00FFFF;
|
||||||
|
border-color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner{
|
||||||
|
background-color: #00FFFF;
|
||||||
|
border-color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__inner::after{
|
||||||
|
border:2px solid #000;
|
||||||
|
border-left:0;
|
||||||
|
border-top:0;
|
||||||
|
left:3px;
|
||||||
|
top:0px;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner::before{
|
||||||
|
background: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
144
src/views/home/model/groupWarning.vue
Normal file
144
src/views/home/model/groupWarning.vue
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
<template>
|
||||||
|
<div class="comom-title">
|
||||||
|
<span class="title">群体预警</span>
|
||||||
|
</div>
|
||||||
|
<div class="comom-cnt zdryBox">
|
||||||
|
<ul class="ryBox" v-loading="loading" v-infinite-scroll="loadList" style="overflow: auto">
|
||||||
|
<li v-for="item in personList" :key="item.id" >
|
||||||
|
<Assessment :item="item" :dict="{D_GS_ZDQT_LB,D_BZ_TYJB}" :lx="2"/>
|
||||||
|
</li>
|
||||||
|
<MOSTY.Empty :show="!loading && personList.length <= 0" :imgSize="100"></MOSTY.Empty>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import emitter from "@/utils/eventBus.js";
|
||||||
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import Assessment from "@/views/home/components/assessmentItem.vue";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import CheckBox from "@/components/checkBox/index.vue";
|
||||||
|
import { ref ,reactive, onMounted,getCurrentInstance} from 'vue';
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const {D_GS_ZDQT_LB,D_BZ_TYJB} =proxy.$dict('D_GS_ZDQT_LB','D_BZ_TYJB')
|
||||||
|
const checkData = reactive({
|
||||||
|
list: ["人员", "车辆"],
|
||||||
|
hasChoose: ["人员", "车辆"],
|
||||||
|
});
|
||||||
|
const total = ref(0);
|
||||||
|
const yjJb = ref('10,20,30,40');
|
||||||
|
const pageNum = ref(1);
|
||||||
|
const loading = ref(false); // 加载中
|
||||||
|
const personList = ref([]);
|
||||||
|
onMounted(()=>{
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
// 复选框切换
|
||||||
|
function changeData(val){
|
||||||
|
pageNum.value = 1;
|
||||||
|
personList.value = [];
|
||||||
|
checkData.hasChoose = val;
|
||||||
|
let ids = [];
|
||||||
|
val.forEach(it => {
|
||||||
|
if(it == '人员') ids.push(1);
|
||||||
|
if(it == '车辆') ids.push(2);
|
||||||
|
});
|
||||||
|
yjJb.value = ids.join(',')
|
||||||
|
if(val.length == 0) personList.value = [];
|
||||||
|
else getList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 触底加载
|
||||||
|
const loadList = () =>{
|
||||||
|
if( personList.value.length == total.value) return;
|
||||||
|
pageNum.value++;
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () =>{
|
||||||
|
let data = { pageSize:10, pageCurrent:pageNum.value };
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(data,'/mosty-gsxt/qtYjxx/getPageList').then(res=>{
|
||||||
|
loading.value = false;
|
||||||
|
let arr = res.records || [];
|
||||||
|
personList.value = pageNum.value == 1 ? arr : personList.value.concat(arr);
|
||||||
|
total.value = res.total;
|
||||||
|
}).catch(()=>{
|
||||||
|
loading.value = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const chooseItem = (item) =>{
|
||||||
|
emitter.emit('showHomeYJ',[item]);
|
||||||
|
emitter.emit('deletePointArea','home_yj_map');
|
||||||
|
if(!item.jd || !item.jd) return proxy.$message({ type: "warning", message: "该预警没有坐标!" });
|
||||||
|
let icon = require('@/assets/point/yj.png');
|
||||||
|
if(item.yjjb == '20') icon = require('@/assets/point/yj1.png');
|
||||||
|
if(item.yjjb == '30') icon = require('@/assets/point/yj2.png');
|
||||||
|
if(item.yjjb == '40') icon = require('@/assets/point/yj3.png');
|
||||||
|
emitter.emit('addPointArea',{flag:'home_yj_map',icon,coords:[item]});
|
||||||
|
emitter.emit('setMapCenter',{location:[item.jd,item.wd],zoomLevel:10});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.el-loading-mask{
|
||||||
|
background: rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "@/assets/css/homeScreen.scss";
|
||||||
|
.zdryBox{
|
||||||
|
background: #052249;
|
||||||
|
height: 100%;
|
||||||
|
.ryBox{
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
background-color: #263b70;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
background-color: #146bbe;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
background-color: #263b70;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-corner {
|
||||||
|
background-color: #142141;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-checkbox__label{
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-checked+.el-checkbox__label{
|
||||||
|
color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__inner{
|
||||||
|
background:rgba(0,144,255,0.2);
|
||||||
|
border:1px solid #0072FF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-checked .el-checkbox__inner{
|
||||||
|
background-color: #00FFFF;
|
||||||
|
border-color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner{
|
||||||
|
background-color: #00FFFF;
|
||||||
|
border-color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__inner::after{
|
||||||
|
border:2px solid #000;
|
||||||
|
border-left:0;
|
||||||
|
border-top:0;
|
||||||
|
left:3px;
|
||||||
|
top:0px;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner::before{
|
||||||
|
background: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
125
src/views/home/model/situationAssessment.vue
Normal file
125
src/views/home/model/situationAssessment.vue
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<template>
|
||||||
|
<div class="comom-title">
|
||||||
|
<span class="title">态势研判预警</span>
|
||||||
|
</div>
|
||||||
|
<div class="comom-cnt zdryBox">
|
||||||
|
<ul class="ryBox" v-loading="loading" v-infinite-scroll="loadList" style="overflow: auto">
|
||||||
|
<li v-for="item in personList" :key="item.id" @click="onClickPush(item)">
|
||||||
|
<Assessment :item="item" :dict="{D_SG_TSYPGZ}" :lx="1"/>
|
||||||
|
</li>
|
||||||
|
<MOSTY.Empty :show="!loading && personList.length <= 0" :imgSize="100"></MOSTY.Empty>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import emitter from "@/utils/eventBus.js";
|
||||||
|
import { qcckPost } from "@/api/qcckApi.js";
|
||||||
|
import Assessment from "@/views/home/components/assessmentItem.vue";
|
||||||
|
import * as MOSTY from "@/components/MyComponents/index";
|
||||||
|
import CheckBox from "@/components/checkBox/index.vue";
|
||||||
|
import { ref, reactive, onMounted, getCurrentInstance } from 'vue';
|
||||||
|
import {useRouter} from 'vue-router'
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const {D_SG_TSYPGZ} =proxy.$dict('D_SG_TSYPGZ')
|
||||||
|
const router = useRouter()
|
||||||
|
const total = ref(0);
|
||||||
|
const pageNum = ref(1);
|
||||||
|
const loading = ref(false); // 加载中
|
||||||
|
const personList = ref([]);
|
||||||
|
onMounted(()=>{
|
||||||
|
getList()
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
// 触底加载
|
||||||
|
const loadList = () =>{
|
||||||
|
if( personList.value.length == total.value) return;
|
||||||
|
pageNum.value++;
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
const getList = () =>{
|
||||||
|
let data = { pageSize:10, pageCurrent:pageNum.value };
|
||||||
|
loading.value = true;
|
||||||
|
qcckPost(data,'/mosty-gsxt/tsyp/selectPage').then(res=>{
|
||||||
|
loading.value = false;
|
||||||
|
let arr = res.records || [];
|
||||||
|
personList.value = pageNum.value == 1 ? arr : personList.value.concat(arr);
|
||||||
|
total.value = res.total;
|
||||||
|
}).catch(()=>{
|
||||||
|
loading.value = false;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const onClickPush = (val) => {
|
||||||
|
router.push({
|
||||||
|
path: '/tsypHome',
|
||||||
|
query: {
|
||||||
|
id: val.id,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.el-loading-mask{
|
||||||
|
background: rgba(0,0,0,0.5);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "@/assets/css/homeScreen.scss";
|
||||||
|
.zdryBox{
|
||||||
|
background: #052249;
|
||||||
|
height: 100%;
|
||||||
|
.ryBox{
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-scrollbar {
|
||||||
|
background-color: #263b70;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-thumb {
|
||||||
|
background-color: #146bbe;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-track {
|
||||||
|
background-color: #263b70;
|
||||||
|
}
|
||||||
|
::-webkit-scrollbar-corner {
|
||||||
|
background-color: #142141;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-checkbox__label{
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-checked+.el-checkbox__label{
|
||||||
|
color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__inner{
|
||||||
|
background:rgba(0,144,255,0.2);
|
||||||
|
border:1px solid #0072FF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-checked .el-checkbox__inner{
|
||||||
|
background-color: #00FFFF;
|
||||||
|
border-color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner{
|
||||||
|
background-color: #00FFFF;
|
||||||
|
border-color:#00FFFF;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__inner::after{
|
||||||
|
border:2px solid #000;
|
||||||
|
border-left:0;
|
||||||
|
border-top:0;
|
||||||
|
left:3px;
|
||||||
|
top:0px;
|
||||||
|
}
|
||||||
|
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner::before{
|
||||||
|
background: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
@ -41,4 +41,4 @@ const getCount = () =>{
|
|||||||
height: 50px;
|
height: 50px;
|
||||||
background: url('~@/assets/images/line.png') no-repeat bottom center;
|
background: url('~@/assets/images/line.png') no-repeat bottom center;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="comom-title">
|
<div class="comom-title">
|
||||||
<span class="title">重点人员动态预警</span>
|
<span class="title">常规预警</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="comom-cnt zdryBox">
|
<div class="comom-cnt zdryBox">
|
||||||
<div style="height:33px;">
|
<div style="height:33px;">
|
||||||
<CheckBox :data="checkData" @changeData="changeData"></CheckBox>
|
<CheckBox :data="checkData" @changeData="changeData"></CheckBox>
|
||||||
</div>
|
</div>
|
||||||
<ul class="ryBox" v-loading="loading" v-infinite-scroll="loadList" style="overflow: auto">
|
<ul class="ryBox" v-loading="loading" v-infinite-scroll="loadList" style="overflow: auto">
|
||||||
<li v-for="item in personList" :key="item.id" @click="chooseItem(item)">
|
<li v-for="item in personList" :key="item.id" @click="chooseItem(item)">
|
||||||
<YjItem :item="item"></YjItem>
|
<YjItem :item="item" :dict="{D_BZ_HPZL}"></YjItem>
|
||||||
</li>
|
</li>
|
||||||
<MOSTY.Empty :show="!loading && personList.length <= 0" :imgSize="100"></MOSTY.Empty>
|
<MOSTY.Empty :show="!loading && personList.length <= 0" :imgSize="100"></MOSTY.Empty>
|
||||||
</ul>
|
</ul>
|
||||||
@ -23,12 +23,13 @@ import * as MOSTY from "@/components/MyComponents/index";
|
|||||||
import CheckBox from "@/components/checkBox/index.vue";
|
import CheckBox from "@/components/checkBox/index.vue";
|
||||||
import { ref ,reactive, onMounted,getCurrentInstance} from 'vue';
|
import { ref ,reactive, onMounted,getCurrentInstance} from 'vue';
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
const {D_BZ_HPZL} =proxy.$dict('D_BZ_HPZL')
|
||||||
const checkData = reactive({
|
const checkData = reactive({
|
||||||
list: ["红", "橙", "黄", "蓝"],
|
list: ["人员", "车辆"],
|
||||||
hasChoose: ["红","橙", "黄", "蓝"]
|
hasChoose: ["人员", "车辆"],
|
||||||
});
|
});
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const yjJb = ref('10,20,30,40');
|
const yjJb = ref('1,2');
|
||||||
const pageNum = ref(1);
|
const pageNum = ref(1);
|
||||||
const loading = ref(false); // 加载中
|
const loading = ref(false); // 加载中
|
||||||
const personList = ref([]);
|
const personList = ref([]);
|
||||||
@ -42,10 +43,8 @@ function changeData(val){
|
|||||||
checkData.hasChoose = val;
|
checkData.hasChoose = val;
|
||||||
let ids = [];
|
let ids = [];
|
||||||
val.forEach(it => {
|
val.forEach(it => {
|
||||||
if(it == '红') ids.push(10);
|
if(it == '人员') ids.push(1);
|
||||||
if(it == '橙') ids.push(20);
|
if(it == '车辆') ids.push(2);
|
||||||
if(it == '黄') ids.push(30);
|
|
||||||
if(it == '蓝') ids.push(40);
|
|
||||||
});
|
});
|
||||||
yjJb.value = ids.join(',')
|
yjJb.value = ids.join(',')
|
||||||
if(val.length == 0) personList.value = [];
|
if(val.length == 0) personList.value = [];
|
||||||
@ -60,9 +59,9 @@ const loadList = () =>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getList = () =>{
|
const getList = () =>{
|
||||||
let data = { pageSize:10, pageNum:pageNum.value,yjJb:yjJb.value };
|
let data = { pageSize:10, pageNum:pageNum.value,yjLx:yjJb.value };
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
qcckPost(data,'/mosty-jmxf/tbYjxx/getPageList').then(res=>{
|
qcckPost(data,'/mosty-gsxt/tbYjxx/getPageList').then(res=>{
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
let arr = res.records || [];
|
let arr = res.records || [];
|
||||||
personList.value = pageNum.value == 1 ? arr : personList.value.concat(arr);
|
personList.value = pageNum.value == 1 ? arr : personList.value.concat(arr);
|
||||||
@ -72,7 +71,8 @@ const getList = () =>{
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const chooseItem = (item) =>{
|
const chooseItem = (item) => {
|
||||||
|
console.log(item);
|
||||||
emitter.emit('showHomeYJ',[item]);
|
emitter.emit('showHomeYJ',[item]);
|
||||||
emitter.emit('deletePointArea','home_yj_map');
|
emitter.emit('deletePointArea','home_yj_map');
|
||||||
if(!item.jd || !item.jd) return proxy.$message({ type: "warning", message: "该预警没有坐标!" });
|
if(!item.jd || !item.jd) return proxy.$message({ type: "warning", message: "该预警没有坐标!" });
|
||||||
|
@ -4,7 +4,7 @@ function resolve(dir) {
|
|||||||
return path.join(__dirname, dir);
|
return path.join(__dirname, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
const serverHost = "http://192.168.8.15:8066"//波哥
|
const serverHost = "http://192.168.1.32:8066"//波哥
|
||||||
// const serverHost = "http://192.168.0.231:8006"//线上
|
// const serverHost = "http://192.168.0.231:8006"//线上
|
||||||
// const serverHost = "http://192.168.1.117:8006"//周
|
// const serverHost = "http://192.168.1.117:8006"//周
|
||||||
// const serverHost = "http://192.168.1.98:8006"//毛毛
|
// const serverHost = "http://192.168.1.98:8006"//毛毛
|
||||||
|
Reference in New Issue
Block a user