Commit 9201a420 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 50f1882f dec872c0
...@@ -97,7 +97,9 @@ export default { ...@@ -97,7 +97,9 @@ export default {
}, },
{ {
title: "地址", title: "地址",
dataIndex: "address", customRender: (text) => {
return text.address || "--";
},
}, },
{ {
title: "楼栋", title: "楼栋",
...@@ -215,6 +217,7 @@ export default { ...@@ -215,6 +217,7 @@ export default {
let { code, msg } = res.data; let { code, msg } = res.data;
if (code == 1) { if (code == 1) {
_this.$message.success(msg); _this.$message.success(msg);
_this.selectedRowKeys = [];
_this.getHallList(); _this.getHallList();
} }
}, },
......
...@@ -105,7 +105,6 @@ export default { ...@@ -105,7 +105,6 @@ export default {
// 关闭弹窗 // 关闭弹窗
handleClose() { handleClose() {
this.$refs.form.resetFields(); this.$refs.form.resetFields();
console.log(this.form);
this.Visible = false; this.Visible = false;
}, },
// 保存 // 保存
...@@ -130,7 +129,7 @@ export default { ...@@ -130,7 +129,7 @@ export default {
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.ant-input-number { .ant-input-number {
width: 100%; width: 100%;
} }
......
<template>
<div>
<a-modal
v-model="Visible"
:maskClosable="false"
title="新增大厅窗口"
@cancel="handleClose"
destroyOnClose
centered
>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</template>
<a-form-model
ref="form"
:model="form"
:rules="rules"
:label-col="{ span: 4 }"
:wrapper-col="{ span: 20 }"
>
<a-form-model-item label="所属大厅" prop="hallName">
<a-select
@change="handleChange"
labelInValue
placeholder="请选择所属大厅"
v-model="selectInfo"
>
<a-select-option v-for="v in hallList" :key="v.id" :value="v.id">
{{ v.hallName }}
</a-select-option>
</a-select>
</a-form-model-item>
</a-form-model>
</a-modal>
</div>
</template>
<script>
import {
// saveWindowHall,
batchSaveWindowHall,
} from "@/services/hall";
export default {
props: {
addVisile: {
type: Boolean,
require: true,
default: false,
},
hallList: {
type: Array,
require: true,
default: () => {
return [];
},
},
},
components: {},
data() {
return {
selectInfo: undefined,
form: {
windowId: "", // 窗口id
windowName: "", // 窗口名称
hallId: "", // 大厅id
hallName: "", // 大厅名称
// sort: "", // 排序
// remark: "", // 备注
},
windowList: [], // 选择窗口列表
rules: {
hallName: [
{ required: true, message: "请选择所属大厅", trigger: "change" },
],
},
};
},
computed: {
Visible: {
get() {
return this.addVisile;
},
set(val) {
this.$emit("update:addVisile", val);
},
},
},
methods: {
// 切换选择
handleChange(row) {
this.form.hallId = row.key;
this.form.hallName = row.label;
},
// 新增
onAdd(rows) {
this.windowList = rows;
// this.form.windowId = rows.id;
// this.form.windowName = rows.name;
},
// 关闭弹窗
handleClose() {
this.selectInfo = undefined;
this.$refs.form.resetFields();
this.Visible = false;
},
// 保存
handleOk() {
this.$refs.form.validate(async (valid) => {
if (valid) {
let arr = this.windowList.map((v) => {
return {
windowId: v.id, // 窗口id
windowName: v.name, // 窗口名称
hallId: this.form.hallId, // 大厅id
hallName: this.form.hallName, // 大厅名称
};
});
let res = await batchSaveWindowHall(arr);
let { code, msg } = res.data;
if (code == 1) {
this.$message.success(msg);
this.$emit("addSuccess");
this.handleClose();
}
}
});
},
// 重置
handleReset() {
this.selectInfo = undefined;
this.$refs.form.resetFields();
},
},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
...@@ -149,35 +149,35 @@ const options = { ...@@ -149,35 +149,35 @@ const options = {
}, },
], ],
}, },
// { {
// path: "hall", path: "hall",
// name: "大厅管理", name: "大厅管理",
// meta: { meta: {
// icon: "gateway", icon: "gateway",
// }, },
// component: () => import("@/pages/basicset/hall/Hall"), component: () => import("@/pages/basicset/hall/Hall"),
// redirect: "/hall/hallmanage", redirect: "/hall/hallmanage",
// children: [ children: [
// { {
// path: "hallmanage", path: "hallmanage",
// name: "", name: "",
// component: () => component: () =>
// import("@/pages/basicset/hall/hallmanage/HallManage.vue"), import("@/pages/basicset/hall/hallmanage/HallManage.vue"),
// meta: { meta: {
// invisible: true, invisible: true,
// }, },
// }, },
// { {
// path: "hallwindow", path: "hallwindow",
// name: "大厅窗口管理", name: "大厅窗口管理",
// meta: { meta: {
// invisible: true, invisible: true,
// }, },
// component: () => component: () =>
// import("@/pages/basicset/hall/hallwindow/HallWindow.vue"), import("@/pages/basicset/hall/hallwindow/HallWindow.vue"),
// }, },
// ], ],
// }, },
{ {
path: "personnel", path: "personnel",
name: "工作人员管理", name: "工作人员管理",
......
...@@ -352,6 +352,7 @@ module.exports = { ...@@ -352,6 +352,7 @@ module.exports = {
list: `${BASE_URL}/base/window/hall/list`, list: `${BASE_URL}/base/window/hall/list`,
info: `${BASE_URL}/base/window/hall/info`, info: `${BASE_URL}/base/window/hall/info`,
save: `${BASE_URL}/base/window/hall/save`, save: `${BASE_URL}/base/window/hall/save`,
batchSave: `${BASE_URL}/base/window/hall/batchSave`,
delete: `${BASE_URL}/base/window/hall/delete`, delete: `${BASE_URL}/base/window/hall/delete`,
}, },
}; };
...@@ -47,6 +47,10 @@ export async function addWindow(data) { ...@@ -47,6 +47,10 @@ export async function addWindow(data) {
export async function delWindow(data) { export async function delWindow(data) {
return request(window.delete, METHOD.GET, data); return request(window.delete, METHOD.GET, data);
} }
// 获取差集窗口列表
export async function getSubHalllist(data) {
return request(window.subList, METHOD.POST, data);
}
/** /**
* 窗口业务 * 窗口业务
......
...@@ -46,6 +46,11 @@ export const saveWindowHall = (data) => { ...@@ -46,6 +46,11 @@ export const saveWindowHall = (data) => {
return request(windowHall.save, METHOD.POST, data); return request(windowHall.save, METHOD.POST, data);
}; };
// 批量保存大厅窗口
export const batchSaveWindowHall = (data) => {
return request(windowHall.batchSave, METHOD.POST, data);
};
// 删除大厅窗口 // 删除大厅窗口
export const delWindowHall = (data) => { export const delWindowHall = (data) => {
return request(windowHall.delete, METHOD.get, data); return request(windowHall.delete, METHOD.get, data);
......
...@@ -185,3 +185,9 @@ export function getCountImpossible(params) { ...@@ -185,3 +185,9 @@ export function getCountImpossible(params) {
export function getImpossibleInfo(params) { export function getImpossibleInfo(params) {
return http.get(`${BASEURL}/admin/impossible/impossibleInfo`, params); return http.get(`${BASEURL}/admin/impossible/impossibleInfo`, params);
} }
/**
* AI效能监察异常行为数据报表
*/
export function getKqalert(params) {
return http.get(`${BASEURL}/admin/kqalert/list`, params);
}
\ No newline at end of file
...@@ -14,12 +14,12 @@ ...@@ -14,12 +14,12 @@
/> />
<a-input <a-input
allowClear allowClear
v-model="searchName" v-model="Query.workman_name"
placeholder="请输入工作人员姓名查询 " placeholder="请输入工作人员姓名查询 "
> >
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
<a-select default-value="001"> <a-select default-value="001" placeholder="请选择窗口">
<!-- <a-select-option <!-- <a-select-option
v-for="(item, index) of selectOptions" v-for="(item, index) of selectOptions"
:key="index" :key="index"
...@@ -31,24 +31,22 @@ ...@@ -31,24 +31,22 @@
<a-select-option value="001"> 窗口001 </a-select-option> <a-select-option value="001"> 窗口001 </a-select-option>
<a-select-option value="002"> 窗口002 </a-select-option> <a-select-option value="002"> 窗口002 </a-select-option>
</a-select> </a-select>
<a-select default-value="001"> <a-select v-model="Query.warn_alert" placeholder="请选择类型">
<!-- <a-select-option <a-select-option value=""> 全部 </a-select-option>
v-for="(item, index) of selectOptions" <a-select-option
:key="index" v-for="(item,i) in warn_alert"
:value="item.value" :key="i"
:value="i"
> >
{{ item.label }} {{ item }}
</a-select-option> --> </a-select-option>
<a-select-option value="001"> 类型001 </a-select-option>
<a-select-option value="002"> 类型002 </a-select-option>
</a-select> </a-select>
<a-range-picker <a-range-picker
format="YYYY年MM月DD日" format="YYYY年MM月DD日"
class="range_picker_style" class="range_picker_style"
@change="rangePickerChange" @change="rangePickerChange"
v-model="BegindAndEndTime" v-model="Query.time"
> >
</a-range-picker> </a-range-picker>
...@@ -71,7 +69,7 @@ ...@@ -71,7 +69,7 @@
:columns="tableHeaders" :columns="tableHeaders"
:dataSource="tableSourceData" :dataSource="tableSourceData"
> >
<template slot="operation" slot-scope="text, record, index"> <template slot="operation" slot-scope="text, record">
<a-button type="link" @click="openDetails" <a-button type="link" @click="openDetails"
>查看详情{{ record.id }}</a-button >查看详情{{ record.id }}</a-button
> >
...@@ -83,17 +81,33 @@ ...@@ -83,17 +81,33 @@
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import {getKqalert} from "@/api/dataAdmin"
const warn_alert = {
1:'离岗',
2:'离开',
4:'玩手机',
5:'扶头',
6:'趴桌',
}
export default { export default {
mixins: [table], mixins: [table],
name: "PortalAdminVueReportForm", name: "PortalAdminVueReportForm",
data() { data() {
return { return {
warn_alert,
Query:{
have_process:"",//只看未处理 0
warn_alert:"",//1离岗,2离开 4:玩手机 5:扶头 6:趴桌
window_id:"",//窗口ID
workman_name:"",//工作人员姓名
time:[],//时间段
},//查询条件
checkboxVALUE: [], checkboxVALUE: [],
BegindAndEndTime: [], BegindAndEndTime: [],
checkboxOptions: [ checkboxOptions: [
{ {
label: "只看未处理", label: "只看未处理",
value: "ID001", value: "0",
}, },
], ],
tableHeaders: [ tableHeaders: [
...@@ -107,48 +121,48 @@ export default { ...@@ -107,48 +121,48 @@ export default {
}, },
{ {
title: "报警类型", title: "报警类型",
align: "center", dataIndex: "warn_alert",
dataIndex: "报警类型", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "发生窗口", title: "发生窗口",
align: "center", dataIndex: "window_name",
dataIndex: "发生窗口", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "工作人员", title: "工作人员",
align: "center", dataIndex: "workman_name",
dataIndex: "工作人员", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "所属部门", title: "所属部门",
align: "center", dataIndex: "section_name",
dataIndex: "所属部门", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "手机号", title: "手机号",
align: "center", dataIndex: "workman_phone",
dataIndex: "手机号", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "发生时间", title: "发生时间",
align: "center", dataIndex: "out_time",
dataIndex: "发生时间", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "时长", title: "时长",
align: "center", dataIndex: "duration",
dataIndex: "时长", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "是否准确", title: "是否准确",
align: "center", dataIndex: "isaccuracy",
dataIndex: "是否准确", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "是否处理", title: "是否处理",
align: "center", dataIndex: "have_process_name",
dataIndex: "是否处理", customRender:(text, record)=>text?text:'--'
}, },
{ {
title: "操作", title: "操作",
...@@ -165,23 +179,21 @@ export default { ...@@ -165,23 +179,21 @@ export default {
}, },
components: {}, components: {},
mounted() { mounted() {
this.onGetKqalert()
this.setMoment(); this.setMoment();
for (let key = 0; key < 20; key++) {
this.tableSourceData.push({
id: `00${key + 1}`,
报警类型: `离岗${key + 1}`,
发生窗口: `001号窗口${key + 1}`,
工作人员: `刘德华${key + 1}`,
所属部门: `网络理政办${key + 1}`,
手机号: `13080888888${key + 1}`,
发生时间: `2022-07-03 18:00:00${key + 1}`,
时长: `15分32秒${key + 1}`,
是否准确: `准确${key + 1}`,
是否处理: `未处理${key + 1}`,
});
}
}, },
methods: { methods: {
// 报表接口
onGetKqalert(){
getKqalert(this.Query).then(res=>{
const {code,data} = res
if(code == 1){
this.tableSourceData = data.data
this.tablePagination.total = data.total
}
console.log(res)
})
},
openDetails() { openDetails() {
console.log("跳转网页"); console.log("跳转网页");
}, },
...@@ -189,8 +201,11 @@ export default { ...@@ -189,8 +201,11 @@ export default {
console.log(val); console.log(val);
}, },
checkboxonChange(val) { checkboxonChange(val) {
console.log(val); if(val.length == 0){
console.log(this.checkboxVALUE); this.Query.have_process = ""
}else{
this.Query.have_process = "0"
}
}, },
QueueState(type) { QueueState(type) {
switch (type) { switch (type) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment