dev_xd
姜玉琦 2025-04-29 22:36:36 +08:00
commit aa121061d5
1 changed files with 55 additions and 53 deletions

View File

@ -1,12 +1,9 @@
<template> <template>
<el-drawer class="video-monitor-drawer" v-if="data.isOpen" v-model="data.isOpen" direction="rtl" size="50%" <el-drawer class="video-monitor-drawer" v-if="data.isOpen" v-model="data.isOpen" direction="rtl" size="50%" style="padding-left: 20px" :title="data.title">
style="padding-left: 20px" :title="data.title">
<el-form ref="videoMonitorRef" :model="form" :rules="rules" label-width="120px"> <el-form ref="videoMonitorRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="项目名称" prop="projectId"> <el-form-item label="项目名称" prop="projectId">
<el-select :disabled="data.currentPrjId != ''||data.type=='edit'" v-model="form.projectId" placeholder="请选择项目" clearable <el-select :disabled="data.currentPrjId != ''||data.type=='edit'" v-model="form.projectId" placeholder="请选择项目" clearable style="width:300px;">
style="width:192px;"> <el-option v-for="prj in data.projects" :key="prj.id" :label="prj.projectName" :value="prj.id"></el-option>
<el-option v-for="prj in data.projects" :key="prj.id" :label="prj.projectName" :value="prj.id">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="监控名称" prop="monitorName"> <el-form-item label="监控名称" prop="monitorName">
@ -44,20 +41,20 @@
</template> </template>
<script setup> <script setup>
import { listVideoMonitor, getVideoMonitor, delVideoMonitor, addVideoMonitor, updateVideoMonitor } from "@/api/manage/videoMonitor"; import { listVideoMonitor, getVideoMonitor, delVideoMonitor, addVideoMonitor, updateVideoMonitor } from '@/api/manage/videoMonitor'
import { findMyProjectList } from "@/api/publics"; import { findMyProjectList } from '@/api/publics'
import useUserStore from '@/store/modules/user' import useUserStore from '@/store/modules/user'
const $emit=defineEmits("success") const $emit = defineEmits('success')
const userStore = useUserStore() const userStore = useUserStore()
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance()
const form = ref({}) const form = ref({})
const rules = reactive({ const rules = reactive({
projectId: [{ required: true, trigger: ['blur', 'change'], message: "请选择所属项目" }], projectId: [{ required: true, trigger: ['blur', 'change'], message: '请选择所属项目' }],
monitorName: [{ required: true, trigger: ['blur', 'change'], message: "请输入监控名称" }], monitorName: [{ required: true, trigger: ['blur', 'change'], message: '请输入监控名称' }],
monitorType: [{ required: true, trigger: ['blur', 'change'], message: "请选择监控类型" }], monitorType: [{ required: true, trigger: ['blur', 'change'], message: '请选择监控类型' }],
url: [{ required: true, trigger: ['blur', 'change'], message: "请输入监控链接" }], url: [{ required: true, trigger: ['blur', 'change'], message: '请输入监控链接' }],
appkey: [{ required: true, trigger: ['blur', 'change'], message: "请输入萤石云AppKey" }], appkey: [{ required: true, trigger: ['blur', 'change'], message: '请输入萤石云AppKey' }],
secret: [{ required: true, trigger: ['blur', 'change'], message: "请输入萤石云Secret" }], secret: [{ required: true, trigger: ['blur', 'change'], message: '请输入萤石云Secret' }],
}) })
const data = reactive({ const data = reactive({
isOpen: false, isOpen: false,
@ -70,63 +67,68 @@ const data = reactive({
}) })
function showDrawer(opt) { function showDrawer(opt) {
data.type = opt.type; data.type = opt.type
data.title = opt.type == 'add' ? '视频监控 - 增加' : '视频监控 - 修改' data.title = opt.type == 'add' ? '视频监控 - 增加' : '视频监控 - 修改'
if (opt.type == 'edit') { if (opt.type == 'edit') {
data.editRow=opt.row; data.editRow = opt.row
form.value=opt.row; form.value = opt.row
} else { } else {
data.editRow=null; data.editRow = null
form.value = {} form.value = {}
if (userStore.currentPrjId) {
data.currentPrjId = userStore.currentPrjId
data.comId = userStore.currentComId
form.value.projectId = data.currentPrjId
} }
form.value.monitorType = "萤石云"; }
form.value.keyPoint = '0'; form.value.monitorType = '萤石云'
data.isOpen = true; form.value.keyPoint = '0'
data.isOpen = true
} }
/** 查询项目列表 */ /** 查询项目列表 */
function getProjectList() { function getProjectList() {
findMyProjectList({ pageNum: 1, pageSize: 100 }).then(response => { findMyProjectList({ pageNum: 1, pageSize: 100 }).then((response) => {
data.projects = response.rows; data.projects = response.rows
if (userStore.currentPrjId) { if (userStore.currentPrjId) {
data.currentPrjId = userStore.currentPrjId; data.currentPrjId = userStore.currentPrjId
data.comId = userStore.currentComId data.comId = userStore.currentComId
form.value.projectId = data.currentPrjId; form.value.projectId = data.currentPrjId
} }
}); })
} }
function getSelectProject() { function getSelectProject() {
let objs=data.projects.filter(d=>d.id==form.value.projectId); let objs = data.projects.filter((d) => d.id == form.value.projectId)
return objs.length>0?objs[0]:{id:data.currentPrjId,comId:userStore.currentComId}; return objs.length > 0 ? objs[0] : { id: data.currentPrjId, comId: userStore.currentComId }
} }
function doSave() { function doSave() {
proxy.$refs["videoMonitorRef"].validate(valid => { proxy.$refs['videoMonitorRef'].validate((valid) => {
if (valid) { if (valid) {
let prj=getSelectProject(); let prj = getSelectProject()
form.value.projectId=prj.id; form.value.projectId = prj.id
form.value.comId=prj.comId; form.value.comId = prj.comId
if (form.value.id != null) { if (form.value.id != null) {
updateVideoMonitor(form.value).then(response => { updateVideoMonitor(form.value).then((response) => {
proxy.$modal.msgSuccess("修改成功"); proxy.$modal.msgSuccess('修改成功')
data.isOpen = false data.isOpen = false
$emit("success") $emit('success')
}); })
} else { } else {
addVideoMonitor(form.value).then(response => { addVideoMonitor(form.value).then((response) => {
proxy.$modal.msgSuccess("新增成功"); proxy.$modal.msgSuccess('新增成功')
data.isOpen = false data.isOpen = false
$emit("success") $emit('success')
}); })
} }
} }
}); })
} }
function doCancel() { function doCancel() {
data.isOpen = false; data.isOpen = false
} }
getProjectList(); getProjectList()
defineExpose({ defineExpose({
showDrawer showDrawer,
}) })
</script> </script>