事件指派人员的人员树结构

Lvtianfang
吕天方 12 months ago
parent 13f315f008
commit 37294bc09d

@ -2,7 +2,7 @@
# @Author: 张涛 # @Author: 张涛
# @Date: 2023-11-09 18:29:41 # @Date: 2023-11-09 18:29:41
# @LastEditors: JC9527 # @LastEditors: JC9527
# @LastEditTime: 2024-02-21 17:43:03 # @LastEditTime: 2024-03-01 16:49:05
# @FilePath: \JiangningUrbanManagePc\.env.development # @FilePath: \JiangningUrbanManagePc\.env.development
### ###
# 页面标题 # 页面标题
@ -14,10 +14,10 @@ ENV = 'development'
# 若依管理系统/开发环境 # 若依管理系统/开发环境
# /dev-api # /dev-api
# VUE_APP_BASE_API = 'http://39.101.188.84:9037' # VUE_APP_BASE_API = 'http://39.101.188.84:9037'
VUE_APP_BASE_API = 'https://t-jn-bjh-admin-server.jsszkd.com' # VUE_APP_BASE_API = 'https://t-jn-bjh-admin-server.jsszkd.com'
VUE_APP_BASE_API1 = 'https://t-kd-process-server.jsszkd.com' VUE_APP_BASE_API1 = 'https://t-kd-process-server.jsszkd.com'
VUE_APP_BASE_API2 = 'https://t-jn-development-manager-server.jsszkd.com/api/webapp' VUE_APP_BASE_API2 = 'https://t-jn-development-manager-server.jsszkd.com/api/webapp'
# VUE_APP_BASE_API = 'http://192.168.0.109:9037' VUE_APP_BASE_API = 'http://192.168.0.105:9037'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

@ -212,4 +212,18 @@ export function getFence(params){
method: 'get', method: 'get',
params params
}) })
}
// 部门有imei人员的部门树
export function hasImeiTree(){
return request({
url: '/jn/department/hasImeiTree',
method: 'get'
})
}
// 根据部门id获取部门imei不为空的人员
export function getDept(id){
return request({
url: '/jn/department/getDept/' + id,
method: 'get'
})
} }

@ -4,7 +4,7 @@
* @Author: JC9527 * @Author: JC9527
* @Date: 2023-08-15 09:44:13 * @Date: 2023-08-15 09:44:13
* @LastEditors: JC9527 * @LastEditors: JC9527
* @LastEditTime: 2024-01-28 14:19:23 * @LastEditTime: 2024-03-01 16:48:15
--> -->
<template> <template>
<div class="left-box"> <div class="left-box">
@ -204,7 +204,6 @@ export default {
onlinePeople({pageNum:1,pageSize:10}).then(res=>{ onlinePeople({pageNum:1,pageSize:10}).then(res=>{
this.perpsonNum = res.total; this.perpsonNum = res.total;
// console.log(res.rows,"res.rows");
this.peopleArray = res.rows; this.peopleArray = res.rows;
}) })
}, },

