关联设备修改6

pull/33/head
lukeyan 1 year ago
parent eda71f5611
commit 6bd6a4c8fe

@ -47,4 +47,36 @@ export function addVideoList(params) {
method: 'get', method: 'get',
params params
}) })
}
// 新增智能感应
export function addPerceptionList(params) {
return request({
url: '/safety/tbDevicePerceptionInfo/insert',
method: 'get',
params
})
}
// 修改智能感应
export function changePerceptionList(params) {
return request({
url: '/safety/tbDevicePerceptionInfo/update',
method: 'post',
params
})
}
// 导出视频监控
export function exportVideo(params) {
return request({
url: '/safety/tbDeviceVideoInfo/export',
method: 'post',
params
})
}
// 导出智能感应
export function exportPerception(params) {
return request({
url: '/safety/tbDevicePerceptionInfo/export',
method: 'post',
params
})
} }

@ -4,6 +4,7 @@
class="dialog" class="dialog"
:title="dialogTitle" :title="dialogTitle"
:visible.sync="visible" :visible.sync="visible"
@close="close()"
:close-on-click-modal="false" :close-on-click-modal="false"
width="970px" width="970px"
> >
@ -18,13 +19,10 @@
:disabled="disabled" :disabled="disabled"
> >
<el-form-item label="企业名称" prop="companyName"> <el-form-item label="企业名称" prop="companyName">
<el-select <el-select v-model="form.companyName" placeholder="请选择企业">
ref="companySelect"
v-model="form.companyName"
placeholder="请选择企业"
>
<el-option <el-option
v-for="item in form.company" v-for="item in list.company"
@click.native="companyNameselected(item.companyName, item.id)"
:key="item.id" :key="item.id"
:label="item.companyName" :label="item.companyName"
:value="item.id" :value="item.id"
@ -32,8 +30,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item> </el-form-item>
</el-form-item>
<el-form-item label="设备名称" prop="deviceName"> <el-form-item label="设备名称" prop="deviceName">
<el-input v-model="form.deviceName"></el-input> <el-input v-model="form.deviceName"></el-input>
</el-form-item> </el-form-item>
@ -46,13 +43,14 @@
<el-form-item label="登录密码" prop="password"> <el-form-item label="登录密码" prop="password">
<el-input v-model="form.password"></el-input> <el-input v-model="form.password"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="设备大类" prop="deviceVideoParentType"> <el-form-item label="设备大类" prop="devicePerceptionParentTypeCn">
<el-select <el-select
v-model="form.deviceVideoParentType" v-model="form.devicePerceptionParentTypeCn"
placeholder="请选择设备大类" placeholder="请选择设备大类"
> >
<el-option <el-option
v-for="item in form.perception_type" v-for="item in list.perception_type"
@click.native="parent_selected(item.dictLabel,item.dictValue)"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -60,13 +58,30 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备小类" prop="deviceVideoSubType"> <el-form-item label="是否卡口" prop="isDoorwayVideoCn">
<el-select <el-select
v-model="form.deviceVideoSubType" ref="isDoorwayVideoCn"
v-model="form.isDoorwayVideoCn"
placeholder="请选择是否卡口"
>
<el-option
v-for="item in list.isDoorwayVideoList"
@click.native="isDoorselected(item.id)"
:key="item.id"
:label="item.label"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="设备小类" prop="devicePerceptionSubTypeCn">
<el-select
v-model="form.devicePerceptionSubTypeCn"
placeholder="请选择设备小类" placeholder="请选择设备小类"
> >
<el-option <el-option
v-for="item in form.video_type" v-for="item in list.video_type"
@click.native="perception_selected(item.dictLabel,item.dictValue)"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -126,10 +141,24 @@
<el-form-item label="U3D高度" prop="u3dHeight"> <el-form-item label="U3D高度" prop="u3dHeight">
<el-input v-model="form.u3dHeight"></el-input> <el-input v-model="form.u3dHeight"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="设备方位" prop="orientation"> <el-form-item label="进出方向" prop="directionCn">
<el-select v-model="form.orientation" placeholder="请选择设备方位"> <el-select v-model="form.directionCn" placeholder="请选择进出方向">
<el-option <el-option
v-for="item in form.orientation_types" v-for="item in list.directionList"
:key="item.id"
:label="item.label"
:value="item.label"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="设备方位" prop="orientationCn">
<el-select
v-model="form.orientationCn"
placeholder="请选择设备方位"
>
<el-option
v-for="item in list.orientation_types"
:key="item.dictValue" :key="item.dictValue"
:label="item.dictLabel" :label="item.dictLabel"
:value="item.dictValue" :value="item.dictValue"
@ -137,7 +166,11 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="安装位置" prop="deviceAddress"> <el-form-item
label="安装位置"
prop="deviceAddress"
class="deviceAddress_text"
>
<el-input v-model="form.deviceAddress"></el-input> <el-input v-model="form.deviceAddress"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -169,11 +202,10 @@
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button <el-button
@click=" @click="saveFormData('equipmentForm', 'videoForm', 'addressForm')"
saveFormData('equipmentForm', 'videoForm', 'addressForm', 'otherForm')
"
> </el-button > </el-button
> >
<!-- <el-button @click="save()"></el-button> -->
<el-button @click="close()"> </el-button> <el-button @click="close()"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -182,27 +214,43 @@
import { import {
commonDict, commonDict,
getCompanyList, getCompanyList,
addVideoList, addPerceptionList,
changePerceptionList,
} from "@/api/correlationEquipment"; } from "@/api/correlationEquipment";
import { debounce } from "@/utils/publicMethod_lxy/debounce.js"; // import { debounce } from "@/utils/publicMethod_lxy/debounce.js";
export default { export default {
name: "addVideoDialog", name: "addPerceptionDialog",
data() { data() {
return { return {
visible: false, visible: false,
dialogTitle: "新建", dialogTitle: "",
list: {
company: [],
video_type: [],
perception_type: [],
isDoorwayVideoList: [
{ label: "是", id: "1" },
{ label: "否", id: "2" },
],
directionList: [
{ label: "进", id: "1" },
{ label: "出", id: "2" },
],
orientation_types: [],
},
form: { form: {
// //
companyId: "", companyId: "",
companyName: "", companyName: "",
company: [],
deviceName: "", deviceName: "",
deviceIp: "", deviceIp: "",
deviceVideoParentType: "", // deviceVideoParentType: "",
deviceParentType: "", // devicePerceptionSubType: "", //
video_type: [], devicePerceptionSubTypeCn: "", //
deviceVideoSubType: "", // devicePerceptionParentType: "", //
perception_type: [], devicePerceptionParentTypeCn: "", //
isDoorwayVideoCn: "",
isDoorwayVideo: "",
account: "", account: "",
password: "", password: "",
// //
@ -217,8 +265,9 @@ export default {
u3dLatitude: "", u3dLatitude: "",
deviceHeight: "", deviceHeight: "",
u3dHeight: "", u3dHeight: "",
directionCn: "",
orientation: "", orientation: "",
orientation_types: [], orientationCn: "",
deviceAddress: "", deviceAddress: "",
// //
deviceBrand: "", deviceBrand: "",
@ -227,8 +276,6 @@ export default {
deviceSn: "", deviceSn: "",
deviceMac: "", deviceMac: "",
devicePort: "", devicePort: "",
isDoorwayVideo: "",
isShowVideo: "",
}, },
disabled: false, // disabled: false, //
rules: { rules: {
@ -241,10 +288,10 @@ export default {
deviceIp: [ deviceIp: [
{ required: true, message: "请填写设备ip", trigger: "blur" }, { required: true, message: "请填写设备ip", trigger: "blur" },
], ],
deviceVideoParentType: [ devicePerceptionParentTypeCn: [
{ required: true, message: "请选择设备大类", trigger: "change" }, { required: true, message: "请选择设备大类", trigger: "change" },
], ],
deviceVideoSubType: [ devicePerceptionSubTypeCn: [
{ required: true, message: "请选择设备小类", trigger: "change" }, { required: true, message: "请选择设备小类", trigger: "change" },
], ],
gbsChannelNo: [ gbsChannelNo: [
@ -265,64 +312,77 @@ export default {
}, },
}; };
}, },
created() { created() {},
//
const params = {
dictType: "device_video_sub_type",
};
commonDict(params).then((res) => {
this.form.video_type = res.data;
});
const val = {
dictType: "device_perception_sub_type",
};
//
commonDict(val).then((res) => {
this.form.perception_type = res.data;
});
//
const param_op = {
dictType: "orientation",
};
commonDict(param_op).then((res) => {
this.form.orientation_types = res.data;
});
//
getCompanyList().then((res) => {
this.form.company = res.data;
});
},
methods: { methods: {
open(num, row) { open(num, row) {
this.visible = true;
if (num === "1") { if (num === "1") {
this.dialogTitle = "新建"; this.dialogTitle = "新建";
this.disabled = false;
} else if (num === "2") { } else if (num === "2") {
this.dialogTitle = "编辑"; this.dialogTitle = "编辑";
this.form = row; this.form = row;
this.disabled = false;
console.log("row12345", row);
} else if (num === "5") { } else if (num === "5") {
this.dialogTitle = "详情"; this.dialogTitle = "详情";
this.form = row; this.form = row;
this.disabled = true; this.disabled = true;
} }
this.visible = true;
//
const params = {
dictType: "device_video_sub_type",
};
commonDict(params).then((res) => {
this.list.video_type = res.data;
});
//
const val = {
dictType: "device_perception_sub_type",
};
commonDict(val).then((res) => {
this.list.perception_type = res.data;
});
//
const param_op = {
dictType: "orientation",
};
commonDict(param_op).then((res) => {
this.list.orientation_types = res.data;
});
//
getCompanyList().then((res) => {
this.list.company = res.data;
});
},
isDoorselected(value) {
this.form.isDoorwayVideo = value; //
},
companyNameselected(name, value) {
this.form.companyName = name;
this.form.companyId = value; //
},
parent_selected(label,value) {
this.form.devicePerceptionParentTypeCn = label
this.form.devicePerceptionParentType = value; //
console.log("this.form3333", this.form);
},
perception_selected(label,value) {
this.form.devicePerceptionSubTypeCn = label
this.form.devicePerceptionSubType = value; //
console.log("this.form2222", this.form);
}, },
// //
saveFormData: debounce(function (formName1, formName2, formName3) { saveFormData(formName1,formName2,formName3) {
this.$refs[formName1].validate((valid1) => { if (this.dialogTitle === "新建") {
if (valid1) { this.$refs[formName1].validate((valid1) => {
this.$refs[formName2].validate((valid2) => { if (valid1) {
if (valid2) { this.$refs[formName2].validate((valid2) => {
this.$refs[formName3].validate((valid3) => { if (valid2) {
if (valid3) { this.$refs[formName3].validate((valid3) => {
delete this.form.company; if (valid3) {
delete this.form.video_type; const params = this.form;
delete this.form.perception_type; addPerceptionList(params)
delete this.form.orientation_types;
this.form.companyId = this.$refs.companySelect.selected.value; // id
const params = this.form;
console.log("this.form", this.form);
if (this.dialogTitle === "新建") {
addVideoList(params)
.then((res) => { .then((res) => {
this.visible = false; this.visible = false;
this.$message({ this.$message({
@ -334,31 +394,64 @@ export default {
console.log(err); // console.log(err); //
}); });
} }
} else { }); //
this.$message.warning("请填入必填项"); } else {
} this.$message.warning("请填入必填项");
}); // }
} else { }); //
this.$message.warning("请填入必填项"); } else {
} this.$message.warning("请填入必填项");
}); // }
} else { }); //
this.$message.warning("请填入必填项"); } else if (this.dialogTitle === "编辑") {
} this.$refs[formName1].validate((valid) => {
}); // if (valid) {
}, 300), this.$refs[formName2].validate((valid) => {
if (valid) {
this.$refs[formName3].validate((valid) => {
if (valid) {
console.log('this.form123', JSON.stringify(this.form))
console.log('this.form124', JSON.parse(JSON.stringify(this.form)))
changePerceptionList(JSON.parse(JSON.stringify(this.form)))
.then((res) => {
console.log(res);
console.log('this.form125', JSON.parse(JSON.stringify(this.form)))
this.visible = false;
this.$message.success("编辑成功");
})
.catch((err) => {
console.log(err); //
this.$message.warning("编辑失败");
});
} else {
this.$message.warning("请填入必填项");
}
}); //
} else {
this.$message.warning("请填入必填项");
}
}); //
} else {
this.$message.warning("请填入必填项");
}
});
}
},
// save() {
// console.log('this.form7777',this.form);
// },
// //
close() { close() {
this.visible = false; this.visible = false;
// //
// //
this.$refs['equipmentForm'].resetFields() this.$refs["equipmentForm"].resetFields();
// //
this.$refs['videoForm'].resetFields() this.$refs["videoForm"].resetFields();
// //
this.$refs['addressForm'].resetFields() this.$refs["addressForm"].resetFields();
// //
this.$refs['otherForm'].resetFields() this.$refs["otherForm"].resetFields();
}, },
}, },
}; };
@ -477,5 +570,13 @@ export default {
} }
} }
} }
.el-form-item.deviceAddress_text {
width: 900px !important;
.el-form-item__content {
.el-input__inner {
width: 750px;
}
}
}
} }
</style> </style>

@ -4,6 +4,7 @@
class="dialog" class="dialog"
:title="dialogTitle" :title="dialogTitle"
:visible.sync="visible" :visible.sync="visible"
@close="close()"
:close-on-click-modal="false" :close-on-click-modal="false"
width="970px" width="970px"
> >
@ -32,6 +33,8 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item>
</el-form-item>
<el-form-item label="设备名称" prop="deviceName"> <el-form-item label="设备名称" prop="deviceName">
<el-input v-model="form.deviceName"></el-input> <el-input v-model="form.deviceName"></el-input>
</el-form-item> </el-form-item>

@ -18,8 +18,15 @@
</template> </template>
<script> <script>
import { debounce } from "@/utils/publicMethod_lxy/debounce.js"; import { debounce } from "@/utils/publicMethod_lxy/debounce.js";
import { exportVideo,exportPerception } from "@/api/correlationEquipment";
export default { export default {
name: "DeriveDialog", name: "DeriveDialog",
props: {
table_title: {
type: String,
default: "",
},
},
data() { data() {
return { return {
visible: false, visible: false,
@ -30,7 +37,29 @@ export default {
this.visible = true; this.visible = true;
}, },
confrim: debounce(function () { confrim: debounce(function () {
this.$message.success("232324234"); if (this.table_title === "视频监控设备列表") {
//
exportVideo().then((res) => {
console.log(123);
console.log(res);
this.$message.success('导出成功')
this.visible = false
}).catch(err=>{
console.log(err);
this.$message.warning('导出失败')
})
} else if (this.table_title === "智能感知设备列表") {
//
exportPerception().then((res) => {
console.log(456);
console.log(res);
this.$message.success('导出成功')
this.visible = false
}).catch(err=>{
console.log(err);
this.$message.warning('导出失败')
})
}
}, 300), }, 300),
}, },
}; };

@ -117,7 +117,7 @@
<AddVideoDialog ref="addVideoDialog"></AddVideoDialog> <AddVideoDialog ref="addVideoDialog"></AddVideoDialog>
<AddPerceptionDialog ref="addPerceptionDialog"></AddPerceptionDialog> <AddPerceptionDialog ref="addPerceptionDialog"></AddPerceptionDialog>
<UploadDialog ref="uploadDialog"></UploadDialog> <UploadDialog ref="uploadDialog"></UploadDialog>
<DeriveDialog ref="deriveDialog"></DeriveDialog> <DeriveDialog ref="deriveDialog" :table_title="table_title"></DeriveDialog>
</div> </div>
</template> </template>
<script> <script>
@ -384,7 +384,7 @@ export default {
} }
/deep/.el-table { /deep/.el-table {
height: 35vh; height: 27vh;
thead { thead {
text-align: center; text-align: center;
color: #fff; color: #fff;

@ -266,7 +266,7 @@ export default {
/* 左侧 */ /* 左侧 */
.cardBodyLeft { .cardBodyLeft {
width: 25%; width: 25%;
height: 97%; height: 75vh;
background: rgba(23, 36, 36, 0.4); background: rgba(23, 36, 36, 0.4);
border: 0.5px solid #485f6c; border: 0.5px solid #485f6c;
border-radius: 4px; border-radius: 4px;
@ -316,7 +316,7 @@ export default {
height: 69vh; height: 69vh;
.el-tree { .el-tree {
/* 树形数据过长添加滚动条 */ /* 树形数据过长添加滚动条 */
height: 96%; height: 65vh;
overflow: auto; overflow: auto;
// box-shadow: 5px 5px 10px #126a58; // box-shadow: 5px 5px 10px #126a58;
border-radius: 4px; border-radius: 4px;
@ -399,6 +399,7 @@ export default {
} }
/* 竖分割线 */ /* 竖分割线 */
.el-divider.el-divider--vertical { .el-divider.el-divider--vertical {
opacity: 0;
margin-left: 13px; margin-left: 13px;
height: 100%; height: 100%;
} }
@ -412,7 +413,7 @@ export default {
text-shadow: 0 0 9px rgba(21, 255, 198, 0.64); text-shadow: 0 0 9px rgba(21, 255, 198, 0.64);
} }
width: 74%; width: 74%;
height: 97%; height: 75vh;
border-radius: 4px; border-radius: 4px;
background: rgba(31, 45, 49, 0.4); background: rgba(31, 45, 49, 0.4);
border: 0.5px solid #485f6c; border: 0.5px solid #485f6c;

Loading…
Cancel
Save