2213 lines
64 KiB
Vue
2213 lines
64 KiB
Vue
<template>
|
||
<div class="fullHeight">
|
||
<div class="changeVideoTypeBox whiteBlock" v-if="COMPANY != 'zhongjian'">
|
||
<!--#{{videoType}}-->
|
||
<div class="videoType">
|
||
<p>类型:</p>
|
||
<p
|
||
v-for="(item, index) in videoTypeList"
|
||
:key="index"
|
||
@click="beforeCut(index + 1, item)"
|
||
v-if="item !== '乐橙'"
|
||
>
|
||
<span>{{ item }}</span>
|
||
<img
|
||
v-show="videoType != index + 1"
|
||
src="@/assets/images/switch.png"
|
||
class="switch"
|
||
/>
|
||
<img
|
||
v-show="videoType == index + 1"
|
||
src="@/assets/images/switch_active.png"
|
||
class="switch"
|
||
/>
|
||
</p>
|
||
</div>
|
||
<p class="tips">
|
||
智能广播服务商(仅可启用一种短信服务商。切换服务商时,原服务商将自动失效)
|
||
</p>
|
||
</div>
|
||
<div
|
||
class="videoList"
|
||
:class="COMPANY == 'zhongjian' ? 'zhongjianvideoList' : ''"
|
||
>
|
||
<!--视频列表-->
|
||
<div class="fullHeight">
|
||
<div class="videoGroupBox fullHeight whiteBlock">
|
||
<div class="header-title">
|
||
<p class="pageTitle">广播分组</p>
|
||
<el-button type="primary" @click="onAddClick" size="medium">
|
||
新增
|
||
</el-button>
|
||
</div>
|
||
<el-form size="medium" ref="riskListForm" :model="riskListForm">
|
||
<el-form-item class="flex-box">
|
||
<el-input
|
||
@input="getVideoTreeGroup"
|
||
suffix-icon="el-icon-search"
|
||
v-model="riskListForm.groupName"
|
||
placeholder="请输入内容"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-form>
|
||
<div class="list_content">
|
||
<vue-scroll v-if="videoTreeData.length > 0">
|
||
<el-tree
|
||
:data="videoTreeData"
|
||
node-key="id"
|
||
ref="treeNode"
|
||
label="groupName"
|
||
:expand-on-click-node="false"
|
||
:default-expand-all="true"
|
||
@node-click="checkVideo"
|
||
>
|
||
<span class="custom-tree-node" slot-scope="{ node, data }">
|
||
<span :title="data.groupName">{{ data.groupName }}</span>
|
||
<!-- 企业删除与修改 -->
|
||
<div class="flex2">
|
||
<img
|
||
src="@/assets/images/icon-edit.png"
|
||
style="margin-right: 16px"
|
||
class="icon"
|
||
@click.stop="editGroupFn(data)"
|
||
/>
|
||
<img
|
||
src="@/assets/images/icon-delete.png"
|
||
class="icon"
|
||
@click.stop="deleteGroupFn(data)"
|
||
/>
|
||
</div>
|
||
</span>
|
||
</el-tree>
|
||
</vue-scroll>
|
||
<div class="placeholderBox" v-else>
|
||
<img src="@/assets/images/noData2.png" alt="" srcset="" />
|
||
<p>{{ $t("message.videoManage.empty") }}</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="rightVideo whiteBlock">
|
||
<div class="pageTitle">告警规则</div>
|
||
<el-form
|
||
:inline="true"
|
||
size="medium"
|
||
:model="formInline"
|
||
class="demo-form-inline"
|
||
>
|
||
<el-form-item label="设备名称">
|
||
<el-input
|
||
v-model="formInline.deviceName"
|
||
placeholder="请输入"
|
||
clearable
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="设备编号">
|
||
<el-input
|
||
v-model="formInline.deviceId"
|
||
placeholder="请输入"
|
||
clearable
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" plain @click="onQuery">查询</el-button>
|
||
<el-button type="warning" plain @click="onRefresh"
|
||
>刷新</el-button
|
||
>
|
||
<el-button
|
||
type="primary"
|
||
@click="addVideoBtn"
|
||
size="medium"
|
||
:disabled="!currentGroupInfo"
|
||
>
|
||
新增
|
||
</el-button>
|
||
<el-button
|
||
:disabled="selectionList.length == 0"
|
||
:type="selectionList.length == 0 ? 'info' : 'danger'"
|
||
size="medium"
|
||
class="delete_btn"
|
||
plain
|
||
@click="deleteAttendanceBatch"
|
||
>删除</el-button
|
||
>
|
||
</el-form-item>
|
||
<el-button type="primary" @click="accountServerObj(2)" size="medium"
|
||
>配置服务器
|
||
</el-button>
|
||
</el-form>
|
||
<vue-scroll style="height: calc(100% - 34px - 56px)">
|
||
<camera-list
|
||
@editDevice="edit"
|
||
@selectDevice="selectDevice"
|
||
:currentGroupInfo="currentGroupInfo"
|
||
ref="camera"
|
||
></camera-list>
|
||
</vue-scroll>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 新增的弹窗 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="nvrTitle"
|
||
:visible.sync="addDevice"
|
||
width="667px"
|
||
:close-on-click-modal="false"
|
||
@close="close"
|
||
>
|
||
<el-form
|
||
ref="addNvrForm"
|
||
:rules="rules1"
|
||
size="medium"
|
||
label-width="140px"
|
||
label-position="right"
|
||
:model="addFormData"
|
||
>
|
||
<el-form-item label="硬件ip" prop="ip">
|
||
<el-input
|
||
clearable
|
||
type="text"
|
||
v-model="addFormData.ip"
|
||
placeholder="请输入硬件ip"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="nvr名称" prop="name">
|
||
<el-input
|
||
clearable
|
||
type="text"
|
||
v-model="addFormData.name"
|
||
placeholder="请输入nvr名称"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="nvr编号" prop="nvrSn">
|
||
<el-input
|
||
clearable
|
||
type="text"
|
||
v-model="addFormData.nvrSn"
|
||
placeholder="请输入nvr编号"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="设备状态" prop="deviceState">
|
||
<el-select v-model="addFormData.deviceState" placeholder="请选择">
|
||
<el-option label="在线" :value="1"></el-option>
|
||
<el-option label="离线" :value="2"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button @click="addDevice = false">取 消</el-button>
|
||
<el-button type="primary" @click="awaitAddNvr">确 定</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-dialog>
|
||
<!-- 插件配置 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
title="设备监测插件管理"
|
||
:visible.sync="pluginDevice"
|
||
width="1200px"
|
||
:close-on-click-modal="false"
|
||
>
|
||
<el-form :inline="true" :model="formInline1" class="demo-form-inline">
|
||
<!-- <el-form-item label="插件名称">
|
||
<el-input v-model="formInline1.name" placeholder="请输入" clearable></el-input>
|
||
</el-form-item> -->
|
||
<el-form-item label="ip">
|
||
<el-input
|
||
v-model="formInline1.ip"
|
||
placeholder="请输入"
|
||
clearable
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="插件sn">
|
||
<el-input
|
||
v-model="formInline1.sn"
|
||
placeholder="请输入"
|
||
clearable
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="时间">
|
||
<el-date-picker
|
||
v-model="timeRange"
|
||
type="datetimerange"
|
||
value-format="yyyy-MM-dd hh:mm:ss"
|
||
range-separator="至"
|
||
start-placeholder="开始日期"
|
||
end-placeholder="结束日期"
|
||
>
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button type="primary" @click="onSearch1">查询</el-button>
|
||
<el-button type="primary" @click="onAdd1">新增</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
<el-table :data="tableData1" style="width: 100%">
|
||
<el-table-column prop="name" label="插件名称"></el-table-column>
|
||
<el-table-column prop="sn" label="插件sn"></el-table-column>
|
||
<el-table-column prop="ip" label="插件所在ip"></el-table-column>
|
||
<el-table-column
|
||
prop="lastDataTime"
|
||
label="最后一次更新时间"
|
||
></el-table-column>
|
||
<el-table-column prop="deviceState" label="设备状态" align="center">
|
||
<template slot-scope="scope">
|
||
{{ scope.row.deviceState == 1 ? "在线" : "离线" }}
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column label="操作" align="center">
|
||
<template slot-scope="scope">
|
||
<el-button size="mini" @click="editBtn(scope.row, 2)"
|
||
>编辑</el-button
|
||
>
|
||
<el-button
|
||
size="mini"
|
||
type="danger"
|
||
@click="deleteBtn(scope.row, 2)"
|
||
>删除</el-button
|
||
>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
<div class="pagerBox">
|
||
<el-pagination
|
||
@size-change="handleSizeChange1"
|
||
@current-change="handleCurrentChange1"
|
||
:current-page="pageNo1"
|
||
:page-sizes="pageSizes"
|
||
:page-size="pageSize1"
|
||
layout="total, sizes, prev, pager, next, jumper"
|
||
background
|
||
:total="Number(total1)"
|
||
>
|
||
</el-pagination>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 新增插件配置的弹窗 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="pluginTitle"
|
||
:visible.sync="addPlugin"
|
||
width="667px"
|
||
:close-on-click-modal="false"
|
||
@close="close"
|
||
>
|
||
<el-form
|
||
ref="videoPlugin"
|
||
:rules="rules2"
|
||
size="medium"
|
||
label-width="140px"
|
||
label-position="right"
|
||
:model="addPluginData"
|
||
>
|
||
<el-form-item label="插件名称" prop="name">
|
||
<el-input
|
||
clearable
|
||
type="text"
|
||
v-model="addPluginData.name"
|
||
placeholder="请输入"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="插件所在ip" prop="ip">
|
||
<el-input
|
||
clearable
|
||
type="text"
|
||
v-model="addPluginData.ip"
|
||
placeholder="请输入"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="插件sn" prop="sn">
|
||
<el-input
|
||
clearable
|
||
type="text"
|
||
v-model="addPluginData.sn"
|
||
placeholder="请输入插件编号"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="设备状态" prop="deviceState">
|
||
<el-select v-model="addPluginData.deviceState" placeholder="请选择">
|
||
<el-option label="在线" :value="1"></el-option>
|
||
<el-option label="离线" :value="2"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item>
|
||
<el-button @click="addPlugin = false">取 消</el-button>
|
||
<el-button type="primary" @click="awaitPluginSubmit">确 定</el-button>
|
||
</el-form-item>
|
||
</el-form>
|
||
</el-dialog>
|
||
<!-- 配置视频类型 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="$t('message.videoManage.dialog_video_config.title')"
|
||
:visible.sync="configDialog"
|
||
width="667px"
|
||
:close-on-click-modal="false"
|
||
:show-close="false"
|
||
>
|
||
<div class="dialog_content">
|
||
<p>请选择您的智能广播服务商(以下智能广播服务商同时只可开启一种)</p>
|
||
<el-radio-group v-model="videoType" class="videoTypeGroup">
|
||
<el-radio
|
||
:label="index + 1"
|
||
v-for="(item, index) in videoTypeList"
|
||
:key="index"
|
||
v-if="item !== '乐橙'"
|
||
>{{ item }}</el-radio
|
||
>
|
||
</el-radio-group>
|
||
<p style="opacity: 0.5; font-size: 13px">
|
||
注:选择智能广播服务商,配置完成后才可使用其他功能。
|
||
</p>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="saveVideoConfigFn"
|
||
size="medium"
|
||
>{{ $t("message.companyDiagram.determine") }}
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
|
||
<!--新增设备--><!--:title="operation==='edit'?'编辑设备':'新增设备'"-->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
@close="emptyInfo"
|
||
:title="$t('message.videoManage.dialog_newVideo.operation')[operation]"
|
||
:visible.sync="Popup.newVideo"
|
||
width="667px"
|
||
>
|
||
<div class="dialog_content">
|
||
<el-form
|
||
class="dialogFormBox dialogFormBox1"
|
||
ref="addVideoDialog"
|
||
label-width="140px"
|
||
size="medium"
|
||
:model="currentVideoTypeDetail"
|
||
:rules="formRules"
|
||
>
|
||
<!-- 所属分组 -->
|
||
<!-- <el-form-item :label="$t('message.videoManage.group')" prop="groupId">
|
||
<el-select
|
||
v-model="selectFormVal"
|
||
placeholder="请选择"
|
||
clearable
|
||
@change="selectFormChange"
|
||
>
|
||
<el-option style="height: auto" :value="[]">
|
||
<el-tree
|
||
:data="videoTreeData"
|
||
node-key="id"
|
||
ref="groupFormTree"
|
||
highlight-current
|
||
:props="defaultProps"
|
||
:default-expand-all="false"
|
||
@node-click="treeFormClick"
|
||
>
|
||
</el-tree>
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item> -->
|
||
<el-form-item
|
||
:label="$t('message.videoManage.dialog_newVideo.equipment_name')"
|
||
prop="deviceName"
|
||
>
|
||
<el-input
|
||
v-model="currentVideoTypeDetail.deviceName"
|
||
:placeholder="$t('message.videoManage.placeholder')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="设备类型" prop="deviceType">
|
||
<el-input
|
||
v-model="currentVideoTypeDetail.deviceType"
|
||
:placeholder="$t('message.videoManage.placeholder')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="设备IP" prop="deviceIp">
|
||
<el-input
|
||
v-model="currentVideoTypeDetail.deviceIp"
|
||
:placeholder="$t('message.videoManage.placeholder')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="设备编号" prop="deviceId">
|
||
<el-input
|
||
v-model="currentVideoTypeDetail.deviceId"
|
||
:placeholder="$t('message.videoManage.placeholder')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="安装位置" prop="installationLocation">
|
||
<el-input
|
||
v-model="currentVideoTypeDetail.installationLocation"
|
||
:placeholder="$t('message.videoManage.placeholder')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<!-- <el-form-item label="是否开启低电量推送" prop="enableLowBatteryPushNotification" class="zdy-radio-group-3rows">
|
||
<el-radio-group v-model="currentVideoTypeDetail.enableLowBatteryPushNotification">
|
||
<el-radio :label="1">是</el-radio>
|
||
<el-radio label="0">否</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item label="推送人" prop="pushers">
|
||
<el-select v-model="currentVideoTypeDetail.pushers" :placeholder="$t('message.videoManage.pleaseSelect')"
|
||
multiple filterable>
|
||
<el-option v-for="item in accountList" :key="item.workerId" :label="item.workerName"
|
||
:value="item.userId + ''">
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="使用人" prop="users">
|
||
<el-select v-model="currentVideoTypeDetail.users" multiple filterable placeholder="请选择">
|
||
<el-option v-for="item in laborManagementInfoList" :key="item.id" :label="item.workerName"
|
||
:value="item.id + ''">
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="SD卡容量" prop="sdCardCapacity">
|
||
<el-select v-model="currentVideoTypeDetail.sdCardCapacity" filterable placeholder="请选择">
|
||
<el-option :label="item" :value="item" v-for="(item, index) in sdCardCapacityList" :key="index">
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item> -->
|
||
<el-form-item label="上传图片">
|
||
<el-upload
|
||
:action="$store.state.UPLOADURL"
|
||
list-type="picture-card"
|
||
multiple
|
||
name="files"
|
||
:limit="1"
|
||
:file-list="fileList"
|
||
:on-success="(file) => handleSuccess(file)"
|
||
:on-remove="handleRemove"
|
||
>
|
||
<i class="el-icon-plus"></i>
|
||
</el-upload>
|
||
</el-form-item>
|
||
</el-form>
|
||
<div class="dialog-footer">
|
||
<!--取消-->
|
||
<el-button
|
||
class="zdy-btn"
|
||
@click="Popup.newVideo = false"
|
||
size="medium"
|
||
>
|
||
<div>
|
||
<img src="../../../assets/images/cancel.png" alt="" />
|
||
<span>{{ $t("message.videoManage.btn_cancel") }}</span>
|
||
</div>
|
||
</el-button>
|
||
<!--确定-->
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="awaitAddVideo"
|
||
size="medium"
|
||
>{{ $t("message.videoManage.btn_determine") }}
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
title="配置服务器"
|
||
:visible.sync="Popup2.accountServer"
|
||
width="667px"
|
||
>
|
||
<div class="dialog_content">
|
||
<el-form label-width="100px" class="dialogFormBox" size="medium">
|
||
<!-- <el-form-item label="apiKey">
|
||
<el-input
|
||
v-model="policeCameraVideoInfo.apiKey"
|
||
:placeholder="$t('message.videoManage.placeholder')"
|
||
></el-input>
|
||
</el-form-item> -->
|
||
<el-form-item label="appId">
|
||
<el-input
|
||
v-model="policeCameraVideoInfo.appId"
|
||
:placeholder="$t('message.videoManage.placeholder')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<el-form-item label="appCode">
|
||
<el-input
|
||
v-model="policeCameraVideoInfo.appCode"
|
||
placeholder="请输入"
|
||
></el-input>
|
||
</el-form-item>
|
||
</el-form>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="zdy-btn"
|
||
@click="Popup2.accountServer = false"
|
||
size="medium"
|
||
>
|
||
<div>
|
||
<img src="../../../assets/images/cancel.png" alt="" />
|
||
<span>{{ $t("message.videoManage.btn_cancel") }}</span>
|
||
</div>
|
||
</el-button>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="saveAccountConfig2"
|
||
size="medium"
|
||
>{{ $t("message.videoManage.btn_determine") }}
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 同步设备 -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:ltitle="$t('message.videoManage.syncEquipment')"
|
||
:visible.sync="Popup.equipment"
|
||
width="667px"
|
||
>
|
||
<div class="dialog_content zdy-radio-group">
|
||
<!-- <el-form label-position="right" label-width="100px">
|
||
<div style="display: flex;justify-content: center;align-items: center;">
|
||
<img src="../../../assets/images/sync_success.png" alt="">
|
||
<img src="../../../assets/images/sync_error.png" alt="">
|
||
</div>
|
||
</el-form> -->
|
||
|
||
<!-- 请输入组织ID -->
|
||
<el-input
|
||
v-model="organizationID"
|
||
:placeholder="$t('message.videoManage.organizationId')"
|
||
></el-input>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="zdy-btn"
|
||
@click="Popup.equipment = false"
|
||
size="medium"
|
||
>
|
||
<div>
|
||
<img src="../../../assets/images/cancel.png" alt="" />
|
||
<!-- 取消 -->
|
||
<span>{{ $t("message.videoManage.btn_cancel") }}</span>
|
||
</div>
|
||
</el-button>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="pullEquipmentFn"
|
||
size="medium"
|
||
>
|
||
<!-- 拉取设备 -->
|
||
{{ $t("message.videoManage.pullingEquipment") }}
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<!--配置播放模式-->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="$t('message.videoManage.dialog_play_config.title')"
|
||
:visible.sync="Popup.playPattern"
|
||
width="667px"
|
||
:close-on-click-modal="false"
|
||
:show-close="false"
|
||
>
|
||
<div class="dialog_content zdy-radio-group">
|
||
<el-form label-position="right" label-width="100px">
|
||
<el-form-item
|
||
:label="$t('message.videoManage.dialog_play_config.playTypeTitle')"
|
||
>
|
||
<el-radio-group v-model="currentVideoTypeDetail.playType">
|
||
<el-radio
|
||
:label="index + 1"
|
||
v-for="(item, index) in playTypeList"
|
||
:key="index"
|
||
>{{ item }}
|
||
</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-form>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="zdy-btn"
|
||
@click="Popup.playPattern = false"
|
||
size="medium"
|
||
>
|
||
<div>
|
||
<img src="../../../assets/images/cancel.png" alt="" />
|
||
<span>{{ $t("message.videoManage.btn_cancel") }}</span>
|
||
</div>
|
||
</el-button>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="saveAccountConfig"
|
||
size="medium"
|
||
>{{ $t("message.videoManage.btn_determine") }}
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<!--切换其它平台之前的提示-->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="$t('message.videoManage.switch_platforms.title')"
|
||
:visible.sync="Popup.platforms"
|
||
width="667px"
|
||
>
|
||
<div class="dialog_content">
|
||
<div class="platforms-title">
|
||
{{ $t("message.videoManage.switch_platforms.platformsTitle") }}"{{
|
||
Popup.name
|
||
}}"?
|
||
</div>
|
||
<div class="platforms-msg">
|
||
{{ $t("message.videoManage.switch_platforms.platformsMsg") }}
|
||
</div>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="zdy-btn"
|
||
@click="Popup.platforms = false"
|
||
size="medium"
|
||
>
|
||
<div>
|
||
<img src="../../../assets/images/cancel.png" alt="" />
|
||
<span>{{ $t("message.videoManage.btn_cancel") }}</span>
|
||
</div>
|
||
</el-button>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="cut"
|
||
size="medium"
|
||
>{{ $t("message.videoManage.btn_determine") }}
|
||
</el-button>
|
||
</div>
|
||
</div>
|
||
</el-dialog>
|
||
<!-- 添加视频分组 -->
|
||
<!-- '添加分组':'编辑分组' -->
|
||
<el-dialog
|
||
:modal-append-to-body="false"
|
||
:title="
|
||
isAddGroup
|
||
? $t('message.videoManage.addGroup')
|
||
: $t('message.videoManage.editGroup')
|
||
"
|
||
:visible.sync="addGroupDialog"
|
||
width="667px"
|
||
@close="close"
|
||
>
|
||
<div class="dialog_content">
|
||
<el-form
|
||
size="medium"
|
||
:model="addGroupForm"
|
||
ref="addGroupForm"
|
||
:rules="addGroupFormRules"
|
||
label-width="120px"
|
||
class="dialogFormBox"
|
||
>
|
||
<!-- <el-form-item label="选择父级" prop="parentId">
|
||
<el-select
|
||
v-model="selectVal"
|
||
placeholder="请选择"
|
||
clearable
|
||
@change="selectChange"
|
||
>
|
||
<el-option style="height: auto" :value="[]">
|
||
<el-tree
|
||
:data="videoTreeData"
|
||
node-key="id"
|
||
ref="groupTree"
|
||
highlight-current
|
||
:props="defaultProps"
|
||
:default-expand-all="false"
|
||
@node-click="treeClick"
|
||
>
|
||
</el-tree>
|
||
</el-option>
|
||
</el-select>
|
||
</el-form-item> -->
|
||
<!-- 分组名称 -->
|
||
<el-form-item
|
||
:label="$t('message.videoManage.groupName')"
|
||
prop="groupName"
|
||
>
|
||
<el-input
|
||
v-model="addGroupForm.groupName"
|
||
:placeholder="$t('message.personnelPosition.please_enter')"
|
||
></el-input>
|
||
</el-form-item>
|
||
<div class="dialog-footer">
|
||
<el-button
|
||
class="cancleBtn"
|
||
@click="addGroupDialog = false"
|
||
icon="el-icon-circle-close"
|
||
size="medium"
|
||
>{{ $t("message.personnelPosition.cancel") }}
|
||
</el-button>
|
||
<el-button
|
||
type="primary"
|
||
icon="el-icon-circle-check"
|
||
@click="saveGroupFn"
|
||
size="medium"
|
||
>{{ $t("message.personnelPosition.determine") }}
|
||
</el-button>
|
||
</div>
|
||
</el-form>
|
||
</div>
|
||
</el-dialog>
|
||
<!--高德地图-->
|
||
<gd-map
|
||
v-if="showMap"
|
||
:addProjectForm="addProjectForm"
|
||
@closeMap="closeMap"
|
||
@save="getLngLat"
|
||
></gd-map>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
import gdMap from "@/components/map/gd-map.vue";
|
||
import {
|
||
addVideoItemApi,
|
||
editVideoItemApi,
|
||
deleteVideoItemApi,
|
||
selectVideoItemListByTypeApi,
|
||
selectEnableVideoItemListApi,
|
||
updateVideoConfigEnableApi,
|
||
editProjectVideoConfigApi,
|
||
projectVideoConfigListApi,
|
||
setHikSubscriptionByEventApi,
|
||
getHikVideoRegionsApi,
|
||
saveHikVideoCamerasInfoListApi,
|
||
addVideoGroupApi,
|
||
deleteVideoGroupApi,
|
||
editVideoGroupApi,
|
||
getVideoGroupApi,
|
||
getVideoTreeGroupApi,
|
||
sendVideoInfoApi,
|
||
getvideoNvrApi,
|
||
addvideoNvrApi,
|
||
editvideoNvrApi,
|
||
delvideoNvrApi,
|
||
addPluginApi,
|
||
getPluginApi,
|
||
editPluginApi,
|
||
delPluginApi,
|
||
getAllNvrApi,
|
||
} from "@/assets/js/api/equipmentCenter/cameraList";
|
||
import { getEnterpriseInfoListApi } from "@/assets/js/api/specialWork";
|
||
import { getProjectChilderSystemUserListApi } from "@/assets/js/api/configManage";
|
||
import { getSelectWorkerInfoListApi } from "@/assets/js/api/laborPerson";
|
||
import {
|
||
getUseSmartBroadcastConfigApi,
|
||
getUpdateSmartBroadcastConfigEnableApi,
|
||
editSmartBroadcastConfigApi,
|
||
getSmartBroadcastGroupListApi,
|
||
addSmartBroadcastGroupApi,
|
||
editSmartBroadcastGroupApi,
|
||
deleteSmartBroadcastGroupApi,
|
||
addSmartBroadcastDevApi,
|
||
editSmartBroadcastDevApi,
|
||
deleteBatchSmartBroadcastDevApi,
|
||
savePoliceCameraVideoConfigApi,
|
||
getPoliceCameraVideoConfigListApi,
|
||
} from "@/assets/js/api/bodyWornCamera";
|
||
import {
|
||
getProjectConfigListApi,
|
||
editProjectConfigListApi,
|
||
} from "@/assets/js/api/project.js";
|
||
import cameraList from "./cameraList";
|
||
export default {
|
||
data() {
|
||
return {
|
||
enterpriseList: [],
|
||
// 对应的字段
|
||
defaultProps: {
|
||
children: "children",
|
||
label: "groupName",
|
||
},
|
||
selectTreeData: {},
|
||
selectVal: "",
|
||
videoTreeData: [],
|
||
selectFormTreeData: {},
|
||
selectFormVal: "",
|
||
configInfoParams: {}, //储存配置信息参数,给新增和编辑使用
|
||
operation: "add", //新增或者编辑的判断
|
||
Popup: {
|
||
platforms: false,
|
||
newVideo: false,
|
||
accountConfig: false,
|
||
equipment: false,
|
||
playPattern: false,
|
||
name: "",
|
||
accountServer: false,
|
||
},
|
||
Popup2: {
|
||
accountServer: false,
|
||
},
|
||
policeCameraVideoInfo: {
|
||
apiKey: "",
|
||
appCode: "",
|
||
appId: "",
|
||
},
|
||
nvrDevice: false, //nvr弹窗
|
||
formInline: {
|
||
deviceName: "",
|
||
deviceId: "",
|
||
},
|
||
addFormData: {
|
||
ip: "",
|
||
deviceState: "", //设备在线状态
|
||
name: "",
|
||
nvrSn: "",
|
||
},
|
||
addDevice: false,
|
||
nvrTitle: "",
|
||
pluginTitle: "",
|
||
mode: 1,
|
||
pageNo: 1,
|
||
pageSizes: [5, 10, 20, 50],
|
||
pageSize: 10,
|
||
total: 0,
|
||
pageNo1: 1,
|
||
pageSize1: 10,
|
||
total1: 0,
|
||
tableData: [],
|
||
tableData1: [],
|
||
pluginDevice: false, // 插件弹窗
|
||
formInline1: {
|
||
name: "",
|
||
ip: "",
|
||
sn: "",
|
||
},
|
||
timeRange: [],
|
||
addPlugin: false,
|
||
addPluginData: {
|
||
name: "",
|
||
ip: "",
|
||
sn: "",
|
||
deviceState: "",
|
||
},
|
||
rules1: {
|
||
ip: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
deviceState: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
name: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
nvrSn: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
},
|
||
rules2: {
|
||
ip: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
deviceState: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
name: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
sn: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
},
|
||
account_Config: {},
|
||
projectVideoConfigList: [],
|
||
configDialog: false,
|
||
deviceType: "",
|
||
deviceTypeList: this.$t("message.videoManage.deviceType"), //['枪机', '球机', '热成像', '单兵', '全景', '无人机']
|
||
videoTypeList: ["SZW"], //['萤石云', '乐橙', 'ISC', '大华', '宇视', '国标'] 智极星
|
||
playTypeList: this.$t("message.videoManage.playTypeList"), //['RTMP(高清)', 'RTMP(流畅)', 'HLS(高清)', 'HLS(流畅)', '高清轻量级插件(高清)', '流畅轻量级插件(流畅)']
|
||
videoType: 1, //默认为1吗?
|
||
currentVideoTypeDetail: {
|
||
groupId: "",
|
||
deviceName: "",
|
||
deviceType: "",
|
||
deviceIp: "",
|
||
deviceId: "",
|
||
installationLocation: "",
|
||
// appSecret: '0a5836c68a7edabcc78e6a18f05bb317'
|
||
},
|
||
isCreateNewUser: [
|
||
{ label: this.$t("message.videoManage.yes"), value: 1 }, // 是
|
||
{ label: this.$t("message.videoManage.deny"), value: 0 }, // 否
|
||
],
|
||
formRules: {
|
||
groupId: [
|
||
{
|
||
required: true,
|
||
validator: (rule, value, callback) => {
|
||
if (!this.currentVideoTypeDetail.groupId) {
|
||
callback(new Error("请输入"));
|
||
} else {
|
||
callback();
|
||
}
|
||
},
|
||
trigger: "change",
|
||
},
|
||
],
|
||
deviceName: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
}, // 必填
|
||
],
|
||
deviceType: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
}, // 必填
|
||
],
|
||
},
|
||
COMPANY: COMPANY,
|
||
accountList: [],
|
||
laborManagementInfoList: [],
|
||
organizationID: "",
|
||
groupList: [],
|
||
nvrList: [],
|
||
activeGroupIndex: 0,
|
||
currentGroupInfo: null,
|
||
isAddGroup: true,
|
||
addGroupDialog: false,
|
||
addGroupForm: {
|
||
groupName: "",
|
||
parentId: "",
|
||
},
|
||
addGroupFormRules: {
|
||
groupName: [
|
||
{
|
||
required: true,
|
||
message: this.$t("message.videoManage.required"),
|
||
trigger: "blur",
|
||
}, // 必填
|
||
],
|
||
},
|
||
projectSn: "",
|
||
monitorinList: [
|
||
{
|
||
label: "作业面",
|
||
value: "JKDWZ001",
|
||
},
|
||
{
|
||
label: "料场",
|
||
value: "JKDWZ002",
|
||
},
|
||
{
|
||
label: "车辆出入口",
|
||
value: "JKDWZ003",
|
||
},
|
||
{
|
||
label: "人员出入口",
|
||
value: "JKDWZ004",
|
||
},
|
||
{
|
||
label: "洗轮机",
|
||
value: "JKDWZ005",
|
||
},
|
||
{
|
||
label: "围墙",
|
||
value: "JKDWZ006",
|
||
},
|
||
{
|
||
label: "塔吊",
|
||
value: "JKDWZ007",
|
||
},
|
||
{
|
||
label: "其他",
|
||
value: "JKDWZ008",
|
||
},
|
||
], //监控点位置(结构化数据)
|
||
showMap: false,
|
||
addProjectForm: {
|
||
placeCode: "",
|
||
areaCode: "",
|
||
buildingNum: "",
|
||
bulidStatus: "",
|
||
cityCode: "",
|
||
companySn: "",
|
||
constructionStage: "",
|
||
engineeringPurpose: "",
|
||
households: "",
|
||
latitude: "",
|
||
layoutImage: "",
|
||
longitude: "",
|
||
projectAcreage: "",
|
||
projectAddress: "",
|
||
projectName: "",
|
||
projectNumber: "",
|
||
projectType: "",
|
||
provincesCode: "",
|
||
saleAcreage: "",
|
||
startWorkDate: "",
|
||
structureType: "",
|
||
projectManage: "",
|
||
projectTel: "",
|
||
majorProjectType: 0,
|
||
constructionPermit: "",
|
||
streetTownshipTownCode: "",
|
||
streetTownshipTown: "",
|
||
},
|
||
COMPANY: COMPANY,
|
||
isRouterAlive: false,
|
||
riskListForm: {
|
||
groupName: "",
|
||
},
|
||
sdCardCapacityList: [8, 16, 32, 64, 128, 256, 512],
|
||
workTicketBindCamera: 0,
|
||
fileList: [],
|
||
selectionList: [],
|
||
};
|
||
},
|
||
created() {
|
||
this.projectSn = this.$store.state.projectSn;
|
||
// this.getVideoGroup()
|
||
this.getEnterpriseList();
|
||
this.getVideoTreeGroup();
|
||
this.getAccountList();
|
||
this.getAll();
|
||
this.getProjectSetting();
|
||
},
|
||
components: { cameraList, gdMap },
|
||
methods: {
|
||
onQuery() {
|
||
this.$refs.camera.onQuery(this.formInline);
|
||
},
|
||
onRefresh() {
|
||
this.formInline.deviceName = "";
|
||
this.formInline.deviceId = "";
|
||
this.$refs.camera.onRefresh(this.formInline);
|
||
},
|
||
selectDevice(event) {
|
||
console.log(event);
|
||
this.selectionList = event;
|
||
},
|
||
deleteAttendanceBatch() {
|
||
if (this.selectionList.length === 0)
|
||
return this.$message.warning("请勾选需要删除的数据!");
|
||
this.$confirm("删除后操作不可恢复,请谨慎操作!", "警告", {
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
})
|
||
.then(() => {
|
||
console.log(this.selectionList);
|
||
|
||
const ids = this.selectionList.map((item) => item.id).join(",");
|
||
deleteBatchSmartBroadcastDevApi({ ids }).then((res) => {
|
||
this.selectionList = [];
|
||
this.$refs.camera.getSelectVideoItemListByTypeApi();
|
||
});
|
||
})
|
||
.catch(() => {});
|
||
},
|
||
handleSuccess(file) {
|
||
console.log("图片上传成功", file);
|
||
let data = {
|
||
name: file.data[0].imageUrl,
|
||
url: this.$store.state.FILEURL + file.data[0].imageUrl,
|
||
};
|
||
this.fileList = [data];
|
||
},
|
||
handleRemove(response, fileList) {
|
||
this.fileList = fileList;
|
||
},
|
||
//获取项目配置信息
|
||
getProjectSetting() {
|
||
getProjectConfigListApi({
|
||
projectSn: this.projectSn,
|
||
}).then((res) => {
|
||
if (!res.result || res.result.length == 0) {
|
||
this.workTicketBindCamera = 0;
|
||
} else {
|
||
let workTicketBindCamera = res.result[0].workTicketBindCamera;
|
||
this.workTicketBindCamera = workTicketBindCamera;
|
||
}
|
||
});
|
||
},
|
||
/** 查询企业列表 */
|
||
getEnterpriseList() {
|
||
const params = {
|
||
projectSn: this.projectSn,
|
||
enterpriseName: undefined,
|
||
userEnterpriseId: this.$store.state.userInfo.userEnterpriseId,
|
||
enterpriseTypeId: undefined,
|
||
};
|
||
getEnterpriseInfoListApi(params).then((res) => {
|
||
console.log("查询企业列表: ", res);
|
||
this.enterpriseList = res.result;
|
||
});
|
||
},
|
||
validateGroupId() {},
|
||
// 树形控件点击
|
||
treeFormClick(data) {
|
||
this.selectFormVal = data.groupName;
|
||
this.selectFormTreeData = data;
|
||
this.currentVideoTypeDetail.groupId = data.id;
|
||
},
|
||
// 树形控件点击
|
||
treeClick(data) {
|
||
this.selectVal = data.groupName;
|
||
delete data.parentObj;
|
||
this.selectTreeData = data;
|
||
this.addGroupForm.parentId = data.id;
|
||
},
|
||
// 选择父级组件框值修改
|
||
selectFormChange(e) {
|
||
console.log(e, 666777);
|
||
if (!e) {
|
||
this.selectFormVal = "";
|
||
this.selectFormTreeData = {};
|
||
this.currentVideoTypeDetail.groupId = "";
|
||
this.$refs.groupFormTree.setCurrentKey(null);
|
||
}
|
||
},
|
||
// 选择父级组件框值修改
|
||
selectChange(e) {
|
||
if (!e) {
|
||
this.selectVal = "";
|
||
this.selectTreeData = {};
|
||
this.addGroupForm.parentId = "";
|
||
this.$refs.groupTree.setCurrentKey(null);
|
||
}
|
||
},
|
||
// 切换视频分组
|
||
checkVideo(value) {
|
||
this.currentGroupInfo = value;
|
||
this.getVideoList();
|
||
},
|
||
//获取视频分组列表
|
||
getVideoTreeGroup() {
|
||
getSmartBroadcastGroupListApi({
|
||
projectSn: this.$store.state.projectSn,
|
||
groupName: this.riskListForm.groupName,
|
||
}).then((res) => {
|
||
console.log("获取视频分组列表", res);
|
||
this.videoTreeData = res.result;
|
||
if (this.videoTreeData.length > 0) {
|
||
this.currentGroupInfo = this.videoTreeData[0];
|
||
this.$nextTick(() => {
|
||
this.$refs.treeNode.setCurrentKey(this.currentGroupInfo.id);
|
||
this.checkVideo(this.videoTreeData[0]);
|
||
});
|
||
}
|
||
this.getProjectVideoConfigList();
|
||
});
|
||
},
|
||
//打开配置服务器弹框
|
||
accountServerObj(type) {
|
||
if (type == 1) {
|
||
this.getProjectVideoConfigList();
|
||
this.Popup.accountServer = true;
|
||
} else if (type == 2) {
|
||
const params = {
|
||
projectSn: this.projectSn,
|
||
};
|
||
getUseSmartBroadcastConfigApi(params).then((res) => {
|
||
console.log("查询企业列表: ", res);
|
||
if (res.result) {
|
||
this.policeCameraVideoInfo = res.result;
|
||
} else {
|
||
this.policeCameraVideoInfo = {
|
||
ip: "",
|
||
port: "",
|
||
appId: "",
|
||
appSecret: "",
|
||
};
|
||
}
|
||
});
|
||
this.Popup2.accountServer = true;
|
||
}
|
||
},
|
||
// 保存
|
||
awaitAddVideo() {
|
||
this.$refs.addVideoDialog.validate((valid) => {
|
||
if (valid) {
|
||
this.addVideo();
|
||
} else {
|
||
console.log("error submit!!");
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
|
||
closeImg() {
|
||
this.currentVideoTypeDetail.coverUr = "";
|
||
this.isRouterAlive = false;
|
||
},
|
||
getLngLat(v) {
|
||
this.showMap = false;
|
||
if (this.Popup.newVideo) {
|
||
this.currentVideoTypeDetail.longitude = v.lng;
|
||
this.currentVideoTypeDetail.latitude = v.lat;
|
||
} else {
|
||
this.addProjectForm.longitude = v.lng;
|
||
this.addProjectForm.latitude = v.lat;
|
||
}
|
||
},
|
||
closeMap(val) {
|
||
this.showMap = val;
|
||
console.log("打印子组件", val);
|
||
},
|
||
//打开地图
|
||
toGetLocalFn() {
|
||
this.showMap = true;
|
||
},
|
||
// nvr设备管理弹窗
|
||
nvrDeviceManage() {
|
||
this.nvrDevice = true;
|
||
this.getvideoNvrList();
|
||
},
|
||
addVideoBtn() {
|
||
this.selectFormVal = "";
|
||
this.selectFormTreeData = {};
|
||
this.Popup.newVideo = true;
|
||
this.getAll();
|
||
this.currentVideoTypeDetail.coverUr = "";
|
||
this.currentVideoTypeDetail.groupId = "";
|
||
this.isRouterAlive = false;
|
||
this.$nextTick(() => {
|
||
this.$refs.addVideoDialog.clearValidate();
|
||
});
|
||
},
|
||
//获取nvr列表
|
||
getAll() {
|
||
getAllNvrApi({ projectSn: this.projectSn }).then((res) => {
|
||
this.nvrList = res.result.map((item, index) => {
|
||
return { value: item.id, label: index };
|
||
});
|
||
});
|
||
},
|
||
getvideoNvrList() {
|
||
let data = this.formInline;
|
||
data.projectSn = this.projectSn;
|
||
data.size = this.pageSize;
|
||
(data.current = this.pageNo),
|
||
getvideoNvrApi(data).then((res) => {
|
||
this.tableData = res.result.records;
|
||
this.total = res.result.total;
|
||
});
|
||
},
|
||
handleSizeChange(val) {
|
||
this.pageSize = val;
|
||
this.getvideoNvrList();
|
||
},
|
||
handleCurrentChange(val) {
|
||
this.pageNo = val;
|
||
this.getvideoNvrList();
|
||
},
|
||
onSearch() {
|
||
this.getvideoNvrList();
|
||
},
|
||
onAdd() {
|
||
this.addFormData = {};
|
||
(this.addDevice = true), (this.nvrTitle = "新增nvr设备");
|
||
this.mode = 1;
|
||
},
|
||
editBtn(val, type) {
|
||
if (type == 1) {
|
||
this.addFormData = val;
|
||
(this.addDevice = true), (this.nvrTitle = "编辑nvr设备");
|
||
this.mode = 2;
|
||
} else {
|
||
this.addPluginData.ip = val.ip;
|
||
this.addPluginData.deviceState = val.deviceState;
|
||
this.addPluginData.sn = val.sn;
|
||
this.addPluginData.name = val.name;
|
||
this.addPluginData.id = val.id;
|
||
console.log("this.addPluginData", this.addPluginData);
|
||
this.addPlugin = true;
|
||
this.pluginTitle = "编辑监控插件";
|
||
this.mode = 4;
|
||
}
|
||
},
|
||
deleteBtn(val, type) {
|
||
if (type == 1) {
|
||
this.$confirm(
|
||
"删除当前nvr设备,相关联的摄像头也将被删除,确认删除吗?, 是否继续?",
|
||
"提示",
|
||
{
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
}
|
||
)
|
||
.then(() => {
|
||
delvideoNvrApi({ id: val.id }).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message({
|
||
type: "success",
|
||
message: "删除成功!",
|
||
});
|
||
this.getvideoNvrList();
|
||
}
|
||
});
|
||
})
|
||
.catch(() => {
|
||
this.$message({
|
||
type: "info",
|
||
message: "已取消删除",
|
||
});
|
||
});
|
||
} else {
|
||
this.$confirm(
|
||
"删除当前插件会导致对应编号工地推送数据异常,确认删除吗?, 是否继续?",
|
||
"提示",
|
||
{
|
||
confirmButtonText: "确定",
|
||
cancelButtonText: "取消",
|
||
type: "warning",
|
||
}
|
||
)
|
||
.then(() => {
|
||
delPluginApi({ id: val.id }).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message({
|
||
type: "success",
|
||
message: "删除成功!",
|
||
});
|
||
this.getPluginList();
|
||
}
|
||
});
|
||
})
|
||
.catch(() => {
|
||
this.$message({
|
||
type: "info",
|
||
message: "已取消删除",
|
||
});
|
||
});
|
||
}
|
||
},
|
||
close() {
|
||
this.$nextTick(() => {
|
||
this.$refs.addNvrForm.clearValidate();
|
||
});
|
||
this.$nextTick(() => {
|
||
this.$refs.videoPlugin.clearValidate();
|
||
});
|
||
this.$nextTick(() => {
|
||
this.$refs.addGroupForm.clearValidate();
|
||
});
|
||
},
|
||
// 新增nvr 验证
|
||
awaitAddNvr() {
|
||
this.$refs.addNvrForm.validate((valid) => {
|
||
if (valid) {
|
||
this.addDeviceSubmit();
|
||
} else {
|
||
console.log("error submit!!");
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
|
||
addDeviceSubmit() {
|
||
let data = this.addFormData;
|
||
data.projectSn = this.projectSn;
|
||
if (this.mode == 1) {
|
||
addvideoNvrApi(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message.success("新增成功!");
|
||
this.getvideoNvrList();
|
||
this.addDevice = false;
|
||
}
|
||
});
|
||
} else if (this.mode == 2) {
|
||
editvideoNvrApi(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message.success("编辑成功!");
|
||
this.getvideoNvrList();
|
||
this.addDevice = false;
|
||
}
|
||
});
|
||
}
|
||
},
|
||
// 插件
|
||
pluginManage() {
|
||
this.pluginDevice = true;
|
||
this.getPluginList();
|
||
},
|
||
getPluginList() {
|
||
let data = this.formInline1;
|
||
data.projectSn = this.projectSn;
|
||
data.size = this.pageSize1;
|
||
(data.current = this.pageNo1),
|
||
(data.startLastDataTime =
|
||
this.timeRange != null ? this.timeRange[0] : ""),
|
||
(data.endLastDataTime =
|
||
this.timeRange != null ? this.timeRange[1] : ""),
|
||
getPluginApi(data).then((res) => {
|
||
console.log("查询结果", res);
|
||
if (res.code == 200) {
|
||
this.tableData1 = res.result.records;
|
||
this.total1 = res.result.total;
|
||
}
|
||
});
|
||
},
|
||
onSearch1() {
|
||
this.getPluginList();
|
||
},
|
||
handleSizeChange1(val) {
|
||
this.pageSize1 = val;
|
||
this.getPluginList();
|
||
},
|
||
handleCurrentChange1(val) {
|
||
this.pageNo1 = val;
|
||
this.getPluginList();
|
||
},
|
||
onAdd1() {
|
||
this.addPluginData = {};
|
||
this.addPlugin = true;
|
||
this.pluginTitle = "新增监控插件";
|
||
this.mode = 3;
|
||
this.currentVideoTypeDetail.coverUr = "";
|
||
this.isRouterAlive = false;
|
||
},
|
||
|
||
awaitPluginSubmit() {
|
||
this.$refs.videoPlugin.validate((valid) => {
|
||
if (valid) {
|
||
this.addPluginSubmit();
|
||
} else {
|
||
console.log("error submit!!");
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
|
||
addPluginSubmit() {
|
||
let data = this.addPluginData;
|
||
data.projectSn = this.projectSn;
|
||
if (this.mode == 3) {
|
||
addPluginApi(data).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message.success("新增成功!");
|
||
}
|
||
this.addPlugin = false;
|
||
this.getPluginList();
|
||
});
|
||
} else if (this.mode == 4) {
|
||
console.log("编辑参数", data);
|
||
editPluginApi(data).then((res) => {
|
||
if (res.code == 200) {
|
||
console.log("编辑的结果", res);
|
||
this.$message.success("编辑成功!");
|
||
this.getPluginList();
|
||
this.addPlugin = false;
|
||
}
|
||
});
|
||
}
|
||
},
|
||
uploadThirdParty() {
|
||
sendVideoInfoApi({ projectSn: this.projectSn }).then((res) => {
|
||
// console.log(res)
|
||
if (res.code == 200) {
|
||
this.$message.success(this.$t("message.videoManage.uploadSuccess")); // 上传成功!
|
||
}
|
||
});
|
||
},
|
||
editGroupFn(item) {
|
||
console.log(item, 888999);
|
||
this.isAddGroup = false;
|
||
this.addGroupDialog = true;
|
||
this.addGroupForm = JSON.parse(JSON.stringify(item));
|
||
this.$nextTick(() => {
|
||
if (this.addGroupForm.parentObj) {
|
||
this.selectVal = JSON.parse(this.addGroupForm.parentObj).groupName;
|
||
this.$refs.groupTree.setCurrentKey(this.addGroupForm.parentId);
|
||
}
|
||
});
|
||
},
|
||
deleteGroupFn(item) {
|
||
// 确定删除分组
|
||
this.$confirm(
|
||
this.$t("message.videoManage.determineDelGroup") +
|
||
"【" +
|
||
item.groupName +
|
||
"】?",
|
||
this.$t("message.personnelPosition.mapManage.Tips"),
|
||
{
|
||
//确定删除楼栋
|
||
confirmButtonText: this.$t(
|
||
"message.personnelPosition.confirmButtonText"
|
||
),
|
||
cancelButtonText: this.$t(
|
||
"message.personnelPosition.cancelButtonText"
|
||
),
|
||
type: "warning",
|
||
}
|
||
).then(() => {
|
||
deleteSmartBroadcastGroupApi({ id: item.id }).then((res) => {
|
||
let a = parseInt(this.activeGroupIndex);
|
||
if (a == this.groupList.length - 1) {
|
||
a--;
|
||
this.activeGroupIndex = a;
|
||
this.getVideoList();
|
||
}
|
||
if (this.activeGroupIndex === -1) {
|
||
this.activeGroupIndex = "";
|
||
}
|
||
// this.getVideoGroup()
|
||
this.getVideoTreeGroup();
|
||
|
||
this.$message.success(
|
||
this.$t("message.personnelPosition.delete_success")
|
||
); //删除成功!
|
||
});
|
||
});
|
||
},
|
||
//新增或编辑楼栋
|
||
saveGroupFn() {
|
||
this.$refs["addGroupForm"].validate((valid) => {
|
||
if (valid) {
|
||
let requestData = { ...this.addGroupForm };
|
||
requestData.parentObj = JSON.stringify(this.selectTreeData);
|
||
if (this.isAddGroup) {
|
||
requestData.projectSn = this.$store.state.projectSn;
|
||
addSmartBroadcastGroupApi(requestData).then((res) => {
|
||
this.addGroupDialog = false;
|
||
// this.getVideoGroup()
|
||
this.getVideoTreeGroup();
|
||
this.$message.success(
|
||
this.$t("message.personnelPosition.add_success")
|
||
); //添加成功!
|
||
});
|
||
} else {
|
||
editSmartBroadcastGroupApi(requestData).then((res) => {
|
||
this.addGroupDialog = false;
|
||
// this.getVideoGroup()
|
||
this.getVideoTreeGroup();
|
||
this.$message.success(
|
||
this.$t("message.personnelPosition.edit_success")
|
||
); //编辑成功!
|
||
});
|
||
}
|
||
} else {
|
||
console.log("error submit!!");
|
||
return false;
|
||
}
|
||
});
|
||
},
|
||
//切换分组
|
||
changeGroupFn(item, index) {
|
||
this.activeGroupIndex = index;
|
||
this.currentGroupInfo = item;
|
||
this.getVideoList();
|
||
},
|
||
//获取视频分组列表
|
||
getVideoGroup() {
|
||
getVideoGroupApi({ projectSn: this.$store.state.projectSn }).then(
|
||
(res) => {
|
||
console.log("获取视频分组列表", res);
|
||
this.groupList = res.result;
|
||
if (this.groupList.length > 0) {
|
||
this.currentGroupInfo = this.groupList[0];
|
||
this.getProjectVideoConfigList();
|
||
}
|
||
}
|
||
);
|
||
},
|
||
getOrganizationID() {
|
||
getHikVideoRegionsApi({ projectSn: this.$store.state.projectSn }).then(
|
||
(result) => {
|
||
var dw;
|
||
dw = window.open();
|
||
dw.document.open();
|
||
// 一个新的窗口
|
||
dw.document.write(
|
||
"<html><head><title>" +
|
||
this.$t("message.videoManage.aNewWindow") +
|
||
"</title>"
|
||
);
|
||
dw.document.write("<body>");
|
||
// dw.document.write("<img name='i1' src='Temp.jpg'> <br>")
|
||
dw.document.write(result.result + "<br>");
|
||
dw.document.write("</body></html>");
|
||
dw.document.close();
|
||
}
|
||
);
|
||
},
|
||
pullEquipmentFn() {
|
||
saveHikVideoCamerasInfoListApi({
|
||
projectSn: this.$store.state.projectSn,
|
||
regionIndexCode: this.organizationID,
|
||
}).then((result) => {
|
||
this.$message.success(this.$t("message.videoManage.success1")); // 拉取设备成功!
|
||
this.Popup.equipment = false;
|
||
this.$refs.cameralc.getSelectVideoItemListByTypeApi();
|
||
});
|
||
},
|
||
getAccountList() {
|
||
getProjectChilderSystemUserListApi({
|
||
projectSn: this.$store.state.projectSn,
|
||
}).then((result) => {
|
||
this.accountList = result.result;
|
||
});
|
||
getSelectWorkerInfoListApi({
|
||
projectSn: this.$store.state.projectSn,
|
||
}).then((result) => {
|
||
this.laborManagementInfoList = result.result.records;
|
||
});
|
||
},
|
||
aiOperate() {
|
||
setHikSubscriptionByEventApi({
|
||
projectSn: this.$store.state.projectSn,
|
||
}).then((res) => {
|
||
this.$message.success(this.$t("message.videoManage.success2")); // AI布防成功!
|
||
});
|
||
},
|
||
beforeAvatarUpload(file) {
|
||
if (
|
||
file.type != "image/jpeg" &&
|
||
file.type != "image/png" &&
|
||
file.type != "image/jpg" &&
|
||
file.type != "image/bmp"
|
||
) {
|
||
this.$message.error(this.$t("message.companyDiagram.uploadMsg")); //只能上传图片
|
||
return false;
|
||
} else {
|
||
return true;
|
||
}
|
||
},
|
||
handleUploadSuccess(res) {
|
||
this.isRouterAlive = false;
|
||
this.$nextTick(() => {
|
||
this.currentVideoTypeDetail.coverUrl =
|
||
this.$store.state.FILEURL + res.data[0].imageUrl;
|
||
this.isRouterAlive = true;
|
||
});
|
||
},
|
||
//获取视频列表
|
||
getVideoList() {
|
||
// let id = ''
|
||
// if (this.activeGroupIndex !== '') {
|
||
// id = this.groupList[parseInt(this.activeGroupIndex)].id
|
||
// }
|
||
console.log(this.currentGroupInfo, 77777777);
|
||
let id = this.currentGroupInfo.id;
|
||
this.$nextTick(() => {
|
||
if (this.videoType === 1) {
|
||
//萤石云
|
||
this.$refs.camera.getSelectVideoItemListByTypeApi(id);
|
||
}
|
||
if (
|
||
this.videoType === 2 ||
|
||
this.videoType === 3 ||
|
||
this.videoType === 7
|
||
) {
|
||
//乐橙云、isc
|
||
this.$refs.cameralc.getSelectVideoItemListByTypeApi(id);
|
||
}
|
||
});
|
||
},
|
||
//查询项目各类型的视频配置信息
|
||
getProjectVideoConfigList() {
|
||
getUseSmartBroadcastConfigApi({
|
||
projectSn: this.$store.state.projectSn,
|
||
}).then((res) => {
|
||
// this.projectVideoConfigList = res.result;
|
||
//
|
||
if (!res.result) {
|
||
if (COMPANY == "zhongjian") {
|
||
this.videoType = 3;
|
||
this.saveVideoConfigFn();
|
||
} else {
|
||
this.configDialog = true;
|
||
}
|
||
} else {
|
||
// this.currentVideoTypeDetail = res.result[0];
|
||
this.currentVideoTypeDetail = {
|
||
...res.result,
|
||
httpType: res.result.httpType ? res.result.httpType : 1,
|
||
};
|
||
console.log("配置信息", this.currentVideoTypeDetail);
|
||
localStorage.setItem(
|
||
"configInfo",
|
||
JSON.stringify(this.currentVideoTypeDetail)
|
||
);
|
||
this.configInfoParams = res.result;
|
||
// this.videoType = res.result[0].videoType;
|
||
this.videoType = res.result.isEnable;
|
||
}
|
||
});
|
||
},
|
||
saveVideoConfigFn() {
|
||
getUpdateSmartBroadcastConfigEnableApi({
|
||
projectSn: this.$store.state.projectSn,
|
||
factoryType: this.videoType,
|
||
}).then((res) => {
|
||
this.configDialog = false;
|
||
this.getProjectVideoConfigList();
|
||
});
|
||
},
|
||
addVideo() {
|
||
// this.currentVideoTypeDetail.videoId = this.currentVideoTypeDetail.id;
|
||
let params = {
|
||
...this.currentVideoTypeDetail,
|
||
groupId: this.currentGroupInfo.id,
|
||
projectSn: this.projectSn,
|
||
};
|
||
|
||
if (this.fileList.length > 0) {
|
||
params.uploadImage = this.fileList[0].name;
|
||
}
|
||
console.log("传入的参数", params);
|
||
if (this.operation === "edit") {
|
||
// params.itemId = this.currentVideoTypeDetail.itemId;
|
||
// params.parentObj = JSON.stringify(this.selectFormTreeData);
|
||
console.log("编辑内容", this.currentVideoTypeDetail);
|
||
editSmartBroadcastDevApi(params).then((res) => {
|
||
console.log("编辑成功", res);
|
||
if (res.success) {
|
||
this.$message.success(res.message);
|
||
this.Popup.newVideo = false;
|
||
this.getVideoList();
|
||
}
|
||
});
|
||
} else {
|
||
params.configId = this.configInfoParams.id;
|
||
addSmartBroadcastDevApi(params).then((res) => {
|
||
console.log("新增成功", res);
|
||
if (res.success) {
|
||
this.$message.success(res.message);
|
||
this.Popup.newVideo = false;
|
||
this.getVideoList();
|
||
}
|
||
});
|
||
}
|
||
},
|
||
saveAccountConfig2() {
|
||
editSmartBroadcastConfigApi({
|
||
...this.currentVideoTypeDetail,
|
||
...this.policeCameraVideoInfo,
|
||
projectSn: this.projectSn,
|
||
}).then((res) => {
|
||
if (res.code == 200) {
|
||
this.$message.success(res.message);
|
||
console.log("新添加服务配置", res);
|
||
this.Popup2.accountServer = false;
|
||
}
|
||
});
|
||
},
|
||
saveAccountConfig() {
|
||
// console.log('saveAccountConfig', this.currentVideoTypeDetail.appId)
|
||
// this.currentVideoTypeDetail.account = 'C86695622';
|
||
// this.currentVideoTypeDetail.password = '123456';
|
||
// this.currentVideoTypeDetail.appId = '66b4fc1d6703468c8ee93b2919a3f20b';
|
||
// this.currentVideoTypeDetail.appSecret = '0a5836c68a7edabcc78e6a18f05bb317';
|
||
editSmartBroadcastConfigApi(this.currentVideoTypeDetail).then((res) => {
|
||
console.log("新添加服务配置", res);
|
||
if (res.code == 200) {
|
||
this.Popup.playPattern = false;
|
||
this.Popup.accountConfig = false;
|
||
this.Popup.accountServer = false;
|
||
this.$message.success(res.message);
|
||
}
|
||
});
|
||
// console.log('this.currentVideoTypeDetail', this.currentVideoTypeDetail)
|
||
},
|
||
beforeCut(index, item) {
|
||
if (index !== this.videoType) {
|
||
this.Popup.platforms = true;
|
||
this.Popup.name = item;
|
||
this.Popup.videoType = index;
|
||
}
|
||
},
|
||
cut() {
|
||
this.videoType = this.Popup.videoType;
|
||
this.Popup.platforms = false;
|
||
console.log("当前videoType", this.videoType);
|
||
this.saveVideoConfigFn();
|
||
},
|
||
initData() {
|
||
this.currentVideoTypeDetail = {
|
||
// devName: "",
|
||
// enterpriseIds: [],
|
||
// alarmPushWorkerId: [],
|
||
// sortNum: "",
|
||
groupId: "",
|
||
deviceName: "",
|
||
deviceType: "",
|
||
deviceIp: "",
|
||
deviceId: "",
|
||
installationLocation: "",
|
||
};
|
||
this.fileList = [];
|
||
},
|
||
onAddClick() {
|
||
this.initData();
|
||
this.addGroupDialog = true;
|
||
this.isAddGroup = true;
|
||
this.addGroupForm.groupName = "";
|
||
this.selectVal = "";
|
||
this.selectTreeData = {};
|
||
},
|
||
edit(obj) {
|
||
console.log(obj, 777888);
|
||
this.operation = "edit";
|
||
this.selectFormVal = "";
|
||
this.selectFormTreeData = {};
|
||
this.Popup.newVideo = true;
|
||
this.currentVideoTypeDetail = JSON.parse(JSON.stringify(obj));
|
||
if (obj.uploadImage) {
|
||
this.fileList = [
|
||
{
|
||
name: obj.uploadImage,
|
||
url: this.$store.state.FILEURL + obj.uploadImage,
|
||
},
|
||
];
|
||
}
|
||
console.log("编辑内容", obj);
|
||
},
|
||
emptyInfo() {
|
||
this.operation = "add"; //关闭弹窗就默认设置为add,编辑会设置edit
|
||
this.initData(); //关闭弹窗就清除数据避免影响了编辑被禁止修改的内容
|
||
// console.log('查看', this.currentVideoTypeDetail, '和', this.configInfoParams);
|
||
this.$nextTick(() => {
|
||
this.$refs.addVideoDialog.clearValidate();
|
||
});
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
<style lang="less" scoped>
|
||
.flex {
|
||
display: flex;
|
||
}
|
||
|
||
.delete_btn {
|
||
background-color: transparent;
|
||
color: #f56c6c;
|
||
border-color: #f56c6c;
|
||
}
|
||
|
||
.changeVideoTypeBox {
|
||
padding: 20px;
|
||
.tips {
|
||
margin-top: 14px;
|
||
font-weight: 800;
|
||
font-size: 12px;
|
||
color: #b2b8c2;
|
||
}
|
||
.videoType {
|
||
font-size: 16px;
|
||
|
||
> p > img {
|
||
cursor: pointer;
|
||
}
|
||
|
||
p {
|
||
display: inline-flex;
|
||
align-content: center;
|
||
margin-right: 20px;
|
||
font-size: 14px;
|
||
color: #1d1d1d;
|
||
|
||
.switch {
|
||
margin-left: 16px;
|
||
width: 33px;
|
||
height: 16px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.platforms-title {
|
||
color: rgba(42, 46, 63, 1);
|
||
font-size: 17px;
|
||
}
|
||
|
||
.isbind {
|
||
display: flex;
|
||
margin-left: 15px;
|
||
align-items: center;
|
||
|
||
> div:first-child {
|
||
margin-right: 15px;
|
||
}
|
||
}
|
||
|
||
.platforms-msg {
|
||
color: rgba(230, 69, 69, 1);
|
||
font-size: 14px;
|
||
margin-top: 16px;
|
||
}
|
||
|
||
.videoList {
|
||
// padding: 22px 25px;
|
||
margin-top: 14px;
|
||
height: calc(100% - 14px - 97px);
|
||
position: relative;
|
||
}
|
||
|
||
.zhongjianvideoList {
|
||
height: calc(100% - 14px);
|
||
}
|
||
|
||
.zdy-radio-group {
|
||
/deep/ .el-form-item__label {
|
||
line-height: normal;
|
||
}
|
||
|
||
/deep/ .el-radio-group {
|
||
.flex;
|
||
flex-wrap: wrap;
|
||
|
||
> label {
|
||
width: 50%;
|
||
margin: 0 0 15px 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
// .zdy-radio-group-3rows {
|
||
// .zdy-radio-group;
|
||
|
||
// /deep/ .el-radio-group > label {
|
||
// width: 30%;
|
||
// }
|
||
// }
|
||
|
||
.zdy-btn {
|
||
div {
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
img {
|
||
width: 14px;
|
||
height: 14px;
|
||
margin-right: 6px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.videoTypeGroup {
|
||
margin: 30px 0;
|
||
}
|
||
|
||
.avatar-uploader {
|
||
border: 1px dashed #d9d9d9;
|
||
border-radius: 6px;
|
||
cursor: pointer;
|
||
position: relative;
|
||
// overflow: hidden;
|
||
height: 178px;
|
||
width: 178px;
|
||
margin-left: 10px;
|
||
}
|
||
|
||
.avatar-uploader:hover {
|
||
border-color: #409eff;
|
||
}
|
||
|
||
.avatar-uploader-icon {
|
||
font-size: 28px;
|
||
color: #8c939d;
|
||
width: 178px;
|
||
height: 178px;
|
||
line-height: 178px;
|
||
text-align: center;
|
||
}
|
||
|
||
.dialogFormBox1 {
|
||
width: initial;
|
||
}
|
||
|
||
.avatar {
|
||
width: 178px;
|
||
height: 178px;
|
||
display: block;
|
||
}
|
||
|
||
.imgBox {
|
||
position: relative;
|
||
|
||
.el-icon-error {
|
||
font-size: 20px;
|
||
position: absolute;
|
||
right: -13px;
|
||
top: -8px;
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
|
||
.videoGroupBox {
|
||
width: 260px;
|
||
padding: 15px 15px;
|
||
height: calc(100% - 30px);
|
||
float: left;
|
||
}
|
||
|
||
.rightVideo {
|
||
width: calc(100% - 290px - 15px - 30px);
|
||
height: calc(100% - 30px);
|
||
margin-left: 15px;
|
||
float: left;
|
||
padding: 15px;
|
||
}
|
||
.el-form-item {
|
||
margin-bottom: 20px;
|
||
}
|
||
.list_content {
|
||
padding: 10px 0;
|
||
height: calc(100% - 94px - 34px);
|
||
background-color: rgba(216, 216, 216, 0.2);
|
||
position: relative;
|
||
|
||
.custom-tree-node {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
width: 90%;
|
||
padding-right: 10px;
|
||
box-sizing: border-box;
|
||
|
||
> span {
|
||
width: 150px;
|
||
display: inline-block;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
}
|
||
|
||
/deep/.el-tree-node.is-current > .el-tree-node__content {
|
||
background-color: rgba(168, 191, 230, 0.69) !important;
|
||
}
|
||
}
|
||
|
||
.content_data {
|
||
padding: 0 20px;
|
||
box-sizing: border-box;
|
||
height: 43px;
|
||
line-height: 43px;
|
||
cursor: pointer;
|
||
position: relative;
|
||
|
||
&.active {
|
||
background-color: rgba(81, 129, 246, 0.1);
|
||
|
||
&::after {
|
||
content: "";
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 4px;
|
||
height: 100%;
|
||
background-color: @--color-primary;
|
||
border-radius: 2px;
|
||
}
|
||
}
|
||
}
|
||
|
||
.header-title {
|
||
display: flex;
|
||
// align-items: center;
|
||
align-items: flex-start;
|
||
justify-content: space-between;
|
||
margin-bottom: 15px;
|
||
|
||
.pageTitle {
|
||
margin-bottom: 0;
|
||
}
|
||
}
|
||
|
||
.addFirm {
|
||
height: 45px;
|
||
line-height: 45px;
|
||
color: @--color-primary;
|
||
font-size: 15px;
|
||
text-align: center;
|
||
background: #fff;
|
||
border-top: 1px solid #dce6fd;
|
||
font-family: PingFangSC-Regular;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.title {
|
||
border-bottom: 1px solid rgba(220, 230, 253, 1);
|
||
color: @--color-primary;
|
||
padding-left: 24px;
|
||
font-size: 14px;
|
||
|
||
span {
|
||
position: relative;
|
||
padding: 16px 0 5px;
|
||
display: inline-block;
|
||
|
||
&::before {
|
||
content: "";
|
||
position: absolute;
|
||
bottom: -1px;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 2px;
|
||
background-color: @--color-primary;
|
||
z-index: 2;
|
||
}
|
||
}
|
||
}
|
||
|
||
.flex {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.flex2 {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
::v-deep .el-form-item__label {
|
||
// width: 110px !important;
|
||
// text-align: center !important;
|
||
}
|
||
|
||
::v-deep .el-input-number .el-input-number--medium {
|
||
margin-left: -10px !important;
|
||
}
|
||
|
||
// 下拉框样式修改
|
||
/deep/.el-select-dropdown__item.hover,
|
||
.el-select-dropdown__item.hover,
|
||
.el-select-dropdown__item:hover {
|
||
background-color: transparent;
|
||
}
|
||
</style>
|
||
|