@ -4,7 +4,7 @@
* @Author: JC9527 * @Author: JC9527
* @Date: 2024-01-09 23:08:15 * @Date: 2024-01-09 23:08:15
* @LastEditors: JC9527 * @LastEditors: JC9527
* @LastEditTime: 2024-02-21 18:15:08 * @LastEditTime: 2024-03-04 10:48:02
--> -->
<template> <template>
<div class="map-main"> <div class="map-main">
@ -146,7 +146,7 @@
<div class="event-info"> <div class="event-info">
<div class="dot"></div> <div class="dot"></div>
<div class="name">描述</div> <div class="name">描述</div>
<div class="position">XXXXXXXXXXXXXX</div> <div class="position">{{ eventInfo.info.content }}</div>
</div> </div>
<div class="btn" @click="eventBtn"> <div class="btn" @click="eventBtn">
指派 指派
@ -1083,7 +1083,7 @@ export default {
// } // }
// }) // })
let data = {'queryValue' : [], "myInstanceClassify" : "all", "parameterValue":[], fks: []} let data = {'queryValue' : [], "myInstanceClassify" : "all", "parameterValue":[], fks: []}
ViewListPage({viewCode:'shi_jian_shou_li_list_page', pageNo: 1, pageSize:500}, data).then(res=>{ ViewListPage({viewCode:'event-all-list', pageNo: 1, pageSize:500}, data).then(res=>{
this.mapLoading = false; this.mapLoading = false;
if(res.code == 200) { if(res.code == 200) {
let videoPoint = []; let videoPoint = [];
@ -1345,7 +1345,7 @@ export default {
}, },
// //
eventBtn(){ eventBtn(){
this.$refs.crewAssign.open(); this.$refs.crewAssign.open(this.eventInfo.info);
}, },
// //
monitorVideos(status){ monitorVideos(status){

@ -4,22 +4,22 @@
* @Author: JC9527 * @Author: JC9527
* @Date: 2023-08-17 09:04:40 * @Date: 2023-08-17 09:04:40
* @LastEditors: JC9527 * @LastEditors: JC9527
* @LastEditTime: 2023-12-11 13:23:15 * @LastEditTime: 2024-03-04 10:49:27
--> -->
<template> <template>
<dia-log ref="dialog2" width="30%" title="人员指派"> <dia-log ref="dialog2" width="30%" title="人员指派">
<div class="crew-assign"> <div class="crew-assign">
<div class="item"> <div class="item">
<div class="ball"></div> <div class="ball"></div>
<div class="content">事件名称<span>xx小区乱堆杂物</span></div> <div class="content">事件名称<span>{{ eventInfo.name }}</span></div>
</div> </div>
<div class="item"> <div class="item">
<div class="ball"></div> <div class="ball"></div>
<div class="content">事件类别<span>暴露垃圾</span></div> <div class="content">事件类别<span>{{ eventInfo.type }}</span></div>
</div> </div>
<div class="item"> <div class="item">
<div class="ball"></div> <div class="ball"></div>
<div class="content">事件地址<span>xx街道xx小区</span></div> <div class="content">事件地址<span>{{ eventInfo.address }}</span></div>
</div> </div>
<div class="itemtwo"> <div class="itemtwo">
<div class="left"> <div class="left">
@ -27,15 +27,21 @@
<div class="content">指派人员</div> <div class="content">指派人员</div>
</div> </div>
<div class="right"> <div class="right">
<el-select v-model="value" placeholder="请选择"> <el-cascader
<el-option v-model="value"
:options="options"
placeholder="请选择"
@change="handleChange"
:props="perpsonProps"
>
<!-- <el-option
v-for="item in options" v-for="item in options"
:key="item.value" :key="item.value"
:label="item.label" :label="item.label"
:value="item.value" :value="item.value"
> >
</el-option> </el-option> -->
</el-select> </el-cascader>
</div> </div>
</div> </div>
<div class="itemtwo"> <div class="itemtwo">
@ -62,39 +68,50 @@
</template> </template>
<script> <script>
import diaLog from "../../components/dialog/index.vue"; import diaLog from "../../components/dialog/index.vue";
import { hasImeiTree, getDept } from "@/api/bigScreenApi"
export default { export default {
components: { diaLog }, components: { diaLog },
data() { data() {
return { return {
dateTime: "", dateTime: "",
options: [ options: [],
{
value: "选项1",
label: "李飞",
},
{
value: "选项2",
label: "李飞",
},
{
value: "选项3",
label: "李飞",
},
{
value: "选项4",
label: "李飞",
},
{
value: "选项5",
label: "李飞",
},
],
value: "", value: "",
perpsonProps:{
label:"deptName",
value:"deptId",
lazy:true,
lazyLoad:(node, resolve)=>{
const { children,value,level } = node;
// console.log(children,"children")
// console.log(value);
// console.log("level",level);
if(children?.length == 0 ) {
getDept(value).then(res=>{
const nodes = Array.from(res.data).map((item)=>{
return {
deptId:item.userId,
deptName:item.nickName,
leaf:level >= level
}
})
resolve(nodes)
})
} else {
resolve(node)
}
}
},
eventInfo:{},
}; };
}, },
methods: { methods: {
open() { open(info) {
this.$refs.dialog2.open("2"); this.$refs.dialog2.open("2");
hasImeiTree().then(res=>{
// console.log('',res);
this.options = res.data[0].children[0].children;
})
this.eventInfo = info;
}, },
Close() { Close() {
this.$refs.dialog2.Close(); this.$refs.dialog2.Close();
@ -104,6 +121,9 @@ export default {
this.$refs.dialog2.Close(); this.$refs.dialog2.Close();
}, },
confirm() {}, confirm() {},
handleChange(value){
console.log(value);
},
}, },
}; };
</script> </script>
@ -200,7 +220,7 @@ export default {
-webkit-text-fill-color: rgba(211, 238, 242, 0.2); -webkit-text-fill-color: rgba(211, 238, 242, 0.2);
} }
} }
::v-deep .el-select { ::v-deep .el-cascader {
background-color: transparent; background-color: transparent;
width: 350px; width: 350px;
.el-input .el-input

@ -57,6 +57,25 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24">
<el-form-item prop="openTime">
<template slot="label">
<div class="new-event-form">
<div class="ball"></div>
<span>发生时间</span>
</div>
</template>
<div class="right">
<el-date-picker
v-model="taskForm.openTime"
type="datetime"
placeholder="选择日期时间"
>
</el-date-picker>
<img class="data_icon" src="@/assets/images/timeIcon.png" alt="" />
</div>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
@ -146,6 +165,7 @@ export default {
title:"任务派发", title:"任务派发",
taskForm:{ taskForm:{
task:"", task:"",
openTime:"",
}, },
options:[], options:[],
rules:{ rules:{
@ -289,6 +309,7 @@ export default {
} }
.el-form-item__content { .el-form-item__content {
flex: 1; flex: 1;
padding-right: 20px;
// background-image: url("../../../assets/images/timebg.png"); // background-image: url("../../../assets/images/timebg.png");
.form-div { .form-div {
font-size: 14px; font-size: 14px;
@ -307,7 +328,7 @@ export default {
// background-color: transparent; // background-color: transparent;
// width: 250px; // width: 250px;
// } // }
.select-input { .select-input,.el-date-editor {
display: flex; display: flex;
align-items: center; align-items: center;
width: 100%; width: 100%;
@ -341,7 +362,7 @@ export default {
.btn { .btn {
width: 91px; width: 91px;
height: 35px; height: 35px;
margin: 0 20px; margin-left: 20px;
background: rgba(0, 60, 116, 0.6); background: rgba(0, 60, 116, 0.6);
box-shadow: inset 0px 0px 6px 0px #00c2ff; box-shadow: inset 0px 0px 6px 0px #00c2ff;
border-radius: 2px 2px 2px 2px; border-radius: 2px 2px 2px 2px;
@ -414,6 +435,50 @@ export default {
-webkit-text-fill-color: rgba(211, 238, 242, 0.2); -webkit-text-fill-color: rgba(211, 238, 242, 0.2);
} }
} }
.right {
background-image: url("../../../assets/images/timebg.png");
// width: 350px;
width: 100%;
margin-right: 20px;
box-sizing: border-box;
height: 35px;
background-size: 100% 100%;
position: relative;
::v-deep .el-input__prefix {
display: none;
}
::v-deep .el-date-editor {
background-color: transparent;
// width: 350px;
.el-input__inner {
background-color: transparent;
border: none;
width: 100%;
height: 35px;
font-size: 14px;
font-family: "Source Han Sans CN-Medium";
font-weight: 500;
color: #e9f4ff;
padding-left: 12px;
}
.el-input__inner::placeholder {
/* 在这里添加你想要修改的 placeholder 样式 */
font-size: 14px;
font-family: "Source Han Sans CN-Regular";
font-weight: 400;
color: #d3eef2;
-webkit-background-clip: text;
-webkit-text-fill-color: rgba(211, 238, 242, 0.2);
}
}
.data_icon {
position: absolute;
right: 30px;
top: 8px;
width: 20px;
}
}
} }
} }
::v-deep section { ::v-deep section {

Loading…
Cancel
Save