junhong 1 week ago
commit 265d44477c
  1. 2
      .env.production
  2. 10693
      package-lock.json
  3. 5
      src/views/constructionScheduling/resource-management/options.js
  4. 66
      src/views/vehicleMachinery/video-manage/api.js
  5. 100
      src/views/vehicleMachinery/video-manage/index.vue
  6. 43
      src/views/vehicleMachinery/video-manage/options.js
  7. 6
      vite.config.js

@ -6,7 +6,7 @@ VITE_APP_ENV = 'production'
# 智慧工地管理系统/生产环境 # 智慧工地管理系统/生产环境
#VITE_APP_BASE_API = 'http://39.100.74.100:8080' #VITE_APP_BASE_API = 'http://39.100.74.100:8080'
VITE_APP_BASE_API = 'http://127.0.0.1:3095/ry' VITE_APP_BASE_API = 'http://39.100.74.100:8581'
# 生产环境-NODE-工作流接口 # 生产环境-NODE-工作流接口
VITE_APP_BASE_PROCESS_API = 'http://127.0.0.1:3095/process' VITE_APP_BASE_PROCESS_API = 'http://127.0.0.1:3095/process'

10693
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -32,8 +32,9 @@ export const baseModelOptions = () => {
tag: 'el-input-number', tag: 'el-input-number',
label: '数量(人):', label: '数量(人):',
key: 'quantity', key: 'quantity',
value: 0, value: 1,
default: 0, default: 1,
hide: true,
rules: [ rules: [
{ required: true, message: '请输入数量', trigger: 'blur' }, { required: true, message: '请输入数量', trigger: 'blur' },
], ],

@ -0,0 +1,66 @@
import axios from '@/utils/request'
// 查询分页数据:
export const vehicleList = (arg) => {
return axios.request({
url: '/vehicle/list',
method: 'get',
params: arg,
dataType: 'json',
})
}
// 查询详情数据:
export const vehicleGetById = (arg) => {
return axios.request({
url: `/vehicle/getById`,
method: 'get',
params: arg,
dataType: 'json',
})
}
// 添加数据:
export const vehicleAdd = (arg) => {
return axios.request({
url: '/vehicle/add',
method: 'post',
data: arg,
dataType: 'json',
})
}
// 修改数据:
export const vehicleUpdate = (arg) => {
return axios.request({
url: '/vehicle/update',
method: 'put',
data: arg,
dataType: 'json',
})
}
// 删除数据:
export const vehicleDelete = (arg) => {
return axios.request({
url: '/vehicle/delete',
method: 'delete',
params: {
id:arg.id[0]
},
dataType: 'json',
})
}
// 查询分页数据:
export const iproductionplanList = (arg) => {
return axios.request({
url: '/iproductionplan/list',
method: 'get',
params: arg,
dataType: 'json',
})
}

@ -0,0 +1,100 @@
<script setup>
import { reactive } from 'vue'
import { vehicleList, vehicleAdd, vehicleUpdate, vehicleDelete, vehicleGetById, iproductionplanList } from './api'
import { baseModelOptions, baseFilterOptions } from './options'
import { useRouter } from 'vue-router';
const cameraList = reactive([
{ name: '5305#摄像头', source: 'rtsp://admin:admin@IP_ADDRESS' },
{ name: '5601#摄像头', source: 'rtsp://admin:admin@IP_ADDRESS' }
])
const state = reactive({
currentCameraIndex: 0
})
</script>
<template>
<div class="app-container">
<!-- 监控摄像头名称列表 -->
<div class="camera-name-list">
<template v-for="(camera, index) in cameraList" :key="index">
<span
class="camera-name"
@click="switchCamera(index)"
:class="{ active: state.currentCameraIndex === index }"
>
{{ camera.name }}
</span>
</template>
</div>
<!-- 摄像头展示区域 -->
<div class="camera-display">
<video
v-if="state.currentCameraIndex !== -1"
:src="cameraList[state.currentCameraIndex].source"
controls
autoplay
muted
></video>
<p v-else>请选择摄像头</p>
</div>
</div>
</template>
<style scoped>
.app-container {
display: flex;
flex-direction: column;
align-items: center;
padding: 20px;
min-height: 100vh;
}
.camera-name-list {
display: flex;
gap: 15px;
margin-bottom: 20px;
flex-wrap: wrap;
justify-content: center;
}
.camera-name {
padding: 8px 16px;
border: 1px solid #ccc;
border-radius: 20px;
cursor: pointer;
transition: all 0.3s ease;
background-color: white;
}
.camera-name:hover {
background-color: #e0e0e0;
transform: translateY(-2px);
}
.camera-name.active {
background-color: #2196F3;
color: white;
border-color: #2196F3;
}
.camera-display {
width: 80%;
max-width: 800px;
background-color: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
video {
width: 100%;
height: auto;
}
p {
text-align: center;
color: #666;
font-size: 18px;
}
</style>

@ -0,0 +1,43 @@
export const baseModelOptions = () => {
return [
]
}
export const baseFilterOptions = () => {
return [
{
tag: 'el-input',
label: '设备名称:',
key: 'deviceName',
value: '',
default: '',
attribute: {//属性
type: 'text',
placeholder: '请输入设备名称',
},
},
{
tag: 'el-input',
label: 'IMEI:',
key: 'imei',
value: '',
default: '',
attribute: {//属性
type: 'text',
placeholder: '请输入IMEI',
},
},
{
tag: 'el-input',
label: '设备类型:',
key: 'mcType',
value: '',
default: '',
attribute: {//属性
type: 'text',
placeholder: '请输入设备类型',
},
},
]
}

@ -12,7 +12,7 @@ export default defineConfig(({ mode, command }) => {
outDir: path.resolve(__dirname, 'dist'), outDir: path.resolve(__dirname, 'dist'),
emptyOutDir: true, emptyOutDir: true,
}, },
base: VITE_APP_ENV === 'production' ? '/front' : './', base: VITE_APP_ENV === 'production' ? '/smartFactory' : './',
plugins: [ plugins: [
createVitePlugins(env, command === "build"), createVitePlugins(env, command === "build"),
inject({ inject({
@ -43,9 +43,9 @@ export default defineConfig(({ mode, command }) => {
}, },
proxy: { proxy: {
'/dev-api': { '/dev-api': {
target: 'http://192.168.2.39:8581', // target: 'http://192.168.2.39:8581',
// target: 'http://192.168.2.223:8080', // target: 'http://192.168.2.223:8080',
// target: 'http://39.100.74.100:8581', target: 'http://39.100.74.100:8581',
changeOrigin: true, changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '') rewrite: (p) => p.replace(/^\/dev-api/, '')
} }

Loading…
Cancel
Save