fix: 修改配置文件,图片等功能。

This commit is contained in:
tianyongbao
2025-04-30 12:12:10 +08:00
parent 58da6b59c7
commit 536374b5e8
39 changed files with 190 additions and 436 deletions

1
package-lock.json generated
View File

@@ -9,6 +9,7 @@
"version": "3.6.2",
"license": "MIT",
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@antv/l7": "^2.19.11",
"@antv/l7-draw": "^3.1.1",
"@antv/l7-maps": "^2.19.11",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -9,7 +9,7 @@ export function deviceMonitorList(query) {
})
}
// 根据配电柜id获取灯杆列表信息
// 根据配电柜id获取场所列表信息
export function getLightPoleListBySwitchBoxId(id) {
return request({
url: `/smartlight/deviceMonitor/getLightPoleListBySwitchBoxId/${id}`,

View File

@@ -1,6 +1,6 @@
import request from '@/utils/request'
// 查询灯杆管理列表
// 查询场所管理列表
export function listLightPole(query) {
return request({
url: '/smartlight/light/lightPole/list',
@@ -9,7 +9,7 @@ export function listLightPole(query) {
})
}
// 查询灯杆管理详细
// 查询场所管理详细
export function getLightPole(id) {
return request({
url: '/smartlight/light/lightPole/' + id,
@@ -17,7 +17,7 @@ export function getLightPole(id) {
})
}
// 新增灯杆管理
// 新增场所管理
export function addLightPole(data) {
return request({
url: '/smartlight/light/lightPole',
@@ -26,7 +26,7 @@ export function addLightPole(data) {
})
}
// 修改灯杆管理
// 修改场所管理
export function updateLightPole(data) {
return request({
url: '/smartlight/light/lightPole',
@@ -35,7 +35,7 @@ export function updateLightPole(data) {
})
}
// 删除灯杆管理
// 删除场所管理
export function delLightPole(id) {
return request({
url: '/smartlight/light/lightPole/' + id,
@@ -43,7 +43,7 @@ export function delLightPole(id) {
})
}
// 获取灯杆下设备列表信息
// 获取场所下设备列表信息
export function getLightDeviceList(id) {
return request({
url: '/smartlight/light/lightPole/getLightDeviceList/' + id,
@@ -51,7 +51,7 @@ export function getLightDeviceList(id) {
})
}
// 批量转移灯杆管理
// 批量转移场所管理
export function batchUpdateBuilding({ ids, buildingId, buildingName }) {
return request({
url: `/smartlight/light/lightPole/batchUpdateBuilding/${ids}/${buildingId}/${buildingName}`,

View File

@@ -1,7 +1,7 @@
import request from '@/utils/request'
import axios from 'axios'
// 查询灯杆类型管理列表
// 查询场所类型管理列表
export function listPoleType(query) {
return request({
url: '/smartlight/light/poleType/list',
@@ -10,7 +10,7 @@ export function listPoleType(query) {
})
}
// 查询灯杆类型管理详细
// 查询场所类型管理详细
export function getPoleType(id) {
return request({
url: '/smartlight/light/poleType/' + id,
@@ -18,7 +18,7 @@ export function getPoleType(id) {
})
}
// 新增灯杆类型管理
// 新增场所类型管理
export function addPoleType(data) {
return request({
url: '/smartlight/light/poleType',
@@ -27,7 +27,7 @@ export function addPoleType(data) {
})
}
// 修改灯杆类型管理
// 修改场所类型管理
export function updatePoleType(data) {
return request({
url: '/smartlight/light/poleType',
@@ -36,7 +36,7 @@ export function updatePoleType(data) {
})
}
// 删除灯杆类型管理
// 删除场所类型管理
export function delPoleType(id) {
return request({
url: '/smartlight/light/poleType/' + id,
@@ -44,7 +44,7 @@ export function delPoleType(id) {
})
}
// 上传灯杆模型
// 上传场所模型
export function getBimToken() {
return new Promise((resolve, reject) => {
axios({
@@ -84,7 +84,7 @@ export function uploadModel(data, token, method, id) {
})
}
// 获取灯杆下挂载的设备
// 获取场所下挂载的设备
export function getPoleDevice(id) {
return request({
url: `/smartlight/light/lightPole/getLightDeviceList/${id}`,
@@ -92,7 +92,7 @@ export function getPoleDevice(id) {
})
}
// 获取灯杆下所有的灯控
// 获取场所下所有的灯控
export function lampControlByPole(query) {
return request({
url: '/smartlight/screen/lampControlByPole',
@@ -101,7 +101,7 @@ export function lampControlByPole(query) {
})
}
// 获取灯杆下所有的摄像头
// 获取场所下所有的摄像头
export function cameraByPole(query) {
return request({
url: '/smartlight/screen/cameraByPole',

View File

@@ -43,7 +43,7 @@ export function delScreen(id) {
})
}
// 获取灯杆对应的显示屏信息 1对1
// 获取场所对应的显示屏信息 1对1
export function infoScreenByPole(query) {
return request({
url: '/smartlight/screen/infoScreenByPole',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@@ -17,7 +17,7 @@
<div class="avatar-container">
<el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img src="./../../assets/images/logo.png" alt="" />
<img src="./../../assets/images/logo.jpg" alt="" />
<el-icon><caret-bottom /></el-icon>
</div>
<template #dropdown>

View File

@@ -37,7 +37,7 @@
<script setup>
import variables from '@/assets/styles/variables.module.scss'
import logo from '@/assets/logo/logo.png'
import logo from '@/assets/logo/logo.jpg'
import useSettingsStore from '@/store/modules/settings'
import { getConfigKey } from '@/api/system/config'
@@ -52,7 +52,7 @@ getDefaultTitle()
const title = ref('')
function getDefaultTitle() {
getConfigKey('defaultTitle').then((res) => {
getConfigKey('iotTitle').then((res) => {
title.value = res.msg
})
}

View File

@@ -65,7 +65,7 @@ export const constantRoutes = [
{
path: '',
component: Layout,
redirect: '/light/switchBox'
redirect: '/devicemonitor/deviceMonitor'
// children: [
// {
// path: '/index',

View File

@@ -1,6 +1,6 @@
import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
import defAva from '@/assets/images/logo.png'
import defAva from '@/assets/images/logo.jpg'
const useUserStore = defineStore('user', {
state: () => ({

View File

@@ -17,7 +17,7 @@ export function useDynamicTitle() {
let title = defaultSettings.title
function getDefaultTitle() {
getConfigKey('defaultTitle').then((res) => {
getConfigKey('iotTitle').then((res) => {
title = res.msg
})
}

View File

@@ -189,8 +189,8 @@ export function createPopupEle(item, flag) {
<div class="popup-title">${item.feature.name}</div>
<div class="line"></div>
<div class="popup-content">
<div class="item">设备编号:<span class="num">${item.feature.code}</span></div>
${item.feature.type === '1' ? `<div class="item">关联灯杆数:<span class="num">${item.feature.deviceCount}</span>个</div>` : ''}
<div class="item">场所编号:<span class="num">${item.feature.code}</span></div>
${item.feature.type === '1' ? `<div class="item">关联场所数:<span class="num">${item.feature.deviceCount}</span>个</div>` : ''}
${item.feature.type === '2' ? `<div class="item">挂载设备数:<span class="num">${item.feature.deviceCount}</span>个</div>` : ''}
${item.feature.type === '3' ? `<div class="item">控制灯具数:<span class="num">${item.feature.deviceCount}</span>个</div>` : ''}
<div class="item">现存故障:<span class="${item.feature.alarmTypeLabel ? 'error' : ''}">${item.feature.alarmTypeLabel || '无'}</span></div>

View File

@@ -1,8 +1,8 @@
<template>
<el-input v-model="selectName" placeholder="请选择灯杆" readonly>
<el-input v-model="selectName" placeholder="请选择场所" readonly>
<template #append>
<el-button icon="Search" @click="openSelectPanel()">
<el-dialog v-model="dialogVisible" @close="close" title="灯杆选择" append-to-body>
<el-dialog v-model="dialogVisible" @close="close" title="场所选择" append-to-body>
<el-form :model="queryParams" ref="queryRef" :inline="true">
<el-form-item label="层级名称" prop="buildingId">
<el-tree-select
@@ -18,11 +18,11 @@
@change="getList"
/>
</el-form-item>
<el-form-item label="灯杆名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入灯杆名称" clearable @keyup.enter="handleQuery" @change="getList" @clear="clearInput" />
<el-form-item label="场所名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入场所名称" clearable @keyup.enter="handleQuery" @change="getList" @clear="clearInput" />
</el-form-item>
<el-form-item label="灯杆类型" prop="poleTypeId">
<el-select placeholder="请选择灯杆类型" v-model="queryParams.poleTypeId" @change="getList" clearable @keyup.enter="handleQuery">
<el-form-item label="场所类型" prop="poleTypeId">
<el-select placeholder="请选择场所类型" v-model="queryParams.poleTypeId" @change="getList" clearable @keyup.enter="handleQuery">
<el-option v-for="poleType in poleTypeList" :key="poleType.id" :label="poleType.name" :value="poleType.id" />
</el-select>
</el-form-item>
@@ -33,9 +33,9 @@
<el-checkbox v-model="scope.row.isSelect" @change="selectHandler(scope)"></el-checkbox>
</template>
</el-table-column>
<el-table-column label="灯杆名称" align="center" prop="name" />
<el-table-column label="灯杆类型" align="center" prop="poleTypeName" />
<el-table-column label="灯杆编号" align="center" prop="code" />
<el-table-column label="场所名称" align="center" prop="name" />
<el-table-column label="场所类型" align="center" prop="poleTypeName" />
<el-table-column label="场所编号" align="center" prop="code" />
<el-table-column label="规格(米)" align="center" prop="specification" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
</el-table>
@@ -115,12 +115,12 @@ const openSelectPanel = () => {
const close = () => {
dialogVisible.value = false
}
// 灯杆名称清除
// 场所名称清除
const clearInput = (val) => {
queryParams.value.name = ''
getList()
}
// 查询当前灯杆
// 查询当前场所
const getCurrentList = () => {
if (props.name) {
queryParams.value.name = props.name
@@ -177,7 +177,7 @@ const selectSubmit = () => {
selectName.value = selectVal.value.name
close()
}
/** 查询灯杆类型管理列表 */
/** 查询场所类型管理列表 */
function getPoleTypeList() {
listPoleType(queryPoleTypeParams.value).then((response) => {
poleTypeList.value = response.rows

View File

@@ -28,8 +28,8 @@
<div class="search-con">
<div class="title">查询条件</div>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="灯杆名称" prop="poleName">
<el-input v-model="queryParams.poleName" placeholder="请输入灯杆名称" clearable @keyup.enter="handleQuery" />
<el-form-item label="场所名称" prop="poleName">
<el-input v-model="queryParams.poleName" placeholder="请输入场所名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="摄像头名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入摄像头名称" clearable @keyup.enter="handleQuery" />
@@ -53,7 +53,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="摄像头编号" align="center" prop="code" />
<el-table-column label="摄像头名称" align="center" prop="name" />
<el-table-column label="所属灯杆" align="center" prop="poleName" />
<el-table-column label="所属场所" align="center" prop="poleName" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
<el-table-column label="通道号" align="center" prop="channelCode" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -88,7 +88,7 @@
<el-form-item label="摄像头名称" prop="name">
<el-input v-model="form.name" placeholder="请输入摄像头名称" />
</el-form-item>
<el-form-item label="所属灯杆" prop="poleId">
<el-form-item label="所属场所" prop="poleId">
<LightPoleSelect v-model:id="form.poleId" />
</el-form-item>
<el-form-item label="设备厂家" prop="manufactorName">
@@ -144,7 +144,7 @@ const data = reactive({
rules: {
code: [{ required: true, message: '摄像头编号不能为空', trigger: ['blur', 'change'] }],
name: [{ required: true, message: '摄像头名称不能为空', trigger: ['blur', 'change'] }],
poleId: [{ required: true, message: '所属灯杆不能为空', trigger: ['blur', 'change'] }],
poleId: [{ required: true, message: '所属场所不能为空', trigger: ['blur', 'change'] }],
manufactorName: [{ required: true, message: '设备厂家不能为空', trigger: ['blur', 'change'] }],
channelCode: [{ required: true, message: '通道号不能为空', trigger: ['blur', 'change'] }]
}

View File

@@ -1,18 +1,18 @@
<template>
<div class="switch-con" v-loading="loading">
<div class="header-con">
<div class="title">{{ poleType }}灯杆信息</div>
<div class="title">{{ poleType }}场所信息</div>
<div class="img" @click="handleClose"><img :src="getAssetsFile('tools/close.png')" /></div>
</div>
<el-form ref="lightPoleRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="灯杆编号" prop="code">
<el-form-item label="场所编号" prop="code">
<DeviceResourceLibrary v-if="open" v-model:deviceCode="form.code" v-model:name="form.name" v-model:deviceId="form.deviceId" />
</el-form-item>
<el-form-item label="灯杆名称" prop="name">
<el-input v-model="form.name" placeholder="请输入灯杆名称" />
<el-form-item label="场所名称" prop="name">
<el-input v-model="form.name" placeholder="请输入场所名称" />
</el-form-item>
<el-form-item label="灯杆类型" prop="poleTypeId">
<el-select v-model="form.poleTypeId" placeholder="请选择灯杆类型" clearable>
<el-form-item label="场所类型" prop="poleTypeId">
<el-select v-model="form.poleTypeId" placeholder="请选择场所类型" clearable>
<el-option v-for="poleType in poleTypeList" :key="poleType.id" :label="poleType.name" :value="poleType.id" />
</el-select>
</el-form-item>
@@ -82,9 +82,9 @@ const poleTypeList = ref([])
const data = reactive({
form: {},
rules: {
name: [{ required: true, message: '灯杆名称不能为空', trigger: ['blur', 'change'] }],
code: [{ required: true, message: '灯杆编号不能为空', trigger: ['blur', 'change'] }],
poleTypeId: [{ required: true, message: '灯杆类型不能为空', trigger: ['blur', 'change'] }],
name: [{ required: true, message: '场所名称不能为空', trigger: ['blur', 'change'] }],
code: [{ required: true, message: '场所编号不能为空', trigger: ['blur', 'change'] }],
poleTypeId: [{ required: true, message: '场所类型不能为空', trigger: ['blur', 'change'] }],
buildingId: [{ required: true, message: '所属层级不能为空', trigger: ['blur', 'change'] }],
lonLat: [{ required: true, message: '经纬度不能为空', trigger: ['blur', 'change'] }]
}
@@ -208,7 +208,7 @@ const handleShowDialog = () => {
const handleDel = () => {
if (form.value.id) {
proxy.$modal
.confirm('是否确认删除选中的灯杆')
.confirm('是否确认删除选中的场所')
.then(function () {
return delLightPole(form.value.id)
})

View File

@@ -95,7 +95,7 @@ const getInfo = async () => {
const { buildingId, poleId } = props
loading.value = true
// 获取当前灯杆绑定的设备比如灯控显示屏。其中灯控和摄像头可能有多个需要传递buildingId和poleId去获取所有的
// 获取当前场所绑定的设备比如灯控显示屏。其中灯控和摄像头可能有多个需要传递buildingId和poleId去获取所有的
const deviceResult = await getPoleDevice(poleId)
currentPoleDeviceList.value = deviceResult.data.map((item) => {

View File

@@ -8,7 +8,7 @@
<TitleComp title="基础信息" />
<div class="basic-info">
<span>设备编号{{ currentSwitchBoxInfo.code }}</span>
<span>关联灯杆{{ currentSwitchBoxInfo.deviceCount }}</span>
<span>关联场所{{ currentSwitchBoxInfo.deviceCount }}</span>
<span :class="currentSwitchBoxInfo.alarmTypeLabel ? 'error' : ''">现存故障{{ currentSwitchBoxInfo.alarmTypeLabel || '无' }}</span>
</div>
<TitleComp title="模块信息" />

View File

@@ -59,7 +59,7 @@ const handleToolClick = (item, index) => {
const editTools = ref([
{ id: 0, active: false, title: '配电柜', img: 'distributionCabinet' },
{ id: 1, active: false, title: '灯杆', img: 'pole' },
{ id: 1, active: false, title: '场所', img: 'pole' },
{ id: 2, active: false, title: '线缆', img: 'cable' }
])
@@ -88,8 +88,8 @@ const handleToolItemClick = (item, index) => {
const checkAll = ref(true)
const isIndeterminate = ref(false)
const checkedDeviceList = ref(['配电柜', '灯杆', '线缆'])
const deviceList = ref(['配电柜', '灯杆', '线缆'])
const checkedDeviceList = ref(['配电柜', '场所', '线缆'])
const deviceList = ref(['配电柜', '场所', '线缆'])
const handleCheckAllChange = (val) => {
checkedDeviceList.value = val ? deviceList.value : []

View File

@@ -26,11 +26,11 @@
</div>
</div>
<div class="pole-list">
<div class="header">灯杆列表</div>
<div class="header">场所列表</div>
<div class="line"></div>
<el-table v-loading="loading" :data="lightPoleList" height="90%" highlight-current-row @row-click="handleRowClick">
<el-table-column label="灯杆名称" align="center" prop="name" />
<el-table-column label="灯杆编号" align="center" prop="code" />
<el-table-column label="场所名称" align="center" prop="name" />
<el-table-column label="场所编号" align="center" prop="code" />
</el-table>
</div>
</div>
@@ -692,7 +692,7 @@ const deviceChange = (val) => {
clearDevice()
val.forEach((item) => {
if (item === '灯杆') {
if (item === '场所') {
addPole()
}
if (item === '配电柜') {

View File

@@ -26,11 +26,11 @@
</div>
</div>
<div class="pole-list">
<div class="header">灯杆列表</div>
<div class="header">场所列表</div>
<div class="line"></div>
<el-table v-loading="loading" :data="lightPoleList" height="90%" highlight-current-row @row-click="handleRowClick">
<el-table-column label="灯杆名称" align="center" prop="name" />
<el-table-column label="灯杆编号" align="center" prop="code" />
<el-table-column label="场所名称" align="center" prop="name" />
<el-table-column label="场所编号" align="center" prop="code" />
</el-table>
</div>
</div>
@@ -354,7 +354,7 @@ const handleInitMap = () => {
myScene.value.removeLayer(newMarkerLayer.value)
}
if (currentMapDevice.value === 'distributionCabinet') {
// NOTE: 如果编辑的时候点击的是配电柜,就不应该能再点击线缆,如果之前点击的是灯杆,就不应该再点击配电柜
// NOTE: 如果编辑的时候点击的是配电柜,就不应该能再点击线缆,如果之前点击的是场所,就不应该再点击配电柜
// TODO: 如果之前点了配电柜,再点击新配电柜,处理方式
drawLineLayer.value.disable()
if (showPole.value) {
@@ -435,9 +435,9 @@ const handleInitMap = () => {
}
const showEdit = ref(true)
// 点击左侧灯杆列表,灯杆选中
// 点击左侧场所列表,场所选中
const handleRowClick = (row, column, event) => {
// NOTE: 点击左侧灯杆列表,取消编辑状态,恢复成查看详情状态,应该将所有的弹框都关闭
// NOTE: 点击左侧场所列表,取消编辑状态,恢复成查看详情状态,应该将所有的弹框都关闭
// TODO: 应该弹出详情弹窗
showEdit.value = false
if (showPole.value) {
@@ -459,7 +459,7 @@ const handleRowClick = (row, column, event) => {
// 点击搜索列表,定位到设备
const handleDeviceClick = (item) => {
console.log(item)
// 灯杆
// 场所
if (item.type === '2') {
handleRowClick(item)
}
@@ -500,7 +500,7 @@ const highLightCurrentPole = (row) => {
}),
poleRightErrorConfig
)
//添加选中的灯杆弹窗
//添加选中的场所弹窗
poleSelectLayer.value && myScene.value.removeLayer(poleSelectLayer.value)
poleSelectLayer.value = createPoint(
myScene.value,
@@ -611,7 +611,7 @@ const poleLngLat = ref('')
const showPoleDetail = ref(false)
const currentPoleInfo = ref(null)
// 点击灯杆
// 点击场所
const poleRightOnlineClick = (type, e) => {
poleId.value = e.feature.id
const { id, status, lonLat } = e.feature
@@ -626,7 +626,7 @@ const poleRightOnlineClick = (type, e) => {
getPoleDevice(id).then((res) => {
if (res.data.length === 0) {
showPoleDetail.value = false
ElMessage.warning('该灯杆下暂无挂载设备')
ElMessage.warning('该场所下暂无挂载设备')
} else {
showPoleDetail.value = true
currentPoleInfo.value = e.feature
@@ -772,13 +772,13 @@ const toolItemClick = (item) => {
}
}
const currentSelectDeviceArr = ref(['配电柜', '灯杆', '线缆'])
const currentSelectDeviceArr = ref(['配电柜', '场所', '线缆'])
const deviceChange = (val) => {
currentSelectDeviceArr.value = val
clearDevice()
val.forEach((item) => {
if (item === '灯杆') {
if (item === '场所') {
addPole()
}
if (item === '配电柜') {
@@ -791,7 +791,7 @@ const deviceChange = (val) => {
const obj = {
配电柜: '1',
灯杆: '2',
场所: '2',
线缆: '3'
}

View File

@@ -132,7 +132,7 @@
v-model="queryParamsLeft.poleNameCode"
style="width: 160px; margin-bottom: 10px"
:style="{ marginLeft: form.lightGroup.type === '1' ? '0px' : '10px' }"
placeholder="请输入灯杆编号或名称"
placeholder="请输入场所编号或名称"
clearable
/>
<el-input
@@ -154,8 +154,8 @@
<el-table-column label="所属层级" align="center" prop="buildingName" />
<el-table-column label="所属集控" align="center" prop="centralizedControlName" v-if="form.lightGroup.type !== '3'" />
<el-table-column label="所属回路" align="center" prop="loopName" v-if="form.lightGroup.type !== '3'" />
<el-table-column label="灯杆编号" align="center" prop="poleCode" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所编号" align="center" prop="poleCode" />
<el-table-column label="场所名称" align="center" prop="poleName" />
<el-table-column label="灯具位置" v-if="form.lightGroup.type === '1'" align="center" prop="position">
<template #default="scope">
<dict-tag :options="lamp_position" :value="scope.row.position" />
@@ -233,7 +233,7 @@
<el-input
v-model="queryParamsRight.poleNameCode"
style="width: 160px; margin-bottom: 10px"
placeholder="请输入灯杆编号或名称"
placeholder="请输入场所编号或名称"
:style="{ marginLeft: form.lightGroup.type === '1' ? '0px' : '10px' }"
clearable
/>
@@ -256,8 +256,8 @@
<el-table-column label="所属层级" align="center" prop="buildingName" />
<el-table-column label="所属集控" align="center" prop="centralizedControlName" v-if="form.lightGroup.type !== '3'" />
<el-table-column label="所属回路" align="center" prop="loopName" v-if="form.lightGroup.type !== '3'" />
<el-table-column label="灯杆编号" align="center" prop="poleCode" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所编号" align="center" prop="poleCode" />
<el-table-column label="场所名称" align="center" prop="poleName" />
<el-table-column label="灯具位置" v-if="form.lightGroup.type === '1'" align="center" prop="position">
<template #default="scope">
<dict-tag :options="lamp_position" :value="scope.row.position" />
@@ -309,8 +309,8 @@
<el-table-column label="所属层级" align="center" prop="buildingName" />
<el-table-column label="所属集控" align="center" prop="centralizedControlName" v-if="formView.type !== '3'" />
<el-table-column label="所属回路" align="center" prop="loopName" v-if="formView.type !== '3'" />
<el-table-column label="灯杆编号" align="center" prop="poleCode" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所编号" align="center" prop="poleCode" />
<el-table-column label="场所名称" align="center" prop="poleName" />
<el-table-column label="灯具位置" v-if="formView.type === '1'" align="center" prop="position">
<template #default="scope">
<dict-tag :options="lamp_position" :value="scope.row.position" />

View File

@@ -76,7 +76,7 @@
</el-table-column>
<el-table-column label="IMEI号" align="center" prop="imeiCode" />
<el-table-column label="灯具名称" align="center" prop="name" />
<el-table-column label="所属灯杆" align="center" prop="poleName" />
<el-table-column label="所属场所" align="center" prop="poleName" />
<el-table-column label="灯具状态" align="center" prop="lampStatus">
<template #default="scope">
<dict-tag :options="switch_status" :value="scope.row.lampStatus" />
@@ -188,7 +188,7 @@
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<span class="title">所属灯杆</span><span class="content">{{ basicInformation.poleName }}</span>
<span class="title">所属场所</span><span class="content">{{ basicInformation.poleName }}</span>
</el-col>
<el-col :span="8">
<span class="title">所属层级</span><span class="content">{{ basicInformation.buildingName }}</span>

View File

@@ -71,7 +71,7 @@
</el-table-column>
<el-table-column label="IMEI号" align="center" prop="code" />
<el-table-column label="灯控名称" align="center" prop="name" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所名称" align="center" prop="poleName" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
<el-table-column label="回路数" align="center" prop="loopNum">
<template #default="scope">
@@ -126,7 +126,7 @@
<el-option v-for="dict in lamp_product" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="所属灯杆" prop="poleId">
<el-form-item label="所属场所" prop="poleId">
<LightPoleSelect v-model:id="form.poleId" />
</el-form-item>
<!-- note: 回路数和所属产品先不关联 -->
@@ -323,7 +323,7 @@ const data = reactive({
type: [{ required: true, message: '所属产品不能为空', trigger: 'change' }],
name: [{ required: true, message: '灯控名称不能为空', trigger: 'blur' }],
code: [{ required: true, message: 'IMEI号不能为空', trigger: 'change' }],
poleId: [{ required: true, message: '所属灯杆不能为空', trigger: 'blur' }],
poleId: [{ required: true, message: '所属场所不能为空', trigger: 'blur' }],
dimmerType: [{ required: true, message: '调光类型不能为空', trigger: 'change' }],
loopNum: [{ required: true, message: '回路数不能为空', trigger: 'blur' }],
'lightLampList.code': {},

View File

@@ -367,7 +367,7 @@
<el-table v-loading="loadingRelease" :data="groupList" @selection-change="handleReleaseSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="所属层级" align="center" prop="buildingName" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="所属灯杆" align="center" prop="poleName" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="所属场所" align="center" prop="poleName" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="灯具编号" align="center" prop="imeiCode" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="灯具名称" align="center" prop="name" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="发布进度" align="center" prop="specification" v-if="queryParamsRelease.type === '1'" />
@@ -410,7 +410,7 @@
@change="getDeviceList"
/>
</el-form-item>
<el-form-item label="所属灯杆" prop="poleId">
<el-form-item label="所属场所" prop="poleId">
<LightPoleSelect v-model:id="queryParamsView.poleId" />
</el-form-item>
@@ -428,7 +428,7 @@
<el-table v-loading="loadingView" :data="deviceList" @selection-change="handleDeviceSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所名称" align="center" prop="poleName" />
<el-table-column label="灯具编号" align="center" prop="imeiCode"> </el-table-column>
<el-table-column label="灯具名称" align="center" prop="name" />
<el-table-column label="在线状态" align="center" prop="lampStatus">

View File

@@ -181,7 +181,7 @@
<el-table-column type="selection" :selectable="handleLeftSelectable" width="55" align="center" />
<el-table-column label="IMEI号" align="center" prop="code" />
<el-table-column label="灯控名称" align="center" prop="name" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所名称" align="center" prop="poleName" />
</el-table>
<el-pagination small background layout="total, prev, pager, next" :total="leftTotal" @current-change="handleLeftChange" />
</div>
@@ -207,7 +207,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="IMEI号" align="center" prop="code" />
<el-table-column label="灯控名称" align="center" prop="name" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所名称" align="center" prop="poleName" />
</el-table>
<el-pagination small background layout="total, prev, pager, next" :total="rightTotal" @current-change="handleRightChange" />
</div>

View File

@@ -70,7 +70,7 @@
</el-table-column>
<el-table-column label="IMEI号" align="center" prop="code" />
<el-table-column label="灯具名称" align="center" prop="name" />
<el-table-column label="所属灯杆" align="center" prop="poleName" />
<el-table-column label="所属场所" align="center" prop="poleName" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
<el-table-column label="灯具状态" align="center" prop="lampStatus">
<template #default="scope">
@@ -153,7 +153,7 @@
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<span class="title">所属灯杆</span><span class="content">{{ basicInformation.poleName }}</span>
<span class="title">所属场所</span><span class="content">{{ basicInformation.poleName }}</span>
</el-col>
<el-col :span="8">
<span class="title">所属层级</span><span class="content">{{ basicInformation.buildingName }}</span>

View File

@@ -29,14 +29,14 @@
<div class="search-con">
<div class="title">查询条件</div>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="灯杆名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入灯杆名称" clearable @keyup.enter="handleQuery" />
<el-form-item label="场所名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入场所名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="灯杆编号" prop="code">
<el-input v-model="queryParams.code" placeholder="请输入灯杆编号" clearable @keyup.enter="handleQuery" />
<el-form-item label="场所编号" prop="code">
<el-input v-model="queryParams.code" placeholder="请输入场所编号" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="灯杆类型" prop="poleTypeId">
<el-select placeholder="请选择灯杆类型" v-model="queryParams.poleTypeId" clearable @keyup.enter="handleQuery">
<el-form-item label="场所类型" prop="poleTypeId">
<el-select placeholder="请选择场所类型" v-model="queryParams.poleTypeId" clearable @keyup.enter="handleQuery">
<el-option v-for="poleType in poleTypeList" :key="poleType.id" :label="poleType.name" :value="poleType.id" />
</el-select>
</el-form-item>
@@ -64,16 +64,16 @@
<div class="content-con">
<el-table v-loading="loading" :data="lightPoleList" @selection-change="handleSelectionChange" height="calc(100% - 100px)">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="灯杆名称" align="center" prop="name" />
<el-table-column label="灯杆编号" align="center" prop="code" />
<el-table-column label="灯杆类型" align="center" prop="poleTypeName" />
<el-table-column label="场所名称" align="center" prop="name" />
<el-table-column label="场所编号" align="center" prop="code" />
<el-table-column label="场所类型" align="center" prop="poleTypeName" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
<el-table-column label="挂载设备数" align="center" prop="deviceCount" />
<el-table-column width="120" height="80" label="二维码" :resizable="false" :show-overflow-tooltip="true" header-align="center" align="center">
<template v-slot="scope">
<!-- <template v-slot="scope">
<el-image v-if="scope.row.qrCodeUrl === '' || scope.row.qrCodeUrl === null" style="display: none" fit="contain"> </el-image>
<el-image v-else style="height: 80px; cursor: pointer" :src="scope.row.qrCodeUrl" @click="viewQrcode(scope.row)" fit="contain"> </el-image>
</template>
</template> -->
</el-table-column>
<!-- <el-table-column label="层级名称" align="center" prop="buildingName" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -91,17 +91,17 @@
</div>
</el-col>
</el-row>
<!-- 添加或修改灯杆管理对话框 -->
<!-- 添加或修改场所管理对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="lightPoleRef" :model="form" :rules="rules" label-width="120px">
<el-form-item label="灯杆编号" prop="code">
<el-form-item label="场所编号" prop="code">
<DeviceResourceLibrary v-model:deviceCode="form.code" v-model:name="form.name" v-model:deviceId="form.deviceId" :currentType="currentType" />
</el-form-item>
<el-form-item label="灯杆名称" prop="name">
<el-input v-model="form.name" placeholder="请输入灯杆名称" />
<el-form-item label="场所名称" prop="name">
<el-input v-model="form.name" placeholder="请输入场所名称" />
</el-form-item>
<el-form-item label="灯杆类型" prop="poleTypeId">
<el-select v-model="form.poleTypeId" placeholder="请选择灯杆类型" clearable>
<el-form-item label="场所类型" prop="poleTypeId">
<el-select v-model="form.poleTypeId" placeholder="请选择场所类型" clearable>
<el-option v-for="poleType in poleTypeList" :key="poleType.id" :label="poleType.name" :value="poleType.id" />
</el-select>
</el-form-item>
@@ -130,7 +130,7 @@
<el-input v-model="form.position" placeholder="请输入安装位置" />
</el-form-item>
</el-form>
<template v-if="title !== '查看灯杆管理'" #footer>
<template v-if="title !== '查看场所管理'" #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
@@ -146,15 +146,15 @@
<div v-if="activeName === 'first'" class="basic-information">
<el-row :gutter="20">
<el-col :span="8">
<span class="title">灯杆编号</span><span class="content">{{ basicInformation.code }}</span>
<span class="title">场所编号</span><span class="content">{{ basicInformation.code }}</span>
</el-col>
<el-col :span="8">
<span class="title">灯杆名称</span><span class="content">{{ basicInformation.name }}</span>
<span class="title">场所名称</span><span class="content">{{ basicInformation.name }}</span>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<span class="title">灯杆类型</span><span class="content">{{ basicInformation.poleTypeName }}</span>
<span class="title">场所类型</span><span class="content">{{ basicInformation.poleTypeName }}</span>
</el-col>
<el-col :span="8">
<span class="title">所属层级</span><span class="content">{{ basicInformation.buildingName }}</span>
@@ -176,8 +176,8 @@
</div>
<div v-if="activeName === 'second'">
<el-table :data="loopList">
<el-table-column label="灯杆编号" align="center" prop="code" />
<el-table-column label="灯杆名称" align="center" prop="name" />
<el-table-column label="场所编号" align="center" prop="code" />
<el-table-column label="场所名称" align="center" prop="name" />
<el-table-column label="网络状态" align="center" prop="networkStatus">
<template #default="scope">
<div v-if="scope.row.networkStatus === '1'">开启</div>
@@ -259,7 +259,7 @@ import { require } from '@/utils/require'
import { treeFilterNode } from '@/utils/utils'
const viewQrcodeImageSrc = ref('')
const dialogQrcodeTitle = ref('查看灯杆二维码')
const dialogQrcodeTitle = ref('查看场所二维码')
const dialogQrcodeVisible = ref(false)
const { proxy } = getCurrentInstance()
const lightPoleList = ref([])
@@ -283,7 +283,7 @@ const currentRowId = ref('')
const value1 = ref(0)
const loopList = ref([])
const transferOpen = ref(false)
const currentType = ref('灯杆')
const currentType = ref('场所')
const operateList = ref([
{ id: 'view', icon: 'View', title: '查看', hasPermi: ['light:lightPole:query'] },
{ id: 'edit', icon: 'Edit', title: '修改', hasPermi: ['light:lightPole:edit'] },
@@ -307,9 +307,9 @@ const data = reactive({
pageSize: 1000
},
rules: {
name: [{ required: true, message: '灯杆名称不能为空', trigger: 'blur' }],
code: [{ required: true, message: '灯杆编号不能为空', trigger: 'blur' }],
poleTypeId: [{ required: true, message: '灯杆类型不能为空', trigger: 'blur' }],
name: [{ required: true, message: '场所名称不能为空', trigger: 'blur' }],
code: [{ required: true, message: '场所编号不能为空', trigger: 'blur' }],
poleTypeId: [{ required: true, message: '场所类型不能为空', trigger: 'blur' }],
buildingId: [{ required: true, message: '所属层级不能为空', trigger: 'blur' }],
lonLat: [{ required: true, message: '经纬度不能为空', trigger: 'blur' }]
},
@@ -395,7 +395,7 @@ function turnOff(row) {
})
.catch(() => {})
}
/** 查询灯杆管理列表 */
/** 查询场所管理列表 */
function getList() {
loading.value = true
listLightPole(queryParams.value).then((response) => {
@@ -403,8 +403,8 @@ function getList() {
const url = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port
// let url= "http://47.105.107.116:81/";
for (let i = 0; i < lightPoleList.value.length; i++) {
if (lightPoleList[i].qrCodeUrl != null) {
lightPoleList[i].qrCodeUrl = url + lightPoleList[i].qrCodeUrl
if (lightPoleList.value[i].qrCodeUrl != null) {
lightPoleList.value[i].qrCodeUrl = url + lightPoleList.value[i].qrCodeUrl
}
}
total.value = response.total
@@ -475,10 +475,10 @@ const handleView = (row) => {
currentRowId.value = row.id
form.value = row
detailOpen.value = true
detailTitle.value = '灯杆详情'
detailTitle.value = '场所详情'
basicInformation.value = row
}
// 查看灯杆二维码
// 查看场所二维码
const viewQrcode = (row) => {
if (row.qrCodeUrl === null) {
this.$message({
@@ -496,7 +496,7 @@ const viewQrcode = (row) => {
function handleAdd() {
reset()
open.value = true
title.value = '添加灯杆管理'
title.value = '添加场所管理'
}
/** 修改按钮操作 */
@@ -507,7 +507,7 @@ function handleUpdate(row) {
form.value = response.data
form.value.putIntoUseTime = parseTime(form.value.putIntoUseTime, '{y}-{m}-{d}')
open.value = true
title.value = '修改灯杆管理'
title.value = '修改场所管理'
})
}
@@ -551,7 +551,7 @@ function handleDelete(row) {
function handleGenerate(row) {
const _ids = row.id || ids.value
proxy.$modal
.confirm('是否确认生成并下载选中灯杆的二维码?')
.confirm('是否确认生成并下载选中场所的二维码?')
.then(function () {
downLoadZip('/smartlight/light/lightPole/generate?ids=' + _ids, 'smart-light')
getList()
@@ -568,7 +568,7 @@ function handleExport() {
{
...queryParams.value
},
`灯杆管理_${new Date().getTime()}.xlsx`
`场所管理_${new Date().getTime()}.xlsx`
)
}
@@ -579,7 +579,7 @@ const handleTransfer = (row) => {
transferForm.value.ids = _ids
}
/** 查询灯杆类型管理列表 */
/** 查询场所类型管理列表 */
function getPoleTypeList() {
listPoleType(queryPoleTypeParams.value).then((response) => {
poleTypeList.value = response.rows

View File

@@ -3,8 +3,8 @@
<div class="search-con">
<div class="title">查询条件</div>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="灯杆类型名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入灯杆类型名称" clearable @keyup.enter="handleQuery" />
<el-form-item label="场所类型名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入场所类型名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
</el-form>
<div class="search-btn-con">
@@ -24,7 +24,7 @@
<div class="content-con" v-loading="loading">
<el-table v-loading="loading" :data="poleTypeList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="灯杆类型名称" align="center" prop="name" />
<el-table-column label="场所类型名称" align="center" prop="name" />
<el-table-column label="规格(米)" align="center" prop="specification" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template v-slot="scope">
@@ -39,28 +39,28 @@
<el-pagination small background layout="total, prev, pager, next" :total="total" @current-change="handleCurrentChange" />
</div>
</div>
<!-- 添加或修改灯杆类型管理对话框 -->
<!-- 添加或修改场所类型管理对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="poleTypeRef" :model="form" :rules="rules" label-width="120px" :disabled="type === 'view'">
<el-form-item label="灯杆类型名称" prop="name">
<el-input v-model="form.name" placeholder="请输入灯杆类型名称" />
<el-form-item label="场所类型名称" prop="name">
<el-input v-model="form.name" placeholder="请输入场所类型名称" />
</el-form-item>
<el-form-item label="灯杆规格(米)" prop="specification">
<el-form-item label="场所规格(米)" prop="specification">
<div style="display: inline">
<el-input-number v-model="form.specification" :min="0" :precision="2" :step="0.1" :inline="true"></el-input-number>单位/
</div>
</el-form-item>
<el-form-item label="上传灯杆图片" prop="url">
<el-form-item label="上传场所图片" prop="url">
<image-upload :limit="1" v-model:modelValue="form.url" v-model:isToString="isToString" />
</el-form-item>
<el-form-item label="上传灯杆模型" prop="bimId">
<el-form-item label="上传场所模型" prop="bimId">
<el-upload action="#" :show-file-list="false" :limit="1" :http-request="uploadModelFile" :on-exceed="handleExceed">
<el-button>上传灯杆模型</el-button>
<el-button>上传场所模型</el-button>
</el-upload>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer" v-if="title !== '查看灯杆类型管理'">
<div class="dialog-footer" v-if="title !== '查看场所类型管理'">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
@@ -101,7 +101,7 @@ const data = reactive({
code: null
},
rules: {
name: [{ required: true, message: '灯杆类型名称不能为空', trigger: ['blur', 'change'] }]
name: [{ required: true, message: '场所类型名称不能为空', trigger: ['blur', 'change'] }]
}
})
@@ -123,7 +123,7 @@ const handleOperate = (operate, row) => {
const { queryParams, form, rules } = toRefs(data)
/** 查询灯杆类型管理列表 */
/** 查询场所类型管理列表 */
function getList() {
loading.value = true
listPoleType(queryParams.value).then((response) => {
@@ -187,7 +187,7 @@ function handleSelectionChange(selection) {
// 查看
const handleView = (row) => {
title.value = '查看灯杆类型管理'
title.value = '查看场所类型管理'
row.specification = Number(row.specification)
form.value = row
open.value = true
@@ -198,7 +198,7 @@ const handleView = (row) => {
function handleAdd() {
reset()
open.value = true
title.value = '添加灯杆类型管理'
title.value = '添加场所类型管理'
type.value = 'add'
}
@@ -210,7 +210,7 @@ function handleUpdate(row) {
response.data.specification = Number(response.data.specification)
form.value = response.data
open.value = true
title.value = '修改灯杆类型管理'
title.value = '修改场所类型管理'
type.value = 'update'
})
}
@@ -240,7 +240,7 @@ function submitForm() {
function handleDelete(row) {
const _ids = row.id || ids.value
proxy.$modal
.confirm('确认删除该灯杆类型吗?')
.confirm('确认删除该场所类型吗?')
.then(function () {
return delPoleType(_ids)
})
@@ -258,7 +258,7 @@ function handleExport() {
{
...queryParams.value
},
`灯杆类型管理_${new Date().getTime()}.xlsx`
`场所类型管理_${new Date().getTime()}.xlsx`
)
}

View File

@@ -29,8 +29,8 @@
<div class="search-con">
<div class="title">查询条件</div>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="所属灯杆" prop="poleName">
<el-input v-model="queryParams.poleName" placeholder="请输入灯杆名称" clearable @keyup.enter="handleQuery" />
<el-form-item label="所属场所" prop="poleName">
<el-input v-model="queryParams.poleName" placeholder="请输入场所名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="屏幕名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入屏幕名称" clearable @keyup.enter="handleQuery" />
@@ -60,7 +60,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="屏幕编号" align="center" prop="code" />
<el-table-column label="屏幕名称" align="center" prop="name" />
<el-table-column label="所属灯杆" align="center" prop="poleName" />
<el-table-column label="所属场所" align="center" prop="poleName" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
<el-table-column label="高度(cm)" align="center" prop="height" />
<el-table-column label="宽度(cm)" align="center" prop="width" />
@@ -100,7 +100,7 @@
<el-form-item label="信息屏名称" prop="name">
<el-input v-model="form.name" placeholder="请输入信息屏名称" />
</el-form-item>
<el-form-item label="所属灯杆" prop="poleId">
<el-form-item label="所属场所" prop="poleId">
<LightPoleSelect v-model:id="form.poleId" :name="form.poleName" />
</el-form-item>
<el-form-item label="经纬度" prop="lonLat" v-if="title === '查看照明信息屏'">
@@ -174,7 +174,7 @@ const data = reactive({
rules: {
code: [{ required: true, message: '信息屏编号不能为空', trigger: ['blur', 'change'] }],
name: [{ required: true, message: '信息屏名称不能为空', trigger: ['blur', 'change'] }],
poleId: [{ required: true, message: '所属灯杆不能为空', trigger: ['blur', 'change'] }],
poleId: [{ required: true, message: '所属场所不能为空', trigger: ['blur', 'change'] }],
lonLat: [{ required: true, message: '经纬度不能为空', trigger: ['blur', 'change'] }],
ipAddress: [{ required: true, message: 'IP地址不能为空', trigger: ['blur', 'change'] }],
port: [{ required: true, message: '端口号不能为空', trigger: ['blur', 'change'] }]

View File

@@ -29,8 +29,8 @@
<div class="search-con">
<div class="title">查询条件</div>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="灯杆名称" prop="name">
<el-input v-model="queryParams.poleName" placeholder="请输入灯杆名称" clearable @keyup.enter="handleQuery" />
<el-form-item label="场所名称" prop="name">
<el-input v-model="queryParams.poleName" placeholder="请输入场所名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="屏幕名称" prop="name">
<el-input v-model="queryParams.name" placeholder="请输入屏幕名称" clearable @keyup.enter="handleQuery" />
@@ -64,7 +64,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="屏幕编号" align="center" prop="code" />
<el-table-column label="屏幕名称" align="center" prop="name" />
<el-table-column label="所属灯杆" align="center" prop="poleName" />
<el-table-column label="所属场所" align="center" prop="poleName" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
<el-table-column label="开关状态" align="center" prop="switchStatus">
<template #default="scope">
@@ -148,7 +148,7 @@
<span class="title">屏幕名称</span><span class="content">{{ basicInformation.deviceName }}</span>
</el-col>
<el-col :span="8">
<span class="title">所属灯杆</span><span class="content">{{ basicInformation.poleName }}</span>
<span class="title">所属场所</span><span class="content">{{ basicInformation.poleName }}</span>
</el-col>
</el-row>
<el-row :gutter="20">

View File

@@ -135,8 +135,8 @@
@node-click="getCheckedNodes"
/>
</el-form-item>
<el-form-item label="灯杆名称" prop="poleName" v-if="queryParamsRelease.type === '1'">
<el-input v-model="queryParamsRelease.poleName" placeholder="请输入灯杆名称" @keyup.enter="handleQuery" @change="getList" />
<el-form-item label="场所名称" prop="poleName" v-if="queryParamsRelease.type === '1'">
<el-input v-model="queryParamsRelease.poleName" placeholder="请输入场所名称" @keyup.enter="handleQuery" @change="getList" />
</el-form-item>
<el-form-item label="屏幕名称" prop="name" v-if="queryParamsRelease.type === '1'">
<el-input v-model="queryParamsRelease.name" placeholder="请输入屏幕名称" @keyup.enter="handleQuery" @change="getList" />
@@ -157,8 +157,8 @@
<el-table v-loading="loadingRelease" :data="groupList" @selection-change="handleReleaseSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="所属层级" align="center" prop="buildingName" v-if="queryParamsRelease.type == '1'" />
<el-table-column label="灯杆编号" align="center" prop="poleCode" v-if="queryParamsRelease.type == '1'" />
<el-table-column label="灯杆名称" align="center" prop="poleName" v-if="queryParamsRelease.type == '1'" />
<el-table-column label="场所编号" align="center" prop="poleCode" v-if="queryParamsRelease.type == '1'" />
<el-table-column label="场所名称" align="center" prop="poleName" v-if="queryParamsRelease.type == '1'" />
<el-table-column label="屏幕编号" align="center" prop="code" v-if="queryParamsRelease.type == '1'" />
<el-table-column label="屏幕名称" align="center" prop="name" v-if="queryParamsRelease.type == '1'" />
<el-table-column label="在线状态" align="center" width="100" prop="networkStatus" v-if="queryParamsRelease.type == '1'">
@@ -199,11 +199,11 @@
@change="getDeviceList"
/>
</el-form-item>
<el-form-item label="灯杆编号" prop="poleCode">
<el-input v-model="queryParamsView.poleCode" placeholder="请输入灯杆编号" />
<el-form-item label="场所编号" prop="poleCode">
<el-input v-model="queryParamsView.poleCode" placeholder="请输入场所编号" />
</el-form-item>
<el-form-item label="灯杆名称" prop="poleName">
<el-input v-model="queryParamsView.poleName" placeholder="请输入灯杆名称" />
<el-form-item label="场所名称" prop="poleName">
<el-input v-model="queryParamsView.poleName" placeholder="请输入场所名称" />
</el-form-item>
<el-form-item label="屏幕名称" prop="name">
<el-input v-model="queryParamsView.name" placeholder="请输入屏幕名称" />
@@ -214,8 +214,8 @@
</div>
<el-table v-loading="loadingView" :data="deviceList">
<el-table-column label="所属层级" align="center" prop="buildingName" />
<el-table-column label="灯杆编号" align="center" prop="poleCode" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所编号" align="center" prop="poleCode" />
<el-table-column label="场所名称" align="center" prop="poleName" />
<el-table-column label="屏幕编号" align="center" prop="code" />
<el-table-column label="屏幕名称" align="center" prop="name" />
<el-table-column label="在线状态" align="center" prop="networkStatus">

View File

@@ -190,8 +190,8 @@
@change="getReleaseList"
/>
</el-form-item>
<el-form-item label="灯杆名称" prop="poleName" v-if="queryParamsRelease.type === '1'">
<el-input v-model="queryParamsRelease.poleName" placeholder="请输入灯杆名称" @keyup.enter="handleQuery" @change="getList" />
<el-form-item label="场所名称" prop="poleName" v-if="queryParamsRelease.type === '1'">
<el-input v-model="queryParamsRelease.poleName" placeholder="请输入场所名称" @keyup.enter="handleQuery" @change="getList" />
</el-form-item>
<el-form-item label="屏幕名称" prop="name" v-if="queryParamsRelease.type === '1'">
<el-input v-model="queryParamsRelease.name" placeholder="请输入屏幕名称" @keyup.enter="handleQuery" @change="getList" />
@@ -212,8 +212,8 @@
<el-table v-loading="loadingRelease" :data="groupList" @selection-change="handleReleaseSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="所属分区" align="center" prop="buildingName" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="灯杆编号" align="center" prop="poleCode" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="灯杆名称" align="center" prop="poleName" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="场所编号" align="center" prop="poleCode" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="场所名称" align="center" prop="poleName" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="屏幕编号" align="center" prop="code" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="屏幕名称" align="center" prop="name" v-if="queryParamsRelease.type === '1'" />
<el-table-column label="在线状态" align="center" width="100" prop="networkStatus" v-if="queryParamsRelease.type === '1'">
@@ -255,11 +255,11 @@
@change="getDeviceList"
/>
</el-form-item>
<el-form-item label="灯杆编号" prop="poleCode">
<el-input v-model="queryParamsView.poleCode" placeholder="请输入灯杆编号" />
<el-form-item label="场所编号" prop="poleCode">
<el-input v-model="queryParamsView.poleCode" placeholder="请输入场所编号" />
</el-form-item>
<el-form-item label="灯杆名称" prop="poleName">
<el-input v-model="queryParamsView.poleName" placeholder="请输入灯杆名称" />
<el-form-item label="场所名称" prop="poleName">
<el-input v-model="queryParamsView.poleName" placeholder="请输入场所名称" />
</el-form-item>
<el-form-item label="屏幕名称" prop="name">
<el-input v-model="queryParamsView.name" placeholder="请输入设备名称" />
@@ -272,8 +272,8 @@
<el-table v-loading="loadingView" :data="deviceList" @selection-change="handleDeviceSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="层级名称" align="center" prop="buildingName" />
<el-table-column label="灯杆编号" align="center" prop="poleCode" />
<el-table-column label="灯杆名称" align="center" prop="poleName" />
<el-table-column label="场所编号" align="center" prop="poleCode" />
<el-table-column label="场所名称" align="center" prop="poleName" />
<el-table-column label="屏幕编号" align="center" prop="code" />
<el-table-column label="屏幕名称" align="center" prop="name" />
<el-table-column label="在线状态" align="center" prop="networkStatus">

View File

@@ -130,13 +130,13 @@ function getCode() {
}
function getDefaultBg() {
getConfigKey('defaultBg').then((res) => {
getConfigKey('iotBg').then((res) => {
defaultBg.value = res.msg
})
}
function getDefaultTitle() {
getConfigKey('defaultTitle').then((res) => {
getConfigKey('iotTitle').then((res) => {
title.value = res.msg
document.title = res.msg
})

View File

@@ -40,8 +40,8 @@ export default defineConfig(({ mode, command }) => {
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
'/dev-api': {
target: 'http://127.0.0.1:8080',
// target: 'http://47.105.107.116:8080',
// target: 'http://127.0.0.1:8080',
target: 'http://117.72.197.29:8080',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
},
@@ -51,7 +51,7 @@ export default defineConfig(({ mode, command }) => {
rewrite: (p) => p.replace(/^\/file-upload/, '')
},
'/fileUrl': {
target: 'http://140.249.24.92:9000', // 本地
target: 'http://117.72.197.29:9000', // 本地
changeOrigin: true,
rewrite: (p) => p.replace(/^\/fileUrl/, '')
},

255
yarn.lock
View File

@@ -506,21 +506,6 @@
"resolved" "https://registry.npmjs.org/@mapbox/martini/-/martini-0.2.0.tgz"
"version" "0.2.0"
"@mapbox/node-pre-gyp@^1.0.0":
"integrity" "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ=="
"resolved" "http://npm.ezbim.cn:3038/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz"
"version" "1.0.11"
dependencies:
"detect-libc" "^2.0.0"
"https-proxy-agent" "^5.0.0"
"make-dir" "^3.1.0"
"node-fetch" "^2.6.7"
"nopt" "^5.0.0"
"npmlog" "^5.0.1"
"rimraf" "^3.0.2"
"semver" "^7.3.5"
"tar" "^6.1.11"
"@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0", "@mapbox/point-geometry@0.1.0":
"integrity" "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ=="
"resolved" "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz"
@@ -2234,11 +2219,6 @@
"resolved" "http://npm.ezbim.cn:3038/abab/-/abab-2.0.6.tgz"
"version" "2.0.6"
"abbrev@1":
"integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
"resolved" "http://npm.ezbim.cn:3038/abbrev/-/abbrev-1.1.1.tgz"
"version" "1.1.1"
"acorn-globals@^6.0.0":
"integrity" "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg=="
"resolved" "http://npm.ezbim.cn:3038/acorn-globals/-/acorn-globals-6.0.0.tgz"
@@ -2390,19 +2370,6 @@
"normalize-path" "^3.0.0"
"picomatch" "^2.0.4"
"aproba@^1.0.3 || ^2.0.0":
"integrity" "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
"resolved" "http://npm.ezbim.cn:3038/aproba/-/aproba-2.0.0.tgz"
"version" "2.0.0"
"are-we-there-yet@^2.0.0":
"integrity" "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw=="
"resolved" "http://npm.ezbim.cn:3038/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz"
"version" "2.0.0"
dependencies:
"delegates" "^1.0.0"
"readable-stream" "^3.6.0"
"argparse@^2.0.1":
"integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
"resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
@@ -2681,15 +2648,6 @@
"resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
"version" "5.3.1"
"canvas@^2.5.0", "canvas@^2.8.0":
"integrity" "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw=="
"resolved" "http://npm.ezbim.cn:3038/canvas/-/canvas-2.11.2.tgz"
"version" "2.11.2"
dependencies:
"@mapbox/node-pre-gyp" "^1.0.0"
"nan" "^2.17.0"
"simple-get" "^3.0.3"
"chalk@^1.1.3":
"integrity" "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A=="
"resolved" "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
@@ -2752,11 +2710,6 @@
optionalDependencies:
"fsevents" "~2.3.2"
"chownr@^2.0.0":
"integrity" "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
"resolved" "http://npm.ezbim.cn:3038/chownr/-/chownr-2.0.0.tgz"
"version" "2.0.0"
"class-utils@^0.3.5":
"integrity" "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg=="
"resolved" "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"
@@ -2853,11 +2806,6 @@
"resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
"version" "1.1.3"
"color-support@^1.1.2":
"integrity" "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
"resolved" "http://npm.ezbim.cn:3038/color-support/-/color-support-1.1.3.tgz"
"version" "1.1.3"
"colorette@^2.0.19":
"integrity" "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
"resolved" "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz"
@@ -2923,11 +2871,6 @@
"robust-predicates" "^2.0.4"
"tinyqueue" "^2.0.3"
"console-control-strings@^1.0.0", "console-control-strings@^1.1.0":
"integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
"resolved" "http://npm.ezbim.cn:3038/console-control-strings/-/console-control-strings-1.1.0.tgz"
"version" "1.1.0"
"conventional-changelog-angular@^5.0.11":
"integrity" "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA=="
"resolved" "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz"
@@ -3230,13 +3173,6 @@
"resolved" "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz"
"version" "0.2.2"
"decompress-response@^4.2.0":
"integrity" "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw=="
"resolved" "http://npm.ezbim.cn:3038/decompress-response/-/decompress-response-4.2.1.tgz"
"version" "4.2.1"
dependencies:
"mimic-response" "^2.0.0"
"deep-equal@^1.0.0", "deep-equal@^1.0.1", "deep-equal@1.x":
"integrity" "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg=="
"resolved" "http://npm.ezbim.cn:3038/deep-equal/-/deep-equal-1.1.2.tgz"
@@ -3298,21 +3234,11 @@
"resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
"version" "1.0.0"
"delegates@^1.0.0":
"integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
"resolved" "http://npm.ezbim.cn:3038/delegates/-/delegates-1.0.0.tgz"
"version" "1.0.0"
"density-clustering@1.3.0":
"integrity" "sha512-icpmBubVTwLnsaor9qH/4tG5+7+f61VcqMN3V3pm9sxxSCt2Jcs0zWOgwZW9ARJYaKD3FumIgHiMOcIMRRAzFQ=="
"resolved" "http://npm.ezbim.cn:3038/density-clustering/-/density-clustering-1.3.0.tgz"
"version" "1.3.0"
"detect-libc@^2.0.0":
"integrity" "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw=="
"resolved" "http://npm.ezbim.cn:3038/detect-libc/-/detect-libc-2.0.2.tgz"
"version" "2.0.2"
"dir-glob@^3.0.1":
"integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="
"resolved" "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
@@ -3606,11 +3532,6 @@
"d" "^1.0.2"
"ext" "^1.7.0"
"esbuild-darwin-64@0.15.18":
"integrity" "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg=="
"resolved" "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz"
"version" "0.15.18"
"esbuild-windows-64@0.15.18":
"integrity" "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw=="
"resolved" "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz"
@@ -4241,23 +4162,11 @@
"jsonfile" "^6.0.1"
"universalify" "^2.0.0"
"fs-minipass@^2.0.0":
"integrity" "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="
"resolved" "http://npm.ezbim.cn:3038/fs-minipass/-/fs-minipass-2.1.0.tgz"
"version" "2.1.0"
dependencies:
"minipass" "^3.0.0"
"fs.realpath@^1.0.0":
"integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
"resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
"version" "1.0.0"
"fsevents@~2.3.2":
"integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
"resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
"version" "2.3.2"
"function-bind@^1.1.1", "function-bind@^1.1.2":
"integrity" "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
"resolved" "http://npm.ezbim.cn:3038/function-bind/-/function-bind-1.1.2.tgz"
@@ -4283,21 +4192,6 @@
"resolved" "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz"
"version" "6.6.2"
"gauge@^3.0.0":
"integrity" "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q=="
"resolved" "http://npm.ezbim.cn:3038/gauge/-/gauge-3.0.2.tgz"
"version" "3.0.2"
dependencies:
"aproba" "^1.0.3 || ^2.0.0"
"color-support" "^1.1.2"
"console-control-strings" "^1.0.0"
"has-unicode" "^2.0.1"
"object-assign" "^4.1.1"
"signal-exit" "^3.0.0"
"string-width" "^4.2.3"
"strip-ansi" "^6.0.1"
"wide-align" "^1.1.2"
"geojson-equality@0.1.6":
"integrity" "sha512-TqG8YbqizP3EfwP5Uw4aLu6pKkg6JQK9uq/XZ1lXQntvTHD1BBKJWhNpJ2M0ax6TuWMP3oyx6Oq7FCIfznrgpQ=="
"resolved" "http://npm.ezbim.cn:3038/geojson-equality/-/geojson-equality-0.1.6.tgz"
@@ -4564,11 +4458,6 @@
dependencies:
"has-symbols" "^1.0.2"
"has-unicode@^2.0.1":
"integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
"resolved" "http://npm.ezbim.cn:3038/has-unicode/-/has-unicode-2.0.1.tgz"
"version" "2.0.1"
"has-value@^0.3.1":
"integrity" "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q=="
"resolved" "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"
@@ -5508,13 +5397,6 @@
dependencies:
"sourcemap-codec" "^1.4.8"
"make-dir@^3.1.0":
"integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="
"resolved" "http://npm.ezbim.cn:3038/make-dir/-/make-dir-3.1.0.tgz"
"version" "3.1.0"
dependencies:
"semver" "^6.0.0"
"map-cache@^0.2.2":
"integrity" "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg=="
"resolved" "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"
@@ -5706,11 +5588,6 @@
"resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz"
"version" "4.0.0"
"mimic-response@^2.0.0":
"integrity" "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
"resolved" "http://npm.ezbim.cn:3038/mimic-response/-/mimic-response-2.1.0.tgz"
"version" "2.1.0"
"min-document@^2.19.0":
"integrity" "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ=="
"resolved" "https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz"
@@ -5749,26 +5626,6 @@
"resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
"version" "1.2.8"
"minipass@^3.0.0":
"integrity" "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="
"resolved" "http://npm.ezbim.cn:3038/minipass/-/minipass-3.3.6.tgz"
"version" "3.3.6"
dependencies:
"yallist" "^4.0.0"
"minipass@^5.0.0":
"integrity" "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="
"resolved" "http://npm.ezbim.cn:3038/minipass/-/minipass-5.0.0.tgz"
"version" "5.0.0"
"minizlib@^2.1.1":
"integrity" "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="
"resolved" "http://npm.ezbim.cn:3038/minizlib/-/minizlib-2.1.2.tgz"
"version" "2.1.2"
dependencies:
"minipass" "^3.0.0"
"yallist" "^4.0.0"
"mixin-deep@^1.2.0":
"integrity" "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA=="
"resolved" "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"
@@ -5784,11 +5641,6 @@
dependencies:
"minimist" "^1.2.6"
"mkdirp@^1.0.3":
"integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
"resolved" "http://npm.ezbim.cn:3038/mkdirp/-/mkdirp-1.0.4.tgz"
"version" "1.0.4"
"mlly@^1.0.0", "mlly@^1.1.1":
"integrity" "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww=="
"resolved" "https://registry.npmjs.org/mlly/-/mlly-1.2.0.tgz"
@@ -5862,11 +5714,6 @@
"resolved" "http://npm.ezbim.cn:3038/namespace-emitter/-/namespace-emitter-2.0.1.tgz"
"version" "2.0.1"
"nan@^2.17.0":
"integrity" "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw=="
"resolved" "http://npm.ezbim.cn:3038/nan/-/nan-2.19.0.tgz"
"version" "2.19.0"
"nanoid@^3.1.25", "nanoid@^3.2.0", "nanoid@^3.3.4":
"integrity" "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
"resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz"
@@ -5899,20 +5746,6 @@
"resolved" "http://npm.ezbim.cn:3038/next-tick/-/next-tick-1.1.0.tgz"
"version" "1.1.0"
"node-fetch@^2.6.7":
"integrity" "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A=="
"resolved" "http://npm.ezbim.cn:3038/node-fetch/-/node-fetch-2.7.0.tgz"
"version" "2.7.0"
dependencies:
"whatwg-url" "^5.0.0"
"nopt@^5.0.0":
"integrity" "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ=="
"resolved" "http://npm.ezbim.cn:3038/nopt/-/nopt-5.0.0.tgz"
"version" "5.0.0"
dependencies:
"abbrev" "1"
"normalize-package-data@^2.5.0":
"integrity" "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="
"resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
@@ -5950,16 +5783,6 @@
dependencies:
"path-key" "^4.0.0"
"npmlog@^5.0.1":
"integrity" "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw=="
"resolved" "http://npm.ezbim.cn:3038/npmlog/-/npmlog-5.0.1.tgz"
"version" "5.0.1"
dependencies:
"are-we-there-yet" "^2.0.0"
"console-control-strings" "^1.1.0"
"gauge" "^3.0.0"
"set-blocking" "^2.0.0"
"nprogress@0.2.0":
"integrity" "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA=="
"resolved" "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz"
@@ -6042,7 +5865,7 @@
"define-properties" "^1.1.4"
"es-abstract" "^1.20.4"
"once@^1.3.0", "once@^1.3.1":
"once@^1.3.0":
"integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
"resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
"version" "1.4.0"
@@ -6566,7 +6389,7 @@
"parse-json" "^5.0.0"
"type-fest" "^0.6.0"
"readable-stream@^3.0.0", "readable-stream@^3.1.1", "readable-stream@^3.6.0", "readable-stream@3":
"readable-stream@^3.0.0", "readable-stream@^3.1.1", "readable-stream@3":
"integrity" "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="
"resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
"version" "3.6.2"
@@ -6861,11 +6684,6 @@
"resolved" "https://registry.npmjs.org/scule/-/scule-1.0.0.tgz"
"version" "1.0.0"
"semver@^6.0.0":
"integrity" "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="
"resolved" "http://npm.ezbim.cn:3038/semver/-/semver-6.3.1.tgz"
"version" "6.3.1"
"semver@^6.3.0":
"integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
"resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
@@ -6904,11 +6722,6 @@
"resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
"version" "5.7.1"
"set-blocking@^2.0.0":
"integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
"resolved" "http://npm.ezbim.cn:3038/set-blocking/-/set-blocking-2.0.0.tgz"
"version" "2.0.0"
"set-function-name@^2.0.0":
"integrity" "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA=="
"resolved" "http://npm.ezbim.cn:3038/set-function-name/-/set-function-name-2.0.1.tgz"
@@ -6949,25 +6762,11 @@
"get-intrinsic" "^1.0.2"
"object-inspect" "^1.9.0"
"signal-exit@^3.0.0", "signal-exit@^3.0.2", "signal-exit@^3.0.7":
"signal-exit@^3.0.2", "signal-exit@^3.0.7":
"integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
"resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
"version" "3.0.7"
"simple-concat@^1.0.0":
"integrity" "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
"resolved" "http://npm.ezbim.cn:3038/simple-concat/-/simple-concat-1.0.1.tgz"
"version" "1.0.1"
"simple-get@^3.0.3":
"integrity" "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA=="
"resolved" "http://npm.ezbim.cn:3038/simple-get/-/simple-get-3.1.1.tgz"
"version" "3.1.1"
dependencies:
"decompress-response" "^4.2.0"
"once" "^1.3.1"
"simple-concat" "^1.0.0"
"sirv@^2.0.3":
"integrity" "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA=="
"resolved" "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz"
@@ -7217,7 +7016,7 @@
"resolved" "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz"
"version" "0.3.1"
"string-width@^1.0.2 || 2 || 3 || 4", "string-width@^2.1.0":
"string-width@^2.1.0":
"integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="
"resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"
"version" "2.1.1"
@@ -7243,15 +7042,6 @@
"is-fullwidth-code-point" "^3.0.0"
"strip-ansi" "^6.0.1"
"string-width@^4.2.3":
"integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="
"resolved" "http://npm.ezbim.cn:3038/string-width/-/string-width-4.2.3.tgz"
"version" "4.2.3"
dependencies:
"emoji-regex" "^8.0.0"
"is-fullwidth-code-point" "^3.0.0"
"strip-ansi" "^6.0.1"
"string-width@^5.0.0":
"integrity" "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="
"resolved" "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz"
@@ -7434,18 +7224,6 @@
"resolved" "http://npm.ezbim.cn:3038/symbol-tree/-/symbol-tree-3.2.4.tgz"
"version" "3.2.4"
"tar@^6.1.11":
"integrity" "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ=="
"resolved" "http://npm.ezbim.cn:3038/tar/-/tar-6.2.0.tgz"
"version" "6.2.0"
dependencies:
"chownr" "^2.0.0"
"fs-minipass" "^2.0.0"
"minipass" "^5.0.0"
"minizlib" "^2.1.1"
"mkdirp" "^1.0.3"
"yallist" "^4.0.0"
"temp@^0.9.0":
"integrity" "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA=="
"resolved" "https://registry.npmjs.org/temp/-/temp-0.9.4.tgz"
@@ -7568,11 +7346,6 @@
dependencies:
"punycode" "^2.1.1"
"tr46@~0.0.3":
"integrity" "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
"resolved" "http://npm.ezbim.cn:3038/tr46/-/tr46-0.0.3.tgz"
"version" "0.0.3"
"traverse@^0.6.6":
"integrity" "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg=="
"resolved" "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz"
@@ -8096,11 +7869,6 @@
"resolved" "https://registry.npmjs.org/web-worker-helper/-/web-worker-helper-0.0.3.tgz"
"version" "0.0.3"
"webidl-conversions@^3.0.0":
"integrity" "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
"resolved" "http://npm.ezbim.cn:3038/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
"version" "3.0.1"
"webidl-conversions@^7.0.0":
"integrity" "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
"resolved" "http://npm.ezbim.cn:3038/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
@@ -8173,14 +7941,6 @@
"tr46" "^3.0.0"
"webidl-conversions" "^7.0.0"
"whatwg-url@^5.0.0":
"integrity" "sha1-lmRU6HZUYuN2RNNib2dCzotwll0="
"resolved" "http://npm.ezbim.cn:3038/whatwg-url/-/whatwg-url-5.0.0.tgz"
"version" "5.0.0"
dependencies:
"tr46" "~0.0.3"
"webidl-conversions" "^3.0.0"
"which-boxed-primitive@^1.0.2":
"integrity" "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg=="
"resolved" "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
@@ -8218,13 +7978,6 @@
dependencies:
"isexe" "^2.0.0"
"wide-align@^1.1.2":
"integrity" "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg=="
"resolved" "http://npm.ezbim.cn:3038/wide-align/-/wide-align-1.1.5.tgz"
"version" "1.1.5"
dependencies:
"string-width" "^1.0.2 || 2 || 3 || 4"
"wildcard@^1.1.0":
"integrity" "sha1-pwIEUwhNjNLv5wup02liY94XEKU="
"resolved" "http://npm.ezbim.cn:3038/wildcard/-/wildcard-1.1.2.tgz"