|
|
|
|
@ -2,10 +2,12 @@ |
|
|
|
|
<basic-container> |
|
|
|
|
<avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" :page.sync="page" |
|
|
|
|
:permission="permissionList" @search-change="searchChange" @search-reset="searchReset" |
|
|
|
|
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> |
|
|
|
|
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" @selection-change="selectionChange"> |
|
|
|
|
<template slot="menuLeft"> |
|
|
|
|
<el-button type="primary" size="small" icon="el-icon-plus" plain @click="rowAdd">新增 |
|
|
|
|
</el-button> |
|
|
|
|
<!-- <el-button type="primary" size="small" icon="el-icon-connection" plain @click="rowUse">使用围栏 |
|
|
|
|
</el-button> --> |
|
|
|
|
</template> |
|
|
|
|
<template #menu="{ row, index }"> |
|
|
|
|
<el-button type="text" icon="el-icon-view" size="small" @click="rowView(row)">详情 |
|
|
|
|
@ -23,17 +25,19 @@ |
|
|
|
|
<el-row :gutter="20"> |
|
|
|
|
<el-col :span="12"> |
|
|
|
|
<el-form-item label="建筑ID" prop="buildingId"> |
|
|
|
|
<el-input v-model="addForm.buildingId" placeholder="请输入建筑ID" disabled maxlength="10" /> |
|
|
|
|
<el-input v-model="addForm.buildingId" placeholder="请输入建筑ID" maxlength="10" /> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="围栏名称" prop="name"> |
|
|
|
|
<el-input v-model="addForm.name" placeholder="请输入围栏名称" :disabled="type == 'view'" maxlength="30" /> |
|
|
|
|
<el-input v-model="addForm.name" placeholder="请输入围栏名称" :disabled="type == 'view'" maxlength="30" |
|
|
|
|
clearable /> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
<el-col :span="12"> |
|
|
|
|
<el-form-item label="围栏类型" prop="type"> |
|
|
|
|
<el-select v-model="addForm.type" placeholder="请选择" :disabled="type == 'view'"> |
|
|
|
|
<el-option value="0" label="跨楼层"></el-option> |
|
|
|
|
<el-option value="1" label="当前楼层"></el-option> |
|
|
|
|
<el-select v-model="addForm.type" placeholder="请选择" :disabled="type == 'view'" style="width:100%;" |
|
|
|
|
clearable> |
|
|
|
|
<el-option v-for="item in railsType" :key="'railsType' + item.value" :value="item.value" |
|
|
|
|
:label="item.label"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="楼层" prop="floorNo" :rules="addForm.type == 1 ? rules.floorNo : [{ required: false }]"> |
|
|
|
|
@ -50,14 +54,14 @@ |
|
|
|
|
<el-table-column label="坐标x"> |
|
|
|
|
<template slot-scope="{row,$index}"> |
|
|
|
|
<el-form-item :prop="`coordinates.${$index}.x`" label-width="0" :rules="rules.x"> |
|
|
|
|
<el-input v-model="row.x" placeholder="请输入坐标x" :disabled="type == 'view'" maxlength="10" /> |
|
|
|
|
<el-input v-model="row.x" placeholder="请输入坐标x" :disabled="type == 'view'" maxlength="10" clearable /> |
|
|
|
|
</el-form-item> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column label="坐标y"> |
|
|
|
|
<template slot-scope="{row,$index}"> |
|
|
|
|
<el-form-item :prop="`coordinates.${$index}.y`" label-width="0" :rules="rules.x"> |
|
|
|
|
<el-input v-model="row.y" placeholder="请输入坐标y" :disabled="type == 'view'" maxlength="10" /> |
|
|
|
|
<el-input v-model="row.y" placeholder="请输入坐标y" :disabled="type == 'view'" maxlength="10" clearable /> |
|
|
|
|
</el-form-item> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
@ -71,8 +75,8 @@ |
|
|
|
|
<el-row :gutter="20"> |
|
|
|
|
<el-col :span="24"> |
|
|
|
|
<el-form-item label="备注" prop="remark"> |
|
|
|
|
<el-input v-model="addForm.remark" placeholder="请输入备注" :disabled="type == 'view'" maxlength="200" |
|
|
|
|
show-word-limit /> |
|
|
|
|
<el-input v-model="addForm.remark" placeholder="请输入备注" :disabled="type == 'view'" maxlength="200" clearable |
|
|
|
|
:autosize="{ minRows: 2, maxRows: 4 }" show-word-limit /> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-col> |
|
|
|
|
</el-row> |
|
|
|
|
@ -82,14 +86,26 @@ |
|
|
|
|
<el-button v-if="type != 'view'" type="primary" @click="submitForm" :loading="submitLoading">确认</el-button> |
|
|
|
|
</div> |
|
|
|
|
</el-dialog> |
|
|
|
|
<!-- 使用围栏 --> |
|
|
|
|
<el-dialog title="使用围栏" :visible.sync="dialogVisible2" :append-to-body="true" :close-on-click-modal="false" |
|
|
|
|
:close-on-press-escape="false" width="800px"> |
|
|
|
|
<el-form ref="addForm2" :model="addForm2" :rules="rules2" label-width="80px"> |
|
|
|
|
<el-form-item label="建筑ID" prop="buildingId"> |
|
|
|
|
<el-input v-model="addForm2.buildingId" placeholder="请输入建筑ID" maxlength="10" /> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-form> |
|
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
|
<el-button @click="dialogVisible2 = false">取 消</el-button> |
|
|
|
|
<el-button type="primary" @click="doRailsUse" :loading="submitLoading">确认</el-button> |
|
|
|
|
</div> |
|
|
|
|
</el-dialog> |
|
|
|
|
</basic-container> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
import { bizLogin } from "@/api/wirelessintrusion/wirelessintrusion"; |
|
|
|
|
import { getRailsList, railsDelete, railsAdd, railsUpdate } from "@/api/rails/rails"; |
|
|
|
|
import { getRailsList, railsDelete, railsAdd, railsUpdate, useRail } from "@/api/rails/rails"; |
|
|
|
|
import { mapGetters } from "vuex"; |
|
|
|
|
import { dateFormat } from "../../util/date" |
|
|
|
|
|
|
|
|
|
export default { |
|
|
|
|
data() { |
|
|
|
|
@ -121,6 +137,10 @@ export default { |
|
|
|
|
current: 1, |
|
|
|
|
total: 0 |
|
|
|
|
}, |
|
|
|
|
//围栏类型字典 |
|
|
|
|
railsType: [ |
|
|
|
|
{ value: 0, label: '跨楼层' }, { value: 1, label: '当前楼层' } |
|
|
|
|
], |
|
|
|
|
option: { |
|
|
|
|
height: 'auto', |
|
|
|
|
calcHeight: 30, |
|
|
|
|
@ -146,6 +166,15 @@ export default { |
|
|
|
|
], |
|
|
|
|
prop: "type", |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
label: "是否使用", |
|
|
|
|
type: 'switch', |
|
|
|
|
prop: "own", |
|
|
|
|
slot: true, |
|
|
|
|
dicData: [ |
|
|
|
|
{ value: 'true', label: '是' }, { value: 'false', label: '否' } |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
label: "建筑 id", |
|
|
|
|
prop: "buildingId", |
|
|
|
|
@ -157,13 +186,26 @@ export default { |
|
|
|
|
{ |
|
|
|
|
label: "备注", |
|
|
|
|
prop: "remark", |
|
|
|
|
overHide: true |
|
|
|
|
overHidden: true |
|
|
|
|
}, |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
data: [], |
|
|
|
|
submitLoading: false, |
|
|
|
|
buildingId: 202861,//建筑id |
|
|
|
|
//围栏使用 |
|
|
|
|
selectionList: [], |
|
|
|
|
ids: [], |
|
|
|
|
addForm2: { |
|
|
|
|
buildingId: '', |
|
|
|
|
id: '' |
|
|
|
|
}, |
|
|
|
|
dialogVisible2: false, |
|
|
|
|
rules2: { |
|
|
|
|
buildingId: [ |
|
|
|
|
{ required: true, message: "请输入建筑id", trigger: "blur" } |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
computed: { |
|
|
|
|
@ -176,34 +218,86 @@ export default { |
|
|
|
|
editBtn: false |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
ids() { |
|
|
|
|
let ids = []; |
|
|
|
|
this.selectionList.forEach(ele => { |
|
|
|
|
ids.push(ele.id); |
|
|
|
|
}); |
|
|
|
|
return ids.join(","); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
//多选 |
|
|
|
|
selectionChange(list) { |
|
|
|
|
this.selectionList = list; |
|
|
|
|
}, |
|
|
|
|
//围栏使用 |
|
|
|
|
rowUse() { |
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
doRailsUse() { |
|
|
|
|
console.log(val, row); |
|
|
|
|
if(val) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
let token = window.sessionStorage.getItem('bizToken'); |
|
|
|
|
if (token == 'undefined' || !token) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
useRail(token, { "buildingId": row.buildingId, "id": [row._id] }).then(res => { |
|
|
|
|
if (res.data.code == 401) { |
|
|
|
|
window.sessionStorage.removeItem('bizToken'); |
|
|
|
|
bizLogin({ appKey: 'Arf7bd4f26', appSecret: 'kb207044c8' }).then(res2 => { |
|
|
|
|
window.sessionStorage.setItem('bizToken', res2.data.data.token); |
|
|
|
|
this.changeOwn(val, row); |
|
|
|
|
}) |
|
|
|
|
} else if(res.data.code == 0) { |
|
|
|
|
setTimeout(() => { |
|
|
|
|
this.onLoad(this.page); |
|
|
|
|
}, 300); |
|
|
|
|
this.$message({ |
|
|
|
|
type: "success", |
|
|
|
|
message: "操作成功!" |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
}, |
|
|
|
|
//查看详情 |
|
|
|
|
rowView(row) { |
|
|
|
|
this.addForm = row; |
|
|
|
|
this.title = '围栏详情'; |
|
|
|
|
this.type = 'view'; |
|
|
|
|
this.dialogVisible = true; |
|
|
|
|
this.$refs.addForm.resetFields(); |
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
this.$refs.addForm.clearValidate(); |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
//新增 |
|
|
|
|
rowAdd(row) { |
|
|
|
|
rowAdd() { |
|
|
|
|
this.addForm = { |
|
|
|
|
type: "", |
|
|
|
|
name: "", |
|
|
|
|
coordinates: [{ "x": 0, "y": 0 }], |
|
|
|
|
buildingId: this.buildingId |
|
|
|
|
buildingId: this.buildingId, |
|
|
|
|
floorNo: "", |
|
|
|
|
remark: "" |
|
|
|
|
}; |
|
|
|
|
this.title = '围栏新增'; |
|
|
|
|
this.type = 'add'; |
|
|
|
|
this.dialogVisible = true; |
|
|
|
|
this.$refs.addForm.resetFields(); |
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
this.$refs.addForm.clearValidate(); |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
//编辑 |
|
|
|
|
rowEdit(row) { |
|
|
|
|
this.addForm = row; |
|
|
|
|
this.addForm = JSON.parse(JSON.stringify(row)); |
|
|
|
|
this.title = '围栏编辑'; |
|
|
|
|
this.type = 'edit'; |
|
|
|
|
this.dialogVisible = true; |
|
|
|
|
this.$refs.addForm.resetFields(); |
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
this.$refs.addForm.clearValidate(); |
|
|
|
|
}) |
|
|
|
|
}, |
|
|
|
|
//保存 |
|
|
|
|
submitForm() { |
|
|
|
|
@ -223,7 +317,7 @@ export default { |
|
|
|
|
this.submitLoading = true; |
|
|
|
|
console.log(this.addForm._id) |
|
|
|
|
if (this.addForm._id != undefined) { |
|
|
|
|
railsUpdate(token, { ...this.addForm, id: this.addForm._id}).then(res => { |
|
|
|
|
railsUpdate(token, { ...this.addForm, id: this.addForm._id, type: this.addForm.type ? Number(this.addForm.type) : '', floorNo: this.addForm.floorNo ? Number(this.addForm.floorNo) : '' }).then(res => { |
|
|
|
|
this.submitLoading = false; |
|
|
|
|
if (res.data.code == 401) { |
|
|
|
|
window.sessionStorage.removeItem('bizToken'); |
|
|
|
|
@ -239,12 +333,17 @@ export default { |
|
|
|
|
type: "success", |
|
|
|
|
message: "操作成功!" |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
this.$message({ |
|
|
|
|
type: "error", |
|
|
|
|
message: res.data.msg |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}, err => { |
|
|
|
|
}, () => { |
|
|
|
|
this.submitLoading = false; |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
railsAdd(token, this.addForm).then(res => { |
|
|
|
|
railsAdd(token, { ...this.addForm, type: this.addForm.type ? Number(this.addForm.type) : '', floorNo: this.addForm.floorNo ? Number(this.addForm.floorNo) : '' }).then(res => { |
|
|
|
|
this.submitLoading = false; |
|
|
|
|
if (res.data.code == 401) { |
|
|
|
|
window.sessionStorage.removeItem('bizToken'); |
|
|
|
|
@ -260,8 +359,13 @@ export default { |
|
|
|
|
type: "success", |
|
|
|
|
message: "操作成功!" |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
this.$message({ |
|
|
|
|
type: "error", |
|
|
|
|
message: res.data.msg |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}, err => { |
|
|
|
|
}, () => { |
|
|
|
|
this.submitLoading = false; |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
@ -298,7 +402,9 @@ export default { |
|
|
|
|
}); |
|
|
|
|
}) |
|
|
|
|
.then(() => { |
|
|
|
|
this.onLoad(this.page); |
|
|
|
|
setTimeout(() => { |
|
|
|
|
this.onLoad(this.page); |
|
|
|
|
}, 300); |
|
|
|
|
this.$message({ |
|
|
|
|
type: "success", |
|
|
|
|
message: "操作成功!" |
|
|
|
|
|